From b470b0aa8efee05631254d3479308da57a536f23 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Tue, 11 Mar 2025 19:39:00 +0100 Subject: [PATCH 01/41] feat: websocket listener --- typescript/solver/package.json | 4 +- .../solver/solvers/WebSocketListener.ts | 206 ++++++++++++++++++ typescript/solver/solvers/compactX/types.ts | 96 ++++++++ yarn.lock | 26 +++ 4 files changed, 331 insertions(+), 1 deletion(-) create mode 100644 typescript/solver/solvers/WebSocketListener.ts create mode 100644 typescript/solver/solvers/compactX/types.ts diff --git a/typescript/solver/package.json b/typescript/solver/package.json index 2c9f2a40..b1b79daf 100644 --- a/typescript/solver/package.json +++ b/typescript/solver/package.json @@ -26,6 +26,7 @@ "@inquirer/prompts": "^7.2.0", "@typechain/ethers-v5": "^11.1.2", "@types/copyfiles": "^2", + "@types/ws": "^8", "copyfiles": "^2.4.1", "prettier": "^3.3.3", "tsx": "^4.19.2", @@ -45,6 +46,7 @@ "pino": "^9.5.0", "pino-pretty": "^13.0.0", "pino-socket": "^7.4.0", - "uniqolor": "^1.1.1" + "uniqolor": "^1.1.1", + "ws": "^8.18.1" } } diff --git a/typescript/solver/solvers/WebSocketListener.ts b/typescript/solver/solvers/WebSocketListener.ts new file mode 100644 index 00000000..894f7652 --- /dev/null +++ b/typescript/solver/solvers/WebSocketListener.ts @@ -0,0 +1,206 @@ +import type { Logger } from "../logger.js"; +import type { ParsedArgs } from "./BaseFiller.js"; + +import { WebSocket } from "ws"; + +export interface ConnectionUpdate { + type: "connected"; + data: { + clientCount: number; + }; + timestamp: string; +} + +export type WebSocketMessage = ConnectionUpdate; + +export abstract class WebSocketListener< + TParsedArgs extends ParsedArgs, +> { + private ws: WebSocket | null = null; + private reconnectAttempts = 0; + private maxReconnectAttempts = 5; + private reconnectDelay = 1_000; + private pingInterval: NodeJS.Timeout | null = null; + private pongTimeout: NodeJS.Timeout | null = null; + private lastPingTime = 0; + private wsUrl: string; + + protected onOpen() {} + protected onClose() {} + protected onError() {} + + protected constructor( + private readonly metadata: { + webSocket: { + url: string; + clientOptions: WebSocket.ClientOptions; + options?: { + maxReconnectAttempts?: number; + reconnectDelay?: number; + }; + }; + protocolName: string; + }, + private readonly log: Logger, + ) { + this.maxReconnectAttempts = + this.metadata.webSocket.options?.maxReconnectAttempts || + this.maxReconnectAttempts; + this.reconnectDelay = + this.metadata.webSocket.options?.reconnectDelay || this.reconnectDelay; + + this.wsUrl = this.metadata.webSocket.url; + } + + private connect(): void { + try { + this.ws = new WebSocket( + this.wsUrl, + this.metadata.webSocket.clientOptions, + ); + this.setupEventListeners(); + } catch (error) { + this.log.error({ + msg: "Failed to create WebSocket connection", + error: JSON.stringify(error), + }); + this.handleReconnect(); + } + } + + private setupEventListeners(): void { + if (!this.ws) return; + + this.ws.on("open", (): void => { + this.log.info({ msg: "WebSocket connection established" }); + this.reconnectAttempts = 0; + this.reconnectDelay = 1000; + this.setupPingInterval(); + this.onOpen?.(); + }); + + this.ws.on("close", (): void => { + this.log.info({ msg: "WebSocket connection closed" }); + this.cleanupPingInterval(); + this.onClose?.(); + this.handleReconnect(); + }); + + this.ws.on("error", (error: Error): void => { + this.log.error({ + msg: "WebSocket error occurred", + error: JSON.stringify(error), + }); + this.cleanupPingInterval(); + }); + + this.ws.on("message", (data: Buffer): void => { + try { + const message = JSON.parse(data.toString()); + this.handleMessage(message); + } catch (error) { + this.log.error("Error parsing message:", error); + } + }); + + this.ws.on("pong", () => { + if (this.pongTimeout) { + clearTimeout(this.pongTimeout); + this.pongTimeout = null; + } + + const latency = Date.now() - this.lastPingTime; + this.log.debug({ msg: "WebSocket pong", latency }); + }); + } + + private handleReconnect(): void { + this.cleanupPingInterval(); + if (this.reconnectAttempts < this.maxReconnectAttempts) { + this.log.info({ + msg: `Attempting to reconnect... (${this.reconnectAttempts + 1}/${this.maxReconnectAttempts})`, + }); + + setTimeout(() => { + this.reconnectAttempts++; + this.reconnectDelay *= 2; // Exponential backoff + this.connect(); + }, this.reconnectDelay); + } else { + this.log.error({ msg: "Max reconnection attempts reached" }); + } + } + + private setupPingInterval(): void { + // Send a ping every 15 seconds + this.pingInterval = setInterval(() => { + if (this.ws && this.ws.readyState === WebSocket.OPEN) { + this.lastPingTime = Date.now(); + + this.ws.ping(); + + // Set a timeout to close and reconnect if we don't receive a pong within 5 seconds + this.pongTimeout = setTimeout(() => { + this.log.warn({ + msg: "No pong received within timeout, closing connection...", + }); + if (this.ws) { + this.ws.close(); + } + }, 5_000); + } + }, 15_000); + } + + private cleanupPingInterval(): void { + if (this.pingInterval) { + clearInterval(this.pingInterval); + this.pingInterval = null; + } + if (this.pongTimeout) { + clearTimeout(this.pongTimeout); + this.pongTimeout = null; + } + } + + create() { + return async ( + handler: ( + args: TParsedArgs, + originChainName: string, + blockNumber: number, + ) => void, + ) => { + this.connect(); + + if (!this.ws) { + this.log.debug({ msg: "WebSocket connection not yet established" }); + return; + } + + this.ws.on("message", (data: Buffer): void => { + try { + const args = this.parseEventArgs(data); + handler(args, '', -1); + } catch (error) { + this.log.error("Error parsing message:", error); + } + }); + }; + } + + private handleMessage(data: WebSocketMessage): void { + switch (data.type) { + // case "connected": + // console.debug("Connected to the server"); + // console.debug(`Client count: ${data.data.clientCount}`); + // console.debug(`Timestamp: ${data.timestamp}`); + // break; + default: + console.error("Unknown message type:", data); + } + } + protected abstract parseEventArgs( + args: Buffer, + ): TParsedArgs; +} diff --git a/typescript/solver/solvers/compactX/types.ts b/typescript/solver/solvers/compactX/types.ts new file mode 100644 index 00000000..5de41790 --- /dev/null +++ b/typescript/solver/solvers/compactX/types.ts @@ -0,0 +1,96 @@ +import z from "zod"; + +// Custom validators and constants +const isHexString = (str: string) => /^0x[0-9a-fA-F]*$/.test(str); +const isAddress = (str: string) => isHexString(str) && str.length === 42; // 0x + 40 chars (20 bytes) +const isHash = (str: string) => isHexString(str) && str.length === 66; // 0x + 64 chars (32 bytes) +const is64ByteHex = (str: string) => isHexString(str) && str.length === 130; // 0x + 128 chars (64 bytes) +const isEmptyHex = (str: string) => str === "0x"; +const isNumericString = (str: string) => /^-?\d+$/.test(str); +const isNumericOrHexString = (str: string) => + isNumericString(str) || isHexString(str); +const UINT32_MAX = 4294967295; // 2^32 - 1 + +const numericOrHexSchema = z.string().refine(isNumericOrHexString, { + message: "Must be either a numeric string or a hex string with 0x prefix", +}); + +const addressSchema = z.string().refine(isAddress, { + message: "Must be a valid Ethereum address (0x prefix + 20 bytes)", +}); + +const hashSchema = z.string().refine(isHash, { + message: "Must be a valid hash (0x prefix + 32 bytes)", +}); + +// Type definitions +export const MandateSchema = z.object({ + chainId: z + .number() + .int() + .min(1) + .max(UINT32_MAX) + .refine( + (n) => n >= 1 && n <= UINT32_MAX, + `Chain ID must be between 1 and ${UINT32_MAX}`, + ), + tribunal: addressSchema, + recipient: addressSchema, + expires: numericOrHexSchema, + token: addressSchema, + minimumAmount: numericOrHexSchema, + baselinePriorityFee: numericOrHexSchema, + scalingFactor: numericOrHexSchema, + salt: hashSchema, +}); + +export const CompactMessageSchema = z.object({ + arbiter: addressSchema, + sponsor: addressSchema, + nonce: hashSchema, + expires: numericOrHexSchema, + id: numericOrHexSchema, + amount: numericOrHexSchema, + mandate: MandateSchema, +}); + +export const ContextSchema = z.object({ + dispensation: numericOrHexSchema, + dispensationUSD: z.string(), + spotOutputAmount: numericOrHexSchema, + quoteOutputAmountDirect: numericOrHexSchema, + quoteOutputAmountNet: numericOrHexSchema, + deltaAmount: numericOrHexSchema.optional(), + slippageBips: z + .number() + .int() + .min(0) + .max(10000) + .refine( + (n) => n >= 0 && n <= 10000, + "Slippage must be between 0 and 10000 basis points", + ) + .optional(), + witnessTypeString: z.string(), + witnessHash: hashSchema, + claimHash: hashSchema.optional(), +}); + +export const BroadcastRequestSchema = z.object({ + chainId: numericOrHexSchema, + compact: CompactMessageSchema, + sponsorSignature: z + .string() + .refine( + (str) => str === null || isEmptyHex(str) || is64ByteHex(str), + "Sponsor signature must be null, 0x, or a 64-byte hex string", + ) + .nullable(), + allocatorSignature: z + .string() + .refine(is64ByteHex, "Allocator signature must be a 64-byte hex string"), + context: ContextSchema, + claimHash: hashSchema.optional(), +}); + +export type BroadcastRequest = z.infer; diff --git a/yarn.lock b/yarn.lock index 085efc6f..13b16c55 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4386,6 +4386,15 @@ __metadata: languageName: node linkType: hard +"@types/ws@npm:^8": + version: 8.18.0 + resolution: "@types/ws@npm:8.18.0" + dependencies: + "@types/node": "npm:*" + checksum: 10/2a3bbf27690532627bfde8a215c0cf3a56680f339f972785b30d0b4665528275b9270c0a0839244610b0a3f2da4218c6dd741ceba1d173fde5c5091f2034b823 + languageName: node + linkType: hard + "@types/ws@npm:^8.2.2, @types/ws@npm:^8.5.4": version: 8.5.14 resolution: "@types/ws@npm:8.5.14" @@ -10790,6 +10799,7 @@ __metadata: "@libsql/client": "npm:^0.14.0" "@typechain/ethers-v5": "npm:^11.1.2" "@types/copyfiles": "npm:^2" + "@types/ws": "npm:^8" chalk: "npm:^5.3.0" copyfiles: "npm:^2.4.1" dotenv-flow: "npm:^4.1.0" @@ -10803,6 +10813,7 @@ __metadata: typescript: "npm:^5.6.3" uniqolor: "npm:^1.1.1" vitest: "npm:^2.1.8" + ws: "npm:^8.18.1" zod: "npm:^3.23.8" languageName: unknown linkType: soft @@ -12450,6 +12461,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.18.1": + version: 8.18.1 + resolution: "ws@npm:8.18.1" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10/3f38e9594f2af5b6324138e86b74df7d77bbb8e310bf8188679dd80bac0d1f47e51536a1923ac3365f31f3d8b25ea0b03e4ade466aa8292a86cd5defca64b19b + languageName: node + linkType: hard + "xhr-request-promise@npm:^0.1.2": version: 0.1.3 resolution: "xhr-request-promise@npm:0.1.3" From 57b95018a4406aee98db74a074508f1a81ee932c Mon Sep 17 00:00:00 2001 From: fernandomg Date: Wed, 12 Mar 2025 11:27:45 +0100 Subject: [PATCH 02/41] feat(compactX): add solver config --- .../compactX/config/allowBlockLists.ts | 32 +++++++++++++++++++ .../solver/solvers/compactX/config/index.ts | 4 +++ .../solvers/compactX/config/metadata.ts | 12 +++++++ typescript/solver/solvers/compactX/types.ts | 6 ++++ 4 files changed, 54 insertions(+) create mode 100644 typescript/solver/solvers/compactX/config/allowBlockLists.ts create mode 100644 typescript/solver/solvers/compactX/config/index.ts create mode 100644 typescript/solver/solvers/compactX/config/metadata.ts diff --git a/typescript/solver/solvers/compactX/config/allowBlockLists.ts b/typescript/solver/solvers/compactX/config/allowBlockLists.ts new file mode 100644 index 00000000..e06b7782 --- /dev/null +++ b/typescript/solver/solvers/compactX/config/allowBlockLists.ts @@ -0,0 +1,32 @@ +import { + type AllowBlockLists, + AllowBlockListsSchema, +} from "../../../config/types.js"; + +// Example config +// [ +// { +// senderAddress: "*", +// destinationDomain: ["1"], +// recipientAddress: "*" +// }, +// { +// senderAddress: ["0xca7f632e91B592178D83A70B404f398c0a51581F"], +// destinationDomain: ["42220", "43114"], +// recipientAddress: "*" +// }, +// { +// senderAddress: "*", +// destinationDomain: ["42161", "420"], +// recipientAddress: ["0xca7f632e91B592178D83A70B404f398c0a51581F"] +// } +// ] + +const allowBlockLists: AllowBlockLists = { + allowList: [], + blockList: [], +}; + +AllowBlockListsSchema.parse(allowBlockLists); + +export default allowBlockLists; diff --git a/typescript/solver/solvers/compactX/config/index.ts b/typescript/solver/solvers/compactX/config/index.ts new file mode 100644 index 00000000..43446c14 --- /dev/null +++ b/typescript/solver/solvers/compactX/config/index.ts @@ -0,0 +1,4 @@ +import allowBlockLists from "./allowBlockLists.js"; +import metadata from "./metadata.js"; + +export { allowBlockLists, metadata }; diff --git a/typescript/solver/solvers/compactX/config/metadata.ts b/typescript/solver/solvers/compactX/config/metadata.ts new file mode 100644 index 00000000..bf8a66e1 --- /dev/null +++ b/typescript/solver/solvers/compactX/config/metadata.ts @@ -0,0 +1,12 @@ +import { type CompactXMetadata, CompactXMetadataSchema } from "../types.js"; + +const metadata: CompactXMetadata = { + protocolName: "CompactX", + intentSources: [ + // TODO: redefine the intent source, as it's an endpoint + ], +}; + +CompactXMetadataSchema.parse(metadata); + +export default metadata; diff --git a/typescript/solver/solvers/compactX/types.ts b/typescript/solver/solvers/compactX/types.ts index 5de41790..8bdbfa23 100644 --- a/typescript/solver/solvers/compactX/types.ts +++ b/typescript/solver/solvers/compactX/types.ts @@ -1,5 +1,7 @@ import z from "zod"; +import { BaseMetadataSchema } from "../types.js"; + // Custom validators and constants const isHexString = (str: string) => /^0x[0-9a-fA-F]*$/.test(str); const isAddress = (str: string) => isHexString(str) && str.length === 42; // 0x + 40 chars (20 bytes) @@ -94,3 +96,7 @@ export const BroadcastRequestSchema = z.object({ }); export type BroadcastRequest = z.infer; + +export const CompactXMetadataSchema = BaseMetadataSchema.extend({}); + +export type CompactXMetadata = z.infer; From 7df218f19ddbbe4d46f6501ea4006d5ffb2be79c Mon Sep 17 00:00:00 2001 From: fernandomg Date: Wed, 12 Mar 2025 11:31:23 +0100 Subject: [PATCH 03/41] feat(compactX): add rules directory --- typescript/solver/solvers/compactX/rules/index.ts | 1 + 1 file changed, 1 insertion(+) create mode 100644 typescript/solver/solvers/compactX/rules/index.ts diff --git a/typescript/solver/solvers/compactX/rules/index.ts b/typescript/solver/solvers/compactX/rules/index.ts new file mode 100644 index 00000000..2234b9ca --- /dev/null +++ b/typescript/solver/solvers/compactX/rules/index.ts @@ -0,0 +1 @@ +export { }; From 00b637b28c0c3b574b9884e8742c651b65dc8e07 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Wed, 12 Mar 2025 12:02:01 +0100 Subject: [PATCH 04/41] feat: add contract abi --- typescript/solver/solvers/compactX/contracts/TheCompact.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 typescript/solver/solvers/compactX/contracts/TheCompact.json diff --git a/typescript/solver/solvers/compactX/contracts/TheCompact.json b/typescript/solver/solvers/compactX/contracts/TheCompact.json new file mode 100644 index 00000000..a34316f4 --- /dev/null +++ b/typescript/solver/solvers/compactX/contracts/TheCompact.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"__activateTstore","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"__registerAllocator","inputs":[{"name":"allocator","type":"address","internalType":"address"},{"name":"proof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint96","internalType":"uint96"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedTransfer","inputs":[{"name":"transfer","type":"tuple","internalType":"struct BatchTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"transfers","type":"tuple[]","internalType":"struct TransferComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"recipient","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedTransfer","inputs":[{"name":"transfer","type":"tuple","internalType":"struct SplitBatchTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"transfers","type":"tuple[]","internalType":"struct SplitByIdComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedTransfer","inputs":[{"name":"transfer","type":"tuple","internalType":"struct SplitTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"recipients","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedTransfer","inputs":[{"name":"transfer","type":"tuple","internalType":"struct BasicTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedWithdrawal","inputs":[{"name":"withdrawal","type":"tuple","internalType":"struct BasicTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedWithdrawal","inputs":[{"name":"withdrawal","type":"tuple","internalType":"struct SplitBatchTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"transfers","type":"tuple[]","internalType":"struct SplitByIdComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedWithdrawal","inputs":[{"name":"withdrawal","type":"tuple","internalType":"struct BatchTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"transfers","type":"tuple[]","internalType":"struct TransferComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"recipient","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedWithdrawal","inputs":[{"name":"withdrawal","type":"tuple","internalType":"struct SplitTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"recipients","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BasicClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct MultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct MultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct MultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct MultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BasicClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"consume","inputs":[{"name":"nonces","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint8","internalType":"enum ResetPeriod"},{"name":"","type":"uint8","internalType":"enum Scope"},{"name":"recipient","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"deposit","inputs":[{"name":"allocator","type":"address","internalType":"address"},{"name":"resetPeriod","type":"uint8","internalType":"enum ResetPeriod"},{"name":"scope","type":"uint8","internalType":"enum Scope"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"deposit","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"allocator","type":"address","internalType":"address"},{"name":"resetPeriod","type":"uint8","internalType":"enum ResetPeriod"},{"name":"scope","type":"uint8","internalType":"enum Scope"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"deposit","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"allocator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"deposit","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"permitted","type":"tuple[]","internalType":"struct ISignatureTransfer.TokenPermissions[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint8","internalType":"enum ResetPeriod"},{"name":"","type":"uint8","internalType":"enum Scope"},{"name":"recipient","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"function","name":"deposit","inputs":[{"name":"idsAndAmounts","type":"uint256[2][]","internalType":"uint256[2][]"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"deposit","inputs":[{"name":"allocator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"depositAndRegister","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"depositor","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"resetPeriod","type":"uint8","internalType":"enum ResetPeriod"},{"name":"","type":"uint8","internalType":"enum Scope"},{"name":"claimHash","type":"bytes32","internalType":"bytes32"},{"name":"compactCategory","type":"uint8","internalType":"enum CompactCategory"},{"name":"witness","type":"string","internalType":"string"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositAndRegister","inputs":[{"name":"idsAndAmounts","type":"uint256[2][]","internalType":"uint256[2][]"},{"name":"claimHashesAndTypehashes","type":"bytes32[2][]","internalType":"bytes32[2][]"},{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"depositAndRegister","inputs":[{"name":"allocator","type":"address","internalType":"address"},{"name":"claimHash","type":"bytes32","internalType":"bytes32"},{"name":"typehash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"depositAndRegister","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"permitted","type":"tuple[]","internalType":"struct ISignatureTransfer.TokenPermissions[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"},{"name":"resetPeriod","type":"uint8","internalType":"enum ResetPeriod"},{"name":"","type":"uint8","internalType":"enum Scope"},{"name":"claimHash","type":"bytes32","internalType":"bytes32"},{"name":"compactCategory","type":"uint8","internalType":"enum CompactCategory"},{"name":"witness","type":"string","internalType":"string"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"function","name":"depositAndRegister","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"allocator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"claimHash","type":"bytes32","internalType":"bytes32"},{"name":"typehash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"disableForcedWithdrawal","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"enableForcedWithdrawal","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"extsload","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"extsload","inputs":[{"name":"slots","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"exttload","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"forcedWithdrawal","inputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getForcedWithdrawalStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ForcedWithdrawalStatus"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLockDetails","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint8","internalType":"enum ResetPeriod"},{"name":"","type":"uint8","internalType":"enum Scope"}],"stateMutability":"view"},{"type":"function","name":"getRegistrationStatus","inputs":[{"name":"sponsor","type":"address","internalType":"address"},{"name":"claimHash","type":"bytes32","internalType":"bytes32"},{"name":"typehash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"isActive","type":"bool","internalType":"bool"},{"name":"expires","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"hasConsumedAllocatorNonce","inputs":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"allocator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOperator","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"status","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"register","inputs":[{"name":"claimHashesAndTypehashes","type":"bytes32[2][]","internalType":"bytes32[2][]"},{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"register","inputs":[{"name":"claimHash","type":"bytes32","internalType":"bytes32"},{"name":"typehash","type":"bytes32","internalType":"bytes32"},{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"setOperator","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"event","name":"AllocatorRegistered","inputs":[{"name":"allocatorId","type":"uint96","indexed":false,"internalType":"uint96"},{"name":"allocator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Claim","inputs":[{"name":"sponsor","type":"address","indexed":true,"internalType":"address"},{"name":"allocator","type":"address","indexed":true,"internalType":"address"},{"name":"arbiter","type":"address","indexed":true,"internalType":"address"},{"name":"claimHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CompactRegistered","inputs":[{"name":"sponsor","type":"address","indexed":true,"internalType":"address"},{"name":"claimHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"typehash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"expires","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ForcedWithdrawalStatusUpdated","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"activating","type":"bool","indexed":false,"internalType":"bool"},{"name":"withdrawableAt","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorSet","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"by","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AllocatedAmountExceeded","inputs":[{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"providedAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BalanceOverflow","inputs":[]},{"type":"error","name":"Expired","inputs":[{"name":"expiration","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ForcedWithdrawalAlreadyDisabled","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InsufficientPermission","inputs":[]},{"type":"error","name":"InvalidBatchAllocation","inputs":[]},{"type":"error","name":"InvalidBatchDepositStructure","inputs":[]},{"type":"error","name":"InvalidDepositBalanceChange","inputs":[]},{"type":"error","name":"InvalidDepositTokenOrdering","inputs":[]},{"type":"error","name":"InvalidRegistrationDuration","inputs":[{"name":"duration","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidRegistrationProof","inputs":[{"name":"allocator","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidScope","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidToken","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyDirectCalls","inputs":[]},{"type":"error","name":"Permit2CallFailed","inputs":[]},{"type":"error","name":"PrematureWithdrawal","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ReentrantCall","inputs":[{"name":"existingCaller","type":"address","internalType":"address"}]},{"type":"error","name":"TStoreAlreadyActivated","inputs":[]},{"type":"error","name":"TStoreNotSupported","inputs":[]},{"type":"error","name":"TloadTestContractDeploymentFailed","inputs":[]},{"type":"error","name":"UnallocatedTransfer","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101a060405234610085576100126100a8565b604051615ff19081610248823960805181611cda015260a05181611caa015260c05181613a4c015260e051816139d301526101005181613bac015261012051816137eb015261014051816137ca0152610160518181816115170152818161252e015261315001526101805181614eb10152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040513d5f823e3d90fd5b696002601e613d5c3d52f35f52600a60165ff06001600160a01b03811615610238575f80808084600a5a04fa3d15610233573d6001600160401b0381116102195760405190601f8101601f19908116603f011682016001600160401b038111838210176102195760405281525f60203d92013e5b801561021e57600160c052600360e0526005610100525b60a05260805246610120526101c74660a090604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208301527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d604083015260608201523060808201522090565b61014052604051613e2a8082016001600160401b03811183821017610219578291616239833903905ff0801561021457610160526e22d473030f116ddee9f6b43ac78ba33b151561018052565b61009d565b610089565b600260c052600460e052600661010052610133565b61011c565b632aea588760e01b5f5260045ffdfe6080806040526004361015610012575f80fd5b5f3560e01c908162ad800c1461312757508062fdd58e146130eb57806301ffc9a7146130a757806303417d721461309057806306659b7f1461307b57806306e8cc181461306657806306fdde031461303c57806308e600ee14613027578063095bcdb614612f4e5780630a133cf214612f395780630d57fec914612f245780630f5eeadf14612f0f578063107d4ee414612ec857806310d8267214612dff57806312a1e6ea14612dea57806312d4888514612d7a57806312f9d21e14612d6557806313589bfe14612d50578063138cd81914612d2a578063144bd5b514612cc85780631486590714612cb3578063176f405a14612c525780631b98b63f14612c3d5780631bb81a8114612c285780631d474b1414612c135780631e2eaeaf14612bf7578063200f0c4d14612b8f578063206620a114612b3f57806325d7776b14612b155780632737edb914612afe57806327c777a914612a815780632a9c4d0d146129515780632acd5dc31461293c5780632c4bbd17146129255780632e3ff2f7146128c15780632e4d55cc146128ac57806331bbae3e1461286e57806332e2a80314612859578063341056c5146128445780633644e5151461282a578063393c33e21461272f5780633f458a19146127185780633f47e662146126fc5780634073c0cc146126d9578063409b3a7e146126c4578063414fd914146126af578063418a23f51461269a578063426a849314612636578063440a0ec3146125ed57806344b97d78146125ba5780634ad5205e146125a35780634c1024161461258c5780634d585fbf146125755780634e41a1fb146125015780634e55a548146124ea578063507cb46f1461249057806353e5006714612350578063548439e114612339578063558a7297146122c4578063577cdc64146122ad5780635920212814612296578063598af9e7146122605780635ac2ccf1146122495780635b15bfd9146121dd5780635b6016ec146121765780635d76a382146121615780635e6c91ff1461214c57806362a420bb1461211557806363f5b1ad146120d8578063648705561461209a578063671b3bd61461202a5780636a9a4c4414611f895780636af2791b14611f745780637003019014611f125780637112406d14611dc857806371f5012714611db1578063721f629214611d765780637423eb3c14611c9157806376d531d414611c7c5780638340f54914611c41578063843719f014611bf15780638678555914611bdc57806388d247c414611bc557806388da84d414611bae57806389ce066114611b59578063935ed2ba14611b1e5780639730f4fd14611b07578063996d3aac14611adc57806399cf8b9b146119e85780639be5f537146119d1578063a23941471461191c578063a4c7bd93146118e2578063aa41c87e14611895578063aa8b845d14611863578063b20abc481461184e578063b24849b714611824578063b3244389146117ee578063b4039fc2146117c1578063b54baefd1461178c578063b602ae021461174a578063b6363cf214611705578063b7ace047146116c0578063b8a5bbad14611682578063bc95bd7a14611637578063c4d195e8146115f0578063c8091041146115b4578063c87b56dd14611432578063ca6cc39f146113e5578063d204f11e1461139a578063d2a1805f14611379578063d34ddc8214611362578063d350188c1461134d578063d3917f3c146112ff578063d921f36a146112b8578063da15ee7f1461112f578063da2f268b146110e6578063db04bc72146110d1578063dbd035ff14611059578063dd589cfc14610fdc578063e0565c4914610f8e578063e05c6e7d14610f41578063e6c5b65414610ee6578063e8672f9314610ed1578063ea14532e14610e6a578063eaa6748314610e33578063eb19600814610df9578063eb35a6d214610d89578063eb43182114610d4d578063ebcbd7b514610cf6578063ecaca40e14610c8d578063eea77a7814610c18578063eed634ad14610c03578063eed9357214610bb8578063f135baaa14610b9c578063f23d923d14610b2e578063f2f0def114610ae9578063f340fa0114610ab8578063f44a345214610a5a578063f745381c14610a24578063f95d3d16146109ea578063fa1c55001461098a578063fb75fb6914610924578063fcfe431a146108c1578063fdc060e7146107d75763fe99049a14610655575f80fd5b60803660031901126107d3576106696131bd565b6106716131ff565b6044359160643561068d60016001605c1b038560a01c16614862565b9260018060a01b0383169260018060a01b038216945f60208160a460405194828052601c8601948591631a808f91885233868901528b60408901528c60608901528d60808901528a60a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a82293940603452602852336014526034602020541561077f575b84601452604060142080548084116107725783900390556028528360145260406014208054908282019182106107655755335f526020525f516020615f655f395f51905f5260405fa45f603452602060405160018152f35b6389560ca15f526004601cfd5b63f4d678b85f526004601cfd5b845f5260545f20805460018101610798575b505061070d565b8084116107ab5783900390555f80610791565b63deda90305f526004601cfd5b3d1517156107cb5763014c931060a49252fd5b3d5f803e3d5ffd5b5f80fd5b346107d3576107e536613408565b608081015f806107f5838561377f565b905f915b80831061089c5750505061088a576108796035928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b809335613fcf565b614012565b61377f565b9061527d565b602060405160018152f35b634e487b715f5260116020526024601cfd5b90919260019060206108af8685876138cd565b013580960195861017930191906107f9565b346107d357602061091a601760356108d8366133d4565b6101806108f96108f36108ed83850185613c23565b90614bee565b83615c0a565b9290919361090b610160820135613c58565b926109146137c8565b95614d26565b6040519015158152f35b346107d357602061091a603461093936613249565b61095b61095361094d610100840184613898565b90614e53565b826030615651565b9061010061096b3615848461532d565b916109796001361517613cdd565b926109826137c8565b946021615e45565b346107d357602061091a603461099f3661327d565b6109bb6109b36108ed610100840184613c23565b826031615651565b906109c960e0820135613c58565b6101006109d96002361517613cdd565b926109e26137c8565b946026615e45565b346107d357602061091a60356109ff36613215565b610120610a10604036151783615bc9565b92919390610a1c6137c8565b946024615e45565b346107d357602061091a60176034610a3b3661333c565b610a4481615571565b90610100610a506137c8565b93361592806152df565b346107d357602061091a6035610a6f36613249565b610a8a610a826108ed60e0840184613c23565b82602b615651565b9060e0610a993615848461532d565b91610aa76001361517613cdd565b92610ab06137c8565b94601f615e45565b60203660031901126107d3576020610ad6610ad16131bd565b614320565b610ae134823361437c565b604051908152f35b346107d357602061091a60176035610b00366133a0565b610b19610b1361094d60e0840184613898565b82615834565b9060e0610b246137c8565b93361592806151a7565b346107d357602061091a6035610b4336613215565b3615610100610b73610b6b60408417859060e0910160c08101355f52013560205260405f2090565b846030615651565b92610b8b6002610b8485878561532d565b9417613cdd565b92610b946137c8565b946023615e45565b346107d35760203660031901126107d3576004355c5f5260205ff35b346107d357602061091a6035610bcd36613215565b610be7610be16108ed610140840184613c23565b82615b8a565b9091610140610bfa610120830135613c58565b916109e26137c8565b346107d357602061091a6034610bcd36613215565b346107d357602061091a6035610c2d366133d4565b361590610c5b610c5360808417839060e0910160c08101355f52013560205260405f2090565b826032615651565b91610140610c6a82858561532d565b92610c7e6002610b84610120840135613c58565b93610c876137c8565b95614239565b346107d35760a03660031901126107d3576020610ca86131bd565b610cd9610cc4610cb66131ff565b610cbf846148dc565b6142e2565b91610ccd6139d1565b8260443591339061487c565b610ce1613baa565b610ae1610258361517608435606435336141b4565b346107d357602061091a6034610d0b366134d1565b610180610d326108f360c0361517849060e0910160c08101355f52013560205260405f2090565b92909193610d44610160820135613c58565b92610c876137c8565b346107d357602061091a6034610d623661327d565b610120610d7d610d7761094d83850185613898565b83615baa565b929193906109826137c8565b346107d35760203660031901126107d3576020600435610ae162ffffff77278d00094890015180000f3c00025800003c00000f000001601860078560fc1c16021c1642018281610df38195339190604051926014526341d0e04b5f526034526038601c2091604052565b556148f6565b346107d357602061091a6035610e0e3661333c565b610100610e1a826155cc565b919092610e2a6002361517613cdd565b92610a1c6137c8565b346107d357602061091a6034610e48366133a0565b610e5b610a8261094d60e0840184613898565b9060e061096b3615848461532d565b346107d357602061091a60176034610e813661333c565b610e95610c5361094d610140840184613898565b90610ea23615838361532d565b90610140610eb4610120830135613c58565b91610ec26002361517613cdd565b93610ecb6137c8565b956151a7565b346107d357602061091a60346109ff36613215565b346107d357602061091a6034610efb3661327d565b610f20610f188260e09060c08101355f52013560205260405f2090565b82602f615651565b90361560c0610f3160028317613cdd565b92610f3a6137c8565b9480614239565b346107d357602061091a6035610f563661333c565b610f5f81615250565b90610f6d60e0820135613c58565b610100610f7d6002361517613cdd565b92610f866137c8565b946025615e45565b346107d357602061091a6034610fa336613215565b6101003615610fd1610fcb60408317859060e0910160c08101355f52013560205260405f2090565b84615b66565b929093610f3a6137c8565b346107d357602061091a610fef3661343b565b6040515f516020615fa55f395f51905f528152338482015233604082015261103f8260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b608061104d60a084016137b4565b92013591336034615c31565b346107d35760203660031901126107d3576004356001600160401b0381116107d357611089903690600401613370565b6040519160408360208152836020820152019160051b8301916020806040850193925b83355481520191019084838210156110c85750602080916110ac565b60408186030190f35b346107d357602061091a6034610a6f36613249565b346107d35760403660031901126107d35760206004356111046131ff565b906040519183526303f37b1a600c52806040526001603760282054918360405260ff161b1615158152f35b6101603660031901126107d3576111446131bd565b6024356001600160401b0381116107d35761116390369060040161346e565b61116e9291926131d3565b5060a4359060088210156107d357600260c43510156107d35760e43591610104359460038610156107d357610124356001600160401b0381116107d3576111b990369060040161330f565b9661014435906001600160401b0382116107d357869588926111df90369060040161330f565b6111ed8584899e949e614984565b96819f939183839b949b0160051b90602001209561120b8b84614a8c565b83839992993615976001891792611221946143c6565b9f9091604051925f5260205260405260605f206080890152604052601f19916002811460061b90600114600b020190801515010160f301169060071b01610180019060c01761126f94613e72565b611279948a614b38565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff16916112a6936141b4565b6040516112b48192826135c0565b0390f35b346107d357602061091a601760356112cf366132db565b6101806112e46108f361094d83850185613898565b929091936112f6610160820135613c58565b92610ecb6137c8565b346107d357602061091a6035611314366133d4565b61014061134161133b6080361517849060e0910160c08101355f52013560205260405f2090565b83615bd9565b92919390610b946137c8565b346107d357602061091a6034610e0e3661333c565b346107d357602061091a60176034610b00366133a0565b346107d357602061091a603561138e366132db565b610140610a10826155f4565b346107d357602061091a601760346113b13661343b565b6113c4610a8261094d60a0840184613898565b90361560a06113d560018317613cdd565b926113de6137c8565b94806151a7565b346107d357602061091a60356113fa36613215565b61140381615250565b9061141160e0820135613c58565b6101006114216002361517613cdd565b9261142a6137c8565b946022615e45565b346107d35760203660031901126107d357604051600435608082016001600160401b038111838210176115a05760409081525f60208401818152918401818152606085019182526001600160a01b03848116865261149c60a086901c60016001605c1b0316614862565b16835260078460fc1c16600881101561158c5781528360ff1c90600282101561158c5790825260405163d637ca8d60e01b815294516001600160a01b03908116600487015292519092166024850152905161150b91906115009060448601906135a6565b5160648401906135b3565b60848201525f8160a4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575b5060405191829182613193565b61157b91503d805f833e61157381836135f9565b810190613635565b82611552565b6040513d5f823e3d90fd5b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b60403660031901126107d3576004356001600160401b0381116107d3576115e261087f91369060040161346e565b6115ea6131ff565b916138dd565b346107d357602061091a601760356116073661327d565b61162161161b6108ed610100840184613c23565b82615b66565b9061010061162d6137c8565b9336159280614d26565b346107d357602061091a6017603561164e366133a0565b611661610f186108ed60c0840184613c23565b90361560c061167260028317613cdd565b9261167b6137c8565b9480614d26565b346107d357602061091a60176034611699366133a0565b6116a281615516565b90361560a06116b082613cdd565b926116b96137c8565b94806152df565b346107d357602061091a601760346116d736613249565b6116f4610f188260e09060c08101355f52013560205260405f2090565b90361560c06116b060028317613cdd565b346107d35760403660031901126107d35761171e6131bd565b6117266131ff565b9067edcaa89a822939406020526014525f5260206034600c20546040519015158152f35b346107d357602061091a603561175f36613249565b361561176d81836028615651565b9061177781613cdd565b916117806137c8565b9360a083179180614239565b346107d357602061091a601760346117a336613249565b6117b6610b136108ed60e0840184613c23565b9060e061162d6137c8565b346107d357602061091a60346117d63661327d565b60e06117e182615524565b919092610e2a3615613cdd565b346107d357602061091a603461180336613215565b61014061181861133b6108ed83850185613c23565b92919390610ab06137c8565b346107d357602061091a60346118393661333c565b610120611818610d776108ed83850185613c23565b346107d357602061091a60356118393661333c565b602061187c610ae1611874366132b1565b939091614320565b9261188834853361437c565b61025836151791336141b4565b346107d357602061091a60346118aa3661333c565b6118be610be161094d610140840184613898565b90916101406118d1610120830135613c58565b916118da6137c8565b946027615e45565b346107d357602061091a60346118f7366132db565b61190081615542565b9091610140611913610120830135613c58565b91610f866137c8565b346107d35761192a36613408565b608081015f8061193a838561377f565b905f915b8083106119ac5750505061088a576108796034928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b90919260019060206119bf8685876138cd565b0135809601958610179301919061193e565b346107d357602061091a6017603461164e366133a0565b6101203660031901126107d3576119fd6131bd565b506024356001600160401b0381116107d357611a1d90369060040161346e565b611a256131d3565b50600860a43510156107d357600260c43510156107d35760e435916001600160a01b03831683036107d35761010435906001600160401b0382116107d3576112b493611aca611a7b611ad094369060040161330f565b959093611a89848383614984565b9592611ab660c09b9399929b361592611aa460848517613d1e565b611aae8d83614a8c565b949094613db8565b608084015260071b61022001921790613e72565b86614b38565b604051918291826135c0565b346107d357602061091a60176034611af33661327d565b611afc81615774565b9060e0610a506137c8565b346107d357602061091a601760346116073661327d565b346107d357602061091a60176034611b3536613539565b611b48610f1861094d60c0840184613898565b90361560c06113d560028317613cdd565b346107d357602061091a6035611b6e366133d4565b611b92610be16080361517839060e0910160c08101355f52013560205260405f2090565b9091610140611ba5610120830135613c58565b9161142a6137c8565b346107d357602061091a60176035610e813661333c565b346107d357602061091a60176035611b3536613539565b346107d357602061091a603461175f36613249565b346107d357602061091a60176035611c08366132db565b611c118161559c565b9091610140611c24610120830135613c58565b91611c326002361517613cdd565b93611c3b6137c8565b956152df565b346107d3576020611c63611c74611c573661356c565b919390610cbf856148dc565b8093611c6d6139d1565b339061487c565b610ae1613baa565b346107d357602061091a6035610efb3661327d565b346107d3575f3660031901126107d357323303611d67577f00000000000000000000000000000000000000000000000000000000000000008015611d5c575b611d4d575f8080807f0000000000000000000000000000000000000000000000000000000000000000600a5a04fa3d15611d48573d611d0e8161361a565b90611d1c60405192836135f9565b81525f60203d92013e5b15611d39575f805460ff19166001179055005b6370a4078f60e01b5f5260045ffd5b611d26565b630f45b98b60e41b5f5260045ffd5b5060ff5f5416611cd0565b63096650c560e21b5f5260045ffd5b346107d357602061091a60176035611d8d36613539565b611da0610a826108ed60a0840184613c23565b90361560a061167260018317613cdd565b346107d357602061091a60176035611699366133a0565b346107d357611dd63661349e565b60608101611de48183613898565b8060069492941b81810460401482151715611efe57611e0290614bad565b935f915f5b818110611e955750505061088a57611e4d81611e2d856020611e52975191012082615373565b611e476039611e3c8785613898565b6020860135916140ed565b90614012565b613898565b5f5b818110611e6657602060405160018152f35b80611e8f6034611e796001948688614192565b611e86602082018261377f565b9091359161527d565b01611e54565b611ea0818385614192565b5f90611eaf602082018261377f565b905f915b808310611ed957505050906040839260019460061b8b0190356020820152015201611e07565b9091976001906020611eec8b85876138cd565b01358096019586101798019190611eb3565b634e487b7160e01b5f52601160045260245ffd5b346107d35760203660031901126107d357600435611f4981339190604051926014526341d0e04b5f526034526038601c2091604052565b805415611f5f57905f61087f92553615906148f6565b5063e632dbad5f52336020526040526044601cfd5b346107d357602061091a6034610c2d366133d4565b346107d3576080611f9936613408565b611fed611fe460608301611fde84611fc6611fb4848361377f565b6040519060061b809282372082615373565b611e47611fd3858461377f565b60208501359161406f565b8361377f565b939092016137b4565b905f5b83811061200257602060405160018152f35b8061202361201360019387866138cd565b6020810135903586336035615c31565b5001611ff0565b346107d35760c03660031901126107d3576120436131bd565b61204b6131ff565b906044359160088310156107d3576064359160028310156107d357612087611c74926020956120786131e9565b95612082856148dc565b61434b565b80936120916139d1565b6084359261487c565b346107d357602061091a601760356120b136613505565b6101806120bd82615626565b929091936120cf610160820135613c58565b92611c3b6137c8565b346107d357602061091a60346120ed3661333c565b361560e061210060408317846028615651565b92610b8b61210f84868461532d565b93613cdd565b346107d357602061091a6017603561212c36613249565b61214061161b61094d610100840184613898565b90610100610b246137c8565b346107d357602061091a6034611b6e366133d4565b346107d357602061091a60356118aa3661333c565b60603660031901126107d3576004356001600160401b0381116107d3576121a190369060040161346e565b602435906001600160401b0382116107d3576020926121d46121ca61091a94369060040161346e565b92909333916138dd565b60443591614159565b346107d35760203660031901126107d357608060043561224761220b60016001605c1b038360a01c16614862565b604080516001600160a01b038086168252909216602083015290929061223a90840160fc83901c6007166135a6565b606083019060ff1c6135b3565bf35b346107d357602061091a601760346108d8366133d4565b346107d35761226e3661356c565b9167edcaa89a822939406034526028526014525f52602060545f20545f603452604051908152f35b346107d357602061091a60176034611d8d36613539565b346107d357602061091a6017603461212c36613249565b60403660031901126107d3576122d86131bd565b602435908115158092036107d35767edcaa89a82293940602052336014525f52806034600c2055602052600c5160601c337fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267602080a3602060405160018152f35b346107d357602061091a601760356113b13661343b565b346107d3576101803660031901126107d35761236a6131bd565b6123726131d3565b9061237b6131e9565b5060c43560088110156107d357600260e43510156107d3576101043590610124359060038210156107d357610144356001600160401b0381116107d3576123c690369060040161330f565b94909261016435956001600160401b0387116107d35787966123ec90369060040161330f565b9890916123f885613d53565b839d93969297919436159b61240e938d936143c6565b9990604051905f52866020528b60405260605f20610100860152604052601f1961016085015161017f0116906101401761244794613e72565b61245093613eca565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff169161247d936141b4565b612485613baa565b604051908152602090f35b60803660031901126107d3576124a46131bd565b60243560088110156107d3576044359060028210156107d357606435916001600160a01b03831683036107d357602093610ae1926124e1926142b1565b9182349161437c565b346107d357602061091a601760356117a336613249565b346107d35760203660031901126107d357604051634e41a1fb60e01b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575060405191829182613193565b346107d357602061091a601760346120b136613505565b346107d357602061091a60176034611c08366132db565b346107d357602061091a60176035611af33661327d565b346107d357602061091a60346125cf3661333c565b6125d881615774565b9060e06125e36137c8565b9336159280614239565b346107d3576040612627612600366132b1565b91605892601c926040519260148401526368a30dd083526034830152605482015201205490565b81519042811182526020820152f35b61263f366132b1565b909167edcaa89a8229394060345233602852601452815f528060545f20555f5260205160601c337fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a760205fa45f603452602060405160018152f35b346107d357602061091a6035610d0b366134d1565b346107d357602061091a603461138e366132db565b346107d357602061091a6034610f563661333c565b346107d35760603660031901126107d35761087f604435602435600435336141b4565b346107d35760203660031901126107d357602060405160128152f35b346107d357602061091a60176035610a3b3661333c565b346107d35761273d3661349e565b6060810161274b8183613898565b8060069492941b81810460401482151715611efe5761276990614bad565b935f915f5b8181106127c15750505061088a57611e4d81611e2d856020612794975191012082615373565b5f5b8181106127a857602060405160018152f35b806127bb6035611e796001948688614192565b01612796565b6127cc818385614192565b5f906127db602082018261377f565b905f915b80831061280557505050906040839260019460061b8b019035602082015201520161276e565b90919760019060206128188b85876138cd565b013580960195861017980191906127df565b346107d3575f3660031901126107d3576020610ae16137c8565b346107d357602061091a60356118f7366132db565b346107d357602061091a60346113fa36613215565b346107d35760403660031901126107d3576004356001600160401b0381116107d35761091a6128a3602092369060040161346e565b60243591614159565b346107d357602061091a60356125cf3661333c565b346107d35760603660031901126107d3576004356128dd6131ff565b60408051336014526341d0e04b5f5260348490526038601c209152544281119015176129145761091a906020926044359133613697565b50639287bcb05f526020526024601cfd5b346107d357602061091a601760346112cf366132db565b346107d357602061091a603561099f3661327d565b346107d35760403660031901126107d35761296a6131bd565b6024356001600160401b0381116107d35761298990369060040161330f565b6001600160a01b03909216916055811491338414843b1515179183612a35575b50501715612a25576129ba81613ef9565b806744036fc77deaed23605c1b1791825480612a1157508060209355815f5282527fc54dcaa67a8fd7b4a9aa6fd57351934c792613d5ec1acbd65274270e6de8f7e460405fa16001600160601b0360405191168152f35b8263c18b0e975f526020526040526044601cfd5b634e7f492b5f526020526024601cfd5b809192935015612a6d57808260405137604051206001600160a01b031683146001600160f81b031991358216909114169083806129a9565b634e487b7160e01b5f52603260045260245ffd5b346107d357602061091a612a943661343b565b6040515f516020615fa55f395f51905f5281523384820152336040820152612ae48260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b6080612af260a084016137b4565b92013591336035615c31565b346107d357602061091a601760356116d736613249565b346107d357602061091a6035612b2a3661333c565b610140610d7d61133b61094d83850185613898565b346107d357602061091a6035612b5436613249565b612b686109b361094d610100840184613898565b90612b7660e0820135613c58565b610100612b866002361517613cdd565b926118da6137c8565b346107d3576080612b9f36613408565b612bba611fe460608301611fde84611fc6611fb4848361377f565b905f5b838110612bcf57602060405160018152f35b80612bf0612be060019387866138cd565b6020810135903586336034615c31565b5001612bbd565b346107d35760203660031901126107d357600435545f5260205ff35b346107d357602061091a6034611314366133d4565b346107d357602061091a60356120ed3661333c565b346107d357602061091a6035610fa336613215565b346107d357602061091a60176034612c6936613215565b612c7d610c536108ed610140840184613c23565b90612c8a3615838361532d565b90610140612c9c610120830135613c58565b91612caa6002361517613cdd565b936109146137c8565b346107d357602061091a603561180336613215565b346107d35760403660031901126107d357612d06612ce46131bd565b602435909190604051926014526341d0e04b5f526034526038601c2091604052565b546040518115154283116002030291600383101561158c5760409282526020820152f35b346107d357602061091a6035612d3f366132db565b610120611341604036151783615bc9565b346107d357602061091a6035610e48366133a0565b346107d357602061091a6034610b4336613215565b346107d35760203660031901126107d3576004356001600160401b0381116107d357612daa903690600401613370565b90612dbc612db733613ef9565b613fa8565b809160051b01905b818110612dd657602060405160018152f35b602090612de4338235613fcf565b01612dc4565b346107d357602061091a6034612b2a3661333c565b346107d3576101403660031901126107d357612e196131bd565b612e216131d3565b50612e2a6131e9565b50600860c43510156107d357600260e43510156107d35761010435906001600160a01b03821682036107d357610124356001600160401b0381116107d357602092612ead92612e80611c7493369060040161330f565b929091612ec3361594612e9560a48717613d1e565b94612e9f84613d53565b9b839c9a939991929a613db8565b6101008201526101406102008317921790613e72565b613eca565b346107d357602061091a6034612edd3661327d565b612ef16109536108ed610100840184613c23565b90610100612f013615848461532d565b91610aa76002361517613cdd565b346107d357602061091a6035612edd3661327d565b346107d357602061091a6034612d3f366132db565b346107d357602061091a603561093936613249565b612f57366132b1565b612f6f60016001605c1b038360a09594951c16614862565b9160018060a01b038116925f60208160a460405194828052601c8601948591631a808f91885233868901523360408901528a60608901528b60808901528960a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a8229394060205233601452835f5260405f208054808411610772578390039055601452825f5260405f208054908282019182106107655755335f52602052335f516020615f655f395f51905f5260405fa4602060405160018152f35b346107d357602061091a6035610d623661327d565b346107d3575f3660031901126107d357602080526b0b54686520436f6d70616374604b5260606020f35b346107d357602061091a60356117d63661327d565b346107d357602061091a6034612b5436613249565b346107d357602061091a60176035612c6936613215565b346107d35760203660031901126107d3576004356001600160e01b0319811681036107d35760209060e01c604051906301ffc9a7630f632fb3821491141715158152f35b346107d35760403660031901126107d3576131046131bd565b67edcaa89a822939406020526014526024355f52602060405f2054604051908152f35b346107d35760203660031901126107d357622b600360e21b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f5750604051918291825b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036107d357565b608435906001600160a01b03821682036107d357565b60a435906001600160a01b03821682036107d357565b602435906001600160a01b03821682036107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101209082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101409082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024359060443590565b60206003198201126107d357600435906001600160401b0382116107d3576101a09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d357602083818601950101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101609082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460051b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101c09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760a09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760c09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460061b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d35760809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576102009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101e09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760e09082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024356001600160a01b03811681036107d3579060443590565b90600882101561158c5752565b90600282101561158c5752565b60206040818301928281528451809452019201905f5b8181106135e35750505090565b82518452602093840193909201916001016135d6565b90601f801991011681019081106001600160401b038211176115a057604052565b6001600160401b0381116115a057601f01601f191660200190565b6020818303126107d3578051906001600160401b0382116107d3570181601f820112156107d3578051906136688261361a565b9261367660405194856135f9565b828452602083830101116107d357815f9260208093018386015e8301015290565b909291926136a36139d1565b6001600160a01b0384168061372457505f9081808538935af115613717575b67edcaa89a8229394060205280601452825f5260405f209182549283821161077257815f9403905533835260205260018060a01b03165f516020615f655f395f51905f52604083a4613712613baa565b600190565b63b12d13eb5f526004601cfd5b9091926137313083613b85565b9260145260345263a9059cbb60601b5f5260205f6044601082855af13d1560015f51141716156137725761376a905f6034523090613b85565b9003906136c2565b6390b8ec185f526004601cfd5b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160061b360383136107d357565b356001600160a01b03811681036107d35790565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046186138135790565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208201527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60408201524660608201523060808201522090565b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160051b360383136107d357565b9190811015612a6d5760061b0190565b91906138e76139d1565b82359060018060a01b03821615916020850135341415831634158414178215176139c4578060016001605c1b03849260a01c1661392381613fa8565b936139b2575b505b81811061394157505050505061393f613baa565b565b61394c8183876138cd565b80359060016001605c1b038260a01c166001600160601b0386168103613991575b506001929161398b916020013590876001600160a01b03821661487c565b0161392b565b61398b919550916020836139a760019695613fa8565b96925050919261396d565b6139be9034908661437c565b5f613929565b63ca0fc08e5f526004601cfd5b7f000000000000000000000000000000000000000000000000000000000000000080600414613b595780600314613b475780600914613b105780600a14613ad357600814613a2d57634e487b7160e01b5f52605160045260245ffd5b613a43361568929eee149b4bd212686028615651565b805b613ac357507f000000000000000000000000000000000000000000000000000000000000000080600214613a9c57600114613a8e57634e487b7160e01b5f52605160045260245ffd5b3368929eee149b4bd212685d565b505f5460ff1615613ab5573368929eee149b4bd212685d565b3368929eee149b4bd2126855565b63f57c448b5f526020526024601cfd5b5060e0604036151768929eee149b4bd212680160c08101355f520135602052613b0a60405f2068929eee149b4bd212686031615651565b80613a45565b5068929eee149b4bd21328355f90815268929eee149b4bd213483560205260409020613b0a9068929eee149b4bd21268602f615651565b5068929eee149b4bd212685c80613a45565b505f5460ff1615613b755768929eee149b4bd212685c80613a45565b68929eee149b4bd2126854613b0a565b602460106020939284936014526370a0823160601b5f525afa601f3d11166020510290565b7f000000000000000000000000000000000000000000000000000000000000000080600614613bfc57600514613bee57634e487b7160e01b5f52605160045260245ffd5b5f68929eee149b4bd212685d565b505f5460ff1615613c15575f68929eee149b4bd212685d565b5f68929eee149b4bd2126855565b903590601e19813603018212156107d357018035906001600160401b0382116107d3576020019160608202360383136107d357565b60a090604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208301527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d604083015260608201523060808201522090565b90604051915f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f5260405260051b5191604052565b60a0906080604051917fe055493563385cc588fffacbffe2dab023fef807baa449530431169b0eeb5b69835260208301372090565b90613d5c6139d1565b613d7c613d7460a43560c43560e435612082876148dc565b923090613b85565b906040519063137c29fe82526080600460208401373060a083015260243560c083015260843560e0830152610140610120830152610160820190565b60807f63697069656e7429546f6b656e5065726d697373696f6e73286164647265737391609681527f436f6d706163744465706f736974207769746e65737329436f6d70616374446560208201527f706f736974286164647265737320616c6c6f6361746f722c75696e743820726560408201527f736574506572696f642c75696e74382073636f70652c6164647265737320726560608201527520746f6b656e2c75696e7432353620616d6f756e742960968201520152565b9093805f9493601c92869582613e86614eaf565b9987015260408387018360208201520137016024019101826e22d473030f116ddee9f6b43ac78ba35af11615613eb857565b3d6107cb57637f28c61e5f526004601cfd5b613ed8909291923090613b85565b9283811015613eec5761393f93039161437c565b63426d8dcf5f526004601cfd5b6affffffffffffffffffffff6a7fffffffffffffffffffff8260491c16818360481c16178060021c178060041c178060081c178060101c178060201c176755555555555555558160011c169003673333333333333333808260021c169116018060041c01670f0f0f0f0f0f0f0f660f0f0f0f0f0f0f8260081c169116018060101c01911690690fedcba9876543210000600f60581b91607f600319918060201c0116604803161c60581b161790565b6744036fc77deaed23605c1b81175415613fbf5750565b63cf90c3a85f526020526024601cfd5b604051916020526303f37b1a600c5280604052603760282090600182549160ff161b9080821661400157179055604052565b63dbc205b160601b600c526044601cfd5b916140206040820135614f51565b803590601e19813603018212156107d35701918235926001600160401b0384116107d3576020019280360384136107d35761393f93614069916140616137c8565b918585614f6c565b336150bc565b90929183159161408185826038615aa0565b9161409561408e84614862565b8092613fcf565b946001600160601b0360019316905b8084106140c257505050506140b557565b633a03d3bb5f526004601cfd5b90919293600190836001600160601b036140df8886896038615b0a565b1614151794019291906140a4565b919093928415926140ff868284615aa0565b9261410c61408e85614862565b956001600160601b0360019416915b81851061412d5750505050506140b557565b9091929394600190846001600160601b0361414a8987878b615b0a565b1614151795019392919061411b565b91905f5b81811061416d5750505050600190565b8061418c8461417f60019486896138cd565b60208101359035336141b4565b0161415d565b9190811015612a6d5760051b81013590603e19813603018212156107d3570190565b91929092604051908360148301526368a30dd082526034820194855260548201526058601c8201208242019262278d00811182548510176142295750829055607401526001600160a01b0316907ff78a2f33ff80ef4391f7449c748dc2d577a62cd645108f4f4069f4a7e0635b6a90606090a2565b631f9a96f45f526020526024601cfd5b939195909497969286019586359560208801359760608101359861425d89876152bf565b89811061429c575091614299999a93916142939593604060018060a01b03910135169760016001605c1b038a60a01c1690614c4a565b90615c31565b90565b8990633078b2f65f526020526040526044601cfd5b90916142bc81613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b171790565b6142eb82613ef9565b6744036fc77deaed23605c1b81175490921861430f57600360fc1b9160a01b171790565b5063cf90c3a85f526020526024601cfd5b61432981613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b600360fc1b1790565b9261435581613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b17171790565b909167edcaa89a8229394060205281601452825f5260405f208054908282019182106107655755335f5260205260018060a01b03165f5f516020615f655f395f51905f52604082a4565b939194925f9160208601925f935f9515908161481f575b85156147ce575b505f92801561473a575b5f1981011561469b575b83156145e1575b8415614460575050508184959697823701946e75696e7432353620616d6f756e7429600e8701527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19870152600e81870301905280850390209303902090565b91985096935083919450600e925060051b936e75696e7432353620616d6f756e7429838201527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19820152030190526040519261456d575b83156144f9575b5f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f526040525191604052565b7f45012d42fad8c9e937cff5a2d750ee18713dd45aadcd718660d5523056618d995f527fc2e16a823b8cdddfdf889991d7a461f0a19faf1f8e608f1c164495a52151cc3e6020527fd2f6ad391328936f118250f231e63c7e639f9756a9ebf972d81763870a772d87604052805193506144c0565b7f2bf981c42c7f423b06fa49ba996d2930887e2f1f53d9a26b8c7423ac1cf83e615f527fd14445d78213a5acddfa89171b0199de521c3b36738b835264cae18f5a53dbf36020527f329b3c527a3c74b8cabc51c304669d1866b87352cafdf440ef2becd6dc261d1e604052805193506144b9565b7f4d756c7469636861696e436f6d7061637420636f6d70616374294d756c74696387527f6861696e436f6d7061637428616464726573732073706f6e736f722c75696e7460208801527f323536206e6f6e63652c75696e7432353620657870697265732c5365676d656e60408801526f5d20696473416e64416d6f756e74732c60708801527f697465722c75696e7432353620636861696e49642c75696e743235365b325d5b6060880152601a87019660900193506143ff565b7f4261746368436f6d7061637420636f6d70616374294261746368436f6d70616387527f74286164647265737320617262697465722c616464726573732073706f6e736f60208801527a75696e743235365b325d5b5d20696473416e64416d6f756e74732c605b8801527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60408801526015870196607b0193506143f8565b7f436f6d7061637420636f6d7061637429436f6d7061637428616464726573732087527f617262697465722c616464726573732073706f6e736f722c75696e743235362060208801526f2c75696e7432353620616d6f756e742c60508801527f6e6f6e63652c75696e7432353620657870697265732c75696e743235362069646040880152601087019660700193506143ee565b7569766174696f6e2875696e743235365b5d206964732c60368a01527f426174636841637469766174696f6e207769746e65737329426174636841637490526056880195506038880194505f6143e4565b686e743235362069642c60298a01527f41637469766174696f6e207769746e6573732941637469766174696f6e28756981526049890196506033890195506143dd565b6744036fc77deaed23605c1b81175491908215613fbf5750565b91906148883084613b85565b9260405194606052306040523360601b602c526323b872dd60601b600c5260205f6064601c82855af13d1560015f51141716156148cf5761393f945f606052604052613eca565b637939f4245f526004601cfd5b8060601b156148e85790565b63961c9a4f6040526024605cfd5b908015155f52602052337fe27f5e0382cf5347965fc81d5c81cd141897fe9ce402d22c496b7c2ddc84e5fd60405fa3565b6001600160401b0381116115a05760051b60200190565b9061494882614927565b61495560405191826135f9565b8281528092614966601f1991614927565b0190602036910137565b8051821015612a6d5760209160051b010190565b919261498e6139d1565b6001600160a01b03833516159260208101353490811415851690158514178315176139c45783926149c660843560a43560c4356142b1565b956149d08261493e565b94614a6d575b50848103956149e48761493e565b925f925f5b898110614a0857505050506149fb5790565b630f2f1e515f526004601cfd5b80614a598a600193979596970194614a29614a2487878a6138cd565b6137b4565b90848060a01b0382166001600160601b0360a01b8a1617988911151797614a5181978d614970565b523090613b85565b614a638289614970565b52019291926149e9565b614a799087349161437c565b835115612a6d578560208501525f6149d6565b91604051918360061b8460071b9160061b6024350163fe8ec1a7855260c06020860152816101400160408601526004356060860152826101600160a0860152606060e0860152604435610100860152606435610120860152856101408601528160248201610160870137818501956101608701525f5b828110614b185750939450508301610180019150565b806040918801306101808201526101a06044838601013591015201614b02565b83515f96909594939290875b878110614b5f575050505050505050613eec5761393f613baa565b80614ba783600193019a614b818c614b7c614a2430928c8b6138cd565b613b85565b90614b9d614b8f858c614970565b519183831015179d89614970565b519103908a61437c565b01614b44565b90614bb78261361a565b614bc460405191826135f9565b8281528092614966601f199161361a565b9015612a6d5790565b9190811015612a6d576060020190565b8160061b82810460401483151715611efe57614c0990614bad565b915f5b818110614c20575050506020815191012090565b80614c2e6001928486614bde565b604060208360061b880192803582850152013591015201614c0c565b60408401356001600160a01b031697969095939486948994919387358801936020890135890192909183359190614c8460808c0135614f51565b614c8d90614862565b6060819b013590614c9d91613fcf565b86811502019181151587841415179081159b614cd49961393f9d614cf0575b505050614cda575b5050508582359260200191614f6c565b846150bc565b614ce8926020018c89614f6c565b5f8080614cc4565b614d1b9350605892601c926040519260148401526368a30dd083526034830152605482015201205490565b4210155f898e614cbc565b98979380959196614d6b939894890198893581019860208a81019a359b013597614d63614d538d8d614bd5565b3560a01c60016001605c1b031690565b9d8e91615e45565b90614d768686614bd5565b95614d9f6020614d93878a35809b6040810135948591013561535c565b83151798868686615c31565b506001600160601b0360019916985b818110614dc7575050505050505061371291925061536d565b614dd2818389614bde565b80359889918860408201359b8c926020013592614dee9361535c565b8c8360a01c60016001605c1b03161415171798614e0d91878787615c31565b50600101614dae565b9015612a6d57803590605e19813603018212156107d3570190565b9190811015612a6d5760051b81013590605e19813603018212156107d3570190565b8160061b82810460401483151715611efe57614e6e90614bad565b915f5b818110614e85575050506020815191012090565b80614e936001928486614e31565b604060208360061b880192803582850152013591015201614e71565b7f0000000000000000000000000000000000000000000000000000000000000000613712576e22d473030f116ddee9f6b43ac78ba33b151590565b60a092916040606092815194848601525f516020615f455f395f51905f5285528560208601933385524684880152608087208752820101358101803560051b80916020018537602001852060808601525f516020615f855f395f51905f5285520190372090565b42811115614f5c5750565b63f80dbaea5f526020526024601cfd5b604080516119015f9081526020979097529181526042601e20918152919390929091606483019083146001600160a01b0386166041851481614fc7575b5050505050505033141715614fba57565b638baa579f5f526004601cfd5b909192939495975060405192885f5261506c575b61502d575b60209495965f60605282604052630b135d3f60e11b83526004830152602482019586946040865281604485015260648401375afa9051630b135d3f60e11b1416905f808080808080614fa9565b60408401355f1a60205260408481376020600160805f825afa5181183d1517614fe0575094505050506001915f6060526040525f808080808080614fa9565b60208581013560ff81901c601b01825286356040526001600160ff1b0316606052600160805f825afa5182183d1517614fdb57505094505050506001915f6060526040525f808080808080614fa9565b5f91825233926001600160a01b03908116929116907f770c32a2314b700d6239ee35ba23a9690f2fceb93a55d8c753e953059b3b18d490602090a4565b6040519260608401525f516020615f455f395f51905f5283526020830191338352466040850152608084209082019060a082013583019060c0823560051b93013560051b5f905f5b85811061517857505050505091604060609260a09594602001852060808601525f516020615f855f395f51905f5285520190372090565b8089016020848301870101358152828214615197575b50602001615141565b602090810185905292508261518e565b949195849197966151d4948101358101988960200199359a6151cc614d538d8d614e16565b988991615e45565b8515956001600160601b035f9416935b8181106151fb57505050505050506137129061536d565b806152498761520d600194868c614e31565b80359b8c8a60016001605c1b036152248c846153b0565b9260a01c16141517179b87602061523e604085018561377f565b9190940135936153c6565b50016151e4565b614299906152756040361517829060e0910160c08101355f52013560205260405f2090565b906031615651565b9291905f5b818110615290575050505050565b806152b86152a160019385896138cd565b8560206152ad836137b4565b920135913389615c31565b5001615282565b8160ff1c15901517156152cf5750565b63a06356f55f526020526024601cfd5b95849061530e9399949692968a01998a3597889660408d013583019a60016001605c1b038960a01c1691615e45565b9561531f60209261429998946152bf565b0135928035906020016153c6565b60a0916040519382019160c0830135019081359384930135855260208501526020016040840137604001902090565b9261536791926153b0565b91101790565b6140b557565b60c09160408051925f516020615fc55f395f51905f5284523360208501523382850152602081013560608501520135608083015260a08201522090565b60ff1c600281101561158c576001149015151690565b91949290925f958415945f5b81811061540157505050505050828210176153ee575050600190565b633078b2f65f526020526040526044601cfd5b8061543460209a988761542d61541a600196888d6138cd565b9d8e0135928c84019c8d10179b9d6137b4565b8789615c31565b50016153d2565b906040519160c08101350191823580937f4d756c7469636861696e436f6d7061637428616464726573732073706f6e736f83527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60208401527f5365676d656e745b5d207365676d656e7473295365676d656e7428616464726560408401527535365b325d5b5d20696473416e64416d6f756e74732c60768401527f737320617262697465722c75696e7432353620636861696e49642c75696e74326060840152602001609683013782604301605382012092609601902090565b614299903615906028615651565b906142996155386040361517846028615651565b928336159161532d565b61556d906155676080361517829060e0910160c08101355f52013560205260405f2090565b90615b8a565b9091565b61556d906155966040361517829060e0910160c08101355f52013560205260405f2090565b90615b66565b906142996155386155c46080361517859060e0910160c08101355f52013560205260405f2090565b846032615651565b90614299615538610b6b6040361517859060e0910160c08101355f52013560205260405f2090565b61561f906156196080361517829060e0910160c08101355f52013560205260405f2090565b90615bd9565b9192909190565b61561f9061564b60c0361517829060e0910160c08101355f52013560205260405f2090565b90615c0a565b91909180603214615764578060311461575757806030146157475780602b146157165780602f1461570957806028146156c857806033146156b057602a146156a757634e487b7160e01b5f52605160045260245ffd5b61429991615373565b5060e0910160c08101355f52013560205260405f2090565b5060c060e092606060408051948301925f516020615fa55f395f51905f52865233602087015201604085013760a081013560a0840152013560c08201522090565b5061429991361590614eea565b509060c091606060408051935f516020615fc55f395f51905f52855233602086015201604084013760a08201522090565b5061429991604036151790614eea565b50614299913615906150f9565b50614299916040361517906150f9565b9061010060405160a060c085013585019460608635967f436f6d70616374286164647265737320617262697465722c6164647265737320855260208501977f73706f6e736f722c75696e74323536206e6f6e63652c75696e7432353620657889528060408701927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c845260200184880137820185209788865233905260408301903760e0810135828401528381013560c0840152013560e0820152209190565b60e09092919260a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b92919280602c146159df5760291461591d57634e487b7160e01b5f52605160045260245ffd5b6101009060a0604051918360c082013582019660608835987f436f6d70616374286164647265737320617262697465722c6164647265737320875260208701997f73706f6e736f722c75696e74323536206e6f6e63652c75696e743235362065788b528060408901927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c8452602001848a013782018720998a8852339052604085019037820160e081013584860152013560c0840152013560e0820152209190565b5060e09060a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b91909180603814615af45780603914615ad857600714615ace57634e487b7160e01b5f52605160045260245ffd5b614299915f615651565b505f615aec9160016001605c1b0393614192565b3560a01c1690565b5015612a6d573560a01c60016001605c1b031690565b80603814615b525780603914615b3e57600714615b3557634e487b7160e01b5f52605160045260245ffd5b61429992615651565b5091615aec9160016001605c1b0393614192565b5091615aec9160016001605c1b03936138cd565b9190615b8690615b758461543b565b94908591604036151790602d615ce7565b9190565b9190615b8690615b998461543b565b94908591604036151790602e615ce7565b91615bba615b869284602c6158f7565b9290938460403615179161532d565b91615bba615b86928460296158f7565b91615b86604093615c0093615bed8261543b565b959091863615936080851786602d615ce7565b958691179161532d565b91615b86604093615c0093615c1e8261543b565b959091863615936080851786602e615ce7565b939291909380603514615cdd5780603414615c6a57603714615c6157634e487b7160e01b5f52605160045260245ffd5b614299936140ed565b5090929167edcaa89a8229394060205282601452835f5260405f20805480831183151761077257829003905581601452835f5260405f208054908282019182106107655755335f5260205260018060a01b03169060018060a01b03165f516020615f655f395f51905f5260405fa4600190565b5061429993613697565b9594939190929580602d14615dce57602e14615d1157634e487b7160e01b5f52605160045260245ffd5b6040519360608501528584525f516020615f455f395f51905f526020850196338852466040870152141580615dbf575b60051b60800184209083019060a082013584019060c0823560051b93013560051b5f905f5b858110615d9057505050505060609260a09596926040926020018620608087015285520190372090565b8089016020848301870101358152828214615daf575b50602001615d66565b6020908101859052925082615da6565b60a08401356080860152615d41565b5060609260a095969286604093845197878901528588525f516020615f455f395f51905f52602089019633885246878b0152141580615e37575b60051b60800188208852830101358201803560051b809160200186376020018620608087015285520190372090565b8285013560808a0152615e08565b969594939291909680602714615f315780602414615f1c5780602114615f075780602314615ef75780601f14615ee25780602614615ecf5780602214615ec45780602514615eb157601714615ea857634e487b7160e01b5f52605160045260245ffd5b61429996614c4a565b50906017959493929187614299986152df565b508661429997614239565b5090601795949392918761429998614d26565b50916142999691601796959493361593614d26565b5090614299969291361593614239565b509161429996916017969594933615936151a7565b509161429996916017969594933615936152df565b50906017959493929187614299986151a756fe295feb095767cc67d7e74695da0adaddede54d7b7194a8a5426fe8f0351e03371b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288595ca9a66b8bbf0d2316e90dfa3df465f0790b277b25393a3ef4d67e1f50865057cdca950b17b5efc016b74b912d8527dfba5e404a688cbc3dab16cb943287fec25a7fee8000a237929ef9be08f2933c4b4f320b00b38809f3c7aa104d5421049fa164736f6c634300081c000a60808060405234601557613e10908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8062ad800c146137045780634e41a1fb146136965763d637ca8d14610039575f80fd5b3461367e57366003190160a0811261367e5760801361367e576040516080810181811067ffffffffffffffff82111761368257604052600435906001600160a01b0382169081830361367e57828152602435906001600160a01b038216820361367e576020810191825260443592600884101561367e576040820193845260643594600286101561367e5760608381019687521b6bffffffffffffffffffffffff191661366c575061011c6040516100f2604082613793565b600c81526b2730ba34bb32902a37b5b2b760a11b6020820152925b516001600160a01b03166138a1565b9251600881101561365857610130906139c8565b935160028110156136585761014490613bba565b8151610158906001600160a01b03166137b5565b825190919061016f906001600160a01b0316613834565b925163313ce56760049081525f81905260209182919082906001600160a01b0316620186a0fa3d601f10166020510260ff166101aa90613c59565b916040519560208701977103d913730b6b2911d101121b7b6b830b1ba160751b89528786518060208901603284015e810161088b60f21b603282015203603201601d19810189526002016101fe9089613793565b6040519460208601947f226465736372697074696f6e223a2022436f6d7061637420000000000000000086528451806020870160388a015e87016038810161040560f31b90528951908160208c01603a83015e01603801600281017f29207265736f75726365206c6f636b207769746820616c6c6f6361746f72200090528451908160208701602183015e0160020193601f85017401030b732103932b9b2ba103832b934b7b21037b31605d1b905287845160208601968188603483015e01601f0161088b60f21b601582015203601501601d19810189526002016102e39089613793565b6102ee608435613c59565b604051906102fd604083613793565b6002825261125160f21b602083015261031591613c9e565b9960405190610325604083613793565b600d82526c546f6b656e204164647265737360981b602083015261034891613c9e565b9560405190610358604083613793565b600a825269546f6b656e204e616d6560b01b602083015261037891613c9e565b9860405190610388604083613793565b600c82526b151bdad95b8814de5b589bdb60a21b60208301526103aa91613c9e565b92604051906103ba604083613793565b600e82526d546f6b656e20446563696d616c7360901b60208301526103de91613c9e565b90604051906103ee604083613793565b600982526820b63637b1b0ba37b960b91b602083015261040d91613c9e565b916040519061041d604083613793565b600582526453636f706560d81b602083015261043891613c9e565b9260405195610448604088613793565b600c875260208701906b14995cd95d0814195c9a5bd960a21b825260405190610472602083613793565b5f8252604051978893602085019a6f3d913a3930b4ba2fba3cb832911d101160811b8c52518091603087015e8401906c111610113b30b63ab2911d101160991b6030830152518092603d83015e0160300161227d60f01b600d82015281516020819301600f83015e01600d01600281015f905203600201601f19810186526104fa9086613793565b604051998a97602089019c8d6e2261747472696275746573223a205b60881b905280516020819201602f8c015e8901602f8101915f83528051926020849201905e01602f015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e01905f8252518092825e01615d7d60f01b815203601d19810184526002016105a79084613793565b604051906105b76127c083613793565b61278e82527f22696d616765223a2022646174613a696d6167652f7376672b786d6c3b62617360208084019182527f6536342c5044393462577767646d567963326c76626a30694d5334774969426c6040808601919091527f626d4e765a476c755a7a306961584e764c5467344e546b744d53492f5067304b60608601527f504345744c5342485a57356c636d4630623349364945466b62324a6c49456c7360808601527f6248567a64484a68644739794944497a4c6a41754e53776755315a484945563460a08601527f63473979644342516248566e4c556c754943346755315a4849465a6c636e4e7060c08601527f62323436494459754d444167516e5670624751674d436b67494330745067304b60e08601527f50484e325a7942325a584a7a61573975505349784c6a4569494868746247357a6101008601527f50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441776101208601527f4c334e325a79496765473173626e4d3665477870626d7339496d6830644841366101408601527f4c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d73696101608601527f49486739496a427765434967655430694d4842344967304b43534232615756336101808601527f516d393450534977494441674e446b79494451354d69496763335235624755396101a08601527f496d567559574a735a53316959574e725a334a766457356b4f6d356c647941776101c08601527f494441674e446b79494451354d6a7369494868746244707a6347466a5a5430696101e08601527f63484a6c63325679646d55695067304b5047636761575139496b31686333526c6102008601527f636c394d59586c6c636c3879496a344e436a77765a7a344e436a786e49476c6b6102208601527f50534a4d59586c6c636c3878496a344e43676b385a7a344e43676b4a5047632b6102408601527f44516f4a43516b385a7a344e43676b4a43516b385a7a344e43676b4a43516b4a6102608601527f50484268644767676333523562475539496d5a7062477774636e56735a54706c6102808601527f646d56756232526b4f324e7361584174636e56735a54706c646d56756232526b6102a08601527f4f325a7062477736497a49784d6a45794d54736949475139496b307a4d6a45756102c08601527f4d7a41344c4449354e4334344e6a526a4e53347a4e5449734e53347a4d6a67736102e08601527f4f5334304e5459734d5449754d5451304c4445314c6a63354d6977344c6a677a6103008601527f4d67304b43516b4a43516b4a597a49754e4451344c5445754d6a63794c4455756103208601527f4d4459304c544d754d446b324c4463754d7a49744e5334794e545a6a4d7934336103408601527f4e4451744d7934314e7a59734f4334794e5459744f5334314d6a67734e4334326103608601527f4e5459744d5451754d6a686a4c5445794c6a51314e6930784d5334354e7a59746103808601527f4d7a59754d7a67304c544d794c6a45784d69307a4e6934304e5459744d7a49756103a08601527f4d54594e43676b4a43516b4a435777334c6a55324c5467754e545934597a41756103c08601527f4d4449304c4441754d4449304c4455754d5459734e4334314d7a59734d5445756103e08601527f4f444d794c4445774c6a67794e474d344c6a59344f4377344c6a49774f4377796104008601527f4d4334344e5459734d5459754d6977794e6934334d7a59734d6a51754e4441346104208601527f44516f4a43516b4a43516c6a4d79347a4d5449734e4334324d4467734d6934326104408601527f4d5459734d5449754e7a51304c4441754f4459304c4445334c6a5579597930786104608601527f4c6a4d354d69777a4c6a67304c5451754d5441304c4463754e4459304c5463756104808601527f4d7a49734d5441754e544d325979307a4c6a41794e4377794c6a6b774e4330326104a08601527f4c6a59734e5334304c546b754f5459734e7934784d6a674e43676b4a43516b4a6104c08601527f43574d744d79347a4f4451734d5334334e5449744e6934334f5449734d6934336104e08601527f4e6930354c6a59354e6977794c6a63344e474d744d4334774f5459734d4334306105008601527f4e5459744d4334794d5459734d4334354d7a59744d43347a4d7a59734d53347a6105208601527f4f544a6a4c5441754f5459734d7934794e43307a4c6a41794e4377324c6a41336105408601527f4d6930314c6a59784e6977344c6a514e43676b4a43516b4a43574d744d69347a6105608601527f4d6a67734d6934774f4467744e5334784d7a59734d7934344d5459744e7934356105808601527f4e4451734e5334774e6a526a4c544d754d4463794c4445754d7a51304c5459756105a08601527f4d6a67344c4449754d5445794c546b754d5459344c4449754d545a6a4c5441756105c08601527f4d446b324c4441754f544d324c5441754d6a67344c4445754f4451344c5441756105e08601527f4e5455794c4449754e7a594e43676b4a43516b4a43574d744d4334354e69777a6106008601527f4c6a49304c544d754d4449304c4459754d4463794c5455754e6a45324c4467756106208601527f4e474d744d69347a4d6a67734d6934774f4467744e5334784d7a59734d7934346106408601527f4d5459744e7934354e4451734e5334774e6a526a4c5451754d5449344c4445756106608601527f4f4449304c5467754e5451304c4449754e5459344c5445794c4445754f5459346106808601527f44516f4a43516b4a43516c6a4c5441754d5449734d5334794d6a51744d43347a6106a08601527f4e6977794c6a51744d4334324f5459734d7934314d4452324d4334774d6a526a6106c08601527f4c5445754d444d794c444d754d7a67304c544d734e6934794e4330314c6a55796106e08601527f4c4467754d7a5579597930794c6a55794c4449754d5445794c5455754e546b796107008601527f4c444d754e4467744f4334344e5459734d7934354d7a594e43676b4a43516b4a6107208601527f43574d744d7934354e6977774c6a55314d6930344c6a45324c5441754d6a51746107408601527f4d5445754f5441304c5449754e6a6734597930784c6a417a4d6930774c6a59336107608601527f4d6930794c6a45324c5445754e544d324c544d754e4467744d6934314f544a736107808601527f4c5441754e7a51304c5441754e546332624330784d5334784e6930344c6a59786107a08601527f4e6d77324c6a6b324c546b754d444930624445784c6a45324c4467754e6a45326107c08601527f44516f4a43516b4a43516c734d4334334e4451734d4334314e7a5a6a4d5334776107e08601527f4d7a49734d4334334f5449734d5334344f5459734d5334304f4467734d6934336108008601527f4f4451734d6934774e474d784c6a49354e6977774c6a67324e4377794c6a637a6108208601527f4e6977784c6a45794f4377304c6a41344c4441754f545a6a4d5334784d6a67746108408601527f4d4334784e6a67734d6934784f4451744d4334324e4467734d7934774e7a49746108608601527f4d53347a4f54494e43676b4a43516b4a43574d774c6a67324e4330774c6a63796108808601527f4c4445754e5459744d5334334d6a67734d5334354d6930794c6a6b774e4777776108a08601527f4c44426a4d4334304e5459744d5334314e6977774c6a4d344e43307a4c6a55776108c08601527f4e4330774c6a51314e6930314c6a6332597930354c6a55794f4330784d7934796108e08601527f4f5459744d6a6b754e4451344c5449354c6a51794e4330794f5334304f5459746109008601527f4d6a6b754e44637944516f4a43516b4a43516c734e7934794c5467754f4455326109208601527f597a41754d4451344c4441754d4449304c4467754d5445794c4459754e5463326109408601527f4c4445324c6a63314d6977784e5334774d6a526a4d69347a4d4451734d6934796109608601527f4e5459734e4334344e4467734e4334334e5449734e7934314d5449734e7934786109808601527f4d6a686a4d4334304f4377774c6a517a4d6977774c6a6b344e4377774c6a67326109a08601527f4e4377784c6a51324e4377784c6a49354e67304b43516b4a43516b4a624441736109c08601527f4d4777774c44426a4d4334774f5459734d4334774f5459734d4334794d5459736109e08601527f4d4334784f5449734d43347a4d5449734d4334794f44686a4d4334324d6a5173610a008601527f4d4334314e5449734d5334794e4467734d5334784d6a67734d5334344e7a4973610a208601527f4d5334334d44526a4d6934784d5449734d5334344f5459734e4334794c444d75610a408601527f4f4445324c4459754d7a67304c4455754e446b3244516f4a43516b4a43516c6a610a608601527f4d6934314f5449734d5334344e4467734d6934314e4451734d6934794d7a4973610a808601527f4e5334304f5459734d53347a4e44526a4d4334324d6a51744d4334784f544973610aa08601527f4d5334794f5459744d4334314d6a67734d6934774d5459744d4334344e474d78610ac08601527f4c6a63334e6930774c6a63324f43777a4c6a55774e4330784c6a67304f437730610ae08601527f4c6a67354e69307a4c6a41354e67304b43516b4a43516b4a597a45754d544934610b008601527f4c5445754d444d794c4445754f546b794c5449754d5445794c4449754d7a4130610b208601527f4c544d754d545934597a41754d6a51744d4334344e4377774c6a41334d693078610b408601527f4c6a67304f4330774c6a63304e4330794c6a6b334e6d4d744f5334314e7a5974610b608601527f4d544d754d7a49744d7a55754f5441304c544d324c6a51314e69307a4e533435610b808601527f4e7a59744d7a59754e544934624463754e5459744f4334314e6a674e43676b4a610ba08601527f43516b4a43574d774c6a41304f4377774c6a41304f4377784e4334324f446773610bc08601527f4d5449754f5445794c4449324c6a59784e6977794e5334304f44686a4d793479610be08601527f4e43777a4c6a45354d6977344c6a41324e4377334c6a55324c4445784c6a5530610c008601527f4e4377784d4334794e7a4a6a4d5334794e7a49734d4334354d5449734d693478610c208601527f4e6977794c6a41344f4377304c6a41344c4445754e44453244516f4a43516b4a610c408601527f43516c6a4d4334344d5459744d4334794f4467734d5334344e4467744d433432610c608601527f4f5459734d7930784c6a4a6a4d5334334e7a59744d4334334e6a67734d793431610c808601527f4d4451744d5334344e4467734e4334344f5459744d7934774f545a6a4d533478610ca08601527f4d6a67744d5334774d4467734d5334354f5449744d6934784d5449734d69347a610cc08601527f4d4451744d7934784e6a674e43676b4a43516b4a43574d774c6a49304c544175610ce08601527f4f4451734d4334774e7a49744d5334344e4467744d4334334e4451744d324d74610d008601527f4f5334314e7a59744d544d754d7a49744d7a55754f5441304c544d324c6a5131610d208601527f4e69307a4e5334354e7a59744d7a59754e544934624463754e5459744f433431610d408601527f4e6a674e43676b4a43516b4a43554d794f5449754d6a49734d6a59324c6a5934610d608601527f4f43777a4d446b754d4451304c4449344d5334304f5459734d7a49784c6a4d77610d808601527f4f4377794f5451754f445930656949765067304b43516b4a435477765a7a344e610da08601527f43676b4a43516b385a7a344e43676b4a43516b4a504842686447676763335235610dc08601527f62475539496d5a7062477774636e56735a54706c646d56756232526b4f324e73610de08601527f61584174636e56735a54706c646d56756232526b4f325a7062477736497a4978610e008601527f4d6a45794d54736949475139496b30304d6a6b754d4449734d6a55304c6a5179610e208601527f4e45777a4f544d754e6a6b794c4445794f5334334d6d77744d5334314d7a5974610e408601527f4e5334304e4468734c5455754e4451344c4445754e44673444516f4a43516b4a610e608601527f43516c734c5451314c6a49784e6977784d6934304d4468734c5455754e545934610e808601527f4c4445754e544d32624445754e5459734e5334314d6d77794c6a457a4e697733610ea08601527f4c6a557a4e6d4d744d6a45754e6a6b324c4445754f5459344c5451794c6a6730610ec08601527f4c5449754e6a59304c5459794c6a55324f4330324c6a6b3244516f4a43516b4a610ee08601527f43516c6a4c544d354c6a49324e4330344c6a55324f4330334d7934794f545974610f008601527f4d5455754f5467304c546b354c6a55334e6977794e5334344f545a734d437777610f208601527f597930334c6a45774e4377784d53347a4e5449744d5451754f4455324c444930610f408601527f4c6a67304c5445324c6a59314e69777a4e5334784e67304b43516b4a43516b4a610f608601527f597930794c6a51334d6977784e4334774e43777a4c6a41794e4377794d793477610f808601527f4e4377794e5334794e4467734d5467754f545a6a4d544d754e6a55324c544975610fa08601527f4e446b324c4449794c6a41344c546b754d7a59734d6a6b754f5449344c544531610fc08601527f4c6a63324f474d344c6a67344c5463754d6a51344c4445324c6a67334d693078610fe08601527f4d7934334e5449734d7a49754d7a63324c546b754d54513044516f4a43516b4a6110008601527f43516c6a4f4334784d7a59734d79347a4e6977344c6a67344c444d754e6a63796110208601527f4c4445314c6a49304c446b754d444930597a49784c6a45304e4377784e7934336110408601527f4d7a59734e7a45754e4377324d5334314d7a59734e7a49734e6a49754d4452736110608601527f4d437777624445774c6a51784e6977354c6a45324f4777794c6a6b774e4377796110808601527f4c6a55304e47777a4c6a517a4d6930784c6a63314d67304b43516b4a43516b4a6110a08601527f624449774c6a67344c5445774c6a59774f4777784c6a49334d6977304c6a51346110c08601527f4f4777314c6a51334d6930784c6a5532624451314c6a41354e6930784d6934336110e08601527f4e6a68734e5334304f5459744d5334314e6b77304d6a6b754d4449734d6a55306111008601527f4c6a51794e4577304d6a6b754d4449734d6a55304c6a51794e486f6754544d316111208601527f4d4334324d7a59734d6a59354c6a6b334e6d77744e7934314d5449744e6934326111408601527f44516f4a43516b4a43516c494d7a517a4c6a466a4c5441754d5451304c5441756111608601527f4d5449744e5445754e6a49304c5451314c5463794c6a45354d6930324d6934796111808601527f4d7a4a6a4c5463754e7a41304c5459754e4455324c5467754e5459344c5459756111a08601527f4f4445324c5445344c6a4d324c5445774c6a67334d6d77744d4334794e4330776111c08601527f4c6a41354e6d77744d4334314d6a67744d4334784f54494e43676b4a43516b4a6111e08601527f43574d744d6a45754d7a59744e6934304e5459744d7a45754e6a41344c4445756112008601527f4f5449744e4449754f5467304c4445784c6a49774f474d744e6934334e6a67736112208601527f4e5334314d6930784d7934354f5449734d5445754e4449304c5449304c6a63326112408601527f4f4377784d79347a4f544a6a4c5445774c6a41344c4445754f4451344c5445796112608601527f4c6a63324f4330784c6a417a4d6930784d5334354d6a67744e5334334f44514e6112808601527f43676b4a43516b4a43574d784c6a51344f4330344c6a51334d6977344c6a55306112a08601527f4e4330794d4334324e6a51734d5455754d4451344c544d784c6a41314e6e59746112c08601527f4d4334774d6a526a4d6a45754f5459744d7a55754d4459304c4455794c6a4d356112e08601527f4d6930794f4334304e4377344e7934304f4330794d4334334f44514e43676b4a6113008601527f43516b4a43574d794d5334784f5449734e4334324d4467734e444d754f5451306113208601527f4c446b754e5463324c4459344c6a45324c4459754f544d32624449334c6a49326113408601527f4e4377354e6934794e45777a4e5441754e6a4d324c4449324f5334354e7a5a4d6113608601527f4d7a55774c6a597a4e6977794e6a6b754f5463326569424e4d7a67794c6a4d326113808601527f4e4377794e6a45754e6a6b3254444d314d4334774e6977784e4463754e6a49316113a08601527f44516f4a43516b4a43516c734d7a51754d6930354c6a4d344e47777a4d6934796113c08601527f4d7a49734d54457a4c6a63344e45777a4f4449754d7a59304c4449324d5334326113e08601527f4f545a364969382b44516f4a43516b4a5043396e5067304b43516b4a4354786e6114008601527f5067304b43516b4a43516b38634746306143427a64486c735a5430695a6d6c736114208601527f624331796457786c4f6d56325a5735765a47513759327870634331796457786c6114408601527f4f6d56325a5735765a4751375a6d6c7362446f6a4d6a45794d5449784f7949676114608601527f5a443069545445314e5334774d544d734d5451314c6a4a734c5449754d6a67736114808601527f4f4334774d54594e43676b4a43516b4a43574d784d4334794d6a51734d4334796114a08601527f4d5459734d6a6b754e546b794c4441754d4451344c4451314c6a63794c544d756114c08601527f4e6d77794c6a51354e6977784d5334784d7a5a6a4c5445344c6a6b324c4451756114e08601527f4d6a6b324c5451784c6a67774f4377304c6a45774e4330314d5334304d4467736115008601527f4d7934334f544a734c5449314c6a51344f4377344f5334354e7a594e43676b4a6115208601527f43516b4a43574d354c6a59334d69777a4c6a41304f4377794e7934344f4467736115408601527f4d5441754f5459344c4449354c6a4d314d6977794e7934334d6d77744d5445756115608601527f4e4377774c6a6b344e474d744d4334344f4467744d5441754d5455794c54457a6115808601527f4c6a63794f4330784e5334314d4451744d6a45754d4463794c5445334c6a63326115a08601527f624330784c6a4d324f4377304c6a67794e4777744d5334314e6977314c6a51356115c08601527f4e67304b43516b4a43516b4a624330314c6a51334d6930784c6a5532624330306115e08601527f4e5334774f5459744d5449754e7a5934624330314c6a51354e6930784c6a55326116008601527f624445754e5459744e5334304e7a4a734d7a55754d7a49344c5445794e4334336116208601527f4d4452734d5334314d7a59744e5334304e4468734e5334304e4467734d5334306116408601527f4f4468734e4455754d6a45324c4445794c6a51774f4777314c6a55324f4377786116608601527f4c6a557a4e67304b43516b4a43516b4a544445314e5334774d544d734d5451316116808601527f4c6a4a4d4d5455314c6a41784d7977784e4455754d6b77784e5455754d44457a6116a08601527f4c4445304e5334796569424e4d5445774c6a45314e7977794e6a45754e6a6b326116c08601527f62444d794c6a4d774e4330784d5451754d4463796243307a4e4334794c546b756116e08601527f4d7a6730544463324c6a41794f5377794e5449754d444930544445784d4334786117008601527f4e5463734d6a59784c6a59354e6e6f694c7a344e43676b4a43516b384c32632b6117208601527f44516f4a43516b4a5047632b44516f4a43516b4a435478775958526f49484e306117408601527f6557786c50534a6d615778734c584a31624755365a585a6c626d396b5a44746a6117608601527f62476c774c584a31624755365a585a6c626d396b5a44746d615778734f694d796117808601527f4d5449784d6a45374969426b50534a4e4d6a51774c6a63324e43777a4d7a59756117a08601527f4e6a6379544449304d4334334e6a51734d7a4d324c6a59334d67304b43516b4a6117c08601527f43516b4a597930784c6a45774e4330774c6a67784e6930794c6a51304f4330786117e08601527f4c6a41344c544d754e7a51304c5441754f446734637930794c6a51354e6977776118008601527f4c6a67324e43307a4c6a4d784d6977784c6a6b304e4777744f4334344d7a49736118208601527f4d5445754f546332614441754d444930597930774c6a67784e6977784c6a45776118408601527f4e4330784c6a45774e4377794c6a51334d6930774c6a6b784d69777a4c6a63306118608601527f4e41304b43516b4a43516b4a597a41754d546b794c4445754d6a63794c4441756118808601527f4f4459304c4449754e4463794c4445754f5451304c444d754d6a6734624441756118a08601527f4d5459344c4441754d545130597a45754d4455324c4441754e7a49734d69347a6118c08601527f4e5449734d4334354e69777a4c6a55334e6977774c6a63324f474d784c6a49356118e08601527f4e6930774c6a45354d6977794c6a51354e6930774c6a67324e43777a4c6a4d786119008601527f4d6930784c6a6b304e41304b43516b4a43516b4a624467754f4455324c5445796119208601527f597a41754f4445324c5445754d5441304c4445754d4467744d6934304e4467736119408601527f4d4334344f4467744d7934334e4452444d6a51794c6a55784e69777a4d7a67756119608601527f4e6a67344c4449304d5334344e4451734d7a4d334c6a51344f4377794e4441756119808601527f4e7a59304c444d7a4e6934324e7a4a4d4d6a51774c6a63324e43777a4d7a59756119a08601527f4e6a637944516f4a43516b4a43516c4d4d6a51774c6a63324e43777a4d7a59756119c08601527f4e6a63796569424e4d5463324c6a51794d5377794e6a59754d6a686a4e4334796119e08601527f4d6a51734d7934784d6977324c6a67784e6977334c6a59344c4463754e544d32611a008601527f4c4445794c6a55774e474d774c6a4d784d6977794c6a41324e4377774c6a4934611a208601527f4f4377304c6a45334e6930774c6a41354e6977324c6a493044516f4a43516b4a611a408601527f43516c6a4d5334344f5459744d4334354e69777a4c6a6b7a4e6930784c6a5977611a608601527f4f4377324c6a41794e4330784c6a6b79597a55754d4445324c5441754e7a5130611a808601527f4c4445774c6a49354e6977774c6a4d344e4377784e4334324f4467734d793432611aa08601527f4d6a52324d4334774d6a526a4e4334304d5459734d7934794e4377334c6a4134611ac08601527f4c4463754f5459344c4463754f4449304c4445794c6a6b344e41304b43516b4a611ae08601527f43516b4a597a41754d7a45794c4445754f546b794c4441754d6a67344c445175611b008601527f4d444d794c5441754d4449304c4459754d445134597a41754e6930774c6a4530611b208601527f4e4377784c6a45334e6930774c6a49324e4377784c6a63334e6930774c6a4d32611b408601527f597a51754e544d324c5441754e6a63794c446b754d7a4d324c4441754d7a5973611b608601527f4d544d754d6a6b324c444d754d6a6734624441754d6a67344c4441754d6a514e611b808601527f43676b4a43516b4a43574d7a4c6a67784e6977794c6a6b794f4377324c6a4530611ba08601527f4e4377334c6a45794f4377324c6a67784e6977784d5334314d6d4d774c6a4978611bc08601527f4e6977784c6a4d324f4377774c6a49324e4377794c6a63324c4441754d545130611be08601527f4c4451754d545579597a41754d6a45324c5441754d4451344c4441754e444134611c008601527f4c5441754d4463794c4441754e6a49304c5441754d446b3244516f4a43516b4a611c208601527f43516c6a4e4334784d6a67744d4334324d6a51734f4334314e4451734d43347a611c408601527f4d7a59734d5449754d546b794c444d754d444930624441734d474d7a4c6a5933611c608601527f4d6977794c6a63784d6977314c6a67344c4459754e6a49304c4459754e544130611c808601527f4c4445774c6a63334e6d4d774c6a59794e4377304c6a45794f4330774c6a4d7a611ca08601527f4e6977344c6a55304e43307a4c6a41304f4377784d6934784f54494e43676b4a611cc08601527f43516b4a435777744f4334344e5459734d544a6a4c5449754e7a45794c444d75611ce08601527f4e6a63794c5459754e6a49304c4455754f4467744d5441754e7a63324c445975611d008601527f4e544130597930304c6a45794f4377774c6a59794e4330344c6a55794c544175611d208601527f4d7a4d324c5445794c6a45354d69307a4c6a41794e4859774c6a41794e41304b611d408601527f43516b4a43516b4a5979307a4c6a59304f4330794c6a59344f4330314c6a6734611d608601527f4c5459754e6a49304c5459754e5441304c5445774c6a686a4c5441754d446379611d808601527f4c5441754e4467744d4334784d6930774c6a6b324c5441754d5451304c544575611da08601527f4e44526a4c5445754d4441344c4441754d7a4d324c5449754d4451734d433432611dc08601527f4c544d754d4463794c4441754e7a513044516f4a43516b4a43516c6a4c545175611de08601527f4e5445794c4441754e6a63794c546b754d7a45794c5441754d7a59744d544d75611e008601527f4d6a6b324c544d754d7a4579624441734d474d744d7934354f4451744d693435611e208601527f4e5449744e6934304d4467744e7934794d6a51744e7934774f4330784d533433611e408601527f4d7a5a6a4c5441754d5451304c5441754f5445794c5441754d6a45324c544575611e608601527f4f4449304c5441754d546b794c5449754e7a594e43676b4a43516b4a43574d74611e808601527f4d5334314d5449734d4334324d6a51744d7934774e7a49734d5334774f433030611ea08601527f4c6a59344c4445754d7a4a6a4c5455754d4445324c4441754e7a51304c544577611ec08601527f4c6a49354e6930774c6a4d344e4330784e4334324f4467744d7934324d6a5273611ee08601527f4d437777597930304c6a4d354d69307a4c6a49304c5463754d4467744e793435611f008601527f4f5449744e7934344d6a51744d544d754d44413444516f4a43516b4a43516c6a611f208601527f4c5441754d7a67304c5449754e4463794c5441754d6a67344c5455754d444532611f408601527f4c4441754d7a45794c5463754e446734597930784c6a55344e4377774c6a6379611f608601527f4c544d754d6a59304c4445754d6930304c6a6b324f4377784c6a51324e474d74611f808601527f4e4334344d6a51734d4334334d6930354c6a6b784d6930774c6a4d344e433078611fa08601527f4e4334784d7a59744d7934304f41304b43516b4a43516b4a597930304c6a4979611fc08601527f4e43307a4c6a45794c5459754f4445324c5463754e6a67744e7934314d7a5974611fe08601527f4d5449754e544130637a41754d7a67304c546b754f5445794c444d754e4467746120008601527f4d5451754d544d32614441754d444930624445774c6a6b354d6930784e4334356120208601527f4d44526a4d7934784d6930304c6a49304f4377334c6a59344c5459754f4445326120408601527f4c4445794c6a51344c5463754e544d3244516f4a43516b4a43516c444d5459336120608601527f4c6a41344e5377794e6a49754d4455324c4445334d6934784e7a4d734d6a597a6120808601527f4c6a45324c4445334e6934304d6a45734d6a59324c6a4934544445334e6934306120a08601527f4d6a45734d6a59324c6a4934544445334e6934304d6a45734d6a59324c6a49346120c08601527f544445334e6934304d6a45734d6a59324c6a49346569424e4d5463794c6a59316120e08601527f4d7977794f4441754e44593044516f4a43516b4a43516c6a4c5441754d6a67346121008601527f4c5445754f5451304c5445754d7a49744d7934334e6a67744d6934354e7a59746121208601527f4e4334354f544a324c5441754d444930597930784c6a59344c5445754d6a49306121408601527f4c544d754e7a49744d5334324e5459744e5334324f4467744d53347a4e6a686a6121608601527f4c5445754f5459344c4441754d6a67344c544d754e7a6b794c4445754d7a49746121808601527f4e5334774d5459734d6934354e7a594e43676b4a43516b4a435777744d5441756121a08601527f4f546b794c4445304c6a6734614441754d444930597930784c6a49304f4377786121c08601527f4c6a59344c5445754e6a67734d7934334e4451744d53347a4f5449734e5334326121e08601527f4f44686a4d4334794f4467734d5334354e4451734d53347a4d69777a4c6a63326122008601527f4f4377794c6a6b334e6977304c6a6b354d67304b43516b4a43516b4a597a45756122208601527f4e6a67734d5334794e4467734d7934334e4451734d5334324f4377314c6a59346122408601527f4f4377784c6a4d354d6e4d7a4c6a63324f4330784c6a4d794c4451754f546b796122608601527f4c5449754f546332624441754d4449304c4442734d5441754f546b794c5445306122808601527f4c6a6734614330774c6a41794e41304b43516b4a43516b4a517a45334d6934306122a08601527f4f4455734d6a67304c6a51334d6977784e7a49754f5451784c4449344d6934306122c08601527f4d4467734d5463794c6a59314d7977794f4441754e445930544445334d6934326122e08601527f4e544d734d6a67774c6a51324e4577784e7a49754e6a557a4c4449344d4334306123008601527f4e6a5236494530794d4445754d446b794c444d774d5334304d54594e43676b4a6123208601527f43516b4a43574d744d43347a4d5449744d6934784d7a59744d5334304e4330306123408601527f4c6a45314d69307a4c6a49324e4330314c6a51354e6e59774c6a41794e474d746123608601527f4d5334344e4467744d53347a4e6a67744e4334784d4451744d5334344e4467746123808601527f4e6934794e4330784c6a557a4e6d4d744d6934784e6977774c6a4d7a4e6930306123a08601527f4c6a45314d6977784c6a51304c5455754e5449734d7934794e6a514e43676b4a6123c08601527f43516b4a435777744d5445754e6a45324c4445314c6a63304e474d744d53347a6123e08601527f4e4451734d5334344e4467744d5334344d6a51734e4334784d4451744d5334316124008601527f4d5449734e6934794e474d774c6a4d784d6977794c6a457a4e6977784c6a51306124208601527f4c4451754d5449344c444d754d6a59304c4455754e446b32624441734d41304b6124408601527f43516b4a43516b4a597a45754f4451344c4445754d7a59344c4451754d5441306124608601527f4c4445754f4451344c4459754d6a51734d5334314d7a5a6a4d6934784e6930776124808601527f4c6a4d784d6977304c6a45314d6930784c6a51304c4455754e5449744d7934796124a08601527f4e6a52734d437777624445784c6a59784e6930784e5334334e44514e43676b4a6124c08601527f43516b4a43554d794d4441754f5451344c444d774e5334344d7a49734d6a41786124e08601527f4c6a51794f43777a4d444d754e5463324c4449774d5334774f5449734d7a41786125008601527f4c6a51784e6b77794d4445754d446b794c444d774d5334304d545a4d4d6a41786125208601527f4c6a41354d69777a4d4445754e4445326569424e4d6a497a4c6a49304e43777a6125408601527f4d6a49754d54557944516f4a43516b4a43516c6a4c5441754d6a51744d5334326125608601527f4f4330784c6a45774e43307a4c6a49304c5449754e5449744e4334794e7a4a326125808601527f4d4334774d6a526a4c5445754e4451744d5334774e5459744d7934784f5449746125a08601527f4d5334304e4330304c6a67304f4330784c6a45334e6d4d744d5334324e5459736125c08601527f4d4334794e43307a4c6a49784e6977784c6a45774e4330304c6a49304f4377796125e08601527f4c6a55304e4777744d4334784f5449734d4334794e41304b43516b4a43516b4a6126008601527f624330354c6a67344f4377784d7934304d545a324d4334774d6a526a4c5445756126208601527f4d4455324c4445754e4445324c5445754e4445324c444d754d5459344c5445756126408601527f4d5455794c4451754f444930597a41754d6a59304c4445754e6a67734d5334786126608601527f4d6a67734d7934794e4377794c6a55304e4377304c6a49334d6d77774c44414e6126808601527f43676b4a43516b4a43574d784c6a51784e6977784c6a41314e69777a4c6a45326126a08601527f4f4377784c6a51784e6977304c6a67304f4377784c6a45314d6d4d784c6a59346126c08601527f4c5441754d6a59304c444d754d6a51744d5334784d6a67734e4334794e7a49746126e08601527f4d6934314e44524d4d6a49794c6a45304d53777a4d6a634e43676b4a43516b4a6127008601527f43554d794d6a4d754d5449304c444d794e5334314f4451734d6a497a4c6a55776127208601527f4f43777a4d6a4d754f444d794c4449794d7934794e4451734d7a49794c6a45316127408601527f4d6e6f694c7a344e43676b4a43516b384c32632b44516f4a43516b384c32632b6127608601527f44516f4a435477765a7a344e43676b384c32632b44516f384c32632b44516f386127808601526d130cd38c969e8d1390d9cf4f488b60921b6127a086015251975197988998929592918291908a015e87019060208201905f8252519283915e01602001905f8252518092825e01905f8252518092825e015f815203601f19810182526136469082613793565b604051613654819282613769565b0390f35b634e487b7160e01b5f52602160045260245ffd5b61367861011c916138a1565b9261010d565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b3461367e57602036600319011261367e5761365460206136f860256136c56004356001600160a01b0316613834565b60405164f09fa49d2d60d81b858201528151909485928291018484015e81015f838201520301601f198101835282613793565b60405191829182613769565b3461367e57602036600319011261367e5761365460206136f860286137336004356001600160a01b03166137b5565b60405193849167021b7b6b830b1ba160c51b828401528051918291018484015e81015f838201520301601f198101835282613793565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761368257604052565b6001600160a01b03811615613810576137d9906306fdde0360045260045f52613d42565b908151156137e357565b90506040516137f3604082613793565b600d81526c3ab735b737bbb7103a37b5b2b760991b602082015290565b5060405161381f604082613793565b600581526422ba3432b960d91b602082015290565b8060601b1561387f57613852906395d89b4160045260045f52613d42565b9081511561385c57565b905060405161386c604082613793565b60038152623f3f3f60e81b602082015290565b5060405161388e604082613793565b600381526208aa8960eb1b602082015290565b9060405191608083016040526f30313233343536373839616263646566600f526002830190602882525f604a85015260601b60015f5b8080018601602284831a600f811651602384015360041c5191015301906014821461390557906001906138d7565b50506130786002825101915282528160228101907f8888888888888888888888888888888888888888888888888888888888888880602883201660015f5b601160f31b83821a02818001520190601482146139635790600190613943565b505060429180517f2020202020202020202020202020202020202020202020202020202020202020815f511660011c161890520180517f2020202020202020202020202020202020202020202020202020202020202020816020511660011c16189052565b600881101561365857806139ff57506040516139e5604082613793565b600a81526913db99481cd958dbdb9960b21b602082015290565b60018103613a355750604051613a16604082613793565b600f81526e4669667465656e207365636f6e647360881b602082015290565b60028103613a665750604051613a4c604082613793565b600a8152694f6e65206d696e75746560b01b602082015290565b60038103613a985750604051613a7d604082613793565b600b81526a54656e206d696e7574657360a81b602082015290565b60048103613adc5750604051613aaf604082613793565b601981527f4f6e6520686f757220616e642066697665206d696e7574657300000000000000602082015290565b60058103613b0a5750604051613af3604082613793565b60078152664f6e652064617960c81b602082015290565b60068103613b4e5750604051613b21604082613793565b601781527f536576656e206461797320616e64206f6e6520686f7572000000000000000000602082015290565b600703613b7e57604051613b63604082613793565b600b81526a546869727479206461797360a81b602082015290565b60405162461bcd60e51b8152602060048201526014602482015273155b9adb9bdddb881c995cd95d081c195c9a5bd960621b6044820152606490fd5b60028110156136585780613bf15750604051613bd7604082613793565b600a81526926bab63a34b1b430b4b760b11b602082015290565b600103613c2457604051613c06604082613793565b600e81526d436861696e2d737065636966696360901b602082015290565b60405162461bcd60e51b815260206004820152600d60248201526c556e6b6e6f776e2073636f706560981b6044820152606490fd5b90604051600a608082019360a083016040525f8552935b5f190193603082820601855304928315613c8c57600a90613c70565b809350608091030191601f1901918252565b6002613d3f91600d602094604051613cb7604082613793565b6001815260308780830193600b60fa1b8552604051998a976f3d913a3930b4ba2fba3cb832911d101160811b828a0152805191829101858a015e8701906c111610113b30b63ab2911d101160991b84830152805192839101603d83015e01019061227d60f01b84830152518092600f83015e01015f838201520301601f198101835282613793565b90565b60205f60609282825191620186a0fa15613d3f57506040518060200160403d1015613da7575b5f60203d806103e8106103e8821802188083853e840101535b80515f1a15613d9257600101613d81565b818103601f190182525f815260200160405290565b5f513d601f1901811115613dbc575b50613d68565b602081843e82513d829003601f1901811115613dd85750613db6565b90604092826020936103e8106103e88218021892839283875201903e82015f6020820152016040529056fea164736f6c634300081c000a","sourceMap":"1085:8212:36:-:0;;;;;;399:6063:65;;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2214:262:48;8755:335:35;-1:-1:-1;8755:335:35;;;-1:-1:-1;8755:335:35;-1:-1:-1;;;;;1085:8212:36;;3014:31:35;3010:104;;-1:-1:-1;9726:9:35;;;;8755:335;9726:9;1085:8212:36;9691:55:35;1085:8212:36;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;-1:-1:-1;1085:8212:36;;;;;;3237:647:35;;;;3433:10;3418:25;;3472:10;3457:25;;3513:12;3496:29;;3237:647;3894:44;;4029:38;;2258:13:48;2238:33;;2309:42;2258:13;1871:575:54;1742:710;1871:575;;;;;;;;;;;;;;;;;;;;;;;;;;1742:710;;2309:42:48;2281:70;;1085:8212:36;;2382:22:48;;;;-1:-1:-1;;;;;2382:22:48;;;;;;;;;;;;;;;-1:-1:-1;2382:22:48;;;;;2361:43;;5767:105;;;;2414:55;;2214:262::o;2382:22::-;;:::i;:::-;;:::i;3237:647:35:-;3722:30;3707:45;;3781:29;3766:44;;3841:32;3824:49;;3237:647;;1085:8212:36;;;3010:104:35;3068:35;;;-1:-1:-1;3068:35:35;;-1:-1:-1;3068:35:35","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c908162ad800c1461312757508062fdd58e146130eb57806301ffc9a7146130a757806303417d721461309057806306659b7f1461307b57806306e8cc181461306657806306fdde031461303c57806308e600ee14613027578063095bcdb614612f4e5780630a133cf214612f395780630d57fec914612f245780630f5eeadf14612f0f578063107d4ee414612ec857806310d8267214612dff57806312a1e6ea14612dea57806312d4888514612d7a57806312f9d21e14612d6557806313589bfe14612d50578063138cd81914612d2a578063144bd5b514612cc85780631486590714612cb3578063176f405a14612c525780631b98b63f14612c3d5780631bb81a8114612c285780631d474b1414612c135780631e2eaeaf14612bf7578063200f0c4d14612b8f578063206620a114612b3f57806325d7776b14612b155780632737edb914612afe57806327c777a914612a815780632a9c4d0d146129515780632acd5dc31461293c5780632c4bbd17146129255780632e3ff2f7146128c15780632e4d55cc146128ac57806331bbae3e1461286e57806332e2a80314612859578063341056c5146128445780633644e5151461282a578063393c33e21461272f5780633f458a19146127185780633f47e662146126fc5780634073c0cc146126d9578063409b3a7e146126c4578063414fd914146126af578063418a23f51461269a578063426a849314612636578063440a0ec3146125ed57806344b97d78146125ba5780634ad5205e146125a35780634c1024161461258c5780634d585fbf146125755780634e41a1fb146125015780634e55a548146124ea578063507cb46f1461249057806353e5006714612350578063548439e114612339578063558a7297146122c4578063577cdc64146122ad5780635920212814612296578063598af9e7146122605780635ac2ccf1146122495780635b15bfd9146121dd5780635b6016ec146121765780635d76a382146121615780635e6c91ff1461214c57806362a420bb1461211557806363f5b1ad146120d8578063648705561461209a578063671b3bd61461202a5780636a9a4c4414611f895780636af2791b14611f745780637003019014611f125780637112406d14611dc857806371f5012714611db1578063721f629214611d765780637423eb3c14611c9157806376d531d414611c7c5780638340f54914611c41578063843719f014611bf15780638678555914611bdc57806388d247c414611bc557806388da84d414611bae57806389ce066114611b59578063935ed2ba14611b1e5780639730f4fd14611b07578063996d3aac14611adc57806399cf8b9b146119e85780639be5f537146119d1578063a23941471461191c578063a4c7bd93146118e2578063aa41c87e14611895578063aa8b845d14611863578063b20abc481461184e578063b24849b714611824578063b3244389146117ee578063b4039fc2146117c1578063b54baefd1461178c578063b602ae021461174a578063b6363cf214611705578063b7ace047146116c0578063b8a5bbad14611682578063bc95bd7a14611637578063c4d195e8146115f0578063c8091041146115b4578063c87b56dd14611432578063ca6cc39f146113e5578063d204f11e1461139a578063d2a1805f14611379578063d34ddc8214611362578063d350188c1461134d578063d3917f3c146112ff578063d921f36a146112b8578063da15ee7f1461112f578063da2f268b146110e6578063db04bc72146110d1578063dbd035ff14611059578063dd589cfc14610fdc578063e0565c4914610f8e578063e05c6e7d14610f41578063e6c5b65414610ee6578063e8672f9314610ed1578063ea14532e14610e6a578063eaa6748314610e33578063eb19600814610df9578063eb35a6d214610d89578063eb43182114610d4d578063ebcbd7b514610cf6578063ecaca40e14610c8d578063eea77a7814610c18578063eed634ad14610c03578063eed9357214610bb8578063f135baaa14610b9c578063f23d923d14610b2e578063f2f0def114610ae9578063f340fa0114610ab8578063f44a345214610a5a578063f745381c14610a24578063f95d3d16146109ea578063fa1c55001461098a578063fb75fb6914610924578063fcfe431a146108c1578063fdc060e7146107d75763fe99049a14610655575f80fd5b60803660031901126107d3576106696131bd565b6106716131ff565b6044359160643561068d60016001605c1b038560a01c16614862565b9260018060a01b0383169260018060a01b038216945f60208160a460405194828052601c8601948591631a808f91885233868901528b60408901528c60608901528d60808901528a60a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a82293940603452602852336014526034602020541561077f575b84601452604060142080548084116107725783900390556028528360145260406014208054908282019182106107655755335f526020525f516020615f655f395f51905f5260405fa45f603452602060405160018152f35b6389560ca15f526004601cfd5b63f4d678b85f526004601cfd5b845f5260545f20805460018101610798575b505061070d565b8084116107ab5783900390555f80610791565b63deda90305f526004601cfd5b3d1517156107cb5763014c931060a49252fd5b3d5f803e3d5ffd5b5f80fd5b346107d3576107e536613408565b608081015f806107f5838561377f565b905f915b80831061089c5750505061088a576108796035928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b809335613fcf565b614012565b61377f565b9061527d565b602060405160018152f35b634e487b715f5260116020526024601cfd5b90919260019060206108af8685876138cd565b013580960195861017930191906107f9565b346107d357602061091a601760356108d8366133d4565b6101806108f96108f36108ed83850185613c23565b90614bee565b83615c0a565b9290919361090b610160820135613c58565b926109146137c8565b95614d26565b6040519015158152f35b346107d357602061091a603461093936613249565b61095b61095361094d610100840184613898565b90614e53565b826030615651565b9061010061096b3615848461532d565b916109796001361517613cdd565b926109826137c8565b946021615e45565b346107d357602061091a603461099f3661327d565b6109bb6109b36108ed610100840184613c23565b826031615651565b906109c960e0820135613c58565b6101006109d96002361517613cdd565b926109e26137c8565b946026615e45565b346107d357602061091a60356109ff36613215565b610120610a10604036151783615bc9565b92919390610a1c6137c8565b946024615e45565b346107d357602061091a60176034610a3b3661333c565b610a4481615571565b90610100610a506137c8565b93361592806152df565b346107d357602061091a6035610a6f36613249565b610a8a610a826108ed60e0840184613c23565b82602b615651565b9060e0610a993615848461532d565b91610aa76001361517613cdd565b92610ab06137c8565b94601f615e45565b60203660031901126107d3576020610ad6610ad16131bd565b614320565b610ae134823361437c565b604051908152f35b346107d357602061091a60176035610b00366133a0565b610b19610b1361094d60e0840184613898565b82615834565b9060e0610b246137c8565b93361592806151a7565b346107d357602061091a6035610b4336613215565b3615610100610b73610b6b60408417859060e0910160c08101355f52013560205260405f2090565b846030615651565b92610b8b6002610b8485878561532d565b9417613cdd565b92610b946137c8565b946023615e45565b346107d35760203660031901126107d3576004355c5f5260205ff35b346107d357602061091a6035610bcd36613215565b610be7610be16108ed610140840184613c23565b82615b8a565b9091610140610bfa610120830135613c58565b916109e26137c8565b346107d357602061091a6034610bcd36613215565b346107d357602061091a6035610c2d366133d4565b361590610c5b610c5360808417839060e0910160c08101355f52013560205260405f2090565b826032615651565b91610140610c6a82858561532d565b92610c7e6002610b84610120840135613c58565b93610c876137c8565b95614239565b346107d35760a03660031901126107d3576020610ca86131bd565b610cd9610cc4610cb66131ff565b610cbf846148dc565b6142e2565b91610ccd6139d1565b8260443591339061487c565b610ce1613baa565b610ae1610258361517608435606435336141b4565b346107d357602061091a6034610d0b366134d1565b610180610d326108f360c0361517849060e0910160c08101355f52013560205260405f2090565b92909193610d44610160820135613c58565b92610c876137c8565b346107d357602061091a6034610d623661327d565b610120610d7d610d7761094d83850185613898565b83615baa565b929193906109826137c8565b346107d35760203660031901126107d3576020600435610ae162ffffff77278d00094890015180000f3c00025800003c00000f000001601860078560fc1c16021c1642018281610df38195339190604051926014526341d0e04b5f526034526038601c2091604052565b556148f6565b346107d357602061091a6035610e0e3661333c565b610100610e1a826155cc565b919092610e2a6002361517613cdd565b92610a1c6137c8565b346107d357602061091a6034610e48366133a0565b610e5b610a8261094d60e0840184613898565b9060e061096b3615848461532d565b346107d357602061091a60176034610e813661333c565b610e95610c5361094d610140840184613898565b90610ea23615838361532d565b90610140610eb4610120830135613c58565b91610ec26002361517613cdd565b93610ecb6137c8565b956151a7565b346107d357602061091a60346109ff36613215565b346107d357602061091a6034610efb3661327d565b610f20610f188260e09060c08101355f52013560205260405f2090565b82602f615651565b90361560c0610f3160028317613cdd565b92610f3a6137c8565b9480614239565b346107d357602061091a6035610f563661333c565b610f5f81615250565b90610f6d60e0820135613c58565b610100610f7d6002361517613cdd565b92610f866137c8565b946025615e45565b346107d357602061091a6034610fa336613215565b6101003615610fd1610fcb60408317859060e0910160c08101355f52013560205260405f2090565b84615b66565b929093610f3a6137c8565b346107d357602061091a610fef3661343b565b6040515f516020615fa55f395f51905f528152338482015233604082015261103f8260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b608061104d60a084016137b4565b92013591336034615c31565b346107d35760203660031901126107d3576004356001600160401b0381116107d357611089903690600401613370565b6040519160408360208152836020820152019160051b8301916020806040850193925b83355481520191019084838210156110c85750602080916110ac565b60408186030190f35b346107d357602061091a6034610a6f36613249565b346107d35760403660031901126107d35760206004356111046131ff565b906040519183526303f37b1a600c52806040526001603760282054918360405260ff161b1615158152f35b6101603660031901126107d3576111446131bd565b6024356001600160401b0381116107d35761116390369060040161346e565b61116e9291926131d3565b5060a4359060088210156107d357600260c43510156107d35760e43591610104359460038610156107d357610124356001600160401b0381116107d3576111b990369060040161330f565b9661014435906001600160401b0382116107d357869588926111df90369060040161330f565b6111ed8584899e949e614984565b96819f939183839b949b0160051b90602001209561120b8b84614a8c565b83839992993615976001891792611221946143c6565b9f9091604051925f5260205260405260605f206080890152604052601f19916002811460061b90600114600b020190801515010160f301169060071b01610180019060c01761126f94613e72565b611279948a614b38565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff16916112a6936141b4565b6040516112b48192826135c0565b0390f35b346107d357602061091a601760356112cf366132db565b6101806112e46108f361094d83850185613898565b929091936112f6610160820135613c58565b92610ecb6137c8565b346107d357602061091a6035611314366133d4565b61014061134161133b6080361517849060e0910160c08101355f52013560205260405f2090565b83615bd9565b92919390610b946137c8565b346107d357602061091a6034610e0e3661333c565b346107d357602061091a60176034610b00366133a0565b346107d357602061091a603561138e366132db565b610140610a10826155f4565b346107d357602061091a601760346113b13661343b565b6113c4610a8261094d60a0840184613898565b90361560a06113d560018317613cdd565b926113de6137c8565b94806151a7565b346107d357602061091a60356113fa36613215565b61140381615250565b9061141160e0820135613c58565b6101006114216002361517613cdd565b9261142a6137c8565b946022615e45565b346107d35760203660031901126107d357604051600435608082016001600160401b038111838210176115a05760409081525f60208401818152918401818152606085019182526001600160a01b03848116865261149c60a086901c60016001605c1b0316614862565b16835260078460fc1c16600881101561158c5781528360ff1c90600282101561158c5790825260405163d637ca8d60e01b815294516001600160a01b03908116600487015292519092166024850152905161150b91906115009060448601906135a6565b5160648401906135b3565b60848201525f8160a4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575b5060405191829182613193565b61157b91503d805f833e61157381836135f9565b810190613635565b82611552565b6040513d5f823e3d90fd5b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b60403660031901126107d3576004356001600160401b0381116107d3576115e261087f91369060040161346e565b6115ea6131ff565b916138dd565b346107d357602061091a601760356116073661327d565b61162161161b6108ed610100840184613c23565b82615b66565b9061010061162d6137c8565b9336159280614d26565b346107d357602061091a6017603561164e366133a0565b611661610f186108ed60c0840184613c23565b90361560c061167260028317613cdd565b9261167b6137c8565b9480614d26565b346107d357602061091a60176034611699366133a0565b6116a281615516565b90361560a06116b082613cdd565b926116b96137c8565b94806152df565b346107d357602061091a601760346116d736613249565b6116f4610f188260e09060c08101355f52013560205260405f2090565b90361560c06116b060028317613cdd565b346107d35760403660031901126107d35761171e6131bd565b6117266131ff565b9067edcaa89a822939406020526014525f5260206034600c20546040519015158152f35b346107d357602061091a603561175f36613249565b361561176d81836028615651565b9061177781613cdd565b916117806137c8565b9360a083179180614239565b346107d357602061091a601760346117a336613249565b6117b6610b136108ed60e0840184613c23565b9060e061162d6137c8565b346107d357602061091a60346117d63661327d565b60e06117e182615524565b919092610e2a3615613cdd565b346107d357602061091a603461180336613215565b61014061181861133b6108ed83850185613c23565b92919390610ab06137c8565b346107d357602061091a60346118393661333c565b610120611818610d776108ed83850185613c23565b346107d357602061091a60356118393661333c565b602061187c610ae1611874366132b1565b939091614320565b9261188834853361437c565b61025836151791336141b4565b346107d357602061091a60346118aa3661333c565b6118be610be161094d610140840184613898565b90916101406118d1610120830135613c58565b916118da6137c8565b946027615e45565b346107d357602061091a60346118f7366132db565b61190081615542565b9091610140611913610120830135613c58565b91610f866137c8565b346107d35761192a36613408565b608081015f8061193a838561377f565b905f915b8083106119ac5750505061088a576108796034928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b90919260019060206119bf8685876138cd565b0135809601958610179301919061193e565b346107d357602061091a6017603461164e366133a0565b6101203660031901126107d3576119fd6131bd565b506024356001600160401b0381116107d357611a1d90369060040161346e565b611a256131d3565b50600860a43510156107d357600260c43510156107d35760e435916001600160a01b03831683036107d35761010435906001600160401b0382116107d3576112b493611aca611a7b611ad094369060040161330f565b959093611a89848383614984565b9592611ab660c09b9399929b361592611aa460848517613d1e565b611aae8d83614a8c565b949094613db8565b608084015260071b61022001921790613e72565b86614b38565b604051918291826135c0565b346107d357602061091a60176034611af33661327d565b611afc81615774565b9060e0610a506137c8565b346107d357602061091a601760346116073661327d565b346107d357602061091a60176034611b3536613539565b611b48610f1861094d60c0840184613898565b90361560c06113d560028317613cdd565b346107d357602061091a6035611b6e366133d4565b611b92610be16080361517839060e0910160c08101355f52013560205260405f2090565b9091610140611ba5610120830135613c58565b9161142a6137c8565b346107d357602061091a60176035610e813661333c565b346107d357602061091a60176035611b3536613539565b346107d357602061091a603461175f36613249565b346107d357602061091a60176035611c08366132db565b611c118161559c565b9091610140611c24610120830135613c58565b91611c326002361517613cdd565b93611c3b6137c8565b956152df565b346107d3576020611c63611c74611c573661356c565b919390610cbf856148dc565b8093611c6d6139d1565b339061487c565b610ae1613baa565b346107d357602061091a6035610efb3661327d565b346107d3575f3660031901126107d357323303611d67577f00000000000000000000000000000000000000000000000000000000000000008015611d5c575b611d4d575f8080807f0000000000000000000000000000000000000000000000000000000000000000600a5a04fa3d15611d48573d611d0e8161361a565b90611d1c60405192836135f9565b81525f60203d92013e5b15611d39575f805460ff19166001179055005b6370a4078f60e01b5f5260045ffd5b611d26565b630f45b98b60e41b5f5260045ffd5b5060ff5f5416611cd0565b63096650c560e21b5f5260045ffd5b346107d357602061091a60176035611d8d36613539565b611da0610a826108ed60a0840184613c23565b90361560a061167260018317613cdd565b346107d357602061091a60176035611699366133a0565b346107d357611dd63661349e565b60608101611de48183613898565b8060069492941b81810460401482151715611efe57611e0290614bad565b935f915f5b818110611e955750505061088a57611e4d81611e2d856020611e52975191012082615373565b611e476039611e3c8785613898565b6020860135916140ed565b90614012565b613898565b5f5b818110611e6657602060405160018152f35b80611e8f6034611e796001948688614192565b611e86602082018261377f565b9091359161527d565b01611e54565b611ea0818385614192565b5f90611eaf602082018261377f565b905f915b808310611ed957505050906040839260019460061b8b0190356020820152015201611e07565b9091976001906020611eec8b85876138cd565b01358096019586101798019190611eb3565b634e487b7160e01b5f52601160045260245ffd5b346107d35760203660031901126107d357600435611f4981339190604051926014526341d0e04b5f526034526038601c2091604052565b805415611f5f57905f61087f92553615906148f6565b5063e632dbad5f52336020526040526044601cfd5b346107d357602061091a6034610c2d366133d4565b346107d3576080611f9936613408565b611fed611fe460608301611fde84611fc6611fb4848361377f565b6040519060061b809282372082615373565b611e47611fd3858461377f565b60208501359161406f565b8361377f565b939092016137b4565b905f5b83811061200257602060405160018152f35b8061202361201360019387866138cd565b6020810135903586336035615c31565b5001611ff0565b346107d35760c03660031901126107d3576120436131bd565b61204b6131ff565b906044359160088310156107d3576064359160028310156107d357612087611c74926020956120786131e9565b95612082856148dc565b61434b565b80936120916139d1565b6084359261487c565b346107d357602061091a601760356120b136613505565b6101806120bd82615626565b929091936120cf610160820135613c58565b92611c3b6137c8565b346107d357602061091a60346120ed3661333c565b361560e061210060408317846028615651565b92610b8b61210f84868461532d565b93613cdd565b346107d357602061091a6017603561212c36613249565b61214061161b61094d610100840184613898565b90610100610b246137c8565b346107d357602061091a6034611b6e366133d4565b346107d357602061091a60356118aa3661333c565b60603660031901126107d3576004356001600160401b0381116107d3576121a190369060040161346e565b602435906001600160401b0382116107d3576020926121d46121ca61091a94369060040161346e565b92909333916138dd565b60443591614159565b346107d35760203660031901126107d357608060043561224761220b60016001605c1b038360a01c16614862565b604080516001600160a01b038086168252909216602083015290929061223a90840160fc83901c6007166135a6565b606083019060ff1c6135b3565bf35b346107d357602061091a601760346108d8366133d4565b346107d35761226e3661356c565b9167edcaa89a822939406034526028526014525f52602060545f20545f603452604051908152f35b346107d357602061091a60176034611d8d36613539565b346107d357602061091a6017603461212c36613249565b60403660031901126107d3576122d86131bd565b602435908115158092036107d35767edcaa89a82293940602052336014525f52806034600c2055602052600c5160601c337fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267602080a3602060405160018152f35b346107d357602061091a601760356113b13661343b565b346107d3576101803660031901126107d35761236a6131bd565b6123726131d3565b9061237b6131e9565b5060c43560088110156107d357600260e43510156107d3576101043590610124359060038210156107d357610144356001600160401b0381116107d3576123c690369060040161330f565b94909261016435956001600160401b0387116107d35787966123ec90369060040161330f565b9890916123f885613d53565b839d93969297919436159b61240e938d936143c6565b9990604051905f52866020528b60405260605f20610100860152604052601f1961016085015161017f0116906101401761244794613e72565b61245093613eca565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff169161247d936141b4565b612485613baa565b604051908152602090f35b60803660031901126107d3576124a46131bd565b60243560088110156107d3576044359060028210156107d357606435916001600160a01b03831683036107d357602093610ae1926124e1926142b1565b9182349161437c565b346107d357602061091a601760356117a336613249565b346107d35760203660031901126107d357604051634e41a1fb60e01b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575060405191829182613193565b346107d357602061091a601760346120b136613505565b346107d357602061091a60176034611c08366132db565b346107d357602061091a60176035611af33661327d565b346107d357602061091a60346125cf3661333c565b6125d881615774565b9060e06125e36137c8565b9336159280614239565b346107d3576040612627612600366132b1565b91605892601c926040519260148401526368a30dd083526034830152605482015201205490565b81519042811182526020820152f35b61263f366132b1565b909167edcaa89a8229394060345233602852601452815f528060545f20555f5260205160601c337fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a760205fa45f603452602060405160018152f35b346107d357602061091a6035610d0b366134d1565b346107d357602061091a603461138e366132db565b346107d357602061091a6034610f563661333c565b346107d35760603660031901126107d35761087f604435602435600435336141b4565b346107d35760203660031901126107d357602060405160128152f35b346107d357602061091a60176035610a3b3661333c565b346107d35761273d3661349e565b6060810161274b8183613898565b8060069492941b81810460401482151715611efe5761276990614bad565b935f915f5b8181106127c15750505061088a57611e4d81611e2d856020612794975191012082615373565b5f5b8181106127a857602060405160018152f35b806127bb6035611e796001948688614192565b01612796565b6127cc818385614192565b5f906127db602082018261377f565b905f915b80831061280557505050906040839260019460061b8b019035602082015201520161276e565b90919760019060206128188b85876138cd565b013580960195861017980191906127df565b346107d3575f3660031901126107d3576020610ae16137c8565b346107d357602061091a60356118f7366132db565b346107d357602061091a60346113fa36613215565b346107d35760403660031901126107d3576004356001600160401b0381116107d35761091a6128a3602092369060040161346e565b60243591614159565b346107d357602061091a60356125cf3661333c565b346107d35760603660031901126107d3576004356128dd6131ff565b60408051336014526341d0e04b5f5260348490526038601c209152544281119015176129145761091a906020926044359133613697565b50639287bcb05f526020526024601cfd5b346107d357602061091a601760346112cf366132db565b346107d357602061091a603561099f3661327d565b346107d35760403660031901126107d35761296a6131bd565b6024356001600160401b0381116107d35761298990369060040161330f565b6001600160a01b03909216916055811491338414843b1515179183612a35575b50501715612a25576129ba81613ef9565b806744036fc77deaed23605c1b1791825480612a1157508060209355815f5282527fc54dcaa67a8fd7b4a9aa6fd57351934c792613d5ec1acbd65274270e6de8f7e460405fa16001600160601b0360405191168152f35b8263c18b0e975f526020526040526044601cfd5b634e7f492b5f526020526024601cfd5b809192935015612a6d57808260405137604051206001600160a01b031683146001600160f81b031991358216909114169083806129a9565b634e487b7160e01b5f52603260045260245ffd5b346107d357602061091a612a943661343b565b6040515f516020615fa55f395f51905f5281523384820152336040820152612ae48260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b6080612af260a084016137b4565b92013591336035615c31565b346107d357602061091a601760356116d736613249565b346107d357602061091a6035612b2a3661333c565b610140610d7d61133b61094d83850185613898565b346107d357602061091a6035612b5436613249565b612b686109b361094d610100840184613898565b90612b7660e0820135613c58565b610100612b866002361517613cdd565b926118da6137c8565b346107d3576080612b9f36613408565b612bba611fe460608301611fde84611fc6611fb4848361377f565b905f5b838110612bcf57602060405160018152f35b80612bf0612be060019387866138cd565b6020810135903586336034615c31565b5001612bbd565b346107d35760203660031901126107d357600435545f5260205ff35b346107d357602061091a6034611314366133d4565b346107d357602061091a60356120ed3661333c565b346107d357602061091a6035610fa336613215565b346107d357602061091a60176034612c6936613215565b612c7d610c536108ed610140840184613c23565b90612c8a3615838361532d565b90610140612c9c610120830135613c58565b91612caa6002361517613cdd565b936109146137c8565b346107d357602061091a603561180336613215565b346107d35760403660031901126107d357612d06612ce46131bd565b602435909190604051926014526341d0e04b5f526034526038601c2091604052565b546040518115154283116002030291600383101561158c5760409282526020820152f35b346107d357602061091a6035612d3f366132db565b610120611341604036151783615bc9565b346107d357602061091a6035610e48366133a0565b346107d357602061091a6034610b4336613215565b346107d35760203660031901126107d3576004356001600160401b0381116107d357612daa903690600401613370565b90612dbc612db733613ef9565b613fa8565b809160051b01905b818110612dd657602060405160018152f35b602090612de4338235613fcf565b01612dc4565b346107d357602061091a6034612b2a3661333c565b346107d3576101403660031901126107d357612e196131bd565b612e216131d3565b50612e2a6131e9565b50600860c43510156107d357600260e43510156107d35761010435906001600160a01b03821682036107d357610124356001600160401b0381116107d357602092612ead92612e80611c7493369060040161330f565b929091612ec3361594612e9560a48717613d1e565b94612e9f84613d53565b9b839c9a939991929a613db8565b6101008201526101406102008317921790613e72565b613eca565b346107d357602061091a6034612edd3661327d565b612ef16109536108ed610100840184613c23565b90610100612f013615848461532d565b91610aa76002361517613cdd565b346107d357602061091a6035612edd3661327d565b346107d357602061091a6034612d3f366132db565b346107d357602061091a603561093936613249565b612f57366132b1565b612f6f60016001605c1b038360a09594951c16614862565b9160018060a01b038116925f60208160a460405194828052601c8601948591631a808f91885233868901523360408901528a60608901528b60808901528960a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a8229394060205233601452835f5260405f208054808411610772578390039055601452825f5260405f208054908282019182106107655755335f52602052335f516020615f655f395f51905f5260405fa4602060405160018152f35b346107d357602061091a6035610d623661327d565b346107d3575f3660031901126107d357602080526b0b54686520436f6d70616374604b5260606020f35b346107d357602061091a60356117d63661327d565b346107d357602061091a6034612b5436613249565b346107d357602061091a60176035612c6936613215565b346107d35760203660031901126107d3576004356001600160e01b0319811681036107d35760209060e01c604051906301ffc9a7630f632fb3821491141715158152f35b346107d35760403660031901126107d3576131046131bd565b67edcaa89a822939406020526014526024355f52602060405f2054604051908152f35b346107d35760203660031901126107d357622b600360e21b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f5750604051918291825b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036107d357565b608435906001600160a01b03821682036107d357565b60a435906001600160a01b03821682036107d357565b602435906001600160a01b03821682036107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101209082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101409082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024359060443590565b60206003198201126107d357600435906001600160401b0382116107d3576101a09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d357602083818601950101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101609082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460051b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101c09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760a09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760c09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460061b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d35760809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576102009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101e09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760e09082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024356001600160a01b03811681036107d3579060443590565b90600882101561158c5752565b90600282101561158c5752565b60206040818301928281528451809452019201905f5b8181106135e35750505090565b82518452602093840193909201916001016135d6565b90601f801991011681019081106001600160401b038211176115a057604052565b6001600160401b0381116115a057601f01601f191660200190565b6020818303126107d3578051906001600160401b0382116107d3570181601f820112156107d3578051906136688261361a565b9261367660405194856135f9565b828452602083830101116107d357815f9260208093018386015e8301015290565b909291926136a36139d1565b6001600160a01b0384168061372457505f9081808538935af115613717575b67edcaa89a8229394060205280601452825f5260405f209182549283821161077257815f9403905533835260205260018060a01b03165f516020615f655f395f51905f52604083a4613712613baa565b600190565b63b12d13eb5f526004601cfd5b9091926137313083613b85565b9260145260345263a9059cbb60601b5f5260205f6044601082855af13d1560015f51141716156137725761376a905f6034523090613b85565b9003906136c2565b6390b8ec185f526004601cfd5b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160061b360383136107d357565b356001600160a01b03811681036107d35790565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046186138135790565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208201527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60408201524660608201523060808201522090565b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160051b360383136107d357565b9190811015612a6d5760061b0190565b91906138e76139d1565b82359060018060a01b03821615916020850135341415831634158414178215176139c4578060016001605c1b03849260a01c1661392381613fa8565b936139b2575b505b81811061394157505050505061393f613baa565b565b61394c8183876138cd565b80359060016001605c1b038260a01c166001600160601b0386168103613991575b506001929161398b916020013590876001600160a01b03821661487c565b0161392b565b61398b919550916020836139a760019695613fa8565b96925050919261396d565b6139be9034908661437c565b5f613929565b63ca0fc08e5f526004601cfd5b7f000000000000000000000000000000000000000000000000000000000000000080600414613b595780600314613b475780600914613b105780600a14613ad357600814613a2d57634e487b7160e01b5f52605160045260245ffd5b613a43361568929eee149b4bd212686028615651565b805b613ac357507f000000000000000000000000000000000000000000000000000000000000000080600214613a9c57600114613a8e57634e487b7160e01b5f52605160045260245ffd5b3368929eee149b4bd212685d565b505f5460ff1615613ab5573368929eee149b4bd212685d565b3368929eee149b4bd2126855565b63f57c448b5f526020526024601cfd5b5060e0604036151768929eee149b4bd212680160c08101355f520135602052613b0a60405f2068929eee149b4bd212686031615651565b80613a45565b5068929eee149b4bd21328355f90815268929eee149b4bd213483560205260409020613b0a9068929eee149b4bd21268602f615651565b5068929eee149b4bd212685c80613a45565b505f5460ff1615613b755768929eee149b4bd212685c80613a45565b68929eee149b4bd2126854613b0a565b602460106020939284936014526370a0823160601b5f525afa601f3d11166020510290565b7f000000000000000000000000000000000000000000000000000000000000000080600614613bfc57600514613bee57634e487b7160e01b5f52605160045260245ffd5b5f68929eee149b4bd212685d565b505f5460ff1615613c15575f68929eee149b4bd212685d565b5f68929eee149b4bd2126855565b903590601e19813603018212156107d357018035906001600160401b0382116107d3576020019160608202360383136107d357565b60a090604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208301527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d604083015260608201523060808201522090565b90604051915f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f5260405260051b5191604052565b60a0906080604051917fe055493563385cc588fffacbffe2dab023fef807baa449530431169b0eeb5b69835260208301372090565b90613d5c6139d1565b613d7c613d7460a43560c43560e435612082876148dc565b923090613b85565b906040519063137c29fe82526080600460208401373060a083015260243560c083015260843560e0830152610140610120830152610160820190565b60807f63697069656e7429546f6b656e5065726d697373696f6e73286164647265737391609681527f436f6d706163744465706f736974207769746e65737329436f6d70616374446560208201527f706f736974286164647265737320616c6c6f6361746f722c75696e743820726560408201527f736574506572696f642c75696e74382073636f70652c6164647265737320726560608201527520746f6b656e2c75696e7432353620616d6f756e742960968201520152565b9093805f9493601c92869582613e86614eaf565b9987015260408387018360208201520137016024019101826e22d473030f116ddee9f6b43ac78ba35af11615613eb857565b3d6107cb57637f28c61e5f526004601cfd5b613ed8909291923090613b85565b9283811015613eec5761393f93039161437c565b63426d8dcf5f526004601cfd5b6affffffffffffffffffffff6a7fffffffffffffffffffff8260491c16818360481c16178060021c178060041c178060081c178060101c178060201c176755555555555555558160011c169003673333333333333333808260021c169116018060041c01670f0f0f0f0f0f0f0f660f0f0f0f0f0f0f8260081c169116018060101c01911690690fedcba9876543210000600f60581b91607f600319918060201c0116604803161c60581b161790565b6744036fc77deaed23605c1b81175415613fbf5750565b63cf90c3a85f526020526024601cfd5b604051916020526303f37b1a600c5280604052603760282090600182549160ff161b9080821661400157179055604052565b63dbc205b160601b600c526044601cfd5b916140206040820135614f51565b803590601e19813603018212156107d35701918235926001600160401b0384116107d3576020019280360384136107d35761393f93614069916140616137c8565b918585614f6c565b336150bc565b90929183159161408185826038615aa0565b9161409561408e84614862565b8092613fcf565b946001600160601b0360019316905b8084106140c257505050506140b557565b633a03d3bb5f526004601cfd5b90919293600190836001600160601b036140df8886896038615b0a565b1614151794019291906140a4565b919093928415926140ff868284615aa0565b9261410c61408e85614862565b956001600160601b0360019416915b81851061412d5750505050506140b557565b9091929394600190846001600160601b0361414a8987878b615b0a565b1614151795019392919061411b565b91905f5b81811061416d5750505050600190565b8061418c8461417f60019486896138cd565b60208101359035336141b4565b0161415d565b9190811015612a6d5760051b81013590603e19813603018212156107d3570190565b91929092604051908360148301526368a30dd082526034820194855260548201526058601c8201208242019262278d00811182548510176142295750829055607401526001600160a01b0316907ff78a2f33ff80ef4391f7449c748dc2d577a62cd645108f4f4069f4a7e0635b6a90606090a2565b631f9a96f45f526020526024601cfd5b939195909497969286019586359560208801359760608101359861425d89876152bf565b89811061429c575091614299999a93916142939593604060018060a01b03910135169760016001605c1b038a60a01c1690614c4a565b90615c31565b90565b8990633078b2f65f526020526040526044601cfd5b90916142bc81613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b171790565b6142eb82613ef9565b6744036fc77deaed23605c1b81175490921861430f57600360fc1b9160a01b171790565b5063cf90c3a85f526020526024601cfd5b61432981613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b600360fc1b1790565b9261435581613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b17171790565b909167edcaa89a8229394060205281601452825f5260405f208054908282019182106107655755335f5260205260018060a01b03165f5f516020615f655f395f51905f52604082a4565b939194925f9160208601925f935f9515908161481f575b85156147ce575b505f92801561473a575b5f1981011561469b575b83156145e1575b8415614460575050508184959697823701946e75696e7432353620616d6f756e7429600e8701527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19870152600e81870301905280850390209303902090565b91985096935083919450600e925060051b936e75696e7432353620616d6f756e7429838201527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19820152030190526040519261456d575b83156144f9575b5f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f526040525191604052565b7f45012d42fad8c9e937cff5a2d750ee18713dd45aadcd718660d5523056618d995f527fc2e16a823b8cdddfdf889991d7a461f0a19faf1f8e608f1c164495a52151cc3e6020527fd2f6ad391328936f118250f231e63c7e639f9756a9ebf972d81763870a772d87604052805193506144c0565b7f2bf981c42c7f423b06fa49ba996d2930887e2f1f53d9a26b8c7423ac1cf83e615f527fd14445d78213a5acddfa89171b0199de521c3b36738b835264cae18f5a53dbf36020527f329b3c527a3c74b8cabc51c304669d1866b87352cafdf440ef2becd6dc261d1e604052805193506144b9565b7f4d756c7469636861696e436f6d7061637420636f6d70616374294d756c74696387527f6861696e436f6d7061637428616464726573732073706f6e736f722c75696e7460208801527f323536206e6f6e63652c75696e7432353620657870697265732c5365676d656e60408801526f5d20696473416e64416d6f756e74732c60708801527f697465722c75696e7432353620636861696e49642c75696e743235365b325d5b6060880152601a87019660900193506143ff565b7f4261746368436f6d7061637420636f6d70616374294261746368436f6d70616387527f74286164647265737320617262697465722c616464726573732073706f6e736f60208801527a75696e743235365b325d5b5d20696473416e64416d6f756e74732c605b8801527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60408801526015870196607b0193506143f8565b7f436f6d7061637420636f6d7061637429436f6d7061637428616464726573732087527f617262697465722c616464726573732073706f6e736f722c75696e743235362060208801526f2c75696e7432353620616d6f756e742c60508801527f6e6f6e63652c75696e7432353620657870697265732c75696e743235362069646040880152601087019660700193506143ee565b7569766174696f6e2875696e743235365b5d206964732c60368a01527f426174636841637469766174696f6e207769746e65737329426174636841637490526056880195506038880194505f6143e4565b686e743235362069642c60298a01527f41637469766174696f6e207769746e6573732941637469766174696f6e28756981526049890196506033890195506143dd565b6744036fc77deaed23605c1b81175491908215613fbf5750565b91906148883084613b85565b9260405194606052306040523360601b602c526323b872dd60601b600c5260205f6064601c82855af13d1560015f51141716156148cf5761393f945f606052604052613eca565b637939f4245f526004601cfd5b8060601b156148e85790565b63961c9a4f6040526024605cfd5b908015155f52602052337fe27f5e0382cf5347965fc81d5c81cd141897fe9ce402d22c496b7c2ddc84e5fd60405fa3565b6001600160401b0381116115a05760051b60200190565b9061494882614927565b61495560405191826135f9565b8281528092614966601f1991614927565b0190602036910137565b8051821015612a6d5760209160051b010190565b919261498e6139d1565b6001600160a01b03833516159260208101353490811415851690158514178315176139c45783926149c660843560a43560c4356142b1565b956149d08261493e565b94614a6d575b50848103956149e48761493e565b925f925f5b898110614a0857505050506149fb5790565b630f2f1e515f526004601cfd5b80614a598a600193979596970194614a29614a2487878a6138cd565b6137b4565b90848060a01b0382166001600160601b0360a01b8a1617988911151797614a5181978d614970565b523090613b85565b614a638289614970565b52019291926149e9565b614a799087349161437c565b835115612a6d578560208501525f6149d6565b91604051918360061b8460071b9160061b6024350163fe8ec1a7855260c06020860152816101400160408601526004356060860152826101600160a0860152606060e0860152604435610100860152606435610120860152856101408601528160248201610160870137818501956101608701525f5b828110614b185750939450508301610180019150565b806040918801306101808201526101a06044838601013591015201614b02565b83515f96909594939290875b878110614b5f575050505050505050613eec5761393f613baa565b80614ba783600193019a614b818c614b7c614a2430928c8b6138cd565b613b85565b90614b9d614b8f858c614970565b519183831015179d89614970565b519103908a61437c565b01614b44565b90614bb78261361a565b614bc460405191826135f9565b8281528092614966601f199161361a565b9015612a6d5790565b9190811015612a6d576060020190565b8160061b82810460401483151715611efe57614c0990614bad565b915f5b818110614c20575050506020815191012090565b80614c2e6001928486614bde565b604060208360061b880192803582850152013591015201614c0c565b60408401356001600160a01b031697969095939486948994919387358801936020890135890192909183359190614c8460808c0135614f51565b614c8d90614862565b6060819b013590614c9d91613fcf565b86811502019181151587841415179081159b614cd49961393f9d614cf0575b505050614cda575b5050508582359260200191614f6c565b846150bc565b614ce8926020018c89614f6c565b5f8080614cc4565b614d1b9350605892601c926040519260148401526368a30dd083526034830152605482015201205490565b4210155f898e614cbc565b98979380959196614d6b939894890198893581019860208a81019a359b013597614d63614d538d8d614bd5565b3560a01c60016001605c1b031690565b9d8e91615e45565b90614d768686614bd5565b95614d9f6020614d93878a35809b6040810135948591013561535c565b83151798868686615c31565b506001600160601b0360019916985b818110614dc7575050505050505061371291925061536d565b614dd2818389614bde565b80359889918860408201359b8c926020013592614dee9361535c565b8c8360a01c60016001605c1b03161415171798614e0d91878787615c31565b50600101614dae565b9015612a6d57803590605e19813603018212156107d3570190565b9190811015612a6d5760051b81013590605e19813603018212156107d3570190565b8160061b82810460401483151715611efe57614e6e90614bad565b915f5b818110614e85575050506020815191012090565b80614e936001928486614e31565b604060208360061b880192803582850152013591015201614e71565b7f0000000000000000000000000000000000000000000000000000000000000000613712576e22d473030f116ddee9f6b43ac78ba33b151590565b60a092916040606092815194848601525f516020615f455f395f51905f5285528560208601933385524684880152608087208752820101358101803560051b80916020018537602001852060808601525f516020615f855f395f51905f5285520190372090565b42811115614f5c5750565b63f80dbaea5f526020526024601cfd5b604080516119015f9081526020979097529181526042601e20918152919390929091606483019083146001600160a01b0386166041851481614fc7575b5050505050505033141715614fba57565b638baa579f5f526004601cfd5b909192939495975060405192885f5261506c575b61502d575b60209495965f60605282604052630b135d3f60e11b83526004830152602482019586946040865281604485015260648401375afa9051630b135d3f60e11b1416905f808080808080614fa9565b60408401355f1a60205260408481376020600160805f825afa5181183d1517614fe0575094505050506001915f6060526040525f808080808080614fa9565b60208581013560ff81901c601b01825286356040526001600160ff1b0316606052600160805f825afa5182183d1517614fdb57505094505050506001915f6060526040525f808080808080614fa9565b5f91825233926001600160a01b03908116929116907f770c32a2314b700d6239ee35ba23a9690f2fceb93a55d8c753e953059b3b18d490602090a4565b6040519260608401525f516020615f455f395f51905f5283526020830191338352466040850152608084209082019060a082013583019060c0823560051b93013560051b5f905f5b85811061517857505050505091604060609260a09594602001852060808601525f516020615f855f395f51905f5285520190372090565b8089016020848301870101358152828214615197575b50602001615141565b602090810185905292508261518e565b949195849197966151d4948101358101988960200199359a6151cc614d538d8d614e16565b988991615e45565b8515956001600160601b035f9416935b8181106151fb57505050505050506137129061536d565b806152498761520d600194868c614e31565b80359b8c8a60016001605c1b036152248c846153b0565b9260a01c16141517179b87602061523e604085018561377f565b9190940135936153c6565b50016151e4565b614299906152756040361517829060e0910160c08101355f52013560205260405f2090565b906031615651565b9291905f5b818110615290575050505050565b806152b86152a160019385896138cd565b8560206152ad836137b4565b920135913389615c31565b5001615282565b8160ff1c15901517156152cf5750565b63a06356f55f526020526024601cfd5b95849061530e9399949692968a01998a3597889660408d013583019a60016001605c1b038960a01c1691615e45565b9561531f60209261429998946152bf565b0135928035906020016153c6565b60a0916040519382019160c0830135019081359384930135855260208501526020016040840137604001902090565b9261536791926153b0565b91101790565b6140b557565b60c09160408051925f516020615fc55f395f51905f5284523360208501523382850152602081013560608501520135608083015260a08201522090565b60ff1c600281101561158c576001149015151690565b91949290925f958415945f5b81811061540157505050505050828210176153ee575050600190565b633078b2f65f526020526040526044601cfd5b8061543460209a988761542d61541a600196888d6138cd565b9d8e0135928c84019c8d10179b9d6137b4565b8789615c31565b50016153d2565b906040519160c08101350191823580937f4d756c7469636861696e436f6d7061637428616464726573732073706f6e736f83527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60208401527f5365676d656e745b5d207365676d656e7473295365676d656e7428616464726560408401527535365b325d5b5d20696473416e64416d6f756e74732c60768401527f737320617262697465722c75696e7432353620636861696e49642c75696e74326060840152602001609683013782604301605382012092609601902090565b614299903615906028615651565b906142996155386040361517846028615651565b928336159161532d565b61556d906155676080361517829060e0910160c08101355f52013560205260405f2090565b90615b8a565b9091565b61556d906155966040361517829060e0910160c08101355f52013560205260405f2090565b90615b66565b906142996155386155c46080361517859060e0910160c08101355f52013560205260405f2090565b846032615651565b90614299615538610b6b6040361517859060e0910160c08101355f52013560205260405f2090565b61561f906156196080361517829060e0910160c08101355f52013560205260405f2090565b90615bd9565b9192909190565b61561f9061564b60c0361517829060e0910160c08101355f52013560205260405f2090565b90615c0a565b91909180603214615764578060311461575757806030146157475780602b146157165780602f1461570957806028146156c857806033146156b057602a146156a757634e487b7160e01b5f52605160045260245ffd5b61429991615373565b5060e0910160c08101355f52013560205260405f2090565b5060c060e092606060408051948301925f516020615fa55f395f51905f52865233602087015201604085013760a081013560a0840152013560c08201522090565b5061429991361590614eea565b509060c091606060408051935f516020615fc55f395f51905f52855233602086015201604084013760a08201522090565b5061429991604036151790614eea565b50614299913615906150f9565b50614299916040361517906150f9565b9061010060405160a060c085013585019460608635967f436f6d70616374286164647265737320617262697465722c6164647265737320855260208501977f73706f6e736f722c75696e74323536206e6f6e63652c75696e7432353620657889528060408701927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c845260200184880137820185209788865233905260408301903760e0810135828401528381013560c0840152013560e0820152209190565b60e09092919260a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b92919280602c146159df5760291461591d57634e487b7160e01b5f52605160045260245ffd5b6101009060a0604051918360c082013582019660608835987f436f6d70616374286164647265737320617262697465722c6164647265737320875260208701997f73706f6e736f722c75696e74323536206e6f6e63652c75696e743235362065788b528060408901927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c8452602001848a013782018720998a8852339052604085019037820160e081013584860152013560c0840152013560e0820152209190565b5060e09060a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b91909180603814615af45780603914615ad857600714615ace57634e487b7160e01b5f52605160045260245ffd5b614299915f615651565b505f615aec9160016001605c1b0393614192565b3560a01c1690565b5015612a6d573560a01c60016001605c1b031690565b80603814615b525780603914615b3e57600714615b3557634e487b7160e01b5f52605160045260245ffd5b61429992615651565b5091615aec9160016001605c1b0393614192565b5091615aec9160016001605c1b03936138cd565b9190615b8690615b758461543b565b94908591604036151790602d615ce7565b9190565b9190615b8690615b998461543b565b94908591604036151790602e615ce7565b91615bba615b869284602c6158f7565b9290938460403615179161532d565b91615bba615b86928460296158f7565b91615b86604093615c0093615bed8261543b565b959091863615936080851786602d615ce7565b958691179161532d565b91615b86604093615c0093615c1e8261543b565b959091863615936080851786602e615ce7565b939291909380603514615cdd5780603414615c6a57603714615c6157634e487b7160e01b5f52605160045260245ffd5b614299936140ed565b5090929167edcaa89a8229394060205282601452835f5260405f20805480831183151761077257829003905581601452835f5260405f208054908282019182106107655755335f5260205260018060a01b03169060018060a01b03165f516020615f655f395f51905f5260405fa4600190565b5061429993613697565b9594939190929580602d14615dce57602e14615d1157634e487b7160e01b5f52605160045260245ffd5b6040519360608501528584525f516020615f455f395f51905f526020850196338852466040870152141580615dbf575b60051b60800184209083019060a082013584019060c0823560051b93013560051b5f905f5b858110615d9057505050505060609260a09596926040926020018620608087015285520190372090565b8089016020848301870101358152828214615daf575b50602001615d66565b6020908101859052925082615da6565b60a08401356080860152615d41565b5060609260a095969286604093845197878901528588525f516020615f455f395f51905f52602089019633885246878b0152141580615e37575b60051b60800188208852830101358201803560051b809160200186376020018620608087015285520190372090565b8285013560808a0152615e08565b969594939291909680602714615f315780602414615f1c5780602114615f075780602314615ef75780601f14615ee25780602614615ecf5780602214615ec45780602514615eb157601714615ea857634e487b7160e01b5f52605160045260245ffd5b61429996614c4a565b50906017959493929187614299986152df565b508661429997614239565b5090601795949392918761429998614d26565b50916142999691601796959493361593614d26565b5090614299969291361593614239565b509161429996916017969594933615936151a7565b509161429996916017969594933615936152df565b50906017959493929187614299986151a756fe295feb095767cc67d7e74695da0adaddede54d7b7194a8a5426fe8f0351e03371b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288595ca9a66b8bbf0d2316e90dfa3df465f0790b277b25393a3ef4d67e1f50865057cdca950b17b5efc016b74b912d8527dfba5e404a688cbc3dab16cb943287fec25a7fee8000a237929ef9be08f2933c4b4f320b00b38809f3c7aa104d5421049fa164736f6c634300081c000a","sourceMap":"1085:8212:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8968:151;1085:8212;8968:151;;;1085:8212;;;;;7602:1659:68;1085:8212:36;7602:1659:68;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5321:14:68;1085:8212:36;5321:14:68;;;1085:8212:36;;;;;;;;;;;;;;;2310:667:59;1085:8212:36;2310:667:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8235:26:59;1085:8212:36;8235:26:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12498:568:27;1085:8212:36;12498:568:27;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5321:14:68;1085:8212:36;5321:14:68;;;1085:8212:36;;;;;;;;;;8235:26:59;1085:8212:36;8235:26:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4017:20:59;1085:8212:36;4017:20:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:667:59;1085:8212:36;2310:667:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4017:20:59;;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;;;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;:::-;1085:8212:36;;;;;;7602:1659:68;;1085:8212:36;;;;;;7602:1659:68;;;1085:8212:36;;7602:1659:68;;1085:8212:36;7602:1659:68;;;;;;;;;;;;;;;;;;;;1085:8212:36;7602:1659:68;;;;1085:8212:36;7602:1659:68;;;;1085:8212:36;7602:1659:68;;;;12790:117:60;7602:1659:68;;;;;1085:8212:36;7602:1659:68;-1:-1:-1;;;7602:1659:68;;;9531:2564:27;;;;;;;;7602:1659:68;9531:2564:27;;;1085:8212:36;9531:2564:27;;;;;1085:8212:36;9531:2564:27;;;1085:8212:36;9531:2564:27;;;;;;;;;;;;;;;;;;;1085:8212:36;9531:2564:27;;;;;;;;;;;;;;7602:1659:68;1085:8212:36;9531:2564:27;1085:8212:36;9531:2564:27;-1:-1:-1;;;;;;;;;;;1085:8212:36;;9531:2564:27;1085:8212:36;9531:2564:27;;1085:8212:36;;;;;;;9531:2564:27;;1085:8212:36;9531:2564:27;1085:8212:36;7602:1659:68;9531:2564:27;;;1085:8212:36;9531:2564:27;1085:8212:36;7602:1659:68;9531:2564:27;;;1085:8212:36;9531:2564:27;;1085:8212:36;9531:2564:27;;;1085:8212:36;9531:2564:27;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;9531:2564:27;1085:8212:36;7602:1659:68;9531:2564:27;7602:1659:68;;;;;;;;;;;;;;1085:8212:36;7602:1659:68;;;1085:8212:36;7602:1659:68;1085:8212:36;;;;;;;;;;;:::i;:::-;3669:19:59;;;1085:8212:36;;3669:19:59;;;;:::i;:::-;3877:13;1085:8212:36;3872:369:59;3892:19;;;;;;4261:1050;;;;;2244:19:47;5626:9:36;4261:1050:59;;1085:8212:36;2278:9:47;4261:1050:59;1085:8212:36;;4261:1050:59;-1:-1:-1;;;;;;;;;;;4261:1050:59;;;4017:20;4261:1050;;;;1085:8212:36;4261:1050:59;;;4017:20;4261:1050;;;;;;;;;;;;;;4086:11:68;4261:1050:59;4086:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;:::-;1085:8212:36;;;2062:9:69;:::i;:::-;1085:8212:36;:::i;:::-;2244:19:47;:::i;:::-;2278:9;;:::i;:::-;4017:20:59;1085:8212:36;;;;;;4261:1050:59;;1085:8212:36;4261:1050:59;;4017:20;4261:1050;;;;3913:3;4017:13;;;1085:8212:36;4017:13:59;:20;:13;;;;;:::i;:::-;:20;1085:8212:36;;;;4191:22:59;;;4175:51;3913:3;1085:8212:36;3877:13:59;;;;1085:8212:36;;;;;11806:170:45;11967:8;17305:9:43;1085:8212:36;;;:::i;:::-;19364:12:42;19230:225;19364:34;:12;;;;;;:::i;:::-;:34;;:::i;:::-;19230:225;;:::i;:::-;30600:29:46;;;;:58;:29;;;1085:8212:36;30600:58:46;:::i;:::-;30670:18;;;:::i;:::-;30401:308;11806:170:45;:::i;:::-;1085:8212:36;;;;;;;;;;;;;21628:250:46;18259:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;10999:39;:12;;;;;;:::i;:::-;:39;;:::i;:::-;20153:30;11040:45;20153:30;:::i;:::-;5067:83:55;10999:12:42;21469:68;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;21801:36:46;21809:1;1085:8212:36;5067:83:55;;21801:36:46;:::i;:::-;21839:18;;;:::i;:::-;21628:250;:57;:250;:::i;1085:8212:36:-;;;;;28390:289:46;14631:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;8453:34;:12;;;;;;:::i;:34::-;20153:30;8797:51;20153:30;:::i;:::-;28542:29:46;:58;1085:8212:36;28542:29:46;;1085:8212:36;28542:58:46;:::i;:::-;8453:12:42;28602:36:46;28610:1;1085:8212:36;5067:83:55;;28602:36:46;:::i;:::-;28640:18;;;:::i;:::-;28390:289;:52;:289;:::i;1085:8212:36:-;;;;;10457:191:46;5049:9:43;1085:8212:36;;;:::i;:::-;10601:5:46;25394:148:42;25489:4;5067:83:55;;;25394:148:42;;:::i;:::-;1085:8212:36;;;;10618:18:46;;:::i;:::-;10457:191;:52;:191;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;12605::43;1085:8212:36;;;:::i;:::-;13766:86:42;;;:::i;:::-;18060:18:46;18043:5;18060:18;;:::i;:::-;17935:155;1085:8212:36;5689:83:55;9882:170:45;;;:::i;1085:8212:36:-;;;;;11364:229:46;5689:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;9563:34;:12;1085:8212:36;9563:12:42;;;;:::i;:34::-;20153:30;9914:26;20153:30;:::i;:::-;5067:83:55;1085:8212:36;21469:68:42;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;11516:36:46;11524:1;1085:8212:36;5067:83:55;;11516:36:46;:::i;:::-;11554:18;;;:::i;:::-;11364:229;:52;:229;:::i;1085:8212:36:-;;;-1:-1:-1;;1085:8212:36;;;;;1853:80:53;1085:8212:36;;:::i;:::-;1853:80:53;:::i;:::-;2055:9;;2039:10;;2055:9;:::i;:::-;1085:8212:36;;;;;;;;;;;13776:175:45;13942:8;7463:9:43;1085:8212:36;;;:::i;:::-;13274:124:42;13358:39;:12;1085:8212:36;13358:12:42;;;;:::i;:39::-;13274:124;;:::i;:::-;13987:18:46;1085:8212:36;13987:18:46;;:::i;:::-;13863:154;1085:8212:36;5689:83:55;13776:175:45;;;:::i;1085:8212:36:-;;;;;15363:230:46;8903:9:43;1085:8212:36;;;:::i;:::-;;5067:83:55;15509:5:46;20153:30:42;22104:98;1085:8212:36;5067:83:55;;22104:98:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;22104:98:42;20153:30;11040:45;20153:30;:::i;:::-;21469:68;15516:36:46;15524:1;21469:68:42;;;;;:::i;:::-;1085:8212:36;5067:83:55;15516:36:46;:::i;:::-;15554:18;;;:::i;:::-;15363:230;:47;:230;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;301:99:58;1085:8212:36;301:99:58;1085:8212:36;;301:99:58;1085:8212:36;;;;;29732:257:46;16425:9:43;1085:8212:36;;;:::i;:::-;15198:185:42;15301:34;:12;;;;;;:::i;:34::-;15198:185;;:::i;:::-;29880:29:46;;15301:12:42;29880:58:46;:29;;;1085:8212:36;29880:58:46;:::i;:::-;29950:18;;;:::i;1085:8212:36:-;;;;;29732:257:46;16209:8:43;1085:8212:36;;;:::i;:::-;;;;;;9297:9:43;1085:8212:36;;;:::i;:::-;;5067:83:55;;20153:30:42;22563:107;22651:4;5067:83:55;;22563:107:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;22563:107:42;20153:30;11894:54;20153:30;:::i;:::-;21469:68;24111:5:46;21469:68:42;;;;;:::i;:::-;1085:8212:36;24178:36:46;24186:1;24118:58;:29;;;1085:8212:36;24118:58:46;:::i;24178:36::-;24216:18;;;:::i;:::-;23940:315;1085:8212:36;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::i;:::-;11812:6:53;6995:93;1085:8212:36;;:::i;:::-;6995:23:53;;;:::i;:::-;:93;:::i;:::-;11523:372;;;:::i;:::-;1085:8212:36;;;7221:10:53;;11812:6;;:::i;:::-;;;:::i;:::-;4473:27:63;4481:5;1085:8212:36;5067:83:55;;1085:8212:36;;;;7221:10:53;4473:27:63;:::i;1085:8212:36:-;;;;;;10681:8:43;1085:8212:36;;;:::i;:::-;25434:5:46;26926:304:42;27055:118;27154:4;1085:8212:36;5067:83:55;;27055:118:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;26926:304:42;26919:311;;;;25441:58:46;:29;;;1085:8212:36;25441:58:46;:::i;:::-;25511:18;;;:::i;1085:8212:36:-;;;;;14399:223:46;7659:8:43;1085:8212:36;;;:::i;:::-;17004:12:42;16907:181;17004:39;:12;;;;;;:::i;:39::-;16907:181;;:::i;:::-;14583:18:46;;;;;;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;2283:14:70;13542:488:60;;;11487:137;;;;;13542:488;;;1790:15:70;1085:8212:36;1981:10:70;;1962:34;1981:10;;;6656:622;;6777:495;;;;;;;;;;;;;;;;6656:622;1962:34;2006:168;2283:14;:::i;1085:8212:36:-;;;;;17355:240:46;12003:9:43;1085:8212:36;;;:::i;:::-;17511:5:46;10316:77:42;;;:::i;:::-;1085:8212:36;;;17518:36:46;17526:1;1085:8212:36;5067:83:55;;17518:36:46;:::i;:::-;17556:18;;;:::i;1085:8212:36:-;;;;;13314:239:46;6913:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;9873:39;:12;1085:8212:36;9873:12:42;;;;:::i;20153:30::-;5067:83:55;1085:8212:36;21469:68:42;5067:83:55;;21469:68:42;;;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;18675::43;1085:8212:36;;;:::i;:::-;20153:30:42;12246:39;:12;;;;;;:::i;20153:30::-;5067:83:55;21469:68:42;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;12246:12:42;31852:58:46;:29;;;1085:8212:36;31852:58:46;:::i;:::-;1085:8212:36;31912:36:46;31920:1;1085:8212:36;5067:83:55;;31912:36:46;:::i;:::-;31950:18;;;:::i;:::-;31654:335;13776:175:45;:::i;1085:8212:36:-;;;;;10457:191:46;4853:8:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;8021:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;20598:64;;32705:531:59;1085:8212:36;32705:531:59;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;20598:64:42;20153:30;20664:42;20153:30;:::i;:::-;1085:8212:36;;5067:83:55;14967:4:46;14973:36;14981:1;5067:83:55;;14973:36:46;:::i;:::-;15011:18;;;:::i;:::-;14865:176;15174:162:45;;:::i;1085:8212:36:-;;;;;25784:289:46;11625:9:43;1085:8212:36;;;:::i;:::-;;;;:::i;:::-;25936:29:46;:58;1085:8212:36;25936:29:46;;1085:8212:36;25936:58:46;:::i;:::-;25929:5;25996:36;26004:1;1085:8212:36;5067:83:55;;25996:36:46;:::i;:::-;26034:18;;;:::i;:::-;25784:289;:52;:289;:::i;1085:8212:36:-;;;;;15174:162:45;9475:8:43;1085:8212:36;;;:::i;:::-;16001:5:46;1085:8212:36;5067:83:55;23950:250:42;24052:100;1085:8212:36;5067:83:55;;24052:100:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24052:100:42;23950:250;;:::i;:::-;23943:257;;;16018:18:46;;:::i;1085:8212:36:-;;;;2310:667:59;3084:71:68;1085:8212:36;;;:::i;:::-;;2310:667:59;-1:-1:-1;;;;;;;;;;;2310:667:59;;;;;;;;1085:8212:36;2310:667:59;;;3010:8:68;2310:667:59;1085:8212:36;2310:667:59;;;;;;;;;;;2947:11:68;2310:667:59;2947:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;3010:8:68:-;2310:667:59;3106:18:68;12790:117:60;3106:18:68;;;:::i;:::-;3139:15;;1085:8212:36;2310:667:59;;5148:8:36;3084:71:68;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;692:938:58;;1085:8212:36;692:938:58;1085:8212:36;692:938:58;;;1085:8212:36;692:938:58;;;;;;;;;;1085:8212:36;692:938:58;1085:8212:36;692:938:58;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;692:938:58;;;;;1085:8212:36;692:938:58;;;;;;1085:8212:36;;;;;11364:229:46;5515:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;;:::i;:::-;4965:661:49;1085:8212:36;4965:661:49;;;;453:10;4965:661;;;1085:8212:36;4965:661:49;1085:8212:36;4965:661:49;;;;;;1085:8212:36;4965:661:49;;;;;1085:8212:36;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;13446:63:52;;;;;;;;:::i;:::-;13598:158;;;;;;;;;;;;;;1085:8212:36;13598:158:52;;13860:100;;;;;:::i;:::-;1085:8212:36;;;;;;6305:83:55;;1085:8212:36;6305:83:55;;7578:9012:51;;;;:::i;:::-;17315:570;;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;1085:8212:36;17315:570:51;1085:8212:36;17315:570:51;1085:8212:36;;17315:570:51;1085:8212:36;17315:570:51;;;1085:8212:36;17315:570:51;7205:121:52;;14478:559;1085:8212:36;14478:559:52;;;;;1085:8212:36;14478:559:52;;;;;;;;;;;;;;;;;;;5067:83:55;1085:8212:36;5067:83:55;15198:9:52;;;:::i;:::-;15398:28;;;;:::i;:::-;13542:488:60;;;;;;;3956:20:63;;;;:::i;:::-;1085:8212:36;;;;;;;:::i;:::-;;;;;;;;;13776:175:45;13942:8;20665:9:43;1085:8212:36;;;:::i;:::-;19807:12:42;19668:235;19807:39;:12;;;;;;:::i;19668:235::-;33257:29:46;;;;:58;:29;;;1085:8212:36;33257:58:46;:::i;:::-;33327:18;;;:::i;1085:8212:36:-;;;;;16430:191:46;10467:9:43;1085:8212:36;;;:::i;:::-;16574:5:46;26376:277:42;26496:109;26586:4;1085:8212:36;5067:83:55;;26496:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;26496:109:42;26376:277;;:::i;:::-;26369:284;;;;16591:18:46;;:::i;1085:8212:36:-;;;;;17355:240:46;11809:8:43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;7275::43;1085:8212:36;;;:::i;:::-;;;;;18482:223:46;13647:9:43;1085:8212:36;;;:::i;:::-;18649:5:46;17537:104:42;;;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;6573::43;1085:8212:36;;;:::i;:::-;20153:30:42;6898:39;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;6898:12:42;12924:36:46;12932:1;5067:83:55;;12924:36:46;:::i;:::-;12962:18;;;:::i;:::-;12806:186;13776:175:45;;:::i;1085:8212:36:-;;;;;23301:279:46;8545:9:43;1085:8212:36;;;:::i;:::-;7992:40:42;;;:::i;:::-;23443:29:46;:58;1085:8212:36;23443:29:46;;1085:8212:36;23443:58:46;:::i;:::-;23436:5;23503:36;23511:1;1085:8212:36;5067:83:55;;23503:36:46;:::i;:::-;23541:18;;;:::i;:::-;23301:279;:47;:279;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2251:90:55;;;1085:8212:36;;9307:42:60;1085:8212:36;12790:117:60;;;-1:-1:-1;;;;;12790:117:60;9307:42;:::i;:::-;1085:8212:36;;;11487:137:60;;;;;1085:8212:36;;;;;;;;11032:107:60;;;1085:8212:36;;;;;;;;;;;;-1:-1:-1;;;5394:39:48;;1085:8212:36;;-1:-1:-1;;;;;1085:8212:36;;;;5394:39:48;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;5394:39:48;1085:8212:36;5394:18:48;-1:-1:-1;;;;;1085:8212:36;5394:39:48;;;;;;1085:8212:36;5394:39:48;1085:8212:36;5394:39:48;;;1085:8212:36;;;;;;;;;:::i;5394:39:48:-;;;;;;1085:8212:36;5394:39:48;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;2639:9;1085:8212;;;;;;:::i;:::-;;;:::i;:::-;2639:9;;:::i;1085:8212::-;;;;;11806:170:45;11967:8;16003:9:43;1085:8212:36;;;:::i;:::-;14015:167:42;14109:34;:12;;;;;;:::i;:34::-;14015:167;;:::i;:::-;20187:18:46;14109:12:42;20187:18:46;;:::i;:::-;20062:155;1085:8212:36;5689:83:55;11806:170:45;;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;14447:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;7498:34;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;7498:12:42;19082:36:46;19090:1;5067:83:55;;19082:36:46;:::i;:::-;19120:18;;;:::i;:::-;18964:186;11806:170:45;;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;3827::43;1085:8212:36;;;:::i;:::-;6447:44:42;;;:::i;:::-;1085:8212:36;;5067:83:55;9026:4:46;9032:36;;;:::i;:::-;9070:18;;;:::i;:::-;8924:176;9882:170:45;;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;11071::43;1085:8212:36;;;:::i;:::-;20153:30:42;20598:64;;32705:531:59;1085:8212:36;32705:531:59;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;20153:30:42;1085:8212:36;;5067:83:55;16949:4:46;16955:36;16963:1;5067:83:55;;16955:36:46;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;6702:189:27;;1085:8212:36;6702:189:27;;;1085:8212:36;6702:189:27;1085:8212:36;6702:189:27;;;;1085:8212:36;;;;;;;;;;;;;15174:162:45;2675:9:43;1085:8212:36;;;:::i;:::-;;5067:83:55;20153:30:42;;;20382:26;20153:30;:::i;:::-;7202:36:46;;;;:::i;:::-;7240:18;;;:::i;:::-;7077:193;7182:4;5067:83:55;;15174:162:45;;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;5857::43;1085:8212:36;;;:::i;:::-;13002:114:42;13081:34;:12;1085:8212:36;13081:12:42;;;;:::i;13002:114::-;12007:18:46;1085:8212:36;12007:18:46;;:::i;1085:8212:36:-;;;;;9412:229:46;4147:8:43;1085:8212:36;;;:::i;:::-;;9269:57:42;;;:::i;:::-;1085:8212:36;;;9564:36:46;1085:8212:36;5067:83:55;9564:36:46;:::i;1085:8212:36:-;;;;;20609:223:46;16631:8:43;1085:8212:36;;;:::i;:::-;17952:12:42;17840:185;17952:34;:12;;;;;;:::i;17840:185::-;20793:18:46;;;;;;:::i;1085:8212:36:-;;;;;12409:191:46;6221:8:43;1085:8212:36;;;:::i;:::-;16634:12:42;16542:171;16634:34;:12;;;;;;:::i;1085:8212:36:-;;;;;12409:191:46;6417:9:43;1085:8212:36;;;:::i;:::-;;1853:80:53;4473:27:63;1085:8212:36;;;:::i;:::-;1853:80:53;;;;:::i;:::-;2055:9;;;2039:10;;2055:9;:::i;:::-;4481:5:63;1085:8212:36;5067:83:55;;2039:10:53;;4473:27:63;:::i;1085:8212:36:-;;;;;32359:267:46;19519:8:43;1085:8212:36;;;:::i;:::-;15560:195:42;15668:39;:12;;;;;;:::i;15560:195::-;32517:29:46;;15668:12:42;32517:58:46;:29;;;1085:8212:36;32517:58:46;:::i;:::-;32587:18;;;:::i;:::-;32359:267;:57;:267;:::i;1085:8212:36:-;;;;;27126:257:46;13009:8:43;1085:8212:36;;;:::i;:::-;14922:104:42;;;:::i;:::-;27274:29:46;;27267:5;27274:58;:29;;;1085:8212:36;27274:58:46;:::i;:::-;27344:18;;;:::i;1085:8212:36:-;;;;;;;:::i;:::-;3669:19:59;;;1085:8212:36;;3669:19:59;;;;:::i;:::-;3877:13;1085:8212:36;3872:369:59;3892:19;;;;;;4261:1050;;;;;2244:19:47;5465:8:36;4261:1050:59;;1085:8212:36;2278:9:47;4261:1050:59;1085:8212:36;;4261:1050:59;-1:-1:-1;;;;;;;;;;;4261:1050:59;;;4017:20;4261:1050;;;;1085:8212:36;4261:1050:59;;;4017:20;4261:1050;;;;;;;;;;;;;;4086:11:68;4261:1050:59;4086:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;3913:3:59:-;4017:13;;;1085:8212:36;4017:13:59;:20;:13;;;;;:::i;:::-;:20;1085:8212:36;;;;4191:22:59;;;4175:51;3913:3;1085:8212:36;3877:13:59;;;;1085:8212:36;;;;;11806:170:45;11967:8;14271::43;1085:8212:36;;;:::i;:::-;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;10704:9:52;1085:8212:36;10904:28:52;1085:8212:36;;;;;;:::i;:::-;9640:63:52;;;;;;;;:::i;:::-;1085:8212:36;;10117:55:52;1085:8212:36;;;;;;;5067:83:55;;9783:60:52;1085:8212:36;5067:83:55;;9783:60:52;:::i;:::-;9948:100;;;;:::i;:::-;10117:55;;;;:::i;:::-;1085:8212:36;10279:264:52;;;;;;;5067:83:55;;10704:9:52;;:::i;:::-;10904:28;;:::i;:::-;1085:8212:36;;;;;;;:::i;:::-;;;;;9882:170:45;10043:8;4489::43;1085:8212:36;;;:::i;:::-;12559:66:42;;;:::i;:::-;10055:18:46;1085:8212:36;10055:18:46;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;15805::43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;17481::43;1085:8212:36;;;:::i;:::-;20153:30:42;7774:39;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;7774:12:42;21198:36:46;21206:1;5067:83:55;;21198:36:46;:::i;1085:8212:36:-;;;;;24603:247:46;10065:9:43;1085:8212:36;;;:::i;:::-;24400:277:42;24511:109;24601:4;1085:8212:36;5067:83:55;;24511:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24400:277:42;24393:284;;24734:5:46;24741:58;:29;;;1085:8212:36;24741:58:46;:::i;:::-;24811:18;;;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;18897:9:43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;17667:9:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;2519:8:43;1085:8212:36;;;:::i;:::-;;;;;9882:170:45;10043:8;12417:9:43;1085:8212:36;;;:::i;:::-;11488:95:42;;;:::i;:::-;26631:29:46;;26624:5;26631:58;:29;;;1085:8212:36;26631:58:46;:::i;:::-;1085:8212:36;26691:36:46;26699:1;1085:8212:36;5067:83:55;;26691:36:46;:::i;:::-;26729:18;;;:::i;:::-;26443:325;9882:170:45;:::i;1085:8212:36:-;;;;;6995:93:53;11812:6;1085:8212:36;;;:::i;:::-;6995:23:53;;;;;;:::i;:93::-;11523:372;;;;:::i;:::-;7221:10;11812:6;;:::i;:::-;;;:::i;1085:8212:36:-;;;;;15174:162:45;8187:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;4635:9:35;4621:10;:23;4617:78;;4770:21;:39;;;;1085:8212:36;4766:101:35;;1085:8212:36;4960:18:35;;;;9738:2;9726:9;1085:8212:36;9691:55:35;1085:8212:36;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;4948:31:35;4944:89;;1085:8212:36;;;-1:-1:-1;;1085:8212:36;5097:4:35;1085:8212:36;;;;4944:89:35;5002:20;;;1085:8212:36;5002:20:35;1085:8212:36;;5002:20:35;1085:8212:36;;;4766:101:35;4832:24;;;1085:8212:36;4832:24:35;1085:8212:36;;4832:24:35;4770:39;1085:8212:36;;;;;4770:39:35;;4617:78;4667:17;;;1085:8212:36;4667:17:35;1085:8212:36;;4667:17:35;1085:8212:36;;;;;11806:170:45;11967:8;5351:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;6658:34;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;6658:12:42;10984:36:46;10992:1;5067:83:55;;10984:36:46;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;3983:9:43;1085:8212:36;;;:::i;:::-;;;;;;;:::i;:::-;7189:18:59;;;;;;;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;7393:26:59;;;:::i;:::-;7481:19;1085:8212:36;7593:13:59;1085:8212:36;7608:12:59;;;;;;9381:470;;;;;1085:8212:36;9381:470:59;1085:8212:36;9381:470:59;8235:26;4546:18:47;9381:470:59;;8854:398;;9381:470;1085:8212:36;;:::i;:::-;;6633:32:68;6597:18;;;;:::i;:::-;8235:26:59;6617:14:68;;1085:8212:36;;;:::i;:::-;;;:::i;:::-;4546:18:47;:::i;:::-;1085:8212:36;4773:12:47;;;;;;8235:26:59;1085:8212:36;;;;;;4787:3:47;4920:12;5090:9;6109:8:36;4920:12:47;1085:8212:36;4920:12:47;;;;:::i;:::-;5056:18;8235:26:59;5056:18:47;;;;:::i;:::-;1085:8212:36;;;5090:9:47;;:::i;:::-;1085:8212:36;4758:13:47;;7622:3:59;7756:12;;;;;:::i;:::-;1085:8212:36;8235:26:59;;;;;;;:::i;:::-;8452:13;1085:8212:36;8447:389:59;8467:18;;;;;;8854:398;;;;1085:8212:36;8854:398:59;;1085:8212:36;8854:398:59;1085:8212:36;8854:398:59;;;1085:8212:36;;8235:26:59;8854:398;;;;;1085:8212:36;7593:13:59;;8487:3;8596:11;;;1085:8212:36;8596:11:59;8235:26;8596:11;;;;;:::i;:::-;:18;1085:8212:36;;;;8783:21:59;;;8767:50;8487:3;1085:8212:36;8452:13:59;;;;1085:8212:36;;;;;;;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;2865:34:70;2884:10;;6656:622;;6777:495;;;;;;;;;;;;;;;;6656:622;2865:34;2910:506;;;;;;1085:8212:36;3525:23:70;2910:506;;1085:8212:36;5067:83:55;3525:23:70;;:::i;2910:506::-;;;1085:8212:36;2910:506:70;2884:10;1085:8212:36;2910:506:70;1085:8212:36;2910:506:70;;;;1085:8212:36;;;;;;9095:8:43;1085:8212:36;;;:::i;:::-;;;;3200:18:47;1085:8212:36;;;:::i;:::-;3200:18:47;3081;5822::59;;;1085:8212:36;5822:18:59;6579:76;5822:18;;;;:::i;:::-;1085:8212:36;5947:541:59;;;;;;;;;6579:76;;:::i;:::-;5259:112:68;5301:18;;;;:::i;:::-;5321:14;;;1085:8212:36;5259:112:68;;:::i;1085:8212:36:-;3081:18:47;;:::i;:::-;3200;;;;;:::i;:::-;3365:13;1085:8212:36;3380:18:47;;;;;;5321:14:68;1085:8212:36;;;;;;3400:3:47;3532:12;3636:64;3532:12;1085:8212:36;3532:12:47;;;;:::i;:::-;5321:14:68;3683:16:47;;1085:8212:36;;;3646:10:47;;5943:9:36;3636:64:47;:::i;:::-;;1085:8212:36;3365:13:47;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;9865:71:53;11812:6;1085:8212:36;;;;;:::i;:::-;9865:23:53;;;;:::i;:::-;:71;:::i;:::-;11523:372;;;;:::i;:::-;1085:8212:36;;11812:6:53;;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;14105:9:43;1085:8212:36;;;:::i;:::-;27987:5:46;18900:122:42;;;:::i;:::-;27994:29:46;;;;:58;:29;;;1085:8212:36;27994:58:46;:::i;:::-;28064:18;;;:::i;1085:8212:36:-;;;;;7584:197:46;2829:8:43;1085:8212:36;;;:::i;:::-;;5067:83:55;1085:8212:36;20153:30:42;1085:8212:36;5067:83:55;;20153:30:42;21800:26;20153:30;:::i;:::-;21469:68;7713:36:46;21469:68:42;;;;;:::i;:::-;1085:8212:36;7713:36:46;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;19303:9:43;1085:8212:36;;;:::i;:::-;14350:177:42;14449:39;:12;;;;;;:::i;14350:177::-;22363:18:46;14449:12:42;22363:18:46;;:::i;1085:8212:36:-;;;;;24603:247:46;9859:8:43;1085:8212:36;;;:::i;:::-;;;;;32359:267:46;19745:9:43;1085:8212:36;;;:::i;:::-;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;2893:10;1085:8212;2423:56:64;1085:8212:36;;;;;;:::i;:::-;2893:10;;;;;;:::i;:::-;1085:8212;;2423:56:64;;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;4290:42:40;-1:-1:-1;;;;;12790:117:60;;;;4290:42:40;:::i;:::-;1085:8212:36;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;11487:137:60;;;;;;1085:8212:36;:::i;:::-;;;;11032:107:60;;;1085:8212:36;:::i;:::-;;;;;;;11806:170:45;11967:8;17071::43;1085:8212:36;;;:::i;:::-;;;;;;;:::i;:::-;6119:335:27;;;;;;;;1085:8212:36;6119:335:27;1085:8212:36;6119:335:27;1085:8212:36;6119:335:27;;1085:8212:36;6119:335:27;;1085:8212:36;;;;;;;;;;;11806:170:45;11967:8;5195::43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;19095::43;1085:8212:36;;;:::i;:::-;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;;;;;;;;;;13373:554:27;1085:8212:36;13373:554:27;;;;1085:8212:36;13373:554:27;;;;;;1085:8212:36;13373:554:27;;;;;;;1085:8212:36;13373:554:27;;1085:8212:36;;;13943:4:27;1085:8212:36;;;;;;;;13776:175:45;13942:8;6739:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;:::i;:::-;6658:53:52;;;;;;:::i;:::-;1085:8212:36;;;;;;;;;6305:83:55;7578:9012:51;;;;;;:::i;:::-;17315:570;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;1085:8212:36;;17315:570:51;1085:8212:36;17315:570:51;;;1085:8212:36;17315:570:51;7205:121:52;;1085:8212:36;7205:121:52;;;;;;5067:83:55;1085:8212:36;5067:83:55;7488:9:52;;;:::i;:::-;7632:14;;;:::i;:::-;13542:488:60;;;;;;;3956:20:63;;;;:::i;:::-;7745:11:52;;:::i;:::-;1085:8212:36;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;8258:58:53;8422:9;8258:58;;;;:::i;:::-;8422:9;;;;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;6035:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;5088:29:48;;1085:8212:36;;;5088:29:48;;;1085:8212:36;-1:-1:-1;1085:8212:36;5088:29:48;1085:8212:36;5088:18:48;-1:-1:-1;;;;;1085:8212:36;5088:29:48;;;;;;1085:8212:36;5088:29:48;1085:8212:36;5088:29:48;;;1085:8212:36;;;;;;;;:::i;:::-;;;;;9882:170:45;10043:8;13871::43;1085:8212:36;;;:::i;:::-;;;;;9882:170:45;10043:8;12205::43;1085:8212:36;;;:::i;:::-;;;;;9882:170:45;10043:8;4667:9:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;3151:8:43;1085:8212:36;;;:::i;:::-;12559:66:42;;;:::i;:::-;8175:18:46;1085:8212:36;8175:18:46;;:::i;:::-;8071:134;1085:8212:36;5689:83:55;15174:162:45;;;:::i;1085:8212:36:-;;;;;3053:53:64;1085:8212:36;;;:::i;:::-;3053:53:64;6411:531:63;6273:675;6411:531;6273:675;6411:531;;;;;;;;;;;;;;;;;;;;;6273:675;;3053:53:64;1085:8212:36;;7168:15;;7158:25;;1085:8212;;;;;;;;;;;:::i;:::-;12498:568:27;;;;;;;;;;;1085:8212:36;12498:568:27;;;1085:8212:36;12498:568:27;;1085:8212:36;12498:568:27;;;;;;;;1085:8212:36;12498:568:27;1085:8212:36;12498:568:27;;;1085:8212:36;;13082:4:27;1085:8212:36;;;;;;;;;10905:9:43;1085:8212:36;;;:::i;:::-;;;;;18482:223:46;13431:8:43;1085:8212:36;;;:::i;:::-;;;;;25784:289:46;11431:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;1317:8:64;1085:8212:36;;;;;;6849:10;1317:8:64;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;4972:2:27;1085:8212:36;;;;;;;;9882:170:45;10043:8;12803:9:43;1085:8212:36;;;:::i;:::-;;;;;;;:::i;:::-;7189:18:59;;;;;;;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;7393:26:59;;;:::i;:::-;7481:19;1085:8212:36;7593:13:59;1085:8212:36;7608:12:59;;;;;;9381:470;;;;;1085:8212:36;9381:470:59;1085:8212:36;9381:470:59;8235:26;4546:18:47;9381:470:59;;8854:398;;9381:470;1085:8212:36;;:::i;4546:18:47:-;1085:8212:36;4773:12:47;;;;;;8235:26:59;1085:8212:36;;;;;;4787:3:47;4920:12;5090:9;6280::36;4920:12:47;1085:8212:36;4920:12:47;;;;:::i;5090:9::-;1085:8212:36;4758:13:47;;7622:3:59;7756:12;;;;;:::i;:::-;1085:8212:36;8235:26:59;;;;;;;:::i;:::-;8452:13;1085:8212:36;8447:389:59;8467:18;;;;;;8854:398;;;;1085:8212:36;8854:398:59;;1085:8212:36;8854:398:59;1085:8212:36;8854:398:59;;;1085:8212:36;;8235:26:59;8854:398;;;;;1085:8212:36;7593:13:59;;8487:3;8596:11;;;1085:8212:36;8596:11:59;8235:26;8596:11;;;;;:::i;:::-;:18;1085:8212:36;;;;8783:21:59;;;8767:50;8487:3;1085:8212:36;8452:13:59;;;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;8244:18;;:::i;1085:8212::-;;;;;27126:257:46;13225:9:43;1085:8212:36;;;:::i;:::-;;;;;23301:279:46;8361:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;2423:56:64;1085:8212:36;;;;;;;;:::i;:::-;;;2423:56:64;;:::i;1085:8212:36:-;;;;;15174:162:45;3319:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;:::i;:::-;6777:495:70;;;4416:10;6777:495;;;;;;;;;;;;;;4442:510;;;;;;;;;5004:44;1085:8212:36;;;;;4416:10:70;;5004:44;:::i;4442:510::-;;;1085:8212:36;4442:510:70;1085:8212:36;4442:510:70;1085:8212:36;4442:510:70;;1085:8212:36;;;;;13776:175:45;13942:8;20421::43;1085:8212:36;;;:::i;:::-;;;;;28390:289:46;14825:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1085:8212:36;;;;8794:2:60;8778:18;;;8720:10;:23;;8748:21;;:25;;1422:62:55;;8778:18:60;:106;;1085:8212:36;1422:62:55;;;2730:33:40;2726:278;;2663:28:60;;;:::i;:::-;2702:1053;;;;;;;;;;;;;1085:8212:36;2702:1053:60;;;1085:8212:36;2702:1053:60;;;;1085:8212:36;;2702:1053:60;-1:-1:-1;;;;;1085:8212:36;;;;;;;2702:1053:60;;;1085:8212:36;2702:1053:60;1085:8212:36;2702:1053:60;1085:8212:36;2702:1053:60;;;;2726:278:40;2779:215;1085:8212:36;2779:215:40;1085:8212:36;2779:215:40;1085:8212:36;2779:215:40;;8778:106:60;1085:8212:36;;;;;;;;14773:133:28;;1085:8212:36;14773:133:28;;1085:8212:36;14773:133:28;;-1:-1:-1;;;;;1085:8212:36;8823:60:60;;-1:-1:-1;;;;;;8801:8:60;;1085:8212:36;;8801:16:60;;;905:63:55;;8778:106:60;;;;1085:8212:36;;;;;;;;;;;;;;;;2310:667:59;3084:71:68;1085:8212:36;;;:::i;:::-;;2310:667:59;-1:-1:-1;;;;;;;;;;;2310:667:59;;;;;;;;1085:8212:36;2310:667:59;;;3010:8:68;2310:667:59;1085:8212:36;2310:667:59;;;;;;;;;;;2947:11:68;2310:667:59;2947:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;3010:8:68:-;2310:667:59;3106:18:68;12790:117:60;3106:18:68;;;:::i;:::-;3139:15;;1085:8212:36;2310:667:59;;5309:9:36;3084:71:68;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;11247:9:43;1085:8212:36;;;:::i;:::-;;;;;22797:233:46;20187:9:43;1085:8212:36;;;:::i;:::-;18346:12:42;18229:195;18346:39;:12;;;;;;:::i;1085:8212:36:-;;;;;30973:299:46;18065:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;8756:39;:12;;;;;;:::i;20153:30::-;31135:29:46;:58;1085:8212:36;31135:29:46;;1085:8212:36;31135:58:46;:::i;:::-;8756:12:42;31195:36:46;31203:1;1085:8212:36;5067:83:55;;31195:36:46;:::i;:::-;31233:18;;;:::i;1085:8212:36:-;;;;3200:18:47;1085:8212:36;;;:::i;:::-;3200:18:47;3081;5822::59;;;1085:8212:36;5822:18:59;6579:76;5822:18;;;;:::i;3200::47:-;3365:13;1085:8212:36;3380:18:47;;;;;;5321:14:68;1085:8212:36;;;;;;3400:3:47;3532:12;3636:64;3532:12;1085:8212:36;3532:12:47;;;;:::i;:::-;5321:14:68;3683:16:47;;1085:8212:36;;;3646:10:47;;5782:8:36;3636:64:47;:::i;:::-;;1085:8212:36;3365:13:47;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;;486:99:58;1085:8212:36;486:99:58;1085:8212:36;;486:99:58;1085:8212:36;;;;;16430:191:46;10261:8:43;1085:8212:36;;;:::i;:::-;;;;;7584:197:46;2993:9:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;9663:9:43;1085:8212:36;;;:::i;:::-;;;;;11806:170:45;11967:8;15405::43;1085:8212:36;;;:::i;:::-;20153:30:42;11858:34;:12;;;;;;:::i;20153:30::-;5067:83:55;21469:68:42;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;11858:12:42;29237:58:46;:29;;;1085:8212:36;29237:58:46;:::i;:::-;1085:8212:36;29297:36:46;29305:1;1085:8212:36;5067:83:55;;29297:36:46;:::i;:::-;29335:18;;;:::i;1085:8212:36:-;;;;;20609:223:46;16847:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;5874:31:70;1085:8212:36;;:::i;:::-;;;5874:31:70;6656:622;;6777:495;;;;;;;;;;;;;;;;6656:622;5874:31;5916:329;1085:8212:36;;5916:329:70;;;;;;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;8547:181:46;3681:9:43;1085:8212:36;;;:::i;:::-;8681:5:46;25394:148:42;1085:8212:36;;5067:83:55;;25394:148:42;;:::i;1085:8212:36:-;;;;;13314:239:46;7097:9:43;1085:8212:36;;;:::i;:::-;;;;;15363:230:46;8719:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;1457:10:40;:58;:29;:10;:29;:::i;:::-;:58;:::i;:::-;1576:75;1085:8212:36;1701:1:40;1085:8212:36;;1717:13:40;1751:7;;;;;;1085:8212:36;;;1978:4:40;1085:8212:36;;;1760:9:40;1085:8212:36;;1925:10:40;1457;1789:89;;1925:10;:::i;:::-;1085:8212:36;1744:207:40;;1085:8212:36;;;;;22797:233:46;19961:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;3855:55:52;1085:8212:36;;4365:14:52;1085:8212:36;;;;;;:::i;:::-;;;;4221:9:52;1085:8212:36;5067:83:55;;3486:60:52;1085:8212:36;5067:83:55;;3486:60:52;:::i;:::-;3733:53;;;;:::i;:::-;3855:55;;;;;;;;;;:::i;:::-;1085:8212:36;3973:79:52;;;1085:8212:36;4200:5:52;5067:83:55;;;;4221:9:52;;:::i;:::-;4365:14;:::i;1085:8212:36:-;;;;;19482:240:46;15009:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;10650:34;:12;;;;;;:::i;20153:30::-;5067:83:55;10650:12:42;21469:68;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;19645:36:46;19653:1;1085:8212:36;5067:83:55;;19645:36:46;:::i;1085:8212:36:-;;;;;19482:240:46;15203:9:43;1085:8212:36;;;:::i;:::-;;;;;8547:181:46;3495:8:43;1085:8212:36;;;:::i;:::-;;;;;21628:250:46;18463:9:43;1085:8212:36;;;:::i;:::-;;;;:::i;:::-;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;;;;9307:42;:::i;:::-;1085:8212:36;;;;;;7602:1659:68;;;1085:8212:36;7602:1659:68;;;1085:8212:36;7602:1659:68;;;;;;;;;;;;;;7255:10:27;7602:1659:68;;;;7255:10:27;1085:8212:36;7602:1659:68;;;;;;;;;;;;;;12790:117:60;7602:1659:68;;;;;1085:8212:36;7602:1659:68;-1:-1:-1;;;7602:1659:68;;;7335:1429:27;;;;7602:1659:68;7335:1429:27;7255:10;7335:1429;;;1085:8212:36;7335:1429:27;1085:8212:36;;7335:1429:27;;;;;;;;;;;;;;;;1085:8212:36;7335:1429:27;1085:8212:36;;7335:1429:27;;;;;;;;;;;;;7255:10;1085:8212:36;7335:1429:27;7602:1659:68;7335:1429:27;7255:10;-1:-1:-1;;;;;;;;;;;1085:8212:36;;7335:1429:27;7602:1659:68;1085:8212:36;;8837:4:27;1085:8212:36;;;;;;;;14399:223:46;7865:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;8968:151;;;;;;;;;1085:8212;;;;;9412:229:46;4321:9:43;1085:8212:36;;;:::i;:::-;;;;;30973:299:46;17861:8:43;1085:8212:36;;;:::i;:::-;;;;;11806:170:45;11967:8;15617:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;;1085:8212:36;;;;;;;14196:182:27;1085:8212:36;14196:182:27;1085:8212:36;;14196:182:27;;;;;;;;1085:8212:36;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;5633:184:27;1085:8212:36;5633:184:27;;;1085:8212:36;;;5633:184:27;1085:8212:36;;;5633:184:27;;1085:8212:36;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;-1:-1:-1;;;4780:27:48;;1085:8212:36;;;4780:27:48;;;1085:8212:36;-1:-1:-1;4780:27:48;;;:18;-1:-1:-1;;;;;1085:8212:36;4780:27:48;;;;;;1085:8212:36;4780:27:48;1085:8212:36;4780:27:48;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;7205:121:52;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;:::o;:::-;-1:-1:-1;;;;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1085:8212:36;;;;;;;;;;;;;;:::o;4176:2284:65:-;;;;;4275:4;;:::i;:::-;-1:-1:-1;;;;;1085:8212:36;;4557:19:65;1085:8212:36;;4146:221:31;-1:-1:-1;4146:221:31;;;;;;;;;;;4553:627:65;5190:1169;;;;;;;-1:-1:-1;5190:1169:65;;-1:-1:-1;5190:1169:65;;;;;;;;;;;-1:-1:-1;5190:1169:65;;;;;;;;;1085:8212:36;;;;;5190:1169:65;-1:-1:-1;;;;;;;;;;;5190:1169:65;;;;;:::i;:::-;6449:4;4176:2284;:::o;4146:221:31:-;;-1:-1:-1;4146:221:31;;;;4553:627:65;4785:4;;;4761:30;4785:4;4761:30;;:::i;:::-;13593:806:31;;;;;;;;-1:-1:-1;13593:806:31;;-1:-1:-1;13593:806:31;;;;;;;;;-1:-1:-1;13593:806:31;;;;;;;5125:30:65;13593:806:31;-1:-1:-1;13593:806:31;;4785:4:65;5125:30;;:::i;:::-;1085:8212:36;;4553:627:65;;;13593:806:31;;-1:-1:-1;13593:806:31;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1085:8212:36;;;;;;;:::o;4367:145:48:-;4452:25;4487:17;981:749:54;;;;4367:145:48;:::o;981:749:54:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4367:145:48;:::o;1085:8212:36:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;2947:3169:53:-;;;;;:::i;:::-;3405:1072;;1085:8212:36;;;;;;3405:1072:53;;;;;;;;;;;;;;;;;;;;;;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;;7277:40;;;:::i;:::-;4791:93:53;;;2947:3169;4974:52;5028:12;;;;;;6009:6;;;;;;;:::i;:::-;2947:3169::o;5042:3::-;5174:16;;;;;:::i;:::-;1085:8212:36;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;-1:-1:-1;;;;;1085:8212:36;;5559:36:53;;5555:300;;5042:3;-1:-1:-1;5322:1:53;;1085:8212:36;6009:6:53;;3405:1072;1085:8212:36;;;;-1:-1:-1;;;;;1085:8212:36;;6009:6:53;:::i;:::-;1085:8212:36;4974:52:53;;5555:300;6009:6;5681:43;;;;3405:1072;5681:43;;5322:1;5681:43;;;:::i;:::-;5555:300;;;;;;;;4791:93;4863:9;3405:1072;;4863:9;;;:::i;:::-;4791:93;;;3405:1072;;-1:-1:-1;3405:1072:53;;;;2950:460:48;3018:12;;1085:8212:36;3018:12:48;;;1085:8212:36;;;;;1409:20:48;1085:8212:36;1409:20:48;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;20153:30:42;5067:83:55;;1409:20:48;20382:26:42;20153:30;:::i;:::-;1085:8212:36;;3065:283:48;;3358:12;;;1085:8212:36;3358:12:48;;;1085:8212:36;3065:283:48;;;1085:8212:36;;;;;;;;;;;;3065:283:48;1409:20;5514:59:35;2950:460:48:o;1085:8212:36:-;-1:-1:-1;6052:14:35;1085:8212:36;;;;;;3065:283:48;1409:20;6082:67:35;2950:460:48:o;6048:208:35:-;3065:283:48;1409:20;6179:67:35;2947:3169:53:o;3065:283:48:-;;;;;;;;;1085:8212:36;;32705:531:59;21015:4:42;5067:83:55;;;1409:20:48;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;20153:30:42;32705:531:59;-1:-1:-1;32705:531:59;1409:20:48;8797:51:42;20153:30;:::i;:::-;1085:8212:36;;;;-1:-1:-1;32705:531:59;;-1:-1:-1;32705:531:59;;;;;;;;;;20153:30:42;;1409:20:48;20664:42:42;20153:30;:::i;1085:8212:36:-;6699:60:35;1409:20:48;6699:60:35;1085:8212:36;;;;-1:-1:-1;;1085:8212:36;;;;;;1409:20:48;7298:68:35;1085:8212:36;;;7264:210:35;1409:20:48;7396:68:35;7264:210;;19260:739:31;19403:590;;;19260:739;;;;19403:590;;;;;;;;;;;;;;;;19260:739;:::o;3597:97:48:-;3649:14;;1085:8212:36;3649:14:48;;;1085:8212:36;8260:14:35;;;1085:8212:36;;;;;;;;;;;;7806:55:35;1409:20:48;7806:55:35;3597:97:48:o;1085:8212:36:-;-1:-1:-1;8260:14:35;1085:8212:36;;;;;;8260:14:35;1409:20:48;8290:63:35;3597:97:48:o;8256:200:35:-;8260:14;1409:20:48;8383:63:35;2947:3169:53:o;1085:8212:36:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;:::o;1742:710:54:-;1871:575;1742:710;1871:575;;;;;;;;;;;;;;;;;;;;;;;;;;1742:710;:::o;36947:606:59:-;;37029:518;;;-1:-1:-1;;;;;;;;;;;37029:518:59;;-1:-1:-1;;;;;;;;;;;37029:518:59;;-1:-1:-1;;;;;;;;;;;37029:518:59;;;;;;;;36947:606::o;18139:956:51:-;18258:831;18139:956;18258:831;;;;;;;;;;;;18139:956;:::o;19699:1824:52:-;;19834:32;;:::i;:::-;20564:30;20400:71;20142:166;;;;;;20400:23;;;:::i;:71::-;20588:4;;20564:30;;:::i;:::-;20605:912;;;;;;;;;;;;;20588:4;20605:912;;;;;;;;;;;;;;;;;;;;;;;;19699:1824;:::o;19362:712:51:-;19450:618;;19362:712;19450:618;;;;;;;;;;;;;;;;;;;;;;;;;19362:712::o;21931:1560:52:-;;;;22196:1289;21931:1560;;22196:1289;21931:1560;;;22165:20;;;:::i;:::-;22196:1289;;;;;;;;;;;;;;;;;;;;;;;;;;;;21931:1560::o;22196:1289::-;;;;;;;;;;1450:776:50;1665:30;1450:776;;;;1689:4;1665:30;;:::i;:::-;1757:237;;;;;;;2179:29;1085:8212:36;;2179:29:50;;:::i;1757:237::-;;;;;;;16149:279:60;14888:947;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16303:119;;;14888:947;13542:488;16303:119;;1085:8212:36;14888:947:60;1085:8212:36;;14888:947:60;;;;;;;;;;16303:119;;;;16149:279;:::o;7544:445::-;-1:-1:-1;;;7626:357:60;;;;;;7544:445;:::o;7626:357::-;;;;;;;;;898:148:49;3299:1046;;;;;453:10;3299:1046;;;;;;;;;;;;;;;;;;;;;;;;;;;898:148::o;3299:1046::-;-1:-1:-1;;;3299:1046:49;;;;;9633:516:68;;9844:29;:23;;;1085:8212:36;9844:29:68;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;10132:9:68;10039:18;;;;;:::i;:::-;;;;;:::i;:::-;10098:10;10132:9;:::i;10716:1453::-;;;;11213:20;;11359:35;;;;5337:33;11359:35;:::i;:::-;1359::69;1434:9;1359:35;;;:::i;:::-;1434:9;;;:::i;:::-;11645:13:68;-1:-1:-1;;;;;11657:1:68;1085:8212:36;;11640:253:68;11660:19;;;;;;11960:203;;;;;;10716:1453::o;11960:203::-;;11232:1;11960:203;;;;11681:3;11815:35;;;;11657:1;11815:35;;-1:-1:-1;;;;;11815:35:68;;;;5337:33;11815:35;:::i;:::-;1085:8212:36;11815:50:68;;11799:79;11681:3;1085:8212:36;11645:13:68;;;;;10716:1453;;;;;11213:20;;11359:35;;;;;;:::i;:::-;1359::69;1434:9;1359:35;;;:::i;1434:9::-;11645:13:68;-1:-1:-1;;;;;11657:1:68;1085:8212:36;;11640:253:68;11660:19;;;;;;11960:203;;;;;;;10716:1453::o;11681:3::-;11815:35;;;;;11657:1;11815:35;;-1:-1:-1;;;;;11815:35:68;;;;;;:::i;:::-;1085:8212:36;11815:50:68;;11799:79;11681:3;1085:8212:36;11645:13:68;;;;;;4999:850:63;;;5399:1;5402:20;;;;;;5831:11;;;;5783:1;4999:850;:::o;5424:3::-;5561:27;5787:8;5561:27;;5783:1;5561:27;;;;:::i;:::-;1085:8212:36;;;;;;5690:10:63;5787:8;:::i;:::-;1085:8212:36;5387:13:63;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1651:1664:63:-;;;;;1787:1522;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1787:1522:63;;;;;;-1:-1:-1;;;;;1787:1522:63;;;;;;;1651:1664::o;1787:1522::-;;;;;;;;;6488:1750:45;;;;;;;;;7088:592;;;;;;;;;;;;;;;7822:2;;;;;:::i;:::-;5410:327:69;;;;;1085:8212:36;;8064:167:45;1085:8212:36;;;;8074:134:45;1085:8212:36;;7088:592:45;1085:8212:36;;;;;7088:592:45;;;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;8074:134:45;;:::i;:::-;8064:167;;:::i;:::-;6488:1750;:::o;5410:327:69:-;;;;;;7088:592:45;5410:327:69;7088:592:45;5410:327:69;;;;4509:499:60;;;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;4976:3;1085:8212:36;;4941:3:60;1085:8212:36;;;;4884:61:60;:96;4509:499;:::o;:::-;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;1085:8212:36;;;;4976:3:60;1085:8212:36;4884:116:60;;4509:499;:::o;6455:374::-;;;1085:8212:36;6455:374:60;;;;;;4509:499;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;4976:3;1085:8212:36;;;;4884:96:60;4509:499;:::o;:::-;;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;4976:3;1085:8212:36;;4941:3:60;1085:8212:36;;;;4884:61:60;:96;:116;4509:499;:::o;2678:1277:50:-;;;2755:1194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;;;;2755:1194:50;;-1:-1:-1;;;;;;;;;;;2755:1194:50;;;2678:1277::o;7578:9012:51:-;;;;;;;;;;;-1:-1:-1;7578:9012:51;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;-1:-1:-1;;7578:9012:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;7578:9012:51;-1:-1:-1;;;;;;;;;;;7578:9012:51;;-1:-1:-1;;;;;;;;;;;7578:9012:51;;;;;;:::o;:::-;;-1:-1:-1;7578:9012:51;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;-1:-1:-1;7578:9012:51;;5295:557:60;-1:-1:-1;;;5398:448:60;;;;5295:557;5398:448;;;;5295:557;:::o;10557:505:53:-;;;10744:30;10768:4;10744:30;;:::i;:::-;9254:988:31;;;;;;10768:4:53;9254:988:31;;10865:10:53;9254:988:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;11040:14:53;9254:988:31;;;;;;11040:14:53;:::i;9254:988:31:-;;;;;;;4719:320:69;4801:209;;;;;;4719:320;:::o;4801:209::-;;;;;;;1932:568:57;;2035:459;;;;;;;;;;;;1932:568::o;1085:8212:36:-;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;7205:121:52;1085:8212:36;7205:121:52;;1085:8212:36;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;16358:2747:52:-;;;16614:37;;:::i;:::-;-1:-1:-1;;;;;16956:1264:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;18295:58;16956:1264;;;;;;18295:58;:::i;:::-;18401:26;;;;:::i;:::-;18492:199;;;16358:2747;1085:8212:36;;;;18986:112:52;27026:43;;;:::i;:::-;27216:19;-1:-1:-1;27295:13:52;-1:-1:-1;27310:32:52;;;;;;28096:286;;;;;;16358:2747;:::o;28096:286::-;;-1:-1:-1;28096:286:52;;;;27344:3;1085:8212:36;28037:30:52;1085:8212:36;;;;;;;;27442:55:52;:61;:55;;;;;:::i;:::-;:61;:::i;:::-;1085:8212:36;;;;;;10621:113:60;;-1:-1:-1;;;;;10621:113:60;;;;;27698:17:52;;;;27682:46;27781:16;27864:54;27781:16;27864:54;;;:::i;:::-;1085:8212:36;28061:4:52;28037:30;;:::i;:::-;28018:49;;;;:::i;:::-;1085:8212:36;;27295:13:52;;;;;18492:199;18571:9;16956:1264;;;18571:9;;:::i;:::-;1085:8212:36;;;;;;16956:1264:52;1085:8212:36;;;18492:199:52;;;3614:3121:51;;3816:2913;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3816:2913:51;;-1:-1:-1;;3816:2913:51;;;;;-1:-1:-1;3614:3121:51:o;3816:2913::-;;;;;;;;;;;;;;;;;;;;;;;;24121:1723:52;1085:8212:36;;;;;;24121:1723:52;;;;1085:8212:36;24844:32:52;;;;;;25511:258;;;;;;;;;;;;:::i;24878:3::-;1085:8212:36;25446:29:52;1085:8212:36;;;;25064:4:52;24978:92;25064:4;24978:67;:61;25064:4;24978:61;;;;:::i;:67::-;:92;:::i;:::-;25105:23;25395:49;25105:23;;;;:::i;:::-;1085:8212:36;25273:30:52;;;;;25257:59;25395:49;;;:::i;:::-;1085:8212:36;;;25446:29:52;;;:::i;:::-;1085:8212:36;24829:13:52;;1085:8212:36;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;7205:121:52;1085:8212:36;7205:121:52;;1085:8212:36;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;:::o;33488:1350:59:-;1085:8212:36;;;;;;33842:4:59;1085:8212:36;;;;;;;33821:26:59;;;:::i;:::-;33933:13;-1:-1:-1;33948:12:59;;;;;;34627:205;;;34131:462;34627:205;;34131:462;;34627:205;33488:1350;:::o;33962:3::-;34103:9;;1085:8212:36;34103:9:59;;;;:::i;:::-;33842:4;34131:462;;1085:8212:36;34131:462:59;;;;;;;;;;;;;;;1085:8212:36;33933:13:59;;2568:2676:45;3056:1056;;;;-1:-1:-1;;;;;3056:1056:45;;2568:2676;;;;;;;3056:1056;;2568:2676;;3056:1056;;;;;;;;;;;;2568:2676;;3056:1056;;;2568:2676;4171:13;3056:1056;;;;4171:13;:::i;:::-;1359:35:69;;;:::i;:::-;3056:1056:45;;;;;1434:9:69;;;;:::i;:::-;4384:262:45;;;;;4805:28;;;;4759:41;;;;1422:62:55;4758:134:45;;;;5140:15;4758:134;5227:9;4758:134;;;2568:2676;4754:236;;;;;2568:2676;3056:1056;;;;;;;;;5140:15;;:::i;:::-;5227:9;;:::i;4754:236::-;4956:22;3056:1056;;;4956:22;;;:::i;:::-;4754:236;;;;;4758:134;7498:53:63;;;6411:531;6273:675;6411:531;6273:675;6411:531;;;;;;;;;;;;;;;;;;;;;6273:675;;7498:53;7555:15;-1:-1:-1;7498:72:63;4758:134:45;;;;;9841:2874:47;;;;;;;;11273:135;9841:2874;;;10515:537;;;;;;;;;;;;;;;;;11153:9;:28;:9;;;;:::i;:::-;1085:8212:36;12790:117:60;;-1:-1:-1;;;;;12790:117:60;;12702:211;11153:28:47;11273:135;;;;:::i;:::-;11710:9;;;;;:::i;:::-;11742:12;12034:40;10515:537;11851:100;1085:8212:36;;;11781:16:47;;;;;1085:8212:36;11851:25:47;;;;1085:8212:36;11851:100:47;:::i;:::-;11830:16;;1422:62:55;12034:40:47;;;;;:::i;:::-;;-1:-1:-1;;;;;12203:1:47;1085:8212:36;;12186:423:47;12206:15;;;;;;12664:11;;;;;;;;;;;;:::i;12223:3::-;12258:9;;;;;:::i;:::-;1085:8212:36;;12329:16:47;;;;11781;12329;;1085:8212:36;12422:25:47;;;10515:537;12422:25;1085:8212:36;12422:100:47;;;;:::i;:::-;12790:117:60;;;;-1:-1:-1;;;;;12790:117:60;12379:38:47;;1422:62:55;12363:172:47;12554:40;;;;;;;:::i;:::-;;12203:1;1085:8212:36;12191:13:47;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;35089:1381:59:-;1085:8212:36;;;;;;35453:4:59;1085:8212:36;;;;;;;35432:26:59;;;:::i;:::-;35544:13;-1:-1:-1;35559:12:59;;;;;;36259:205;;;35747:478;36259:205;;35747:478;;36259:205;35089:1381;:::o;35573:3::-;35719:9;;1085:8212:36;35719:9:59;;;;:::i;:::-;35453:4;35747:478;;1085:8212:36;35747:478:59;;;;;;;;;;;;;;;1085:8212:36;35544:13:59;;3959:187:48;4032:27;4028:69;;5767:105;;;;3959:187;:::o;19512:2305:59:-;19760:2051;19512:2305;;19760:2051;;19512:2305;19760:2051;;;;;;;-1:-1:-1;;;;;;;;;;;19760:2051:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19760:2051:59;;;;;;19512:2305;:::o;2298:320:69:-;2354:258;;;;;;2298:320;:::o;2354:258::-;;;;;;;;;3290:686;2577:519:54;;;;-1:-1:-1;2577:519:54;;;;;;;;;;;;;;;;;3290:686:69;;2577:519:54;;3290:686:69;;6576:3996:32;;;;;;-1:-1:-1;;;;;6576:3996:32;;;;;;;;;3641:329:69;;;;;;;;;;;;;3290:686::o;3641:329::-;;-1:-1:-1;3641:329:69;6576:3996:32;3641:329:69;;6576:3996:32;;;;;;;;;2577:519:54;6576:3996:32;;;-1:-1:-1;6576:3996:32;;;;;;;2577:519:54;6576:3996:32;;;-1:-1:-1;6576:3996:32;;;2577:519:54;6576:3996:32;;;;;;;;;;;;;;;;2577:519:54;6576:3996:32;;;;;;;;;;;;;;;-1:-1:-1;;;6576:3996:32;;;;;;;;;;;;;2577:519:54;6576:3996:32;;;-1:-1:-1;6576:3996:32;2577:519:54;6576:3996:32;2577:519:54;6576:3996:32;;;2577:519:54;6576:3996:32;;-1:-1:-1;6576:3996:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;6576:3996:32;;2577:519:54;6576:3996:32;;;;;;;;;;;2577:519:54;6576:3996:32;;;;;;;;;;;;;;2577:519:54;6576:3996:32;-1:-1:-1;;;;;6576:3996:32;;;1085:8212:36;6576:3996:32;-1:-1:-1;1085:8212:36;6576:3996:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;6576:3996:32;;2577:519:54;6576:3996:32;;;;;;;;;;1099:568:57;1194:467;;;;;;-1:-1:-1;;;;;1194:467:57;;;;;;;;;;;;1099:568::o;22429:3319:59:-;22686:3056;;;;;;;-1:-1:-1;;;;;;;;;;;22686:3056:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22686:3056:59;;;;;;22429:3319;:::o;22686:3056::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22686:3056:59;;;14160:2308:47;;;;;;;;15357:135;14160:2308;14837:299;;;;;;;;;;;15237:9;:28;:9;;;;:::i;:28::-;15357:135;;;;:::i;:::-;15613:16;;15783:13;-1:-1:-1;;;;;;1085:8212:36;;15778:538:47;15798:15;;;;;;16417:11;;;;;;;;;;:::i;15815:3::-;15889:9;16190:111;15889:9;;1085:8212:36;15889:9:47;;;;:::i;:::-;1085:8212:36;;16015:45:47;;;-1:-1:-1;;;;;16015:45:47;;;;:::i;:::-;12790:117:60;;;;15972:38:47;;1422:62:55;15956:117:47;16190:23;;14837:299;16190:23;;;;;;:::i;:::-;16259:30;;;;1085:8212:36;16190:111:47;;:::i;:::-;;1085:8212:36;15783:13:47;;20720:384:42;20153:30;20720:384;20936:98;21015:4;5067:83:55;;;20936:98:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;20936:98:42;20862:235;8797:51;20153:30;:::i;19628:745:47:-;;;;20027:1;20030:15;;;;;;19628:745;;;;;:::o;20047:3::-;20176:13;20279:63;20176:13;1085:8212:36;20176:13:47;;;;:::i;:::-;20301:18;20325:16;20301:18;;;:::i;:::-;20325:16;;1085:8212:36;20289:10:47;;20279:63;;:::i;:::-;;1085:8212:36;20015:13:47;;6324:381:69;6418:281;;;;;;;;;;6324:381;:::o;6418:281::-;;;;;;;;;6454:1983:47;;;;7956:137;6454:1983;;;;;;7154:711;;;;;;;;;;;;;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;7956:137:47;;:::i;:::-;;8236:2;7154:711;7956:137;8347:83;7956:137;8236:2;;:::i;:::-;7154:711;;;;;;;;8347:83;:::i;30933:1265:59:-;31095:1097;30933:1265;31095:1097;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30933:1265;:::o;8318:262:69:-;;8527:45;8318:262;;8527:45;:::i;:::-;8498:24;;1422:62:55;8318:262:69;:::o;20573:345:47:-;20709:203;;20573:345::o;14317:1060:59:-;14489:882;14317:1060;14489:882;;;;-1:-1:-1;;;;;;;;;;;14489:882:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14317:1060;:::o;7335:204:69:-;11032:107:60;;1085:8212:36;;;;;;7512:19:69;7496:35;7454:36;;;905:63:55;7335:204:69;:::o;17378:1707:47:-;;;;;;17782:1;17816:16;;;17984:13;17782:1;17999:15;;;;;;18689:29;;;;;;;;;18673:58;18741:316;;19067:11;;1085:8212:36;17378:1707:47;:::o;18741:316::-;;17782:1;18741:316;18122:16;18741:316;;;;;;18016:3;18075:12;18499:50;18122:16;18075:12;;;18518:18;18075:12;1085:8212:36;18075:12:47;;;;:::i;:::-;18122:16;;;1085:8212:36;;;;;18310:32:47;;;18294:61;18373:32;18518:18;;:::i;:::-;18499:50;;;:::i;:::-;;1085:8212:36;17984:13:47;;28999:1456:59;;29139:1310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28999:1456;:::o;1085:8212:36:-;20153:30:42;1085:8212:36;5067:83:55;;20153:30:42;20382:26;20153:30;:::i;1085:8212:36:-;;21469:68:42;20153:30;21780:4;5067:83:55;;;20153:30:42;21800:26;20153:30;:::i;:::-;5067:83:55;;;;21469:68:42;;:::i;1085:8212:36:-;24400:277:42;1085:8212:36;24511:109:42;24601:4;5067:83:55;;;24511:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24511:109:42;24400:277;;:::i;:::-;24393:284;;1085:8212:36:o;:::-;23950:250:42;1085:8212:36;24052:100:42;24133:4;5067:83:55;;;24052:100:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24052:100:42;23950:250;;:::i;1085:8212:36:-;;21469:68:42;20153:30;22563:107;22651:4;5067:83:55;;;22563:107:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;22563:107:42;20153:30;11894:54;20153:30;:::i;1085:8212:36:-;;21469:68:42;20153:30;22104:98;22183:4;5067:83:55;;;22104:98:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;;26376:277:42;1085:8212:36;26496:109:42;26586:4;5067:83:55;;;26496:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;26496:109:42;26376:277;;:::i;:::-;26369:284;;;;;1085:8212:36:o;:::-;26926:304:42;1085:8212:36;27055:118:42;27154:4;5067:83:55;;;27055:118:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;27055:118:42;26926:304;;:::i;1085:8212:36:-;;;;;;;;;28508:137:59;1085:8212:36;28508:137:59;;;27779:134;1085:8212:36;27779:134:59;;;27062:128;1085:8212:36;27062:128:59;;;15848:748;1085:8212:36;15848:748:59;;;26336:125;1085:8212:36;26336:125:59;;;10532:988;1085:8212:36;10532:988:59;;;1085:8212:36;32705:531:59;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;32705:531:59;;;;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;:::o;:::-;10532:988:59;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10532:988:59;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;:::o;:::-;5067:83:55;26336:125:59;5067:83:55;;;26336:125:59;;:::i;1085:8212:36:-;15848:748:59;;;;;;;;;-1:-1:-1;;;;;;;;;;;15848:748:59;;;;;;;;;;;;;;;;;1085:8212:36;:::o;:::-;5067:83:55;27062:128:59;5067:83:55;27105:4:59;5067:83:55;;;27062:128:59;;:::i;1085:8212:36:-;5067:83:55;27779:134:59;5067:83:55;;;27779:134:59;;:::i;1085:8212:36:-;5067:83:55;28508:137:59;5067:83:55;28560:4:59;5067:83:55;;;28508:137:59;;:::i;1085:8212:36:-;;12113:1798:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;17159:1746:59;1085:8212:36;;;;17159:1746:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;12113:1798:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;17159:1746:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;;;;;;;;;12790:117:60;1085:8212:36;12790:117:60;;;1085:8212:36;12790:117:60;;;1085:8212:36;;;11232:1:68;1085:8212:36;;;;;11232:1:68;1085:8212:36;;20153:30:42;;11232:1:68;20153:30:42;:::i;1085:8212:36:-;13584:17:68;11232:1;13584:17;;-1:-1:-1;;;;;13584:17:68;;:::i;:::-;1085:8212:36;12790:117:60;;;1085:8212:36;:::o;:::-;-1:-1:-1;1085:8212:36;;;;12790:117:60;;-1:-1:-1;;;;;12790:117:60;;1085:8212:36:o;:::-;;;;;;12790:117:60;1085:8212:36;12790:117:60;;;1085:8212:36;12790:117:60;;;1085:8212:36;;;;;;;;;;;;20153:30:42;;;:::i;1085:8212:36:-;13584:17:68;;;;-1:-1:-1;;;;;13584:17:68;;:::i;1085:8212:36:-;12846:17:68;;;;-1:-1:-1;;;;;12846:17:68;;:::i;1085:8212:36:-;;;23142:88:42;1085:8212:36;23094:30:42;;;:::i;:::-;5067:83:55;;;;23164:4:42;5067:83:55;;;23142:88:42;14490:36;23142:88;:::i;:::-;1085:8212:36;;:::o;:::-;;;23142:88:42;1085:8212:36;23094:30:42;;;:::i;:::-;5067:83:55;;;;23164:4:42;5067:83:55;;;23142:88:42;15709:45;23142:88;:::i;1085:8212:36:-;;25042:30:42;25103:73;1085:8212:36;25042:30:42;17045:42;25042:30;:::i;:::-;5067:83:55;;;;25157:4:42;5067:83:55;;;25103:73:42;;:::i;1085:8212:36:-;;25042:30:42;25103:73;1085:8212:36;25042:30:42;25509:32;25042:30;:::i;1085:8212:36:-;;26065:73:42;26119:4;1085:8212:36;23669:88:42;1085:8212:36;23621:30:42;;;:::i;:::-;5067:83:55;;;;;;;23691:4:42;5067:83:55;;23669:88:42;18387:36;23669:88;:::i;:::-;5067:83:55;;;;26065:73:42;;:::i;1085:8212:36:-;;26065:73:42;26119:4;1085:8212:36;23669:88:42;1085:8212:36;23621:30:42;;;:::i;:::-;5067:83:55;;;;;;;23691:4:42;5067:83:55;;23669:88:42;19848:45;23669:88;:::i;1085:8212:36:-;;;;;;;;;;;;;;;;;3463:4:65;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;1594:1852:65;;;;;;;;;;;-1:-1:-1;1594:1852:65;;-1:-1:-1;1594:1852:65;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1594:1852:65;;-1:-1:-1;1594:1852:65;;;;;;;;;;;;;;-1:-1:-1;1594:1852:65;;;1085:8212:36;;;;;1594:1852:65;1085:8212:36;;;;;;1594:1852:65;-1:-1:-1;;;;;;;;;;;1594:1852:65;-1:-1:-1;1594:1852:65;3463:4;1085:8212:36;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22686:3056:59;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22686:3056:59;;;;;;;;;;;;;;;;;1085:8212:36;22686:3056:59;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22686:3056:59;-1:-1:-1;22686:3056:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;:::o;22686:3056:59:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22686:3056:59;;;;;;;;;;;;;;1085:8212:36;;19760:2051:59;1085:8212:36;19760:2051:59;1085:8212:36;;;;19760:2051:59;1085:8212:36;19760:2051:59;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19760:2051:59;;;;;;;;;;;;;;;;;1085:8212:36;19760:2051:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;:::o;19760:2051:59:-;;;;;;;;;;;1085:8212:36;;;;;;;;;;;;;;13942:8:45;1085:8212:36;13942:8:45;;;10043;1085:8212:36;10043:8:45;;;13942;1085:8212:36;13942:8:45;;;1085:8212:36;;;;;11967:8:45;1085:8212:36;11967:8:45;;;;1085:8212:36;11967:8:45;;;1085:8212:36;;;;;;10043:8:45;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;9882:170:45;;10043:8;9882:170;;;;;;;;;:::i;1085:8212:36:-;24406:152:45;;;;;:::i;1085:8212:36:-;11806:170:45;;11967:8;11806:170;;;;;;;;;:::i;1085:8212:36:-;5689:83:55;;11806:170:45;5689:83:55;;11967:8:45;5689:83:55;;;;;;11806:170:45;;:::i;1085:8212:36:-;5689:83:55;;25964:175:45;5689:83:55;;;;;25964:175:45;;:::i;1085:8212:36:-;5689:83:55;;13776:175:45;5689:83:55;;13942:8:45;5689:83:55;;;;;;13776:175:45;;:::i;1085:8212:36:-;5689:83:55;;9882:170:45;5689:83:55;;10043:8:45;5689:83:55;;;;;;9882:170:45;;:::i;1085:8212:36:-;13776:175:45;;13942:8;13776:175;;;;;;;;;:::i","linkReferences":{},"immutableReferences":{"44928":[{"start":7386,"length":32}],"44930":[{"start":7338,"length":32}],"44938":[{"start":14924,"length":32}],"44946":[{"start":14803,"length":32}],"44952":[{"start":15276,"length":32}],"61471":[{"start":14315,"length":32}],"61473":[{"start":14282,"length":32}],"61476":[{"start":5399,"length":32},{"start":9518,"length":32},{"start":12624,"length":32}],"61478":[{"start":20145,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","__activateTstore()":"7423eb3c","__registerAllocator(address,bytes)":"2a9c4d0d","allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))":"7112406d","allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))":"200f0c4d","allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))":"a2394147","allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))":"dd589cfc","allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))":"393c33e2","allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))":"6a9a4c44","allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))":"fdc060e7","allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))":"27c777a9","allowance(address,address,uint256)":"598af9e7","approve(address,uint256,uint256)":"426a8493","balanceOf(address,uint256)":"00fdd58e","claim((bytes,bytes,address,uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"d204f11e","claim((bytes,bytes,address,uint256,uint256,(uint256,uint256,uint256)[],address))":"59202128","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))":"eaa67483","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,uint256)[],address))":"db04bc72","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"fb75fb69","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))":"107d4ee4","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))":"d350188c","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"ea14532e","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"176f405a","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))":"12f9d21e","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"4c102416","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"6af2791b","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,(address,uint256)[]))":"b4039fc2","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,address,uint256))":"63f5b1ad","claim((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,(address,uint256)[])[]))":"d34ddc82","claim((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,uint256)[],address))":"b54baefd","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))":"eb431821","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,uint256)[],address))":"b24849b7","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"12a1e6ea","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))":"b3244389","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))":"414fd914","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"2c4bbd17","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"5ac2ccf1","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))":"1d474b14","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"4d585fbf","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"ebcbd7b5","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,(address,uint256)[]))":"e8672f93","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,address,uint256))":"0d57fec9","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"577cdc64","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,uint256)[],address))":"9730f4fd","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(address,uint256)[]))":"f745381c","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"aa41c87e","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"eed634ad","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,address,uint256))":"e0565c49","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"a4c7bd93","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"5e6c91ff","claim((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,(address,uint256)[]))":"996d3aac","claim((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,address,uint256))":"44b97d78","claim((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"935ed2ba","claim((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,uint256)[],address))":"9be5f537","claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(address,uint256)[]))":"b7ace047","claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"06659b7f","claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"fa1c5500","claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,address,uint256))":"e6c5b654","claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"409b3a7e","claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"32e2a803","claim((bytes,bytes,address,uint256,uint256,uint256,uint256,(address,uint256)[]))":"b8a5bbad","claim((bytes,bytes,address,uint256,uint256,uint256,uint256,address,uint256))":"86785559","claimAndWithdraw((bytes,bytes,address,uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"548439e1","claimAndWithdraw((bytes,bytes,address,uint256,uint256,(uint256,uint256,uint256)[],address))":"721f6292","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))":"13589bfe","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,uint256)[],address))":"f44a3452","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"0a133cf2","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))":"0f5eeadf","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))":"eb196008","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"88da84d4","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"03417d72","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))":"f23d923d","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"843719f0","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"eea77a78","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,(address,uint256)[]))":"06e8cc18","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,address,uint256))":"1bb81a81","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,(address,uint256)[])[]))":"f2f0def1","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,uint256)[],address))":"4e55a548","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))":"08e600ee","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,uint256)[],address))":"b20abc48","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"25d7776b","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))":"14865907","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))":"d2a1805f","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"d921f36a","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"fcfe431a","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))":"d3917f3c","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"64870556","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"418a23f5","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,(address,uint256)[]))":"f95d3d16","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,address,uint256))":"138cd819","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"62a420bb","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,uint256)[],address))":"c4d195e8","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(address,uint256)[]))":"3f458a19","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"5d76a382","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"eed93572","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,address,uint256))":"1b98b63f","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"341056c5","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"89ce0661","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,(address,uint256)[]))":"4ad5205e","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,address,uint256))":"2e4d55cc","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"88d247c4","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,uint256)[],address))":"bc95bd7a","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(address,uint256)[]))":"2737edb9","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"206620a1","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"2acd5dc3","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,address,uint256))":"76d531d4","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"e05c6e7d","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"ca6cc39f","claimAndWithdraw((bytes,bytes,address,uint256,uint256,uint256,uint256,(address,uint256)[]))":"71f50127","claimAndWithdraw((bytes,bytes,address,uint256,uint256,uint256,uint256,address,uint256))":"b602ae02","consume(uint256[])":"12d48885","decimals(uint256)":"3f47e662","deposit(address)":"f340fa01","deposit(address,(address,uint256)[],uint256,uint256,address,uint8,uint8,address,bytes)":"99cf8b9b","deposit(address,address,uint256)":"8340f549","deposit(address,address,uint8,uint8,uint256,address)":"671b3bd6","deposit(address,uint256,uint256,uint256,address,address,uint8,uint8,address,bytes)":"10d82672","deposit(address,uint8,uint8,address)":"507cb46f","deposit(uint256[2][],address)":"c8091041","depositAndRegister(address,(address,uint256)[],uint256,uint256,address,uint8,uint8,bytes32,uint8,string,bytes)":"da15ee7f","depositAndRegister(address,address,uint256,bytes32,bytes32)":"ecaca40e","depositAndRegister(address,bytes32,bytes32)":"aa8b845d","depositAndRegister(address,uint256,uint256,uint256,address,address,uint8,uint8,bytes32,uint8,string,bytes)":"53e50067","depositAndRegister(uint256[2][],bytes32[2][],uint256)":"5b6016ec","disableForcedWithdrawal(uint256)":"70030190","enableForcedWithdrawal(uint256)":"eb35a6d2","extsload(bytes32)":"1e2eaeaf","extsload(bytes32[])":"dbd035ff","exttload(bytes32)":"f135baaa","forcedWithdrawal(uint256,address,uint256)":"2e3ff2f7","getForcedWithdrawalStatus(address,uint256)":"144bd5b5","getLockDetails(uint256)":"5b15bfd9","getRegistrationStatus(address,bytes32,bytes32)":"440a0ec3","hasConsumedAllocatorNonce(uint256,address)":"da2f268b","isOperator(address,address)":"b6363cf2","name()":"06fdde03","name(uint256)":"00ad800c","register(bytes32,bytes32,uint256)":"4073c0cc","register(bytes32[2][],uint256)":"31bbae3e","setOperator(address,bool)":"558a7297","supportsInterface(bytes4)":"01ffc9a7","symbol(uint256)":"4e41a1fb","tokenURI(uint256)":"c87b56dd","transfer(address,uint256,uint256)":"095bcdb6","transferFrom(address,address,uint256,uint256)":"fe99049a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providedAmount\",\"type\":\"uint256\"}],\"name\":\"AllocatedAmountExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceOverflow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"Expired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ForcedWithdrawalAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientPermission\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchDepositStructure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDepositBalanceChange\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDepositTokenOrdering\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"InvalidRegistrationDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"InvalidRegistrationProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"InvalidScope\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"InvalidToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyDirectCalls\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Permit2CallFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"PrematureWithdrawal\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"existingCaller\",\"type\":\"address\"}],\"name\":\"ReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TStoreAlreadyActivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TStoreNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TloadTestContractDeploymentFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UnallocatedTransfer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"allocatorId\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"AllocatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"arbiter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"}],\"name\":\"CompactRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"activating\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawableAt\",\"type\":\"uint256\"}],\"name\":\"ForcedWithdrawalStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"OperatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__activateTstore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"__registerAllocator\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TransferComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BatchTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitByIdComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"recipients\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BasicTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BasicTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitByIdComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TransferComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BatchTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"recipients\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BasicClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BasicClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nonces\",\"type\":\"uint256[]\"}],\"name\":\"consume\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"scope\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"scope\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.TokenPermissions[]\",\"name\":\"permitted\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[2][]\",\"name\":\"idsAndAmounts\",\"type\":\"uint256[2][]\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum CompactCategory\",\"name\":\"compactCategory\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"witness\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[2][]\",\"name\":\"idsAndAmounts\",\"type\":\"uint256[2][]\"},{\"internalType\":\"bytes32[2][]\",\"name\":\"claimHashesAndTypehashes\",\"type\":\"bytes32[2][]\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.TokenPermissions[]\",\"name\":\"permitted\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum CompactCategory\",\"name\":\"compactCategory\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"witness\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"disableForcedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"enableForcedWithdrawal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"extsload\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"slots\",\"type\":\"bytes32[]\"}],\"name\":\"extsload\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"exttload\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"forcedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getForcedWithdrawalStatus\",\"outputs\":[{\"internalType\":\"enum ForcedWithdrawalStatus\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getLockDetails\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"}],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"hasConsumedAllocatorNonce\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[2][]\",\"name\":\"claimHashesAndTypehashes\",\"type\":\"bytes32[2][]\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"0age (0age.eth)\",\"custom:version\":\"0 (early-stage proof-of-concept)\",\"errors\":{\"BalanceOverflow()\":[{\"details\":\"The balance has overflowed.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InsufficientPermission()\":[{\"details\":\"Insufficient permission to perform the action.\"}]},\"events\":{\"AllocatorRegistered(uint96,address)\":{\"params\":{\"allocator\":\"The address of the registered allocator.\",\"allocatorId\":\"The unique identifier assigned to the allocator.\"}},\"Approval(address,address,uint256,uint256)\":{\"details\":\"Emitted when `owner` approves `spender` to use `amount` of `id` token.\"},\"Claim(address,address,address,bytes32)\":{\"params\":{\"allocator\":\"The account mediating the resource locks utilized by the claim.\",\"arbiter\":\"The account verifying and initiating the settlement of the claim.\",\"claimHash\":\"A bytes32 hash derived from the details of the claimed compact.\",\"sponsor\":\"The account sponsoring the claimed compact.\"}},\"CompactRegistered(address,bytes32,bytes32,uint256)\":{\"params\":{\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"expires\":\"The timestamp at which the compact can no longer be claimed.\",\"sponsor\":\"The address registering the compact in question.\",\"typehash\":\"The EIP-712 typehash associated with the registered compact.\"}},\"ForcedWithdrawalStatusUpdated(address,uint256,bool,uint256)\":{\"params\":{\"account\":\"The account for which the withdrawal status has changed.\",\"activating\":\"Whether the forced withdrawal is being activated or has been deactivated.\",\"id\":\"The ERC6909 token identifier of the associated resource lock.\",\"withdrawableAt\":\"The timestamp when tokens become withdrawable if it is being activated.\"}},\"OperatorSet(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables `operator` to manage all of their tokens.\"},\"Transfer(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `by` transfers `amount` of token `id` from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"returns\":{\"_0\":\"A bytes32 representing the domain separator for the contract.\"}},\"__activateTstore()\":{\"details\":\"External function to activate TSTORE usage. Does not need to be called if TSTORE is supported from deployment, and only needs to be called once. Reverts if TSTORE has already been activated or if the opcode is not available. Note that this must be called directly from an externally-owned account to avoid potential reentrancy issues.\"},\"__registerAllocator(address,bytes)\":{\"params\":{\"allocator\":\"The address to register as an allocator.\",\"proof\":\"An 85-byte value containing create2 address derivation parameters (0xff ++ factory ++ salt ++ initcode hash).\"},\"returns\":{\"_0\":\"A unique identifier assigned to the registered allocator.\"}},\"allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"params\":{\"transfer\":\"A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"params\":{\"transfer\":\"A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive all tokens.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"params\":{\"transfer\":\"A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))\":{\"params\":{\"transfer\":\"A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive the tokens.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"params\":{\"withdrawal\":\"A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"params\":{\"withdrawal\":\"A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive all tokens.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"params\":{\"withdrawal\":\"A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))\":{\"params\":{\"withdrawal\":\"A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive the tokens.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allowance(address,address,uint256)\":{\"details\":\"Returns the amount of token `id` that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` for the caller for token `id`. Emits a {Approval} event.\"},\"balanceOf(address,uint256)\":{\"details\":\"Returns the amount of token `id` owned by `owner`.\"},\"consume(uint256[])\":{\"params\":{\"nonces\":\"Array of nonces to be consumed.\"},\"returns\":{\"_0\":\"Whether all nonces were successfully consumed.\"}},\"decimals(uint256)\":{\"details\":\"Returns the number of decimals for token `id`. Returns 18 by default. Please override this function if you need to return a custom value.\"},\"deposit(address)\":{\"params\":{\"allocator\":\"The address of the allocator.\"},\"returns\":{\"_0\":\"The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(address,address,uint256)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"amount\":\"The amount of tokens to deposit.\",\"token\":\"The address of the ERC20 token to deposit.\"},\"returns\":{\"_0\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(address,address,uint8,uint8,uint256,address)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"amount\":\"The amount of tokens to deposit.\",\"recipient\":\"The address that will receive the corresponding ERC6909 tokens.\",\"resetPeriod\":\"The duration after which the resource lock can be reset once a forced withdrawal is initiated.\",\"scope\":\"The scope of the resource lock (multichain or single chain).\",\"token\":\"The address of the ERC20 token to deposit.\"},\"returns\":{\"_0\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(address,uint8,uint8,address)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"recipient\":\"The address that will receive the corresponding ERC6909 tokens.\",\"resetPeriod\":\"The duration after which the resource lock can be reset once a forced withdrawal is initiated.\",\"scope\":\"The scope of the resource lock (multichain or single chain).\"},\"returns\":{\"_0\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(uint256[2][],address)\":{\"params\":{\"idsAndAmounts\":\"Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit.\",\"recipient\":\"The address that will receive the corresponding ERC6909 tokens.\"},\"returns\":{\"_0\":\"Whether the batch deposit was successfully completed.\"}},\"depositAndRegister(address,address,uint256,bytes32,bytes32)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"amount\":\"The amount of tokens to deposit.\",\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"token\":\"The address of the ERC20 token to deposit.\",\"typehash\":\"The EIP-712 typehash associated with the registered compact.\"},\"returns\":{\"id\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"depositAndRegister(address,bytes32,bytes32)\":{\"params\":{\"allocator\":\"The address of the allocator.\",\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"typehash\":\"The EIP-712 typehash associated with the registered compact.\"},\"returns\":{\"id\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"depositAndRegister(uint256[2][],bytes32[2][],uint256)\":{\"params\":{\"claimHashesAndTypehashes\":\"Array of [claimHash, typehash] pairs for registration.\",\"duration\":\"The duration for which the claim hashes remain valid.\",\"idsAndAmounts\":\"Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit.\"},\"returns\":{\"_0\":\"Whether the batch deposit and claim hash registration was successfully completed.\"}},\"disableForcedWithdrawal(uint256)\":{\"params\":{\"id\":\"The ERC6909 token identifier for the resource lock.\"},\"returns\":{\"_0\":\"Whether the forced withdrawal was successfully disabled.\"}},\"enableForcedWithdrawal(uint256)\":{\"params\":{\"id\":\"The ERC6909 token identifier for the resource lock.\"},\"returns\":{\"_0\":\"The timestamp at which tokens become withdrawable.\"}},\"forcedWithdrawal(uint256,address,uint256)\":{\"params\":{\"amount\":\"The amount of tokens to withdraw.\",\"id\":\"The ERC6909 token identifier for the resource lock.\",\"recipient\":\"The account that will receive the withdrawn tokens.\"},\"returns\":{\"_0\":\"Whether the forced withdrawal was successfully executed.\"}},\"getForcedWithdrawalStatus(address,uint256)\":{\"params\":{\"account\":\"The account to get the forced withdrawal status for.\",\"id\":\"The ERC6909 token identifier of the resource lock.\"},\"returns\":{\"_0\":\" The current ForcedWithdrawalStatus (disabled, pending, or enabled).\",\"_1\":\"The timestamp at which tokens become withdrawable if status is pending.\"}},\"getLockDetails(uint256)\":{\"params\":{\"id\":\"The ERC6909 token identifier of the resource lock.\"},\"returns\":{\"_0\":\" The address of the underlying token (or address(0) for native tokens).\",\"_1\":\" The account of the allocator mediating the resource lock.\",\"_2\":\"The duration after which the resource lock can be reset once a forced withdrawal is initiated.\",\"_3\":\" The scope of the resource lock (multichain or single chain).\"}},\"getRegistrationStatus(address,bytes32,bytes32)\":{\"params\":{\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"sponsor\":\"The account that registered the compact.\",\"typehash\":\"The EIP-712 typehash associated with the registered claim hash.\"},\"returns\":{\"expires\":\" The timestamp at which the compact registration expires.\",\"isActive\":\"Whether the compact registration is currently active.\"}},\"hasConsumedAllocatorNonce(uint256,address)\":{\"params\":{\"allocator\":\"The account of the allocator.\",\"nonce\":\"The nonce to check.\"},\"returns\":{\"_0\":\"Whether the nonce has been consumed.\"}},\"isOperator(address,address)\":{\"details\":\"Checks if a `spender` is approved by `owner` to manage all of their tokens.\"},\"name()\":{\"details\":\"Returns the name for the contract.\"},\"name(uint256)\":{\"details\":\"Returns the symbol for token `id`.\"},\"register(bytes32,bytes32,uint256)\":{\"params\":{\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"duration\":\"The duration for which the claim hash remains valid.\",\"typehash\":\"The EIP-712 typehash associated with the registered claim hash.\"},\"returns\":{\"_0\":\"Whether the claim hash was successfully registered.\"}},\"register(bytes32[2][],uint256)\":{\"params\":{\"claimHashesAndTypehashes\":\"Array of [claimHash, typehash] pairs for registration.\",\"duration\":\"The duration for which the claim hashes remain valid.\"},\"returns\":{\"_0\":\"Whether all claim hashes were successfully registered.\"}},\"setOperator(address,bool)\":{\"details\":\"Sets whether `operator` is approved to manage the tokens of the caller. Emits {OperatorSet} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`.\"},\"symbol(uint256)\":{\"details\":\"Returns the symbol for token `id`.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for token `id`.\"},\"transfer(address,uint256,uint256)\":{\"details\":\"Transfers `amount` of token `id` from the caller to `to`. Requirements: - caller must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256,uint256)\":{\"details\":\"Transfers `amount` of token `id` from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount` of token `id`. - The caller must have at least `amount` of allowance to transfer the tokens of `from` or approved as an operator. Emits a {Transfer} event.\"}},\"title\":\"The Compact\",\"version\":1},\"userdoc\":{\"events\":{\"AllocatorRegistered(uint96,address)\":{\"notice\":\"Event indicating an allocator has been registered.\"},\"Claim(address,address,address,bytes32)\":{\"notice\":\"Event indicating that a claim has been processed for a given compact.\"},\"CompactRegistered(address,bytes32,bytes32,uint256)\":{\"notice\":\"Event indicating that a compact has been registered directly.\"},\"ForcedWithdrawalStatusUpdated(address,uint256,bool,uint256)\":{\"notice\":\"Event indicating a change in forced withdrawal status.\"}},\"kind\":\"user\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"notice\":\"External pure function for returning the domain separator of the contract.\"},\"__registerAllocator(address,bytes)\":{\"notice\":\"External function for registering an allocator. Can be called by anyone if one of three conditions is met: the caller is the allocator address being registered, the allocator address contains code, or a proof is supplied representing valid create2 deployment parameters that resolve to the supplied allocator address.\"},\"allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"notice\":\"Transfers ERC6909 tokens from multiple resource locks to multiple recipients with allocator approval.\"},\"allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"notice\":\"Transfers ERC6909 tokens from multiple resource locks to a single recipient with allocator approval.\"},\"allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"notice\":\"Transfers ERC6909 tokens to multiple recipients with allocator approval.\"},\"allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))\":{\"notice\":\"Transfers ERC6909 tokens to a single recipient with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"notice\":\"Withdraws underlying tokens from multiple resource locks to multiple recipients with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"notice\":\"Withdraws underlying tokens from multiple resource locks to a single recipient with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"notice\":\"Withdraws underlying tokens to multiple recipients with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))\":{\"notice\":\"Withdraws underlying tokens to a single recipient with allocator approval.\"},\"consume(uint256[])\":{\"notice\":\"External function for consuming allocator nonces. Only callable by a registered allocator. Once consumed, any compact payloads that utilize those nonces cannot be claimed.\"},\"deposit(address)\":{\"notice\":\"External payable function for depositing native tokens into a resource lock and receiving back ERC6909 tokens representing the underlying locked balance controlled by the depositor. The allocator mediating the lock is provided as an argument, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction.\"},\"deposit(address,address,uint256)\":{\"notice\":\"External function for depositing ERC20 tokens into a resource lock. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token.\"},\"deposit(address,address,uint8,uint8,uint256,address)\":{\"notice\":\"External function for depositing ERC20 tokens into a resource lock with custom reset period and scope parameters. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received by the recipient is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token.\"},\"deposit(address,uint8,uint8,address)\":{\"notice\":\"External payable function for depositing native tokens into a resource lock with custom reset period and scope parameters. The ERC6909 token amount received by the recipient will match the amount of native tokens sent with the transaction.\"},\"deposit(uint256[2][],address)\":{\"notice\":\"External payable function for depositing multiple tokens in a single transaction. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens.\"},\"depositAndRegister(address,address,uint256,bytes32,bytes32)\":{\"notice\":\"External function for depositing ERC20 tokens and simultaneously registering a compact. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token.\"},\"depositAndRegister(address,bytes32,bytes32)\":{\"notice\":\"External payable function for depositing native tokens into a resource lock and simultaneously registering a compact. The allocator, the claim hash, and the typehash used for the claim hash are provided as additional arguments, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction.\"},\"depositAndRegister(uint256[2][],bytes32[2][],uint256)\":{\"notice\":\"External payable function for depositing multiple tokens in a single transaction and registering a set of claim hashes. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens. Note that resource lock ids must be supplied in alphanumeric order.\"},\"disableForcedWithdrawal(uint256)\":{\"notice\":\"External function to disable a previously enabled forced withdrawal for a resource lock.\"},\"enableForcedWithdrawal(uint256)\":{\"notice\":\"External function to initiate a forced withdrawal for a resource lock. Once enabled, forced withdrawals can be executed after the reset period has elapsed. The withdrawableAt timestamp returned will be the current timestamp plus the reset period associated with the resource lock.\"},\"forcedWithdrawal(uint256,address,uint256)\":{\"notice\":\"External function to execute a forced withdrawal from a resource lock after the reset period has elapsed. The tokens will be withdrawn to the specified recipient in the amount requested. The ERC6909 token balance of the caller will be reduced by the difference in the balance held by the resource lock before and after the withdrawal, which may differ from the provided amount depending on the underlying token in question.\"},\"getForcedWithdrawalStatus(address,uint256)\":{\"notice\":\"External view function for checking the forced withdrawal status of a resource lock for a given account. Returns both the current status (disabled, pending, or enabled) and the timestamp at which forced withdrawals will be enabled (if status is pending) or became enabled (if status is enabled).\"},\"getLockDetails(uint256)\":{\"notice\":\"External view function for retrieving the details of a resource lock. Returns the underlying token, the mediating allocator, the reset period, and the scope.\"},\"getRegistrationStatus(address,bytes32,bytes32)\":{\"notice\":\"External view function for checking the registration status of a compact. Returns both whether the claim hash is currently active and when it expires (if it is active).\"},\"hasConsumedAllocatorNonce(uint256,address)\":{\"notice\":\"External view function for checking whether a specific nonce has been consumed by an allocator. Once consumed, a nonce cannot be reused for claims mediated by that allocator.\"},\"register(bytes32,bytes32,uint256)\":{\"notice\":\"External function to register a claim hash and its associated EIP-712 typehash. The registered claim hash will remain valid for the specified duration. Once expired, the claim hash can no longer be used to initiate claims.\"},\"register(bytes32[2][],uint256)\":{\"notice\":\"External function to register multiple claim hashes and their associated EIP-712 typehashes in a single call. All registered claim hashes will remain valid for the specified duration. Once expired, the claim hashes can no longer be used to initiate claims.\"}},\"notice\":\"The Compact is an ownerless ERC6909 contract that facilitates the voluntary formation and mediation of reusable \\\"resource locks.\\\" This contract has not yet been properly tested, audited, or reviewed.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/TheCompact.sol\":\"TheCompact\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/permit2/lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solady/=lib/solady/src/\",\":soledge/=lib/soledge/src/\",\":solmate/=lib/permit2/lib/solmate/\",\":tstorish/=lib/tstorish/src/\"],\"viaIR\":true},\"sources\":{\"lib/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"lib/permit2/src/interfaces/ISignatureTransfer.sol\":{\"keccak256\":\"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317\",\"dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d\"]},\"lib/solady/src/tokens/ERC6909.sol\":{\"keccak256\":\"0x03975a3d9680a1bfe53a678685c81ed4d70b6e0f046ccf1905539caa5376eea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827a2f6b69fcb700909635203a9453310ea89c0bb904943cf3cc732e35d81398\",\"dweb:/ipfs/QmZha3DSrunz1NR3jXHRXrLT6uvAKTt3AEV6PcbGWRLu4q\"]},\"lib/solady/src/utils/EfficientHashLib.sol\":{\"keccak256\":\"0x32032578683dc18c5f95c8dd4c1422d212f230d96d5425cc491f3350157e6fe1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82c89ef25e537766bbfc8ebba4138eee4fa1b64527c39add8240bce2ea99c661\",\"dweb:/ipfs/QmZVciQDtnXs3nDVUaH7mMLC6vFKe8zeKLK969bqJetKCj\"]},\"lib/solady/src/utils/LibString.sol\":{\"keccak256\":\"0xa0b70980612eeedd30cc65c44c37a286c8527cb41c7454db55b1a435beb2276f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93950259301ac435f1d8756cb80f99eafe9da4dc68b05e148a4b16042a69cc9b\",\"dweb:/ipfs/QmUpyP9AD7AqmRNEmrjLSQivXXdbZmFZKaLJwW9UP2wWCN\"]},\"lib/solady/src/utils/MetadataReaderLib.sol\":{\"keccak256\":\"0x671f4b38462335f3500b91eeff2fd25fc447cc201901524959c05b934ad0b100\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa64b44dc13b25c1aa713cb5724fade1dc093c95581efc5ccb85cbcc616c02c5\",\"dweb:/ipfs/QmRvXqBw8GqpShA8cXAwA6ha14Q2bfajNmYq1mYNYAaMiv\"]},\"lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"lib/solady/src/utils/SignatureCheckerLib.sol\":{\"keccak256\":\"0x472ad43dd67dcc0d548efbbc8779f34e56a7eb99d7a8b1c29af33fb03bbe9ffc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://733da5015058b9540927c63c316665e9ac8d9676d23f722bddf9376c2a03d4cb\",\"dweb:/ipfs/QmPhXj1qpjnwVjrZUgFdkinMK9XSuoLN3cxbSmqADYSZry\"]},\"lib/tstorish/src/Tstorish.sol\":{\"keccak256\":\"0xad3697d9fd6e7c1fb6faa8d474af00bb2a7afd51e8818165fd30bcc7ead53973\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8b62000145be27440c913238fbe9b97ecfc709eacac14b498f18980418d6ab6\",\"dweb:/ipfs/QmRMXHdYUDmajWzwUjs7CQZ5i1T739MhiMmimd3do8qJNk\"]},\"src/TheCompact.sol\":{\"keccak256\":\"0x2949a8d172180ba623c85dfc22eda0ba1f59c4d70d8ee8ade62b5876ff6cd935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c6a3fdaa5319cc8a272422e8af551bee8e1467f78aa8b65a1290fddf0453a90\",\"dweb:/ipfs/QmafPX5TCncQbuhFtztQVL81hmU9wmdxfNZCYj9t5X6QqM\"]},\"src/interfaces/ITheCompact.sol\":{\"keccak256\":\"0xe75d130ab9ead7ef7866f4ce8fcbe5e8de49450abf5f8c6b5878c4e54e480103\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b7694d1b97b350c41e668e72d25d3df10c230b9dd21219827d7d2cc0dc39b6\",\"dweb:/ipfs/QmTDJAFcTYfU7DyfuYMJHK3YMYRkXQvm9MoUhywaqeUsZ6\"]},\"src/interfaces/ITheCompactClaims.sol\":{\"keccak256\":\"0x5691d5127ccff51eea74ce4f6dd01a5f121fd2a1b7bdad41aca39c4d236e27bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca686c6911319d151dc1f658767545823d750c3fb54cb8f75e46b544df3a217a\",\"dweb:/ipfs/QmT2a1twcvzHxjWwcLqMebo9rat5x5CVy2KJfawj9qXS5a\"]},\"src/lib/AllocatorLogic.sol\":{\"keccak256\":\"0xadfa16ae7d02777e129d31639f110be46093ef109c1287896598ee792de34d5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11a258ef5e43b6d85c99b330beaf4c3750f0d41c3b862b677551eca3626a2071\",\"dweb:/ipfs/QmfViBPCWeKqgdVKfA7KQUz2JntZEdGfbpgAwCGWwLGQ9Y\"]},\"src/lib/ClaimHashFunctionCastLib.sol\":{\"keccak256\":\"0xcfa2f7fb4e3df789ae504ebc13e31cadb6c05282e07d46a4b807d5d23a5ef530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51e642f4676ec4e0ecc1fb716cd051bd6d12dac2d39e997e516af5bd141b3178\",\"dweb:/ipfs/QmeQ8vHdg8vsCZ9XPc3af82ktXHHicY3QQbAoghHfvkVK4\"]},\"src/lib/ClaimHashLib.sol\":{\"keccak256\":\"0x2bc3fb604115697562a4770f98020efd578b02d6376b56ca52c64d0df46f6e87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aeddaee5ec0f8512fc13af7b0bfc07e93250a1bc34b6095c6a5bd6624a73990d\",\"dweb:/ipfs/QmVeVSBNoJeMndTQpvB2Kr9BzWWG8crjeBPjZZxciGYXMx\"]},\"src/lib/ClaimProcessor.sol\":{\"keccak256\":\"0x58872af76a73fd131a85635150545978bbe09ae83ec4ed2fae19d75c038a482c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d782488fcbded4ef2781031940611599b6ec41e92d813800912e2c86afd7979\",\"dweb:/ipfs/QmaCuq52gwjc1LfZrURPpyrjmGZZCtzhXRqg4dMhXP1NKa\"]},\"src/lib/ClaimProcessorFunctionCastLib.sol\":{\"keccak256\":\"0xb69ec41dc657f93f6f6a1901d39e48a791907d4debc0eb8104f9fe016b6a59ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6a54cebc498c4181ddc25fd4c6162449ae12d407fc1b45c0e6c4b365da1543e\",\"dweb:/ipfs/QmRdZp5fraYJRB7QXwDqE5jbpmerWaCV3DqMPxi9aCk4ZQ\"]},\"src/lib/ClaimProcessorLib.sol\":{\"keccak256\":\"0xf150692ad2915d0c4df63ea44e62f6e3d5736f2c91de7cea48a1301cf4034e51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c2f21638d2a613e912cf73dd049b0bb2e4abbea54a3f58a5439f6396c59d9ee\",\"dweb:/ipfs/QmRQpwnhhNfvWyTXHRy982awBnHA4fjK7GpHzSgqC3pPT6\"]},\"src/lib/ClaimProcessorLogic.sol\":{\"keccak256\":\"0x737780590a48e67dc0f64bd3bb7248eafb7630f579d8aa44befb197d9ac66ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea7c69e2cbf316fe182fad296b8d65a76ade84923edb0572c339f880e21fc7bc\",\"dweb:/ipfs/QmWuZ9UJA4nsdPjgCa6rsCBvoWBjcUhWRuCnLqPNbM8687\"]},\"src/lib/ComponentLib.sol\":{\"keccak256\":\"0x3e1ad4bff9cd12162f9b849078839b802f4783b474588fa93be8ba1e61263dd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faa70f41d0679e1fa2aa827f863c03bf8a3962703a26ae724b7ca2a8d5f9f96b\",\"dweb:/ipfs/QmXWyv8ATKeSKwiXCPFZBLkrRuV1NhNDS5yH5rDyrm6GLs\"]},\"src/lib/ConstructorLogic.sol\":{\"keccak256\":\"0xca9b0d52a562351978aafcc06f79f5c555ea948eaad28983812a7892f02b1245\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f2e41013c0ef8ef9bee844494185b7a09c8680ea3d931a2683f968cdaa154a9\",\"dweb:/ipfs/QmX8CoLP6VGRkxhx6VonrRf2YqPZ1hg1LagKvkNBaQtNaR\"]},\"src/lib/ConsumerLib.sol\":{\"keccak256\":\"0x582badfccdb57ee9518e39676fab7ba2abc6b527c854d524b8f417126fa6d192\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96d6dde54bdad2fc2203620d5f75e96cc9267cb340e1284d311bf6f8c77d16d2\",\"dweb:/ipfs/Qmbq8XuUiAoEsmYVa2NCHSdi6gu4ZYzeyr1iPNGaFwwhxu\"]},\"src/lib/DepositLogic.sol\":{\"keccak256\":\"0xb2a199980ca4025c1784ebc79ec5d73cbe849ff26d446b2ca58bdb7066475fcf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73e9defc19c10bb6b63d7571a1e097ed09accdf7cf123b91c8a9bea02c9ca87f\",\"dweb:/ipfs/QmVWt9Ssb6CuFpYKTDYc31FH9TFZfYqs4WGsqf2ksiPtpx\"]},\"src/lib/DepositViaPermit2Lib.sol\":{\"keccak256\":\"0x3d45834b9be7e0af8aadd4c3afb2b5d7a9c1a47156e30780499852b1e503b1c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e16d1aa8eb93fefd956455fbb157a58cb9fb3824a276f54a33a52c17924c30b\",\"dweb:/ipfs/QmUmsqU9p8J7r7hk5jxNYXUnaPoCaMruFKtxFo12zV7XJQ\"]},\"src/lib/DepositViaPermit2Logic.sol\":{\"keccak256\":\"0xb8813f63d4a3c05dc99e36b6a900cbd7c6c6bfc8cccdb5b9052894400b4925a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://463fa79ef23b7f6d56a9bc8f6139917374a06f860c12fbfe6e76d794e690b9e0\",\"dweb:/ipfs/QmXGqm3wZqRSDAvy7mykMvezMBVPPT79pJYsASwkxXFitq\"]},\"src/lib/DirectDepositLogic.sol\":{\"keccak256\":\"0xa1b9f042c5ecf3edcde3733bd12cde49633dcce9336622ea7c5eabd0ce2bafa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0eeaa505727c2b42780bd4e3e3dbede2ce51480c46ff90ad401d7328fc5e42d8\",\"dweb:/ipfs/QmZ8MDQjSi2yczScSgKyd6Ge3ir4xJA2o8pX1j15ryyzVp\"]},\"src/lib/DomainLib.sol\":{\"keccak256\":\"0x0a69b112fabd7d4e13fbf4c796a4a163f522c84b4b6a981c913a6c7342f5cc6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a3d3fd2d8ab66c6dd0f2674efcf2bca87899decd42e949631be80a60f74d6a2\",\"dweb:/ipfs/QmP38CpNz5GjycQZwpe7CxXrRsugraQDtr6rsiA5ue2iK6\"]},\"src/lib/EfficiencyLib.sol\":{\"keccak256\":\"0xd8fd182c728a98a3ac5c64cbc7011bc34dc1ee06e377a1a5e670c3cd8375eff9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f565cad687dc0bd3438a8b8b08ecc973f5ad5a1aebd332baa402e45cd56ae83\",\"dweb:/ipfs/QmayoEFEv6zMhRw6kqqoqdmNE1jGbwgRQ6VA5wj2XAb7Du\"]},\"src/lib/EventLib.sol\":{\"keccak256\":\"0x0d9bc84e78628d9ff42689b8cd33353c86f9de7220002d74c5d485275f328946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb8bf826a89bb1cc62e8af269f34453c13df6ffe473e0dff8aeddaf1797afa0f\",\"dweb:/ipfs/QmX7TFZACuGBhCVMjAPve7JKz6PWZjYTMr7JQ9WbFatKcu\"]},\"src/lib/Extsload.sol\":{\"keccak256\":\"0x72075add7c7d734c46922f2f56cb490d48711a0cc6af439619ff39e60df75924\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://283cc72cb88802327c60fc9bc75f840ff639d791c1d19056bbadf7e7e5f3c99f\",\"dweb:/ipfs/QmWoCebx1axDW8uuUEPv6QRzGWFD5bRGnvw2VD7KJufokB\"]},\"src/lib/HashLib.sol\":{\"keccak256\":\"0x50bc064b796b92d6199cf09cf8ea34a808653a8c668f695ce89cd3614956cb4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6bd96eb47fd50bb4f15540e3f8c903d5cf83d8e0e975d615abb9e2dfe7329af0\",\"dweb:/ipfs/QmVPs5HWJEbUtKQn69jSYdA7U92jU7nkWwGfsmD6sUCWsR\"]},\"src/lib/IdLib.sol\":{\"keccak256\":\"0x14a04b7bdfcd5e7cc783a7202cb0429fb225f0a960908f06028f39f78b01373b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c465efd13c8fd3ddfd701357f8f6e64443d69c5ab835c7bb35b8934261c2313e\",\"dweb:/ipfs/QmP15v2Qrp1hg7BvkfzE4zqcjwhDH2NBHkzJ8rRShCwU8S\"]},\"src/lib/MetadataLib.sol\":{\"keccak256\":\"0x1d7f67de567fccba29393048a15373c9ad6cc903409b52b94a8baf1747204340\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f15f66c2420d6f5a527ee12945bc000e7687586727845015d60e229ca5009d4\",\"dweb:/ipfs/QmY27xFEKUBW3U7K18gQNNbmR3pZbp1Gz3ecQVkZQUBzek\"]},\"src/lib/MetadataRenderer.sol\":{\"keccak256\":\"0xdef8b8a92120470f9d290b5d6ab3fc69145300741ca066b152ddc71cd719982e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6946d4d9d525fd21e3b4d310aaa5160de531bda7574bb5ad8c6a10616c340fe8\",\"dweb:/ipfs/QmdB6Kwipo2MXCLPexXqjNP2xQhkG8BRx7KBWKMyqCRNHk\"]},\"src/lib/RegistrationLib.sol\":{\"keccak256\":\"0xa6be3d3f74e30fa04157f369964afe818f562c82369bb0823ffc4a06297364a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f73aa296543d4c3757a9b104278cfa9c07838ae9a9b82a3e77ed6df7bbe8ef20\",\"dweb:/ipfs/QmWDCBxnz3quqhDtAN7zqetaQmCE8ULM1dAYEBrguHP5DQ\"]},\"src/lib/RegistrationLogic.sol\":{\"keccak256\":\"0x40850751ea4a77f6bd9df09a3a9f565994dfd03b29a15dcc31e03da3be317b7f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16f07cb5ab8e5adfe74cdd700f5c9e448b28fab0b120058b25d4d1bcf2338a9a\",\"dweb:/ipfs/QmULZACcDPswptXRxKnA8dBChU63k8CkvY5Q7YG7SJoSs6\"]},\"src/lib/SharedLogic.sol\":{\"keccak256\":\"0xcc76a01f9dc24f1afc4fd21dbdb423ec7a6cccb454c9b725fa3b135d4d851365\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f9fe59a2d0c467832d42c60acabd4c599868024c09b5aa89e9e91b38e9f8eba\",\"dweb:/ipfs/Qmbsu2BLJT32Qc77RR3ZHhVTMkyh1sLJueLiTuYHCQwxVf\"]},\"src/lib/TheCompactLogic.sol\":{\"keccak256\":\"0xc6106d8b4a9f2bf6c9006181a3e6acc95c8524628b5096478c76716a7e2cc5c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18056a737da3fddaac4cb50dd598b57e0bcc5d1889669831bbb4d09bc48c5cf6\",\"dweb:/ipfs/QmPvQs8THzQPfpxuB5MKNKsFGiPjbR9B5QVAKa4NTkpSbd\"]},\"src/lib/TransferFunctionCastLib.sol\":{\"keccak256\":\"0x1b2b8d48503f85dee96cb0d915d1f506ab872aac6fb29a1adbb894de93a534e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a2eb941a4a3e4633c88420ae3eab750ffdb32e431c71927a10feb6562b6e9a9\",\"dweb:/ipfs/QmeYJbeupvqjyrMV43Z41mz52E9Bwqhmm4mSx7K8F26Vmb\"]},\"src/lib/TransferLogic.sol\":{\"keccak256\":\"0x08ae66f9d642e8caabcd200d8574e5487cc11181c23acc18f2076e4f5e9ca086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f4ec47106727e1fd5197f9fa7e86552469a198dd62dd24ad3dc1db9fb6d4327\",\"dweb:/ipfs/QmR3bC1fmUVYTarsZMRU3u3RV1GcbNsF3NghvxND4B7J46\"]},\"src/lib/ValidityLib.sol\":{\"keccak256\":\"0xfdecefc1bd9b9ba92fb471af7d09dc30255cb16154cec436b27fc06630fc7106\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b36c79e57192514bcf3aace66e38568708e066f24db93832f0a7f530754c5a7\",\"dweb:/ipfs/QmUSRsBpZz7VEPN1ubX5mB71uKRdQ17Tf5jbkUNkyiMGhu\"]},\"src/lib/WithdrawalLogic.sol\":{\"keccak256\":\"0x438c41cb28048ee067e8f64e2faaf7339a3324f0ce81ec96c94e5692074ee650\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f811218032733e0fd0eb937a036b04e37dfcd46ed64bcbac22ecbb5d2a5993b4\",\"dweb:/ipfs/QmdD2bN9Be2dDBEmuYBKGJKgW5FsayuojBqjYuz2ZvWcEb\"]},\"src/types/BatchClaims.sol\":{\"keccak256\":\"0x368860cb48d9cf8b7ee86e226fc203307c8559ee5bbd987299c14580c61039b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edd6eccb18ee3f7dc1e4fdeaa00d007b8cd6f506ab76366f74e530a66211ba8d\",\"dweb:/ipfs/Qmf68iLL8CVZEvkjnQb6GdPumsP5V8dFfSubXCSx1Vgu4Z\"]},\"src/types/BatchMultichainClaims.sol\":{\"keccak256\":\"0xe493995e946bf63d2970e5668e426f6c3d84f9ae5b03f86f7c493ae02ca8b96c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91370d328607589fa1ff37f3c0ef66a5b90ff63de20c8ccee3b009a6aedb2620\",\"dweb:/ipfs/QmY5Ja2XfxRFbh4dtViqiepaSfNr1rWrMYSnSGjeMPxxNw\"]},\"src/types/Claims.sol\":{\"keccak256\":\"0x6ae4ad79a64e0edd6169e87f8c3e35abd5f592ac23dc8eae7b92dfc190fa3ae2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4434f16be0877209b2aaa51c9f27b9374fab6acbfc3b6241ba00907d6de7a96\",\"dweb:/ipfs/QmTTcNwtekjwMZkrNKAcKAprWG47pSVEn2GETX6tZu746C\"]},\"src/types/CompactCategory.sol\":{\"keccak256\":\"0xc3ab3758e88fc8591d79352d3d49140433bbf4176c3caa1bfce1903e2bfadf06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16960ee62b98c5cbbedcfe22ce4b521205d2bcc4fe9dfa57a9d68ec90efeb5a1\",\"dweb:/ipfs/Qmc3FciGTRrDZjRSb9waUYkZsELRvVWkJKNVqS1u8vEDNG\"]},\"src/types/Components.sol\":{\"keccak256\":\"0xd5027c0eb603a4604e050e97930fa436db33755b3e8097894320916cd7163ff0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b414c4a0e0d543f8de309bbb005f62d63a5c67ae6cf78d5d5b5fd076dd7b0a51\",\"dweb:/ipfs/QmX8Z9Fp2QJVgE9hwbPjrXUYc4RVAE8qTyfN8DKBpV5iPB\"]},\"src/types/EIP712Types.sol\":{\"keccak256\":\"0x386ff8e0aff7d437b8b49117ed158554e608d0cc18a0b4f561510e9584cafb91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e49d199dd3caab0210a2648a1b9d2a8965b5706f602fffee8e1815bbacddbe5e\",\"dweb:/ipfs/QmYUzWFC4GK1rjoqnZEt2ghL5GMPCiaF5xaPzSr4Rm99PK\"]},\"src/types/ForcedWithdrawalStatus.sol\":{\"keccak256\":\"0xdf352a2439e57ea9e1b7d54997fe904e4ea41ab9d2d8221d7d753dce94e76dc7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6faadb6857eda66cbef8fe1bf36d85d16f534b899a737a9464e69dc505eb9e89\",\"dweb:/ipfs/QmdC9beQhPRYv5sAFx7TyWvzGPjm6XY3bCYNKzuZH1Pesd\"]},\"src/types/Lock.sol\":{\"keccak256\":\"0x21a490258b933f8d5db759a91d07f7d9d2b2435d366334a8bcfbce4379a85011\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d1cfcb02c3b0a70d82b2d9bd9c55ffcf654a226774711ca727eab8b0cdf456ea\",\"dweb:/ipfs/QmRFN3dvespK1mUcUuXm4rnPd3ZGNRdba8MZgub1zu24Qw\"]},\"src/types/MultichainClaims.sol\":{\"keccak256\":\"0x596b71d675b7b5e13b29f6b7fb92d23722d2792fadc82ad764467fdf9c693cb9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://974d9d906e06ad29e875c2556d32c1f631a70539e43b018815e3fc68ede01e53\",\"dweb:/ipfs/QmPbqsU21jDGhLQ9x9No2xDUimaLueGGF7eAkNxJfhc3fx\"]},\"src/types/ResetPeriod.sol\":{\"keccak256\":\"0xfd32523d563b926c72fdc693aa8b7f6db24f4720decee16710cdfc662a8d8f16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c510cde0fc28cde51aad2df6bac8eeef5e0fb67be754a3d8c655a8556db32c6\",\"dweb:/ipfs/QmWjVZJdfxVK5EiprmWi9iGNMqXAkVZjECnzeXvjfTsDZX\"]},\"src/types/Scope.sol\":{\"keccak256\":\"0x3e63be015c24bde88698efc20b00690d1e683a5cabf2122dc91ab0ecad4ae8ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5160d46460204dc6268a963e9d0c117fab903318f74d3b5903693fe2dfcc2462\",\"dweb:/ipfs/QmRsc4VSWvvSxi3VfyFgjTELj5DB5MpZ7UPJ3mzgPMyD9v\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"providedAmount","type":"uint256"}],"type":"error","name":"AllocatedAmountExceeded"},{"inputs":[],"type":"error","name":"BalanceOverflow"},{"inputs":[{"internalType":"uint256","name":"expiration","type":"uint256"}],"type":"error","name":"Expired"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"type":"error","name":"ForcedWithdrawalAlreadyDisabled"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InsufficientPermission"},{"inputs":[],"type":"error","name":"InvalidBatchAllocation"},{"inputs":[],"type":"error","name":"InvalidBatchDepositStructure"},{"inputs":[],"type":"error","name":"InvalidDepositBalanceChange"},{"inputs":[],"type":"error","name":"InvalidDepositTokenOrdering"},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"type":"error","name":"InvalidRegistrationDuration"},{"inputs":[{"internalType":"address","name":"allocator","type":"address"}],"type":"error","name":"InvalidRegistrationProof"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"type":"error","name":"InvalidScope"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"InvalidToken"},{"inputs":[],"type":"error","name":"OnlyDirectCalls"},{"inputs":[],"type":"error","name":"Permit2CallFailed"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"type":"error","name":"PrematureWithdrawal"},{"inputs":[{"internalType":"address","name":"existingCaller","type":"address"}],"type":"error","name":"ReentrantCall"},{"inputs":[],"type":"error","name":"TStoreAlreadyActivated"},{"inputs":[],"type":"error","name":"TStoreNotSupported"},{"inputs":[],"type":"error","name":"TloadTestContractDeploymentFailed"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"UnallocatedTransfer"},{"inputs":[{"internalType":"uint96","name":"allocatorId","type":"uint96","indexed":false},{"internalType":"address","name":"allocator","type":"address","indexed":false}],"type":"event","name":"AllocatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"sponsor","type":"address","indexed":true},{"internalType":"address","name":"allocator","type":"address","indexed":true},{"internalType":"address","name":"arbiter","type":"address","indexed":true},{"internalType":"bytes32","name":"claimHash","type":"bytes32","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"sponsor","type":"address","indexed":true},{"internalType":"bytes32","name":"claimHash","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"typehash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"expires","type":"uint256","indexed":false}],"type":"event","name":"CompactRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":true},{"internalType":"bool","name":"activating","type":"bool","indexed":false},{"internalType":"uint256","name":"withdrawableAt","type":"uint256","indexed":false}],"type":"event","name":"ForcedWithdrawalStatusUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"OperatorSet","anonymous":false},{"inputs":[{"internalType":"address","name":"by","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"__activateTstore"},{"inputs":[{"internalType":"address","name":"allocator","type":"address"},{"internalType":"bytes","name":"proof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"__registerAllocator","outputs":[{"internalType":"uint96","name":"","type":"uint96"}]},{"inputs":[{"internalType":"struct BatchTransfer","name":"transfer","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct TransferComponent[]","name":"transfers","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"recipient","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchTransfer","name":"transfer","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct SplitByIdComponent[]","name":"transfers","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitTransfer","name":"transfer","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"recipients","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BasicTransfer","name":"transfer","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BasicTransfer","name":"withdrawal","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchTransfer","name":"withdrawal","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct SplitByIdComponent[]","name":"transfers","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchTransfer","name":"withdrawal","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct TransferComponent[]","name":"transfers","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"recipient","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitTransfer","name":"withdrawal","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"recipients","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"struct ExogenousSplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousSplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BasicClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousSplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousSplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousSplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousSplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousSplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BasicClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousSplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256[]","name":"nonces","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"consume","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum ResetPeriod","name":"","type":"uint8"},{"internalType":"enum Scope","name":"","type":"uint8"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"allocator","type":"address"},{"internalType":"enum ResetPeriod","name":"resetPeriod","type":"uint8"},{"internalType":"enum Scope","name":"scope","type":"uint8"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"payable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"allocator","type":"address"},{"internalType":"enum ResetPeriod","name":"resetPeriod","type":"uint8"},{"internalType":"enum Scope","name":"scope","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"allocator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct ISignatureTransfer.TokenPermissions[]","name":"permitted","type":"tuple[]","components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum ResetPeriod","name":"","type":"uint8"},{"internalType":"enum Scope","name":"","type":"uint8"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"payable","type":"function","name":"deposit","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256[2][]","name":"idsAndAmounts","type":"uint256[2][]"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"payable","type":"function","name":"deposit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"allocator","type":"address"}],"stateMutability":"payable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"depositor","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum ResetPeriod","name":"resetPeriod","type":"uint8"},{"internalType":"enum Scope","name":"","type":"uint8"},{"internalType":"bytes32","name":"claimHash","type":"bytes32"},{"internalType":"enum CompactCategory","name":"compactCategory","type":"uint8"},{"internalType":"string","name":"witness","type":"string"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"depositAndRegister","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256[2][]","name":"idsAndAmounts","type":"uint256[2][]"},{"internalType":"bytes32[2][]","name":"claimHashesAndTypehashes","type":"bytes32[2][]"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"payable","type":"function","name":"depositAndRegister","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"allocator","type":"address"},{"internalType":"bytes32","name":"claimHash","type":"bytes32"},{"internalType":"bytes32","name":"typehash","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"depositAndRegister","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"depositor","type":"address"},{"internalType":"struct ISignatureTransfer.TokenPermissions[]","name":"permitted","type":"tuple[]","components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum ResetPeriod","name":"resetPeriod","type":"uint8"},{"internalType":"enum Scope","name":"","type":"uint8"},{"internalType":"bytes32","name":"claimHash","type":"bytes32"},{"internalType":"enum CompactCategory","name":"compactCategory","type":"uint8"},{"internalType":"string","name":"witness","type":"string"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"payable","type":"function","name":"depositAndRegister","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"allocator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"claimHash","type":"bytes32"},{"internalType":"bytes32","name":"typehash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"depositAndRegister","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"disableForcedWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"enableForcedWithdrawal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"extsload","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32[]","name":"slots","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"extsload","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"exttload","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"forcedWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"getForcedWithdrawalStatus","outputs":[{"internalType":"enum ForcedWithdrawalStatus","name":"","type":"uint8"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"getLockDetails","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum ResetPeriod","name":"","type":"uint8"},{"internalType":"enum Scope","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"bytes32","name":"claimHash","type":"bytes32"},{"internalType":"bytes32","name":"typehash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRegistrationStatus","outputs":[{"internalType":"bool","name":"isActive","type":"bool"},{"internalType":"uint256","name":"expires","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"allocator","type":"address"}],"stateMutability":"view","type":"function","name":"hasConsumedAllocatorNonce","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"isOperator","outputs":[{"internalType":"bool","name":"status","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes32[2][]","name":"claimHashesAndTypehashes","type":"bytes32[2][]"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"claimHash","type":"bytes32"},{"internalType":"bytes32","name":"typehash","type":"bytes32"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"payable","type":"function","name":"setOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"returns":{"_0":"A bytes32 representing the domain separator for the contract."}},"__activateTstore()":{"details":"External function to activate TSTORE usage. Does not need to be called if TSTORE is supported from deployment, and only needs to be called once. Reverts if TSTORE has already been activated or if the opcode is not available. Note that this must be called directly from an externally-owned account to avoid potential reentrancy issues."},"__registerAllocator(address,bytes)":{"params":{"allocator":"The address to register as an allocator.","proof":"An 85-byte value containing create2 address derivation parameters (0xff ++ factory ++ salt ++ initcode hash)."},"returns":{"_0":"A unique identifier assigned to the registered allocator."}},"allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))":{"params":{"transfer":"A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive."},"returns":{"_0":"Whether the transfer was successful."}},"allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))":{"params":{"transfer":"A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive all tokens."},"returns":{"_0":"Whether the transfer was successful."}},"allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))":{"params":{"transfer":"A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive."},"returns":{"_0":"Whether the transfer was successful."}},"allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))":{"params":{"transfer":"A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive the tokens."},"returns":{"_0":"Whether the transfer was successful."}},"allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))":{"params":{"withdrawal":"A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive."},"returns":{"_0":"Whether the withdrawal was successful."}},"allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))":{"params":{"withdrawal":"A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive all tokens."},"returns":{"_0":"Whether the withdrawal was successful."}},"allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))":{"params":{"withdrawal":"A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive."},"returns":{"_0":"Whether the withdrawal was successful."}},"allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))":{"params":{"withdrawal":"A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive the tokens."},"returns":{"_0":"Whether the withdrawal was successful."}},"allowance(address,address,uint256)":{"details":"Returns the amount of token `id` that `spender` can spend on behalf of `owner`."},"approve(address,uint256,uint256)":{"details":"Sets `amount` as the allowance of `spender` for the caller for token `id`. Emits a {Approval} event."},"balanceOf(address,uint256)":{"details":"Returns the amount of token `id` owned by `owner`."},"consume(uint256[])":{"params":{"nonces":"Array of nonces to be consumed."},"returns":{"_0":"Whether all nonces were successfully consumed."}},"decimals(uint256)":{"details":"Returns the number of decimals for token `id`. Returns 18 by default. Please override this function if you need to return a custom value."},"deposit(address)":{"params":{"allocator":"The address of the allocator."},"returns":{"_0":"The ERC6909 token identifier of the associated resource lock."}},"deposit(address,address,uint256)":{"params":{"allocator":"The address of the allocator mediating the resource lock.","amount":"The amount of tokens to deposit.","token":"The address of the ERC20 token to deposit."},"returns":{"_0":" The ERC6909 token identifier of the associated resource lock."}},"deposit(address,address,uint8,uint8,uint256,address)":{"params":{"allocator":"The address of the allocator mediating the resource lock.","amount":"The amount of tokens to deposit.","recipient":"The address that will receive the corresponding ERC6909 tokens.","resetPeriod":"The duration after which the resource lock can be reset once a forced withdrawal is initiated.","scope":"The scope of the resource lock (multichain or single chain).","token":"The address of the ERC20 token to deposit."},"returns":{"_0":" The ERC6909 token identifier of the associated resource lock."}},"deposit(address,uint8,uint8,address)":{"params":{"allocator":"The address of the allocator mediating the resource lock.","recipient":"The address that will receive the corresponding ERC6909 tokens.","resetPeriod":"The duration after which the resource lock can be reset once a forced withdrawal is initiated.","scope":"The scope of the resource lock (multichain or single chain)."},"returns":{"_0":" The ERC6909 token identifier of the associated resource lock."}},"deposit(uint256[2][],address)":{"params":{"idsAndAmounts":"Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit.","recipient":"The address that will receive the corresponding ERC6909 tokens."},"returns":{"_0":"Whether the batch deposit was successfully completed."}},"depositAndRegister(address,address,uint256,bytes32,bytes32)":{"params":{"allocator":"The address of the allocator mediating the resource lock.","amount":"The amount of tokens to deposit.","claimHash":"A bytes32 hash derived from the details of the compact.","token":"The address of the ERC20 token to deposit.","typehash":"The EIP-712 typehash associated with the registered compact."},"returns":{"id":" The ERC6909 token identifier of the associated resource lock."}},"depositAndRegister(address,bytes32,bytes32)":{"params":{"allocator":"The address of the allocator.","claimHash":"A bytes32 hash derived from the details of the compact.","typehash":"The EIP-712 typehash associated with the registered compact."},"returns":{"id":" The ERC6909 token identifier of the associated resource lock."}},"depositAndRegister(uint256[2][],bytes32[2][],uint256)":{"params":{"claimHashesAndTypehashes":"Array of [claimHash, typehash] pairs for registration.","duration":"The duration for which the claim hashes remain valid.","idsAndAmounts":"Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit."},"returns":{"_0":"Whether the batch deposit and claim hash registration was successfully completed."}},"disableForcedWithdrawal(uint256)":{"params":{"id":"The ERC6909 token identifier for the resource lock."},"returns":{"_0":"Whether the forced withdrawal was successfully disabled."}},"enableForcedWithdrawal(uint256)":{"params":{"id":"The ERC6909 token identifier for the resource lock."},"returns":{"_0":"The timestamp at which tokens become withdrawable."}},"forcedWithdrawal(uint256,address,uint256)":{"params":{"amount":"The amount of tokens to withdraw.","id":"The ERC6909 token identifier for the resource lock.","recipient":"The account that will receive the withdrawn tokens."},"returns":{"_0":"Whether the forced withdrawal was successfully executed."}},"getForcedWithdrawalStatus(address,uint256)":{"params":{"account":"The account to get the forced withdrawal status for.","id":"The ERC6909 token identifier of the resource lock."},"returns":{"_0":" The current ForcedWithdrawalStatus (disabled, pending, or enabled).","_1":"The timestamp at which tokens become withdrawable if status is pending."}},"getLockDetails(uint256)":{"params":{"id":"The ERC6909 token identifier of the resource lock."},"returns":{"_0":" The address of the underlying token (or address(0) for native tokens).","_1":" The account of the allocator mediating the resource lock.","_2":"The duration after which the resource lock can be reset once a forced withdrawal is initiated.","_3":" The scope of the resource lock (multichain or single chain)."}},"getRegistrationStatus(address,bytes32,bytes32)":{"params":{"claimHash":"A bytes32 hash derived from the details of the compact.","sponsor":"The account that registered the compact.","typehash":"The EIP-712 typehash associated with the registered claim hash."},"returns":{"expires":" The timestamp at which the compact registration expires.","isActive":"Whether the compact registration is currently active."}},"hasConsumedAllocatorNonce(uint256,address)":{"params":{"allocator":"The account of the allocator.","nonce":"The nonce to check."},"returns":{"_0":"Whether the nonce has been consumed."}},"isOperator(address,address)":{"details":"Checks if a `spender` is approved by `owner` to manage all of their tokens."},"name()":{"details":"Returns the name for the contract."},"name(uint256)":{"details":"Returns the symbol for token `id`."},"register(bytes32,bytes32,uint256)":{"params":{"claimHash":"A bytes32 hash derived from the details of the compact.","duration":"The duration for which the claim hash remains valid.","typehash":"The EIP-712 typehash associated with the registered claim hash."},"returns":{"_0":"Whether the claim hash was successfully registered."}},"register(bytes32[2][],uint256)":{"params":{"claimHashesAndTypehashes":"Array of [claimHash, typehash] pairs for registration.","duration":"The duration for which the claim hashes remain valid."},"returns":{"_0":"Whether all claim hashes were successfully registered."}},"setOperator(address,bool)":{"details":"Sets whether `operator` is approved to manage the tokens of the caller. Emits {OperatorSet} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`."},"symbol(uint256)":{"details":"Returns the symbol for token `id`."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for token `id`."},"transfer(address,uint256,uint256)":{"details":"Transfers `amount` of token `id` from the caller to `to`. Requirements: - caller must at least have `amount`. Emits a {Transfer} event."},"transferFrom(address,address,uint256,uint256)":{"details":"Transfers `amount` of token `id` from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount` of token `id`. - The caller must have at least `amount` of allowance to transfer the tokens of `from` or approved as an operator. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{"DOMAIN_SEPARATOR()":{"notice":"External pure function for returning the domain separator of the contract."},"__registerAllocator(address,bytes)":{"notice":"External function for registering an allocator. Can be called by anyone if one of three conditions is met: the caller is the allocator address being registered, the allocator address contains code, or a proof is supplied representing valid create2 deployment parameters that resolve to the supplied allocator address."},"allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))":{"notice":"Transfers ERC6909 tokens from multiple resource locks to multiple recipients with allocator approval."},"allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))":{"notice":"Transfers ERC6909 tokens from multiple resource locks to a single recipient with allocator approval."},"allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))":{"notice":"Transfers ERC6909 tokens to multiple recipients with allocator approval."},"allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))":{"notice":"Transfers ERC6909 tokens to a single recipient with allocator approval."},"allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))":{"notice":"Withdraws underlying tokens from multiple resource locks to multiple recipients with allocator approval."},"allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))":{"notice":"Withdraws underlying tokens from multiple resource locks to a single recipient with allocator approval."},"allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))":{"notice":"Withdraws underlying tokens to multiple recipients with allocator approval."},"allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))":{"notice":"Withdraws underlying tokens to a single recipient with allocator approval."},"consume(uint256[])":{"notice":"External function for consuming allocator nonces. Only callable by a registered allocator. Once consumed, any compact payloads that utilize those nonces cannot be claimed."},"deposit(address)":{"notice":"External payable function for depositing native tokens into a resource lock and receiving back ERC6909 tokens representing the underlying locked balance controlled by the depositor. The allocator mediating the lock is provided as an argument, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction."},"deposit(address,address,uint256)":{"notice":"External function for depositing ERC20 tokens into a resource lock. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token."},"deposit(address,address,uint8,uint8,uint256,address)":{"notice":"External function for depositing ERC20 tokens into a resource lock with custom reset period and scope parameters. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received by the recipient is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token."},"deposit(address,uint8,uint8,address)":{"notice":"External payable function for depositing native tokens into a resource lock with custom reset period and scope parameters. The ERC6909 token amount received by the recipient will match the amount of native tokens sent with the transaction."},"deposit(uint256[2][],address)":{"notice":"External payable function for depositing multiple tokens in a single transaction. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens."},"depositAndRegister(address,address,uint256,bytes32,bytes32)":{"notice":"External function for depositing ERC20 tokens and simultaneously registering a compact. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token."},"depositAndRegister(address,bytes32,bytes32)":{"notice":"External payable function for depositing native tokens into a resource lock and simultaneously registering a compact. The allocator, the claim hash, and the typehash used for the claim hash are provided as additional arguments, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction."},"depositAndRegister(uint256[2][],bytes32[2][],uint256)":{"notice":"External payable function for depositing multiple tokens in a single transaction and registering a set of claim hashes. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens. Note that resource lock ids must be supplied in alphanumeric order."},"disableForcedWithdrawal(uint256)":{"notice":"External function to disable a previously enabled forced withdrawal for a resource lock."},"enableForcedWithdrawal(uint256)":{"notice":"External function to initiate a forced withdrawal for a resource lock. Once enabled, forced withdrawals can be executed after the reset period has elapsed. The withdrawableAt timestamp returned will be the current timestamp plus the reset period associated with the resource lock."},"forcedWithdrawal(uint256,address,uint256)":{"notice":"External function to execute a forced withdrawal from a resource lock after the reset period has elapsed. The tokens will be withdrawn to the specified recipient in the amount requested. The ERC6909 token balance of the caller will be reduced by the difference in the balance held by the resource lock before and after the withdrawal, which may differ from the provided amount depending on the underlying token in question."},"getForcedWithdrawalStatus(address,uint256)":{"notice":"External view function for checking the forced withdrawal status of a resource lock for a given account. Returns both the current status (disabled, pending, or enabled) and the timestamp at which forced withdrawals will be enabled (if status is pending) or became enabled (if status is enabled)."},"getLockDetails(uint256)":{"notice":"External view function for retrieving the details of a resource lock. Returns the underlying token, the mediating allocator, the reset period, and the scope."},"getRegistrationStatus(address,bytes32,bytes32)":{"notice":"External view function for checking the registration status of a compact. Returns both whether the claim hash is currently active and when it expires (if it is active)."},"hasConsumedAllocatorNonce(uint256,address)":{"notice":"External view function for checking whether a specific nonce has been consumed by an allocator. Once consumed, a nonce cannot be reused for claims mediated by that allocator."},"register(bytes32,bytes32,uint256)":{"notice":"External function to register a claim hash and its associated EIP-712 typehash. The registered claim hash will remain valid for the specified duration. Once expired, the claim hash can no longer be used to initiate claims."},"register(bytes32[2][],uint256)":{"notice":"External function to register multiple claim hashes and their associated EIP-712 typehashes in a single call. All registered claim hashes will remain valid for the specified duration. Once expired, the claim hashes can no longer be used to initiate claims."}},"version":1}},"settings":{"remappings":["ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/permit2/lib/openzeppelin-contracts/","permit2/=lib/permit2/","solady/=lib/solady/src/","soledge/=lib/soledge/src/","solmate/=lib/permit2/lib/solmate/","tstorish/=lib/tstorish/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/TheCompact.sol":"TheCompact"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"lib/permit2/src/interfaces/ISignatureTransfer.sol":{"keccak256":"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e","urls":["bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317","dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d"],"license":"MIT"},"lib/solady/src/tokens/ERC6909.sol":{"keccak256":"0x03975a3d9680a1bfe53a678685c81ed4d70b6e0f046ccf1905539caa5376eea2","urls":["bzz-raw://827a2f6b69fcb700909635203a9453310ea89c0bb904943cf3cc732e35d81398","dweb:/ipfs/QmZha3DSrunz1NR3jXHRXrLT6uvAKTt3AEV6PcbGWRLu4q"],"license":"MIT"},"lib/solady/src/utils/EfficientHashLib.sol":{"keccak256":"0x32032578683dc18c5f95c8dd4c1422d212f230d96d5425cc491f3350157e6fe1","urls":["bzz-raw://82c89ef25e537766bbfc8ebba4138eee4fa1b64527c39add8240bce2ea99c661","dweb:/ipfs/QmZVciQDtnXs3nDVUaH7mMLC6vFKe8zeKLK969bqJetKCj"],"license":"MIT"},"lib/solady/src/utils/LibString.sol":{"keccak256":"0xa0b70980612eeedd30cc65c44c37a286c8527cb41c7454db55b1a435beb2276f","urls":["bzz-raw://93950259301ac435f1d8756cb80f99eafe9da4dc68b05e148a4b16042a69cc9b","dweb:/ipfs/QmUpyP9AD7AqmRNEmrjLSQivXXdbZmFZKaLJwW9UP2wWCN"],"license":"MIT"},"lib/solady/src/utils/MetadataReaderLib.sol":{"keccak256":"0x671f4b38462335f3500b91eeff2fd25fc447cc201901524959c05b934ad0b100","urls":["bzz-raw://aa64b44dc13b25c1aa713cb5724fade1dc093c95581efc5ccb85cbcc616c02c5","dweb:/ipfs/QmRvXqBw8GqpShA8cXAwA6ha14Q2bfajNmYq1mYNYAaMiv"],"license":"MIT"},"lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a","urls":["bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c","dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J"],"license":"MIT"},"lib/solady/src/utils/SignatureCheckerLib.sol":{"keccak256":"0x472ad43dd67dcc0d548efbbc8779f34e56a7eb99d7a8b1c29af33fb03bbe9ffc","urls":["bzz-raw://733da5015058b9540927c63c316665e9ac8d9676d23f722bddf9376c2a03d4cb","dweb:/ipfs/QmPhXj1qpjnwVjrZUgFdkinMK9XSuoLN3cxbSmqADYSZry"],"license":"MIT"},"lib/tstorish/src/Tstorish.sol":{"keccak256":"0xad3697d9fd6e7c1fb6faa8d474af00bb2a7afd51e8818165fd30bcc7ead53973","urls":["bzz-raw://a8b62000145be27440c913238fbe9b97ecfc709eacac14b498f18980418d6ab6","dweb:/ipfs/QmRMXHdYUDmajWzwUjs7CQZ5i1T739MhiMmimd3do8qJNk"],"license":"MIT"},"src/TheCompact.sol":{"keccak256":"0x2949a8d172180ba623c85dfc22eda0ba1f59c4d70d8ee8ade62b5876ff6cd935","urls":["bzz-raw://4c6a3fdaa5319cc8a272422e8af551bee8e1467f78aa8b65a1290fddf0453a90","dweb:/ipfs/QmafPX5TCncQbuhFtztQVL81hmU9wmdxfNZCYj9t5X6QqM"],"license":"MIT"},"src/interfaces/ITheCompact.sol":{"keccak256":"0xe75d130ab9ead7ef7866f4ce8fcbe5e8de49450abf5f8c6b5878c4e54e480103","urls":["bzz-raw://63b7694d1b97b350c41e668e72d25d3df10c230b9dd21219827d7d2cc0dc39b6","dweb:/ipfs/QmTDJAFcTYfU7DyfuYMJHK3YMYRkXQvm9MoUhywaqeUsZ6"],"license":"MIT"},"src/interfaces/ITheCompactClaims.sol":{"keccak256":"0x5691d5127ccff51eea74ce4f6dd01a5f121fd2a1b7bdad41aca39c4d236e27bb","urls":["bzz-raw://ca686c6911319d151dc1f658767545823d750c3fb54cb8f75e46b544df3a217a","dweb:/ipfs/QmT2a1twcvzHxjWwcLqMebo9rat5x5CVy2KJfawj9qXS5a"],"license":"MIT"},"src/lib/AllocatorLogic.sol":{"keccak256":"0xadfa16ae7d02777e129d31639f110be46093ef109c1287896598ee792de34d5c","urls":["bzz-raw://11a258ef5e43b6d85c99b330beaf4c3750f0d41c3b862b677551eca3626a2071","dweb:/ipfs/QmfViBPCWeKqgdVKfA7KQUz2JntZEdGfbpgAwCGWwLGQ9Y"],"license":"MIT"},"src/lib/ClaimHashFunctionCastLib.sol":{"keccak256":"0xcfa2f7fb4e3df789ae504ebc13e31cadb6c05282e07d46a4b807d5d23a5ef530","urls":["bzz-raw://51e642f4676ec4e0ecc1fb716cd051bd6d12dac2d39e997e516af5bd141b3178","dweb:/ipfs/QmeQ8vHdg8vsCZ9XPc3af82ktXHHicY3QQbAoghHfvkVK4"],"license":"MIT"},"src/lib/ClaimHashLib.sol":{"keccak256":"0x2bc3fb604115697562a4770f98020efd578b02d6376b56ca52c64d0df46f6e87","urls":["bzz-raw://aeddaee5ec0f8512fc13af7b0bfc07e93250a1bc34b6095c6a5bd6624a73990d","dweb:/ipfs/QmVeVSBNoJeMndTQpvB2Kr9BzWWG8crjeBPjZZxciGYXMx"],"license":"MIT"},"src/lib/ClaimProcessor.sol":{"keccak256":"0x58872af76a73fd131a85635150545978bbe09ae83ec4ed2fae19d75c038a482c","urls":["bzz-raw://8d782488fcbded4ef2781031940611599b6ec41e92d813800912e2c86afd7979","dweb:/ipfs/QmaCuq52gwjc1LfZrURPpyrjmGZZCtzhXRqg4dMhXP1NKa"],"license":"MIT"},"src/lib/ClaimProcessorFunctionCastLib.sol":{"keccak256":"0xb69ec41dc657f93f6f6a1901d39e48a791907d4debc0eb8104f9fe016b6a59ba","urls":["bzz-raw://b6a54cebc498c4181ddc25fd4c6162449ae12d407fc1b45c0e6c4b365da1543e","dweb:/ipfs/QmRdZp5fraYJRB7QXwDqE5jbpmerWaCV3DqMPxi9aCk4ZQ"],"license":"MIT"},"src/lib/ClaimProcessorLib.sol":{"keccak256":"0xf150692ad2915d0c4df63ea44e62f6e3d5736f2c91de7cea48a1301cf4034e51","urls":["bzz-raw://1c2f21638d2a613e912cf73dd049b0bb2e4abbea54a3f58a5439f6396c59d9ee","dweb:/ipfs/QmRQpwnhhNfvWyTXHRy982awBnHA4fjK7GpHzSgqC3pPT6"],"license":"MIT"},"src/lib/ClaimProcessorLogic.sol":{"keccak256":"0x737780590a48e67dc0f64bd3bb7248eafb7630f579d8aa44befb197d9ac66ce8","urls":["bzz-raw://ea7c69e2cbf316fe182fad296b8d65a76ade84923edb0572c339f880e21fc7bc","dweb:/ipfs/QmWuZ9UJA4nsdPjgCa6rsCBvoWBjcUhWRuCnLqPNbM8687"],"license":"MIT"},"src/lib/ComponentLib.sol":{"keccak256":"0x3e1ad4bff9cd12162f9b849078839b802f4783b474588fa93be8ba1e61263dd6","urls":["bzz-raw://faa70f41d0679e1fa2aa827f863c03bf8a3962703a26ae724b7ca2a8d5f9f96b","dweb:/ipfs/QmXWyv8ATKeSKwiXCPFZBLkrRuV1NhNDS5yH5rDyrm6GLs"],"license":"MIT"},"src/lib/ConstructorLogic.sol":{"keccak256":"0xca9b0d52a562351978aafcc06f79f5c555ea948eaad28983812a7892f02b1245","urls":["bzz-raw://1f2e41013c0ef8ef9bee844494185b7a09c8680ea3d931a2683f968cdaa154a9","dweb:/ipfs/QmX8CoLP6VGRkxhx6VonrRf2YqPZ1hg1LagKvkNBaQtNaR"],"license":"MIT"},"src/lib/ConsumerLib.sol":{"keccak256":"0x582badfccdb57ee9518e39676fab7ba2abc6b527c854d524b8f417126fa6d192","urls":["bzz-raw://96d6dde54bdad2fc2203620d5f75e96cc9267cb340e1284d311bf6f8c77d16d2","dweb:/ipfs/Qmbq8XuUiAoEsmYVa2NCHSdi6gu4ZYzeyr1iPNGaFwwhxu"],"license":"MIT"},"src/lib/DepositLogic.sol":{"keccak256":"0xb2a199980ca4025c1784ebc79ec5d73cbe849ff26d446b2ca58bdb7066475fcf","urls":["bzz-raw://73e9defc19c10bb6b63d7571a1e097ed09accdf7cf123b91c8a9bea02c9ca87f","dweb:/ipfs/QmVWt9Ssb6CuFpYKTDYc31FH9TFZfYqs4WGsqf2ksiPtpx"],"license":"MIT"},"src/lib/DepositViaPermit2Lib.sol":{"keccak256":"0x3d45834b9be7e0af8aadd4c3afb2b5d7a9c1a47156e30780499852b1e503b1c4","urls":["bzz-raw://1e16d1aa8eb93fefd956455fbb157a58cb9fb3824a276f54a33a52c17924c30b","dweb:/ipfs/QmUmsqU9p8J7r7hk5jxNYXUnaPoCaMruFKtxFo12zV7XJQ"],"license":"MIT"},"src/lib/DepositViaPermit2Logic.sol":{"keccak256":"0xb8813f63d4a3c05dc99e36b6a900cbd7c6c6bfc8cccdb5b9052894400b4925a9","urls":["bzz-raw://463fa79ef23b7f6d56a9bc8f6139917374a06f860c12fbfe6e76d794e690b9e0","dweb:/ipfs/QmXGqm3wZqRSDAvy7mykMvezMBVPPT79pJYsASwkxXFitq"],"license":"MIT"},"src/lib/DirectDepositLogic.sol":{"keccak256":"0xa1b9f042c5ecf3edcde3733bd12cde49633dcce9336622ea7c5eabd0ce2bafa1","urls":["bzz-raw://0eeaa505727c2b42780bd4e3e3dbede2ce51480c46ff90ad401d7328fc5e42d8","dweb:/ipfs/QmZ8MDQjSi2yczScSgKyd6Ge3ir4xJA2o8pX1j15ryyzVp"],"license":"MIT"},"src/lib/DomainLib.sol":{"keccak256":"0x0a69b112fabd7d4e13fbf4c796a4a163f522c84b4b6a981c913a6c7342f5cc6a","urls":["bzz-raw://4a3d3fd2d8ab66c6dd0f2674efcf2bca87899decd42e949631be80a60f74d6a2","dweb:/ipfs/QmP38CpNz5GjycQZwpe7CxXrRsugraQDtr6rsiA5ue2iK6"],"license":"MIT"},"src/lib/EfficiencyLib.sol":{"keccak256":"0xd8fd182c728a98a3ac5c64cbc7011bc34dc1ee06e377a1a5e670c3cd8375eff9","urls":["bzz-raw://1f565cad687dc0bd3438a8b8b08ecc973f5ad5a1aebd332baa402e45cd56ae83","dweb:/ipfs/QmayoEFEv6zMhRw6kqqoqdmNE1jGbwgRQ6VA5wj2XAb7Du"],"license":"MIT"},"src/lib/EventLib.sol":{"keccak256":"0x0d9bc84e78628d9ff42689b8cd33353c86f9de7220002d74c5d485275f328946","urls":["bzz-raw://eb8bf826a89bb1cc62e8af269f34453c13df6ffe473e0dff8aeddaf1797afa0f","dweb:/ipfs/QmX7TFZACuGBhCVMjAPve7JKz6PWZjYTMr7JQ9WbFatKcu"],"license":"MIT"},"src/lib/Extsload.sol":{"keccak256":"0x72075add7c7d734c46922f2f56cb490d48711a0cc6af439619ff39e60df75924","urls":["bzz-raw://283cc72cb88802327c60fc9bc75f840ff639d791c1d19056bbadf7e7e5f3c99f","dweb:/ipfs/QmWoCebx1axDW8uuUEPv6QRzGWFD5bRGnvw2VD7KJufokB"],"license":"MIT"},"src/lib/HashLib.sol":{"keccak256":"0x50bc064b796b92d6199cf09cf8ea34a808653a8c668f695ce89cd3614956cb4e","urls":["bzz-raw://6bd96eb47fd50bb4f15540e3f8c903d5cf83d8e0e975d615abb9e2dfe7329af0","dweb:/ipfs/QmVPs5HWJEbUtKQn69jSYdA7U92jU7nkWwGfsmD6sUCWsR"],"license":"MIT"},"src/lib/IdLib.sol":{"keccak256":"0x14a04b7bdfcd5e7cc783a7202cb0429fb225f0a960908f06028f39f78b01373b","urls":["bzz-raw://c465efd13c8fd3ddfd701357f8f6e64443d69c5ab835c7bb35b8934261c2313e","dweb:/ipfs/QmP15v2Qrp1hg7BvkfzE4zqcjwhDH2NBHkzJ8rRShCwU8S"],"license":"MIT"},"src/lib/MetadataLib.sol":{"keccak256":"0x1d7f67de567fccba29393048a15373c9ad6cc903409b52b94a8baf1747204340","urls":["bzz-raw://1f15f66c2420d6f5a527ee12945bc000e7687586727845015d60e229ca5009d4","dweb:/ipfs/QmY27xFEKUBW3U7K18gQNNbmR3pZbp1Gz3ecQVkZQUBzek"],"license":"MIT"},"src/lib/MetadataRenderer.sol":{"keccak256":"0xdef8b8a92120470f9d290b5d6ab3fc69145300741ca066b152ddc71cd719982e","urls":["bzz-raw://6946d4d9d525fd21e3b4d310aaa5160de531bda7574bb5ad8c6a10616c340fe8","dweb:/ipfs/QmdB6Kwipo2MXCLPexXqjNP2xQhkG8BRx7KBWKMyqCRNHk"],"license":"MIT"},"src/lib/RegistrationLib.sol":{"keccak256":"0xa6be3d3f74e30fa04157f369964afe818f562c82369bb0823ffc4a06297364a8","urls":["bzz-raw://f73aa296543d4c3757a9b104278cfa9c07838ae9a9b82a3e77ed6df7bbe8ef20","dweb:/ipfs/QmWDCBxnz3quqhDtAN7zqetaQmCE8ULM1dAYEBrguHP5DQ"],"license":"MIT"},"src/lib/RegistrationLogic.sol":{"keccak256":"0x40850751ea4a77f6bd9df09a3a9f565994dfd03b29a15dcc31e03da3be317b7f","urls":["bzz-raw://16f07cb5ab8e5adfe74cdd700f5c9e448b28fab0b120058b25d4d1bcf2338a9a","dweb:/ipfs/QmULZACcDPswptXRxKnA8dBChU63k8CkvY5Q7YG7SJoSs6"],"license":"MIT"},"src/lib/SharedLogic.sol":{"keccak256":"0xcc76a01f9dc24f1afc4fd21dbdb423ec7a6cccb454c9b725fa3b135d4d851365","urls":["bzz-raw://1f9fe59a2d0c467832d42c60acabd4c599868024c09b5aa89e9e91b38e9f8eba","dweb:/ipfs/Qmbsu2BLJT32Qc77RR3ZHhVTMkyh1sLJueLiTuYHCQwxVf"],"license":"MIT"},"src/lib/TheCompactLogic.sol":{"keccak256":"0xc6106d8b4a9f2bf6c9006181a3e6acc95c8524628b5096478c76716a7e2cc5c4","urls":["bzz-raw://18056a737da3fddaac4cb50dd598b57e0bcc5d1889669831bbb4d09bc48c5cf6","dweb:/ipfs/QmPvQs8THzQPfpxuB5MKNKsFGiPjbR9B5QVAKa4NTkpSbd"],"license":"MIT"},"src/lib/TransferFunctionCastLib.sol":{"keccak256":"0x1b2b8d48503f85dee96cb0d915d1f506ab872aac6fb29a1adbb894de93a534e7","urls":["bzz-raw://6a2eb941a4a3e4633c88420ae3eab750ffdb32e431c71927a10feb6562b6e9a9","dweb:/ipfs/QmeYJbeupvqjyrMV43Z41mz52E9Bwqhmm4mSx7K8F26Vmb"],"license":"MIT"},"src/lib/TransferLogic.sol":{"keccak256":"0x08ae66f9d642e8caabcd200d8574e5487cc11181c23acc18f2076e4f5e9ca086","urls":["bzz-raw://2f4ec47106727e1fd5197f9fa7e86552469a198dd62dd24ad3dc1db9fb6d4327","dweb:/ipfs/QmR3bC1fmUVYTarsZMRU3u3RV1GcbNsF3NghvxND4B7J46"],"license":"MIT"},"src/lib/ValidityLib.sol":{"keccak256":"0xfdecefc1bd9b9ba92fb471af7d09dc30255cb16154cec436b27fc06630fc7106","urls":["bzz-raw://3b36c79e57192514bcf3aace66e38568708e066f24db93832f0a7f530754c5a7","dweb:/ipfs/QmUSRsBpZz7VEPN1ubX5mB71uKRdQ17Tf5jbkUNkyiMGhu"],"license":"MIT"},"src/lib/WithdrawalLogic.sol":{"keccak256":"0x438c41cb28048ee067e8f64e2faaf7339a3324f0ce81ec96c94e5692074ee650","urls":["bzz-raw://f811218032733e0fd0eb937a036b04e37dfcd46ed64bcbac22ecbb5d2a5993b4","dweb:/ipfs/QmdD2bN9Be2dDBEmuYBKGJKgW5FsayuojBqjYuz2ZvWcEb"],"license":"MIT"},"src/types/BatchClaims.sol":{"keccak256":"0x368860cb48d9cf8b7ee86e226fc203307c8559ee5bbd987299c14580c61039b5","urls":["bzz-raw://edd6eccb18ee3f7dc1e4fdeaa00d007b8cd6f506ab76366f74e530a66211ba8d","dweb:/ipfs/Qmf68iLL8CVZEvkjnQb6GdPumsP5V8dFfSubXCSx1Vgu4Z"],"license":"MIT"},"src/types/BatchMultichainClaims.sol":{"keccak256":"0xe493995e946bf63d2970e5668e426f6c3d84f9ae5b03f86f7c493ae02ca8b96c","urls":["bzz-raw://91370d328607589fa1ff37f3c0ef66a5b90ff63de20c8ccee3b009a6aedb2620","dweb:/ipfs/QmY5Ja2XfxRFbh4dtViqiepaSfNr1rWrMYSnSGjeMPxxNw"],"license":"MIT"},"src/types/Claims.sol":{"keccak256":"0x6ae4ad79a64e0edd6169e87f8c3e35abd5f592ac23dc8eae7b92dfc190fa3ae2","urls":["bzz-raw://d4434f16be0877209b2aaa51c9f27b9374fab6acbfc3b6241ba00907d6de7a96","dweb:/ipfs/QmTTcNwtekjwMZkrNKAcKAprWG47pSVEn2GETX6tZu746C"],"license":"MIT"},"src/types/CompactCategory.sol":{"keccak256":"0xc3ab3758e88fc8591d79352d3d49140433bbf4176c3caa1bfce1903e2bfadf06","urls":["bzz-raw://16960ee62b98c5cbbedcfe22ce4b521205d2bcc4fe9dfa57a9d68ec90efeb5a1","dweb:/ipfs/Qmc3FciGTRrDZjRSb9waUYkZsELRvVWkJKNVqS1u8vEDNG"],"license":"MIT"},"src/types/Components.sol":{"keccak256":"0xd5027c0eb603a4604e050e97930fa436db33755b3e8097894320916cd7163ff0","urls":["bzz-raw://b414c4a0e0d543f8de309bbb005f62d63a5c67ae6cf78d5d5b5fd076dd7b0a51","dweb:/ipfs/QmX8Z9Fp2QJVgE9hwbPjrXUYc4RVAE8qTyfN8DKBpV5iPB"],"license":"MIT"},"src/types/EIP712Types.sol":{"keccak256":"0x386ff8e0aff7d437b8b49117ed158554e608d0cc18a0b4f561510e9584cafb91","urls":["bzz-raw://e49d199dd3caab0210a2648a1b9d2a8965b5706f602fffee8e1815bbacddbe5e","dweb:/ipfs/QmYUzWFC4GK1rjoqnZEt2ghL5GMPCiaF5xaPzSr4Rm99PK"],"license":"MIT"},"src/types/ForcedWithdrawalStatus.sol":{"keccak256":"0xdf352a2439e57ea9e1b7d54997fe904e4ea41ab9d2d8221d7d753dce94e76dc7","urls":["bzz-raw://6faadb6857eda66cbef8fe1bf36d85d16f534b899a737a9464e69dc505eb9e89","dweb:/ipfs/QmdC9beQhPRYv5sAFx7TyWvzGPjm6XY3bCYNKzuZH1Pesd"],"license":"MIT"},"src/types/Lock.sol":{"keccak256":"0x21a490258b933f8d5db759a91d07f7d9d2b2435d366334a8bcfbce4379a85011","urls":["bzz-raw://d1cfcb02c3b0a70d82b2d9bd9c55ffcf654a226774711ca727eab8b0cdf456ea","dweb:/ipfs/QmRFN3dvespK1mUcUuXm4rnPd3ZGNRdba8MZgub1zu24Qw"],"license":"MIT"},"src/types/MultichainClaims.sol":{"keccak256":"0x596b71d675b7b5e13b29f6b7fb92d23722d2792fadc82ad764467fdf9c693cb9","urls":["bzz-raw://974d9d906e06ad29e875c2556d32c1f631a70539e43b018815e3fc68ede01e53","dweb:/ipfs/QmPbqsU21jDGhLQ9x9No2xDUimaLueGGF7eAkNxJfhc3fx"],"license":"MIT"},"src/types/ResetPeriod.sol":{"keccak256":"0xfd32523d563b926c72fdc693aa8b7f6db24f4720decee16710cdfc662a8d8f16","urls":["bzz-raw://4c510cde0fc28cde51aad2df6bac8eeef5e0fb67be754a3d8c655a8556db32c6","dweb:/ipfs/QmWjVZJdfxVK5EiprmWi9iGNMqXAkVZjECnzeXvjfTsDZX"],"license":"MIT"},"src/types/Scope.sol":{"keccak256":"0x3e63be015c24bde88698efc20b00690d1e683a5cabf2122dc91ab0ecad4ae8ed","urls":["bzz-raw://5160d46460204dc6268a963e9d0c117fab903318f74d3b5903693fe2dfcc2462","dweb:/ipfs/QmRsc4VSWvvSxi3VfyFgjTELj5DB5MpZ7UPJ3mzgPMyD9v"],"license":"MIT"}},"version":1},"id":36} \ No newline at end of file From c6fa919da9cd1f66d78af779b27caec2011612e0 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Wed, 12 Mar 2025 15:24:47 +0100 Subject: [PATCH 05/41] feat: extend intentSources to support multiple origins currently supports websockets and blockchain events --- .../solver/solvers/WebSocketListener.ts | 13 +- .../solvers/compactX/config/metadata.ts | 10 +- typescript/solver/solvers/compactX/types.ts | 12 +- .../solver/solvers/eco/config/metadata.ts | 14 +- typescript/solver/solvers/eco/listener.ts | 2 +- typescript/solver/solvers/eco/types.ts | 10 +- .../solvers/hyperlane7683/config/metadata.ts | 120 ++++++++--------- .../solver/solvers/hyperlane7683/listener.ts | 8 +- .../solver/solvers/hyperlane7683/types.ts | 13 +- typescript/solver/solvers/types.ts | 125 ++++++++++++++++-- 10 files changed, 228 insertions(+), 99 deletions(-) diff --git a/typescript/solver/solvers/WebSocketListener.ts b/typescript/solver/solvers/WebSocketListener.ts index 894f7652..0bc643f6 100644 --- a/typescript/solver/solvers/WebSocketListener.ts +++ b/typescript/solver/solvers/WebSocketListener.ts @@ -2,6 +2,7 @@ import type { Logger } from "../logger.js"; import type { ParsedArgs } from "./BaseFiller.js"; import { WebSocket } from "ws"; +import { WSClientOptions } from "./types.js"; export interface ConnectionUpdate { type: "connected"; @@ -13,9 +14,7 @@ export interface ConnectionUpdate { export type WebSocketMessage = ConnectionUpdate; -export abstract class WebSocketListener< - TParsedArgs extends ParsedArgs, -> { +export abstract class WebSocketListener { private ws: WebSocket | null = null; private reconnectAttempts = 0; private maxReconnectAttempts = 5; @@ -33,7 +32,7 @@ export abstract class WebSocketListener< private readonly metadata: { webSocket: { url: string; - clientOptions: WebSocket.ClientOptions; + clientOptions?: WSClientOptions; options?: { maxReconnectAttempts?: number; reconnectDelay?: number; @@ -181,7 +180,7 @@ export abstract class WebSocketListener< this.ws.on("message", (data: Buffer): void => { try { const args = this.parseEventArgs(data); - handler(args, '', -1); + handler(args, "", -1); } catch (error) { this.log.error("Error parsing message:", error); } @@ -200,7 +199,5 @@ export abstract class WebSocketListener< console.error("Unknown message type:", data); } } - protected abstract parseEventArgs( - args: Buffer, - ): TParsedArgs; + protected abstract parseEventArgs(args: Buffer): TParsedArgs; } diff --git a/typescript/solver/solvers/compactX/config/metadata.ts b/typescript/solver/solvers/compactX/config/metadata.ts index bf8a66e1..a7019386 100644 --- a/typescript/solver/solvers/compactX/config/metadata.ts +++ b/typescript/solver/solvers/compactX/config/metadata.ts @@ -2,9 +2,13 @@ import { type CompactXMetadata, CompactXMetadataSchema } from "../types.js"; const metadata: CompactXMetadata = { protocolName: "CompactX", - intentSources: [ - // TODO: redefine the intent source, as it's an endpoint - ], + intentSources: { + webSockets: [ + { + url: "ws://localhost:8080", + }, + ], + }, }; CompactXMetadataSchema.parse(metadata); diff --git a/typescript/solver/solvers/compactX/types.ts b/typescript/solver/solvers/compactX/types.ts index 8bdbfa23..d1600e3f 100644 --- a/typescript/solver/solvers/compactX/types.ts +++ b/typescript/solver/solvers/compactX/types.ts @@ -1,6 +1,6 @@ -import z from "zod"; +import { z } from "zod"; -import { BaseMetadataSchema } from "../types.js"; +import { BaseMetadataSchema, BaseWebSocketSourceSchema } from "../types.js"; // Custom validators and constants const isHexString = (str: string) => /^0x[0-9a-fA-F]*$/.test(str); @@ -97,6 +97,12 @@ export const BroadcastRequestSchema = z.object({ export type BroadcastRequest = z.infer; -export const CompactXMetadataSchema = BaseMetadataSchema.extend({}); +export const CompactXMetadataSchema = BaseMetadataSchema.extend({ + intentSources: z + .object({ + webSockets: z.array(BaseWebSocketSourceSchema), + }) + .strict(), +}); export type CompactXMetadata = z.infer; diff --git a/typescript/solver/solvers/eco/config/metadata.ts b/typescript/solver/solvers/eco/config/metadata.ts index 6bfc4c4d..d1406b56 100644 --- a/typescript/solver/solvers/eco/config/metadata.ts +++ b/typescript/solver/solvers/eco/config/metadata.ts @@ -2,12 +2,14 @@ import { type EcoMetadata, EcoMetadataSchema } from "../types.js"; const metadata: EcoMetadata = { protocolName: "Eco", - intentSources: [ - { - address: "0x734a3d5a8D691d9b911674E682De5f06517c79ec", - chainName: "optimismsepolia", - }, - ], + intentSources: { + blockchainEvents: [ + { + address: "0x734a3d5a8D691d9b911674E682De5f06517c79ec", + chainName: "optimismsepolia", + }, + ] + }, adapters: { basesepolia: "0x218FB5210d4eE248f046F3EC8B5Dd1c7Bc0756e5", }, diff --git a/typescript/solver/solvers/eco/listener.ts b/typescript/solver/solvers/eco/listener.ts index 1a58f200..cd93a356 100644 --- a/typescript/solver/solvers/eco/listener.ts +++ b/typescript/solver/solvers/eco/listener.ts @@ -18,7 +18,7 @@ export class EcoListener extends BaseListener< > { constructor() { const { intentSources, protocolName } = metadata; - const ecoMetadata = { contracts: intentSources, protocolName }; + const ecoMetadata = { contracts: intentSources.blockchainEvents, protocolName }; super(IntentSource__factory, "IntentCreated", ecoMetadata, log); } diff --git a/typescript/solver/solvers/eco/types.ts b/typescript/solver/solvers/eco/types.ts index 7948bf0b..09c95c08 100644 --- a/typescript/solver/solvers/eco/types.ts +++ b/typescript/solver/solvers/eco/types.ts @@ -2,9 +2,17 @@ import z from "zod"; import { chainNames } from "../../config/index.js"; import { addressSchema } from "../../config/types.js"; import type { IntentCreatedEventObject } from "../../typechain/eco/contracts/IntentSource.js"; -import { BaseMetadataSchema } from "../types.js"; +import { + BaseBlockchainEventSourceSchema, + BaseMetadataSchema, +} from "../types.js"; export const EcoMetadataSchema = BaseMetadataSchema.extend({ + intentSources: z + .object({ + blockchainEvents: z.array(BaseBlockchainEventSourceSchema), + }) + .strict(), adapters: z.record( z.string().refine((name) => chainNames.includes(name), { message: "Invalid chainName", diff --git a/typescript/solver/solvers/hyperlane7683/config/metadata.ts b/typescript/solver/solvers/hyperlane7683/config/metadata.ts index 91eecf67..1fe19dd8 100644 --- a/typescript/solver/solvers/hyperlane7683/config/metadata.ts +++ b/typescript/solver/solvers/hyperlane7683/config/metadata.ts @@ -7,66 +7,68 @@ import { const metadata: Hyperlane7683Metadata = { protocolName: "Hyperlane7683", - intentSources: [ - // mainnet - // { - // address: "0x5F69f9aeEB44e713fBFBeb136d712b22ce49eb88", - // chainName: "ethereum", - // }, - // { - // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", - // chainName: "optimism", - // }, - // { - // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", - // chainName: "arbitrum", - // }, - // { - // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", - // chainName: "base", - // }, - // { - // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", - // chainName: "gnosis", - // }, - // { - // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", - // chainName: "berachain", - // }, - // { - // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", - // chainName: "form", - // }, - // { - // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", - // chainName: "unichain", - // }, - // { - // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", - // chainName: "artela", - // }, + intentSources: { + blockchainEvents: [ + // mainnet + // { + // address: "0x5F69f9aeEB44e713fBFBeb136d712b22ce49eb88", + // chainName: "ethereum", + // }, + // { + // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", + // chainName: "optimism", + // }, + // { + // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", + // chainName: "arbitrum", + // }, + // { + // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", + // chainName: "base", + // }, + // { + // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", + // chainName: "gnosis", + // }, + // { + // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", + // chainName: "berachain", + // }, + // { + // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", + // chainName: "form", + // }, + // { + // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", + // chainName: "unichain", + // }, + // { + // address: "0x9245A985d2055CeA7576B293Da8649bb6C5af9D0", + // chainName: "artela", + // }, - // testnet - { - address: "0xf614c6bF94b022E16BEF7dBecF7614FFD2b201d3", - chainName: "optimismsepolia", - }, - { - address: "0xf614c6bF94b022E16BEF7dBecF7614FFD2b201d3", - chainName: "arbitrumsepolia", - }, - { - address: "0xf614c6bF94b022E16BEF7dBecF7614FFD2b201d3", - chainName: "sepolia", - }, - { - address: "0xf614c6bF94b022E16BEF7dBecF7614FFD2b201d3", - chainName: "basesepolia", - initialBlock: 21491220, - pollInterval: 1000, - confirmationBlocks: 2, - }, - ], + // testnet + { + address: "0xf614c6bF94b022E16BEF7dBecF7614FFD2b201d3", + chainName: "optimismsepolia", + }, + { + address: "0xf614c6bF94b022E16BEF7dBecF7614FFD2b201d3", + chainName: "arbitrumsepolia", + }, + { + address: "0xf614c6bF94b022E16BEF7dBecF7614FFD2b201d3", + chainName: "sepolia", + }, + { + address: "0xf614c6bF94b022E16BEF7dBecF7614FFD2b201d3", + chainName: "basesepolia", + initialBlock: 21491220, + pollInterval: 1000, + confirmationBlocks: 2, + }, + ] + }, customRules: { rules: [ { diff --git a/typescript/solver/solvers/hyperlane7683/listener.ts b/typescript/solver/solvers/hyperlane7683/listener.ts index 8f88df35..dec288f3 100644 --- a/typescript/solver/solvers/hyperlane7683/listener.ts +++ b/typescript/solver/solvers/hyperlane7683/listener.ts @@ -7,9 +7,9 @@ import type { } from "../../typechain/hyperlane7683/contracts/Hyperlane7683.js"; import { BaseListener } from "../BaseListener.js"; import { metadata } from "./config/index.js"; -import type { OpenEventArgs, Hyperlane7683Metadata } from "./types.js"; -import { log } from "./utils.js"; import { getLastIndexedBlocks } from "./db.js"; +import type { Hyperlane7683Metadata, OpenEventArgs } from "./types.js"; +import { log } from "./utils.js"; export class Hyperlane7683Listener extends BaseListener< Hyperlane7683, @@ -18,7 +18,7 @@ export class Hyperlane7683Listener extends BaseListener< > { constructor(metadata: Hyperlane7683Metadata) { const { intentSources, protocolName } = metadata; - const hyperlane7683Metadata = { contracts: intentSources, protocolName }; + const hyperlane7683Metadata = { contracts: intentSources.blockchainEvents, protocolName }; super(Hyperlane7683__factory, "Open", hyperlane7683Metadata, log); } @@ -43,7 +43,7 @@ export const create = async () => { const { intentSources } = metadata; const blocksByChain = await getLastIndexedBlocks(); - metadata.intentSources = intentSources.map((intentSource) => { + metadata.intentSources.blockchainEvents = intentSources.blockchainEvents.map((intentSource) => { const chainBlockNumber = blocksByChain[intentSource.chainName]?.blockNumber; diff --git a/typescript/solver/solvers/hyperlane7683/types.ts b/typescript/solver/solvers/hyperlane7683/types.ts index 3cde2e8b..5909df8c 100644 --- a/typescript/solver/solvers/hyperlane7683/types.ts +++ b/typescript/solver/solvers/hyperlane7683/types.ts @@ -2,7 +2,10 @@ import type { BigNumber } from "ethers"; import z from "zod"; import type { OpenEventObject } from "../../typechain/hyperlane7683/contracts/Hyperlane7683.js"; -import { BaseMetadataSchema } from "../types.js"; +import { + BaseBlockchainEventSourceSchema, + BaseMetadataSchema, +} from "../types.js"; export type ExtractStruct = T extends (infer U & K)[] ? U[] @@ -41,6 +44,12 @@ export type IntentData = { maxSpent: ResolvedCrossChainOrder["maxSpent"]; }; -export const Hyperlane7683MetadataSchema = BaseMetadataSchema.extend({}); +export const Hyperlane7683MetadataSchema = BaseMetadataSchema.extend({ + intentSources: z + .object({ + blockchainEvents: z.array(BaseBlockchainEventSourceSchema), + }) + .strict(), +}); export type Hyperlane7683Metadata = z.infer; diff --git a/typescript/solver/solvers/types.ts b/typescript/solver/solvers/types.ts index e4bf3821..2b8503c4 100644 --- a/typescript/solver/solvers/types.ts +++ b/typescript/solver/solvers/types.ts @@ -9,20 +9,121 @@ export const addressSchema = z message: "Invalid address", }); +const WSClientOptionsSchema = z.object({ + ALPNCallback: z.function().optional(), + allowPartialTrustChain: z.boolean().optional(), + ca: z + .union([ + z.string(), + z.instanceof(Buffer), + z.array(z.union([z.string(), z.instanceof(Buffer)])), + ]) + .optional(), + cert: z + .union([ + z.string(), + z.instanceof(Buffer), + z.array(z.union([z.string(), z.instanceof(Buffer)])), + ]) + .optional(), + sigalgs: z.string().optional(), + ciphers: z.string().optional(), + clientCertEngine: z.string().optional(), + crl: z + .union([ + z.string(), + z.instanceof(Buffer), + z.array(z.union([z.string(), z.instanceof(Buffer)])), + ]) + .optional(), + dhparam: z.union([z.string(), z.instanceof(Buffer)]).optional(), + ecdhCurve: z.string().optional(), + honorCipherOrder: z.boolean().optional(), + key: z + .union([ + z.string(), + z.instanceof(Buffer), + z.array(z.union([z.string(), z.instanceof(Buffer)])), + ]) + .optional(), + privateKeyEngine: z.string().optional(), + privateKeyIdentifier: z.string().optional(), + maxVersion: z.enum(["TLSv1.3", "TLSv1.2", "TLSv1.1", "TLSv1"]).optional(), + minVersion: z.enum(["TLSv1.3", "TLSv1.2", "TLSv1.1", "TLSv1"]).optional(), + passphrase: z.string().optional(), + pfx: z + .union([ + z.string(), + z.instanceof(Buffer), + z.array(z.union([z.string(), z.instanceof(Buffer)])), + ]) + .optional(), + secureOptions: z.number().optional(), + secureProtocol: z.string().optional(), + sessionIdContext: z.string().optional(), + ticketKeys: z.instanceof(Buffer).optional(), + sessionTimeout: z.number().optional(), + protocol: z.string().optional(), + followRedirects: z.boolean().optional(), + generateMask: z.function().optional(), + handshakeTimeout: z.number().optional(), + maxRedirects: z.number().optional(), + perMessageDeflate: z + .union([z.boolean(), z.object({}).passthrough()]) + .optional(), + localAddress: z.string().optional(), + protocolVersion: z.number().optional(), + headers: z.record(z.string()).optional(), + origin: z.string().optional(), + agent: z.any().optional(), + host: z.string().optional(), + family: z.number().optional(), + checkServerIdentity: z.function().optional(), + rejectUnauthorized: z.boolean().optional(), + allowSynchronousEvents: z.boolean().optional(), + autoPong: z.boolean().optional(), + maxPayload: z.number().optional(), + skipUTF8Validation: z.boolean().optional(), + createConnection: z.function().optional(), + finishRequest: z.function().optional(), +}); + +export type WSClientOptions = z.infer; + +export const BaseWebSocketSourceSchema = z.object({ + url: z.string().url({ message: "Invalid WebSocket URL" }), + clientOptions: WSClientOptionsSchema.optional(), + options: z + .object({ + maxReconnectAttempts: z.number().optional(), + reconnectDelay: z.number().optional(), + }) + .optional(), +}); + +export type BaseWebSocketSource = z.infer; + +export const BaseBlockchainEventSourceSchema = z.object({ + address: addressSchema, + chainName: z.string().refine((name) => chainNames.includes(name), { + message: "Invalid chainName", + }), + pollInterval: z.number().optional(), + confirmationBlocks: z.number().optional(), + initialBlock: z.number().optional(), + processedIds: z.array(z.string()).optional(), +}); + +export type BaseBlockchainEventSource = z.infer< + typeof BaseBlockchainEventSourceSchema +>; + export const BaseMetadataSchema = z.object({ protocolName: z.string(), - intentSources: z.array( - z.object({ - address: addressSchema, - chainName: z.string().refine((name) => chainNames.includes(name), { - message: "Invalid chainName", - }), - pollInterval: z.number().optional(), - confirmationBlocks: z.number().optional(), - initialBlock: z.number().optional(), - processedIds: z.array(z.string()).optional(), - }), - ), + intentSources: z.object({ + blockchainEvents: z.array(BaseBlockchainEventSourceSchema).optional(), + webSockets: z.array(BaseWebSocketSourceSchema).optional(), + }), customRules: z .object({ rules: z.array( From 3b6e36961149a48fbde527a8d3f823f5c7899b63 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Wed, 12 Mar 2025 16:09:48 +0100 Subject: [PATCH 06/41] chore: prettier --- typescript/solver/NonceKeeperWallet.ts | 85 +- .../compactX/contracts/TheCompact.json | 17515 +++++++++++++++- .../solver/solvers/compactX/rules/index.ts | 2 +- .../solver/solvers/eco/config/metadata.ts | 2 +- typescript/solver/solvers/eco/listener.ts | 5 +- .../solvers/hyperlane7683/config/metadata.ts | 2 +- .../solver/solvers/hyperlane7683/listener.ts | 37 +- .../rules/filterByTokenAndAmount.ts | 9 +- 8 files changed, 17609 insertions(+), 48 deletions(-) diff --git a/typescript/solver/NonceKeeperWallet.ts b/typescript/solver/NonceKeeperWallet.ts index 94313a25..58ce84ac 100644 --- a/typescript/solver/NonceKeeperWallet.ts +++ b/typescript/solver/NonceKeeperWallet.ts @@ -36,7 +36,7 @@ export class NonceKeeperWallet extends Wallet { // this check is necessary in order to not generate new nonces when a tx is going to fail await super.estimateGas(transaction); } catch (error) { - checkError(error, {transaction}); + checkError(error, { transaction }); } if (transaction.nonce == null) { @@ -67,47 +67,84 @@ function checkError(error: any, params: any): any { const transaction = params.transaction || params.signedTransaction; let message = error.message; - if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof(error.error.message) === "string") { - message = error.error.message; - } else if (typeof(error.body) === "string") { - message = error.body; - } else if (typeof(error.responseText) === "string") { - message = error.responseText; + if ( + error.code === Logger.errors.SERVER_ERROR && + error.error && + typeof error.error.message === "string" + ) { + message = error.error.message; + } else if (typeof error.body === "string") { + message = error.body; + } else if (typeof error.responseText === "string") { + message = error.responseText; } message = (message || "").toLowerCase(); // "insufficient funds for gas * price + value + cost(data)" if (message.match(/insufficient funds|base fee exceeds gas limit/i)) { - ethersLogger.throwError("insufficient funds for intrinsic transaction cost", Logger.errors.INSUFFICIENT_FUNDS, { - error, transaction - }); + ethersLogger.throwError( + "insufficient funds for intrinsic transaction cost", + Logger.errors.INSUFFICIENT_FUNDS, + { + error, + transaction, + }, + ); } // "nonce too low" if (message.match(/nonce (is )?too low/i)) { - ethersLogger.throwError("nonce has already been used", Logger.errors.NONCE_EXPIRED, { - error, transaction - }); + ethersLogger.throwError( + "nonce has already been used", + Logger.errors.NONCE_EXPIRED, + { + error, + transaction, + }, + ); } // "replacement transaction underpriced" - if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) { - ethersLogger.throwError("replacement fee too low", Logger.errors.REPLACEMENT_UNDERPRICED, { - error, transaction - }); + if ( + message.match( + /replacement transaction underpriced|transaction gas price.*too low/i, + ) + ) { + ethersLogger.throwError( + "replacement fee too low", + Logger.errors.REPLACEMENT_UNDERPRICED, + { + error, + transaction, + }, + ); } // "replacement transaction underpriced" if (message.match(/only replay-protected/i)) { - ethersLogger.throwError("legacy pre-eip-155 transactions not supported", Logger.errors.UNSUPPORTED_OPERATION, { - error, transaction - }); + ethersLogger.throwError( + "legacy pre-eip-155 transactions not supported", + Logger.errors.UNSUPPORTED_OPERATION, + { + error, + transaction, + }, + ); } - if (message.match(/gas required exceeds allowance|always failing transaction|execution reverted/)) { - ethersLogger.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", Logger.errors.UNPREDICTABLE_GAS_LIMIT, { - error, transaction - }); + if ( + message.match( + /gas required exceeds allowance|always failing transaction|execution reverted/, + ) + ) { + ethersLogger.throwError( + "cannot estimate gas; transaction may fail or may require manual gas limit", + Logger.errors.UNPREDICTABLE_GAS_LIMIT, + { + error, + transaction, + }, + ); } throw error; diff --git a/typescript/solver/solvers/compactX/contracts/TheCompact.json b/typescript/solver/solvers/compactX/contracts/TheCompact.json index a34316f4..c04249ba 100644 --- a/typescript/solver/solvers/compactX/contracts/TheCompact.json +++ b/typescript/solver/solvers/compactX/contracts/TheCompact.json @@ -1 +1,17514 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"__activateTstore","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"__registerAllocator","inputs":[{"name":"allocator","type":"address","internalType":"address"},{"name":"proof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint96","internalType":"uint96"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedTransfer","inputs":[{"name":"transfer","type":"tuple","internalType":"struct BatchTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"transfers","type":"tuple[]","internalType":"struct TransferComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"recipient","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedTransfer","inputs":[{"name":"transfer","type":"tuple","internalType":"struct SplitBatchTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"transfers","type":"tuple[]","internalType":"struct SplitByIdComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedTransfer","inputs":[{"name":"transfer","type":"tuple","internalType":"struct SplitTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"recipients","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedTransfer","inputs":[{"name":"transfer","type":"tuple","internalType":"struct BasicTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedWithdrawal","inputs":[{"name":"withdrawal","type":"tuple","internalType":"struct BasicTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedWithdrawal","inputs":[{"name":"withdrawal","type":"tuple","internalType":"struct SplitBatchTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"transfers","type":"tuple[]","internalType":"struct SplitByIdComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedWithdrawal","inputs":[{"name":"withdrawal","type":"tuple","internalType":"struct BatchTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"transfers","type":"tuple[]","internalType":"struct TransferComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"recipient","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocatedWithdrawal","inputs":[{"name":"withdrawal","type":"tuple","internalType":"struct SplitTransfer","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"recipients","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BasicClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct MultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct MultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct MultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct MultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitBatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BasicClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct BatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousSplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedMultichainClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct SplitBatchClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"claims","type":"tuple[]","internalType":"struct SplitBatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"portions","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedBatchClaim","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct QualifiedSplitClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"claimants","type":"tuple[]","internalType":"struct SplitComponent[]","components":[{"name":"claimant","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimAndWithdraw","inputs":[{"name":"claimPayload","type":"tuple","internalType":"struct ExogenousQualifiedBatchMultichainClaimWithWitness","components":[{"name":"allocatorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsorSignature","type":"bytes","internalType":"bytes"},{"name":"sponsor","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expires","type":"uint256","internalType":"uint256"},{"name":"witness","type":"bytes32","internalType":"bytes32"},{"name":"witnessTypestring","type":"string","internalType":"string"},{"name":"qualificationTypehash","type":"bytes32","internalType":"bytes32"},{"name":"qualificationPayload","type":"bytes","internalType":"bytes"},{"name":"additionalChains","type":"bytes32[]","internalType":"bytes32[]"},{"name":"chainIndex","type":"uint256","internalType":"uint256"},{"name":"notarizedChainId","type":"uint256","internalType":"uint256"},{"name":"claims","type":"tuple[]","internalType":"struct BatchClaimComponent[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"claimant","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"consume","inputs":[{"name":"nonces","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint8","internalType":"enum ResetPeriod"},{"name":"","type":"uint8","internalType":"enum Scope"},{"name":"recipient","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"deposit","inputs":[{"name":"allocator","type":"address","internalType":"address"},{"name":"resetPeriod","type":"uint8","internalType":"enum ResetPeriod"},{"name":"scope","type":"uint8","internalType":"enum Scope"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"deposit","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"allocator","type":"address","internalType":"address"},{"name":"resetPeriod","type":"uint8","internalType":"enum ResetPeriod"},{"name":"scope","type":"uint8","internalType":"enum Scope"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"deposit","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"allocator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"deposit","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"permitted","type":"tuple[]","internalType":"struct ISignatureTransfer.TokenPermissions[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint8","internalType":"enum ResetPeriod"},{"name":"","type":"uint8","internalType":"enum Scope"},{"name":"recipient","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"function","name":"deposit","inputs":[{"name":"idsAndAmounts","type":"uint256[2][]","internalType":"uint256[2][]"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"deposit","inputs":[{"name":"allocator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"depositAndRegister","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"depositor","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"resetPeriod","type":"uint8","internalType":"enum ResetPeriod"},{"name":"","type":"uint8","internalType":"enum Scope"},{"name":"claimHash","type":"bytes32","internalType":"bytes32"},{"name":"compactCategory","type":"uint8","internalType":"enum CompactCategory"},{"name":"witness","type":"string","internalType":"string"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositAndRegister","inputs":[{"name":"idsAndAmounts","type":"uint256[2][]","internalType":"uint256[2][]"},{"name":"claimHashesAndTypehashes","type":"bytes32[2][]","internalType":"bytes32[2][]"},{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"depositAndRegister","inputs":[{"name":"allocator","type":"address","internalType":"address"},{"name":"claimHash","type":"bytes32","internalType":"bytes32"},{"name":"typehash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"depositAndRegister","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"permitted","type":"tuple[]","internalType":"struct ISignatureTransfer.TokenPermissions[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"},{"name":"resetPeriod","type":"uint8","internalType":"enum ResetPeriod"},{"name":"","type":"uint8","internalType":"enum Scope"},{"name":"claimHash","type":"bytes32","internalType":"bytes32"},{"name":"compactCategory","type":"uint8","internalType":"enum CompactCategory"},{"name":"witness","type":"string","internalType":"string"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"function","name":"depositAndRegister","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"allocator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"claimHash","type":"bytes32","internalType":"bytes32"},{"name":"typehash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"disableForcedWithdrawal","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"enableForcedWithdrawal","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"extsload","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"extsload","inputs":[{"name":"slots","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"exttload","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"forcedWithdrawal","inputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getForcedWithdrawalStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ForcedWithdrawalStatus"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLockDetails","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint8","internalType":"enum ResetPeriod"},{"name":"","type":"uint8","internalType":"enum Scope"}],"stateMutability":"view"},{"type":"function","name":"getRegistrationStatus","inputs":[{"name":"sponsor","type":"address","internalType":"address"},{"name":"claimHash","type":"bytes32","internalType":"bytes32"},{"name":"typehash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"isActive","type":"bool","internalType":"bool"},{"name":"expires","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"hasConsumedAllocatorNonce","inputs":[{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"allocator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOperator","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"status","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"register","inputs":[{"name":"claimHashesAndTypehashes","type":"bytes32[2][]","internalType":"bytes32[2][]"},{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"register","inputs":[{"name":"claimHash","type":"bytes32","internalType":"bytes32"},{"name":"typehash","type":"bytes32","internalType":"bytes32"},{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"setOperator","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"event","name":"AllocatorRegistered","inputs":[{"name":"allocatorId","type":"uint96","indexed":false,"internalType":"uint96"},{"name":"allocator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Claim","inputs":[{"name":"sponsor","type":"address","indexed":true,"internalType":"address"},{"name":"allocator","type":"address","indexed":true,"internalType":"address"},{"name":"arbiter","type":"address","indexed":true,"internalType":"address"},{"name":"claimHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CompactRegistered","inputs":[{"name":"sponsor","type":"address","indexed":true,"internalType":"address"},{"name":"claimHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"typehash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"expires","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ForcedWithdrawalStatusUpdated","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"activating","type":"bool","indexed":false,"internalType":"bool"},{"name":"withdrawableAt","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorSet","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"by","type":"address","indexed":false,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AllocatedAmountExceeded","inputs":[{"name":"allocatedAmount","type":"uint256","internalType":"uint256"},{"name":"providedAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BalanceOverflow","inputs":[]},{"type":"error","name":"Expired","inputs":[{"name":"expiration","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ForcedWithdrawalAlreadyDisabled","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InsufficientPermission","inputs":[]},{"type":"error","name":"InvalidBatchAllocation","inputs":[]},{"type":"error","name":"InvalidBatchDepositStructure","inputs":[]},{"type":"error","name":"InvalidDepositBalanceChange","inputs":[]},{"type":"error","name":"InvalidDepositTokenOrdering","inputs":[]},{"type":"error","name":"InvalidRegistrationDuration","inputs":[{"name":"duration","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidRegistrationProof","inputs":[{"name":"allocator","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidScope","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidToken","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyDirectCalls","inputs":[]},{"type":"error","name":"Permit2CallFailed","inputs":[]},{"type":"error","name":"PrematureWithdrawal","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ReentrantCall","inputs":[{"name":"existingCaller","type":"address","internalType":"address"}]},{"type":"error","name":"TStoreAlreadyActivated","inputs":[]},{"type":"error","name":"TStoreNotSupported","inputs":[]},{"type":"error","name":"TloadTestContractDeploymentFailed","inputs":[]},{"type":"error","name":"UnallocatedTransfer","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101a060405234610085576100126100a8565b604051615ff19081610248823960805181611cda015260a05181611caa015260c05181613a4c015260e051816139d301526101005181613bac015261012051816137eb015261014051816137ca0152610160518181816115170152818161252e015261315001526101805181614eb10152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040513d5f823e3d90fd5b696002601e613d5c3d52f35f52600a60165ff06001600160a01b03811615610238575f80808084600a5a04fa3d15610233573d6001600160401b0381116102195760405190601f8101601f19908116603f011682016001600160401b038111838210176102195760405281525f60203d92013e5b801561021e57600160c052600360e0526005610100525b60a05260805246610120526101c74660a090604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208301527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d604083015260608201523060808201522090565b61014052604051613e2a8082016001600160401b03811183821017610219578291616239833903905ff0801561021457610160526e22d473030f116ddee9f6b43ac78ba33b151561018052565b61009d565b610089565b600260c052600460e052600661010052610133565b61011c565b632aea588760e01b5f5260045ffdfe6080806040526004361015610012575f80fd5b5f3560e01c908162ad800c1461312757508062fdd58e146130eb57806301ffc9a7146130a757806303417d721461309057806306659b7f1461307b57806306e8cc181461306657806306fdde031461303c57806308e600ee14613027578063095bcdb614612f4e5780630a133cf214612f395780630d57fec914612f245780630f5eeadf14612f0f578063107d4ee414612ec857806310d8267214612dff57806312a1e6ea14612dea57806312d4888514612d7a57806312f9d21e14612d6557806313589bfe14612d50578063138cd81914612d2a578063144bd5b514612cc85780631486590714612cb3578063176f405a14612c525780631b98b63f14612c3d5780631bb81a8114612c285780631d474b1414612c135780631e2eaeaf14612bf7578063200f0c4d14612b8f578063206620a114612b3f57806325d7776b14612b155780632737edb914612afe57806327c777a914612a815780632a9c4d0d146129515780632acd5dc31461293c5780632c4bbd17146129255780632e3ff2f7146128c15780632e4d55cc146128ac57806331bbae3e1461286e57806332e2a80314612859578063341056c5146128445780633644e5151461282a578063393c33e21461272f5780633f458a19146127185780633f47e662146126fc5780634073c0cc146126d9578063409b3a7e146126c4578063414fd914146126af578063418a23f51461269a578063426a849314612636578063440a0ec3146125ed57806344b97d78146125ba5780634ad5205e146125a35780634c1024161461258c5780634d585fbf146125755780634e41a1fb146125015780634e55a548146124ea578063507cb46f1461249057806353e5006714612350578063548439e114612339578063558a7297146122c4578063577cdc64146122ad5780635920212814612296578063598af9e7146122605780635ac2ccf1146122495780635b15bfd9146121dd5780635b6016ec146121765780635d76a382146121615780635e6c91ff1461214c57806362a420bb1461211557806363f5b1ad146120d8578063648705561461209a578063671b3bd61461202a5780636a9a4c4414611f895780636af2791b14611f745780637003019014611f125780637112406d14611dc857806371f5012714611db1578063721f629214611d765780637423eb3c14611c9157806376d531d414611c7c5780638340f54914611c41578063843719f014611bf15780638678555914611bdc57806388d247c414611bc557806388da84d414611bae57806389ce066114611b59578063935ed2ba14611b1e5780639730f4fd14611b07578063996d3aac14611adc57806399cf8b9b146119e85780639be5f537146119d1578063a23941471461191c578063a4c7bd93146118e2578063aa41c87e14611895578063aa8b845d14611863578063b20abc481461184e578063b24849b714611824578063b3244389146117ee578063b4039fc2146117c1578063b54baefd1461178c578063b602ae021461174a578063b6363cf214611705578063b7ace047146116c0578063b8a5bbad14611682578063bc95bd7a14611637578063c4d195e8146115f0578063c8091041146115b4578063c87b56dd14611432578063ca6cc39f146113e5578063d204f11e1461139a578063d2a1805f14611379578063d34ddc8214611362578063d350188c1461134d578063d3917f3c146112ff578063d921f36a146112b8578063da15ee7f1461112f578063da2f268b146110e6578063db04bc72146110d1578063dbd035ff14611059578063dd589cfc14610fdc578063e0565c4914610f8e578063e05c6e7d14610f41578063e6c5b65414610ee6578063e8672f9314610ed1578063ea14532e14610e6a578063eaa6748314610e33578063eb19600814610df9578063eb35a6d214610d89578063eb43182114610d4d578063ebcbd7b514610cf6578063ecaca40e14610c8d578063eea77a7814610c18578063eed634ad14610c03578063eed9357214610bb8578063f135baaa14610b9c578063f23d923d14610b2e578063f2f0def114610ae9578063f340fa0114610ab8578063f44a345214610a5a578063f745381c14610a24578063f95d3d16146109ea578063fa1c55001461098a578063fb75fb6914610924578063fcfe431a146108c1578063fdc060e7146107d75763fe99049a14610655575f80fd5b60803660031901126107d3576106696131bd565b6106716131ff565b6044359160643561068d60016001605c1b038560a01c16614862565b9260018060a01b0383169260018060a01b038216945f60208160a460405194828052601c8601948591631a808f91885233868901528b60408901528c60608901528d60808901528a60a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a82293940603452602852336014526034602020541561077f575b84601452604060142080548084116107725783900390556028528360145260406014208054908282019182106107655755335f526020525f516020615f655f395f51905f5260405fa45f603452602060405160018152f35b6389560ca15f526004601cfd5b63f4d678b85f526004601cfd5b845f5260545f20805460018101610798575b505061070d565b8084116107ab5783900390555f80610791565b63deda90305f526004601cfd5b3d1517156107cb5763014c931060a49252fd5b3d5f803e3d5ffd5b5f80fd5b346107d3576107e536613408565b608081015f806107f5838561377f565b905f915b80831061089c5750505061088a576108796035928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b809335613fcf565b614012565b61377f565b9061527d565b602060405160018152f35b634e487b715f5260116020526024601cfd5b90919260019060206108af8685876138cd565b013580960195861017930191906107f9565b346107d357602061091a601760356108d8366133d4565b6101806108f96108f36108ed83850185613c23565b90614bee565b83615c0a565b9290919361090b610160820135613c58565b926109146137c8565b95614d26565b6040519015158152f35b346107d357602061091a603461093936613249565b61095b61095361094d610100840184613898565b90614e53565b826030615651565b9061010061096b3615848461532d565b916109796001361517613cdd565b926109826137c8565b946021615e45565b346107d357602061091a603461099f3661327d565b6109bb6109b36108ed610100840184613c23565b826031615651565b906109c960e0820135613c58565b6101006109d96002361517613cdd565b926109e26137c8565b946026615e45565b346107d357602061091a60356109ff36613215565b610120610a10604036151783615bc9565b92919390610a1c6137c8565b946024615e45565b346107d357602061091a60176034610a3b3661333c565b610a4481615571565b90610100610a506137c8565b93361592806152df565b346107d357602061091a6035610a6f36613249565b610a8a610a826108ed60e0840184613c23565b82602b615651565b9060e0610a993615848461532d565b91610aa76001361517613cdd565b92610ab06137c8565b94601f615e45565b60203660031901126107d3576020610ad6610ad16131bd565b614320565b610ae134823361437c565b604051908152f35b346107d357602061091a60176035610b00366133a0565b610b19610b1361094d60e0840184613898565b82615834565b9060e0610b246137c8565b93361592806151a7565b346107d357602061091a6035610b4336613215565b3615610100610b73610b6b60408417859060e0910160c08101355f52013560205260405f2090565b846030615651565b92610b8b6002610b8485878561532d565b9417613cdd565b92610b946137c8565b946023615e45565b346107d35760203660031901126107d3576004355c5f5260205ff35b346107d357602061091a6035610bcd36613215565b610be7610be16108ed610140840184613c23565b82615b8a565b9091610140610bfa610120830135613c58565b916109e26137c8565b346107d357602061091a6034610bcd36613215565b346107d357602061091a6035610c2d366133d4565b361590610c5b610c5360808417839060e0910160c08101355f52013560205260405f2090565b826032615651565b91610140610c6a82858561532d565b92610c7e6002610b84610120840135613c58565b93610c876137c8565b95614239565b346107d35760a03660031901126107d3576020610ca86131bd565b610cd9610cc4610cb66131ff565b610cbf846148dc565b6142e2565b91610ccd6139d1565b8260443591339061487c565b610ce1613baa565b610ae1610258361517608435606435336141b4565b346107d357602061091a6034610d0b366134d1565b610180610d326108f360c0361517849060e0910160c08101355f52013560205260405f2090565b92909193610d44610160820135613c58565b92610c876137c8565b346107d357602061091a6034610d623661327d565b610120610d7d610d7761094d83850185613898565b83615baa565b929193906109826137c8565b346107d35760203660031901126107d3576020600435610ae162ffffff77278d00094890015180000f3c00025800003c00000f000001601860078560fc1c16021c1642018281610df38195339190604051926014526341d0e04b5f526034526038601c2091604052565b556148f6565b346107d357602061091a6035610e0e3661333c565b610100610e1a826155cc565b919092610e2a6002361517613cdd565b92610a1c6137c8565b346107d357602061091a6034610e48366133a0565b610e5b610a8261094d60e0840184613898565b9060e061096b3615848461532d565b346107d357602061091a60176034610e813661333c565b610e95610c5361094d610140840184613898565b90610ea23615838361532d565b90610140610eb4610120830135613c58565b91610ec26002361517613cdd565b93610ecb6137c8565b956151a7565b346107d357602061091a60346109ff36613215565b346107d357602061091a6034610efb3661327d565b610f20610f188260e09060c08101355f52013560205260405f2090565b82602f615651565b90361560c0610f3160028317613cdd565b92610f3a6137c8565b9480614239565b346107d357602061091a6035610f563661333c565b610f5f81615250565b90610f6d60e0820135613c58565b610100610f7d6002361517613cdd565b92610f866137c8565b946025615e45565b346107d357602061091a6034610fa336613215565b6101003615610fd1610fcb60408317859060e0910160c08101355f52013560205260405f2090565b84615b66565b929093610f3a6137c8565b346107d357602061091a610fef3661343b565b6040515f516020615fa55f395f51905f528152338482015233604082015261103f8260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b608061104d60a084016137b4565b92013591336034615c31565b346107d35760203660031901126107d3576004356001600160401b0381116107d357611089903690600401613370565b6040519160408360208152836020820152019160051b8301916020806040850193925b83355481520191019084838210156110c85750602080916110ac565b60408186030190f35b346107d357602061091a6034610a6f36613249565b346107d35760403660031901126107d35760206004356111046131ff565b906040519183526303f37b1a600c52806040526001603760282054918360405260ff161b1615158152f35b6101603660031901126107d3576111446131bd565b6024356001600160401b0381116107d35761116390369060040161346e565b61116e9291926131d3565b5060a4359060088210156107d357600260c43510156107d35760e43591610104359460038610156107d357610124356001600160401b0381116107d3576111b990369060040161330f565b9661014435906001600160401b0382116107d357869588926111df90369060040161330f565b6111ed8584899e949e614984565b96819f939183839b949b0160051b90602001209561120b8b84614a8c565b83839992993615976001891792611221946143c6565b9f9091604051925f5260205260405260605f206080890152604052601f19916002811460061b90600114600b020190801515010160f301169060071b01610180019060c01761126f94613e72565b611279948a614b38565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff16916112a6936141b4565b6040516112b48192826135c0565b0390f35b346107d357602061091a601760356112cf366132db565b6101806112e46108f361094d83850185613898565b929091936112f6610160820135613c58565b92610ecb6137c8565b346107d357602061091a6035611314366133d4565b61014061134161133b6080361517849060e0910160c08101355f52013560205260405f2090565b83615bd9565b92919390610b946137c8565b346107d357602061091a6034610e0e3661333c565b346107d357602061091a60176034610b00366133a0565b346107d357602061091a603561138e366132db565b610140610a10826155f4565b346107d357602061091a601760346113b13661343b565b6113c4610a8261094d60a0840184613898565b90361560a06113d560018317613cdd565b926113de6137c8565b94806151a7565b346107d357602061091a60356113fa36613215565b61140381615250565b9061141160e0820135613c58565b6101006114216002361517613cdd565b9261142a6137c8565b946022615e45565b346107d35760203660031901126107d357604051600435608082016001600160401b038111838210176115a05760409081525f60208401818152918401818152606085019182526001600160a01b03848116865261149c60a086901c60016001605c1b0316614862565b16835260078460fc1c16600881101561158c5781528360ff1c90600282101561158c5790825260405163d637ca8d60e01b815294516001600160a01b03908116600487015292519092166024850152905161150b91906115009060448601906135a6565b5160648401906135b3565b60848201525f8160a4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575b5060405191829182613193565b61157b91503d805f833e61157381836135f9565b810190613635565b82611552565b6040513d5f823e3d90fd5b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b60403660031901126107d3576004356001600160401b0381116107d3576115e261087f91369060040161346e565b6115ea6131ff565b916138dd565b346107d357602061091a601760356116073661327d565b61162161161b6108ed610100840184613c23565b82615b66565b9061010061162d6137c8565b9336159280614d26565b346107d357602061091a6017603561164e366133a0565b611661610f186108ed60c0840184613c23565b90361560c061167260028317613cdd565b9261167b6137c8565b9480614d26565b346107d357602061091a60176034611699366133a0565b6116a281615516565b90361560a06116b082613cdd565b926116b96137c8565b94806152df565b346107d357602061091a601760346116d736613249565b6116f4610f188260e09060c08101355f52013560205260405f2090565b90361560c06116b060028317613cdd565b346107d35760403660031901126107d35761171e6131bd565b6117266131ff565b9067edcaa89a822939406020526014525f5260206034600c20546040519015158152f35b346107d357602061091a603561175f36613249565b361561176d81836028615651565b9061177781613cdd565b916117806137c8565b9360a083179180614239565b346107d357602061091a601760346117a336613249565b6117b6610b136108ed60e0840184613c23565b9060e061162d6137c8565b346107d357602061091a60346117d63661327d565b60e06117e182615524565b919092610e2a3615613cdd565b346107d357602061091a603461180336613215565b61014061181861133b6108ed83850185613c23565b92919390610ab06137c8565b346107d357602061091a60346118393661333c565b610120611818610d776108ed83850185613c23565b346107d357602061091a60356118393661333c565b602061187c610ae1611874366132b1565b939091614320565b9261188834853361437c565b61025836151791336141b4565b346107d357602061091a60346118aa3661333c565b6118be610be161094d610140840184613898565b90916101406118d1610120830135613c58565b916118da6137c8565b946027615e45565b346107d357602061091a60346118f7366132db565b61190081615542565b9091610140611913610120830135613c58565b91610f866137c8565b346107d35761192a36613408565b608081015f8061193a838561377f565b905f915b8083106119ac5750505061088a576108796034928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b90919260019060206119bf8685876138cd565b0135809601958610179301919061193e565b346107d357602061091a6017603461164e366133a0565b6101203660031901126107d3576119fd6131bd565b506024356001600160401b0381116107d357611a1d90369060040161346e565b611a256131d3565b50600860a43510156107d357600260c43510156107d35760e435916001600160a01b03831683036107d35761010435906001600160401b0382116107d3576112b493611aca611a7b611ad094369060040161330f565b959093611a89848383614984565b9592611ab660c09b9399929b361592611aa460848517613d1e565b611aae8d83614a8c565b949094613db8565b608084015260071b61022001921790613e72565b86614b38565b604051918291826135c0565b346107d357602061091a60176034611af33661327d565b611afc81615774565b9060e0610a506137c8565b346107d357602061091a601760346116073661327d565b346107d357602061091a60176034611b3536613539565b611b48610f1861094d60c0840184613898565b90361560c06113d560028317613cdd565b346107d357602061091a6035611b6e366133d4565b611b92610be16080361517839060e0910160c08101355f52013560205260405f2090565b9091610140611ba5610120830135613c58565b9161142a6137c8565b346107d357602061091a60176035610e813661333c565b346107d357602061091a60176035611b3536613539565b346107d357602061091a603461175f36613249565b346107d357602061091a60176035611c08366132db565b611c118161559c565b9091610140611c24610120830135613c58565b91611c326002361517613cdd565b93611c3b6137c8565b956152df565b346107d3576020611c63611c74611c573661356c565b919390610cbf856148dc565b8093611c6d6139d1565b339061487c565b610ae1613baa565b346107d357602061091a6035610efb3661327d565b346107d3575f3660031901126107d357323303611d67577f00000000000000000000000000000000000000000000000000000000000000008015611d5c575b611d4d575f8080807f0000000000000000000000000000000000000000000000000000000000000000600a5a04fa3d15611d48573d611d0e8161361a565b90611d1c60405192836135f9565b81525f60203d92013e5b15611d39575f805460ff19166001179055005b6370a4078f60e01b5f5260045ffd5b611d26565b630f45b98b60e41b5f5260045ffd5b5060ff5f5416611cd0565b63096650c560e21b5f5260045ffd5b346107d357602061091a60176035611d8d36613539565b611da0610a826108ed60a0840184613c23565b90361560a061167260018317613cdd565b346107d357602061091a60176035611699366133a0565b346107d357611dd63661349e565b60608101611de48183613898565b8060069492941b81810460401482151715611efe57611e0290614bad565b935f915f5b818110611e955750505061088a57611e4d81611e2d856020611e52975191012082615373565b611e476039611e3c8785613898565b6020860135916140ed565b90614012565b613898565b5f5b818110611e6657602060405160018152f35b80611e8f6034611e796001948688614192565b611e86602082018261377f565b9091359161527d565b01611e54565b611ea0818385614192565b5f90611eaf602082018261377f565b905f915b808310611ed957505050906040839260019460061b8b0190356020820152015201611e07565b9091976001906020611eec8b85876138cd565b01358096019586101798019190611eb3565b634e487b7160e01b5f52601160045260245ffd5b346107d35760203660031901126107d357600435611f4981339190604051926014526341d0e04b5f526034526038601c2091604052565b805415611f5f57905f61087f92553615906148f6565b5063e632dbad5f52336020526040526044601cfd5b346107d357602061091a6034610c2d366133d4565b346107d3576080611f9936613408565b611fed611fe460608301611fde84611fc6611fb4848361377f565b6040519060061b809282372082615373565b611e47611fd3858461377f565b60208501359161406f565b8361377f565b939092016137b4565b905f5b83811061200257602060405160018152f35b8061202361201360019387866138cd565b6020810135903586336035615c31565b5001611ff0565b346107d35760c03660031901126107d3576120436131bd565b61204b6131ff565b906044359160088310156107d3576064359160028310156107d357612087611c74926020956120786131e9565b95612082856148dc565b61434b565b80936120916139d1565b6084359261487c565b346107d357602061091a601760356120b136613505565b6101806120bd82615626565b929091936120cf610160820135613c58565b92611c3b6137c8565b346107d357602061091a60346120ed3661333c565b361560e061210060408317846028615651565b92610b8b61210f84868461532d565b93613cdd565b346107d357602061091a6017603561212c36613249565b61214061161b61094d610100840184613898565b90610100610b246137c8565b346107d357602061091a6034611b6e366133d4565b346107d357602061091a60356118aa3661333c565b60603660031901126107d3576004356001600160401b0381116107d3576121a190369060040161346e565b602435906001600160401b0382116107d3576020926121d46121ca61091a94369060040161346e565b92909333916138dd565b60443591614159565b346107d35760203660031901126107d357608060043561224761220b60016001605c1b038360a01c16614862565b604080516001600160a01b038086168252909216602083015290929061223a90840160fc83901c6007166135a6565b606083019060ff1c6135b3565bf35b346107d357602061091a601760346108d8366133d4565b346107d35761226e3661356c565b9167edcaa89a822939406034526028526014525f52602060545f20545f603452604051908152f35b346107d357602061091a60176034611d8d36613539565b346107d357602061091a6017603461212c36613249565b60403660031901126107d3576122d86131bd565b602435908115158092036107d35767edcaa89a82293940602052336014525f52806034600c2055602052600c5160601c337fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267602080a3602060405160018152f35b346107d357602061091a601760356113b13661343b565b346107d3576101803660031901126107d35761236a6131bd565b6123726131d3565b9061237b6131e9565b5060c43560088110156107d357600260e43510156107d3576101043590610124359060038210156107d357610144356001600160401b0381116107d3576123c690369060040161330f565b94909261016435956001600160401b0387116107d35787966123ec90369060040161330f565b9890916123f885613d53565b839d93969297919436159b61240e938d936143c6565b9990604051905f52866020528b60405260605f20610100860152604052601f1961016085015161017f0116906101401761244794613e72565b61245093613eca565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff169161247d936141b4565b612485613baa565b604051908152602090f35b60803660031901126107d3576124a46131bd565b60243560088110156107d3576044359060028210156107d357606435916001600160a01b03831683036107d357602093610ae1926124e1926142b1565b9182349161437c565b346107d357602061091a601760356117a336613249565b346107d35760203660031901126107d357604051634e41a1fb60e01b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575060405191829182613193565b346107d357602061091a601760346120b136613505565b346107d357602061091a60176034611c08366132db565b346107d357602061091a60176035611af33661327d565b346107d357602061091a60346125cf3661333c565b6125d881615774565b9060e06125e36137c8565b9336159280614239565b346107d3576040612627612600366132b1565b91605892601c926040519260148401526368a30dd083526034830152605482015201205490565b81519042811182526020820152f35b61263f366132b1565b909167edcaa89a8229394060345233602852601452815f528060545f20555f5260205160601c337fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a760205fa45f603452602060405160018152f35b346107d357602061091a6035610d0b366134d1565b346107d357602061091a603461138e366132db565b346107d357602061091a6034610f563661333c565b346107d35760603660031901126107d35761087f604435602435600435336141b4565b346107d35760203660031901126107d357602060405160128152f35b346107d357602061091a60176035610a3b3661333c565b346107d35761273d3661349e565b6060810161274b8183613898565b8060069492941b81810460401482151715611efe5761276990614bad565b935f915f5b8181106127c15750505061088a57611e4d81611e2d856020612794975191012082615373565b5f5b8181106127a857602060405160018152f35b806127bb6035611e796001948688614192565b01612796565b6127cc818385614192565b5f906127db602082018261377f565b905f915b80831061280557505050906040839260019460061b8b019035602082015201520161276e565b90919760019060206128188b85876138cd565b013580960195861017980191906127df565b346107d3575f3660031901126107d3576020610ae16137c8565b346107d357602061091a60356118f7366132db565b346107d357602061091a60346113fa36613215565b346107d35760403660031901126107d3576004356001600160401b0381116107d35761091a6128a3602092369060040161346e565b60243591614159565b346107d357602061091a60356125cf3661333c565b346107d35760603660031901126107d3576004356128dd6131ff565b60408051336014526341d0e04b5f5260348490526038601c209152544281119015176129145761091a906020926044359133613697565b50639287bcb05f526020526024601cfd5b346107d357602061091a601760346112cf366132db565b346107d357602061091a603561099f3661327d565b346107d35760403660031901126107d35761296a6131bd565b6024356001600160401b0381116107d35761298990369060040161330f565b6001600160a01b03909216916055811491338414843b1515179183612a35575b50501715612a25576129ba81613ef9565b806744036fc77deaed23605c1b1791825480612a1157508060209355815f5282527fc54dcaa67a8fd7b4a9aa6fd57351934c792613d5ec1acbd65274270e6de8f7e460405fa16001600160601b0360405191168152f35b8263c18b0e975f526020526040526044601cfd5b634e7f492b5f526020526024601cfd5b809192935015612a6d57808260405137604051206001600160a01b031683146001600160f81b031991358216909114169083806129a9565b634e487b7160e01b5f52603260045260245ffd5b346107d357602061091a612a943661343b565b6040515f516020615fa55f395f51905f5281523384820152336040820152612ae48260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b6080612af260a084016137b4565b92013591336035615c31565b346107d357602061091a601760356116d736613249565b346107d357602061091a6035612b2a3661333c565b610140610d7d61133b61094d83850185613898565b346107d357602061091a6035612b5436613249565b612b686109b361094d610100840184613898565b90612b7660e0820135613c58565b610100612b866002361517613cdd565b926118da6137c8565b346107d3576080612b9f36613408565b612bba611fe460608301611fde84611fc6611fb4848361377f565b905f5b838110612bcf57602060405160018152f35b80612bf0612be060019387866138cd565b6020810135903586336034615c31565b5001612bbd565b346107d35760203660031901126107d357600435545f5260205ff35b346107d357602061091a6034611314366133d4565b346107d357602061091a60356120ed3661333c565b346107d357602061091a6035610fa336613215565b346107d357602061091a60176034612c6936613215565b612c7d610c536108ed610140840184613c23565b90612c8a3615838361532d565b90610140612c9c610120830135613c58565b91612caa6002361517613cdd565b936109146137c8565b346107d357602061091a603561180336613215565b346107d35760403660031901126107d357612d06612ce46131bd565b602435909190604051926014526341d0e04b5f526034526038601c2091604052565b546040518115154283116002030291600383101561158c5760409282526020820152f35b346107d357602061091a6035612d3f366132db565b610120611341604036151783615bc9565b346107d357602061091a6035610e48366133a0565b346107d357602061091a6034610b4336613215565b346107d35760203660031901126107d3576004356001600160401b0381116107d357612daa903690600401613370565b90612dbc612db733613ef9565b613fa8565b809160051b01905b818110612dd657602060405160018152f35b602090612de4338235613fcf565b01612dc4565b346107d357602061091a6034612b2a3661333c565b346107d3576101403660031901126107d357612e196131bd565b612e216131d3565b50612e2a6131e9565b50600860c43510156107d357600260e43510156107d35761010435906001600160a01b03821682036107d357610124356001600160401b0381116107d357602092612ead92612e80611c7493369060040161330f565b929091612ec3361594612e9560a48717613d1e565b94612e9f84613d53565b9b839c9a939991929a613db8565b6101008201526101406102008317921790613e72565b613eca565b346107d357602061091a6034612edd3661327d565b612ef16109536108ed610100840184613c23565b90610100612f013615848461532d565b91610aa76002361517613cdd565b346107d357602061091a6035612edd3661327d565b346107d357602061091a6034612d3f366132db565b346107d357602061091a603561093936613249565b612f57366132b1565b612f6f60016001605c1b038360a09594951c16614862565b9160018060a01b038116925f60208160a460405194828052601c8601948591631a808f91885233868901523360408901528a60608901528b60808901528960a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a8229394060205233601452835f5260405f208054808411610772578390039055601452825f5260405f208054908282019182106107655755335f52602052335f516020615f655f395f51905f5260405fa4602060405160018152f35b346107d357602061091a6035610d623661327d565b346107d3575f3660031901126107d357602080526b0b54686520436f6d70616374604b5260606020f35b346107d357602061091a60356117d63661327d565b346107d357602061091a6034612b5436613249565b346107d357602061091a60176035612c6936613215565b346107d35760203660031901126107d3576004356001600160e01b0319811681036107d35760209060e01c604051906301ffc9a7630f632fb3821491141715158152f35b346107d35760403660031901126107d3576131046131bd565b67edcaa89a822939406020526014526024355f52602060405f2054604051908152f35b346107d35760203660031901126107d357622b600360e21b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f5750604051918291825b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036107d357565b608435906001600160a01b03821682036107d357565b60a435906001600160a01b03821682036107d357565b602435906001600160a01b03821682036107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101209082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101409082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024359060443590565b60206003198201126107d357600435906001600160401b0382116107d3576101a09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d357602083818601950101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101609082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460051b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101c09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760a09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760c09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460061b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d35760809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576102009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101e09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760e09082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024356001600160a01b03811681036107d3579060443590565b90600882101561158c5752565b90600282101561158c5752565b60206040818301928281528451809452019201905f5b8181106135e35750505090565b82518452602093840193909201916001016135d6565b90601f801991011681019081106001600160401b038211176115a057604052565b6001600160401b0381116115a057601f01601f191660200190565b6020818303126107d3578051906001600160401b0382116107d3570181601f820112156107d3578051906136688261361a565b9261367660405194856135f9565b828452602083830101116107d357815f9260208093018386015e8301015290565b909291926136a36139d1565b6001600160a01b0384168061372457505f9081808538935af115613717575b67edcaa89a8229394060205280601452825f5260405f209182549283821161077257815f9403905533835260205260018060a01b03165f516020615f655f395f51905f52604083a4613712613baa565b600190565b63b12d13eb5f526004601cfd5b9091926137313083613b85565b9260145260345263a9059cbb60601b5f5260205f6044601082855af13d1560015f51141716156137725761376a905f6034523090613b85565b9003906136c2565b6390b8ec185f526004601cfd5b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160061b360383136107d357565b356001600160a01b03811681036107d35790565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046186138135790565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208201527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60408201524660608201523060808201522090565b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160051b360383136107d357565b9190811015612a6d5760061b0190565b91906138e76139d1565b82359060018060a01b03821615916020850135341415831634158414178215176139c4578060016001605c1b03849260a01c1661392381613fa8565b936139b2575b505b81811061394157505050505061393f613baa565b565b61394c8183876138cd565b80359060016001605c1b038260a01c166001600160601b0386168103613991575b506001929161398b916020013590876001600160a01b03821661487c565b0161392b565b61398b919550916020836139a760019695613fa8565b96925050919261396d565b6139be9034908661437c565b5f613929565b63ca0fc08e5f526004601cfd5b7f000000000000000000000000000000000000000000000000000000000000000080600414613b595780600314613b475780600914613b105780600a14613ad357600814613a2d57634e487b7160e01b5f52605160045260245ffd5b613a43361568929eee149b4bd212686028615651565b805b613ac357507f000000000000000000000000000000000000000000000000000000000000000080600214613a9c57600114613a8e57634e487b7160e01b5f52605160045260245ffd5b3368929eee149b4bd212685d565b505f5460ff1615613ab5573368929eee149b4bd212685d565b3368929eee149b4bd2126855565b63f57c448b5f526020526024601cfd5b5060e0604036151768929eee149b4bd212680160c08101355f520135602052613b0a60405f2068929eee149b4bd212686031615651565b80613a45565b5068929eee149b4bd21328355f90815268929eee149b4bd213483560205260409020613b0a9068929eee149b4bd21268602f615651565b5068929eee149b4bd212685c80613a45565b505f5460ff1615613b755768929eee149b4bd212685c80613a45565b68929eee149b4bd2126854613b0a565b602460106020939284936014526370a0823160601b5f525afa601f3d11166020510290565b7f000000000000000000000000000000000000000000000000000000000000000080600614613bfc57600514613bee57634e487b7160e01b5f52605160045260245ffd5b5f68929eee149b4bd212685d565b505f5460ff1615613c15575f68929eee149b4bd212685d565b5f68929eee149b4bd2126855565b903590601e19813603018212156107d357018035906001600160401b0382116107d3576020019160608202360383136107d357565b60a090604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208301527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d604083015260608201523060808201522090565b90604051915f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f5260405260051b5191604052565b60a0906080604051917fe055493563385cc588fffacbffe2dab023fef807baa449530431169b0eeb5b69835260208301372090565b90613d5c6139d1565b613d7c613d7460a43560c43560e435612082876148dc565b923090613b85565b906040519063137c29fe82526080600460208401373060a083015260243560c083015260843560e0830152610140610120830152610160820190565b60807f63697069656e7429546f6b656e5065726d697373696f6e73286164647265737391609681527f436f6d706163744465706f736974207769746e65737329436f6d70616374446560208201527f706f736974286164647265737320616c6c6f6361746f722c75696e743820726560408201527f736574506572696f642c75696e74382073636f70652c6164647265737320726560608201527520746f6b656e2c75696e7432353620616d6f756e742960968201520152565b9093805f9493601c92869582613e86614eaf565b9987015260408387018360208201520137016024019101826e22d473030f116ddee9f6b43ac78ba35af11615613eb857565b3d6107cb57637f28c61e5f526004601cfd5b613ed8909291923090613b85565b9283811015613eec5761393f93039161437c565b63426d8dcf5f526004601cfd5b6affffffffffffffffffffff6a7fffffffffffffffffffff8260491c16818360481c16178060021c178060041c178060081c178060101c178060201c176755555555555555558160011c169003673333333333333333808260021c169116018060041c01670f0f0f0f0f0f0f0f660f0f0f0f0f0f0f8260081c169116018060101c01911690690fedcba9876543210000600f60581b91607f600319918060201c0116604803161c60581b161790565b6744036fc77deaed23605c1b81175415613fbf5750565b63cf90c3a85f526020526024601cfd5b604051916020526303f37b1a600c5280604052603760282090600182549160ff161b9080821661400157179055604052565b63dbc205b160601b600c526044601cfd5b916140206040820135614f51565b803590601e19813603018212156107d35701918235926001600160401b0384116107d3576020019280360384136107d35761393f93614069916140616137c8565b918585614f6c565b336150bc565b90929183159161408185826038615aa0565b9161409561408e84614862565b8092613fcf565b946001600160601b0360019316905b8084106140c257505050506140b557565b633a03d3bb5f526004601cfd5b90919293600190836001600160601b036140df8886896038615b0a565b1614151794019291906140a4565b919093928415926140ff868284615aa0565b9261410c61408e85614862565b956001600160601b0360019416915b81851061412d5750505050506140b557565b9091929394600190846001600160601b0361414a8987878b615b0a565b1614151795019392919061411b565b91905f5b81811061416d5750505050600190565b8061418c8461417f60019486896138cd565b60208101359035336141b4565b0161415d565b9190811015612a6d5760051b81013590603e19813603018212156107d3570190565b91929092604051908360148301526368a30dd082526034820194855260548201526058601c8201208242019262278d00811182548510176142295750829055607401526001600160a01b0316907ff78a2f33ff80ef4391f7449c748dc2d577a62cd645108f4f4069f4a7e0635b6a90606090a2565b631f9a96f45f526020526024601cfd5b939195909497969286019586359560208801359760608101359861425d89876152bf565b89811061429c575091614299999a93916142939593604060018060a01b03910135169760016001605c1b038a60a01c1690614c4a565b90615c31565b90565b8990633078b2f65f526020526040526044601cfd5b90916142bc81613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b171790565b6142eb82613ef9565b6744036fc77deaed23605c1b81175490921861430f57600360fc1b9160a01b171790565b5063cf90c3a85f526020526024601cfd5b61432981613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b600360fc1b1790565b9261435581613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b17171790565b909167edcaa89a8229394060205281601452825f5260405f208054908282019182106107655755335f5260205260018060a01b03165f5f516020615f655f395f51905f52604082a4565b939194925f9160208601925f935f9515908161481f575b85156147ce575b505f92801561473a575b5f1981011561469b575b83156145e1575b8415614460575050508184959697823701946e75696e7432353620616d6f756e7429600e8701527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19870152600e81870301905280850390209303902090565b91985096935083919450600e925060051b936e75696e7432353620616d6f756e7429838201527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19820152030190526040519261456d575b83156144f9575b5f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f526040525191604052565b7f45012d42fad8c9e937cff5a2d750ee18713dd45aadcd718660d5523056618d995f527fc2e16a823b8cdddfdf889991d7a461f0a19faf1f8e608f1c164495a52151cc3e6020527fd2f6ad391328936f118250f231e63c7e639f9756a9ebf972d81763870a772d87604052805193506144c0565b7f2bf981c42c7f423b06fa49ba996d2930887e2f1f53d9a26b8c7423ac1cf83e615f527fd14445d78213a5acddfa89171b0199de521c3b36738b835264cae18f5a53dbf36020527f329b3c527a3c74b8cabc51c304669d1866b87352cafdf440ef2becd6dc261d1e604052805193506144b9565b7f4d756c7469636861696e436f6d7061637420636f6d70616374294d756c74696387527f6861696e436f6d7061637428616464726573732073706f6e736f722c75696e7460208801527f323536206e6f6e63652c75696e7432353620657870697265732c5365676d656e60408801526f5d20696473416e64416d6f756e74732c60708801527f697465722c75696e7432353620636861696e49642c75696e743235365b325d5b6060880152601a87019660900193506143ff565b7f4261746368436f6d7061637420636f6d70616374294261746368436f6d70616387527f74286164647265737320617262697465722c616464726573732073706f6e736f60208801527a75696e743235365b325d5b5d20696473416e64416d6f756e74732c605b8801527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60408801526015870196607b0193506143f8565b7f436f6d7061637420636f6d7061637429436f6d7061637428616464726573732087527f617262697465722c616464726573732073706f6e736f722c75696e743235362060208801526f2c75696e7432353620616d6f756e742c60508801527f6e6f6e63652c75696e7432353620657870697265732c75696e743235362069646040880152601087019660700193506143ee565b7569766174696f6e2875696e743235365b5d206964732c60368a01527f426174636841637469766174696f6e207769746e65737329426174636841637490526056880195506038880194505f6143e4565b686e743235362069642c60298a01527f41637469766174696f6e207769746e6573732941637469766174696f6e28756981526049890196506033890195506143dd565b6744036fc77deaed23605c1b81175491908215613fbf5750565b91906148883084613b85565b9260405194606052306040523360601b602c526323b872dd60601b600c5260205f6064601c82855af13d1560015f51141716156148cf5761393f945f606052604052613eca565b637939f4245f526004601cfd5b8060601b156148e85790565b63961c9a4f6040526024605cfd5b908015155f52602052337fe27f5e0382cf5347965fc81d5c81cd141897fe9ce402d22c496b7c2ddc84e5fd60405fa3565b6001600160401b0381116115a05760051b60200190565b9061494882614927565b61495560405191826135f9565b8281528092614966601f1991614927565b0190602036910137565b8051821015612a6d5760209160051b010190565b919261498e6139d1565b6001600160a01b03833516159260208101353490811415851690158514178315176139c45783926149c660843560a43560c4356142b1565b956149d08261493e565b94614a6d575b50848103956149e48761493e565b925f925f5b898110614a0857505050506149fb5790565b630f2f1e515f526004601cfd5b80614a598a600193979596970194614a29614a2487878a6138cd565b6137b4565b90848060a01b0382166001600160601b0360a01b8a1617988911151797614a5181978d614970565b523090613b85565b614a638289614970565b52019291926149e9565b614a799087349161437c565b835115612a6d578560208501525f6149d6565b91604051918360061b8460071b9160061b6024350163fe8ec1a7855260c06020860152816101400160408601526004356060860152826101600160a0860152606060e0860152604435610100860152606435610120860152856101408601528160248201610160870137818501956101608701525f5b828110614b185750939450508301610180019150565b806040918801306101808201526101a06044838601013591015201614b02565b83515f96909594939290875b878110614b5f575050505050505050613eec5761393f613baa565b80614ba783600193019a614b818c614b7c614a2430928c8b6138cd565b613b85565b90614b9d614b8f858c614970565b519183831015179d89614970565b519103908a61437c565b01614b44565b90614bb78261361a565b614bc460405191826135f9565b8281528092614966601f199161361a565b9015612a6d5790565b9190811015612a6d576060020190565b8160061b82810460401483151715611efe57614c0990614bad565b915f5b818110614c20575050506020815191012090565b80614c2e6001928486614bde565b604060208360061b880192803582850152013591015201614c0c565b60408401356001600160a01b031697969095939486948994919387358801936020890135890192909183359190614c8460808c0135614f51565b614c8d90614862565b6060819b013590614c9d91613fcf565b86811502019181151587841415179081159b614cd49961393f9d614cf0575b505050614cda575b5050508582359260200191614f6c565b846150bc565b614ce8926020018c89614f6c565b5f8080614cc4565b614d1b9350605892601c926040519260148401526368a30dd083526034830152605482015201205490565b4210155f898e614cbc565b98979380959196614d6b939894890198893581019860208a81019a359b013597614d63614d538d8d614bd5565b3560a01c60016001605c1b031690565b9d8e91615e45565b90614d768686614bd5565b95614d9f6020614d93878a35809b6040810135948591013561535c565b83151798868686615c31565b506001600160601b0360019916985b818110614dc7575050505050505061371291925061536d565b614dd2818389614bde565b80359889918860408201359b8c926020013592614dee9361535c565b8c8360a01c60016001605c1b03161415171798614e0d91878787615c31565b50600101614dae565b9015612a6d57803590605e19813603018212156107d3570190565b9190811015612a6d5760051b81013590605e19813603018212156107d3570190565b8160061b82810460401483151715611efe57614e6e90614bad565b915f5b818110614e85575050506020815191012090565b80614e936001928486614e31565b604060208360061b880192803582850152013591015201614e71565b7f0000000000000000000000000000000000000000000000000000000000000000613712576e22d473030f116ddee9f6b43ac78ba33b151590565b60a092916040606092815194848601525f516020615f455f395f51905f5285528560208601933385524684880152608087208752820101358101803560051b80916020018537602001852060808601525f516020615f855f395f51905f5285520190372090565b42811115614f5c5750565b63f80dbaea5f526020526024601cfd5b604080516119015f9081526020979097529181526042601e20918152919390929091606483019083146001600160a01b0386166041851481614fc7575b5050505050505033141715614fba57565b638baa579f5f526004601cfd5b909192939495975060405192885f5261506c575b61502d575b60209495965f60605282604052630b135d3f60e11b83526004830152602482019586946040865281604485015260648401375afa9051630b135d3f60e11b1416905f808080808080614fa9565b60408401355f1a60205260408481376020600160805f825afa5181183d1517614fe0575094505050506001915f6060526040525f808080808080614fa9565b60208581013560ff81901c601b01825286356040526001600160ff1b0316606052600160805f825afa5182183d1517614fdb57505094505050506001915f6060526040525f808080808080614fa9565b5f91825233926001600160a01b03908116929116907f770c32a2314b700d6239ee35ba23a9690f2fceb93a55d8c753e953059b3b18d490602090a4565b6040519260608401525f516020615f455f395f51905f5283526020830191338352466040850152608084209082019060a082013583019060c0823560051b93013560051b5f905f5b85811061517857505050505091604060609260a09594602001852060808601525f516020615f855f395f51905f5285520190372090565b8089016020848301870101358152828214615197575b50602001615141565b602090810185905292508261518e565b949195849197966151d4948101358101988960200199359a6151cc614d538d8d614e16565b988991615e45565b8515956001600160601b035f9416935b8181106151fb57505050505050506137129061536d565b806152498761520d600194868c614e31565b80359b8c8a60016001605c1b036152248c846153b0565b9260a01c16141517179b87602061523e604085018561377f565b9190940135936153c6565b50016151e4565b614299906152756040361517829060e0910160c08101355f52013560205260405f2090565b906031615651565b9291905f5b818110615290575050505050565b806152b86152a160019385896138cd565b8560206152ad836137b4565b920135913389615c31565b5001615282565b8160ff1c15901517156152cf5750565b63a06356f55f526020526024601cfd5b95849061530e9399949692968a01998a3597889660408d013583019a60016001605c1b038960a01c1691615e45565b9561531f60209261429998946152bf565b0135928035906020016153c6565b60a0916040519382019160c0830135019081359384930135855260208501526020016040840137604001902090565b9261536791926153b0565b91101790565b6140b557565b60c09160408051925f516020615fc55f395f51905f5284523360208501523382850152602081013560608501520135608083015260a08201522090565b60ff1c600281101561158c576001149015151690565b91949290925f958415945f5b81811061540157505050505050828210176153ee575050600190565b633078b2f65f526020526040526044601cfd5b8061543460209a988761542d61541a600196888d6138cd565b9d8e0135928c84019c8d10179b9d6137b4565b8789615c31565b50016153d2565b906040519160c08101350191823580937f4d756c7469636861696e436f6d7061637428616464726573732073706f6e736f83527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60208401527f5365676d656e745b5d207365676d656e7473295365676d656e7428616464726560408401527535365b325d5b5d20696473416e64416d6f756e74732c60768401527f737320617262697465722c75696e7432353620636861696e49642c75696e74326060840152602001609683013782604301605382012092609601902090565b614299903615906028615651565b906142996155386040361517846028615651565b928336159161532d565b61556d906155676080361517829060e0910160c08101355f52013560205260405f2090565b90615b8a565b9091565b61556d906155966040361517829060e0910160c08101355f52013560205260405f2090565b90615b66565b906142996155386155c46080361517859060e0910160c08101355f52013560205260405f2090565b846032615651565b90614299615538610b6b6040361517859060e0910160c08101355f52013560205260405f2090565b61561f906156196080361517829060e0910160c08101355f52013560205260405f2090565b90615bd9565b9192909190565b61561f9061564b60c0361517829060e0910160c08101355f52013560205260405f2090565b90615c0a565b91909180603214615764578060311461575757806030146157475780602b146157165780602f1461570957806028146156c857806033146156b057602a146156a757634e487b7160e01b5f52605160045260245ffd5b61429991615373565b5060e0910160c08101355f52013560205260405f2090565b5060c060e092606060408051948301925f516020615fa55f395f51905f52865233602087015201604085013760a081013560a0840152013560c08201522090565b5061429991361590614eea565b509060c091606060408051935f516020615fc55f395f51905f52855233602086015201604084013760a08201522090565b5061429991604036151790614eea565b50614299913615906150f9565b50614299916040361517906150f9565b9061010060405160a060c085013585019460608635967f436f6d70616374286164647265737320617262697465722c6164647265737320855260208501977f73706f6e736f722c75696e74323536206e6f6e63652c75696e7432353620657889528060408701927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c845260200184880137820185209788865233905260408301903760e0810135828401528381013560c0840152013560e0820152209190565b60e09092919260a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b92919280602c146159df5760291461591d57634e487b7160e01b5f52605160045260245ffd5b6101009060a0604051918360c082013582019660608835987f436f6d70616374286164647265737320617262697465722c6164647265737320875260208701997f73706f6e736f722c75696e74323536206e6f6e63652c75696e743235362065788b528060408901927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c8452602001848a013782018720998a8852339052604085019037820160e081013584860152013560c0840152013560e0820152209190565b5060e09060a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b91909180603814615af45780603914615ad857600714615ace57634e487b7160e01b5f52605160045260245ffd5b614299915f615651565b505f615aec9160016001605c1b0393614192565b3560a01c1690565b5015612a6d573560a01c60016001605c1b031690565b80603814615b525780603914615b3e57600714615b3557634e487b7160e01b5f52605160045260245ffd5b61429992615651565b5091615aec9160016001605c1b0393614192565b5091615aec9160016001605c1b03936138cd565b9190615b8690615b758461543b565b94908591604036151790602d615ce7565b9190565b9190615b8690615b998461543b565b94908591604036151790602e615ce7565b91615bba615b869284602c6158f7565b9290938460403615179161532d565b91615bba615b86928460296158f7565b91615b86604093615c0093615bed8261543b565b959091863615936080851786602d615ce7565b958691179161532d565b91615b86604093615c0093615c1e8261543b565b959091863615936080851786602e615ce7565b939291909380603514615cdd5780603414615c6a57603714615c6157634e487b7160e01b5f52605160045260245ffd5b614299936140ed565b5090929167edcaa89a8229394060205282601452835f5260405f20805480831183151761077257829003905581601452835f5260405f208054908282019182106107655755335f5260205260018060a01b03169060018060a01b03165f516020615f655f395f51905f5260405fa4600190565b5061429993613697565b9594939190929580602d14615dce57602e14615d1157634e487b7160e01b5f52605160045260245ffd5b6040519360608501528584525f516020615f455f395f51905f526020850196338852466040870152141580615dbf575b60051b60800184209083019060a082013584019060c0823560051b93013560051b5f905f5b858110615d9057505050505060609260a09596926040926020018620608087015285520190372090565b8089016020848301870101358152828214615daf575b50602001615d66565b6020908101859052925082615da6565b60a08401356080860152615d41565b5060609260a095969286604093845197878901528588525f516020615f455f395f51905f52602089019633885246878b0152141580615e37575b60051b60800188208852830101358201803560051b809160200186376020018620608087015285520190372090565b8285013560808a0152615e08565b969594939291909680602714615f315780602414615f1c5780602114615f075780602314615ef75780601f14615ee25780602614615ecf5780602214615ec45780602514615eb157601714615ea857634e487b7160e01b5f52605160045260245ffd5b61429996614c4a565b50906017959493929187614299986152df565b508661429997614239565b5090601795949392918761429998614d26565b50916142999691601796959493361593614d26565b5090614299969291361593614239565b509161429996916017969594933615936151a7565b509161429996916017969594933615936152df565b50906017959493929187614299986151a756fe295feb095767cc67d7e74695da0adaddede54d7b7194a8a5426fe8f0351e03371b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288595ca9a66b8bbf0d2316e90dfa3df465f0790b277b25393a3ef4d67e1f50865057cdca950b17b5efc016b74b912d8527dfba5e404a688cbc3dab16cb943287fec25a7fee8000a237929ef9be08f2933c4b4f320b00b38809f3c7aa104d5421049fa164736f6c634300081c000a60808060405234601557613e10908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8062ad800c146137045780634e41a1fb146136965763d637ca8d14610039575f80fd5b3461367e57366003190160a0811261367e5760801361367e576040516080810181811067ffffffffffffffff82111761368257604052600435906001600160a01b0382169081830361367e57828152602435906001600160a01b038216820361367e576020810191825260443592600884101561367e576040820193845260643594600286101561367e5760608381019687521b6bffffffffffffffffffffffff191661366c575061011c6040516100f2604082613793565b600c81526b2730ba34bb32902a37b5b2b760a11b6020820152925b516001600160a01b03166138a1565b9251600881101561365857610130906139c8565b935160028110156136585761014490613bba565b8151610158906001600160a01b03166137b5565b825190919061016f906001600160a01b0316613834565b925163313ce56760049081525f81905260209182919082906001600160a01b0316620186a0fa3d601f10166020510260ff166101aa90613c59565b916040519560208701977103d913730b6b2911d101121b7b6b830b1ba160751b89528786518060208901603284015e810161088b60f21b603282015203603201601d19810189526002016101fe9089613793565b6040519460208601947f226465736372697074696f6e223a2022436f6d7061637420000000000000000086528451806020870160388a015e87016038810161040560f31b90528951908160208c01603a83015e01603801600281017f29207265736f75726365206c6f636b207769746820616c6c6f6361746f72200090528451908160208701602183015e0160020193601f85017401030b732103932b9b2ba103832b934b7b21037b31605d1b905287845160208601968188603483015e01601f0161088b60f21b601582015203601501601d19810189526002016102e39089613793565b6102ee608435613c59565b604051906102fd604083613793565b6002825261125160f21b602083015261031591613c9e565b9960405190610325604083613793565b600d82526c546f6b656e204164647265737360981b602083015261034891613c9e565b9560405190610358604083613793565b600a825269546f6b656e204e616d6560b01b602083015261037891613c9e565b9860405190610388604083613793565b600c82526b151bdad95b8814de5b589bdb60a21b60208301526103aa91613c9e565b92604051906103ba604083613793565b600e82526d546f6b656e20446563696d616c7360901b60208301526103de91613c9e565b90604051906103ee604083613793565b600982526820b63637b1b0ba37b960b91b602083015261040d91613c9e565b916040519061041d604083613793565b600582526453636f706560d81b602083015261043891613c9e565b9260405195610448604088613793565b600c875260208701906b14995cd95d0814195c9a5bd960a21b825260405190610472602083613793565b5f8252604051978893602085019a6f3d913a3930b4ba2fba3cb832911d101160811b8c52518091603087015e8401906c111610113b30b63ab2911d101160991b6030830152518092603d83015e0160300161227d60f01b600d82015281516020819301600f83015e01600d01600281015f905203600201601f19810186526104fa9086613793565b604051998a97602089019c8d6e2261747472696275746573223a205b60881b905280516020819201602f8c015e8901602f8101915f83528051926020849201905e01602f015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e01905f8252518092825e01615d7d60f01b815203601d19810184526002016105a79084613793565b604051906105b76127c083613793565b61278e82527f22696d616765223a2022646174613a696d6167652f7376672b786d6c3b62617360208084019182527f6536342c5044393462577767646d567963326c76626a30694d5334774969426c6040808601919091527f626d4e765a476c755a7a306961584e764c5467344e546b744d53492f5067304b60608601527f504345744c5342485a57356c636d4630623349364945466b62324a6c49456c7360808601527f6248567a64484a68644739794944497a4c6a41754e53776755315a484945563460a08601527f63473979644342516248566e4c556c754943346755315a4849465a6c636e4e7060c08601527f62323436494459754d444167516e5670624751674d436b67494330745067304b60e08601527f50484e325a7942325a584a7a61573975505349784c6a4569494868746247357a6101008601527f50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441776101208601527f4c334e325a79496765473173626e4d3665477870626d7339496d6830644841366101408601527f4c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d73696101608601527f49486739496a427765434967655430694d4842344967304b43534232615756336101808601527f516d393450534977494441674e446b79494451354d69496763335235624755396101a08601527f496d567559574a735a53316959574e725a334a766457356b4f6d356c647941776101c08601527f494441674e446b79494451354d6a7369494868746244707a6347466a5a5430696101e08601527f63484a6c63325679646d55695067304b5047636761575139496b31686333526c6102008601527f636c394d59586c6c636c3879496a344e436a77765a7a344e436a786e49476c6b6102208601527f50534a4d59586c6c636c3878496a344e43676b385a7a344e43676b4a5047632b6102408601527f44516f4a43516b385a7a344e43676b4a43516b385a7a344e43676b4a43516b4a6102608601527f50484268644767676333523562475539496d5a7062477774636e56735a54706c6102808601527f646d56756232526b4f324e7361584174636e56735a54706c646d56756232526b6102a08601527f4f325a7062477736497a49784d6a45794d54736949475139496b307a4d6a45756102c08601527f4d7a41344c4449354e4334344e6a526a4e53347a4e5449734e53347a4d6a67736102e08601527f4f5334304e5459734d5449754d5451304c4445314c6a63354d6977344c6a677a6103008601527f4d67304b43516b4a43516b4a597a49754e4451344c5445754d6a63794c4455756103208601527f4d4459304c544d754d446b324c4463754d7a49744e5334794e545a6a4d7934336103408601527f4e4451744d7934314e7a59734f4334794e5459744f5334314d6a67734e4334326103608601527f4e5459744d5451754d6a686a4c5445794c6a51314e6930784d5334354e7a59746103808601527f4d7a59754d7a67304c544d794c6a45784d69307a4e6934304e5459744d7a49756103a08601527f4d54594e43676b4a43516b4a435777334c6a55324c5467754e545934597a41756103c08601527f4d4449304c4441754d4449304c4455754d5459734e4334314d7a59734d5445756103e08601527f4f444d794c4445774c6a67794e474d344c6a59344f4377344c6a49774f4377796104008601527f4d4334344e5459734d5459754d6977794e6934334d7a59734d6a51754e4441346104208601527f44516f4a43516b4a43516c6a4d79347a4d5449734e4334324d4467734d6934326104408601527f4d5459734d5449754e7a51304c4441754f4459304c4445334c6a5579597930786104608601527f4c6a4d354d69777a4c6a67304c5451754d5441304c4463754e4459304c5463756104808601527f4d7a49734d5441754e544d325979307a4c6a41794e4377794c6a6b774e4330326104a08601527f4c6a59734e5334304c546b754f5459734e7934784d6a674e43676b4a43516b4a6104c08601527f43574d744d79347a4f4451734d5334334e5449744e6934334f5449734d6934336104e08601527f4e6930354c6a59354e6977794c6a63344e474d744d4334774f5459734d4334306105008601527f4e5459744d4334794d5459734d4334354d7a59744d43347a4d7a59734d53347a6105208601527f4f544a6a4c5441754f5459734d7934794e43307a4c6a41794e4377324c6a41336105408601527f4d6930314c6a59784e6977344c6a514e43676b4a43516b4a43574d744d69347a6105608601527f4d6a67734d6934774f4467744e5334784d7a59734d7934344d5459744e7934356105808601527f4e4451734e5334774e6a526a4c544d754d4463794c4445754d7a51304c5459756105a08601527f4d6a67344c4449754d5445794c546b754d5459344c4449754d545a6a4c5441756105c08601527f4d446b324c4441754f544d324c5441754d6a67344c4445754f4451344c5441756105e08601527f4e5455794c4449754e7a594e43676b4a43516b4a43574d744d4334354e69777a6106008601527f4c6a49304c544d754d4449304c4459754d4463794c5455754e6a45324c4467756106208601527f4e474d744d69347a4d6a67734d6934774f4467744e5334784d7a59734d7934346106408601527f4d5459744e7934354e4451734e5334774e6a526a4c5451754d5449344c4445756106608601527f4f4449304c5467754e5451304c4449754e5459344c5445794c4445754f5459346106808601527f44516f4a43516b4a43516c6a4c5441754d5449734d5334794d6a51744d43347a6106a08601527f4e6977794c6a51744d4334324f5459734d7934314d4452324d4334774d6a526a6106c08601527f4c5445754d444d794c444d754d7a67304c544d734e6934794e4330314c6a55796106e08601527f4c4467754d7a5579597930794c6a55794c4449754d5445794c5455754e546b796107008601527f4c444d754e4467744f4334344e5459734d7934354d7a594e43676b4a43516b4a6107208601527f43574d744d7934354e6977774c6a55314d6930344c6a45324c5441754d6a51746107408601527f4d5445754f5441304c5449754e6a6734597930784c6a417a4d6930774c6a59336107608601527f4d6930794c6a45324c5445754e544d324c544d754e4467744d6934314f544a736107808601527f4c5441754e7a51304c5441754e546332624330784d5334784e6930344c6a59786107a08601527f4e6d77324c6a6b324c546b754d444930624445784c6a45324c4467754e6a45326107c08601527f44516f4a43516b4a43516c734d4334334e4451734d4334314e7a5a6a4d5334776107e08601527f4d7a49734d4334334f5449734d5334344f5459734d5334304f4467734d6934336108008601527f4f4451734d6934774e474d784c6a49354e6977774c6a67324e4377794c6a637a6108208601527f4e6977784c6a45794f4377304c6a41344c4441754f545a6a4d5334784d6a67746108408601527f4d4334784e6a67734d6934784f4451744d4334324e4467734d7934774e7a49746108608601527f4d53347a4f54494e43676b4a43516b4a43574d774c6a67324e4330774c6a63796108808601527f4c4445754e5459744d5334334d6a67734d5334354d6930794c6a6b774e4777776108a08601527f4c44426a4d4334304e5459744d5334314e6977774c6a4d344e43307a4c6a55776108c08601527f4e4330774c6a51314e6930314c6a6332597930354c6a55794f4330784d7934796108e08601527f4f5459744d6a6b754e4451344c5449354c6a51794e4330794f5334304f5459746109008601527f4d6a6b754e44637944516f4a43516b4a43516c734e7934794c5467754f4455326109208601527f597a41754d4451344c4441754d4449304c4467754d5445794c4459754e5463326109408601527f4c4445324c6a63314d6977784e5334774d6a526a4d69347a4d4451734d6934796109608601527f4e5459734e4334344e4467734e4334334e5449734e7934314d5449734e7934786109808601527f4d6a686a4d4334304f4377774c6a517a4d6977774c6a6b344e4377774c6a67326109a08601527f4e4377784c6a51324e4377784c6a49354e67304b43516b4a43516b4a624441736109c08601527f4d4777774c44426a4d4334774f5459734d4334774f5459734d4334794d5459736109e08601527f4d4334784f5449734d43347a4d5449734d4334794f44686a4d4334324d6a5173610a008601527f4d4334314e5449734d5334794e4467734d5334784d6a67734d5334344e7a4973610a208601527f4d5334334d44526a4d6934784d5449734d5334344f5459734e4334794c444d75610a408601527f4f4445324c4459754d7a67304c4455754e446b3244516f4a43516b4a43516c6a610a608601527f4d6934314f5449734d5334344e4467734d6934314e4451734d6934794d7a4973610a808601527f4e5334304f5459734d53347a4e44526a4d4334324d6a51744d4334784f544973610aa08601527f4d5334794f5459744d4334314d6a67734d6934774d5459744d4334344e474d78610ac08601527f4c6a63334e6930774c6a63324f43777a4c6a55774e4330784c6a67304f437730610ae08601527f4c6a67354e69307a4c6a41354e67304b43516b4a43516b4a597a45754d544934610b008601527f4c5445754d444d794c4445754f546b794c5449754d5445794c4449754d7a4130610b208601527f4c544d754d545934597a41754d6a51744d4334344e4377774c6a41334d693078610b408601527f4c6a67304f4330774c6a63304e4330794c6a6b334e6d4d744f5334314e7a5974610b608601527f4d544d754d7a49744d7a55754f5441304c544d324c6a51314e69307a4e533435610b808601527f4e7a59744d7a59754e544934624463754e5459744f4334314e6a674e43676b4a610ba08601527f43516b4a43574d774c6a41304f4377774c6a41304f4377784e4334324f446773610bc08601527f4d5449754f5445794c4449324c6a59784e6977794e5334304f44686a4d793479610be08601527f4e43777a4c6a45354d6977344c6a41324e4377334c6a55324c4445784c6a5530610c008601527f4e4377784d4334794e7a4a6a4d5334794e7a49734d4334354d5449734d693478610c208601527f4e6977794c6a41344f4377304c6a41344c4445754e44453244516f4a43516b4a610c408601527f43516c6a4d4334344d5459744d4334794f4467734d5334344e4467744d433432610c608601527f4f5459734d7930784c6a4a6a4d5334334e7a59744d4334334e6a67734d793431610c808601527f4d4451744d5334344e4467734e4334344f5459744d7934774f545a6a4d533478610ca08601527f4d6a67744d5334774d4467734d5334354f5449744d6934784d5449734d69347a610cc08601527f4d4451744d7934784e6a674e43676b4a43516b4a43574d774c6a49304c544175610ce08601527f4f4451734d4334774e7a49744d5334344e4467744d4334334e4451744d324d74610d008601527f4f5334314e7a59744d544d754d7a49744d7a55754f5441304c544d324c6a5131610d208601527f4e69307a4e5334354e7a59744d7a59754e544934624463754e5459744f433431610d408601527f4e6a674e43676b4a43516b4a43554d794f5449754d6a49734d6a59324c6a5934610d608601527f4f43777a4d446b754d4451304c4449344d5334304f5459734d7a49784c6a4d77610d808601527f4f4377794f5451754f445930656949765067304b43516b4a435477765a7a344e610da08601527f43676b4a43516b385a7a344e43676b4a43516b4a504842686447676763335235610dc08601527f62475539496d5a7062477774636e56735a54706c646d56756232526b4f324e73610de08601527f61584174636e56735a54706c646d56756232526b4f325a7062477736497a4978610e008601527f4d6a45794d54736949475139496b30304d6a6b754d4449734d6a55304c6a5179610e208601527f4e45777a4f544d754e6a6b794c4445794f5334334d6d77744d5334314d7a5974610e408601527f4e5334304e4468734c5455754e4451344c4445754e44673444516f4a43516b4a610e608601527f43516c734c5451314c6a49784e6977784d6934304d4468734c5455754e545934610e808601527f4c4445754e544d32624445754e5459734e5334314d6d77794c6a457a4e697733610ea08601527f4c6a557a4e6d4d744d6a45754e6a6b324c4445754f5459344c5451794c6a6730610ec08601527f4c5449754e6a59304c5459794c6a55324f4330324c6a6b3244516f4a43516b4a610ee08601527f43516c6a4c544d354c6a49324e4330344c6a55324f4330334d7934794f545974610f008601527f4d5455754f5467304c546b354c6a55334e6977794e5334344f545a734d437777610f208601527f597930334c6a45774e4377784d53347a4e5449744d5451754f4455324c444930610f408601527f4c6a67304c5445324c6a59314e69777a4e5334784e67304b43516b4a43516b4a610f608601527f597930794c6a51334d6977784e4334774e43777a4c6a41794e4377794d793477610f808601527f4e4377794e5334794e4467734d5467754f545a6a4d544d754e6a55324c544975610fa08601527f4e446b324c4449794c6a41344c546b754d7a59734d6a6b754f5449344c544531610fc08601527f4c6a63324f474d344c6a67344c5463754d6a51344c4445324c6a67334d693078610fe08601527f4d7934334e5449734d7a49754d7a63324c546b754d54513044516f4a43516b4a6110008601527f43516c6a4f4334784d7a59734d79347a4e6977344c6a67344c444d754e6a63796110208601527f4c4445314c6a49304c446b754d444930597a49784c6a45304e4377784e7934336110408601527f4d7a59734e7a45754e4377324d5334314d7a59734e7a49734e6a49754d4452736110608601527f4d437777624445774c6a51784e6977354c6a45324f4777794c6a6b774e4377796110808601527f4c6a55304e47777a4c6a517a4d6930784c6a63314d67304b43516b4a43516b4a6110a08601527f624449774c6a67344c5445774c6a59774f4777784c6a49334d6977304c6a51346110c08601527f4f4777314c6a51334d6930784c6a5532624451314c6a41354e6930784d6934336110e08601527f4e6a68734e5334304f5459744d5334314e6b77304d6a6b754d4449734d6a55306111008601527f4c6a51794e4577304d6a6b754d4449734d6a55304c6a51794e486f6754544d316111208601527f4d4334324d7a59734d6a59354c6a6b334e6d77744e7934314d5449744e6934326111408601527f44516f4a43516b4a43516c494d7a517a4c6a466a4c5441754d5451304c5441756111608601527f4d5449744e5445754e6a49304c5451314c5463794c6a45354d6930324d6934796111808601527f4d7a4a6a4c5463754e7a41304c5459754e4455324c5467754e5459344c5459756111a08601527f4f4445324c5445344c6a4d324c5445774c6a67334d6d77744d4334794e4330776111c08601527f4c6a41354e6d77744d4334314d6a67744d4334784f54494e43676b4a43516b4a6111e08601527f43574d744d6a45754d7a59744e6934304e5459744d7a45754e6a41344c4445756112008601527f4f5449744e4449754f5467304c4445784c6a49774f474d744e6934334e6a67736112208601527f4e5334314d6930784d7934354f5449734d5445754e4449304c5449304c6a63326112408601527f4f4377784d79347a4f544a6a4c5445774c6a41344c4445754f4451344c5445796112608601527f4c6a63324f4330784c6a417a4d6930784d5334354d6a67744e5334334f44514e6112808601527f43676b4a43516b4a43574d784c6a51344f4330344c6a51334d6977344c6a55306112a08601527f4e4330794d4334324e6a51734d5455754d4451344c544d784c6a41314e6e59746112c08601527f4d4334774d6a526a4d6a45754f5459744d7a55754d4459304c4455794c6a4d356112e08601527f4d6930794f4334304e4377344e7934304f4330794d4334334f44514e43676b4a6113008601527f43516b4a43574d794d5334784f5449734e4334324d4467734e444d754f5451306113208601527f4c446b754e5463324c4459344c6a45324c4459754f544d32624449334c6a49326113408601527f4e4377354e6934794e45777a4e5441754e6a4d324c4449324f5334354e7a5a4d6113608601527f4d7a55774c6a597a4e6977794e6a6b754f5463326569424e4d7a67794c6a4d326113808601527f4e4377794e6a45754e6a6b3254444d314d4334774e6977784e4463754e6a49316113a08601527f44516f4a43516b4a43516c734d7a51754d6930354c6a4d344e47777a4d6934796113c08601527f4d7a49734d54457a4c6a63344e45777a4f4449754d7a59304c4449324d5334326113e08601527f4f545a364969382b44516f4a43516b4a5043396e5067304b43516b4a4354786e6114008601527f5067304b43516b4a43516b38634746306143427a64486c735a5430695a6d6c736114208601527f624331796457786c4f6d56325a5735765a47513759327870634331796457786c6114408601527f4f6d56325a5735765a4751375a6d6c7362446f6a4d6a45794d5449784f7949676114608601527f5a443069545445314e5334774d544d734d5451314c6a4a734c5449754d6a67736114808601527f4f4334774d54594e43676b4a43516b4a43574d784d4334794d6a51734d4334796114a08601527f4d5459734d6a6b754e546b794c4441754d4451344c4451314c6a63794c544d756114c08601527f4e6d77794c6a51354e6977784d5334784d7a5a6a4c5445344c6a6b324c4451756114e08601527f4d6a6b324c5451784c6a67774f4377304c6a45774e4330314d5334304d4467736115008601527f4d7934334f544a734c5449314c6a51344f4377344f5334354e7a594e43676b4a6115208601527f43516b4a43574d354c6a59334d69777a4c6a41304f4377794e7934344f4467736115408601527f4d5441754f5459344c4449354c6a4d314d6977794e7934334d6d77744d5445756115608601527f4e4377774c6a6b344e474d744d4334344f4467744d5441754d5455794c54457a6115808601527f4c6a63794f4330784e5334314d4451744d6a45754d4463794c5445334c6a63326115a08601527f624330784c6a4d324f4377304c6a67794e4777744d5334314e6977314c6a51356115c08601527f4e67304b43516b4a43516b4a624330314c6a51334d6930784c6a5532624330306115e08601527f4e5334774f5459744d5449754e7a5934624330314c6a51354e6930784c6a55326116008601527f624445754e5459744e5334304e7a4a734d7a55754d7a49344c5445794e4334336116208601527f4d4452734d5334314d7a59744e5334304e4468734e5334304e4467734d5334306116408601527f4f4468734e4455754d6a45324c4445794c6a51774f4777314c6a55324f4377786116608601527f4c6a557a4e67304b43516b4a43516b4a544445314e5334774d544d734d5451316116808601527f4c6a4a4d4d5455314c6a41784d7977784e4455754d6b77784e5455754d44457a6116a08601527f4c4445304e5334796569424e4d5445774c6a45314e7977794e6a45754e6a6b326116c08601527f62444d794c6a4d774e4330784d5451754d4463796243307a4e4334794c546b756116e08601527f4d7a6730544463324c6a41794f5377794e5449754d444930544445784d4334786117008601527f4e5463734d6a59784c6a59354e6e6f694c7a344e43676b4a43516b384c32632b6117208601527f44516f4a43516b4a5047632b44516f4a43516b4a435478775958526f49484e306117408601527f6557786c50534a6d615778734c584a31624755365a585a6c626d396b5a44746a6117608601527f62476c774c584a31624755365a585a6c626d396b5a44746d615778734f694d796117808601527f4d5449784d6a45374969426b50534a4e4d6a51774c6a63324e43777a4d7a59756117a08601527f4e6a6379544449304d4334334e6a51734d7a4d324c6a59334d67304b43516b4a6117c08601527f43516b4a597930784c6a45774e4330774c6a67784e6930794c6a51304f4330786117e08601527f4c6a41344c544d754e7a51304c5441754f446734637930794c6a51354e6977776118008601527f4c6a67324e43307a4c6a4d784d6977784c6a6b304e4777744f4334344d7a49736118208601527f4d5445754f546332614441754d444930597930774c6a67784e6977784c6a45776118408601527f4e4330784c6a45774e4377794c6a51334d6930774c6a6b784d69777a4c6a63306118608601527f4e41304b43516b4a43516b4a597a41754d546b794c4445754d6a63794c4441756118808601527f4f4459304c4449754e4463794c4445754f5451304c444d754d6a6734624441756118a08601527f4d5459344c4441754d545130597a45754d4455324c4441754e7a49734d69347a6118c08601527f4e5449734d4334354e69777a4c6a55334e6977774c6a63324f474d784c6a49356118e08601527f4e6930774c6a45354d6977794c6a51354e6930774c6a67324e43777a4c6a4d786119008601527f4d6930784c6a6b304e41304b43516b4a43516b4a624467754f4455324c5445796119208601527f597a41754f4445324c5445754d5441304c4445754d4467744d6934304e4467736119408601527f4d4334344f4467744d7934334e4452444d6a51794c6a55784e69777a4d7a67756119608601527f4e6a67344c4449304d5334344e4451734d7a4d334c6a51344f4377794e4441756119808601527f4e7a59304c444d7a4e6934324e7a4a4d4d6a51774c6a63324e43777a4d7a59756119a08601527f4e6a637944516f4a43516b4a43516c4d4d6a51774c6a63324e43777a4d7a59756119c08601527f4e6a63796569424e4d5463324c6a51794d5377794e6a59754d6a686a4e4334796119e08601527f4d6a51734d7934784d6977324c6a67784e6977334c6a59344c4463754e544d32611a008601527f4c4445794c6a55774e474d774c6a4d784d6977794c6a41324e4377774c6a4934611a208601527f4f4377304c6a45334e6930774c6a41354e6977324c6a493044516f4a43516b4a611a408601527f43516c6a4d5334344f5459744d4334354e69777a4c6a6b7a4e6930784c6a5977611a608601527f4f4377324c6a41794e4330784c6a6b79597a55754d4445324c5441754e7a5130611a808601527f4c4445774c6a49354e6977774c6a4d344e4377784e4334324f4467734d793432611aa08601527f4d6a52324d4334774d6a526a4e4334304d5459734d7934794e4377334c6a4134611ac08601527f4c4463754f5459344c4463754f4449304c4445794c6a6b344e41304b43516b4a611ae08601527f43516b4a597a41754d7a45794c4445754f546b794c4441754d6a67344c445175611b008601527f4d444d794c5441754d4449304c4459754d445134597a41754e6930774c6a4530611b208601527f4e4377784c6a45334e6930774c6a49324e4377784c6a63334e6930774c6a4d32611b408601527f597a51754e544d324c5441754e6a63794c446b754d7a4d324c4441754d7a5973611b608601527f4d544d754d6a6b324c444d754d6a6734624441754d6a67344c4441754d6a514e611b808601527f43676b4a43516b4a43574d7a4c6a67784e6977794c6a6b794f4377324c6a4530611ba08601527f4e4377334c6a45794f4377324c6a67784e6977784d5334314d6d4d774c6a4978611bc08601527f4e6977784c6a4d324f4377774c6a49324e4377794c6a63324c4441754d545130611be08601527f4c4451754d545579597a41754d6a45324c5441754d4451344c4441754e444134611c008601527f4c5441754d4463794c4441754e6a49304c5441754d446b3244516f4a43516b4a611c208601527f43516c6a4e4334784d6a67744d4334324d6a51734f4334314e4451734d43347a611c408601527f4d7a59734d5449754d546b794c444d754d444930624441734d474d7a4c6a5933611c608601527f4d6977794c6a63784d6977314c6a67344c4459754e6a49304c4459754e544130611c808601527f4c4445774c6a63334e6d4d774c6a59794e4377304c6a45794f4330774c6a4d7a611ca08601527f4e6977344c6a55304e43307a4c6a41304f4377784d6934784f54494e43676b4a611cc08601527f43516b4a435777744f4334344e5459734d544a6a4c5449754e7a45794c444d75611ce08601527f4e6a63794c5459754e6a49304c4455754f4467744d5441754e7a63324c445975611d008601527f4e544130597930304c6a45794f4377774c6a59794e4330344c6a55794c544175611d208601527f4d7a4d324c5445794c6a45354d69307a4c6a41794e4859774c6a41794e41304b611d408601527f43516b4a43516b4a5979307a4c6a59304f4330794c6a59344f4330314c6a6734611d608601527f4c5459754e6a49304c5459754e5441304c5445774c6a686a4c5441754d446379611d808601527f4c5441754e4467744d4334784d6930774c6a6b324c5441754d5451304c544575611da08601527f4e44526a4c5445754d4441344c4441754d7a4d324c5449754d4451734d433432611dc08601527f4c544d754d4463794c4441754e7a513044516f4a43516b4a43516c6a4c545175611de08601527f4e5445794c4441754e6a63794c546b754d7a45794c5441754d7a59744d544d75611e008601527f4d6a6b324c544d754d7a4579624441734d474d744d7934354f4451744d693435611e208601527f4e5449744e6934304d4467744e7934794d6a51744e7934774f4330784d533433611e408601527f4d7a5a6a4c5441754d5451304c5441754f5445794c5441754d6a45324c544575611e608601527f4f4449304c5441754d546b794c5449754e7a594e43676b4a43516b4a43574d74611e808601527f4d5334314d5449734d4334324d6a51744d7934774e7a49734d5334774f433030611ea08601527f4c6a59344c4445754d7a4a6a4c5455754d4445324c4441754e7a51304c544577611ec08601527f4c6a49354e6930774c6a4d344e4330784e4334324f4467744d7934324d6a5273611ee08601527f4d437777597930304c6a4d354d69307a4c6a49304c5463754d4467744e793435611f008601527f4f5449744e7934344d6a51744d544d754d44413444516f4a43516b4a43516c6a611f208601527f4c5441754d7a67304c5449754e4463794c5441754d6a67344c5455754d444532611f408601527f4c4441754d7a45794c5463754e446734597930784c6a55344e4377774c6a6379611f608601527f4c544d754d6a59304c4445754d6930304c6a6b324f4377784c6a51324e474d74611f808601527f4e4334344d6a51734d4334334d6930354c6a6b784d6930774c6a4d344e433078611fa08601527f4e4334784d7a59744d7934304f41304b43516b4a43516b4a597930304c6a4979611fc08601527f4e43307a4c6a45794c5459754f4445324c5463754e6a67744e7934314d7a5974611fe08601527f4d5449754e544130637a41754d7a67304c546b754f5445794c444d754e4467746120008601527f4d5451754d544d32614441754d444930624445774c6a6b354d6930784e4334356120208601527f4d44526a4d7934784d6930304c6a49304f4377334c6a59344c5459754f4445326120408601527f4c4445794c6a51344c5463754e544d3244516f4a43516b4a43516c444d5459336120608601527f4c6a41344e5377794e6a49754d4455324c4445334d6934784e7a4d734d6a597a6120808601527f4c6a45324c4445334e6934304d6a45734d6a59324c6a4934544445334e6934306120a08601527f4d6a45734d6a59324c6a4934544445334e6934304d6a45734d6a59324c6a49346120c08601527f544445334e6934304d6a45734d6a59324c6a49346569424e4d5463794c6a59316120e08601527f4d7977794f4441754e44593044516f4a43516b4a43516c6a4c5441754d6a67346121008601527f4c5445754f5451304c5445754d7a49744d7934334e6a67744d6934354e7a59746121208601527f4e4334354f544a324c5441754d444930597930784c6a59344c5445754d6a49306121408601527f4c544d754e7a49744d5334324e5459744e5334324f4467744d53347a4e6a686a6121608601527f4c5445754f5459344c4441754d6a67344c544d754e7a6b794c4445754d7a49746121808601527f4e5334774d5459734d6934354e7a594e43676b4a43516b4a435777744d5441756121a08601527f4f546b794c4445304c6a6734614441754d444930597930784c6a49304f4377786121c08601527f4c6a59344c5445754e6a67734d7934334e4451744d53347a4f5449734e5334326121e08601527f4f44686a4d4334794f4467734d5334354e4451734d53347a4d69777a4c6a63326122008601527f4f4377794c6a6b334e6977304c6a6b354d67304b43516b4a43516b4a597a45756122208601527f4e6a67734d5334794e4467734d7934334e4451734d5334324f4377314c6a59346122408601527f4f4377784c6a4d354d6e4d7a4c6a63324f4330784c6a4d794c4451754f546b796122608601527f4c5449754f546332624441754d4449304c4442734d5441754f546b794c5445306122808601527f4c6a6734614330774c6a41794e41304b43516b4a43516b4a517a45334d6934306122a08601527f4f4455734d6a67304c6a51334d6977784e7a49754f5451784c4449344d6934306122c08601527f4d4467734d5463794c6a59314d7977794f4441754e445930544445334d6934326122e08601527f4e544d734d6a67774c6a51324e4577784e7a49754e6a557a4c4449344d4334306123008601527f4e6a5236494530794d4445754d446b794c444d774d5334304d54594e43676b4a6123208601527f43516b4a43574d744d43347a4d5449744d6934784d7a59744d5334304e4330306123408601527f4c6a45314d69307a4c6a49324e4330314c6a51354e6e59774c6a41794e474d746123608601527f4d5334344e4467744d53347a4e6a67744e4334784d4451744d5334344e4467746123808601527f4e6934794e4330784c6a557a4e6d4d744d6934784e6977774c6a4d7a4e6930306123a08601527f4c6a45314d6977784c6a51304c5455754e5449734d7934794e6a514e43676b4a6123c08601527f43516b4a435777744d5445754e6a45324c4445314c6a63304e474d744d53347a6123e08601527f4e4451734d5334344e4467744d5334344d6a51734e4334784d4451744d5334316124008601527f4d5449734e6934794e474d774c6a4d784d6977794c6a457a4e6977784c6a51306124208601527f4c4451754d5449344c444d754d6a59304c4455754e446b32624441734d41304b6124408601527f43516b4a43516b4a597a45754f4451344c4445754d7a59344c4451754d5441306124608601527f4c4445754f4451344c4459754d6a51734d5334314d7a5a6a4d6934784e6930776124808601527f4c6a4d784d6977304c6a45314d6930784c6a51304c4455754e5449744d7934796124a08601527f4e6a52734d437777624445784c6a59784e6930784e5334334e44514e43676b4a6124c08601527f43516b4a43554d794d4441754f5451344c444d774e5334344d7a49734d6a41786124e08601527f4c6a51794f43777a4d444d754e5463324c4449774d5334774f5449734d7a41786125008601527f4c6a51784e6b77794d4445754d446b794c444d774d5334304d545a4d4d6a41786125208601527f4c6a41354d69777a4d4445754e4445326569424e4d6a497a4c6a49304e43777a6125408601527f4d6a49754d54557944516f4a43516b4a43516c6a4c5441754d6a51744d5334326125608601527f4f4330784c6a45774e43307a4c6a49304c5449754e5449744e4334794e7a4a326125808601527f4d4334774d6a526a4c5445754e4451744d5334774e5459744d7934784f5449746125a08601527f4d5334304e4330304c6a67304f4330784c6a45334e6d4d744d5334324e5459736125c08601527f4d4334794e43307a4c6a49784e6977784c6a45774e4330304c6a49304f4377796125e08601527f4c6a55304e4777744d4334784f5449734d4334794e41304b43516b4a43516b4a6126008601527f624330354c6a67344f4377784d7934304d545a324d4334774d6a526a4c5445756126208601527f4d4455324c4445754e4445324c5445754e4445324c444d754d5459344c5445756126408601527f4d5455794c4451754f444930597a41754d6a59304c4445754e6a67734d5334786126608601527f4d6a67734d7934794e4377794c6a55304e4377304c6a49334d6d77774c44414e6126808601527f43676b4a43516b4a43574d784c6a51784e6977784c6a41314e69777a4c6a45326126a08601527f4f4377784c6a51784e6977304c6a67304f4377784c6a45314d6d4d784c6a59346126c08601527f4c5441754d6a59304c444d754d6a51744d5334784d6a67734e4334794e7a49746126e08601527f4d6934314e44524d4d6a49794c6a45304d53777a4d6a634e43676b4a43516b4a6127008601527f43554d794d6a4d754d5449304c444d794e5334314f4451734d6a497a4c6a55776127208601527f4f43777a4d6a4d754f444d794c4449794d7934794e4451734d7a49794c6a45316127408601527f4d6e6f694c7a344e43676b4a43516b384c32632b44516f4a43516b384c32632b6127608601527f44516f4a435477765a7a344e43676b384c32632b44516f384c32632b44516f386127808601526d130cd38c969e8d1390d9cf4f488b60921b6127a086015251975197988998929592918291908a015e87019060208201905f8252519283915e01602001905f8252518092825e01905f8252518092825e015f815203601f19810182526136469082613793565b604051613654819282613769565b0390f35b634e487b7160e01b5f52602160045260245ffd5b61367861011c916138a1565b9261010d565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b3461367e57602036600319011261367e5761365460206136f860256136c56004356001600160a01b0316613834565b60405164f09fa49d2d60d81b858201528151909485928291018484015e81015f838201520301601f198101835282613793565b60405191829182613769565b3461367e57602036600319011261367e5761365460206136f860286137336004356001600160a01b03166137b5565b60405193849167021b7b6b830b1ba160c51b828401528051918291018484015e81015f838201520301601f198101835282613793565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761368257604052565b6001600160a01b03811615613810576137d9906306fdde0360045260045f52613d42565b908151156137e357565b90506040516137f3604082613793565b600d81526c3ab735b737bbb7103a37b5b2b760991b602082015290565b5060405161381f604082613793565b600581526422ba3432b960d91b602082015290565b8060601b1561387f57613852906395d89b4160045260045f52613d42565b9081511561385c57565b905060405161386c604082613793565b60038152623f3f3f60e81b602082015290565b5060405161388e604082613793565b600381526208aa8960eb1b602082015290565b9060405191608083016040526f30313233343536373839616263646566600f526002830190602882525f604a85015260601b60015f5b8080018601602284831a600f811651602384015360041c5191015301906014821461390557906001906138d7565b50506130786002825101915282528160228101907f8888888888888888888888888888888888888888888888888888888888888880602883201660015f5b601160f31b83821a02818001520190601482146139635790600190613943565b505060429180517f2020202020202020202020202020202020202020202020202020202020202020815f511660011c161890520180517f2020202020202020202020202020202020202020202020202020202020202020816020511660011c16189052565b600881101561365857806139ff57506040516139e5604082613793565b600a81526913db99481cd958dbdb9960b21b602082015290565b60018103613a355750604051613a16604082613793565b600f81526e4669667465656e207365636f6e647360881b602082015290565b60028103613a665750604051613a4c604082613793565b600a8152694f6e65206d696e75746560b01b602082015290565b60038103613a985750604051613a7d604082613793565b600b81526a54656e206d696e7574657360a81b602082015290565b60048103613adc5750604051613aaf604082613793565b601981527f4f6e6520686f757220616e642066697665206d696e7574657300000000000000602082015290565b60058103613b0a5750604051613af3604082613793565b60078152664f6e652064617960c81b602082015290565b60068103613b4e5750604051613b21604082613793565b601781527f536576656e206461797320616e64206f6e6520686f7572000000000000000000602082015290565b600703613b7e57604051613b63604082613793565b600b81526a546869727479206461797360a81b602082015290565b60405162461bcd60e51b8152602060048201526014602482015273155b9adb9bdddb881c995cd95d081c195c9a5bd960621b6044820152606490fd5b60028110156136585780613bf15750604051613bd7604082613793565b600a81526926bab63a34b1b430b4b760b11b602082015290565b600103613c2457604051613c06604082613793565b600e81526d436861696e2d737065636966696360901b602082015290565b60405162461bcd60e51b815260206004820152600d60248201526c556e6b6e6f776e2073636f706560981b6044820152606490fd5b90604051600a608082019360a083016040525f8552935b5f190193603082820601855304928315613c8c57600a90613c70565b809350608091030191601f1901918252565b6002613d3f91600d602094604051613cb7604082613793565b6001815260308780830193600b60fa1b8552604051998a976f3d913a3930b4ba2fba3cb832911d101160811b828a0152805191829101858a015e8701906c111610113b30b63ab2911d101160991b84830152805192839101603d83015e01019061227d60f01b84830152518092600f83015e01015f838201520301601f198101835282613793565b90565b60205f60609282825191620186a0fa15613d3f57506040518060200160403d1015613da7575b5f60203d806103e8106103e8821802188083853e840101535b80515f1a15613d9257600101613d81565b818103601f190182525f815260200160405290565b5f513d601f1901811115613dbc575b50613d68565b602081843e82513d829003601f1901811115613dd85750613db6565b90604092826020936103e8106103e88218021892839283875201903e82015f6020820152016040529056fea164736f6c634300081c000a","sourceMap":"1085:8212:36:-:0;;;;;;399:6063:65;;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2214:262:48;8755:335:35;-1:-1:-1;8755:335:35;;;-1:-1:-1;8755:335:35;-1:-1:-1;;;;;1085:8212:36;;3014:31:35;3010:104;;-1:-1:-1;9726:9:35;;;;8755:335;9726:9;1085:8212:36;9691:55:35;1085:8212:36;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;-1:-1:-1;1085:8212:36;;;;;;3237:647:35;;;;3433:10;3418:25;;3472:10;3457:25;;3513:12;3496:29;;3237:647;3894:44;;4029:38;;2258:13:48;2238:33;;2309:42;2258:13;1871:575:54;1742:710;1871:575;;;;;;;;;;;;;;;;;;;;;;;;;;1742:710;;2309:42:48;2281:70;;1085:8212:36;;2382:22:48;;;;-1:-1:-1;;;;;2382:22:48;;;;;;;;;;;;;;;-1:-1:-1;2382:22:48;;;;;2361:43;;5767:105;;;;2414:55;;2214:262::o;2382:22::-;;:::i;:::-;;:::i;3237:647:35:-;3722:30;3707:45;;3781:29;3766:44;;3841:32;3824:49;;3237:647;;1085:8212:36;;;3010:104:35;3068:35;;;-1:-1:-1;3068:35:35;;-1:-1:-1;3068:35:35","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c908162ad800c1461312757508062fdd58e146130eb57806301ffc9a7146130a757806303417d721461309057806306659b7f1461307b57806306e8cc181461306657806306fdde031461303c57806308e600ee14613027578063095bcdb614612f4e5780630a133cf214612f395780630d57fec914612f245780630f5eeadf14612f0f578063107d4ee414612ec857806310d8267214612dff57806312a1e6ea14612dea57806312d4888514612d7a57806312f9d21e14612d6557806313589bfe14612d50578063138cd81914612d2a578063144bd5b514612cc85780631486590714612cb3578063176f405a14612c525780631b98b63f14612c3d5780631bb81a8114612c285780631d474b1414612c135780631e2eaeaf14612bf7578063200f0c4d14612b8f578063206620a114612b3f57806325d7776b14612b155780632737edb914612afe57806327c777a914612a815780632a9c4d0d146129515780632acd5dc31461293c5780632c4bbd17146129255780632e3ff2f7146128c15780632e4d55cc146128ac57806331bbae3e1461286e57806332e2a80314612859578063341056c5146128445780633644e5151461282a578063393c33e21461272f5780633f458a19146127185780633f47e662146126fc5780634073c0cc146126d9578063409b3a7e146126c4578063414fd914146126af578063418a23f51461269a578063426a849314612636578063440a0ec3146125ed57806344b97d78146125ba5780634ad5205e146125a35780634c1024161461258c5780634d585fbf146125755780634e41a1fb146125015780634e55a548146124ea578063507cb46f1461249057806353e5006714612350578063548439e114612339578063558a7297146122c4578063577cdc64146122ad5780635920212814612296578063598af9e7146122605780635ac2ccf1146122495780635b15bfd9146121dd5780635b6016ec146121765780635d76a382146121615780635e6c91ff1461214c57806362a420bb1461211557806363f5b1ad146120d8578063648705561461209a578063671b3bd61461202a5780636a9a4c4414611f895780636af2791b14611f745780637003019014611f125780637112406d14611dc857806371f5012714611db1578063721f629214611d765780637423eb3c14611c9157806376d531d414611c7c5780638340f54914611c41578063843719f014611bf15780638678555914611bdc57806388d247c414611bc557806388da84d414611bae57806389ce066114611b59578063935ed2ba14611b1e5780639730f4fd14611b07578063996d3aac14611adc57806399cf8b9b146119e85780639be5f537146119d1578063a23941471461191c578063a4c7bd93146118e2578063aa41c87e14611895578063aa8b845d14611863578063b20abc481461184e578063b24849b714611824578063b3244389146117ee578063b4039fc2146117c1578063b54baefd1461178c578063b602ae021461174a578063b6363cf214611705578063b7ace047146116c0578063b8a5bbad14611682578063bc95bd7a14611637578063c4d195e8146115f0578063c8091041146115b4578063c87b56dd14611432578063ca6cc39f146113e5578063d204f11e1461139a578063d2a1805f14611379578063d34ddc8214611362578063d350188c1461134d578063d3917f3c146112ff578063d921f36a146112b8578063da15ee7f1461112f578063da2f268b146110e6578063db04bc72146110d1578063dbd035ff14611059578063dd589cfc14610fdc578063e0565c4914610f8e578063e05c6e7d14610f41578063e6c5b65414610ee6578063e8672f9314610ed1578063ea14532e14610e6a578063eaa6748314610e33578063eb19600814610df9578063eb35a6d214610d89578063eb43182114610d4d578063ebcbd7b514610cf6578063ecaca40e14610c8d578063eea77a7814610c18578063eed634ad14610c03578063eed9357214610bb8578063f135baaa14610b9c578063f23d923d14610b2e578063f2f0def114610ae9578063f340fa0114610ab8578063f44a345214610a5a578063f745381c14610a24578063f95d3d16146109ea578063fa1c55001461098a578063fb75fb6914610924578063fcfe431a146108c1578063fdc060e7146107d75763fe99049a14610655575f80fd5b60803660031901126107d3576106696131bd565b6106716131ff565b6044359160643561068d60016001605c1b038560a01c16614862565b9260018060a01b0383169260018060a01b038216945f60208160a460405194828052601c8601948591631a808f91885233868901528b60408901528c60608901528d60808901528a60a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a82293940603452602852336014526034602020541561077f575b84601452604060142080548084116107725783900390556028528360145260406014208054908282019182106107655755335f526020525f516020615f655f395f51905f5260405fa45f603452602060405160018152f35b6389560ca15f526004601cfd5b63f4d678b85f526004601cfd5b845f5260545f20805460018101610798575b505061070d565b8084116107ab5783900390555f80610791565b63deda90305f526004601cfd5b3d1517156107cb5763014c931060a49252fd5b3d5f803e3d5ffd5b5f80fd5b346107d3576107e536613408565b608081015f806107f5838561377f565b905f915b80831061089c5750505061088a576108796035928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b809335613fcf565b614012565b61377f565b9061527d565b602060405160018152f35b634e487b715f5260116020526024601cfd5b90919260019060206108af8685876138cd565b013580960195861017930191906107f9565b346107d357602061091a601760356108d8366133d4565b6101806108f96108f36108ed83850185613c23565b90614bee565b83615c0a565b9290919361090b610160820135613c58565b926109146137c8565b95614d26565b6040519015158152f35b346107d357602061091a603461093936613249565b61095b61095361094d610100840184613898565b90614e53565b826030615651565b9061010061096b3615848461532d565b916109796001361517613cdd565b926109826137c8565b946021615e45565b346107d357602061091a603461099f3661327d565b6109bb6109b36108ed610100840184613c23565b826031615651565b906109c960e0820135613c58565b6101006109d96002361517613cdd565b926109e26137c8565b946026615e45565b346107d357602061091a60356109ff36613215565b610120610a10604036151783615bc9565b92919390610a1c6137c8565b946024615e45565b346107d357602061091a60176034610a3b3661333c565b610a4481615571565b90610100610a506137c8565b93361592806152df565b346107d357602061091a6035610a6f36613249565b610a8a610a826108ed60e0840184613c23565b82602b615651565b9060e0610a993615848461532d565b91610aa76001361517613cdd565b92610ab06137c8565b94601f615e45565b60203660031901126107d3576020610ad6610ad16131bd565b614320565b610ae134823361437c565b604051908152f35b346107d357602061091a60176035610b00366133a0565b610b19610b1361094d60e0840184613898565b82615834565b9060e0610b246137c8565b93361592806151a7565b346107d357602061091a6035610b4336613215565b3615610100610b73610b6b60408417859060e0910160c08101355f52013560205260405f2090565b846030615651565b92610b8b6002610b8485878561532d565b9417613cdd565b92610b946137c8565b946023615e45565b346107d35760203660031901126107d3576004355c5f5260205ff35b346107d357602061091a6035610bcd36613215565b610be7610be16108ed610140840184613c23565b82615b8a565b9091610140610bfa610120830135613c58565b916109e26137c8565b346107d357602061091a6034610bcd36613215565b346107d357602061091a6035610c2d366133d4565b361590610c5b610c5360808417839060e0910160c08101355f52013560205260405f2090565b826032615651565b91610140610c6a82858561532d565b92610c7e6002610b84610120840135613c58565b93610c876137c8565b95614239565b346107d35760a03660031901126107d3576020610ca86131bd565b610cd9610cc4610cb66131ff565b610cbf846148dc565b6142e2565b91610ccd6139d1565b8260443591339061487c565b610ce1613baa565b610ae1610258361517608435606435336141b4565b346107d357602061091a6034610d0b366134d1565b610180610d326108f360c0361517849060e0910160c08101355f52013560205260405f2090565b92909193610d44610160820135613c58565b92610c876137c8565b346107d357602061091a6034610d623661327d565b610120610d7d610d7761094d83850185613898565b83615baa565b929193906109826137c8565b346107d35760203660031901126107d3576020600435610ae162ffffff77278d00094890015180000f3c00025800003c00000f000001601860078560fc1c16021c1642018281610df38195339190604051926014526341d0e04b5f526034526038601c2091604052565b556148f6565b346107d357602061091a6035610e0e3661333c565b610100610e1a826155cc565b919092610e2a6002361517613cdd565b92610a1c6137c8565b346107d357602061091a6034610e48366133a0565b610e5b610a8261094d60e0840184613898565b9060e061096b3615848461532d565b346107d357602061091a60176034610e813661333c565b610e95610c5361094d610140840184613898565b90610ea23615838361532d565b90610140610eb4610120830135613c58565b91610ec26002361517613cdd565b93610ecb6137c8565b956151a7565b346107d357602061091a60346109ff36613215565b346107d357602061091a6034610efb3661327d565b610f20610f188260e09060c08101355f52013560205260405f2090565b82602f615651565b90361560c0610f3160028317613cdd565b92610f3a6137c8565b9480614239565b346107d357602061091a6035610f563661333c565b610f5f81615250565b90610f6d60e0820135613c58565b610100610f7d6002361517613cdd565b92610f866137c8565b946025615e45565b346107d357602061091a6034610fa336613215565b6101003615610fd1610fcb60408317859060e0910160c08101355f52013560205260405f2090565b84615b66565b929093610f3a6137c8565b346107d357602061091a610fef3661343b565b6040515f516020615fa55f395f51905f528152338482015233604082015261103f8260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b608061104d60a084016137b4565b92013591336034615c31565b346107d35760203660031901126107d3576004356001600160401b0381116107d357611089903690600401613370565b6040519160408360208152836020820152019160051b8301916020806040850193925b83355481520191019084838210156110c85750602080916110ac565b60408186030190f35b346107d357602061091a6034610a6f36613249565b346107d35760403660031901126107d35760206004356111046131ff565b906040519183526303f37b1a600c52806040526001603760282054918360405260ff161b1615158152f35b6101603660031901126107d3576111446131bd565b6024356001600160401b0381116107d35761116390369060040161346e565b61116e9291926131d3565b5060a4359060088210156107d357600260c43510156107d35760e43591610104359460038610156107d357610124356001600160401b0381116107d3576111b990369060040161330f565b9661014435906001600160401b0382116107d357869588926111df90369060040161330f565b6111ed8584899e949e614984565b96819f939183839b949b0160051b90602001209561120b8b84614a8c565b83839992993615976001891792611221946143c6565b9f9091604051925f5260205260405260605f206080890152604052601f19916002811460061b90600114600b020190801515010160f301169060071b01610180019060c01761126f94613e72565b611279948a614b38565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff16916112a6936141b4565b6040516112b48192826135c0565b0390f35b346107d357602061091a601760356112cf366132db565b6101806112e46108f361094d83850185613898565b929091936112f6610160820135613c58565b92610ecb6137c8565b346107d357602061091a6035611314366133d4565b61014061134161133b6080361517849060e0910160c08101355f52013560205260405f2090565b83615bd9565b92919390610b946137c8565b346107d357602061091a6034610e0e3661333c565b346107d357602061091a60176034610b00366133a0565b346107d357602061091a603561138e366132db565b610140610a10826155f4565b346107d357602061091a601760346113b13661343b565b6113c4610a8261094d60a0840184613898565b90361560a06113d560018317613cdd565b926113de6137c8565b94806151a7565b346107d357602061091a60356113fa36613215565b61140381615250565b9061141160e0820135613c58565b6101006114216002361517613cdd565b9261142a6137c8565b946022615e45565b346107d35760203660031901126107d357604051600435608082016001600160401b038111838210176115a05760409081525f60208401818152918401818152606085019182526001600160a01b03848116865261149c60a086901c60016001605c1b0316614862565b16835260078460fc1c16600881101561158c5781528360ff1c90600282101561158c5790825260405163d637ca8d60e01b815294516001600160a01b03908116600487015292519092166024850152905161150b91906115009060448601906135a6565b5160648401906135b3565b60848201525f8160a4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575b5060405191829182613193565b61157b91503d805f833e61157381836135f9565b810190613635565b82611552565b6040513d5f823e3d90fd5b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b60403660031901126107d3576004356001600160401b0381116107d3576115e261087f91369060040161346e565b6115ea6131ff565b916138dd565b346107d357602061091a601760356116073661327d565b61162161161b6108ed610100840184613c23565b82615b66565b9061010061162d6137c8565b9336159280614d26565b346107d357602061091a6017603561164e366133a0565b611661610f186108ed60c0840184613c23565b90361560c061167260028317613cdd565b9261167b6137c8565b9480614d26565b346107d357602061091a60176034611699366133a0565b6116a281615516565b90361560a06116b082613cdd565b926116b96137c8565b94806152df565b346107d357602061091a601760346116d736613249565b6116f4610f188260e09060c08101355f52013560205260405f2090565b90361560c06116b060028317613cdd565b346107d35760403660031901126107d35761171e6131bd565b6117266131ff565b9067edcaa89a822939406020526014525f5260206034600c20546040519015158152f35b346107d357602061091a603561175f36613249565b361561176d81836028615651565b9061177781613cdd565b916117806137c8565b9360a083179180614239565b346107d357602061091a601760346117a336613249565b6117b6610b136108ed60e0840184613c23565b9060e061162d6137c8565b346107d357602061091a60346117d63661327d565b60e06117e182615524565b919092610e2a3615613cdd565b346107d357602061091a603461180336613215565b61014061181861133b6108ed83850185613c23565b92919390610ab06137c8565b346107d357602061091a60346118393661333c565b610120611818610d776108ed83850185613c23565b346107d357602061091a60356118393661333c565b602061187c610ae1611874366132b1565b939091614320565b9261188834853361437c565b61025836151791336141b4565b346107d357602061091a60346118aa3661333c565b6118be610be161094d610140840184613898565b90916101406118d1610120830135613c58565b916118da6137c8565b946027615e45565b346107d357602061091a60346118f7366132db565b61190081615542565b9091610140611913610120830135613c58565b91610f866137c8565b346107d35761192a36613408565b608081015f8061193a838561377f565b905f915b8083106119ac5750505061088a576108796034928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b90919260019060206119bf8685876138cd565b0135809601958610179301919061193e565b346107d357602061091a6017603461164e366133a0565b6101203660031901126107d3576119fd6131bd565b506024356001600160401b0381116107d357611a1d90369060040161346e565b611a256131d3565b50600860a43510156107d357600260c43510156107d35760e435916001600160a01b03831683036107d35761010435906001600160401b0382116107d3576112b493611aca611a7b611ad094369060040161330f565b959093611a89848383614984565b9592611ab660c09b9399929b361592611aa460848517613d1e565b611aae8d83614a8c565b949094613db8565b608084015260071b61022001921790613e72565b86614b38565b604051918291826135c0565b346107d357602061091a60176034611af33661327d565b611afc81615774565b9060e0610a506137c8565b346107d357602061091a601760346116073661327d565b346107d357602061091a60176034611b3536613539565b611b48610f1861094d60c0840184613898565b90361560c06113d560028317613cdd565b346107d357602061091a6035611b6e366133d4565b611b92610be16080361517839060e0910160c08101355f52013560205260405f2090565b9091610140611ba5610120830135613c58565b9161142a6137c8565b346107d357602061091a60176035610e813661333c565b346107d357602061091a60176035611b3536613539565b346107d357602061091a603461175f36613249565b346107d357602061091a60176035611c08366132db565b611c118161559c565b9091610140611c24610120830135613c58565b91611c326002361517613cdd565b93611c3b6137c8565b956152df565b346107d3576020611c63611c74611c573661356c565b919390610cbf856148dc565b8093611c6d6139d1565b339061487c565b610ae1613baa565b346107d357602061091a6035610efb3661327d565b346107d3575f3660031901126107d357323303611d67577f00000000000000000000000000000000000000000000000000000000000000008015611d5c575b611d4d575f8080807f0000000000000000000000000000000000000000000000000000000000000000600a5a04fa3d15611d48573d611d0e8161361a565b90611d1c60405192836135f9565b81525f60203d92013e5b15611d39575f805460ff19166001179055005b6370a4078f60e01b5f5260045ffd5b611d26565b630f45b98b60e41b5f5260045ffd5b5060ff5f5416611cd0565b63096650c560e21b5f5260045ffd5b346107d357602061091a60176035611d8d36613539565b611da0610a826108ed60a0840184613c23565b90361560a061167260018317613cdd565b346107d357602061091a60176035611699366133a0565b346107d357611dd63661349e565b60608101611de48183613898565b8060069492941b81810460401482151715611efe57611e0290614bad565b935f915f5b818110611e955750505061088a57611e4d81611e2d856020611e52975191012082615373565b611e476039611e3c8785613898565b6020860135916140ed565b90614012565b613898565b5f5b818110611e6657602060405160018152f35b80611e8f6034611e796001948688614192565b611e86602082018261377f565b9091359161527d565b01611e54565b611ea0818385614192565b5f90611eaf602082018261377f565b905f915b808310611ed957505050906040839260019460061b8b0190356020820152015201611e07565b9091976001906020611eec8b85876138cd565b01358096019586101798019190611eb3565b634e487b7160e01b5f52601160045260245ffd5b346107d35760203660031901126107d357600435611f4981339190604051926014526341d0e04b5f526034526038601c2091604052565b805415611f5f57905f61087f92553615906148f6565b5063e632dbad5f52336020526040526044601cfd5b346107d357602061091a6034610c2d366133d4565b346107d3576080611f9936613408565b611fed611fe460608301611fde84611fc6611fb4848361377f565b6040519060061b809282372082615373565b611e47611fd3858461377f565b60208501359161406f565b8361377f565b939092016137b4565b905f5b83811061200257602060405160018152f35b8061202361201360019387866138cd565b6020810135903586336035615c31565b5001611ff0565b346107d35760c03660031901126107d3576120436131bd565b61204b6131ff565b906044359160088310156107d3576064359160028310156107d357612087611c74926020956120786131e9565b95612082856148dc565b61434b565b80936120916139d1565b6084359261487c565b346107d357602061091a601760356120b136613505565b6101806120bd82615626565b929091936120cf610160820135613c58565b92611c3b6137c8565b346107d357602061091a60346120ed3661333c565b361560e061210060408317846028615651565b92610b8b61210f84868461532d565b93613cdd565b346107d357602061091a6017603561212c36613249565b61214061161b61094d610100840184613898565b90610100610b246137c8565b346107d357602061091a6034611b6e366133d4565b346107d357602061091a60356118aa3661333c565b60603660031901126107d3576004356001600160401b0381116107d3576121a190369060040161346e565b602435906001600160401b0382116107d3576020926121d46121ca61091a94369060040161346e565b92909333916138dd565b60443591614159565b346107d35760203660031901126107d357608060043561224761220b60016001605c1b038360a01c16614862565b604080516001600160a01b038086168252909216602083015290929061223a90840160fc83901c6007166135a6565b606083019060ff1c6135b3565bf35b346107d357602061091a601760346108d8366133d4565b346107d35761226e3661356c565b9167edcaa89a822939406034526028526014525f52602060545f20545f603452604051908152f35b346107d357602061091a60176034611d8d36613539565b346107d357602061091a6017603461212c36613249565b60403660031901126107d3576122d86131bd565b602435908115158092036107d35767edcaa89a82293940602052336014525f52806034600c2055602052600c5160601c337fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267602080a3602060405160018152f35b346107d357602061091a601760356113b13661343b565b346107d3576101803660031901126107d35761236a6131bd565b6123726131d3565b9061237b6131e9565b5060c43560088110156107d357600260e43510156107d3576101043590610124359060038210156107d357610144356001600160401b0381116107d3576123c690369060040161330f565b94909261016435956001600160401b0387116107d35787966123ec90369060040161330f565b9890916123f885613d53565b839d93969297919436159b61240e938d936143c6565b9990604051905f52866020528b60405260605f20610100860152604052601f1961016085015161017f0116906101401761244794613e72565b61245093613eca565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff169161247d936141b4565b612485613baa565b604051908152602090f35b60803660031901126107d3576124a46131bd565b60243560088110156107d3576044359060028210156107d357606435916001600160a01b03831683036107d357602093610ae1926124e1926142b1565b9182349161437c565b346107d357602061091a601760356117a336613249565b346107d35760203660031901126107d357604051634e41a1fb60e01b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575060405191829182613193565b346107d357602061091a601760346120b136613505565b346107d357602061091a60176034611c08366132db565b346107d357602061091a60176035611af33661327d565b346107d357602061091a60346125cf3661333c565b6125d881615774565b9060e06125e36137c8565b9336159280614239565b346107d3576040612627612600366132b1565b91605892601c926040519260148401526368a30dd083526034830152605482015201205490565b81519042811182526020820152f35b61263f366132b1565b909167edcaa89a8229394060345233602852601452815f528060545f20555f5260205160601c337fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a760205fa45f603452602060405160018152f35b346107d357602061091a6035610d0b366134d1565b346107d357602061091a603461138e366132db565b346107d357602061091a6034610f563661333c565b346107d35760603660031901126107d35761087f604435602435600435336141b4565b346107d35760203660031901126107d357602060405160128152f35b346107d357602061091a60176035610a3b3661333c565b346107d35761273d3661349e565b6060810161274b8183613898565b8060069492941b81810460401482151715611efe5761276990614bad565b935f915f5b8181106127c15750505061088a57611e4d81611e2d856020612794975191012082615373565b5f5b8181106127a857602060405160018152f35b806127bb6035611e796001948688614192565b01612796565b6127cc818385614192565b5f906127db602082018261377f565b905f915b80831061280557505050906040839260019460061b8b019035602082015201520161276e565b90919760019060206128188b85876138cd565b013580960195861017980191906127df565b346107d3575f3660031901126107d3576020610ae16137c8565b346107d357602061091a60356118f7366132db565b346107d357602061091a60346113fa36613215565b346107d35760403660031901126107d3576004356001600160401b0381116107d35761091a6128a3602092369060040161346e565b60243591614159565b346107d357602061091a60356125cf3661333c565b346107d35760603660031901126107d3576004356128dd6131ff565b60408051336014526341d0e04b5f5260348490526038601c209152544281119015176129145761091a906020926044359133613697565b50639287bcb05f526020526024601cfd5b346107d357602061091a601760346112cf366132db565b346107d357602061091a603561099f3661327d565b346107d35760403660031901126107d35761296a6131bd565b6024356001600160401b0381116107d35761298990369060040161330f565b6001600160a01b03909216916055811491338414843b1515179183612a35575b50501715612a25576129ba81613ef9565b806744036fc77deaed23605c1b1791825480612a1157508060209355815f5282527fc54dcaa67a8fd7b4a9aa6fd57351934c792613d5ec1acbd65274270e6de8f7e460405fa16001600160601b0360405191168152f35b8263c18b0e975f526020526040526044601cfd5b634e7f492b5f526020526024601cfd5b809192935015612a6d57808260405137604051206001600160a01b031683146001600160f81b031991358216909114169083806129a9565b634e487b7160e01b5f52603260045260245ffd5b346107d357602061091a612a943661343b565b6040515f516020615fa55f395f51905f5281523384820152336040820152612ae48260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b6080612af260a084016137b4565b92013591336035615c31565b346107d357602061091a601760356116d736613249565b346107d357602061091a6035612b2a3661333c565b610140610d7d61133b61094d83850185613898565b346107d357602061091a6035612b5436613249565b612b686109b361094d610100840184613898565b90612b7660e0820135613c58565b610100612b866002361517613cdd565b926118da6137c8565b346107d3576080612b9f36613408565b612bba611fe460608301611fde84611fc6611fb4848361377f565b905f5b838110612bcf57602060405160018152f35b80612bf0612be060019387866138cd565b6020810135903586336034615c31565b5001612bbd565b346107d35760203660031901126107d357600435545f5260205ff35b346107d357602061091a6034611314366133d4565b346107d357602061091a60356120ed3661333c565b346107d357602061091a6035610fa336613215565b346107d357602061091a60176034612c6936613215565b612c7d610c536108ed610140840184613c23565b90612c8a3615838361532d565b90610140612c9c610120830135613c58565b91612caa6002361517613cdd565b936109146137c8565b346107d357602061091a603561180336613215565b346107d35760403660031901126107d357612d06612ce46131bd565b602435909190604051926014526341d0e04b5f526034526038601c2091604052565b546040518115154283116002030291600383101561158c5760409282526020820152f35b346107d357602061091a6035612d3f366132db565b610120611341604036151783615bc9565b346107d357602061091a6035610e48366133a0565b346107d357602061091a6034610b4336613215565b346107d35760203660031901126107d3576004356001600160401b0381116107d357612daa903690600401613370565b90612dbc612db733613ef9565b613fa8565b809160051b01905b818110612dd657602060405160018152f35b602090612de4338235613fcf565b01612dc4565b346107d357602061091a6034612b2a3661333c565b346107d3576101403660031901126107d357612e196131bd565b612e216131d3565b50612e2a6131e9565b50600860c43510156107d357600260e43510156107d35761010435906001600160a01b03821682036107d357610124356001600160401b0381116107d357602092612ead92612e80611c7493369060040161330f565b929091612ec3361594612e9560a48717613d1e565b94612e9f84613d53565b9b839c9a939991929a613db8565b6101008201526101406102008317921790613e72565b613eca565b346107d357602061091a6034612edd3661327d565b612ef16109536108ed610100840184613c23565b90610100612f013615848461532d565b91610aa76002361517613cdd565b346107d357602061091a6035612edd3661327d565b346107d357602061091a6034612d3f366132db565b346107d357602061091a603561093936613249565b612f57366132b1565b612f6f60016001605c1b038360a09594951c16614862565b9160018060a01b038116925f60208160a460405194828052601c8601948591631a808f91885233868901523360408901528a60608901528b60808901528960a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a8229394060205233601452835f5260405f208054808411610772578390039055601452825f5260405f208054908282019182106107655755335f52602052335f516020615f655f395f51905f5260405fa4602060405160018152f35b346107d357602061091a6035610d623661327d565b346107d3575f3660031901126107d357602080526b0b54686520436f6d70616374604b5260606020f35b346107d357602061091a60356117d63661327d565b346107d357602061091a6034612b5436613249565b346107d357602061091a60176035612c6936613215565b346107d35760203660031901126107d3576004356001600160e01b0319811681036107d35760209060e01c604051906301ffc9a7630f632fb3821491141715158152f35b346107d35760403660031901126107d3576131046131bd565b67edcaa89a822939406020526014526024355f52602060405f2054604051908152f35b346107d35760203660031901126107d357622b600360e21b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f5750604051918291825b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036107d357565b608435906001600160a01b03821682036107d357565b60a435906001600160a01b03821682036107d357565b602435906001600160a01b03821682036107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101209082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101409082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024359060443590565b60206003198201126107d357600435906001600160401b0382116107d3576101a09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d357602083818601950101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101609082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460051b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101c09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760a09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760c09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460061b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d35760809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576102009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101e09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760e09082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024356001600160a01b03811681036107d3579060443590565b90600882101561158c5752565b90600282101561158c5752565b60206040818301928281528451809452019201905f5b8181106135e35750505090565b82518452602093840193909201916001016135d6565b90601f801991011681019081106001600160401b038211176115a057604052565b6001600160401b0381116115a057601f01601f191660200190565b6020818303126107d3578051906001600160401b0382116107d3570181601f820112156107d3578051906136688261361a565b9261367660405194856135f9565b828452602083830101116107d357815f9260208093018386015e8301015290565b909291926136a36139d1565b6001600160a01b0384168061372457505f9081808538935af115613717575b67edcaa89a8229394060205280601452825f5260405f209182549283821161077257815f9403905533835260205260018060a01b03165f516020615f655f395f51905f52604083a4613712613baa565b600190565b63b12d13eb5f526004601cfd5b9091926137313083613b85565b9260145260345263a9059cbb60601b5f5260205f6044601082855af13d1560015f51141716156137725761376a905f6034523090613b85565b9003906136c2565b6390b8ec185f526004601cfd5b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160061b360383136107d357565b356001600160a01b03811681036107d35790565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046186138135790565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208201527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60408201524660608201523060808201522090565b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160051b360383136107d357565b9190811015612a6d5760061b0190565b91906138e76139d1565b82359060018060a01b03821615916020850135341415831634158414178215176139c4578060016001605c1b03849260a01c1661392381613fa8565b936139b2575b505b81811061394157505050505061393f613baa565b565b61394c8183876138cd565b80359060016001605c1b038260a01c166001600160601b0386168103613991575b506001929161398b916020013590876001600160a01b03821661487c565b0161392b565b61398b919550916020836139a760019695613fa8565b96925050919261396d565b6139be9034908661437c565b5f613929565b63ca0fc08e5f526004601cfd5b7f000000000000000000000000000000000000000000000000000000000000000080600414613b595780600314613b475780600914613b105780600a14613ad357600814613a2d57634e487b7160e01b5f52605160045260245ffd5b613a43361568929eee149b4bd212686028615651565b805b613ac357507f000000000000000000000000000000000000000000000000000000000000000080600214613a9c57600114613a8e57634e487b7160e01b5f52605160045260245ffd5b3368929eee149b4bd212685d565b505f5460ff1615613ab5573368929eee149b4bd212685d565b3368929eee149b4bd2126855565b63f57c448b5f526020526024601cfd5b5060e0604036151768929eee149b4bd212680160c08101355f520135602052613b0a60405f2068929eee149b4bd212686031615651565b80613a45565b5068929eee149b4bd21328355f90815268929eee149b4bd213483560205260409020613b0a9068929eee149b4bd21268602f615651565b5068929eee149b4bd212685c80613a45565b505f5460ff1615613b755768929eee149b4bd212685c80613a45565b68929eee149b4bd2126854613b0a565b602460106020939284936014526370a0823160601b5f525afa601f3d11166020510290565b7f000000000000000000000000000000000000000000000000000000000000000080600614613bfc57600514613bee57634e487b7160e01b5f52605160045260245ffd5b5f68929eee149b4bd212685d565b505f5460ff1615613c15575f68929eee149b4bd212685d565b5f68929eee149b4bd2126855565b903590601e19813603018212156107d357018035906001600160401b0382116107d3576020019160608202360383136107d357565b60a090604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208301527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d604083015260608201523060808201522090565b90604051915f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f5260405260051b5191604052565b60a0906080604051917fe055493563385cc588fffacbffe2dab023fef807baa449530431169b0eeb5b69835260208301372090565b90613d5c6139d1565b613d7c613d7460a43560c43560e435612082876148dc565b923090613b85565b906040519063137c29fe82526080600460208401373060a083015260243560c083015260843560e0830152610140610120830152610160820190565b60807f63697069656e7429546f6b656e5065726d697373696f6e73286164647265737391609681527f436f6d706163744465706f736974207769746e65737329436f6d70616374446560208201527f706f736974286164647265737320616c6c6f6361746f722c75696e743820726560408201527f736574506572696f642c75696e74382073636f70652c6164647265737320726560608201527520746f6b656e2c75696e7432353620616d6f756e742960968201520152565b9093805f9493601c92869582613e86614eaf565b9987015260408387018360208201520137016024019101826e22d473030f116ddee9f6b43ac78ba35af11615613eb857565b3d6107cb57637f28c61e5f526004601cfd5b613ed8909291923090613b85565b9283811015613eec5761393f93039161437c565b63426d8dcf5f526004601cfd5b6affffffffffffffffffffff6a7fffffffffffffffffffff8260491c16818360481c16178060021c178060041c178060081c178060101c178060201c176755555555555555558160011c169003673333333333333333808260021c169116018060041c01670f0f0f0f0f0f0f0f660f0f0f0f0f0f0f8260081c169116018060101c01911690690fedcba9876543210000600f60581b91607f600319918060201c0116604803161c60581b161790565b6744036fc77deaed23605c1b81175415613fbf5750565b63cf90c3a85f526020526024601cfd5b604051916020526303f37b1a600c5280604052603760282090600182549160ff161b9080821661400157179055604052565b63dbc205b160601b600c526044601cfd5b916140206040820135614f51565b803590601e19813603018212156107d35701918235926001600160401b0384116107d3576020019280360384136107d35761393f93614069916140616137c8565b918585614f6c565b336150bc565b90929183159161408185826038615aa0565b9161409561408e84614862565b8092613fcf565b946001600160601b0360019316905b8084106140c257505050506140b557565b633a03d3bb5f526004601cfd5b90919293600190836001600160601b036140df8886896038615b0a565b1614151794019291906140a4565b919093928415926140ff868284615aa0565b9261410c61408e85614862565b956001600160601b0360019416915b81851061412d5750505050506140b557565b9091929394600190846001600160601b0361414a8987878b615b0a565b1614151795019392919061411b565b91905f5b81811061416d5750505050600190565b8061418c8461417f60019486896138cd565b60208101359035336141b4565b0161415d565b9190811015612a6d5760051b81013590603e19813603018212156107d3570190565b91929092604051908360148301526368a30dd082526034820194855260548201526058601c8201208242019262278d00811182548510176142295750829055607401526001600160a01b0316907ff78a2f33ff80ef4391f7449c748dc2d577a62cd645108f4f4069f4a7e0635b6a90606090a2565b631f9a96f45f526020526024601cfd5b939195909497969286019586359560208801359760608101359861425d89876152bf565b89811061429c575091614299999a93916142939593604060018060a01b03910135169760016001605c1b038a60a01c1690614c4a565b90615c31565b90565b8990633078b2f65f526020526040526044601cfd5b90916142bc81613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b171790565b6142eb82613ef9565b6744036fc77deaed23605c1b81175490921861430f57600360fc1b9160a01b171790565b5063cf90c3a85f526020526024601cfd5b61432981613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b600360fc1b1790565b9261435581613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b17171790565b909167edcaa89a8229394060205281601452825f5260405f208054908282019182106107655755335f5260205260018060a01b03165f5f516020615f655f395f51905f52604082a4565b939194925f9160208601925f935f9515908161481f575b85156147ce575b505f92801561473a575b5f1981011561469b575b83156145e1575b8415614460575050508184959697823701946e75696e7432353620616d6f756e7429600e8701527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19870152600e81870301905280850390209303902090565b91985096935083919450600e925060051b936e75696e7432353620616d6f756e7429838201527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19820152030190526040519261456d575b83156144f9575b5f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f526040525191604052565b7f45012d42fad8c9e937cff5a2d750ee18713dd45aadcd718660d5523056618d995f527fc2e16a823b8cdddfdf889991d7a461f0a19faf1f8e608f1c164495a52151cc3e6020527fd2f6ad391328936f118250f231e63c7e639f9756a9ebf972d81763870a772d87604052805193506144c0565b7f2bf981c42c7f423b06fa49ba996d2930887e2f1f53d9a26b8c7423ac1cf83e615f527fd14445d78213a5acddfa89171b0199de521c3b36738b835264cae18f5a53dbf36020527f329b3c527a3c74b8cabc51c304669d1866b87352cafdf440ef2becd6dc261d1e604052805193506144b9565b7f4d756c7469636861696e436f6d7061637420636f6d70616374294d756c74696387527f6861696e436f6d7061637428616464726573732073706f6e736f722c75696e7460208801527f323536206e6f6e63652c75696e7432353620657870697265732c5365676d656e60408801526f5d20696473416e64416d6f756e74732c60708801527f697465722c75696e7432353620636861696e49642c75696e743235365b325d5b6060880152601a87019660900193506143ff565b7f4261746368436f6d7061637420636f6d70616374294261746368436f6d70616387527f74286164647265737320617262697465722c616464726573732073706f6e736f60208801527a75696e743235365b325d5b5d20696473416e64416d6f756e74732c605b8801527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60408801526015870196607b0193506143f8565b7f436f6d7061637420636f6d7061637429436f6d7061637428616464726573732087527f617262697465722c616464726573732073706f6e736f722c75696e743235362060208801526f2c75696e7432353620616d6f756e742c60508801527f6e6f6e63652c75696e7432353620657870697265732c75696e743235362069646040880152601087019660700193506143ee565b7569766174696f6e2875696e743235365b5d206964732c60368a01527f426174636841637469766174696f6e207769746e65737329426174636841637490526056880195506038880194505f6143e4565b686e743235362069642c60298a01527f41637469766174696f6e207769746e6573732941637469766174696f6e28756981526049890196506033890195506143dd565b6744036fc77deaed23605c1b81175491908215613fbf5750565b91906148883084613b85565b9260405194606052306040523360601b602c526323b872dd60601b600c5260205f6064601c82855af13d1560015f51141716156148cf5761393f945f606052604052613eca565b637939f4245f526004601cfd5b8060601b156148e85790565b63961c9a4f6040526024605cfd5b908015155f52602052337fe27f5e0382cf5347965fc81d5c81cd141897fe9ce402d22c496b7c2ddc84e5fd60405fa3565b6001600160401b0381116115a05760051b60200190565b9061494882614927565b61495560405191826135f9565b8281528092614966601f1991614927565b0190602036910137565b8051821015612a6d5760209160051b010190565b919261498e6139d1565b6001600160a01b03833516159260208101353490811415851690158514178315176139c45783926149c660843560a43560c4356142b1565b956149d08261493e565b94614a6d575b50848103956149e48761493e565b925f925f5b898110614a0857505050506149fb5790565b630f2f1e515f526004601cfd5b80614a598a600193979596970194614a29614a2487878a6138cd565b6137b4565b90848060a01b0382166001600160601b0360a01b8a1617988911151797614a5181978d614970565b523090613b85565b614a638289614970565b52019291926149e9565b614a799087349161437c565b835115612a6d578560208501525f6149d6565b91604051918360061b8460071b9160061b6024350163fe8ec1a7855260c06020860152816101400160408601526004356060860152826101600160a0860152606060e0860152604435610100860152606435610120860152856101408601528160248201610160870137818501956101608701525f5b828110614b185750939450508301610180019150565b806040918801306101808201526101a06044838601013591015201614b02565b83515f96909594939290875b878110614b5f575050505050505050613eec5761393f613baa565b80614ba783600193019a614b818c614b7c614a2430928c8b6138cd565b613b85565b90614b9d614b8f858c614970565b519183831015179d89614970565b519103908a61437c565b01614b44565b90614bb78261361a565b614bc460405191826135f9565b8281528092614966601f199161361a565b9015612a6d5790565b9190811015612a6d576060020190565b8160061b82810460401483151715611efe57614c0990614bad565b915f5b818110614c20575050506020815191012090565b80614c2e6001928486614bde565b604060208360061b880192803582850152013591015201614c0c565b60408401356001600160a01b031697969095939486948994919387358801936020890135890192909183359190614c8460808c0135614f51565b614c8d90614862565b6060819b013590614c9d91613fcf565b86811502019181151587841415179081159b614cd49961393f9d614cf0575b505050614cda575b5050508582359260200191614f6c565b846150bc565b614ce8926020018c89614f6c565b5f8080614cc4565b614d1b9350605892601c926040519260148401526368a30dd083526034830152605482015201205490565b4210155f898e614cbc565b98979380959196614d6b939894890198893581019860208a81019a359b013597614d63614d538d8d614bd5565b3560a01c60016001605c1b031690565b9d8e91615e45565b90614d768686614bd5565b95614d9f6020614d93878a35809b6040810135948591013561535c565b83151798868686615c31565b506001600160601b0360019916985b818110614dc7575050505050505061371291925061536d565b614dd2818389614bde565b80359889918860408201359b8c926020013592614dee9361535c565b8c8360a01c60016001605c1b03161415171798614e0d91878787615c31565b50600101614dae565b9015612a6d57803590605e19813603018212156107d3570190565b9190811015612a6d5760051b81013590605e19813603018212156107d3570190565b8160061b82810460401483151715611efe57614e6e90614bad565b915f5b818110614e85575050506020815191012090565b80614e936001928486614e31565b604060208360061b880192803582850152013591015201614e71565b7f0000000000000000000000000000000000000000000000000000000000000000613712576e22d473030f116ddee9f6b43ac78ba33b151590565b60a092916040606092815194848601525f516020615f455f395f51905f5285528560208601933385524684880152608087208752820101358101803560051b80916020018537602001852060808601525f516020615f855f395f51905f5285520190372090565b42811115614f5c5750565b63f80dbaea5f526020526024601cfd5b604080516119015f9081526020979097529181526042601e20918152919390929091606483019083146001600160a01b0386166041851481614fc7575b5050505050505033141715614fba57565b638baa579f5f526004601cfd5b909192939495975060405192885f5261506c575b61502d575b60209495965f60605282604052630b135d3f60e11b83526004830152602482019586946040865281604485015260648401375afa9051630b135d3f60e11b1416905f808080808080614fa9565b60408401355f1a60205260408481376020600160805f825afa5181183d1517614fe0575094505050506001915f6060526040525f808080808080614fa9565b60208581013560ff81901c601b01825286356040526001600160ff1b0316606052600160805f825afa5182183d1517614fdb57505094505050506001915f6060526040525f808080808080614fa9565b5f91825233926001600160a01b03908116929116907f770c32a2314b700d6239ee35ba23a9690f2fceb93a55d8c753e953059b3b18d490602090a4565b6040519260608401525f516020615f455f395f51905f5283526020830191338352466040850152608084209082019060a082013583019060c0823560051b93013560051b5f905f5b85811061517857505050505091604060609260a09594602001852060808601525f516020615f855f395f51905f5285520190372090565b8089016020848301870101358152828214615197575b50602001615141565b602090810185905292508261518e565b949195849197966151d4948101358101988960200199359a6151cc614d538d8d614e16565b988991615e45565b8515956001600160601b035f9416935b8181106151fb57505050505050506137129061536d565b806152498761520d600194868c614e31565b80359b8c8a60016001605c1b036152248c846153b0565b9260a01c16141517179b87602061523e604085018561377f565b9190940135936153c6565b50016151e4565b614299906152756040361517829060e0910160c08101355f52013560205260405f2090565b906031615651565b9291905f5b818110615290575050505050565b806152b86152a160019385896138cd565b8560206152ad836137b4565b920135913389615c31565b5001615282565b8160ff1c15901517156152cf5750565b63a06356f55f526020526024601cfd5b95849061530e9399949692968a01998a3597889660408d013583019a60016001605c1b038960a01c1691615e45565b9561531f60209261429998946152bf565b0135928035906020016153c6565b60a0916040519382019160c0830135019081359384930135855260208501526020016040840137604001902090565b9261536791926153b0565b91101790565b6140b557565b60c09160408051925f516020615fc55f395f51905f5284523360208501523382850152602081013560608501520135608083015260a08201522090565b60ff1c600281101561158c576001149015151690565b91949290925f958415945f5b81811061540157505050505050828210176153ee575050600190565b633078b2f65f526020526040526044601cfd5b8061543460209a988761542d61541a600196888d6138cd565b9d8e0135928c84019c8d10179b9d6137b4565b8789615c31565b50016153d2565b906040519160c08101350191823580937f4d756c7469636861696e436f6d7061637428616464726573732073706f6e736f83527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60208401527f5365676d656e745b5d207365676d656e7473295365676d656e7428616464726560408401527535365b325d5b5d20696473416e64416d6f756e74732c60768401527f737320617262697465722c75696e7432353620636861696e49642c75696e74326060840152602001609683013782604301605382012092609601902090565b614299903615906028615651565b906142996155386040361517846028615651565b928336159161532d565b61556d906155676080361517829060e0910160c08101355f52013560205260405f2090565b90615b8a565b9091565b61556d906155966040361517829060e0910160c08101355f52013560205260405f2090565b90615b66565b906142996155386155c46080361517859060e0910160c08101355f52013560205260405f2090565b846032615651565b90614299615538610b6b6040361517859060e0910160c08101355f52013560205260405f2090565b61561f906156196080361517829060e0910160c08101355f52013560205260405f2090565b90615bd9565b9192909190565b61561f9061564b60c0361517829060e0910160c08101355f52013560205260405f2090565b90615c0a565b91909180603214615764578060311461575757806030146157475780602b146157165780602f1461570957806028146156c857806033146156b057602a146156a757634e487b7160e01b5f52605160045260245ffd5b61429991615373565b5060e0910160c08101355f52013560205260405f2090565b5060c060e092606060408051948301925f516020615fa55f395f51905f52865233602087015201604085013760a081013560a0840152013560c08201522090565b5061429991361590614eea565b509060c091606060408051935f516020615fc55f395f51905f52855233602086015201604084013760a08201522090565b5061429991604036151790614eea565b50614299913615906150f9565b50614299916040361517906150f9565b9061010060405160a060c085013585019460608635967f436f6d70616374286164647265737320617262697465722c6164647265737320855260208501977f73706f6e736f722c75696e74323536206e6f6e63652c75696e7432353620657889528060408701927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c845260200184880137820185209788865233905260408301903760e0810135828401528381013560c0840152013560e0820152209190565b60e09092919260a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b92919280602c146159df5760291461591d57634e487b7160e01b5f52605160045260245ffd5b6101009060a0604051918360c082013582019660608835987f436f6d70616374286164647265737320617262697465722c6164647265737320875260208701997f73706f6e736f722c75696e74323536206e6f6e63652c75696e743235362065788b528060408901927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c8452602001848a013782018720998a8852339052604085019037820160e081013584860152013560c0840152013560e0820152209190565b5060e09060a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b91909180603814615af45780603914615ad857600714615ace57634e487b7160e01b5f52605160045260245ffd5b614299915f615651565b505f615aec9160016001605c1b0393614192565b3560a01c1690565b5015612a6d573560a01c60016001605c1b031690565b80603814615b525780603914615b3e57600714615b3557634e487b7160e01b5f52605160045260245ffd5b61429992615651565b5091615aec9160016001605c1b0393614192565b5091615aec9160016001605c1b03936138cd565b9190615b8690615b758461543b565b94908591604036151790602d615ce7565b9190565b9190615b8690615b998461543b565b94908591604036151790602e615ce7565b91615bba615b869284602c6158f7565b9290938460403615179161532d565b91615bba615b86928460296158f7565b91615b86604093615c0093615bed8261543b565b959091863615936080851786602d615ce7565b958691179161532d565b91615b86604093615c0093615c1e8261543b565b959091863615936080851786602e615ce7565b939291909380603514615cdd5780603414615c6a57603714615c6157634e487b7160e01b5f52605160045260245ffd5b614299936140ed565b5090929167edcaa89a8229394060205282601452835f5260405f20805480831183151761077257829003905581601452835f5260405f208054908282019182106107655755335f5260205260018060a01b03169060018060a01b03165f516020615f655f395f51905f5260405fa4600190565b5061429993613697565b9594939190929580602d14615dce57602e14615d1157634e487b7160e01b5f52605160045260245ffd5b6040519360608501528584525f516020615f455f395f51905f526020850196338852466040870152141580615dbf575b60051b60800184209083019060a082013584019060c0823560051b93013560051b5f905f5b858110615d9057505050505060609260a09596926040926020018620608087015285520190372090565b8089016020848301870101358152828214615daf575b50602001615d66565b6020908101859052925082615da6565b60a08401356080860152615d41565b5060609260a095969286604093845197878901528588525f516020615f455f395f51905f52602089019633885246878b0152141580615e37575b60051b60800188208852830101358201803560051b809160200186376020018620608087015285520190372090565b8285013560808a0152615e08565b969594939291909680602714615f315780602414615f1c5780602114615f075780602314615ef75780601f14615ee25780602614615ecf5780602214615ec45780602514615eb157601714615ea857634e487b7160e01b5f52605160045260245ffd5b61429996614c4a565b50906017959493929187614299986152df565b508661429997614239565b5090601795949392918761429998614d26565b50916142999691601796959493361593614d26565b5090614299969291361593614239565b509161429996916017969594933615936151a7565b509161429996916017969594933615936152df565b50906017959493929187614299986151a756fe295feb095767cc67d7e74695da0adaddede54d7b7194a8a5426fe8f0351e03371b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288595ca9a66b8bbf0d2316e90dfa3df465f0790b277b25393a3ef4d67e1f50865057cdca950b17b5efc016b74b912d8527dfba5e404a688cbc3dab16cb943287fec25a7fee8000a237929ef9be08f2933c4b4f320b00b38809f3c7aa104d5421049fa164736f6c634300081c000a","sourceMap":"1085:8212:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8968:151;1085:8212;8968:151;;;1085:8212;;;;;7602:1659:68;1085:8212:36;7602:1659:68;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5321:14:68;1085:8212:36;5321:14:68;;;1085:8212:36;;;;;;;;;;;;;;;2310:667:59;1085:8212:36;2310:667:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8235:26:59;1085:8212:36;8235:26:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12498:568:27;1085:8212:36;12498:568:27;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5321:14:68;1085:8212:36;5321:14:68;;;1085:8212:36;;;;;;;;;;8235:26:59;1085:8212:36;8235:26:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4017:20:59;1085:8212:36;4017:20:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:667:59;1085:8212:36;2310:667:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4017:20:59;;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;;;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;:::-;1085:8212:36;;;;;;7602:1659:68;;1085:8212:36;;;;;;7602:1659:68;;;1085:8212:36;;7602:1659:68;;1085:8212:36;7602:1659:68;;;;;;;;;;;;;;;;;;;;1085:8212:36;7602:1659:68;;;;1085:8212:36;7602:1659:68;;;;1085:8212:36;7602:1659:68;;;;12790:117:60;7602:1659:68;;;;;1085:8212:36;7602:1659:68;-1:-1:-1;;;7602:1659:68;;;9531:2564:27;;;;;;;;7602:1659:68;9531:2564:27;;;1085:8212:36;9531:2564:27;;;;;1085:8212:36;9531:2564:27;;;1085:8212:36;9531:2564:27;;;;;;;;;;;;;;;;;;;1085:8212:36;9531:2564:27;;;;;;;;;;;;;;7602:1659:68;1085:8212:36;9531:2564:27;1085:8212:36;9531:2564:27;-1:-1:-1;;;;;;;;;;;1085:8212:36;;9531:2564:27;1085:8212:36;9531:2564:27;;1085:8212:36;;;;;;;9531:2564:27;;1085:8212:36;9531:2564:27;1085:8212:36;7602:1659:68;9531:2564:27;;;1085:8212:36;9531:2564:27;1085:8212:36;7602:1659:68;9531:2564:27;;;1085:8212:36;9531:2564:27;;1085:8212:36;9531:2564:27;;;1085:8212:36;9531:2564:27;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;9531:2564:27;1085:8212:36;7602:1659:68;9531:2564:27;7602:1659:68;;;;;;;;;;;;;;1085:8212:36;7602:1659:68;;;1085:8212:36;7602:1659:68;1085:8212:36;;;;;;;;;;;:::i;:::-;3669:19:59;;;1085:8212:36;;3669:19:59;;;;:::i;:::-;3877:13;1085:8212:36;3872:369:59;3892:19;;;;;;4261:1050;;;;;2244:19:47;5626:9:36;4261:1050:59;;1085:8212:36;2278:9:47;4261:1050:59;1085:8212:36;;4261:1050:59;-1:-1:-1;;;;;;;;;;;4261:1050:59;;;4017:20;4261:1050;;;;1085:8212:36;4261:1050:59;;;4017:20;4261:1050;;;;;;;;;;;;;;4086:11:68;4261:1050:59;4086:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;:::-;1085:8212:36;;;2062:9:69;:::i;:::-;1085:8212:36;:::i;:::-;2244:19:47;:::i;:::-;2278:9;;:::i;:::-;4017:20:59;1085:8212:36;;;;;;4261:1050:59;;1085:8212:36;4261:1050:59;;4017:20;4261:1050;;;;3913:3;4017:13;;;1085:8212:36;4017:13:59;:20;:13;;;;;:::i;:::-;:20;1085:8212:36;;;;4191:22:59;;;4175:51;3913:3;1085:8212:36;3877:13:59;;;;1085:8212:36;;;;;11806:170:45;11967:8;17305:9:43;1085:8212:36;;;:::i;:::-;19364:12:42;19230:225;19364:34;:12;;;;;;:::i;:::-;:34;;:::i;:::-;19230:225;;:::i;:::-;30600:29:46;;;;:58;:29;;;1085:8212:36;30600:58:46;:::i;:::-;30670:18;;;:::i;:::-;30401:308;11806:170:45;:::i;:::-;1085:8212:36;;;;;;;;;;;;;21628:250:46;18259:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;10999:39;:12;;;;;;:::i;:::-;:39;;:::i;:::-;20153:30;11040:45;20153:30;:::i;:::-;5067:83:55;10999:12:42;21469:68;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;21801:36:46;21809:1;1085:8212:36;5067:83:55;;21801:36:46;:::i;:::-;21839:18;;;:::i;:::-;21628:250;:57;:250;:::i;1085:8212:36:-;;;;;28390:289:46;14631:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;8453:34;:12;;;;;;:::i;:34::-;20153:30;8797:51;20153:30;:::i;:::-;28542:29:46;:58;1085:8212:36;28542:29:46;;1085:8212:36;28542:58:46;:::i;:::-;8453:12:42;28602:36:46;28610:1;1085:8212:36;5067:83:55;;28602:36:46;:::i;:::-;28640:18;;;:::i;:::-;28390:289;:52;:289;:::i;1085:8212:36:-;;;;;10457:191:46;5049:9:43;1085:8212:36;;;:::i;:::-;10601:5:46;25394:148:42;25489:4;5067:83:55;;;25394:148:42;;:::i;:::-;1085:8212:36;;;;10618:18:46;;:::i;:::-;10457:191;:52;:191;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;12605::43;1085:8212:36;;;:::i;:::-;13766:86:42;;;:::i;:::-;18060:18:46;18043:5;18060:18;;:::i;:::-;17935:155;1085:8212:36;5689:83:55;9882:170:45;;;:::i;1085:8212:36:-;;;;;11364:229:46;5689:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;9563:34;:12;1085:8212:36;9563:12:42;;;;:::i;:34::-;20153:30;9914:26;20153:30;:::i;:::-;5067:83:55;1085:8212:36;21469:68:42;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;11516:36:46;11524:1;1085:8212:36;5067:83:55;;11516:36:46;:::i;:::-;11554:18;;;:::i;:::-;11364:229;:52;:229;:::i;1085:8212:36:-;;;-1:-1:-1;;1085:8212:36;;;;;1853:80:53;1085:8212:36;;:::i;:::-;1853:80:53;:::i;:::-;2055:9;;2039:10;;2055:9;:::i;:::-;1085:8212:36;;;;;;;;;;;13776:175:45;13942:8;7463:9:43;1085:8212:36;;;:::i;:::-;13274:124:42;13358:39;:12;1085:8212:36;13358:12:42;;;;:::i;:39::-;13274:124;;:::i;:::-;13987:18:46;1085:8212:36;13987:18:46;;:::i;:::-;13863:154;1085:8212:36;5689:83:55;13776:175:45;;;:::i;1085:8212:36:-;;;;;15363:230:46;8903:9:43;1085:8212:36;;;:::i;:::-;;5067:83:55;15509:5:46;20153:30:42;22104:98;1085:8212:36;5067:83:55;;22104:98:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;22104:98:42;20153:30;11040:45;20153:30;:::i;:::-;21469:68;15516:36:46;15524:1;21469:68:42;;;;;:::i;:::-;1085:8212:36;5067:83:55;15516:36:46;:::i;:::-;15554:18;;;:::i;:::-;15363:230;:47;:230;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;301:99:58;1085:8212:36;301:99:58;1085:8212:36;;301:99:58;1085:8212:36;;;;;29732:257:46;16425:9:43;1085:8212:36;;;:::i;:::-;15198:185:42;15301:34;:12;;;;;;:::i;:34::-;15198:185;;:::i;:::-;29880:29:46;;15301:12:42;29880:58:46;:29;;;1085:8212:36;29880:58:46;:::i;:::-;29950:18;;;:::i;1085:8212:36:-;;;;;29732:257:46;16209:8:43;1085:8212:36;;;:::i;:::-;;;;;;9297:9:43;1085:8212:36;;;:::i;:::-;;5067:83:55;;20153:30:42;22563:107;22651:4;5067:83:55;;22563:107:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;22563:107:42;20153:30;11894:54;20153:30;:::i;:::-;21469:68;24111:5:46;21469:68:42;;;;;:::i;:::-;1085:8212:36;24178:36:46;24186:1;24118:58;:29;;;1085:8212:36;24118:58:46;:::i;24178:36::-;24216:18;;;:::i;:::-;23940:315;1085:8212:36;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::i;:::-;11812:6:53;6995:93;1085:8212:36;;:::i;:::-;6995:23:53;;;:::i;:::-;:93;:::i;:::-;11523:372;;;:::i;:::-;1085:8212:36;;;7221:10:53;;11812:6;;:::i;:::-;;;:::i;:::-;4473:27:63;4481:5;1085:8212:36;5067:83:55;;1085:8212:36;;;;7221:10:53;4473:27:63;:::i;1085:8212:36:-;;;;;;10681:8:43;1085:8212:36;;;:::i;:::-;25434:5:46;26926:304:42;27055:118;27154:4;1085:8212:36;5067:83:55;;27055:118:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;26926:304:42;26919:311;;;;25441:58:46;:29;;;1085:8212:36;25441:58:46;:::i;:::-;25511:18;;;:::i;1085:8212:36:-;;;;;14399:223:46;7659:8:43;1085:8212:36;;;:::i;:::-;17004:12:42;16907:181;17004:39;:12;;;;;;:::i;:39::-;16907:181;;:::i;:::-;14583:18:46;;;;;;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;2283:14:70;13542:488:60;;;11487:137;;;;;13542:488;;;1790:15:70;1085:8212:36;1981:10:70;;1962:34;1981:10;;;6656:622;;6777:495;;;;;;;;;;;;;;;;6656:622;1962:34;2006:168;2283:14;:::i;1085:8212:36:-;;;;;17355:240:46;12003:9:43;1085:8212:36;;;:::i;:::-;17511:5:46;10316:77:42;;;:::i;:::-;1085:8212:36;;;17518:36:46;17526:1;1085:8212:36;5067:83:55;;17518:36:46;:::i;:::-;17556:18;;;:::i;1085:8212:36:-;;;;;13314:239:46;6913:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;9873:39;:12;1085:8212:36;9873:12:42;;;;:::i;20153:30::-;5067:83:55;1085:8212:36;21469:68:42;5067:83:55;;21469:68:42;;;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;18675::43;1085:8212:36;;;:::i;:::-;20153:30:42;12246:39;:12;;;;;;:::i;20153:30::-;5067:83:55;21469:68:42;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;12246:12:42;31852:58:46;:29;;;1085:8212:36;31852:58:46;:::i;:::-;1085:8212:36;31912:36:46;31920:1;1085:8212:36;5067:83:55;;31912:36:46;:::i;:::-;31950:18;;;:::i;:::-;31654:335;13776:175:45;:::i;1085:8212:36:-;;;;;10457:191:46;4853:8:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;8021:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;20598:64;;32705:531:59;1085:8212:36;32705:531:59;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;20598:64:42;20153:30;20664:42;20153:30;:::i;:::-;1085:8212:36;;5067:83:55;14967:4:46;14973:36;14981:1;5067:83:55;;14973:36:46;:::i;:::-;15011:18;;;:::i;:::-;14865:176;15174:162:45;;:::i;1085:8212:36:-;;;;;25784:289:46;11625:9:43;1085:8212:36;;;:::i;:::-;;;;:::i;:::-;25936:29:46;:58;1085:8212:36;25936:29:46;;1085:8212:36;25936:58:46;:::i;:::-;25929:5;25996:36;26004:1;1085:8212:36;5067:83:55;;25996:36:46;:::i;:::-;26034:18;;;:::i;:::-;25784:289;:52;:289;:::i;1085:8212:36:-;;;;;15174:162:45;9475:8:43;1085:8212:36;;;:::i;:::-;16001:5:46;1085:8212:36;5067:83:55;23950:250:42;24052:100;1085:8212:36;5067:83:55;;24052:100:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24052:100:42;23950:250;;:::i;:::-;23943:257;;;16018:18:46;;:::i;1085:8212:36:-;;;;2310:667:59;3084:71:68;1085:8212:36;;;:::i;:::-;;2310:667:59;-1:-1:-1;;;;;;;;;;;2310:667:59;;;;;;;;1085:8212:36;2310:667:59;;;3010:8:68;2310:667:59;1085:8212:36;2310:667:59;;;;;;;;;;;2947:11:68;2310:667:59;2947:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;3010:8:68:-;2310:667:59;3106:18:68;12790:117:60;3106:18:68;;;:::i;:::-;3139:15;;1085:8212:36;2310:667:59;;5148:8:36;3084:71:68;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;692:938:58;;1085:8212:36;692:938:58;1085:8212:36;692:938:58;;;1085:8212:36;692:938:58;;;;;;;;;;1085:8212:36;692:938:58;1085:8212:36;692:938:58;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;692:938:58;;;;;1085:8212:36;692:938:58;;;;;;1085:8212:36;;;;;11364:229:46;5515:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;;:::i;:::-;4965:661:49;1085:8212:36;4965:661:49;;;;453:10;4965:661;;;1085:8212:36;4965:661:49;1085:8212:36;4965:661:49;;;;;;1085:8212:36;4965:661:49;;;;;1085:8212:36;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;13446:63:52;;;;;;;;:::i;:::-;13598:158;;;;;;;;;;;;;;1085:8212:36;13598:158:52;;13860:100;;;;;:::i;:::-;1085:8212:36;;;;;;6305:83:55;;1085:8212:36;6305:83:55;;7578:9012:51;;;;:::i;:::-;17315:570;;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;1085:8212:36;17315:570:51;1085:8212:36;17315:570:51;1085:8212:36;;17315:570:51;1085:8212:36;17315:570:51;;;1085:8212:36;17315:570:51;7205:121:52;;14478:559;1085:8212:36;14478:559:52;;;;;1085:8212:36;14478:559:52;;;;;;;;;;;;;;;;;;;5067:83:55;1085:8212:36;5067:83:55;15198:9:52;;;:::i;:::-;15398:28;;;;:::i;:::-;13542:488:60;;;;;;;3956:20:63;;;;:::i;:::-;1085:8212:36;;;;;;;:::i;:::-;;;;;;;;;13776:175:45;13942:8;20665:9:43;1085:8212:36;;;:::i;:::-;19807:12:42;19668:235;19807:39;:12;;;;;;:::i;19668:235::-;33257:29:46;;;;:58;:29;;;1085:8212:36;33257:58:46;:::i;:::-;33327:18;;;:::i;1085:8212:36:-;;;;;16430:191:46;10467:9:43;1085:8212:36;;;:::i;:::-;16574:5:46;26376:277:42;26496:109;26586:4;1085:8212:36;5067:83:55;;26496:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;26496:109:42;26376:277;;:::i;:::-;26369:284;;;;16591:18:46;;:::i;1085:8212:36:-;;;;;17355:240:46;11809:8:43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;7275::43;1085:8212:36;;;:::i;:::-;;;;;18482:223:46;13647:9:43;1085:8212:36;;;:::i;:::-;18649:5:46;17537:104:42;;;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;6573::43;1085:8212:36;;;:::i;:::-;20153:30:42;6898:39;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;6898:12:42;12924:36:46;12932:1;5067:83:55;;12924:36:46;:::i;:::-;12962:18;;;:::i;:::-;12806:186;13776:175:45;;:::i;1085:8212:36:-;;;;;23301:279:46;8545:9:43;1085:8212:36;;;:::i;:::-;7992:40:42;;;:::i;:::-;23443:29:46;:58;1085:8212:36;23443:29:46;;1085:8212:36;23443:58:46;:::i;:::-;23436:5;23503:36;23511:1;1085:8212:36;5067:83:55;;23503:36:46;:::i;:::-;23541:18;;;:::i;:::-;23301:279;:47;:279;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2251:90:55;;;1085:8212:36;;9307:42:60;1085:8212:36;12790:117:60;;;-1:-1:-1;;;;;12790:117:60;9307:42;:::i;:::-;1085:8212:36;;;11487:137:60;;;;;1085:8212:36;;;;;;;;11032:107:60;;;1085:8212:36;;;;;;;;;;;;-1:-1:-1;;;5394:39:48;;1085:8212:36;;-1:-1:-1;;;;;1085:8212:36;;;;5394:39:48;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;5394:39:48;1085:8212:36;5394:18:48;-1:-1:-1;;;;;1085:8212:36;5394:39:48;;;;;;1085:8212:36;5394:39:48;1085:8212:36;5394:39:48;;;1085:8212:36;;;;;;;;;:::i;5394:39:48:-;;;;;;1085:8212:36;5394:39:48;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;2639:9;1085:8212;;;;;;:::i;:::-;;;:::i;:::-;2639:9;;:::i;1085:8212::-;;;;;11806:170:45;11967:8;16003:9:43;1085:8212:36;;;:::i;:::-;14015:167:42;14109:34;:12;;;;;;:::i;:34::-;14015:167;;:::i;:::-;20187:18:46;14109:12:42;20187:18:46;;:::i;:::-;20062:155;1085:8212:36;5689:83:55;11806:170:45;;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;14447:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;7498:34;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;7498:12:42;19082:36:46;19090:1;5067:83:55;;19082:36:46;:::i;:::-;19120:18;;;:::i;:::-;18964:186;11806:170:45;;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;3827::43;1085:8212:36;;;:::i;:::-;6447:44:42;;;:::i;:::-;1085:8212:36;;5067:83:55;9026:4:46;9032:36;;;:::i;:::-;9070:18;;;:::i;:::-;8924:176;9882:170:45;;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;11071::43;1085:8212:36;;;:::i;:::-;20153:30:42;20598:64;;32705:531:59;1085:8212:36;32705:531:59;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;20153:30:42;1085:8212:36;;5067:83:55;16949:4:46;16955:36;16963:1;5067:83:55;;16955:36:46;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;6702:189:27;;1085:8212:36;6702:189:27;;;1085:8212:36;6702:189:27;1085:8212:36;6702:189:27;;;;1085:8212:36;;;;;;;;;;;;;15174:162:45;2675:9:43;1085:8212:36;;;:::i;:::-;;5067:83:55;20153:30:42;;;20382:26;20153:30;:::i;:::-;7202:36:46;;;;:::i;:::-;7240:18;;;:::i;:::-;7077:193;7182:4;5067:83:55;;15174:162:45;;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;5857::43;1085:8212:36;;;:::i;:::-;13002:114:42;13081:34;:12;1085:8212:36;13081:12:42;;;;:::i;13002:114::-;12007:18:46;1085:8212:36;12007:18:46;;:::i;1085:8212:36:-;;;;;9412:229:46;4147:8:43;1085:8212:36;;;:::i;:::-;;9269:57:42;;;:::i;:::-;1085:8212:36;;;9564:36:46;1085:8212:36;5067:83:55;9564:36:46;:::i;1085:8212:36:-;;;;;20609:223:46;16631:8:43;1085:8212:36;;;:::i;:::-;17952:12:42;17840:185;17952:34;:12;;;;;;:::i;17840:185::-;20793:18:46;;;;;;:::i;1085:8212:36:-;;;;;12409:191:46;6221:8:43;1085:8212:36;;;:::i;:::-;16634:12:42;16542:171;16634:34;:12;;;;;;:::i;1085:8212:36:-;;;;;12409:191:46;6417:9:43;1085:8212:36;;;:::i;:::-;;1853:80:53;4473:27:63;1085:8212:36;;;:::i;:::-;1853:80:53;;;;:::i;:::-;2055:9;;;2039:10;;2055:9;:::i;:::-;4481:5:63;1085:8212:36;5067:83:55;;2039:10:53;;4473:27:63;:::i;1085:8212:36:-;;;;;32359:267:46;19519:8:43;1085:8212:36;;;:::i;:::-;15560:195:42;15668:39;:12;;;;;;:::i;15560:195::-;32517:29:46;;15668:12:42;32517:58:46;:29;;;1085:8212:36;32517:58:46;:::i;:::-;32587:18;;;:::i;:::-;32359:267;:57;:267;:::i;1085:8212:36:-;;;;;27126:257:46;13009:8:43;1085:8212:36;;;:::i;:::-;14922:104:42;;;:::i;:::-;27274:29:46;;27267:5;27274:58;:29;;;1085:8212:36;27274:58:46;:::i;:::-;27344:18;;;:::i;1085:8212:36:-;;;;;;;:::i;:::-;3669:19:59;;;1085:8212:36;;3669:19:59;;;;:::i;:::-;3877:13;1085:8212:36;3872:369:59;3892:19;;;;;;4261:1050;;;;;2244:19:47;5465:8:36;4261:1050:59;;1085:8212:36;2278:9:47;4261:1050:59;1085:8212:36;;4261:1050:59;-1:-1:-1;;;;;;;;;;;4261:1050:59;;;4017:20;4261:1050;;;;1085:8212:36;4261:1050:59;;;4017:20;4261:1050;;;;;;;;;;;;;;4086:11:68;4261:1050:59;4086:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;3913:3:59:-;4017:13;;;1085:8212:36;4017:13:59;:20;:13;;;;;:::i;:::-;:20;1085:8212:36;;;;4191:22:59;;;4175:51;3913:3;1085:8212:36;3877:13:59;;;;1085:8212:36;;;;;11806:170:45;11967:8;14271::43;1085:8212:36;;;:::i;:::-;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;10704:9:52;1085:8212:36;10904:28:52;1085:8212:36;;;;;;:::i;:::-;9640:63:52;;;;;;;;:::i;:::-;1085:8212:36;;10117:55:52;1085:8212:36;;;;;;;5067:83:55;;9783:60:52;1085:8212:36;5067:83:55;;9783:60:52;:::i;:::-;9948:100;;;;:::i;:::-;10117:55;;;;:::i;:::-;1085:8212:36;10279:264:52;;;;;;;5067:83:55;;10704:9:52;;:::i;:::-;10904:28;;:::i;:::-;1085:8212:36;;;;;;;:::i;:::-;;;;;9882:170:45;10043:8;4489::43;1085:8212:36;;;:::i;:::-;12559:66:42;;;:::i;:::-;10055:18:46;1085:8212:36;10055:18:46;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;15805::43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;17481::43;1085:8212:36;;;:::i;:::-;20153:30:42;7774:39;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;7774:12:42;21198:36:46;21206:1;5067:83:55;;21198:36:46;:::i;1085:8212:36:-;;;;;24603:247:46;10065:9:43;1085:8212:36;;;:::i;:::-;24400:277:42;24511:109;24601:4;1085:8212:36;5067:83:55;;24511:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24400:277:42;24393:284;;24734:5:46;24741:58;:29;;;1085:8212:36;24741:58:46;:::i;:::-;24811:18;;;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;18897:9:43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;17667:9:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;2519:8:43;1085:8212:36;;;:::i;:::-;;;;;9882:170:45;10043:8;12417:9:43;1085:8212:36;;;:::i;:::-;11488:95:42;;;:::i;:::-;26631:29:46;;26624:5;26631:58;:29;;;1085:8212:36;26631:58:46;:::i;:::-;1085:8212:36;26691:36:46;26699:1;1085:8212:36;5067:83:55;;26691:36:46;:::i;:::-;26729:18;;;:::i;:::-;26443:325;9882:170:45;:::i;1085:8212:36:-;;;;;6995:93:53;11812:6;1085:8212:36;;;:::i;:::-;6995:23:53;;;;;;:::i;:93::-;11523:372;;;;:::i;:::-;7221:10;11812:6;;:::i;:::-;;;:::i;1085:8212:36:-;;;;;15174:162:45;8187:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;4635:9:35;4621:10;:23;4617:78;;4770:21;:39;;;;1085:8212:36;4766:101:35;;1085:8212:36;4960:18:35;;;;9738:2;9726:9;1085:8212:36;9691:55:35;1085:8212:36;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;4948:31:35;4944:89;;1085:8212:36;;;-1:-1:-1;;1085:8212:36;5097:4:35;1085:8212:36;;;;4944:89:35;5002:20;;;1085:8212:36;5002:20:35;1085:8212:36;;5002:20:35;1085:8212:36;;;4766:101:35;4832:24;;;1085:8212:36;4832:24:35;1085:8212:36;;4832:24:35;4770:39;1085:8212:36;;;;;4770:39:35;;4617:78;4667:17;;;1085:8212:36;4667:17:35;1085:8212:36;;4667:17:35;1085:8212:36;;;;;11806:170:45;11967:8;5351:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;6658:34;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;6658:12:42;10984:36:46;10992:1;5067:83:55;;10984:36:46;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;3983:9:43;1085:8212:36;;;:::i;:::-;;;;;;;:::i;:::-;7189:18:59;;;;;;;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;7393:26:59;;;:::i;:::-;7481:19;1085:8212:36;7593:13:59;1085:8212:36;7608:12:59;;;;;;9381:470;;;;;1085:8212:36;9381:470:59;1085:8212:36;9381:470:59;8235:26;4546:18:47;9381:470:59;;8854:398;;9381:470;1085:8212:36;;:::i;:::-;;6633:32:68;6597:18;;;;:::i;:::-;8235:26:59;6617:14:68;;1085:8212:36;;;:::i;:::-;;;:::i;:::-;4546:18:47;:::i;:::-;1085:8212:36;4773:12:47;;;;;;8235:26:59;1085:8212:36;;;;;;4787:3:47;4920:12;5090:9;6109:8:36;4920:12:47;1085:8212:36;4920:12:47;;;;:::i;:::-;5056:18;8235:26:59;5056:18:47;;;;:::i;:::-;1085:8212:36;;;5090:9:47;;:::i;:::-;1085:8212:36;4758:13:47;;7622:3:59;7756:12;;;;;:::i;:::-;1085:8212:36;8235:26:59;;;;;;;:::i;:::-;8452:13;1085:8212:36;8447:389:59;8467:18;;;;;;8854:398;;;;1085:8212:36;8854:398:59;;1085:8212:36;8854:398:59;1085:8212:36;8854:398:59;;;1085:8212:36;;8235:26:59;8854:398;;;;;1085:8212:36;7593:13:59;;8487:3;8596:11;;;1085:8212:36;8596:11:59;8235:26;8596:11;;;;;:::i;:::-;:18;1085:8212:36;;;;8783:21:59;;;8767:50;8487:3;1085:8212:36;8452:13:59;;;;1085:8212:36;;;;;;;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;2865:34:70;2884:10;;6656:622;;6777:495;;;;;;;;;;;;;;;;6656:622;2865:34;2910:506;;;;;;1085:8212:36;3525:23:70;2910:506;;1085:8212:36;5067:83:55;3525:23:70;;:::i;2910:506::-;;;1085:8212:36;2910:506:70;2884:10;1085:8212:36;2910:506:70;1085:8212:36;2910:506:70;;;;1085:8212:36;;;;;;9095:8:43;1085:8212:36;;;:::i;:::-;;;;3200:18:47;1085:8212:36;;;:::i;:::-;3200:18:47;3081;5822::59;;;1085:8212:36;5822:18:59;6579:76;5822:18;;;;:::i;:::-;1085:8212:36;5947:541:59;;;;;;;;;6579:76;;:::i;:::-;5259:112:68;5301:18;;;;:::i;:::-;5321:14;;;1085:8212:36;5259:112:68;;:::i;1085:8212:36:-;3081:18:47;;:::i;:::-;3200;;;;;:::i;:::-;3365:13;1085:8212:36;3380:18:47;;;;;;5321:14:68;1085:8212:36;;;;;;3400:3:47;3532:12;3636:64;3532:12;1085:8212:36;3532:12:47;;;;:::i;:::-;5321:14:68;3683:16:47;;1085:8212:36;;;3646:10:47;;5943:9:36;3636:64:47;:::i;:::-;;1085:8212:36;3365:13:47;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;9865:71:53;11812:6;1085:8212:36;;;;;:::i;:::-;9865:23:53;;;;:::i;:::-;:71;:::i;:::-;11523:372;;;;:::i;:::-;1085:8212:36;;11812:6:53;;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;14105:9:43;1085:8212:36;;;:::i;:::-;27987:5:46;18900:122:42;;;:::i;:::-;27994:29:46;;;;:58;:29;;;1085:8212:36;27994:58:46;:::i;:::-;28064:18;;;:::i;1085:8212:36:-;;;;;7584:197:46;2829:8:43;1085:8212:36;;;:::i;:::-;;5067:83:55;1085:8212:36;20153:30:42;1085:8212:36;5067:83:55;;20153:30:42;21800:26;20153:30;:::i;:::-;21469:68;7713:36:46;21469:68:42;;;;;:::i;:::-;1085:8212:36;7713:36:46;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;19303:9:43;1085:8212:36;;;:::i;:::-;14350:177:42;14449:39;:12;;;;;;:::i;14350:177::-;22363:18:46;14449:12:42;22363:18:46;;:::i;1085:8212:36:-;;;;;24603:247:46;9859:8:43;1085:8212:36;;;:::i;:::-;;;;;32359:267:46;19745:9:43;1085:8212:36;;;:::i;:::-;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;2893:10;1085:8212;2423:56:64;1085:8212:36;;;;;;:::i;:::-;2893:10;;;;;;:::i;:::-;1085:8212;;2423:56:64;;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;4290:42:40;-1:-1:-1;;;;;12790:117:60;;;;4290:42:40;:::i;:::-;1085:8212:36;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;11487:137:60;;;;;;1085:8212:36;:::i;:::-;;;;11032:107:60;;;1085:8212:36;:::i;:::-;;;;;;;11806:170:45;11967:8;17071::43;1085:8212:36;;;:::i;:::-;;;;;;;:::i;:::-;6119:335:27;;;;;;;;1085:8212:36;6119:335:27;1085:8212:36;6119:335:27;1085:8212:36;6119:335:27;;1085:8212:36;6119:335:27;;1085:8212:36;;;;;;;;;;;11806:170:45;11967:8;5195::43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;19095::43;1085:8212:36;;;:::i;:::-;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;;;;;;;;;;13373:554:27;1085:8212:36;13373:554:27;;;;1085:8212:36;13373:554:27;;;;;;1085:8212:36;13373:554:27;;;;;;;1085:8212:36;13373:554:27;;1085:8212:36;;;13943:4:27;1085:8212:36;;;;;;;;13776:175:45;13942:8;6739:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;:::i;:::-;6658:53:52;;;;;;:::i;:::-;1085:8212:36;;;;;;;;;6305:83:55;7578:9012:51;;;;;;:::i;:::-;17315:570;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;1085:8212:36;;17315:570:51;1085:8212:36;17315:570:51;;;1085:8212:36;17315:570:51;7205:121:52;;1085:8212:36;7205:121:52;;;;;;5067:83:55;1085:8212:36;5067:83:55;7488:9:52;;;:::i;:::-;7632:14;;;:::i;:::-;13542:488:60;;;;;;;3956:20:63;;;;:::i;:::-;7745:11:52;;:::i;:::-;1085:8212:36;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;8258:58:53;8422:9;8258:58;;;;:::i;:::-;8422:9;;;;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;6035:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;5088:29:48;;1085:8212:36;;;5088:29:48;;;1085:8212:36;-1:-1:-1;1085:8212:36;5088:29:48;1085:8212:36;5088:18:48;-1:-1:-1;;;;;1085:8212:36;5088:29:48;;;;;;1085:8212:36;5088:29:48;1085:8212:36;5088:29:48;;;1085:8212:36;;;;;;;;:::i;:::-;;;;;9882:170:45;10043:8;13871::43;1085:8212:36;;;:::i;:::-;;;;;9882:170:45;10043:8;12205::43;1085:8212:36;;;:::i;:::-;;;;;9882:170:45;10043:8;4667:9:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;3151:8:43;1085:8212:36;;;:::i;:::-;12559:66:42;;;:::i;:::-;8175:18:46;1085:8212:36;8175:18:46;;:::i;:::-;8071:134;1085:8212:36;5689:83:55;15174:162:45;;;:::i;1085:8212:36:-;;;;;3053:53:64;1085:8212:36;;;:::i;:::-;3053:53:64;6411:531:63;6273:675;6411:531;6273:675;6411:531;;;;;;;;;;;;;;;;;;;;;6273:675;;3053:53:64;1085:8212:36;;7168:15;;7158:25;;1085:8212;;;;;;;;;;;:::i;:::-;12498:568:27;;;;;;;;;;;1085:8212:36;12498:568:27;;;1085:8212:36;12498:568:27;;1085:8212:36;12498:568:27;;;;;;;;1085:8212:36;12498:568:27;1085:8212:36;12498:568:27;;;1085:8212:36;;13082:4:27;1085:8212:36;;;;;;;;;10905:9:43;1085:8212:36;;;:::i;:::-;;;;;18482:223:46;13431:8:43;1085:8212:36;;;:::i;:::-;;;;;25784:289:46;11431:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;1317:8:64;1085:8212:36;;;;;;6849:10;1317:8:64;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;4972:2:27;1085:8212:36;;;;;;;;9882:170:45;10043:8;12803:9:43;1085:8212:36;;;:::i;:::-;;;;;;;:::i;:::-;7189:18:59;;;;;;;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;7393:26:59;;;:::i;:::-;7481:19;1085:8212:36;7593:13:59;1085:8212:36;7608:12:59;;;;;;9381:470;;;;;1085:8212:36;9381:470:59;1085:8212:36;9381:470:59;8235:26;4546:18:47;9381:470:59;;8854:398;;9381:470;1085:8212:36;;:::i;4546:18:47:-;1085:8212:36;4773:12:47;;;;;;8235:26:59;1085:8212:36;;;;;;4787:3:47;4920:12;5090:9;6280::36;4920:12:47;1085:8212:36;4920:12:47;;;;:::i;5090:9::-;1085:8212:36;4758:13:47;;7622:3:59;7756:12;;;;;:::i;:::-;1085:8212:36;8235:26:59;;;;;;;:::i;:::-;8452:13;1085:8212:36;8447:389:59;8467:18;;;;;;8854:398;;;;1085:8212:36;8854:398:59;;1085:8212:36;8854:398:59;1085:8212:36;8854:398:59;;;1085:8212:36;;8235:26:59;8854:398;;;;;1085:8212:36;7593:13:59;;8487:3;8596:11;;;1085:8212:36;8596:11:59;8235:26;8596:11;;;;;:::i;:::-;:18;1085:8212:36;;;;8783:21:59;;;8767:50;8487:3;1085:8212:36;8452:13:59;;;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;8244:18;;:::i;1085:8212::-;;;;;27126:257:46;13225:9:43;1085:8212:36;;;:::i;:::-;;;;;23301:279:46;8361:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;2423:56:64;1085:8212:36;;;;;;;;:::i;:::-;;;2423:56:64;;:::i;1085:8212:36:-;;;;;15174:162:45;3319:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;:::i;:::-;6777:495:70;;;4416:10;6777:495;;;;;;;;;;;;;;4442:510;;;;;;;;;5004:44;1085:8212:36;;;;;4416:10:70;;5004:44;:::i;4442:510::-;;;1085:8212:36;4442:510:70;1085:8212:36;4442:510:70;1085:8212:36;4442:510:70;;1085:8212:36;;;;;13776:175:45;13942:8;20421::43;1085:8212:36;;;:::i;:::-;;;;;28390:289:46;14825:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1085:8212:36;;;;8794:2:60;8778:18;;;8720:10;:23;;8748:21;;:25;;1422:62:55;;8778:18:60;:106;;1085:8212:36;1422:62:55;;;2730:33:40;2726:278;;2663:28:60;;;:::i;:::-;2702:1053;;;;;;;;;;;;;1085:8212:36;2702:1053:60;;;1085:8212:36;2702:1053:60;;;;1085:8212:36;;2702:1053:60;-1:-1:-1;;;;;1085:8212:36;;;;;;;2702:1053:60;;;1085:8212:36;2702:1053:60;1085:8212:36;2702:1053:60;1085:8212:36;2702:1053:60;;;;2726:278:40;2779:215;1085:8212:36;2779:215:40;1085:8212:36;2779:215:40;1085:8212:36;2779:215:40;;8778:106:60;1085:8212:36;;;;;;;;14773:133:28;;1085:8212:36;14773:133:28;;1085:8212:36;14773:133:28;;-1:-1:-1;;;;;1085:8212:36;8823:60:60;;-1:-1:-1;;;;;;8801:8:60;;1085:8212:36;;8801:16:60;;;905:63:55;;8778:106:60;;;;1085:8212:36;;;;;;;;;;;;;;;;2310:667:59;3084:71:68;1085:8212:36;;;:::i;:::-;;2310:667:59;-1:-1:-1;;;;;;;;;;;2310:667:59;;;;;;;;1085:8212:36;2310:667:59;;;3010:8:68;2310:667:59;1085:8212:36;2310:667:59;;;;;;;;;;;2947:11:68;2310:667:59;2947:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;3010:8:68:-;2310:667:59;3106:18:68;12790:117:60;3106:18:68;;;:::i;:::-;3139:15;;1085:8212:36;2310:667:59;;5309:9:36;3084:71:68;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;11247:9:43;1085:8212:36;;;:::i;:::-;;;;;22797:233:46;20187:9:43;1085:8212:36;;;:::i;:::-;18346:12:42;18229:195;18346:39;:12;;;;;;:::i;1085:8212:36:-;;;;;30973:299:46;18065:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;8756:39;:12;;;;;;:::i;20153:30::-;31135:29:46;:58;1085:8212:36;31135:29:46;;1085:8212:36;31135:58:46;:::i;:::-;8756:12:42;31195:36:46;31203:1;1085:8212:36;5067:83:55;;31195:36:46;:::i;:::-;31233:18;;;:::i;1085:8212:36:-;;;;3200:18:47;1085:8212:36;;;:::i;:::-;3200:18:47;3081;5822::59;;;1085:8212:36;5822:18:59;6579:76;5822:18;;;;:::i;3200::47:-;3365:13;1085:8212:36;3380:18:47;;;;;;5321:14:68;1085:8212:36;;;;;;3400:3:47;3532:12;3636:64;3532:12;1085:8212:36;3532:12:47;;;;:::i;:::-;5321:14:68;3683:16:47;;1085:8212:36;;;3646:10:47;;5782:8:36;3636:64:47;:::i;:::-;;1085:8212:36;3365:13:47;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;;486:99:58;1085:8212:36;486:99:58;1085:8212:36;;486:99:58;1085:8212:36;;;;;16430:191:46;10261:8:43;1085:8212:36;;;:::i;:::-;;;;;7584:197:46;2993:9:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;9663:9:43;1085:8212:36;;;:::i;:::-;;;;;11806:170:45;11967:8;15405::43;1085:8212:36;;;:::i;:::-;20153:30:42;11858:34;:12;;;;;;:::i;20153:30::-;5067:83:55;21469:68:42;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;11858:12:42;29237:58:46;:29;;;1085:8212:36;29237:58:46;:::i;:::-;1085:8212:36;29297:36:46;29305:1;1085:8212:36;5067:83:55;;29297:36:46;:::i;:::-;29335:18;;;:::i;1085:8212:36:-;;;;;20609:223:46;16847:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;5874:31:70;1085:8212:36;;:::i;:::-;;;5874:31:70;6656:622;;6777:495;;;;;;;;;;;;;;;;6656:622;5874:31;5916:329;1085:8212:36;;5916:329:70;;;;;;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;8547:181:46;3681:9:43;1085:8212:36;;;:::i;:::-;8681:5:46;25394:148:42;1085:8212:36;;5067:83:55;;25394:148:42;;:::i;1085:8212:36:-;;;;;13314:239:46;7097:9:43;1085:8212:36;;;:::i;:::-;;;;;15363:230:46;8719:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;1457:10:40;:58;:29;:10;:29;:::i;:::-;:58;:::i;:::-;1576:75;1085:8212:36;1701:1:40;1085:8212:36;;1717:13:40;1751:7;;;;;;1085:8212:36;;;1978:4:40;1085:8212:36;;;1760:9:40;1085:8212:36;;1925:10:40;1457;1789:89;;1925:10;:::i;:::-;1085:8212:36;1744:207:40;;1085:8212:36;;;;;22797:233:46;19961:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;3855:55:52;1085:8212:36;;4365:14:52;1085:8212:36;;;;;;:::i;:::-;;;;4221:9:52;1085:8212:36;5067:83:55;;3486:60:52;1085:8212:36;5067:83:55;;3486:60:52;:::i;:::-;3733:53;;;;:::i;:::-;3855:55;;;;;;;;;;:::i;:::-;1085:8212:36;3973:79:52;;;1085:8212:36;4200:5:52;5067:83:55;;;;4221:9:52;;:::i;:::-;4365:14;:::i;1085:8212:36:-;;;;;19482:240:46;15009:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;10650:34;:12;;;;;;:::i;20153:30::-;5067:83:55;10650:12:42;21469:68;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;19645:36:46;19653:1;1085:8212:36;5067:83:55;;19645:36:46;:::i;1085:8212:36:-;;;;;19482:240:46;15203:9:43;1085:8212:36;;;:::i;:::-;;;;;8547:181:46;3495:8:43;1085:8212:36;;;:::i;:::-;;;;;21628:250:46;18463:9:43;1085:8212:36;;;:::i;:::-;;;;:::i;:::-;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;;;;9307:42;:::i;:::-;1085:8212:36;;;;;;7602:1659:68;;;1085:8212:36;7602:1659:68;;;1085:8212:36;7602:1659:68;;;;;;;;;;;;;;7255:10:27;7602:1659:68;;;;7255:10:27;1085:8212:36;7602:1659:68;;;;;;;;;;;;;;12790:117:60;7602:1659:68;;;;;1085:8212:36;7602:1659:68;-1:-1:-1;;;7602:1659:68;;;7335:1429:27;;;;7602:1659:68;7335:1429:27;7255:10;7335:1429;;;1085:8212:36;7335:1429:27;1085:8212:36;;7335:1429:27;;;;;;;;;;;;;;;;1085:8212:36;7335:1429:27;1085:8212:36;;7335:1429:27;;;;;;;;;;;;;7255:10;1085:8212:36;7335:1429:27;7602:1659:68;7335:1429:27;7255:10;-1:-1:-1;;;;;;;;;;;1085:8212:36;;7335:1429:27;7602:1659:68;1085:8212:36;;8837:4:27;1085:8212:36;;;;;;;;14399:223:46;7865:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;8968:151;;;;;;;;;1085:8212;;;;;9412:229:46;4321:9:43;1085:8212:36;;;:::i;:::-;;;;;30973:299:46;17861:8:43;1085:8212:36;;;:::i;:::-;;;;;11806:170:45;11967:8;15617:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;;1085:8212:36;;;;;;;14196:182:27;1085:8212:36;14196:182:27;1085:8212:36;;14196:182:27;;;;;;;;1085:8212:36;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;5633:184:27;1085:8212:36;5633:184:27;;;1085:8212:36;;;5633:184:27;1085:8212:36;;;5633:184:27;;1085:8212:36;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;-1:-1:-1;;;4780:27:48;;1085:8212:36;;;4780:27:48;;;1085:8212:36;-1:-1:-1;4780:27:48;;;:18;-1:-1:-1;;;;;1085:8212:36;4780:27:48;;;;;;1085:8212:36;4780:27:48;1085:8212:36;4780:27:48;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;7205:121:52;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;:::o;:::-;-1:-1:-1;;;;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1085:8212:36;;;;;;;;;;;;;;:::o;4176:2284:65:-;;;;;4275:4;;:::i;:::-;-1:-1:-1;;;;;1085:8212:36;;4557:19:65;1085:8212:36;;4146:221:31;-1:-1:-1;4146:221:31;;;;;;;;;;;4553:627:65;5190:1169;;;;;;;-1:-1:-1;5190:1169:65;;-1:-1:-1;5190:1169:65;;;;;;;;;;;-1:-1:-1;5190:1169:65;;;;;;;;;1085:8212:36;;;;;5190:1169:65;-1:-1:-1;;;;;;;;;;;5190:1169:65;;;;;:::i;:::-;6449:4;4176:2284;:::o;4146:221:31:-;;-1:-1:-1;4146:221:31;;;;4553:627:65;4785:4;;;4761:30;4785:4;4761:30;;:::i;:::-;13593:806:31;;;;;;;;-1:-1:-1;13593:806:31;;-1:-1:-1;13593:806:31;;;;;;;;;-1:-1:-1;13593:806:31;;;;;;;5125:30:65;13593:806:31;-1:-1:-1;13593:806:31;;4785:4:65;5125:30;;:::i;:::-;1085:8212:36;;4553:627:65;;;13593:806:31;;-1:-1:-1;13593:806:31;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1085:8212:36;;;;;;;:::o;4367:145:48:-;4452:25;4487:17;981:749:54;;;;4367:145:48;:::o;981:749:54:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4367:145:48;:::o;1085:8212:36:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;2947:3169:53:-;;;;;:::i;:::-;3405:1072;;1085:8212:36;;;;;;3405:1072:53;;;;;;;;;;;;;;;;;;;;;;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;;7277:40;;;:::i;:::-;4791:93:53;;;2947:3169;4974:52;5028:12;;;;;;6009:6;;;;;;;:::i;:::-;2947:3169::o;5042:3::-;5174:16;;;;;:::i;:::-;1085:8212:36;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;-1:-1:-1;;;;;1085:8212:36;;5559:36:53;;5555:300;;5042:3;-1:-1:-1;5322:1:53;;1085:8212:36;6009:6:53;;3405:1072;1085:8212:36;;;;-1:-1:-1;;;;;1085:8212:36;;6009:6:53;:::i;:::-;1085:8212:36;4974:52:53;;5555:300;6009:6;5681:43;;;;3405:1072;5681:43;;5322:1;5681:43;;;:::i;:::-;5555:300;;;;;;;;4791:93;4863:9;3405:1072;;4863:9;;;:::i;:::-;4791:93;;;3405:1072;;-1:-1:-1;3405:1072:53;;;;2950:460:48;3018:12;;1085:8212:36;3018:12:48;;;1085:8212:36;;;;;1409:20:48;1085:8212:36;1409:20:48;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;20153:30:42;5067:83:55;;1409:20:48;20382:26:42;20153:30;:::i;:::-;1085:8212:36;;3065:283:48;;3358:12;;;1085:8212:36;3358:12:48;;;1085:8212:36;3065:283:48;;;1085:8212:36;;;;;;;;;;;;3065:283:48;1409:20;5514:59:35;2950:460:48:o;1085:8212:36:-;-1:-1:-1;6052:14:35;1085:8212:36;;;;;;3065:283:48;1409:20;6082:67:35;2950:460:48:o;6048:208:35:-;3065:283:48;1409:20;6179:67:35;2947:3169:53:o;3065:283:48:-;;;;;;;;;1085:8212:36;;32705:531:59;21015:4:42;5067:83:55;;;1409:20:48;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;20153:30:42;32705:531:59;-1:-1:-1;32705:531:59;1409:20:48;8797:51:42;20153:30;:::i;:::-;1085:8212:36;;;;-1:-1:-1;32705:531:59;;-1:-1:-1;32705:531:59;;;;;;;;;;20153:30:42;;1409:20:48;20664:42:42;20153:30;:::i;1085:8212:36:-;6699:60:35;1409:20:48;6699:60:35;1085:8212:36;;;;-1:-1:-1;;1085:8212:36;;;;;;1409:20:48;7298:68:35;1085:8212:36;;;7264:210:35;1409:20:48;7396:68:35;7264:210;;19260:739:31;19403:590;;;19260:739;;;;19403:590;;;;;;;;;;;;;;;;19260:739;:::o;3597:97:48:-;3649:14;;1085:8212:36;3649:14:48;;;1085:8212:36;8260:14:35;;;1085:8212:36;;;;;;;;;;;;7806:55:35;1409:20:48;7806:55:35;3597:97:48:o;1085:8212:36:-;-1:-1:-1;8260:14:35;1085:8212:36;;;;;;8260:14:35;1409:20:48;8290:63:35;3597:97:48:o;8256:200:35:-;8260:14;1409:20:48;8383:63:35;2947:3169:53:o;1085:8212:36:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;:::o;1742:710:54:-;1871:575;1742:710;1871:575;;;;;;;;;;;;;;;;;;;;;;;;;;1742:710;:::o;36947:606:59:-;;37029:518;;;-1:-1:-1;;;;;;;;;;;37029:518:59;;-1:-1:-1;;;;;;;;;;;37029:518:59;;-1:-1:-1;;;;;;;;;;;37029:518:59;;;;;;;;36947:606::o;18139:956:51:-;18258:831;18139:956;18258:831;;;;;;;;;;;;18139:956;:::o;19699:1824:52:-;;19834:32;;:::i;:::-;20564:30;20400:71;20142:166;;;;;;20400:23;;;:::i;:71::-;20588:4;;20564:30;;:::i;:::-;20605:912;;;;;;;;;;;;;20588:4;20605:912;;;;;;;;;;;;;;;;;;;;;;;;19699:1824;:::o;19362:712:51:-;19450:618;;19362:712;19450:618;;;;;;;;;;;;;;;;;;;;;;;;;19362:712::o;21931:1560:52:-;;;;22196:1289;21931:1560;;22196:1289;21931:1560;;;22165:20;;;:::i;:::-;22196:1289;;;;;;;;;;;;;;;;;;;;;;;;;;;;21931:1560::o;22196:1289::-;;;;;;;;;;1450:776:50;1665:30;1450:776;;;;1689:4;1665:30;;:::i;:::-;1757:237;;;;;;;2179:29;1085:8212:36;;2179:29:50;;:::i;1757:237::-;;;;;;;16149:279:60;14888:947;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16303:119;;;14888:947;13542:488;16303:119;;1085:8212:36;14888:947:60;1085:8212:36;;14888:947:60;;;;;;;;;;16303:119;;;;16149:279;:::o;7544:445::-;-1:-1:-1;;;7626:357:60;;;;;;7544:445;:::o;7626:357::-;;;;;;;;;898:148:49;3299:1046;;;;;453:10;3299:1046;;;;;;;;;;;;;;;;;;;;;;;;;;;898:148::o;3299:1046::-;-1:-1:-1;;;3299:1046:49;;;;;9633:516:68;;9844:29;:23;;;1085:8212:36;9844:29:68;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;10132:9:68;10039:18;;;;;:::i;:::-;;;;;:::i;:::-;10098:10;10132:9;:::i;10716:1453::-;;;;11213:20;;11359:35;;;;5337:33;11359:35;:::i;:::-;1359::69;1434:9;1359:35;;;:::i;:::-;1434:9;;;:::i;:::-;11645:13:68;-1:-1:-1;;;;;11657:1:68;1085:8212:36;;11640:253:68;11660:19;;;;;;11960:203;;;;;;10716:1453::o;11960:203::-;;11232:1;11960:203;;;;11681:3;11815:35;;;;11657:1;11815:35;;-1:-1:-1;;;;;11815:35:68;;;;5337:33;11815:35;:::i;:::-;1085:8212:36;11815:50:68;;11799:79;11681:3;1085:8212:36;11645:13:68;;;;;10716:1453;;;;;11213:20;;11359:35;;;;;;:::i;:::-;1359::69;1434:9;1359:35;;;:::i;1434:9::-;11645:13:68;-1:-1:-1;;;;;11657:1:68;1085:8212:36;;11640:253:68;11660:19;;;;;;11960:203;;;;;;;10716:1453::o;11681:3::-;11815:35;;;;;11657:1;11815:35;;-1:-1:-1;;;;;11815:35:68;;;;;;:::i;:::-;1085:8212:36;11815:50:68;;11799:79;11681:3;1085:8212:36;11645:13:68;;;;;;4999:850:63;;;5399:1;5402:20;;;;;;5831:11;;;;5783:1;4999:850;:::o;5424:3::-;5561:27;5787:8;5561:27;;5783:1;5561:27;;;;:::i;:::-;1085:8212:36;;;;;;5690:10:63;5787:8;:::i;:::-;1085:8212:36;5387:13:63;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1651:1664:63:-;;;;;1787:1522;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1787:1522:63;;;;;;-1:-1:-1;;;;;1787:1522:63;;;;;;;1651:1664::o;1787:1522::-;;;;;;;;;6488:1750:45;;;;;;;;;7088:592;;;;;;;;;;;;;;;7822:2;;;;;:::i;:::-;5410:327:69;;;;;1085:8212:36;;8064:167:45;1085:8212:36;;;;8074:134:45;1085:8212:36;;7088:592:45;1085:8212:36;;;;;7088:592:45;;;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;8074:134:45;;:::i;:::-;8064:167;;:::i;:::-;6488:1750;:::o;5410:327:69:-;;;;;;7088:592:45;5410:327:69;7088:592:45;5410:327:69;;;;4509:499:60;;;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;4976:3;1085:8212:36;;4941:3:60;1085:8212:36;;;;4884:61:60;:96;4509:499;:::o;:::-;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;1085:8212:36;;;;4976:3:60;1085:8212:36;4884:116:60;;4509:499;:::o;6455:374::-;;;1085:8212:36;6455:374:60;;;;;;4509:499;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;4976:3;1085:8212:36;;;;4884:96:60;4509:499;:::o;:::-;;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;4976:3;1085:8212:36;;4941:3:60;1085:8212:36;;;;4884:61:60;:96;:116;4509:499;:::o;2678:1277:50:-;;;2755:1194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;;;;2755:1194:50;;-1:-1:-1;;;;;;;;;;;2755:1194:50;;;2678:1277::o;7578:9012:51:-;;;;;;;;;;;-1:-1:-1;7578:9012:51;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;-1:-1:-1;;7578:9012:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;7578:9012:51;-1:-1:-1;;;;;;;;;;;7578:9012:51;;-1:-1:-1;;;;;;;;;;;7578:9012:51;;;;;;:::o;:::-;;-1:-1:-1;7578:9012:51;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;-1:-1:-1;7578:9012:51;;5295:557:60;-1:-1:-1;;;5398:448:60;;;;5295:557;5398:448;;;;5295:557;:::o;10557:505:53:-;;;10744:30;10768:4;10744:30;;:::i;:::-;9254:988:31;;;;;;10768:4:53;9254:988:31;;10865:10:53;9254:988:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;11040:14:53;9254:988:31;;;;;;11040:14:53;:::i;9254:988:31:-;;;;;;;4719:320:69;4801:209;;;;;;4719:320;:::o;4801:209::-;;;;;;;1932:568:57;;2035:459;;;;;;;;;;;;1932:568::o;1085:8212:36:-;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;7205:121:52;1085:8212:36;7205:121:52;;1085:8212:36;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;16358:2747:52:-;;;16614:37;;:::i;:::-;-1:-1:-1;;;;;16956:1264:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;18295:58;16956:1264;;;;;;18295:58;:::i;:::-;18401:26;;;;:::i;:::-;18492:199;;;16358:2747;1085:8212:36;;;;18986:112:52;27026:43;;;:::i;:::-;27216:19;-1:-1:-1;27295:13:52;-1:-1:-1;27310:32:52;;;;;;28096:286;;;;;;16358:2747;:::o;28096:286::-;;-1:-1:-1;28096:286:52;;;;27344:3;1085:8212:36;28037:30:52;1085:8212:36;;;;;;;;27442:55:52;:61;:55;;;;;:::i;:::-;:61;:::i;:::-;1085:8212:36;;;;;;10621:113:60;;-1:-1:-1;;;;;10621:113:60;;;;;27698:17:52;;;;27682:46;27781:16;27864:54;27781:16;27864:54;;;:::i;:::-;1085:8212:36;28061:4:52;28037:30;;:::i;:::-;28018:49;;;;:::i;:::-;1085:8212:36;;27295:13:52;;;;;18492:199;18571:9;16956:1264;;;18571:9;;:::i;:::-;1085:8212:36;;;;;;16956:1264:52;1085:8212:36;;;18492:199:52;;;3614:3121:51;;3816:2913;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3816:2913:51;;-1:-1:-1;;3816:2913:51;;;;;-1:-1:-1;3614:3121:51:o;3816:2913::-;;;;;;;;;;;;;;;;;;;;;;;;24121:1723:52;1085:8212:36;;;;;;24121:1723:52;;;;1085:8212:36;24844:32:52;;;;;;25511:258;;;;;;;;;;;;:::i;24878:3::-;1085:8212:36;25446:29:52;1085:8212:36;;;;25064:4:52;24978:92;25064:4;24978:67;:61;25064:4;24978:61;;;;:::i;:67::-;:92;:::i;:::-;25105:23;25395:49;25105:23;;;;:::i;:::-;1085:8212:36;25273:30:52;;;;;25257:59;25395:49;;;:::i;:::-;1085:8212:36;;;25446:29:52;;;:::i;:::-;1085:8212:36;24829:13:52;;1085:8212:36;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;7205:121:52;1085:8212:36;7205:121:52;;1085:8212:36;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;:::o;33488:1350:59:-;1085:8212:36;;;;;;33842:4:59;1085:8212:36;;;;;;;33821:26:59;;;:::i;:::-;33933:13;-1:-1:-1;33948:12:59;;;;;;34627:205;;;34131:462;34627:205;;34131:462;;34627:205;33488:1350;:::o;33962:3::-;34103:9;;1085:8212:36;34103:9:59;;;;:::i;:::-;33842:4;34131:462;;1085:8212:36;34131:462:59;;;;;;;;;;;;;;;1085:8212:36;33933:13:59;;2568:2676:45;3056:1056;;;;-1:-1:-1;;;;;3056:1056:45;;2568:2676;;;;;;;3056:1056;;2568:2676;;3056:1056;;;;;;;;;;;;2568:2676;;3056:1056;;;2568:2676;4171:13;3056:1056;;;;4171:13;:::i;:::-;1359:35:69;;;:::i;:::-;3056:1056:45;;;;;1434:9:69;;;;:::i;:::-;4384:262:45;;;;;4805:28;;;;4759:41;;;;1422:62:55;4758:134:45;;;;5140:15;4758:134;5227:9;4758:134;;;2568:2676;4754:236;;;;;2568:2676;3056:1056;;;;;;;;;5140:15;;:::i;:::-;5227:9;;:::i;4754:236::-;4956:22;3056:1056;;;4956:22;;;:::i;:::-;4754:236;;;;;4758:134;7498:53:63;;;6411:531;6273:675;6411:531;6273:675;6411:531;;;;;;;;;;;;;;;;;;;;;6273:675;;7498:53;7555:15;-1:-1:-1;7498:72:63;4758:134:45;;;;;9841:2874:47;;;;;;;;11273:135;9841:2874;;;10515:537;;;;;;;;;;;;;;;;;11153:9;:28;:9;;;;:::i;:::-;1085:8212:36;12790:117:60;;-1:-1:-1;;;;;12790:117:60;;12702:211;11153:28:47;11273:135;;;;:::i;:::-;11710:9;;;;;:::i;:::-;11742:12;12034:40;10515:537;11851:100;1085:8212:36;;;11781:16:47;;;;;1085:8212:36;11851:25:47;;;;1085:8212:36;11851:100:47;:::i;:::-;11830:16;;1422:62:55;12034:40:47;;;;;:::i;:::-;;-1:-1:-1;;;;;12203:1:47;1085:8212:36;;12186:423:47;12206:15;;;;;;12664:11;;;;;;;;;;;;:::i;12223:3::-;12258:9;;;;;:::i;:::-;1085:8212:36;;12329:16:47;;;;11781;12329;;1085:8212:36;12422:25:47;;;10515:537;12422:25;1085:8212:36;12422:100:47;;;;:::i;:::-;12790:117:60;;;;-1:-1:-1;;;;;12790:117:60;12379:38:47;;1422:62:55;12363:172:47;12554:40;;;;;;;:::i;:::-;;12203:1;1085:8212:36;12191:13:47;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;35089:1381:59:-;1085:8212:36;;;;;;35453:4:59;1085:8212:36;;;;;;;35432:26:59;;;:::i;:::-;35544:13;-1:-1:-1;35559:12:59;;;;;;36259:205;;;35747:478;36259:205;;35747:478;;36259:205;35089:1381;:::o;35573:3::-;35719:9;;1085:8212:36;35719:9:59;;;;:::i;:::-;35453:4;35747:478;;1085:8212:36;35747:478:59;;;;;;;;;;;;;;;1085:8212:36;35544:13:59;;3959:187:48;4032:27;4028:69;;5767:105;;;;3959:187;:::o;19512:2305:59:-;19760:2051;19512:2305;;19760:2051;;19512:2305;19760:2051;;;;;;;-1:-1:-1;;;;;;;;;;;19760:2051:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19760:2051:59;;;;;;19512:2305;:::o;2298:320:69:-;2354:258;;;;;;2298:320;:::o;2354:258::-;;;;;;;;;3290:686;2577:519:54;;;;-1:-1:-1;2577:519:54;;;;;;;;;;;;;;;;;3290:686:69;;2577:519:54;;3290:686:69;;6576:3996:32;;;;;;-1:-1:-1;;;;;6576:3996:32;;;;;;;;;3641:329:69;;;;;;;;;;;;;3290:686::o;3641:329::-;;-1:-1:-1;3641:329:69;6576:3996:32;3641:329:69;;6576:3996:32;;;;;;;;;2577:519:54;6576:3996:32;;;-1:-1:-1;6576:3996:32;;;;;;;2577:519:54;6576:3996:32;;;-1:-1:-1;6576:3996:32;;;2577:519:54;6576:3996:32;;;;;;;;;;;;;;;;2577:519:54;6576:3996:32;;;;;;;;;;;;;;;-1:-1:-1;;;6576:3996:32;;;;;;;;;;;;;2577:519:54;6576:3996:32;;;-1:-1:-1;6576:3996:32;2577:519:54;6576:3996:32;2577:519:54;6576:3996:32;;;2577:519:54;6576:3996:32;;-1:-1:-1;6576:3996:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;6576:3996:32;;2577:519:54;6576:3996:32;;;;;;;;;;;2577:519:54;6576:3996:32;;;;;;;;;;;;;;2577:519:54;6576:3996:32;-1:-1:-1;;;;;6576:3996:32;;;1085:8212:36;6576:3996:32;-1:-1:-1;1085:8212:36;6576:3996:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;6576:3996:32;;2577:519:54;6576:3996:32;;;;;;;;;;1099:568:57;1194:467;;;;;;-1:-1:-1;;;;;1194:467:57;;;;;;;;;;;;1099:568::o;22429:3319:59:-;22686:3056;;;;;;;-1:-1:-1;;;;;;;;;;;22686:3056:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22686:3056:59;;;;;;22429:3319;:::o;22686:3056::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22686:3056:59;;;14160:2308:47;;;;;;;;15357:135;14160:2308;14837:299;;;;;;;;;;;15237:9;:28;:9;;;;:::i;:28::-;15357:135;;;;:::i;:::-;15613:16;;15783:13;-1:-1:-1;;;;;;1085:8212:36;;15778:538:47;15798:15;;;;;;16417:11;;;;;;;;;;:::i;15815:3::-;15889:9;16190:111;15889:9;;1085:8212:36;15889:9:47;;;;:::i;:::-;1085:8212:36;;16015:45:47;;;-1:-1:-1;;;;;16015:45:47;;;;:::i;:::-;12790:117:60;;;;15972:38:47;;1422:62:55;15956:117:47;16190:23;;14837:299;16190:23;;;;;;:::i;:::-;16259:30;;;;1085:8212:36;16190:111:47;;:::i;:::-;;1085:8212:36;15783:13:47;;20720:384:42;20153:30;20720:384;20936:98;21015:4;5067:83:55;;;20936:98:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;20936:98:42;20862:235;8797:51;20153:30;:::i;19628:745:47:-;;;;20027:1;20030:15;;;;;;19628:745;;;;;:::o;20047:3::-;20176:13;20279:63;20176:13;1085:8212:36;20176:13:47;;;;:::i;:::-;20301:18;20325:16;20301:18;;;:::i;:::-;20325:16;;1085:8212:36;20289:10:47;;20279:63;;:::i;:::-;;1085:8212:36;20015:13:47;;6324:381:69;6418:281;;;;;;;;;;6324:381;:::o;6418:281::-;;;;;;;;;6454:1983:47;;;;7956:137;6454:1983;;;;;;7154:711;;;;;;;;;;;;;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;7956:137:47;;:::i;:::-;;8236:2;7154:711;7956:137;8347:83;7956:137;8236:2;;:::i;:::-;7154:711;;;;;;;;8347:83;:::i;30933:1265:59:-;31095:1097;30933:1265;31095:1097;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30933:1265;:::o;8318:262:69:-;;8527:45;8318:262;;8527:45;:::i;:::-;8498:24;;1422:62:55;8318:262:69;:::o;20573:345:47:-;20709:203;;20573:345::o;14317:1060:59:-;14489:882;14317:1060;14489:882;;;;-1:-1:-1;;;;;;;;;;;14489:882:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14317:1060;:::o;7335:204:69:-;11032:107:60;;1085:8212:36;;;;;;7512:19:69;7496:35;7454:36;;;905:63:55;7335:204:69;:::o;17378:1707:47:-;;;;;;17782:1;17816:16;;;17984:13;17782:1;17999:15;;;;;;18689:29;;;;;;;;;18673:58;18741:316;;19067:11;;1085:8212:36;17378:1707:47;:::o;18741:316::-;;17782:1;18741:316;18122:16;18741:316;;;;;;18016:3;18075:12;18499:50;18122:16;18075:12;;;18518:18;18075:12;1085:8212:36;18075:12:47;;;;:::i;:::-;18122:16;;;1085:8212:36;;;;;18310:32:47;;;18294:61;18373:32;18518:18;;:::i;:::-;18499:50;;;:::i;:::-;;1085:8212:36;17984:13:47;;28999:1456:59;;29139:1310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28999:1456;:::o;1085:8212:36:-;20153:30:42;1085:8212:36;5067:83:55;;20153:30:42;20382:26;20153:30;:::i;1085:8212:36:-;;21469:68:42;20153:30;21780:4;5067:83:55;;;20153:30:42;21800:26;20153:30;:::i;:::-;5067:83:55;;;;21469:68:42;;:::i;1085:8212:36:-;24400:277:42;1085:8212:36;24511:109:42;24601:4;5067:83:55;;;24511:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24511:109:42;24400:277;;:::i;:::-;24393:284;;1085:8212:36:o;:::-;23950:250:42;1085:8212:36;24052:100:42;24133:4;5067:83:55;;;24052:100:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24052:100:42;23950:250;;:::i;1085:8212:36:-;;21469:68:42;20153:30;22563:107;22651:4;5067:83:55;;;22563:107:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;22563:107:42;20153:30;11894:54;20153:30;:::i;1085:8212:36:-;;21469:68:42;20153:30;22104:98;22183:4;5067:83:55;;;22104:98:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;;26376:277:42;1085:8212:36;26496:109:42;26586:4;5067:83:55;;;26496:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;26496:109:42;26376:277;;:::i;:::-;26369:284;;;;;1085:8212:36:o;:::-;26926:304:42;1085:8212:36;27055:118:42;27154:4;5067:83:55;;;27055:118:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;27055:118:42;26926:304;;:::i;1085:8212:36:-;;;;;;;;;28508:137:59;1085:8212:36;28508:137:59;;;27779:134;1085:8212:36;27779:134:59;;;27062:128;1085:8212:36;27062:128:59;;;15848:748;1085:8212:36;15848:748:59;;;26336:125;1085:8212:36;26336:125:59;;;10532:988;1085:8212:36;10532:988:59;;;1085:8212:36;32705:531:59;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;32705:531:59;;;;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;:::o;:::-;10532:988:59;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10532:988:59;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;:::o;:::-;5067:83:55;26336:125:59;5067:83:55;;;26336:125:59;;:::i;1085:8212:36:-;15848:748:59;;;;;;;;;-1:-1:-1;;;;;;;;;;;15848:748:59;;;;;;;;;;;;;;;;;1085:8212:36;:::o;:::-;5067:83:55;27062:128:59;5067:83:55;27105:4:59;5067:83:55;;;27062:128:59;;:::i;1085:8212:36:-;5067:83:55;27779:134:59;5067:83:55;;;27779:134:59;;:::i;1085:8212:36:-;5067:83:55;28508:137:59;5067:83:55;28560:4:59;5067:83:55;;;28508:137:59;;:::i;1085:8212:36:-;;12113:1798:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;17159:1746:59;1085:8212:36;;;;17159:1746:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;12113:1798:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;17159:1746:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;;;;;;;;;12790:117:60;1085:8212:36;12790:117:60;;;1085:8212:36;12790:117:60;;;1085:8212:36;;;11232:1:68;1085:8212:36;;;;;11232:1:68;1085:8212:36;;20153:30:42;;11232:1:68;20153:30:42;:::i;1085:8212:36:-;13584:17:68;11232:1;13584:17;;-1:-1:-1;;;;;13584:17:68;;:::i;:::-;1085:8212:36;12790:117:60;;;1085:8212:36;:::o;:::-;-1:-1:-1;1085:8212:36;;;;12790:117:60;;-1:-1:-1;;;;;12790:117:60;;1085:8212:36:o;:::-;;;;;;12790:117:60;1085:8212:36;12790:117:60;;;1085:8212:36;12790:117:60;;;1085:8212:36;;;;;;;;;;;;20153:30:42;;;:::i;1085:8212:36:-;13584:17:68;;;;-1:-1:-1;;;;;13584:17:68;;:::i;1085:8212:36:-;12846:17:68;;;;-1:-1:-1;;;;;12846:17:68;;:::i;1085:8212:36:-;;;23142:88:42;1085:8212:36;23094:30:42;;;:::i;:::-;5067:83:55;;;;23164:4:42;5067:83:55;;;23142:88:42;14490:36;23142:88;:::i;:::-;1085:8212:36;;:::o;:::-;;;23142:88:42;1085:8212:36;23094:30:42;;;:::i;:::-;5067:83:55;;;;23164:4:42;5067:83:55;;;23142:88:42;15709:45;23142:88;:::i;1085:8212:36:-;;25042:30:42;25103:73;1085:8212:36;25042:30:42;17045:42;25042:30;:::i;:::-;5067:83:55;;;;25157:4:42;5067:83:55;;;25103:73:42;;:::i;1085:8212:36:-;;25042:30:42;25103:73;1085:8212:36;25042:30:42;25509:32;25042:30;:::i;1085:8212:36:-;;26065:73:42;26119:4;1085:8212:36;23669:88:42;1085:8212:36;23621:30:42;;;:::i;:::-;5067:83:55;;;;;;;23691:4:42;5067:83:55;;23669:88:42;18387:36;23669:88;:::i;:::-;5067:83:55;;;;26065:73:42;;:::i;1085:8212:36:-;;26065:73:42;26119:4;1085:8212:36;23669:88:42;1085:8212:36;23621:30:42;;;:::i;:::-;5067:83:55;;;;;;;23691:4:42;5067:83:55;;23669:88:42;19848:45;23669:88;:::i;1085:8212:36:-;;;;;;;;;;;;;;;;;3463:4:65;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;1594:1852:65;;;;;;;;;;;-1:-1:-1;1594:1852:65;;-1:-1:-1;1594:1852:65;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1594:1852:65;;-1:-1:-1;1594:1852:65;;;;;;;;;;;;;;-1:-1:-1;1594:1852:65;;;1085:8212:36;;;;;1594:1852:65;1085:8212:36;;;;;;1594:1852:65;-1:-1:-1;;;;;;;;;;;1594:1852:65;-1:-1:-1;1594:1852:65;3463:4;1085:8212:36;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22686:3056:59;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22686:3056:59;;;;;;;;;;;;;;;;;1085:8212:36;22686:3056:59;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22686:3056:59;-1:-1:-1;22686:3056:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;:::o;22686:3056:59:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22686:3056:59;;;;;;;;;;;;;;1085:8212:36;;19760:2051:59;1085:8212:36;19760:2051:59;1085:8212:36;;;;19760:2051:59;1085:8212:36;19760:2051:59;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19760:2051:59;;;;;;;;;;;;;;;;;1085:8212:36;19760:2051:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;:::o;19760:2051:59:-;;;;;;;;;;;1085:8212:36;;;;;;;;;;;;;;13942:8:45;1085:8212:36;13942:8:45;;;10043;1085:8212:36;10043:8:45;;;13942;1085:8212:36;13942:8:45;;;1085:8212:36;;;;;11967:8:45;1085:8212:36;11967:8:45;;;;1085:8212:36;11967:8:45;;;1085:8212:36;;;;;;10043:8:45;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;9882:170:45;;10043:8;9882:170;;;;;;;;;:::i;1085:8212:36:-;24406:152:45;;;;;:::i;1085:8212:36:-;11806:170:45;;11967:8;11806:170;;;;;;;;;:::i;1085:8212:36:-;5689:83:55;;11806:170:45;5689:83:55;;11967:8:45;5689:83:55;;;;;;11806:170:45;;:::i;1085:8212:36:-;5689:83:55;;25964:175:45;5689:83:55;;;;;25964:175:45;;:::i;1085:8212:36:-;5689:83:55;;13776:175:45;5689:83:55;;13942:8:45;5689:83:55;;;;;;13776:175:45;;:::i;1085:8212:36:-;5689:83:55;;9882:170:45;5689:83:55;;10043:8:45;5689:83:55;;;;;;9882:170:45;;:::i;1085:8212:36:-;13776:175:45;;13942:8;13776:175;;;;;;;;;:::i","linkReferences":{},"immutableReferences":{"44928":[{"start":7386,"length":32}],"44930":[{"start":7338,"length":32}],"44938":[{"start":14924,"length":32}],"44946":[{"start":14803,"length":32}],"44952":[{"start":15276,"length":32}],"61471":[{"start":14315,"length":32}],"61473":[{"start":14282,"length":32}],"61476":[{"start":5399,"length":32},{"start":9518,"length":32},{"start":12624,"length":32}],"61478":[{"start":20145,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","__activateTstore()":"7423eb3c","__registerAllocator(address,bytes)":"2a9c4d0d","allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))":"7112406d","allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))":"200f0c4d","allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))":"a2394147","allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))":"dd589cfc","allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))":"393c33e2","allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))":"6a9a4c44","allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))":"fdc060e7","allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))":"27c777a9","allowance(address,address,uint256)":"598af9e7","approve(address,uint256,uint256)":"426a8493","balanceOf(address,uint256)":"00fdd58e","claim((bytes,bytes,address,uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"d204f11e","claim((bytes,bytes,address,uint256,uint256,(uint256,uint256,uint256)[],address))":"59202128","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))":"eaa67483","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,uint256)[],address))":"db04bc72","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"fb75fb69","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))":"107d4ee4","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))":"d350188c","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"ea14532e","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"176f405a","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))":"12f9d21e","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"4c102416","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"6af2791b","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,(address,uint256)[]))":"b4039fc2","claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,address,uint256))":"63f5b1ad","claim((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,(address,uint256)[])[]))":"d34ddc82","claim((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,uint256)[],address))":"b54baefd","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))":"eb431821","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,uint256)[],address))":"b24849b7","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"12a1e6ea","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))":"b3244389","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))":"414fd914","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"2c4bbd17","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"5ac2ccf1","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))":"1d474b14","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"4d585fbf","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"ebcbd7b5","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,(address,uint256)[]))":"e8672f93","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,address,uint256))":"0d57fec9","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"577cdc64","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,uint256)[],address))":"9730f4fd","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(address,uint256)[]))":"f745381c","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"aa41c87e","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"eed634ad","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,address,uint256))":"e0565c49","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"a4c7bd93","claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"5e6c91ff","claim((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,(address,uint256)[]))":"996d3aac","claim((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,address,uint256))":"44b97d78","claim((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"935ed2ba","claim((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,uint256)[],address))":"9be5f537","claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(address,uint256)[]))":"b7ace047","claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"06659b7f","claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"fa1c5500","claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,address,uint256))":"e6c5b654","claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"409b3a7e","claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"32e2a803","claim((bytes,bytes,address,uint256,uint256,uint256,uint256,(address,uint256)[]))":"b8a5bbad","claim((bytes,bytes,address,uint256,uint256,uint256,uint256,address,uint256))":"86785559","claimAndWithdraw((bytes,bytes,address,uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"548439e1","claimAndWithdraw((bytes,bytes,address,uint256,uint256,(uint256,uint256,uint256)[],address))":"721f6292","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))":"13589bfe","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,uint256)[],address))":"f44a3452","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"0a133cf2","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))":"0f5eeadf","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))":"eb196008","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"88da84d4","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"03417d72","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))":"f23d923d","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"843719f0","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"eea77a78","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,(address,uint256)[]))":"06e8cc18","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,address,uint256))":"1bb81a81","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,(address,uint256)[])[]))":"f2f0def1","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,uint256)[],address))":"4e55a548","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))":"08e600ee","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,uint256)[],address))":"b20abc48","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"25d7776b","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))":"14865907","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))":"d2a1805f","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"d921f36a","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"fcfe431a","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))":"d3917f3c","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"64870556","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"418a23f5","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,(address,uint256)[]))":"f95d3d16","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,address,uint256))":"138cd819","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"62a420bb","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,uint256)[],address))":"c4d195e8","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(address,uint256)[]))":"3f458a19","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"5d76a382","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"eed93572","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,address,uint256))":"1b98b63f","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"341056c5","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"89ce0661","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,(address,uint256)[]))":"4ad5205e","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,address,uint256))":"2e4d55cc","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,(address,uint256)[])[]))":"88d247c4","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,uint256)[],address))":"bc95bd7a","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(address,uint256)[]))":"2737edb9","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))":"206620a1","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))":"2acd5dc3","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,address,uint256))":"76d531d4","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))":"e05c6e7d","claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,address,uint256))":"ca6cc39f","claimAndWithdraw((bytes,bytes,address,uint256,uint256,uint256,uint256,(address,uint256)[]))":"71f50127","claimAndWithdraw((bytes,bytes,address,uint256,uint256,uint256,uint256,address,uint256))":"b602ae02","consume(uint256[])":"12d48885","decimals(uint256)":"3f47e662","deposit(address)":"f340fa01","deposit(address,(address,uint256)[],uint256,uint256,address,uint8,uint8,address,bytes)":"99cf8b9b","deposit(address,address,uint256)":"8340f549","deposit(address,address,uint8,uint8,uint256,address)":"671b3bd6","deposit(address,uint256,uint256,uint256,address,address,uint8,uint8,address,bytes)":"10d82672","deposit(address,uint8,uint8,address)":"507cb46f","deposit(uint256[2][],address)":"c8091041","depositAndRegister(address,(address,uint256)[],uint256,uint256,address,uint8,uint8,bytes32,uint8,string,bytes)":"da15ee7f","depositAndRegister(address,address,uint256,bytes32,bytes32)":"ecaca40e","depositAndRegister(address,bytes32,bytes32)":"aa8b845d","depositAndRegister(address,uint256,uint256,uint256,address,address,uint8,uint8,bytes32,uint8,string,bytes)":"53e50067","depositAndRegister(uint256[2][],bytes32[2][],uint256)":"5b6016ec","disableForcedWithdrawal(uint256)":"70030190","enableForcedWithdrawal(uint256)":"eb35a6d2","extsload(bytes32)":"1e2eaeaf","extsload(bytes32[])":"dbd035ff","exttload(bytes32)":"f135baaa","forcedWithdrawal(uint256,address,uint256)":"2e3ff2f7","getForcedWithdrawalStatus(address,uint256)":"144bd5b5","getLockDetails(uint256)":"5b15bfd9","getRegistrationStatus(address,bytes32,bytes32)":"440a0ec3","hasConsumedAllocatorNonce(uint256,address)":"da2f268b","isOperator(address,address)":"b6363cf2","name()":"06fdde03","name(uint256)":"00ad800c","register(bytes32,bytes32,uint256)":"4073c0cc","register(bytes32[2][],uint256)":"31bbae3e","setOperator(address,bool)":"558a7297","supportsInterface(bytes4)":"01ffc9a7","symbol(uint256)":"4e41a1fb","tokenURI(uint256)":"c87b56dd","transfer(address,uint256,uint256)":"095bcdb6","transferFrom(address,address,uint256,uint256)":"fe99049a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providedAmount\",\"type\":\"uint256\"}],\"name\":\"AllocatedAmountExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceOverflow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"Expired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ForcedWithdrawalAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientPermission\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchDepositStructure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDepositBalanceChange\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDepositTokenOrdering\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"InvalidRegistrationDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"InvalidRegistrationProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"InvalidScope\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"InvalidToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyDirectCalls\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Permit2CallFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"PrematureWithdrawal\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"existingCaller\",\"type\":\"address\"}],\"name\":\"ReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TStoreAlreadyActivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TStoreNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TloadTestContractDeploymentFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UnallocatedTransfer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"allocatorId\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"AllocatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"arbiter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"}],\"name\":\"CompactRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"activating\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawableAt\",\"type\":\"uint256\"}],\"name\":\"ForcedWithdrawalStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"OperatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__activateTstore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"__registerAllocator\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TransferComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BatchTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitByIdComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"recipients\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BasicTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BasicTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitByIdComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TransferComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BatchTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"recipients\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BasicClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BasicClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nonces\",\"type\":\"uint256[]\"}],\"name\":\"consume\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"scope\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"scope\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.TokenPermissions[]\",\"name\":\"permitted\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[2][]\",\"name\":\"idsAndAmounts\",\"type\":\"uint256[2][]\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum CompactCategory\",\"name\":\"compactCategory\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"witness\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[2][]\",\"name\":\"idsAndAmounts\",\"type\":\"uint256[2][]\"},{\"internalType\":\"bytes32[2][]\",\"name\":\"claimHashesAndTypehashes\",\"type\":\"bytes32[2][]\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.TokenPermissions[]\",\"name\":\"permitted\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum CompactCategory\",\"name\":\"compactCategory\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"witness\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"disableForcedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"enableForcedWithdrawal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"extsload\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"slots\",\"type\":\"bytes32[]\"}],\"name\":\"extsload\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"exttload\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"forcedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getForcedWithdrawalStatus\",\"outputs\":[{\"internalType\":\"enum ForcedWithdrawalStatus\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getLockDetails\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"}],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"hasConsumedAllocatorNonce\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[2][]\",\"name\":\"claimHashesAndTypehashes\",\"type\":\"bytes32[2][]\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"0age (0age.eth)\",\"custom:version\":\"0 (early-stage proof-of-concept)\",\"errors\":{\"BalanceOverflow()\":[{\"details\":\"The balance has overflowed.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InsufficientPermission()\":[{\"details\":\"Insufficient permission to perform the action.\"}]},\"events\":{\"AllocatorRegistered(uint96,address)\":{\"params\":{\"allocator\":\"The address of the registered allocator.\",\"allocatorId\":\"The unique identifier assigned to the allocator.\"}},\"Approval(address,address,uint256,uint256)\":{\"details\":\"Emitted when `owner` approves `spender` to use `amount` of `id` token.\"},\"Claim(address,address,address,bytes32)\":{\"params\":{\"allocator\":\"The account mediating the resource locks utilized by the claim.\",\"arbiter\":\"The account verifying and initiating the settlement of the claim.\",\"claimHash\":\"A bytes32 hash derived from the details of the claimed compact.\",\"sponsor\":\"The account sponsoring the claimed compact.\"}},\"CompactRegistered(address,bytes32,bytes32,uint256)\":{\"params\":{\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"expires\":\"The timestamp at which the compact can no longer be claimed.\",\"sponsor\":\"The address registering the compact in question.\",\"typehash\":\"The EIP-712 typehash associated with the registered compact.\"}},\"ForcedWithdrawalStatusUpdated(address,uint256,bool,uint256)\":{\"params\":{\"account\":\"The account for which the withdrawal status has changed.\",\"activating\":\"Whether the forced withdrawal is being activated or has been deactivated.\",\"id\":\"The ERC6909 token identifier of the associated resource lock.\",\"withdrawableAt\":\"The timestamp when tokens become withdrawable if it is being activated.\"}},\"OperatorSet(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables `operator` to manage all of their tokens.\"},\"Transfer(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `by` transfers `amount` of token `id` from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"returns\":{\"_0\":\"A bytes32 representing the domain separator for the contract.\"}},\"__activateTstore()\":{\"details\":\"External function to activate TSTORE usage. Does not need to be called if TSTORE is supported from deployment, and only needs to be called once. Reverts if TSTORE has already been activated or if the opcode is not available. Note that this must be called directly from an externally-owned account to avoid potential reentrancy issues.\"},\"__registerAllocator(address,bytes)\":{\"params\":{\"allocator\":\"The address to register as an allocator.\",\"proof\":\"An 85-byte value containing create2 address derivation parameters (0xff ++ factory ++ salt ++ initcode hash).\"},\"returns\":{\"_0\":\"A unique identifier assigned to the registered allocator.\"}},\"allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"params\":{\"transfer\":\"A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"params\":{\"transfer\":\"A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive all tokens.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"params\":{\"transfer\":\"A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))\":{\"params\":{\"transfer\":\"A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive the tokens.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"params\":{\"withdrawal\":\"A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"params\":{\"withdrawal\":\"A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive all tokens.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"params\":{\"withdrawal\":\"A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))\":{\"params\":{\"withdrawal\":\"A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive the tokens.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allowance(address,address,uint256)\":{\"details\":\"Returns the amount of token `id` that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` for the caller for token `id`. Emits a {Approval} event.\"},\"balanceOf(address,uint256)\":{\"details\":\"Returns the amount of token `id` owned by `owner`.\"},\"consume(uint256[])\":{\"params\":{\"nonces\":\"Array of nonces to be consumed.\"},\"returns\":{\"_0\":\"Whether all nonces were successfully consumed.\"}},\"decimals(uint256)\":{\"details\":\"Returns the number of decimals for token `id`. Returns 18 by default. Please override this function if you need to return a custom value.\"},\"deposit(address)\":{\"params\":{\"allocator\":\"The address of the allocator.\"},\"returns\":{\"_0\":\"The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(address,address,uint256)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"amount\":\"The amount of tokens to deposit.\",\"token\":\"The address of the ERC20 token to deposit.\"},\"returns\":{\"_0\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(address,address,uint8,uint8,uint256,address)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"amount\":\"The amount of tokens to deposit.\",\"recipient\":\"The address that will receive the corresponding ERC6909 tokens.\",\"resetPeriod\":\"The duration after which the resource lock can be reset once a forced withdrawal is initiated.\",\"scope\":\"The scope of the resource lock (multichain or single chain).\",\"token\":\"The address of the ERC20 token to deposit.\"},\"returns\":{\"_0\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(address,uint8,uint8,address)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"recipient\":\"The address that will receive the corresponding ERC6909 tokens.\",\"resetPeriod\":\"The duration after which the resource lock can be reset once a forced withdrawal is initiated.\",\"scope\":\"The scope of the resource lock (multichain or single chain).\"},\"returns\":{\"_0\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(uint256[2][],address)\":{\"params\":{\"idsAndAmounts\":\"Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit.\",\"recipient\":\"The address that will receive the corresponding ERC6909 tokens.\"},\"returns\":{\"_0\":\"Whether the batch deposit was successfully completed.\"}},\"depositAndRegister(address,address,uint256,bytes32,bytes32)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"amount\":\"The amount of tokens to deposit.\",\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"token\":\"The address of the ERC20 token to deposit.\",\"typehash\":\"The EIP-712 typehash associated with the registered compact.\"},\"returns\":{\"id\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"depositAndRegister(address,bytes32,bytes32)\":{\"params\":{\"allocator\":\"The address of the allocator.\",\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"typehash\":\"The EIP-712 typehash associated with the registered compact.\"},\"returns\":{\"id\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"depositAndRegister(uint256[2][],bytes32[2][],uint256)\":{\"params\":{\"claimHashesAndTypehashes\":\"Array of [claimHash, typehash] pairs for registration.\",\"duration\":\"The duration for which the claim hashes remain valid.\",\"idsAndAmounts\":\"Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit.\"},\"returns\":{\"_0\":\"Whether the batch deposit and claim hash registration was successfully completed.\"}},\"disableForcedWithdrawal(uint256)\":{\"params\":{\"id\":\"The ERC6909 token identifier for the resource lock.\"},\"returns\":{\"_0\":\"Whether the forced withdrawal was successfully disabled.\"}},\"enableForcedWithdrawal(uint256)\":{\"params\":{\"id\":\"The ERC6909 token identifier for the resource lock.\"},\"returns\":{\"_0\":\"The timestamp at which tokens become withdrawable.\"}},\"forcedWithdrawal(uint256,address,uint256)\":{\"params\":{\"amount\":\"The amount of tokens to withdraw.\",\"id\":\"The ERC6909 token identifier for the resource lock.\",\"recipient\":\"The account that will receive the withdrawn tokens.\"},\"returns\":{\"_0\":\"Whether the forced withdrawal was successfully executed.\"}},\"getForcedWithdrawalStatus(address,uint256)\":{\"params\":{\"account\":\"The account to get the forced withdrawal status for.\",\"id\":\"The ERC6909 token identifier of the resource lock.\"},\"returns\":{\"_0\":\" The current ForcedWithdrawalStatus (disabled, pending, or enabled).\",\"_1\":\"The timestamp at which tokens become withdrawable if status is pending.\"}},\"getLockDetails(uint256)\":{\"params\":{\"id\":\"The ERC6909 token identifier of the resource lock.\"},\"returns\":{\"_0\":\" The address of the underlying token (or address(0) for native tokens).\",\"_1\":\" The account of the allocator mediating the resource lock.\",\"_2\":\"The duration after which the resource lock can be reset once a forced withdrawal is initiated.\",\"_3\":\" The scope of the resource lock (multichain or single chain).\"}},\"getRegistrationStatus(address,bytes32,bytes32)\":{\"params\":{\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"sponsor\":\"The account that registered the compact.\",\"typehash\":\"The EIP-712 typehash associated with the registered claim hash.\"},\"returns\":{\"expires\":\" The timestamp at which the compact registration expires.\",\"isActive\":\"Whether the compact registration is currently active.\"}},\"hasConsumedAllocatorNonce(uint256,address)\":{\"params\":{\"allocator\":\"The account of the allocator.\",\"nonce\":\"The nonce to check.\"},\"returns\":{\"_0\":\"Whether the nonce has been consumed.\"}},\"isOperator(address,address)\":{\"details\":\"Checks if a `spender` is approved by `owner` to manage all of their tokens.\"},\"name()\":{\"details\":\"Returns the name for the contract.\"},\"name(uint256)\":{\"details\":\"Returns the symbol for token `id`.\"},\"register(bytes32,bytes32,uint256)\":{\"params\":{\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"duration\":\"The duration for which the claim hash remains valid.\",\"typehash\":\"The EIP-712 typehash associated with the registered claim hash.\"},\"returns\":{\"_0\":\"Whether the claim hash was successfully registered.\"}},\"register(bytes32[2][],uint256)\":{\"params\":{\"claimHashesAndTypehashes\":\"Array of [claimHash, typehash] pairs for registration.\",\"duration\":\"The duration for which the claim hashes remain valid.\"},\"returns\":{\"_0\":\"Whether all claim hashes were successfully registered.\"}},\"setOperator(address,bool)\":{\"details\":\"Sets whether `operator` is approved to manage the tokens of the caller. Emits {OperatorSet} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`.\"},\"symbol(uint256)\":{\"details\":\"Returns the symbol for token `id`.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for token `id`.\"},\"transfer(address,uint256,uint256)\":{\"details\":\"Transfers `amount` of token `id` from the caller to `to`. Requirements: - caller must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256,uint256)\":{\"details\":\"Transfers `amount` of token `id` from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount` of token `id`. - The caller must have at least `amount` of allowance to transfer the tokens of `from` or approved as an operator. Emits a {Transfer} event.\"}},\"title\":\"The Compact\",\"version\":1},\"userdoc\":{\"events\":{\"AllocatorRegistered(uint96,address)\":{\"notice\":\"Event indicating an allocator has been registered.\"},\"Claim(address,address,address,bytes32)\":{\"notice\":\"Event indicating that a claim has been processed for a given compact.\"},\"CompactRegistered(address,bytes32,bytes32,uint256)\":{\"notice\":\"Event indicating that a compact has been registered directly.\"},\"ForcedWithdrawalStatusUpdated(address,uint256,bool,uint256)\":{\"notice\":\"Event indicating a change in forced withdrawal status.\"}},\"kind\":\"user\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"notice\":\"External pure function for returning the domain separator of the contract.\"},\"__registerAllocator(address,bytes)\":{\"notice\":\"External function for registering an allocator. Can be called by anyone if one of three conditions is met: the caller is the allocator address being registered, the allocator address contains code, or a proof is supplied representing valid create2 deployment parameters that resolve to the supplied allocator address.\"},\"allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"notice\":\"Transfers ERC6909 tokens from multiple resource locks to multiple recipients with allocator approval.\"},\"allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"notice\":\"Transfers ERC6909 tokens from multiple resource locks to a single recipient with allocator approval.\"},\"allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"notice\":\"Transfers ERC6909 tokens to multiple recipients with allocator approval.\"},\"allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))\":{\"notice\":\"Transfers ERC6909 tokens to a single recipient with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"notice\":\"Withdraws underlying tokens from multiple resource locks to multiple recipients with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"notice\":\"Withdraws underlying tokens from multiple resource locks to a single recipient with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"notice\":\"Withdraws underlying tokens to multiple recipients with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))\":{\"notice\":\"Withdraws underlying tokens to a single recipient with allocator approval.\"},\"consume(uint256[])\":{\"notice\":\"External function for consuming allocator nonces. Only callable by a registered allocator. Once consumed, any compact payloads that utilize those nonces cannot be claimed.\"},\"deposit(address)\":{\"notice\":\"External payable function for depositing native tokens into a resource lock and receiving back ERC6909 tokens representing the underlying locked balance controlled by the depositor. The allocator mediating the lock is provided as an argument, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction.\"},\"deposit(address,address,uint256)\":{\"notice\":\"External function for depositing ERC20 tokens into a resource lock. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token.\"},\"deposit(address,address,uint8,uint8,uint256,address)\":{\"notice\":\"External function for depositing ERC20 tokens into a resource lock with custom reset period and scope parameters. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received by the recipient is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token.\"},\"deposit(address,uint8,uint8,address)\":{\"notice\":\"External payable function for depositing native tokens into a resource lock with custom reset period and scope parameters. The ERC6909 token amount received by the recipient will match the amount of native tokens sent with the transaction.\"},\"deposit(uint256[2][],address)\":{\"notice\":\"External payable function for depositing multiple tokens in a single transaction. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens.\"},\"depositAndRegister(address,address,uint256,bytes32,bytes32)\":{\"notice\":\"External function for depositing ERC20 tokens and simultaneously registering a compact. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token.\"},\"depositAndRegister(address,bytes32,bytes32)\":{\"notice\":\"External payable function for depositing native tokens into a resource lock and simultaneously registering a compact. The allocator, the claim hash, and the typehash used for the claim hash are provided as additional arguments, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction.\"},\"depositAndRegister(uint256[2][],bytes32[2][],uint256)\":{\"notice\":\"External payable function for depositing multiple tokens in a single transaction and registering a set of claim hashes. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens. Note that resource lock ids must be supplied in alphanumeric order.\"},\"disableForcedWithdrawal(uint256)\":{\"notice\":\"External function to disable a previously enabled forced withdrawal for a resource lock.\"},\"enableForcedWithdrawal(uint256)\":{\"notice\":\"External function to initiate a forced withdrawal for a resource lock. Once enabled, forced withdrawals can be executed after the reset period has elapsed. The withdrawableAt timestamp returned will be the current timestamp plus the reset period associated with the resource lock.\"},\"forcedWithdrawal(uint256,address,uint256)\":{\"notice\":\"External function to execute a forced withdrawal from a resource lock after the reset period has elapsed. The tokens will be withdrawn to the specified recipient in the amount requested. The ERC6909 token balance of the caller will be reduced by the difference in the balance held by the resource lock before and after the withdrawal, which may differ from the provided amount depending on the underlying token in question.\"},\"getForcedWithdrawalStatus(address,uint256)\":{\"notice\":\"External view function for checking the forced withdrawal status of a resource lock for a given account. Returns both the current status (disabled, pending, or enabled) and the timestamp at which forced withdrawals will be enabled (if status is pending) or became enabled (if status is enabled).\"},\"getLockDetails(uint256)\":{\"notice\":\"External view function for retrieving the details of a resource lock. Returns the underlying token, the mediating allocator, the reset period, and the scope.\"},\"getRegistrationStatus(address,bytes32,bytes32)\":{\"notice\":\"External view function for checking the registration status of a compact. Returns both whether the claim hash is currently active and when it expires (if it is active).\"},\"hasConsumedAllocatorNonce(uint256,address)\":{\"notice\":\"External view function for checking whether a specific nonce has been consumed by an allocator. Once consumed, a nonce cannot be reused for claims mediated by that allocator.\"},\"register(bytes32,bytes32,uint256)\":{\"notice\":\"External function to register a claim hash and its associated EIP-712 typehash. The registered claim hash will remain valid for the specified duration. Once expired, the claim hash can no longer be used to initiate claims.\"},\"register(bytes32[2][],uint256)\":{\"notice\":\"External function to register multiple claim hashes and their associated EIP-712 typehashes in a single call. All registered claim hashes will remain valid for the specified duration. Once expired, the claim hashes can no longer be used to initiate claims.\"}},\"notice\":\"The Compact is an ownerless ERC6909 contract that facilitates the voluntary formation and mediation of reusable \\\"resource locks.\\\" This contract has not yet been properly tested, audited, or reviewed.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/TheCompact.sol\":\"TheCompact\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/permit2/lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solady/=lib/solady/src/\",\":soledge/=lib/soledge/src/\",\":solmate/=lib/permit2/lib/solmate/\",\":tstorish/=lib/tstorish/src/\"],\"viaIR\":true},\"sources\":{\"lib/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"lib/permit2/src/interfaces/ISignatureTransfer.sol\":{\"keccak256\":\"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317\",\"dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d\"]},\"lib/solady/src/tokens/ERC6909.sol\":{\"keccak256\":\"0x03975a3d9680a1bfe53a678685c81ed4d70b6e0f046ccf1905539caa5376eea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827a2f6b69fcb700909635203a9453310ea89c0bb904943cf3cc732e35d81398\",\"dweb:/ipfs/QmZha3DSrunz1NR3jXHRXrLT6uvAKTt3AEV6PcbGWRLu4q\"]},\"lib/solady/src/utils/EfficientHashLib.sol\":{\"keccak256\":\"0x32032578683dc18c5f95c8dd4c1422d212f230d96d5425cc491f3350157e6fe1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82c89ef25e537766bbfc8ebba4138eee4fa1b64527c39add8240bce2ea99c661\",\"dweb:/ipfs/QmZVciQDtnXs3nDVUaH7mMLC6vFKe8zeKLK969bqJetKCj\"]},\"lib/solady/src/utils/LibString.sol\":{\"keccak256\":\"0xa0b70980612eeedd30cc65c44c37a286c8527cb41c7454db55b1a435beb2276f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93950259301ac435f1d8756cb80f99eafe9da4dc68b05e148a4b16042a69cc9b\",\"dweb:/ipfs/QmUpyP9AD7AqmRNEmrjLSQivXXdbZmFZKaLJwW9UP2wWCN\"]},\"lib/solady/src/utils/MetadataReaderLib.sol\":{\"keccak256\":\"0x671f4b38462335f3500b91eeff2fd25fc447cc201901524959c05b934ad0b100\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa64b44dc13b25c1aa713cb5724fade1dc093c95581efc5ccb85cbcc616c02c5\",\"dweb:/ipfs/QmRvXqBw8GqpShA8cXAwA6ha14Q2bfajNmYq1mYNYAaMiv\"]},\"lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"lib/solady/src/utils/SignatureCheckerLib.sol\":{\"keccak256\":\"0x472ad43dd67dcc0d548efbbc8779f34e56a7eb99d7a8b1c29af33fb03bbe9ffc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://733da5015058b9540927c63c316665e9ac8d9676d23f722bddf9376c2a03d4cb\",\"dweb:/ipfs/QmPhXj1qpjnwVjrZUgFdkinMK9XSuoLN3cxbSmqADYSZry\"]},\"lib/tstorish/src/Tstorish.sol\":{\"keccak256\":\"0xad3697d9fd6e7c1fb6faa8d474af00bb2a7afd51e8818165fd30bcc7ead53973\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8b62000145be27440c913238fbe9b97ecfc709eacac14b498f18980418d6ab6\",\"dweb:/ipfs/QmRMXHdYUDmajWzwUjs7CQZ5i1T739MhiMmimd3do8qJNk\"]},\"src/TheCompact.sol\":{\"keccak256\":\"0x2949a8d172180ba623c85dfc22eda0ba1f59c4d70d8ee8ade62b5876ff6cd935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c6a3fdaa5319cc8a272422e8af551bee8e1467f78aa8b65a1290fddf0453a90\",\"dweb:/ipfs/QmafPX5TCncQbuhFtztQVL81hmU9wmdxfNZCYj9t5X6QqM\"]},\"src/interfaces/ITheCompact.sol\":{\"keccak256\":\"0xe75d130ab9ead7ef7866f4ce8fcbe5e8de49450abf5f8c6b5878c4e54e480103\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b7694d1b97b350c41e668e72d25d3df10c230b9dd21219827d7d2cc0dc39b6\",\"dweb:/ipfs/QmTDJAFcTYfU7DyfuYMJHK3YMYRkXQvm9MoUhywaqeUsZ6\"]},\"src/interfaces/ITheCompactClaims.sol\":{\"keccak256\":\"0x5691d5127ccff51eea74ce4f6dd01a5f121fd2a1b7bdad41aca39c4d236e27bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca686c6911319d151dc1f658767545823d750c3fb54cb8f75e46b544df3a217a\",\"dweb:/ipfs/QmT2a1twcvzHxjWwcLqMebo9rat5x5CVy2KJfawj9qXS5a\"]},\"src/lib/AllocatorLogic.sol\":{\"keccak256\":\"0xadfa16ae7d02777e129d31639f110be46093ef109c1287896598ee792de34d5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11a258ef5e43b6d85c99b330beaf4c3750f0d41c3b862b677551eca3626a2071\",\"dweb:/ipfs/QmfViBPCWeKqgdVKfA7KQUz2JntZEdGfbpgAwCGWwLGQ9Y\"]},\"src/lib/ClaimHashFunctionCastLib.sol\":{\"keccak256\":\"0xcfa2f7fb4e3df789ae504ebc13e31cadb6c05282e07d46a4b807d5d23a5ef530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51e642f4676ec4e0ecc1fb716cd051bd6d12dac2d39e997e516af5bd141b3178\",\"dweb:/ipfs/QmeQ8vHdg8vsCZ9XPc3af82ktXHHicY3QQbAoghHfvkVK4\"]},\"src/lib/ClaimHashLib.sol\":{\"keccak256\":\"0x2bc3fb604115697562a4770f98020efd578b02d6376b56ca52c64d0df46f6e87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aeddaee5ec0f8512fc13af7b0bfc07e93250a1bc34b6095c6a5bd6624a73990d\",\"dweb:/ipfs/QmVeVSBNoJeMndTQpvB2Kr9BzWWG8crjeBPjZZxciGYXMx\"]},\"src/lib/ClaimProcessor.sol\":{\"keccak256\":\"0x58872af76a73fd131a85635150545978bbe09ae83ec4ed2fae19d75c038a482c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d782488fcbded4ef2781031940611599b6ec41e92d813800912e2c86afd7979\",\"dweb:/ipfs/QmaCuq52gwjc1LfZrURPpyrjmGZZCtzhXRqg4dMhXP1NKa\"]},\"src/lib/ClaimProcessorFunctionCastLib.sol\":{\"keccak256\":\"0xb69ec41dc657f93f6f6a1901d39e48a791907d4debc0eb8104f9fe016b6a59ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6a54cebc498c4181ddc25fd4c6162449ae12d407fc1b45c0e6c4b365da1543e\",\"dweb:/ipfs/QmRdZp5fraYJRB7QXwDqE5jbpmerWaCV3DqMPxi9aCk4ZQ\"]},\"src/lib/ClaimProcessorLib.sol\":{\"keccak256\":\"0xf150692ad2915d0c4df63ea44e62f6e3d5736f2c91de7cea48a1301cf4034e51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c2f21638d2a613e912cf73dd049b0bb2e4abbea54a3f58a5439f6396c59d9ee\",\"dweb:/ipfs/QmRQpwnhhNfvWyTXHRy982awBnHA4fjK7GpHzSgqC3pPT6\"]},\"src/lib/ClaimProcessorLogic.sol\":{\"keccak256\":\"0x737780590a48e67dc0f64bd3bb7248eafb7630f579d8aa44befb197d9ac66ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea7c69e2cbf316fe182fad296b8d65a76ade84923edb0572c339f880e21fc7bc\",\"dweb:/ipfs/QmWuZ9UJA4nsdPjgCa6rsCBvoWBjcUhWRuCnLqPNbM8687\"]},\"src/lib/ComponentLib.sol\":{\"keccak256\":\"0x3e1ad4bff9cd12162f9b849078839b802f4783b474588fa93be8ba1e61263dd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faa70f41d0679e1fa2aa827f863c03bf8a3962703a26ae724b7ca2a8d5f9f96b\",\"dweb:/ipfs/QmXWyv8ATKeSKwiXCPFZBLkrRuV1NhNDS5yH5rDyrm6GLs\"]},\"src/lib/ConstructorLogic.sol\":{\"keccak256\":\"0xca9b0d52a562351978aafcc06f79f5c555ea948eaad28983812a7892f02b1245\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f2e41013c0ef8ef9bee844494185b7a09c8680ea3d931a2683f968cdaa154a9\",\"dweb:/ipfs/QmX8CoLP6VGRkxhx6VonrRf2YqPZ1hg1LagKvkNBaQtNaR\"]},\"src/lib/ConsumerLib.sol\":{\"keccak256\":\"0x582badfccdb57ee9518e39676fab7ba2abc6b527c854d524b8f417126fa6d192\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96d6dde54bdad2fc2203620d5f75e96cc9267cb340e1284d311bf6f8c77d16d2\",\"dweb:/ipfs/Qmbq8XuUiAoEsmYVa2NCHSdi6gu4ZYzeyr1iPNGaFwwhxu\"]},\"src/lib/DepositLogic.sol\":{\"keccak256\":\"0xb2a199980ca4025c1784ebc79ec5d73cbe849ff26d446b2ca58bdb7066475fcf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73e9defc19c10bb6b63d7571a1e097ed09accdf7cf123b91c8a9bea02c9ca87f\",\"dweb:/ipfs/QmVWt9Ssb6CuFpYKTDYc31FH9TFZfYqs4WGsqf2ksiPtpx\"]},\"src/lib/DepositViaPermit2Lib.sol\":{\"keccak256\":\"0x3d45834b9be7e0af8aadd4c3afb2b5d7a9c1a47156e30780499852b1e503b1c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e16d1aa8eb93fefd956455fbb157a58cb9fb3824a276f54a33a52c17924c30b\",\"dweb:/ipfs/QmUmsqU9p8J7r7hk5jxNYXUnaPoCaMruFKtxFo12zV7XJQ\"]},\"src/lib/DepositViaPermit2Logic.sol\":{\"keccak256\":\"0xb8813f63d4a3c05dc99e36b6a900cbd7c6c6bfc8cccdb5b9052894400b4925a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://463fa79ef23b7f6d56a9bc8f6139917374a06f860c12fbfe6e76d794e690b9e0\",\"dweb:/ipfs/QmXGqm3wZqRSDAvy7mykMvezMBVPPT79pJYsASwkxXFitq\"]},\"src/lib/DirectDepositLogic.sol\":{\"keccak256\":\"0xa1b9f042c5ecf3edcde3733bd12cde49633dcce9336622ea7c5eabd0ce2bafa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0eeaa505727c2b42780bd4e3e3dbede2ce51480c46ff90ad401d7328fc5e42d8\",\"dweb:/ipfs/QmZ8MDQjSi2yczScSgKyd6Ge3ir4xJA2o8pX1j15ryyzVp\"]},\"src/lib/DomainLib.sol\":{\"keccak256\":\"0x0a69b112fabd7d4e13fbf4c796a4a163f522c84b4b6a981c913a6c7342f5cc6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a3d3fd2d8ab66c6dd0f2674efcf2bca87899decd42e949631be80a60f74d6a2\",\"dweb:/ipfs/QmP38CpNz5GjycQZwpe7CxXrRsugraQDtr6rsiA5ue2iK6\"]},\"src/lib/EfficiencyLib.sol\":{\"keccak256\":\"0xd8fd182c728a98a3ac5c64cbc7011bc34dc1ee06e377a1a5e670c3cd8375eff9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f565cad687dc0bd3438a8b8b08ecc973f5ad5a1aebd332baa402e45cd56ae83\",\"dweb:/ipfs/QmayoEFEv6zMhRw6kqqoqdmNE1jGbwgRQ6VA5wj2XAb7Du\"]},\"src/lib/EventLib.sol\":{\"keccak256\":\"0x0d9bc84e78628d9ff42689b8cd33353c86f9de7220002d74c5d485275f328946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb8bf826a89bb1cc62e8af269f34453c13df6ffe473e0dff8aeddaf1797afa0f\",\"dweb:/ipfs/QmX7TFZACuGBhCVMjAPve7JKz6PWZjYTMr7JQ9WbFatKcu\"]},\"src/lib/Extsload.sol\":{\"keccak256\":\"0x72075add7c7d734c46922f2f56cb490d48711a0cc6af439619ff39e60df75924\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://283cc72cb88802327c60fc9bc75f840ff639d791c1d19056bbadf7e7e5f3c99f\",\"dweb:/ipfs/QmWoCebx1axDW8uuUEPv6QRzGWFD5bRGnvw2VD7KJufokB\"]},\"src/lib/HashLib.sol\":{\"keccak256\":\"0x50bc064b796b92d6199cf09cf8ea34a808653a8c668f695ce89cd3614956cb4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6bd96eb47fd50bb4f15540e3f8c903d5cf83d8e0e975d615abb9e2dfe7329af0\",\"dweb:/ipfs/QmVPs5HWJEbUtKQn69jSYdA7U92jU7nkWwGfsmD6sUCWsR\"]},\"src/lib/IdLib.sol\":{\"keccak256\":\"0x14a04b7bdfcd5e7cc783a7202cb0429fb225f0a960908f06028f39f78b01373b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c465efd13c8fd3ddfd701357f8f6e64443d69c5ab835c7bb35b8934261c2313e\",\"dweb:/ipfs/QmP15v2Qrp1hg7BvkfzE4zqcjwhDH2NBHkzJ8rRShCwU8S\"]},\"src/lib/MetadataLib.sol\":{\"keccak256\":\"0x1d7f67de567fccba29393048a15373c9ad6cc903409b52b94a8baf1747204340\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f15f66c2420d6f5a527ee12945bc000e7687586727845015d60e229ca5009d4\",\"dweb:/ipfs/QmY27xFEKUBW3U7K18gQNNbmR3pZbp1Gz3ecQVkZQUBzek\"]},\"src/lib/MetadataRenderer.sol\":{\"keccak256\":\"0xdef8b8a92120470f9d290b5d6ab3fc69145300741ca066b152ddc71cd719982e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6946d4d9d525fd21e3b4d310aaa5160de531bda7574bb5ad8c6a10616c340fe8\",\"dweb:/ipfs/QmdB6Kwipo2MXCLPexXqjNP2xQhkG8BRx7KBWKMyqCRNHk\"]},\"src/lib/RegistrationLib.sol\":{\"keccak256\":\"0xa6be3d3f74e30fa04157f369964afe818f562c82369bb0823ffc4a06297364a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f73aa296543d4c3757a9b104278cfa9c07838ae9a9b82a3e77ed6df7bbe8ef20\",\"dweb:/ipfs/QmWDCBxnz3quqhDtAN7zqetaQmCE8ULM1dAYEBrguHP5DQ\"]},\"src/lib/RegistrationLogic.sol\":{\"keccak256\":\"0x40850751ea4a77f6bd9df09a3a9f565994dfd03b29a15dcc31e03da3be317b7f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16f07cb5ab8e5adfe74cdd700f5c9e448b28fab0b120058b25d4d1bcf2338a9a\",\"dweb:/ipfs/QmULZACcDPswptXRxKnA8dBChU63k8CkvY5Q7YG7SJoSs6\"]},\"src/lib/SharedLogic.sol\":{\"keccak256\":\"0xcc76a01f9dc24f1afc4fd21dbdb423ec7a6cccb454c9b725fa3b135d4d851365\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f9fe59a2d0c467832d42c60acabd4c599868024c09b5aa89e9e91b38e9f8eba\",\"dweb:/ipfs/Qmbsu2BLJT32Qc77RR3ZHhVTMkyh1sLJueLiTuYHCQwxVf\"]},\"src/lib/TheCompactLogic.sol\":{\"keccak256\":\"0xc6106d8b4a9f2bf6c9006181a3e6acc95c8524628b5096478c76716a7e2cc5c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18056a737da3fddaac4cb50dd598b57e0bcc5d1889669831bbb4d09bc48c5cf6\",\"dweb:/ipfs/QmPvQs8THzQPfpxuB5MKNKsFGiPjbR9B5QVAKa4NTkpSbd\"]},\"src/lib/TransferFunctionCastLib.sol\":{\"keccak256\":\"0x1b2b8d48503f85dee96cb0d915d1f506ab872aac6fb29a1adbb894de93a534e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a2eb941a4a3e4633c88420ae3eab750ffdb32e431c71927a10feb6562b6e9a9\",\"dweb:/ipfs/QmeYJbeupvqjyrMV43Z41mz52E9Bwqhmm4mSx7K8F26Vmb\"]},\"src/lib/TransferLogic.sol\":{\"keccak256\":\"0x08ae66f9d642e8caabcd200d8574e5487cc11181c23acc18f2076e4f5e9ca086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f4ec47106727e1fd5197f9fa7e86552469a198dd62dd24ad3dc1db9fb6d4327\",\"dweb:/ipfs/QmR3bC1fmUVYTarsZMRU3u3RV1GcbNsF3NghvxND4B7J46\"]},\"src/lib/ValidityLib.sol\":{\"keccak256\":\"0xfdecefc1bd9b9ba92fb471af7d09dc30255cb16154cec436b27fc06630fc7106\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b36c79e57192514bcf3aace66e38568708e066f24db93832f0a7f530754c5a7\",\"dweb:/ipfs/QmUSRsBpZz7VEPN1ubX5mB71uKRdQ17Tf5jbkUNkyiMGhu\"]},\"src/lib/WithdrawalLogic.sol\":{\"keccak256\":\"0x438c41cb28048ee067e8f64e2faaf7339a3324f0ce81ec96c94e5692074ee650\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f811218032733e0fd0eb937a036b04e37dfcd46ed64bcbac22ecbb5d2a5993b4\",\"dweb:/ipfs/QmdD2bN9Be2dDBEmuYBKGJKgW5FsayuojBqjYuz2ZvWcEb\"]},\"src/types/BatchClaims.sol\":{\"keccak256\":\"0x368860cb48d9cf8b7ee86e226fc203307c8559ee5bbd987299c14580c61039b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edd6eccb18ee3f7dc1e4fdeaa00d007b8cd6f506ab76366f74e530a66211ba8d\",\"dweb:/ipfs/Qmf68iLL8CVZEvkjnQb6GdPumsP5V8dFfSubXCSx1Vgu4Z\"]},\"src/types/BatchMultichainClaims.sol\":{\"keccak256\":\"0xe493995e946bf63d2970e5668e426f6c3d84f9ae5b03f86f7c493ae02ca8b96c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91370d328607589fa1ff37f3c0ef66a5b90ff63de20c8ccee3b009a6aedb2620\",\"dweb:/ipfs/QmY5Ja2XfxRFbh4dtViqiepaSfNr1rWrMYSnSGjeMPxxNw\"]},\"src/types/Claims.sol\":{\"keccak256\":\"0x6ae4ad79a64e0edd6169e87f8c3e35abd5f592ac23dc8eae7b92dfc190fa3ae2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4434f16be0877209b2aaa51c9f27b9374fab6acbfc3b6241ba00907d6de7a96\",\"dweb:/ipfs/QmTTcNwtekjwMZkrNKAcKAprWG47pSVEn2GETX6tZu746C\"]},\"src/types/CompactCategory.sol\":{\"keccak256\":\"0xc3ab3758e88fc8591d79352d3d49140433bbf4176c3caa1bfce1903e2bfadf06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16960ee62b98c5cbbedcfe22ce4b521205d2bcc4fe9dfa57a9d68ec90efeb5a1\",\"dweb:/ipfs/Qmc3FciGTRrDZjRSb9waUYkZsELRvVWkJKNVqS1u8vEDNG\"]},\"src/types/Components.sol\":{\"keccak256\":\"0xd5027c0eb603a4604e050e97930fa436db33755b3e8097894320916cd7163ff0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b414c4a0e0d543f8de309bbb005f62d63a5c67ae6cf78d5d5b5fd076dd7b0a51\",\"dweb:/ipfs/QmX8Z9Fp2QJVgE9hwbPjrXUYc4RVAE8qTyfN8DKBpV5iPB\"]},\"src/types/EIP712Types.sol\":{\"keccak256\":\"0x386ff8e0aff7d437b8b49117ed158554e608d0cc18a0b4f561510e9584cafb91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e49d199dd3caab0210a2648a1b9d2a8965b5706f602fffee8e1815bbacddbe5e\",\"dweb:/ipfs/QmYUzWFC4GK1rjoqnZEt2ghL5GMPCiaF5xaPzSr4Rm99PK\"]},\"src/types/ForcedWithdrawalStatus.sol\":{\"keccak256\":\"0xdf352a2439e57ea9e1b7d54997fe904e4ea41ab9d2d8221d7d753dce94e76dc7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6faadb6857eda66cbef8fe1bf36d85d16f534b899a737a9464e69dc505eb9e89\",\"dweb:/ipfs/QmdC9beQhPRYv5sAFx7TyWvzGPjm6XY3bCYNKzuZH1Pesd\"]},\"src/types/Lock.sol\":{\"keccak256\":\"0x21a490258b933f8d5db759a91d07f7d9d2b2435d366334a8bcfbce4379a85011\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d1cfcb02c3b0a70d82b2d9bd9c55ffcf654a226774711ca727eab8b0cdf456ea\",\"dweb:/ipfs/QmRFN3dvespK1mUcUuXm4rnPd3ZGNRdba8MZgub1zu24Qw\"]},\"src/types/MultichainClaims.sol\":{\"keccak256\":\"0x596b71d675b7b5e13b29f6b7fb92d23722d2792fadc82ad764467fdf9c693cb9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://974d9d906e06ad29e875c2556d32c1f631a70539e43b018815e3fc68ede01e53\",\"dweb:/ipfs/QmPbqsU21jDGhLQ9x9No2xDUimaLueGGF7eAkNxJfhc3fx\"]},\"src/types/ResetPeriod.sol\":{\"keccak256\":\"0xfd32523d563b926c72fdc693aa8b7f6db24f4720decee16710cdfc662a8d8f16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c510cde0fc28cde51aad2df6bac8eeef5e0fb67be754a3d8c655a8556db32c6\",\"dweb:/ipfs/QmWjVZJdfxVK5EiprmWi9iGNMqXAkVZjECnzeXvjfTsDZX\"]},\"src/types/Scope.sol\":{\"keccak256\":\"0x3e63be015c24bde88698efc20b00690d1e683a5cabf2122dc91ab0ecad4ae8ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5160d46460204dc6268a963e9d0c117fab903318f74d3b5903693fe2dfcc2462\",\"dweb:/ipfs/QmRsc4VSWvvSxi3VfyFgjTELj5DB5MpZ7UPJ3mzgPMyD9v\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"providedAmount","type":"uint256"}],"type":"error","name":"AllocatedAmountExceeded"},{"inputs":[],"type":"error","name":"BalanceOverflow"},{"inputs":[{"internalType":"uint256","name":"expiration","type":"uint256"}],"type":"error","name":"Expired"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"type":"error","name":"ForcedWithdrawalAlreadyDisabled"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InsufficientPermission"},{"inputs":[],"type":"error","name":"InvalidBatchAllocation"},{"inputs":[],"type":"error","name":"InvalidBatchDepositStructure"},{"inputs":[],"type":"error","name":"InvalidDepositBalanceChange"},{"inputs":[],"type":"error","name":"InvalidDepositTokenOrdering"},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"type":"error","name":"InvalidRegistrationDuration"},{"inputs":[{"internalType":"address","name":"allocator","type":"address"}],"type":"error","name":"InvalidRegistrationProof"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"type":"error","name":"InvalidScope"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"InvalidToken"},{"inputs":[],"type":"error","name":"OnlyDirectCalls"},{"inputs":[],"type":"error","name":"Permit2CallFailed"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"type":"error","name":"PrematureWithdrawal"},{"inputs":[{"internalType":"address","name":"existingCaller","type":"address"}],"type":"error","name":"ReentrantCall"},{"inputs":[],"type":"error","name":"TStoreAlreadyActivated"},{"inputs":[],"type":"error","name":"TStoreNotSupported"},{"inputs":[],"type":"error","name":"TloadTestContractDeploymentFailed"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"UnallocatedTransfer"},{"inputs":[{"internalType":"uint96","name":"allocatorId","type":"uint96","indexed":false},{"internalType":"address","name":"allocator","type":"address","indexed":false}],"type":"event","name":"AllocatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"sponsor","type":"address","indexed":true},{"internalType":"address","name":"allocator","type":"address","indexed":true},{"internalType":"address","name":"arbiter","type":"address","indexed":true},{"internalType":"bytes32","name":"claimHash","type":"bytes32","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"sponsor","type":"address","indexed":true},{"internalType":"bytes32","name":"claimHash","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"typehash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"expires","type":"uint256","indexed":false}],"type":"event","name":"CompactRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":true},{"internalType":"bool","name":"activating","type":"bool","indexed":false},{"internalType":"uint256","name":"withdrawableAt","type":"uint256","indexed":false}],"type":"event","name":"ForcedWithdrawalStatusUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"OperatorSet","anonymous":false},{"inputs":[{"internalType":"address","name":"by","type":"address","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"__activateTstore"},{"inputs":[{"internalType":"address","name":"allocator","type":"address"},{"internalType":"bytes","name":"proof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"__registerAllocator","outputs":[{"internalType":"uint96","name":"","type":"uint96"}]},{"inputs":[{"internalType":"struct BatchTransfer","name":"transfer","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct TransferComponent[]","name":"transfers","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"recipient","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchTransfer","name":"transfer","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct SplitByIdComponent[]","name":"transfers","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitTransfer","name":"transfer","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"recipients","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BasicTransfer","name":"transfer","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BasicTransfer","name":"withdrawal","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchTransfer","name":"withdrawal","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct SplitByIdComponent[]","name":"transfers","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchTransfer","name":"withdrawal","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct TransferComponent[]","name":"transfers","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"recipient","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitTransfer","name":"withdrawal","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"recipients","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"allocatedWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"struct ExogenousSplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousSplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BasicClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousSplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousSplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousSplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousSplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousSplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitBatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BasicClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct BatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousSplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedMultichainClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SplitBatchClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"struct SplitBatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"portions","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedBatchClaim","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct QualifiedSplitClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"struct SplitComponent[]","name":"claimants","type":"tuple[]","components":[{"internalType":"address","name":"claimant","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct ExogenousQualifiedBatchMultichainClaimWithWitness","name":"claimPayload","type":"tuple","components":[{"internalType":"bytes","name":"allocatorSignature","type":"bytes"},{"internalType":"bytes","name":"sponsorSignature","type":"bytes"},{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypestring","type":"string"},{"internalType":"bytes32","name":"qualificationTypehash","type":"bytes32"},{"internalType":"bytes","name":"qualificationPayload","type":"bytes"},{"internalType":"bytes32[]","name":"additionalChains","type":"bytes32[]"},{"internalType":"uint256","name":"chainIndex","type":"uint256"},{"internalType":"uint256","name":"notarizedChainId","type":"uint256"},{"internalType":"struct BatchClaimComponent[]","name":"claims","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"allocatedAmount","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"address","name":"claimant","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"claimAndWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256[]","name":"nonces","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"consume","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum ResetPeriod","name":"","type":"uint8"},{"internalType":"enum Scope","name":"","type":"uint8"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"allocator","type":"address"},{"internalType":"enum ResetPeriod","name":"resetPeriod","type":"uint8"},{"internalType":"enum Scope","name":"scope","type":"uint8"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"payable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"allocator","type":"address"},{"internalType":"enum ResetPeriod","name":"resetPeriod","type":"uint8"},{"internalType":"enum Scope","name":"scope","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"allocator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct ISignatureTransfer.TokenPermissions[]","name":"permitted","type":"tuple[]","components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum ResetPeriod","name":"","type":"uint8"},{"internalType":"enum Scope","name":"","type":"uint8"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"payable","type":"function","name":"deposit","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256[2][]","name":"idsAndAmounts","type":"uint256[2][]"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"payable","type":"function","name":"deposit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"allocator","type":"address"}],"stateMutability":"payable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"depositor","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum ResetPeriod","name":"resetPeriod","type":"uint8"},{"internalType":"enum Scope","name":"","type":"uint8"},{"internalType":"bytes32","name":"claimHash","type":"bytes32"},{"internalType":"enum CompactCategory","name":"compactCategory","type":"uint8"},{"internalType":"string","name":"witness","type":"string"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"depositAndRegister","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256[2][]","name":"idsAndAmounts","type":"uint256[2][]"},{"internalType":"bytes32[2][]","name":"claimHashesAndTypehashes","type":"bytes32[2][]"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"payable","type":"function","name":"depositAndRegister","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"allocator","type":"address"},{"internalType":"bytes32","name":"claimHash","type":"bytes32"},{"internalType":"bytes32","name":"typehash","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"depositAndRegister","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"depositor","type":"address"},{"internalType":"struct ISignatureTransfer.TokenPermissions[]","name":"permitted","type":"tuple[]","components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum ResetPeriod","name":"resetPeriod","type":"uint8"},{"internalType":"enum Scope","name":"","type":"uint8"},{"internalType":"bytes32","name":"claimHash","type":"bytes32"},{"internalType":"enum CompactCategory","name":"compactCategory","type":"uint8"},{"internalType":"string","name":"witness","type":"string"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"payable","type":"function","name":"depositAndRegister","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"allocator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"claimHash","type":"bytes32"},{"internalType":"bytes32","name":"typehash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"depositAndRegister","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"disableForcedWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"enableForcedWithdrawal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"extsload","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32[]","name":"slots","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"extsload","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"exttload","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"forcedWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"getForcedWithdrawalStatus","outputs":[{"internalType":"enum ForcedWithdrawalStatus","name":"","type":"uint8"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"getLockDetails","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum ResetPeriod","name":"","type":"uint8"},{"internalType":"enum Scope","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"sponsor","type":"address"},{"internalType":"bytes32","name":"claimHash","type":"bytes32"},{"internalType":"bytes32","name":"typehash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRegistrationStatus","outputs":[{"internalType":"bool","name":"isActive","type":"bool"},{"internalType":"uint256","name":"expires","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"allocator","type":"address"}],"stateMutability":"view","type":"function","name":"hasConsumedAllocatorNonce","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"isOperator","outputs":[{"internalType":"bool","name":"status","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes32[2][]","name":"claimHashesAndTypehashes","type":"bytes32[2][]"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"claimHash","type":"bytes32"},{"internalType":"bytes32","name":"typehash","type":"bytes32"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"payable","type":"function","name":"setOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"returns":{"_0":"A bytes32 representing the domain separator for the contract."}},"__activateTstore()":{"details":"External function to activate TSTORE usage. Does not need to be called if TSTORE is supported from deployment, and only needs to be called once. Reverts if TSTORE has already been activated or if the opcode is not available. Note that this must be called directly from an externally-owned account to avoid potential reentrancy issues."},"__registerAllocator(address,bytes)":{"params":{"allocator":"The address to register as an allocator.","proof":"An 85-byte value containing create2 address derivation parameters (0xff ++ factory ++ salt ++ initcode hash)."},"returns":{"_0":"A unique identifier assigned to the registered allocator."}},"allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))":{"params":{"transfer":"A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive."},"returns":{"_0":"Whether the transfer was successful."}},"allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))":{"params":{"transfer":"A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive all tokens."},"returns":{"_0":"Whether the transfer was successful."}},"allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))":{"params":{"transfer":"A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive."},"returns":{"_0":"Whether the transfer was successful."}},"allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))":{"params":{"transfer":"A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive the tokens."},"returns":{"_0":"Whether the transfer was successful."}},"allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))":{"params":{"withdrawal":"A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive."},"returns":{"_0":"Whether the withdrawal was successful."}},"allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))":{"params":{"withdrawal":"A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive all tokens."},"returns":{"_0":"Whether the withdrawal was successful."}},"allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))":{"params":{"withdrawal":"A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive."},"returns":{"_0":"Whether the withdrawal was successful."}},"allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))":{"params":{"withdrawal":"A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive the tokens."},"returns":{"_0":"Whether the withdrawal was successful."}},"allowance(address,address,uint256)":{"details":"Returns the amount of token `id` that `spender` can spend on behalf of `owner`."},"approve(address,uint256,uint256)":{"details":"Sets `amount` as the allowance of `spender` for the caller for token `id`. Emits a {Approval} event."},"balanceOf(address,uint256)":{"details":"Returns the amount of token `id` owned by `owner`."},"consume(uint256[])":{"params":{"nonces":"Array of nonces to be consumed."},"returns":{"_0":"Whether all nonces were successfully consumed."}},"decimals(uint256)":{"details":"Returns the number of decimals for token `id`. Returns 18 by default. Please override this function if you need to return a custom value."},"deposit(address)":{"params":{"allocator":"The address of the allocator."},"returns":{"_0":"The ERC6909 token identifier of the associated resource lock."}},"deposit(address,address,uint256)":{"params":{"allocator":"The address of the allocator mediating the resource lock.","amount":"The amount of tokens to deposit.","token":"The address of the ERC20 token to deposit."},"returns":{"_0":" The ERC6909 token identifier of the associated resource lock."}},"deposit(address,address,uint8,uint8,uint256,address)":{"params":{"allocator":"The address of the allocator mediating the resource lock.","amount":"The amount of tokens to deposit.","recipient":"The address that will receive the corresponding ERC6909 tokens.","resetPeriod":"The duration after which the resource lock can be reset once a forced withdrawal is initiated.","scope":"The scope of the resource lock (multichain or single chain).","token":"The address of the ERC20 token to deposit."},"returns":{"_0":" The ERC6909 token identifier of the associated resource lock."}},"deposit(address,uint8,uint8,address)":{"params":{"allocator":"The address of the allocator mediating the resource lock.","recipient":"The address that will receive the corresponding ERC6909 tokens.","resetPeriod":"The duration after which the resource lock can be reset once a forced withdrawal is initiated.","scope":"The scope of the resource lock (multichain or single chain)."},"returns":{"_0":" The ERC6909 token identifier of the associated resource lock."}},"deposit(uint256[2][],address)":{"params":{"idsAndAmounts":"Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit.","recipient":"The address that will receive the corresponding ERC6909 tokens."},"returns":{"_0":"Whether the batch deposit was successfully completed."}},"depositAndRegister(address,address,uint256,bytes32,bytes32)":{"params":{"allocator":"The address of the allocator mediating the resource lock.","amount":"The amount of tokens to deposit.","claimHash":"A bytes32 hash derived from the details of the compact.","token":"The address of the ERC20 token to deposit.","typehash":"The EIP-712 typehash associated with the registered compact."},"returns":{"id":" The ERC6909 token identifier of the associated resource lock."}},"depositAndRegister(address,bytes32,bytes32)":{"params":{"allocator":"The address of the allocator.","claimHash":"A bytes32 hash derived from the details of the compact.","typehash":"The EIP-712 typehash associated with the registered compact."},"returns":{"id":" The ERC6909 token identifier of the associated resource lock."}},"depositAndRegister(uint256[2][],bytes32[2][],uint256)":{"params":{"claimHashesAndTypehashes":"Array of [claimHash, typehash] pairs for registration.","duration":"The duration for which the claim hashes remain valid.","idsAndAmounts":"Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit."},"returns":{"_0":"Whether the batch deposit and claim hash registration was successfully completed."}},"disableForcedWithdrawal(uint256)":{"params":{"id":"The ERC6909 token identifier for the resource lock."},"returns":{"_0":"Whether the forced withdrawal was successfully disabled."}},"enableForcedWithdrawal(uint256)":{"params":{"id":"The ERC6909 token identifier for the resource lock."},"returns":{"_0":"The timestamp at which tokens become withdrawable."}},"forcedWithdrawal(uint256,address,uint256)":{"params":{"amount":"The amount of tokens to withdraw.","id":"The ERC6909 token identifier for the resource lock.","recipient":"The account that will receive the withdrawn tokens."},"returns":{"_0":"Whether the forced withdrawal was successfully executed."}},"getForcedWithdrawalStatus(address,uint256)":{"params":{"account":"The account to get the forced withdrawal status for.","id":"The ERC6909 token identifier of the resource lock."},"returns":{"_0":" The current ForcedWithdrawalStatus (disabled, pending, or enabled).","_1":"The timestamp at which tokens become withdrawable if status is pending."}},"getLockDetails(uint256)":{"params":{"id":"The ERC6909 token identifier of the resource lock."},"returns":{"_0":" The address of the underlying token (or address(0) for native tokens).","_1":" The account of the allocator mediating the resource lock.","_2":"The duration after which the resource lock can be reset once a forced withdrawal is initiated.","_3":" The scope of the resource lock (multichain or single chain)."}},"getRegistrationStatus(address,bytes32,bytes32)":{"params":{"claimHash":"A bytes32 hash derived from the details of the compact.","sponsor":"The account that registered the compact.","typehash":"The EIP-712 typehash associated with the registered claim hash."},"returns":{"expires":" The timestamp at which the compact registration expires.","isActive":"Whether the compact registration is currently active."}},"hasConsumedAllocatorNonce(uint256,address)":{"params":{"allocator":"The account of the allocator.","nonce":"The nonce to check."},"returns":{"_0":"Whether the nonce has been consumed."}},"isOperator(address,address)":{"details":"Checks if a `spender` is approved by `owner` to manage all of their tokens."},"name()":{"details":"Returns the name for the contract."},"name(uint256)":{"details":"Returns the symbol for token `id`."},"register(bytes32,bytes32,uint256)":{"params":{"claimHash":"A bytes32 hash derived from the details of the compact.","duration":"The duration for which the claim hash remains valid.","typehash":"The EIP-712 typehash associated with the registered claim hash."},"returns":{"_0":"Whether the claim hash was successfully registered."}},"register(bytes32[2][],uint256)":{"params":{"claimHashesAndTypehashes":"Array of [claimHash, typehash] pairs for registration.","duration":"The duration for which the claim hashes remain valid."},"returns":{"_0":"Whether all claim hashes were successfully registered."}},"setOperator(address,bool)":{"details":"Sets whether `operator` is approved to manage the tokens of the caller. Emits {OperatorSet} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`."},"symbol(uint256)":{"details":"Returns the symbol for token `id`."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for token `id`."},"transfer(address,uint256,uint256)":{"details":"Transfers `amount` of token `id` from the caller to `to`. Requirements: - caller must at least have `amount`. Emits a {Transfer} event."},"transferFrom(address,address,uint256,uint256)":{"details":"Transfers `amount` of token `id` from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount` of token `id`. - The caller must have at least `amount` of allowance to transfer the tokens of `from` or approved as an operator. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{"DOMAIN_SEPARATOR()":{"notice":"External pure function for returning the domain separator of the contract."},"__registerAllocator(address,bytes)":{"notice":"External function for registering an allocator. Can be called by anyone if one of three conditions is met: the caller is the allocator address being registered, the allocator address contains code, or a proof is supplied representing valid create2 deployment parameters that resolve to the supplied allocator address."},"allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))":{"notice":"Transfers ERC6909 tokens from multiple resource locks to multiple recipients with allocator approval."},"allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))":{"notice":"Transfers ERC6909 tokens from multiple resource locks to a single recipient with allocator approval."},"allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))":{"notice":"Transfers ERC6909 tokens to multiple recipients with allocator approval."},"allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))":{"notice":"Transfers ERC6909 tokens to a single recipient with allocator approval."},"allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))":{"notice":"Withdraws underlying tokens from multiple resource locks to multiple recipients with allocator approval."},"allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))":{"notice":"Withdraws underlying tokens from multiple resource locks to a single recipient with allocator approval."},"allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))":{"notice":"Withdraws underlying tokens to multiple recipients with allocator approval."},"allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))":{"notice":"Withdraws underlying tokens to a single recipient with allocator approval."},"consume(uint256[])":{"notice":"External function for consuming allocator nonces. Only callable by a registered allocator. Once consumed, any compact payloads that utilize those nonces cannot be claimed."},"deposit(address)":{"notice":"External payable function for depositing native tokens into a resource lock and receiving back ERC6909 tokens representing the underlying locked balance controlled by the depositor. The allocator mediating the lock is provided as an argument, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction."},"deposit(address,address,uint256)":{"notice":"External function for depositing ERC20 tokens into a resource lock. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token."},"deposit(address,address,uint8,uint8,uint256,address)":{"notice":"External function for depositing ERC20 tokens into a resource lock with custom reset period and scope parameters. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received by the recipient is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token."},"deposit(address,uint8,uint8,address)":{"notice":"External payable function for depositing native tokens into a resource lock with custom reset period and scope parameters. The ERC6909 token amount received by the recipient will match the amount of native tokens sent with the transaction."},"deposit(uint256[2][],address)":{"notice":"External payable function for depositing multiple tokens in a single transaction. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens."},"depositAndRegister(address,address,uint256,bytes32,bytes32)":{"notice":"External function for depositing ERC20 tokens and simultaneously registering a compact. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token."},"depositAndRegister(address,bytes32,bytes32)":{"notice":"External payable function for depositing native tokens into a resource lock and simultaneously registering a compact. The allocator, the claim hash, and the typehash used for the claim hash are provided as additional arguments, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction."},"depositAndRegister(uint256[2][],bytes32[2][],uint256)":{"notice":"External payable function for depositing multiple tokens in a single transaction and registering a set of claim hashes. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens. Note that resource lock ids must be supplied in alphanumeric order."},"disableForcedWithdrawal(uint256)":{"notice":"External function to disable a previously enabled forced withdrawal for a resource lock."},"enableForcedWithdrawal(uint256)":{"notice":"External function to initiate a forced withdrawal for a resource lock. Once enabled, forced withdrawals can be executed after the reset period has elapsed. The withdrawableAt timestamp returned will be the current timestamp plus the reset period associated with the resource lock."},"forcedWithdrawal(uint256,address,uint256)":{"notice":"External function to execute a forced withdrawal from a resource lock after the reset period has elapsed. The tokens will be withdrawn to the specified recipient in the amount requested. The ERC6909 token balance of the caller will be reduced by the difference in the balance held by the resource lock before and after the withdrawal, which may differ from the provided amount depending on the underlying token in question."},"getForcedWithdrawalStatus(address,uint256)":{"notice":"External view function for checking the forced withdrawal status of a resource lock for a given account. Returns both the current status (disabled, pending, or enabled) and the timestamp at which forced withdrawals will be enabled (if status is pending) or became enabled (if status is enabled)."},"getLockDetails(uint256)":{"notice":"External view function for retrieving the details of a resource lock. Returns the underlying token, the mediating allocator, the reset period, and the scope."},"getRegistrationStatus(address,bytes32,bytes32)":{"notice":"External view function for checking the registration status of a compact. Returns both whether the claim hash is currently active and when it expires (if it is active)."},"hasConsumedAllocatorNonce(uint256,address)":{"notice":"External view function for checking whether a specific nonce has been consumed by an allocator. Once consumed, a nonce cannot be reused for claims mediated by that allocator."},"register(bytes32,bytes32,uint256)":{"notice":"External function to register a claim hash and its associated EIP-712 typehash. The registered claim hash will remain valid for the specified duration. Once expired, the claim hash can no longer be used to initiate claims."},"register(bytes32[2][],uint256)":{"notice":"External function to register multiple claim hashes and their associated EIP-712 typehashes in a single call. All registered claim hashes will remain valid for the specified duration. Once expired, the claim hashes can no longer be used to initiate claims."}},"version":1}},"settings":{"remappings":["ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/permit2/lib/openzeppelin-contracts/","permit2/=lib/permit2/","solady/=lib/solady/src/","soledge/=lib/soledge/src/","solmate/=lib/permit2/lib/solmate/","tstorish/=lib/tstorish/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/TheCompact.sol":"TheCompact"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"lib/permit2/src/interfaces/ISignatureTransfer.sol":{"keccak256":"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e","urls":["bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317","dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d"],"license":"MIT"},"lib/solady/src/tokens/ERC6909.sol":{"keccak256":"0x03975a3d9680a1bfe53a678685c81ed4d70b6e0f046ccf1905539caa5376eea2","urls":["bzz-raw://827a2f6b69fcb700909635203a9453310ea89c0bb904943cf3cc732e35d81398","dweb:/ipfs/QmZha3DSrunz1NR3jXHRXrLT6uvAKTt3AEV6PcbGWRLu4q"],"license":"MIT"},"lib/solady/src/utils/EfficientHashLib.sol":{"keccak256":"0x32032578683dc18c5f95c8dd4c1422d212f230d96d5425cc491f3350157e6fe1","urls":["bzz-raw://82c89ef25e537766bbfc8ebba4138eee4fa1b64527c39add8240bce2ea99c661","dweb:/ipfs/QmZVciQDtnXs3nDVUaH7mMLC6vFKe8zeKLK969bqJetKCj"],"license":"MIT"},"lib/solady/src/utils/LibString.sol":{"keccak256":"0xa0b70980612eeedd30cc65c44c37a286c8527cb41c7454db55b1a435beb2276f","urls":["bzz-raw://93950259301ac435f1d8756cb80f99eafe9da4dc68b05e148a4b16042a69cc9b","dweb:/ipfs/QmUpyP9AD7AqmRNEmrjLSQivXXdbZmFZKaLJwW9UP2wWCN"],"license":"MIT"},"lib/solady/src/utils/MetadataReaderLib.sol":{"keccak256":"0x671f4b38462335f3500b91eeff2fd25fc447cc201901524959c05b934ad0b100","urls":["bzz-raw://aa64b44dc13b25c1aa713cb5724fade1dc093c95581efc5ccb85cbcc616c02c5","dweb:/ipfs/QmRvXqBw8GqpShA8cXAwA6ha14Q2bfajNmYq1mYNYAaMiv"],"license":"MIT"},"lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a","urls":["bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c","dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J"],"license":"MIT"},"lib/solady/src/utils/SignatureCheckerLib.sol":{"keccak256":"0x472ad43dd67dcc0d548efbbc8779f34e56a7eb99d7a8b1c29af33fb03bbe9ffc","urls":["bzz-raw://733da5015058b9540927c63c316665e9ac8d9676d23f722bddf9376c2a03d4cb","dweb:/ipfs/QmPhXj1qpjnwVjrZUgFdkinMK9XSuoLN3cxbSmqADYSZry"],"license":"MIT"},"lib/tstorish/src/Tstorish.sol":{"keccak256":"0xad3697d9fd6e7c1fb6faa8d474af00bb2a7afd51e8818165fd30bcc7ead53973","urls":["bzz-raw://a8b62000145be27440c913238fbe9b97ecfc709eacac14b498f18980418d6ab6","dweb:/ipfs/QmRMXHdYUDmajWzwUjs7CQZ5i1T739MhiMmimd3do8qJNk"],"license":"MIT"},"src/TheCompact.sol":{"keccak256":"0x2949a8d172180ba623c85dfc22eda0ba1f59c4d70d8ee8ade62b5876ff6cd935","urls":["bzz-raw://4c6a3fdaa5319cc8a272422e8af551bee8e1467f78aa8b65a1290fddf0453a90","dweb:/ipfs/QmafPX5TCncQbuhFtztQVL81hmU9wmdxfNZCYj9t5X6QqM"],"license":"MIT"},"src/interfaces/ITheCompact.sol":{"keccak256":"0xe75d130ab9ead7ef7866f4ce8fcbe5e8de49450abf5f8c6b5878c4e54e480103","urls":["bzz-raw://63b7694d1b97b350c41e668e72d25d3df10c230b9dd21219827d7d2cc0dc39b6","dweb:/ipfs/QmTDJAFcTYfU7DyfuYMJHK3YMYRkXQvm9MoUhywaqeUsZ6"],"license":"MIT"},"src/interfaces/ITheCompactClaims.sol":{"keccak256":"0x5691d5127ccff51eea74ce4f6dd01a5f121fd2a1b7bdad41aca39c4d236e27bb","urls":["bzz-raw://ca686c6911319d151dc1f658767545823d750c3fb54cb8f75e46b544df3a217a","dweb:/ipfs/QmT2a1twcvzHxjWwcLqMebo9rat5x5CVy2KJfawj9qXS5a"],"license":"MIT"},"src/lib/AllocatorLogic.sol":{"keccak256":"0xadfa16ae7d02777e129d31639f110be46093ef109c1287896598ee792de34d5c","urls":["bzz-raw://11a258ef5e43b6d85c99b330beaf4c3750f0d41c3b862b677551eca3626a2071","dweb:/ipfs/QmfViBPCWeKqgdVKfA7KQUz2JntZEdGfbpgAwCGWwLGQ9Y"],"license":"MIT"},"src/lib/ClaimHashFunctionCastLib.sol":{"keccak256":"0xcfa2f7fb4e3df789ae504ebc13e31cadb6c05282e07d46a4b807d5d23a5ef530","urls":["bzz-raw://51e642f4676ec4e0ecc1fb716cd051bd6d12dac2d39e997e516af5bd141b3178","dweb:/ipfs/QmeQ8vHdg8vsCZ9XPc3af82ktXHHicY3QQbAoghHfvkVK4"],"license":"MIT"},"src/lib/ClaimHashLib.sol":{"keccak256":"0x2bc3fb604115697562a4770f98020efd578b02d6376b56ca52c64d0df46f6e87","urls":["bzz-raw://aeddaee5ec0f8512fc13af7b0bfc07e93250a1bc34b6095c6a5bd6624a73990d","dweb:/ipfs/QmVeVSBNoJeMndTQpvB2Kr9BzWWG8crjeBPjZZxciGYXMx"],"license":"MIT"},"src/lib/ClaimProcessor.sol":{"keccak256":"0x58872af76a73fd131a85635150545978bbe09ae83ec4ed2fae19d75c038a482c","urls":["bzz-raw://8d782488fcbded4ef2781031940611599b6ec41e92d813800912e2c86afd7979","dweb:/ipfs/QmaCuq52gwjc1LfZrURPpyrjmGZZCtzhXRqg4dMhXP1NKa"],"license":"MIT"},"src/lib/ClaimProcessorFunctionCastLib.sol":{"keccak256":"0xb69ec41dc657f93f6f6a1901d39e48a791907d4debc0eb8104f9fe016b6a59ba","urls":["bzz-raw://b6a54cebc498c4181ddc25fd4c6162449ae12d407fc1b45c0e6c4b365da1543e","dweb:/ipfs/QmRdZp5fraYJRB7QXwDqE5jbpmerWaCV3DqMPxi9aCk4ZQ"],"license":"MIT"},"src/lib/ClaimProcessorLib.sol":{"keccak256":"0xf150692ad2915d0c4df63ea44e62f6e3d5736f2c91de7cea48a1301cf4034e51","urls":["bzz-raw://1c2f21638d2a613e912cf73dd049b0bb2e4abbea54a3f58a5439f6396c59d9ee","dweb:/ipfs/QmRQpwnhhNfvWyTXHRy982awBnHA4fjK7GpHzSgqC3pPT6"],"license":"MIT"},"src/lib/ClaimProcessorLogic.sol":{"keccak256":"0x737780590a48e67dc0f64bd3bb7248eafb7630f579d8aa44befb197d9ac66ce8","urls":["bzz-raw://ea7c69e2cbf316fe182fad296b8d65a76ade84923edb0572c339f880e21fc7bc","dweb:/ipfs/QmWuZ9UJA4nsdPjgCa6rsCBvoWBjcUhWRuCnLqPNbM8687"],"license":"MIT"},"src/lib/ComponentLib.sol":{"keccak256":"0x3e1ad4bff9cd12162f9b849078839b802f4783b474588fa93be8ba1e61263dd6","urls":["bzz-raw://faa70f41d0679e1fa2aa827f863c03bf8a3962703a26ae724b7ca2a8d5f9f96b","dweb:/ipfs/QmXWyv8ATKeSKwiXCPFZBLkrRuV1NhNDS5yH5rDyrm6GLs"],"license":"MIT"},"src/lib/ConstructorLogic.sol":{"keccak256":"0xca9b0d52a562351978aafcc06f79f5c555ea948eaad28983812a7892f02b1245","urls":["bzz-raw://1f2e41013c0ef8ef9bee844494185b7a09c8680ea3d931a2683f968cdaa154a9","dweb:/ipfs/QmX8CoLP6VGRkxhx6VonrRf2YqPZ1hg1LagKvkNBaQtNaR"],"license":"MIT"},"src/lib/ConsumerLib.sol":{"keccak256":"0x582badfccdb57ee9518e39676fab7ba2abc6b527c854d524b8f417126fa6d192","urls":["bzz-raw://96d6dde54bdad2fc2203620d5f75e96cc9267cb340e1284d311bf6f8c77d16d2","dweb:/ipfs/Qmbq8XuUiAoEsmYVa2NCHSdi6gu4ZYzeyr1iPNGaFwwhxu"],"license":"MIT"},"src/lib/DepositLogic.sol":{"keccak256":"0xb2a199980ca4025c1784ebc79ec5d73cbe849ff26d446b2ca58bdb7066475fcf","urls":["bzz-raw://73e9defc19c10bb6b63d7571a1e097ed09accdf7cf123b91c8a9bea02c9ca87f","dweb:/ipfs/QmVWt9Ssb6CuFpYKTDYc31FH9TFZfYqs4WGsqf2ksiPtpx"],"license":"MIT"},"src/lib/DepositViaPermit2Lib.sol":{"keccak256":"0x3d45834b9be7e0af8aadd4c3afb2b5d7a9c1a47156e30780499852b1e503b1c4","urls":["bzz-raw://1e16d1aa8eb93fefd956455fbb157a58cb9fb3824a276f54a33a52c17924c30b","dweb:/ipfs/QmUmsqU9p8J7r7hk5jxNYXUnaPoCaMruFKtxFo12zV7XJQ"],"license":"MIT"},"src/lib/DepositViaPermit2Logic.sol":{"keccak256":"0xb8813f63d4a3c05dc99e36b6a900cbd7c6c6bfc8cccdb5b9052894400b4925a9","urls":["bzz-raw://463fa79ef23b7f6d56a9bc8f6139917374a06f860c12fbfe6e76d794e690b9e0","dweb:/ipfs/QmXGqm3wZqRSDAvy7mykMvezMBVPPT79pJYsASwkxXFitq"],"license":"MIT"},"src/lib/DirectDepositLogic.sol":{"keccak256":"0xa1b9f042c5ecf3edcde3733bd12cde49633dcce9336622ea7c5eabd0ce2bafa1","urls":["bzz-raw://0eeaa505727c2b42780bd4e3e3dbede2ce51480c46ff90ad401d7328fc5e42d8","dweb:/ipfs/QmZ8MDQjSi2yczScSgKyd6Ge3ir4xJA2o8pX1j15ryyzVp"],"license":"MIT"},"src/lib/DomainLib.sol":{"keccak256":"0x0a69b112fabd7d4e13fbf4c796a4a163f522c84b4b6a981c913a6c7342f5cc6a","urls":["bzz-raw://4a3d3fd2d8ab66c6dd0f2674efcf2bca87899decd42e949631be80a60f74d6a2","dweb:/ipfs/QmP38CpNz5GjycQZwpe7CxXrRsugraQDtr6rsiA5ue2iK6"],"license":"MIT"},"src/lib/EfficiencyLib.sol":{"keccak256":"0xd8fd182c728a98a3ac5c64cbc7011bc34dc1ee06e377a1a5e670c3cd8375eff9","urls":["bzz-raw://1f565cad687dc0bd3438a8b8b08ecc973f5ad5a1aebd332baa402e45cd56ae83","dweb:/ipfs/QmayoEFEv6zMhRw6kqqoqdmNE1jGbwgRQ6VA5wj2XAb7Du"],"license":"MIT"},"src/lib/EventLib.sol":{"keccak256":"0x0d9bc84e78628d9ff42689b8cd33353c86f9de7220002d74c5d485275f328946","urls":["bzz-raw://eb8bf826a89bb1cc62e8af269f34453c13df6ffe473e0dff8aeddaf1797afa0f","dweb:/ipfs/QmX7TFZACuGBhCVMjAPve7JKz6PWZjYTMr7JQ9WbFatKcu"],"license":"MIT"},"src/lib/Extsload.sol":{"keccak256":"0x72075add7c7d734c46922f2f56cb490d48711a0cc6af439619ff39e60df75924","urls":["bzz-raw://283cc72cb88802327c60fc9bc75f840ff639d791c1d19056bbadf7e7e5f3c99f","dweb:/ipfs/QmWoCebx1axDW8uuUEPv6QRzGWFD5bRGnvw2VD7KJufokB"],"license":"MIT"},"src/lib/HashLib.sol":{"keccak256":"0x50bc064b796b92d6199cf09cf8ea34a808653a8c668f695ce89cd3614956cb4e","urls":["bzz-raw://6bd96eb47fd50bb4f15540e3f8c903d5cf83d8e0e975d615abb9e2dfe7329af0","dweb:/ipfs/QmVPs5HWJEbUtKQn69jSYdA7U92jU7nkWwGfsmD6sUCWsR"],"license":"MIT"},"src/lib/IdLib.sol":{"keccak256":"0x14a04b7bdfcd5e7cc783a7202cb0429fb225f0a960908f06028f39f78b01373b","urls":["bzz-raw://c465efd13c8fd3ddfd701357f8f6e64443d69c5ab835c7bb35b8934261c2313e","dweb:/ipfs/QmP15v2Qrp1hg7BvkfzE4zqcjwhDH2NBHkzJ8rRShCwU8S"],"license":"MIT"},"src/lib/MetadataLib.sol":{"keccak256":"0x1d7f67de567fccba29393048a15373c9ad6cc903409b52b94a8baf1747204340","urls":["bzz-raw://1f15f66c2420d6f5a527ee12945bc000e7687586727845015d60e229ca5009d4","dweb:/ipfs/QmY27xFEKUBW3U7K18gQNNbmR3pZbp1Gz3ecQVkZQUBzek"],"license":"MIT"},"src/lib/MetadataRenderer.sol":{"keccak256":"0xdef8b8a92120470f9d290b5d6ab3fc69145300741ca066b152ddc71cd719982e","urls":["bzz-raw://6946d4d9d525fd21e3b4d310aaa5160de531bda7574bb5ad8c6a10616c340fe8","dweb:/ipfs/QmdB6Kwipo2MXCLPexXqjNP2xQhkG8BRx7KBWKMyqCRNHk"],"license":"MIT"},"src/lib/RegistrationLib.sol":{"keccak256":"0xa6be3d3f74e30fa04157f369964afe818f562c82369bb0823ffc4a06297364a8","urls":["bzz-raw://f73aa296543d4c3757a9b104278cfa9c07838ae9a9b82a3e77ed6df7bbe8ef20","dweb:/ipfs/QmWDCBxnz3quqhDtAN7zqetaQmCE8ULM1dAYEBrguHP5DQ"],"license":"MIT"},"src/lib/RegistrationLogic.sol":{"keccak256":"0x40850751ea4a77f6bd9df09a3a9f565994dfd03b29a15dcc31e03da3be317b7f","urls":["bzz-raw://16f07cb5ab8e5adfe74cdd700f5c9e448b28fab0b120058b25d4d1bcf2338a9a","dweb:/ipfs/QmULZACcDPswptXRxKnA8dBChU63k8CkvY5Q7YG7SJoSs6"],"license":"MIT"},"src/lib/SharedLogic.sol":{"keccak256":"0xcc76a01f9dc24f1afc4fd21dbdb423ec7a6cccb454c9b725fa3b135d4d851365","urls":["bzz-raw://1f9fe59a2d0c467832d42c60acabd4c599868024c09b5aa89e9e91b38e9f8eba","dweb:/ipfs/Qmbsu2BLJT32Qc77RR3ZHhVTMkyh1sLJueLiTuYHCQwxVf"],"license":"MIT"},"src/lib/TheCompactLogic.sol":{"keccak256":"0xc6106d8b4a9f2bf6c9006181a3e6acc95c8524628b5096478c76716a7e2cc5c4","urls":["bzz-raw://18056a737da3fddaac4cb50dd598b57e0bcc5d1889669831bbb4d09bc48c5cf6","dweb:/ipfs/QmPvQs8THzQPfpxuB5MKNKsFGiPjbR9B5QVAKa4NTkpSbd"],"license":"MIT"},"src/lib/TransferFunctionCastLib.sol":{"keccak256":"0x1b2b8d48503f85dee96cb0d915d1f506ab872aac6fb29a1adbb894de93a534e7","urls":["bzz-raw://6a2eb941a4a3e4633c88420ae3eab750ffdb32e431c71927a10feb6562b6e9a9","dweb:/ipfs/QmeYJbeupvqjyrMV43Z41mz52E9Bwqhmm4mSx7K8F26Vmb"],"license":"MIT"},"src/lib/TransferLogic.sol":{"keccak256":"0x08ae66f9d642e8caabcd200d8574e5487cc11181c23acc18f2076e4f5e9ca086","urls":["bzz-raw://2f4ec47106727e1fd5197f9fa7e86552469a198dd62dd24ad3dc1db9fb6d4327","dweb:/ipfs/QmR3bC1fmUVYTarsZMRU3u3RV1GcbNsF3NghvxND4B7J46"],"license":"MIT"},"src/lib/ValidityLib.sol":{"keccak256":"0xfdecefc1bd9b9ba92fb471af7d09dc30255cb16154cec436b27fc06630fc7106","urls":["bzz-raw://3b36c79e57192514bcf3aace66e38568708e066f24db93832f0a7f530754c5a7","dweb:/ipfs/QmUSRsBpZz7VEPN1ubX5mB71uKRdQ17Tf5jbkUNkyiMGhu"],"license":"MIT"},"src/lib/WithdrawalLogic.sol":{"keccak256":"0x438c41cb28048ee067e8f64e2faaf7339a3324f0ce81ec96c94e5692074ee650","urls":["bzz-raw://f811218032733e0fd0eb937a036b04e37dfcd46ed64bcbac22ecbb5d2a5993b4","dweb:/ipfs/QmdD2bN9Be2dDBEmuYBKGJKgW5FsayuojBqjYuz2ZvWcEb"],"license":"MIT"},"src/types/BatchClaims.sol":{"keccak256":"0x368860cb48d9cf8b7ee86e226fc203307c8559ee5bbd987299c14580c61039b5","urls":["bzz-raw://edd6eccb18ee3f7dc1e4fdeaa00d007b8cd6f506ab76366f74e530a66211ba8d","dweb:/ipfs/Qmf68iLL8CVZEvkjnQb6GdPumsP5V8dFfSubXCSx1Vgu4Z"],"license":"MIT"},"src/types/BatchMultichainClaims.sol":{"keccak256":"0xe493995e946bf63d2970e5668e426f6c3d84f9ae5b03f86f7c493ae02ca8b96c","urls":["bzz-raw://91370d328607589fa1ff37f3c0ef66a5b90ff63de20c8ccee3b009a6aedb2620","dweb:/ipfs/QmY5Ja2XfxRFbh4dtViqiepaSfNr1rWrMYSnSGjeMPxxNw"],"license":"MIT"},"src/types/Claims.sol":{"keccak256":"0x6ae4ad79a64e0edd6169e87f8c3e35abd5f592ac23dc8eae7b92dfc190fa3ae2","urls":["bzz-raw://d4434f16be0877209b2aaa51c9f27b9374fab6acbfc3b6241ba00907d6de7a96","dweb:/ipfs/QmTTcNwtekjwMZkrNKAcKAprWG47pSVEn2GETX6tZu746C"],"license":"MIT"},"src/types/CompactCategory.sol":{"keccak256":"0xc3ab3758e88fc8591d79352d3d49140433bbf4176c3caa1bfce1903e2bfadf06","urls":["bzz-raw://16960ee62b98c5cbbedcfe22ce4b521205d2bcc4fe9dfa57a9d68ec90efeb5a1","dweb:/ipfs/Qmc3FciGTRrDZjRSb9waUYkZsELRvVWkJKNVqS1u8vEDNG"],"license":"MIT"},"src/types/Components.sol":{"keccak256":"0xd5027c0eb603a4604e050e97930fa436db33755b3e8097894320916cd7163ff0","urls":["bzz-raw://b414c4a0e0d543f8de309bbb005f62d63a5c67ae6cf78d5d5b5fd076dd7b0a51","dweb:/ipfs/QmX8Z9Fp2QJVgE9hwbPjrXUYc4RVAE8qTyfN8DKBpV5iPB"],"license":"MIT"},"src/types/EIP712Types.sol":{"keccak256":"0x386ff8e0aff7d437b8b49117ed158554e608d0cc18a0b4f561510e9584cafb91","urls":["bzz-raw://e49d199dd3caab0210a2648a1b9d2a8965b5706f602fffee8e1815bbacddbe5e","dweb:/ipfs/QmYUzWFC4GK1rjoqnZEt2ghL5GMPCiaF5xaPzSr4Rm99PK"],"license":"MIT"},"src/types/ForcedWithdrawalStatus.sol":{"keccak256":"0xdf352a2439e57ea9e1b7d54997fe904e4ea41ab9d2d8221d7d753dce94e76dc7","urls":["bzz-raw://6faadb6857eda66cbef8fe1bf36d85d16f534b899a737a9464e69dc505eb9e89","dweb:/ipfs/QmdC9beQhPRYv5sAFx7TyWvzGPjm6XY3bCYNKzuZH1Pesd"],"license":"MIT"},"src/types/Lock.sol":{"keccak256":"0x21a490258b933f8d5db759a91d07f7d9d2b2435d366334a8bcfbce4379a85011","urls":["bzz-raw://d1cfcb02c3b0a70d82b2d9bd9c55ffcf654a226774711ca727eab8b0cdf456ea","dweb:/ipfs/QmRFN3dvespK1mUcUuXm4rnPd3ZGNRdba8MZgub1zu24Qw"],"license":"MIT"},"src/types/MultichainClaims.sol":{"keccak256":"0x596b71d675b7b5e13b29f6b7fb92d23722d2792fadc82ad764467fdf9c693cb9","urls":["bzz-raw://974d9d906e06ad29e875c2556d32c1f631a70539e43b018815e3fc68ede01e53","dweb:/ipfs/QmPbqsU21jDGhLQ9x9No2xDUimaLueGGF7eAkNxJfhc3fx"],"license":"MIT"},"src/types/ResetPeriod.sol":{"keccak256":"0xfd32523d563b926c72fdc693aa8b7f6db24f4720decee16710cdfc662a8d8f16","urls":["bzz-raw://4c510cde0fc28cde51aad2df6bac8eeef5e0fb67be754a3d8c655a8556db32c6","dweb:/ipfs/QmWjVZJdfxVK5EiprmWi9iGNMqXAkVZjECnzeXvjfTsDZX"],"license":"MIT"},"src/types/Scope.sol":{"keccak256":"0x3e63be015c24bde88698efc20b00690d1e683a5cabf2122dc91ab0ecad4ae8ed","urls":["bzz-raw://5160d46460204dc6268a963e9d0c117fab903318f74d3b5903693fe2dfcc2462","dweb:/ipfs/QmRsc4VSWvvSxi3VfyFgjTELj5DB5MpZ7UPJ3mzgPMyD9v"],"license":"MIT"}},"version":1},"id":36} \ No newline at end of file +{ + "abi": [ + { + "type": "function", + "name": "DOMAIN_SEPARATOR", + "inputs": [], + "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "__activateTstore", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "__registerAllocator", + "inputs": [ + { "name": "allocator", "type": "address", "internalType": "address" }, + { "name": "proof", "type": "bytes", "internalType": "bytes" } + ], + "outputs": [{ "name": "", "type": "uint96", "internalType": "uint96" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "allocatedTransfer", + "inputs": [ + { + "name": "transfer", + "type": "tuple", + "internalType": "struct BatchTransfer", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "transfers", + "type": "tuple[]", + "internalType": "struct TransferComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "recipient", + "type": "address", + "internalType": "address" + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "allocatedTransfer", + "inputs": [ + { + "name": "transfer", + "type": "tuple", + "internalType": "struct SplitBatchTransfer", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "transfers", + "type": "tuple[]", + "internalType": "struct SplitByIdComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "allocatedTransfer", + "inputs": [ + { + "name": "transfer", + "type": "tuple", + "internalType": "struct SplitTransfer", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "recipients", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "allocatedTransfer", + "inputs": [ + { + "name": "transfer", + "type": "tuple", + "internalType": "struct BasicTransfer", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { "name": "amount", "type": "uint256", "internalType": "uint256" }, + { + "name": "recipient", + "type": "address", + "internalType": "address" + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "allocatedWithdrawal", + "inputs": [ + { + "name": "withdrawal", + "type": "tuple", + "internalType": "struct BasicTransfer", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { "name": "amount", "type": "uint256", "internalType": "uint256" }, + { + "name": "recipient", + "type": "address", + "internalType": "address" + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "allocatedWithdrawal", + "inputs": [ + { + "name": "withdrawal", + "type": "tuple", + "internalType": "struct SplitBatchTransfer", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "transfers", + "type": "tuple[]", + "internalType": "struct SplitByIdComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "allocatedWithdrawal", + "inputs": [ + { + "name": "withdrawal", + "type": "tuple", + "internalType": "struct BatchTransfer", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "transfers", + "type": "tuple[]", + "internalType": "struct TransferComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "recipient", + "type": "address", + "internalType": "address" + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "allocatedWithdrawal", + "inputs": [ + { + "name": "withdrawal", + "type": "tuple", + "internalType": "struct SplitTransfer", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "recipients", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "allowance", + "inputs": [ + { "name": "owner", "type": "address", "internalType": "address" }, + { "name": "spender", "type": "address", "internalType": "address" }, + { "name": "id", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [ + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "approve", + "inputs": [ + { "name": "spender", "type": "address", "internalType": "address" }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "balanceOf", + "inputs": [ + { "name": "owner", "type": "address", "internalType": "address" }, + { "name": "id", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [ + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousSplitBatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedBatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitBatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedBatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousSplitMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedSplitMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedSplitMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitBatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct BatchClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedBatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct BasicClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitBatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct BatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct BatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousSplitMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousSplitBatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedBatchClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedBatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct BatchClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitBatchClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitBatchClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedBatchClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct MultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct MultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitBatchClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitBatchClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousBatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousBatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitBatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedBatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitBatchClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitBatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedBatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitBatchClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedBatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct MultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousSplitBatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitBatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousBatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousSplitMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct BatchClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitBatchClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousSplitBatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitBatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedSplitMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct BatchClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct MultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedSplitMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitBatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedBatchClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct BasicClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct BatchMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct BatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousSplitMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousBatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedMultichainClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct SplitBatchClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct SplitBatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "portions", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedBatchClaim", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct QualifiedSplitClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claimants", + "type": "tuple[]", + "internalType": "struct SplitComponent[]", + "components": [ + { + "name": "claimant", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "claimAndWithdraw", + "inputs": [ + { + "name": "claimPayload", + "type": "tuple", + "internalType": "struct ExogenousQualifiedBatchMultichainClaimWithWitness", + "components": [ + { + "name": "allocatorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "sponsorSignature", + "type": "bytes", + "internalType": "bytes" + }, + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" }, + { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "witnessTypestring", + "type": "string", + "internalType": "string" + }, + { + "name": "qualificationTypehash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "qualificationPayload", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "additionalChains", + "type": "bytes32[]", + "internalType": "bytes32[]" + }, + { + "name": "chainIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "notarizedChainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "claims", + "type": "tuple[]", + "internalType": "struct BatchClaimComponent[]", + "components": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "name": "claimant", "type": "address", "internalType": "address" } + ] + } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "consume", + "inputs": [ + { "name": "nonces", "type": "uint256[]", "internalType": "uint256[]" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "decimals", + "inputs": [ + { "name": "id", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "uint8", "internalType": "uint8" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "deposit", + "inputs": [ + { "name": "token", "type": "address", "internalType": "address" }, + { "name": "", "type": "uint256", "internalType": "uint256" }, + { "name": "", "type": "uint256", "internalType": "uint256" }, + { "name": "", "type": "uint256", "internalType": "uint256" }, + { "name": "", "type": "address", "internalType": "address" }, + { "name": "", "type": "address", "internalType": "address" }, + { "name": "", "type": "uint8", "internalType": "enum ResetPeriod" }, + { "name": "", "type": "uint8", "internalType": "enum Scope" }, + { "name": "recipient", "type": "address", "internalType": "address" }, + { "name": "signature", "type": "bytes", "internalType": "bytes" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "deposit", + "inputs": [ + { "name": "allocator", "type": "address", "internalType": "address" }, + { + "name": "resetPeriod", + "type": "uint8", + "internalType": "enum ResetPeriod" + }, + { "name": "scope", "type": "uint8", "internalType": "enum Scope" }, + { "name": "recipient", "type": "address", "internalType": "address" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "deposit", + "inputs": [ + { "name": "token", "type": "address", "internalType": "address" }, + { "name": "allocator", "type": "address", "internalType": "address" }, + { + "name": "resetPeriod", + "type": "uint8", + "internalType": "enum ResetPeriod" + }, + { "name": "scope", "type": "uint8", "internalType": "enum Scope" }, + { "name": "amount", "type": "uint256", "internalType": "uint256" }, + { "name": "recipient", "type": "address", "internalType": "address" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "deposit", + "inputs": [ + { "name": "token", "type": "address", "internalType": "address" }, + { "name": "allocator", "type": "address", "internalType": "address" }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "deposit", + "inputs": [ + { "name": "", "type": "address", "internalType": "address" }, + { + "name": "permitted", + "type": "tuple[]", + "internalType": "struct ISignatureTransfer.TokenPermissions[]", + "components": [ + { "name": "token", "type": "address", "internalType": "address" }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + }, + { "name": "", "type": "uint256", "internalType": "uint256" }, + { "name": "", "type": "uint256", "internalType": "uint256" }, + { "name": "", "type": "address", "internalType": "address" }, + { "name": "", "type": "uint8", "internalType": "enum ResetPeriod" }, + { "name": "", "type": "uint8", "internalType": "enum Scope" }, + { "name": "recipient", "type": "address", "internalType": "address" }, + { "name": "signature", "type": "bytes", "internalType": "bytes" } + ], + "outputs": [ + { "name": "", "type": "uint256[]", "internalType": "uint256[]" } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "deposit", + "inputs": [ + { + "name": "idsAndAmounts", + "type": "uint256[2][]", + "internalType": "uint256[2][]" + }, + { "name": "recipient", "type": "address", "internalType": "address" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "deposit", + "inputs": [ + { "name": "allocator", "type": "address", "internalType": "address" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "depositAndRegister", + "inputs": [ + { "name": "token", "type": "address", "internalType": "address" }, + { "name": "", "type": "uint256", "internalType": "uint256" }, + { "name": "", "type": "uint256", "internalType": "uint256" }, + { "name": "", "type": "uint256", "internalType": "uint256" }, + { "name": "depositor", "type": "address", "internalType": "address" }, + { "name": "", "type": "address", "internalType": "address" }, + { + "name": "resetPeriod", + "type": "uint8", + "internalType": "enum ResetPeriod" + }, + { "name": "", "type": "uint8", "internalType": "enum Scope" }, + { "name": "claimHash", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "compactCategory", + "type": "uint8", + "internalType": "enum CompactCategory" + }, + { "name": "witness", "type": "string", "internalType": "string" }, + { "name": "signature", "type": "bytes", "internalType": "bytes" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "depositAndRegister", + "inputs": [ + { + "name": "idsAndAmounts", + "type": "uint256[2][]", + "internalType": "uint256[2][]" + }, + { + "name": "claimHashesAndTypehashes", + "type": "bytes32[2][]", + "internalType": "bytes32[2][]" + }, + { "name": "duration", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "depositAndRegister", + "inputs": [ + { "name": "allocator", "type": "address", "internalType": "address" }, + { "name": "claimHash", "type": "bytes32", "internalType": "bytes32" }, + { "name": "typehash", "type": "bytes32", "internalType": "bytes32" } + ], + "outputs": [ + { "name": "id", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "depositAndRegister", + "inputs": [ + { "name": "depositor", "type": "address", "internalType": "address" }, + { + "name": "permitted", + "type": "tuple[]", + "internalType": "struct ISignatureTransfer.TokenPermissions[]", + "components": [ + { "name": "token", "type": "address", "internalType": "address" }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + }, + { "name": "", "type": "uint256", "internalType": "uint256" }, + { "name": "", "type": "uint256", "internalType": "uint256" }, + { "name": "", "type": "address", "internalType": "address" }, + { + "name": "resetPeriod", + "type": "uint8", + "internalType": "enum ResetPeriod" + }, + { "name": "", "type": "uint8", "internalType": "enum Scope" }, + { "name": "claimHash", "type": "bytes32", "internalType": "bytes32" }, + { + "name": "compactCategory", + "type": "uint8", + "internalType": "enum CompactCategory" + }, + { "name": "witness", "type": "string", "internalType": "string" }, + { "name": "signature", "type": "bytes", "internalType": "bytes" } + ], + "outputs": [ + { "name": "", "type": "uint256[]", "internalType": "uint256[]" } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "depositAndRegister", + "inputs": [ + { "name": "token", "type": "address", "internalType": "address" }, + { "name": "allocator", "type": "address", "internalType": "address" }, + { "name": "amount", "type": "uint256", "internalType": "uint256" }, + { "name": "claimHash", "type": "bytes32", "internalType": "bytes32" }, + { "name": "typehash", "type": "bytes32", "internalType": "bytes32" } + ], + "outputs": [ + { "name": "id", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "disableForcedWithdrawal", + "inputs": [ + { "name": "id", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "enableForcedWithdrawal", + "inputs": [ + { "name": "id", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "extsload", + "inputs": [ + { "name": "slot", "type": "bytes32", "internalType": "bytes32" } + ], + "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "extsload", + "inputs": [ + { "name": "slots", "type": "bytes32[]", "internalType": "bytes32[]" } + ], + "outputs": [ + { "name": "", "type": "bytes32[]", "internalType": "bytes32[]" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "exttload", + "inputs": [ + { "name": "slot", "type": "bytes32", "internalType": "bytes32" } + ], + "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "forcedWithdrawal", + "inputs": [ + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { "name": "recipient", "type": "address", "internalType": "address" }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "getForcedWithdrawalStatus", + "inputs": [ + { "name": "account", "type": "address", "internalType": "address" }, + { "name": "id", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "enum ForcedWithdrawalStatus" + }, + { "name": "", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getLockDetails", + "inputs": [ + { "name": "id", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [ + { "name": "", "type": "address", "internalType": "address" }, + { "name": "", "type": "address", "internalType": "address" }, + { "name": "", "type": "uint8", "internalType": "enum ResetPeriod" }, + { "name": "", "type": "uint8", "internalType": "enum Scope" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRegistrationStatus", + "inputs": [ + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "claimHash", "type": "bytes32", "internalType": "bytes32" }, + { "name": "typehash", "type": "bytes32", "internalType": "bytes32" } + ], + "outputs": [ + { "name": "isActive", "type": "bool", "internalType": "bool" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "hasConsumedAllocatorNonce", + "inputs": [ + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "allocator", "type": "address", "internalType": "address" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isOperator", + "inputs": [ + { "name": "owner", "type": "address", "internalType": "address" }, + { "name": "spender", "type": "address", "internalType": "address" } + ], + "outputs": [{ "name": "status", "type": "bool", "internalType": "bool" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "name", + "inputs": [ + { "name": "id", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "string", "internalType": "string" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [{ "name": "", "type": "string", "internalType": "string" }], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "register", + "inputs": [ + { + "name": "claimHashesAndTypehashes", + "type": "bytes32[2][]", + "internalType": "bytes32[2][]" + }, + { "name": "duration", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "register", + "inputs": [ + { "name": "claimHash", "type": "bytes32", "internalType": "bytes32" }, + { "name": "typehash", "type": "bytes32", "internalType": "bytes32" }, + { "name": "duration", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setOperator", + "inputs": [ + { "name": "operator", "type": "address", "internalType": "address" }, + { "name": "approved", "type": "bool", "internalType": "bool" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "supportsInterface", + "inputs": [ + { "name": "interfaceId", "type": "bytes4", "internalType": "bytes4" } + ], + "outputs": [{ "name": "result", "type": "bool", "internalType": "bool" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "symbol", + "inputs": [ + { "name": "id", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "string", "internalType": "string" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "tokenURI", + "inputs": [ + { "name": "id", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "string", "internalType": "string" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "transfer", + "inputs": [ + { "name": "to", "type": "address", "internalType": "address" }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "transferFrom", + "inputs": [ + { "name": "from", "type": "address", "internalType": "address" }, + { "name": "to", "type": "address", "internalType": "address" }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "payable" + }, + { + "type": "event", + "name": "AllocatorRegistered", + "inputs": [ + { + "name": "allocatorId", + "type": "uint96", + "indexed": false, + "internalType": "uint96" + }, + { + "name": "allocator", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Approval", + "inputs": [ + { + "name": "owner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "spender", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "id", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Claim", + "inputs": [ + { + "name": "sponsor", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "allocator", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "arbiter", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "claimHash", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "CompactRegistered", + "inputs": [ + { + "name": "sponsor", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "claimHash", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + }, + { + "name": "typehash", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + }, + { + "name": "expires", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "ForcedWithdrawalStatusUpdated", + "inputs": [ + { + "name": "account", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "id", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "activating", + "type": "bool", + "indexed": false, + "internalType": "bool" + }, + { + "name": "withdrawableAt", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OperatorSet", + "inputs": [ + { + "name": "owner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "operator", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "approved", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Transfer", + "inputs": [ + { + "name": "by", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "from", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "to", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "id", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "AllocatedAmountExceeded", + "inputs": [ + { + "name": "allocatedAmount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "providedAmount", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { "type": "error", "name": "BalanceOverflow", "inputs": [] }, + { + "type": "error", + "name": "Expired", + "inputs": [ + { "name": "expiration", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "type": "error", + "name": "ForcedWithdrawalAlreadyDisabled", + "inputs": [ + { "name": "account", "type": "address", "internalType": "address" }, + { "name": "id", "type": "uint256", "internalType": "uint256" } + ] + }, + { "type": "error", "name": "InsufficientBalance", "inputs": [] }, + { "type": "error", "name": "InsufficientPermission", "inputs": [] }, + { "type": "error", "name": "InvalidBatchAllocation", "inputs": [] }, + { "type": "error", "name": "InvalidBatchDepositStructure", "inputs": [] }, + { "type": "error", "name": "InvalidDepositBalanceChange", "inputs": [] }, + { "type": "error", "name": "InvalidDepositTokenOrdering", "inputs": [] }, + { + "type": "error", + "name": "InvalidRegistrationDuration", + "inputs": [ + { "name": "duration", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "type": "error", + "name": "InvalidRegistrationProof", + "inputs": [ + { "name": "allocator", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "InvalidScope", + "inputs": [{ "name": "id", "type": "uint256", "internalType": "uint256" }] + }, + { "type": "error", "name": "InvalidSignature", "inputs": [] }, + { + "type": "error", + "name": "InvalidToken", + "inputs": [ + { "name": "token", "type": "address", "internalType": "address" } + ] + }, + { "type": "error", "name": "OnlyDirectCalls", "inputs": [] }, + { "type": "error", "name": "Permit2CallFailed", "inputs": [] }, + { + "type": "error", + "name": "PrematureWithdrawal", + "inputs": [{ "name": "id", "type": "uint256", "internalType": "uint256" }] + }, + { + "type": "error", + "name": "ReentrantCall", + "inputs": [ + { + "name": "existingCaller", + "type": "address", + "internalType": "address" + } + ] + }, + { "type": "error", "name": "TStoreAlreadyActivated", "inputs": [] }, + { "type": "error", "name": "TStoreNotSupported", "inputs": [] }, + { + "type": "error", + "name": "TloadTestContractDeploymentFailed", + "inputs": [] + }, + { + "type": "error", + "name": "UnallocatedTransfer", + "inputs": [ + { "name": "operator", "type": "address", "internalType": "address" }, + { "name": "from", "type": "address", "internalType": "address" }, + { "name": "to", "type": "address", "internalType": "address" }, + { "name": "id", "type": "uint256", "internalType": "uint256" }, + { "name": "amount", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "bytecode": { + "object": "0x6101a060405234610085576100126100a8565b604051615ff19081610248823960805181611cda015260a05181611caa015260c05181613a4c015260e051816139d301526101005181613bac015261012051816137eb015261014051816137ca0152610160518181816115170152818161252e015261315001526101805181614eb10152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040513d5f823e3d90fd5b696002601e613d5c3d52f35f52600a60165ff06001600160a01b03811615610238575f80808084600a5a04fa3d15610233573d6001600160401b0381116102195760405190601f8101601f19908116603f011682016001600160401b038111838210176102195760405281525f60203d92013e5b801561021e57600160c052600360e0526005610100525b60a05260805246610120526101c74660a090604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208301527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d604083015260608201523060808201522090565b61014052604051613e2a8082016001600160401b03811183821017610219578291616239833903905ff0801561021457610160526e22d473030f116ddee9f6b43ac78ba33b151561018052565b61009d565b610089565b600260c052600460e052600661010052610133565b61011c565b632aea588760e01b5f5260045ffdfe6080806040526004361015610012575f80fd5b5f3560e01c908162ad800c1461312757508062fdd58e146130eb57806301ffc9a7146130a757806303417d721461309057806306659b7f1461307b57806306e8cc181461306657806306fdde031461303c57806308e600ee14613027578063095bcdb614612f4e5780630a133cf214612f395780630d57fec914612f245780630f5eeadf14612f0f578063107d4ee414612ec857806310d8267214612dff57806312a1e6ea14612dea57806312d4888514612d7a57806312f9d21e14612d6557806313589bfe14612d50578063138cd81914612d2a578063144bd5b514612cc85780631486590714612cb3578063176f405a14612c525780631b98b63f14612c3d5780631bb81a8114612c285780631d474b1414612c135780631e2eaeaf14612bf7578063200f0c4d14612b8f578063206620a114612b3f57806325d7776b14612b155780632737edb914612afe57806327c777a914612a815780632a9c4d0d146129515780632acd5dc31461293c5780632c4bbd17146129255780632e3ff2f7146128c15780632e4d55cc146128ac57806331bbae3e1461286e57806332e2a80314612859578063341056c5146128445780633644e5151461282a578063393c33e21461272f5780633f458a19146127185780633f47e662146126fc5780634073c0cc146126d9578063409b3a7e146126c4578063414fd914146126af578063418a23f51461269a578063426a849314612636578063440a0ec3146125ed57806344b97d78146125ba5780634ad5205e146125a35780634c1024161461258c5780634d585fbf146125755780634e41a1fb146125015780634e55a548146124ea578063507cb46f1461249057806353e5006714612350578063548439e114612339578063558a7297146122c4578063577cdc64146122ad5780635920212814612296578063598af9e7146122605780635ac2ccf1146122495780635b15bfd9146121dd5780635b6016ec146121765780635d76a382146121615780635e6c91ff1461214c57806362a420bb1461211557806363f5b1ad146120d8578063648705561461209a578063671b3bd61461202a5780636a9a4c4414611f895780636af2791b14611f745780637003019014611f125780637112406d14611dc857806371f5012714611db1578063721f629214611d765780637423eb3c14611c9157806376d531d414611c7c5780638340f54914611c41578063843719f014611bf15780638678555914611bdc57806388d247c414611bc557806388da84d414611bae57806389ce066114611b59578063935ed2ba14611b1e5780639730f4fd14611b07578063996d3aac14611adc57806399cf8b9b146119e85780639be5f537146119d1578063a23941471461191c578063a4c7bd93146118e2578063aa41c87e14611895578063aa8b845d14611863578063b20abc481461184e578063b24849b714611824578063b3244389146117ee578063b4039fc2146117c1578063b54baefd1461178c578063b602ae021461174a578063b6363cf214611705578063b7ace047146116c0578063b8a5bbad14611682578063bc95bd7a14611637578063c4d195e8146115f0578063c8091041146115b4578063c87b56dd14611432578063ca6cc39f146113e5578063d204f11e1461139a578063d2a1805f14611379578063d34ddc8214611362578063d350188c1461134d578063d3917f3c146112ff578063d921f36a146112b8578063da15ee7f1461112f578063da2f268b146110e6578063db04bc72146110d1578063dbd035ff14611059578063dd589cfc14610fdc578063e0565c4914610f8e578063e05c6e7d14610f41578063e6c5b65414610ee6578063e8672f9314610ed1578063ea14532e14610e6a578063eaa6748314610e33578063eb19600814610df9578063eb35a6d214610d89578063eb43182114610d4d578063ebcbd7b514610cf6578063ecaca40e14610c8d578063eea77a7814610c18578063eed634ad14610c03578063eed9357214610bb8578063f135baaa14610b9c578063f23d923d14610b2e578063f2f0def114610ae9578063f340fa0114610ab8578063f44a345214610a5a578063f745381c14610a24578063f95d3d16146109ea578063fa1c55001461098a578063fb75fb6914610924578063fcfe431a146108c1578063fdc060e7146107d75763fe99049a14610655575f80fd5b60803660031901126107d3576106696131bd565b6106716131ff565b6044359160643561068d60016001605c1b038560a01c16614862565b9260018060a01b0383169260018060a01b038216945f60208160a460405194828052601c8601948591631a808f91885233868901528b60408901528c60608901528d60808901528a60a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a82293940603452602852336014526034602020541561077f575b84601452604060142080548084116107725783900390556028528360145260406014208054908282019182106107655755335f526020525f516020615f655f395f51905f5260405fa45f603452602060405160018152f35b6389560ca15f526004601cfd5b63f4d678b85f526004601cfd5b845f5260545f20805460018101610798575b505061070d565b8084116107ab5783900390555f80610791565b63deda90305f526004601cfd5b3d1517156107cb5763014c931060a49252fd5b3d5f803e3d5ffd5b5f80fd5b346107d3576107e536613408565b608081015f806107f5838561377f565b905f915b80831061089c5750505061088a576108796035928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b809335613fcf565b614012565b61377f565b9061527d565b602060405160018152f35b634e487b715f5260116020526024601cfd5b90919260019060206108af8685876138cd565b013580960195861017930191906107f9565b346107d357602061091a601760356108d8366133d4565b6101806108f96108f36108ed83850185613c23565b90614bee565b83615c0a565b9290919361090b610160820135613c58565b926109146137c8565b95614d26565b6040519015158152f35b346107d357602061091a603461093936613249565b61095b61095361094d610100840184613898565b90614e53565b826030615651565b9061010061096b3615848461532d565b916109796001361517613cdd565b926109826137c8565b946021615e45565b346107d357602061091a603461099f3661327d565b6109bb6109b36108ed610100840184613c23565b826031615651565b906109c960e0820135613c58565b6101006109d96002361517613cdd565b926109e26137c8565b946026615e45565b346107d357602061091a60356109ff36613215565b610120610a10604036151783615bc9565b92919390610a1c6137c8565b946024615e45565b346107d357602061091a60176034610a3b3661333c565b610a4481615571565b90610100610a506137c8565b93361592806152df565b346107d357602061091a6035610a6f36613249565b610a8a610a826108ed60e0840184613c23565b82602b615651565b9060e0610a993615848461532d565b91610aa76001361517613cdd565b92610ab06137c8565b94601f615e45565b60203660031901126107d3576020610ad6610ad16131bd565b614320565b610ae134823361437c565b604051908152f35b346107d357602061091a60176035610b00366133a0565b610b19610b1361094d60e0840184613898565b82615834565b9060e0610b246137c8565b93361592806151a7565b346107d357602061091a6035610b4336613215565b3615610100610b73610b6b60408417859060e0910160c08101355f52013560205260405f2090565b846030615651565b92610b8b6002610b8485878561532d565b9417613cdd565b92610b946137c8565b946023615e45565b346107d35760203660031901126107d3576004355c5f5260205ff35b346107d357602061091a6035610bcd36613215565b610be7610be16108ed610140840184613c23565b82615b8a565b9091610140610bfa610120830135613c58565b916109e26137c8565b346107d357602061091a6034610bcd36613215565b346107d357602061091a6035610c2d366133d4565b361590610c5b610c5360808417839060e0910160c08101355f52013560205260405f2090565b826032615651565b91610140610c6a82858561532d565b92610c7e6002610b84610120840135613c58565b93610c876137c8565b95614239565b346107d35760a03660031901126107d3576020610ca86131bd565b610cd9610cc4610cb66131ff565b610cbf846148dc565b6142e2565b91610ccd6139d1565b8260443591339061487c565b610ce1613baa565b610ae1610258361517608435606435336141b4565b346107d357602061091a6034610d0b366134d1565b610180610d326108f360c0361517849060e0910160c08101355f52013560205260405f2090565b92909193610d44610160820135613c58565b92610c876137c8565b346107d357602061091a6034610d623661327d565b610120610d7d610d7761094d83850185613898565b83615baa565b929193906109826137c8565b346107d35760203660031901126107d3576020600435610ae162ffffff77278d00094890015180000f3c00025800003c00000f000001601860078560fc1c16021c1642018281610df38195339190604051926014526341d0e04b5f526034526038601c2091604052565b556148f6565b346107d357602061091a6035610e0e3661333c565b610100610e1a826155cc565b919092610e2a6002361517613cdd565b92610a1c6137c8565b346107d357602061091a6034610e48366133a0565b610e5b610a8261094d60e0840184613898565b9060e061096b3615848461532d565b346107d357602061091a60176034610e813661333c565b610e95610c5361094d610140840184613898565b90610ea23615838361532d565b90610140610eb4610120830135613c58565b91610ec26002361517613cdd565b93610ecb6137c8565b956151a7565b346107d357602061091a60346109ff36613215565b346107d357602061091a6034610efb3661327d565b610f20610f188260e09060c08101355f52013560205260405f2090565b82602f615651565b90361560c0610f3160028317613cdd565b92610f3a6137c8565b9480614239565b346107d357602061091a6035610f563661333c565b610f5f81615250565b90610f6d60e0820135613c58565b610100610f7d6002361517613cdd565b92610f866137c8565b946025615e45565b346107d357602061091a6034610fa336613215565b6101003615610fd1610fcb60408317859060e0910160c08101355f52013560205260405f2090565b84615b66565b929093610f3a6137c8565b346107d357602061091a610fef3661343b565b6040515f516020615fa55f395f51905f528152338482015233604082015261103f8260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b608061104d60a084016137b4565b92013591336034615c31565b346107d35760203660031901126107d3576004356001600160401b0381116107d357611089903690600401613370565b6040519160408360208152836020820152019160051b8301916020806040850193925b83355481520191019084838210156110c85750602080916110ac565b60408186030190f35b346107d357602061091a6034610a6f36613249565b346107d35760403660031901126107d35760206004356111046131ff565b906040519183526303f37b1a600c52806040526001603760282054918360405260ff161b1615158152f35b6101603660031901126107d3576111446131bd565b6024356001600160401b0381116107d35761116390369060040161346e565b61116e9291926131d3565b5060a4359060088210156107d357600260c43510156107d35760e43591610104359460038610156107d357610124356001600160401b0381116107d3576111b990369060040161330f565b9661014435906001600160401b0382116107d357869588926111df90369060040161330f565b6111ed8584899e949e614984565b96819f939183839b949b0160051b90602001209561120b8b84614a8c565b83839992993615976001891792611221946143c6565b9f9091604051925f5260205260405260605f206080890152604052601f19916002811460061b90600114600b020190801515010160f301169060071b01610180019060c01761126f94613e72565b611279948a614b38565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff16916112a6936141b4565b6040516112b48192826135c0565b0390f35b346107d357602061091a601760356112cf366132db565b6101806112e46108f361094d83850185613898565b929091936112f6610160820135613c58565b92610ecb6137c8565b346107d357602061091a6035611314366133d4565b61014061134161133b6080361517849060e0910160c08101355f52013560205260405f2090565b83615bd9565b92919390610b946137c8565b346107d357602061091a6034610e0e3661333c565b346107d357602061091a60176034610b00366133a0565b346107d357602061091a603561138e366132db565b610140610a10826155f4565b346107d357602061091a601760346113b13661343b565b6113c4610a8261094d60a0840184613898565b90361560a06113d560018317613cdd565b926113de6137c8565b94806151a7565b346107d357602061091a60356113fa36613215565b61140381615250565b9061141160e0820135613c58565b6101006114216002361517613cdd565b9261142a6137c8565b946022615e45565b346107d35760203660031901126107d357604051600435608082016001600160401b038111838210176115a05760409081525f60208401818152918401818152606085019182526001600160a01b03848116865261149c60a086901c60016001605c1b0316614862565b16835260078460fc1c16600881101561158c5781528360ff1c90600282101561158c5790825260405163d637ca8d60e01b815294516001600160a01b03908116600487015292519092166024850152905161150b91906115009060448601906135a6565b5160648401906135b3565b60848201525f8160a4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575b5060405191829182613193565b61157b91503d805f833e61157381836135f9565b810190613635565b82611552565b6040513d5f823e3d90fd5b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b60403660031901126107d3576004356001600160401b0381116107d3576115e261087f91369060040161346e565b6115ea6131ff565b916138dd565b346107d357602061091a601760356116073661327d565b61162161161b6108ed610100840184613c23565b82615b66565b9061010061162d6137c8565b9336159280614d26565b346107d357602061091a6017603561164e366133a0565b611661610f186108ed60c0840184613c23565b90361560c061167260028317613cdd565b9261167b6137c8565b9480614d26565b346107d357602061091a60176034611699366133a0565b6116a281615516565b90361560a06116b082613cdd565b926116b96137c8565b94806152df565b346107d357602061091a601760346116d736613249565b6116f4610f188260e09060c08101355f52013560205260405f2090565b90361560c06116b060028317613cdd565b346107d35760403660031901126107d35761171e6131bd565b6117266131ff565b9067edcaa89a822939406020526014525f5260206034600c20546040519015158152f35b346107d357602061091a603561175f36613249565b361561176d81836028615651565b9061177781613cdd565b916117806137c8565b9360a083179180614239565b346107d357602061091a601760346117a336613249565b6117b6610b136108ed60e0840184613c23565b9060e061162d6137c8565b346107d357602061091a60346117d63661327d565b60e06117e182615524565b919092610e2a3615613cdd565b346107d357602061091a603461180336613215565b61014061181861133b6108ed83850185613c23565b92919390610ab06137c8565b346107d357602061091a60346118393661333c565b610120611818610d776108ed83850185613c23565b346107d357602061091a60356118393661333c565b602061187c610ae1611874366132b1565b939091614320565b9261188834853361437c565b61025836151791336141b4565b346107d357602061091a60346118aa3661333c565b6118be610be161094d610140840184613898565b90916101406118d1610120830135613c58565b916118da6137c8565b946027615e45565b346107d357602061091a60346118f7366132db565b61190081615542565b9091610140611913610120830135613c58565b91610f866137c8565b346107d35761192a36613408565b608081015f8061193a838561377f565b905f915b8083106119ac5750505061088a576108796034928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b90919260019060206119bf8685876138cd565b0135809601958610179301919061193e565b346107d357602061091a6017603461164e366133a0565b6101203660031901126107d3576119fd6131bd565b506024356001600160401b0381116107d357611a1d90369060040161346e565b611a256131d3565b50600860a43510156107d357600260c43510156107d35760e435916001600160a01b03831683036107d35761010435906001600160401b0382116107d3576112b493611aca611a7b611ad094369060040161330f565b959093611a89848383614984565b9592611ab660c09b9399929b361592611aa460848517613d1e565b611aae8d83614a8c565b949094613db8565b608084015260071b61022001921790613e72565b86614b38565b604051918291826135c0565b346107d357602061091a60176034611af33661327d565b611afc81615774565b9060e0610a506137c8565b346107d357602061091a601760346116073661327d565b346107d357602061091a60176034611b3536613539565b611b48610f1861094d60c0840184613898565b90361560c06113d560028317613cdd565b346107d357602061091a6035611b6e366133d4565b611b92610be16080361517839060e0910160c08101355f52013560205260405f2090565b9091610140611ba5610120830135613c58565b9161142a6137c8565b346107d357602061091a60176035610e813661333c565b346107d357602061091a60176035611b3536613539565b346107d357602061091a603461175f36613249565b346107d357602061091a60176035611c08366132db565b611c118161559c565b9091610140611c24610120830135613c58565b91611c326002361517613cdd565b93611c3b6137c8565b956152df565b346107d3576020611c63611c74611c573661356c565b919390610cbf856148dc565b8093611c6d6139d1565b339061487c565b610ae1613baa565b346107d357602061091a6035610efb3661327d565b346107d3575f3660031901126107d357323303611d67577f00000000000000000000000000000000000000000000000000000000000000008015611d5c575b611d4d575f8080807f0000000000000000000000000000000000000000000000000000000000000000600a5a04fa3d15611d48573d611d0e8161361a565b90611d1c60405192836135f9565b81525f60203d92013e5b15611d39575f805460ff19166001179055005b6370a4078f60e01b5f5260045ffd5b611d26565b630f45b98b60e41b5f5260045ffd5b5060ff5f5416611cd0565b63096650c560e21b5f5260045ffd5b346107d357602061091a60176035611d8d36613539565b611da0610a826108ed60a0840184613c23565b90361560a061167260018317613cdd565b346107d357602061091a60176035611699366133a0565b346107d357611dd63661349e565b60608101611de48183613898565b8060069492941b81810460401482151715611efe57611e0290614bad565b935f915f5b818110611e955750505061088a57611e4d81611e2d856020611e52975191012082615373565b611e476039611e3c8785613898565b6020860135916140ed565b90614012565b613898565b5f5b818110611e6657602060405160018152f35b80611e8f6034611e796001948688614192565b611e86602082018261377f565b9091359161527d565b01611e54565b611ea0818385614192565b5f90611eaf602082018261377f565b905f915b808310611ed957505050906040839260019460061b8b0190356020820152015201611e07565b9091976001906020611eec8b85876138cd565b01358096019586101798019190611eb3565b634e487b7160e01b5f52601160045260245ffd5b346107d35760203660031901126107d357600435611f4981339190604051926014526341d0e04b5f526034526038601c2091604052565b805415611f5f57905f61087f92553615906148f6565b5063e632dbad5f52336020526040526044601cfd5b346107d357602061091a6034610c2d366133d4565b346107d3576080611f9936613408565b611fed611fe460608301611fde84611fc6611fb4848361377f565b6040519060061b809282372082615373565b611e47611fd3858461377f565b60208501359161406f565b8361377f565b939092016137b4565b905f5b83811061200257602060405160018152f35b8061202361201360019387866138cd565b6020810135903586336035615c31565b5001611ff0565b346107d35760c03660031901126107d3576120436131bd565b61204b6131ff565b906044359160088310156107d3576064359160028310156107d357612087611c74926020956120786131e9565b95612082856148dc565b61434b565b80936120916139d1565b6084359261487c565b346107d357602061091a601760356120b136613505565b6101806120bd82615626565b929091936120cf610160820135613c58565b92611c3b6137c8565b346107d357602061091a60346120ed3661333c565b361560e061210060408317846028615651565b92610b8b61210f84868461532d565b93613cdd565b346107d357602061091a6017603561212c36613249565b61214061161b61094d610100840184613898565b90610100610b246137c8565b346107d357602061091a6034611b6e366133d4565b346107d357602061091a60356118aa3661333c565b60603660031901126107d3576004356001600160401b0381116107d3576121a190369060040161346e565b602435906001600160401b0382116107d3576020926121d46121ca61091a94369060040161346e565b92909333916138dd565b60443591614159565b346107d35760203660031901126107d357608060043561224761220b60016001605c1b038360a01c16614862565b604080516001600160a01b038086168252909216602083015290929061223a90840160fc83901c6007166135a6565b606083019060ff1c6135b3565bf35b346107d357602061091a601760346108d8366133d4565b346107d35761226e3661356c565b9167edcaa89a822939406034526028526014525f52602060545f20545f603452604051908152f35b346107d357602061091a60176034611d8d36613539565b346107d357602061091a6017603461212c36613249565b60403660031901126107d3576122d86131bd565b602435908115158092036107d35767edcaa89a82293940602052336014525f52806034600c2055602052600c5160601c337fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267602080a3602060405160018152f35b346107d357602061091a601760356113b13661343b565b346107d3576101803660031901126107d35761236a6131bd565b6123726131d3565b9061237b6131e9565b5060c43560088110156107d357600260e43510156107d3576101043590610124359060038210156107d357610144356001600160401b0381116107d3576123c690369060040161330f565b94909261016435956001600160401b0387116107d35787966123ec90369060040161330f565b9890916123f885613d53565b839d93969297919436159b61240e938d936143c6565b9990604051905f52866020528b60405260605f20610100860152604052601f1961016085015161017f0116906101401761244794613e72565b61245093613eca565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff169161247d936141b4565b612485613baa565b604051908152602090f35b60803660031901126107d3576124a46131bd565b60243560088110156107d3576044359060028210156107d357606435916001600160a01b03831683036107d357602093610ae1926124e1926142b1565b9182349161437c565b346107d357602061091a601760356117a336613249565b346107d35760203660031901126107d357604051634e41a1fb60e01b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575060405191829182613193565b346107d357602061091a601760346120b136613505565b346107d357602061091a60176034611c08366132db565b346107d357602061091a60176035611af33661327d565b346107d357602061091a60346125cf3661333c565b6125d881615774565b9060e06125e36137c8565b9336159280614239565b346107d3576040612627612600366132b1565b91605892601c926040519260148401526368a30dd083526034830152605482015201205490565b81519042811182526020820152f35b61263f366132b1565b909167edcaa89a8229394060345233602852601452815f528060545f20555f5260205160601c337fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a760205fa45f603452602060405160018152f35b346107d357602061091a6035610d0b366134d1565b346107d357602061091a603461138e366132db565b346107d357602061091a6034610f563661333c565b346107d35760603660031901126107d35761087f604435602435600435336141b4565b346107d35760203660031901126107d357602060405160128152f35b346107d357602061091a60176035610a3b3661333c565b346107d35761273d3661349e565b6060810161274b8183613898565b8060069492941b81810460401482151715611efe5761276990614bad565b935f915f5b8181106127c15750505061088a57611e4d81611e2d856020612794975191012082615373565b5f5b8181106127a857602060405160018152f35b806127bb6035611e796001948688614192565b01612796565b6127cc818385614192565b5f906127db602082018261377f565b905f915b80831061280557505050906040839260019460061b8b019035602082015201520161276e565b90919760019060206128188b85876138cd565b013580960195861017980191906127df565b346107d3575f3660031901126107d3576020610ae16137c8565b346107d357602061091a60356118f7366132db565b346107d357602061091a60346113fa36613215565b346107d35760403660031901126107d3576004356001600160401b0381116107d35761091a6128a3602092369060040161346e565b60243591614159565b346107d357602061091a60356125cf3661333c565b346107d35760603660031901126107d3576004356128dd6131ff565b60408051336014526341d0e04b5f5260348490526038601c209152544281119015176129145761091a906020926044359133613697565b50639287bcb05f526020526024601cfd5b346107d357602061091a601760346112cf366132db565b346107d357602061091a603561099f3661327d565b346107d35760403660031901126107d35761296a6131bd565b6024356001600160401b0381116107d35761298990369060040161330f565b6001600160a01b03909216916055811491338414843b1515179183612a35575b50501715612a25576129ba81613ef9565b806744036fc77deaed23605c1b1791825480612a1157508060209355815f5282527fc54dcaa67a8fd7b4a9aa6fd57351934c792613d5ec1acbd65274270e6de8f7e460405fa16001600160601b0360405191168152f35b8263c18b0e975f526020526040526044601cfd5b634e7f492b5f526020526024601cfd5b809192935015612a6d57808260405137604051206001600160a01b031683146001600160f81b031991358216909114169083806129a9565b634e487b7160e01b5f52603260045260245ffd5b346107d357602061091a612a943661343b565b6040515f516020615fa55f395f51905f5281523384820152336040820152612ae48260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b6080612af260a084016137b4565b92013591336035615c31565b346107d357602061091a601760356116d736613249565b346107d357602061091a6035612b2a3661333c565b610140610d7d61133b61094d83850185613898565b346107d357602061091a6035612b5436613249565b612b686109b361094d610100840184613898565b90612b7660e0820135613c58565b610100612b866002361517613cdd565b926118da6137c8565b346107d3576080612b9f36613408565b612bba611fe460608301611fde84611fc6611fb4848361377f565b905f5b838110612bcf57602060405160018152f35b80612bf0612be060019387866138cd565b6020810135903586336034615c31565b5001612bbd565b346107d35760203660031901126107d357600435545f5260205ff35b346107d357602061091a6034611314366133d4565b346107d357602061091a60356120ed3661333c565b346107d357602061091a6035610fa336613215565b346107d357602061091a60176034612c6936613215565b612c7d610c536108ed610140840184613c23565b90612c8a3615838361532d565b90610140612c9c610120830135613c58565b91612caa6002361517613cdd565b936109146137c8565b346107d357602061091a603561180336613215565b346107d35760403660031901126107d357612d06612ce46131bd565b602435909190604051926014526341d0e04b5f526034526038601c2091604052565b546040518115154283116002030291600383101561158c5760409282526020820152f35b346107d357602061091a6035612d3f366132db565b610120611341604036151783615bc9565b346107d357602061091a6035610e48366133a0565b346107d357602061091a6034610b4336613215565b346107d35760203660031901126107d3576004356001600160401b0381116107d357612daa903690600401613370565b90612dbc612db733613ef9565b613fa8565b809160051b01905b818110612dd657602060405160018152f35b602090612de4338235613fcf565b01612dc4565b346107d357602061091a6034612b2a3661333c565b346107d3576101403660031901126107d357612e196131bd565b612e216131d3565b50612e2a6131e9565b50600860c43510156107d357600260e43510156107d35761010435906001600160a01b03821682036107d357610124356001600160401b0381116107d357602092612ead92612e80611c7493369060040161330f565b929091612ec3361594612e9560a48717613d1e565b94612e9f84613d53565b9b839c9a939991929a613db8565b6101008201526101406102008317921790613e72565b613eca565b346107d357602061091a6034612edd3661327d565b612ef16109536108ed610100840184613c23565b90610100612f013615848461532d565b91610aa76002361517613cdd565b346107d357602061091a6035612edd3661327d565b346107d357602061091a6034612d3f366132db565b346107d357602061091a603561093936613249565b612f57366132b1565b612f6f60016001605c1b038360a09594951c16614862565b9160018060a01b038116925f60208160a460405194828052601c8601948591631a808f91885233868901523360408901528a60608901528b60808901528960a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a8229394060205233601452835f5260405f208054808411610772578390039055601452825f5260405f208054908282019182106107655755335f52602052335f516020615f655f395f51905f5260405fa4602060405160018152f35b346107d357602061091a6035610d623661327d565b346107d3575f3660031901126107d357602080526b0b54686520436f6d70616374604b5260606020f35b346107d357602061091a60356117d63661327d565b346107d357602061091a6034612b5436613249565b346107d357602061091a60176035612c6936613215565b346107d35760203660031901126107d3576004356001600160e01b0319811681036107d35760209060e01c604051906301ffc9a7630f632fb3821491141715158152f35b346107d35760403660031901126107d3576131046131bd565b67edcaa89a822939406020526014526024355f52602060405f2054604051908152f35b346107d35760203660031901126107d357622b600360e21b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f5750604051918291825b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036107d357565b608435906001600160a01b03821682036107d357565b60a435906001600160a01b03821682036107d357565b602435906001600160a01b03821682036107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101209082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101409082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024359060443590565b60206003198201126107d357600435906001600160401b0382116107d3576101a09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d357602083818601950101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101609082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460051b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101c09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760a09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760c09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460061b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d35760809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576102009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101e09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760e09082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024356001600160a01b03811681036107d3579060443590565b90600882101561158c5752565b90600282101561158c5752565b60206040818301928281528451809452019201905f5b8181106135e35750505090565b82518452602093840193909201916001016135d6565b90601f801991011681019081106001600160401b038211176115a057604052565b6001600160401b0381116115a057601f01601f191660200190565b6020818303126107d3578051906001600160401b0382116107d3570181601f820112156107d3578051906136688261361a565b9261367660405194856135f9565b828452602083830101116107d357815f9260208093018386015e8301015290565b909291926136a36139d1565b6001600160a01b0384168061372457505f9081808538935af115613717575b67edcaa89a8229394060205280601452825f5260405f209182549283821161077257815f9403905533835260205260018060a01b03165f516020615f655f395f51905f52604083a4613712613baa565b600190565b63b12d13eb5f526004601cfd5b9091926137313083613b85565b9260145260345263a9059cbb60601b5f5260205f6044601082855af13d1560015f51141716156137725761376a905f6034523090613b85565b9003906136c2565b6390b8ec185f526004601cfd5b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160061b360383136107d357565b356001600160a01b03811681036107d35790565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046186138135790565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208201527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60408201524660608201523060808201522090565b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160051b360383136107d357565b9190811015612a6d5760061b0190565b91906138e76139d1565b82359060018060a01b03821615916020850135341415831634158414178215176139c4578060016001605c1b03849260a01c1661392381613fa8565b936139b2575b505b81811061394157505050505061393f613baa565b565b61394c8183876138cd565b80359060016001605c1b038260a01c166001600160601b0386168103613991575b506001929161398b916020013590876001600160a01b03821661487c565b0161392b565b61398b919550916020836139a760019695613fa8565b96925050919261396d565b6139be9034908661437c565b5f613929565b63ca0fc08e5f526004601cfd5b7f000000000000000000000000000000000000000000000000000000000000000080600414613b595780600314613b475780600914613b105780600a14613ad357600814613a2d57634e487b7160e01b5f52605160045260245ffd5b613a43361568929eee149b4bd212686028615651565b805b613ac357507f000000000000000000000000000000000000000000000000000000000000000080600214613a9c57600114613a8e57634e487b7160e01b5f52605160045260245ffd5b3368929eee149b4bd212685d565b505f5460ff1615613ab5573368929eee149b4bd212685d565b3368929eee149b4bd2126855565b63f57c448b5f526020526024601cfd5b5060e0604036151768929eee149b4bd212680160c08101355f520135602052613b0a60405f2068929eee149b4bd212686031615651565b80613a45565b5068929eee149b4bd21328355f90815268929eee149b4bd213483560205260409020613b0a9068929eee149b4bd21268602f615651565b5068929eee149b4bd212685c80613a45565b505f5460ff1615613b755768929eee149b4bd212685c80613a45565b68929eee149b4bd2126854613b0a565b602460106020939284936014526370a0823160601b5f525afa601f3d11166020510290565b7f000000000000000000000000000000000000000000000000000000000000000080600614613bfc57600514613bee57634e487b7160e01b5f52605160045260245ffd5b5f68929eee149b4bd212685d565b505f5460ff1615613c15575f68929eee149b4bd212685d565b5f68929eee149b4bd2126855565b903590601e19813603018212156107d357018035906001600160401b0382116107d3576020019160608202360383136107d357565b60a090604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208301527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d604083015260608201523060808201522090565b90604051915f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f5260405260051b5191604052565b60a0906080604051917fe055493563385cc588fffacbffe2dab023fef807baa449530431169b0eeb5b69835260208301372090565b90613d5c6139d1565b613d7c613d7460a43560c43560e435612082876148dc565b923090613b85565b906040519063137c29fe82526080600460208401373060a083015260243560c083015260843560e0830152610140610120830152610160820190565b60807f63697069656e7429546f6b656e5065726d697373696f6e73286164647265737391609681527f436f6d706163744465706f736974207769746e65737329436f6d70616374446560208201527f706f736974286164647265737320616c6c6f6361746f722c75696e743820726560408201527f736574506572696f642c75696e74382073636f70652c6164647265737320726560608201527520746f6b656e2c75696e7432353620616d6f756e742960968201520152565b9093805f9493601c92869582613e86614eaf565b9987015260408387018360208201520137016024019101826e22d473030f116ddee9f6b43ac78ba35af11615613eb857565b3d6107cb57637f28c61e5f526004601cfd5b613ed8909291923090613b85565b9283811015613eec5761393f93039161437c565b63426d8dcf5f526004601cfd5b6affffffffffffffffffffff6a7fffffffffffffffffffff8260491c16818360481c16178060021c178060041c178060081c178060101c178060201c176755555555555555558160011c169003673333333333333333808260021c169116018060041c01670f0f0f0f0f0f0f0f660f0f0f0f0f0f0f8260081c169116018060101c01911690690fedcba9876543210000600f60581b91607f600319918060201c0116604803161c60581b161790565b6744036fc77deaed23605c1b81175415613fbf5750565b63cf90c3a85f526020526024601cfd5b604051916020526303f37b1a600c5280604052603760282090600182549160ff161b9080821661400157179055604052565b63dbc205b160601b600c526044601cfd5b916140206040820135614f51565b803590601e19813603018212156107d35701918235926001600160401b0384116107d3576020019280360384136107d35761393f93614069916140616137c8565b918585614f6c565b336150bc565b90929183159161408185826038615aa0565b9161409561408e84614862565b8092613fcf565b946001600160601b0360019316905b8084106140c257505050506140b557565b633a03d3bb5f526004601cfd5b90919293600190836001600160601b036140df8886896038615b0a565b1614151794019291906140a4565b919093928415926140ff868284615aa0565b9261410c61408e85614862565b956001600160601b0360019416915b81851061412d5750505050506140b557565b9091929394600190846001600160601b0361414a8987878b615b0a565b1614151795019392919061411b565b91905f5b81811061416d5750505050600190565b8061418c8461417f60019486896138cd565b60208101359035336141b4565b0161415d565b9190811015612a6d5760051b81013590603e19813603018212156107d3570190565b91929092604051908360148301526368a30dd082526034820194855260548201526058601c8201208242019262278d00811182548510176142295750829055607401526001600160a01b0316907ff78a2f33ff80ef4391f7449c748dc2d577a62cd645108f4f4069f4a7e0635b6a90606090a2565b631f9a96f45f526020526024601cfd5b939195909497969286019586359560208801359760608101359861425d89876152bf565b89811061429c575091614299999a93916142939593604060018060a01b03910135169760016001605c1b038a60a01c1690614c4a565b90615c31565b90565b8990633078b2f65f526020526040526044601cfd5b90916142bc81613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b171790565b6142eb82613ef9565b6744036fc77deaed23605c1b81175490921861430f57600360fc1b9160a01b171790565b5063cf90c3a85f526020526024601cfd5b61432981613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b600360fc1b1790565b9261435581613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b17171790565b909167edcaa89a8229394060205281601452825f5260405f208054908282019182106107655755335f5260205260018060a01b03165f5f516020615f655f395f51905f52604082a4565b939194925f9160208601925f935f9515908161481f575b85156147ce575b505f92801561473a575b5f1981011561469b575b83156145e1575b8415614460575050508184959697823701946e75696e7432353620616d6f756e7429600e8701527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19870152600e81870301905280850390209303902090565b91985096935083919450600e925060051b936e75696e7432353620616d6f756e7429838201527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19820152030190526040519261456d575b83156144f9575b5f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f526040525191604052565b7f45012d42fad8c9e937cff5a2d750ee18713dd45aadcd718660d5523056618d995f527fc2e16a823b8cdddfdf889991d7a461f0a19faf1f8e608f1c164495a52151cc3e6020527fd2f6ad391328936f118250f231e63c7e639f9756a9ebf972d81763870a772d87604052805193506144c0565b7f2bf981c42c7f423b06fa49ba996d2930887e2f1f53d9a26b8c7423ac1cf83e615f527fd14445d78213a5acddfa89171b0199de521c3b36738b835264cae18f5a53dbf36020527f329b3c527a3c74b8cabc51c304669d1866b87352cafdf440ef2becd6dc261d1e604052805193506144b9565b7f4d756c7469636861696e436f6d7061637420636f6d70616374294d756c74696387527f6861696e436f6d7061637428616464726573732073706f6e736f722c75696e7460208801527f323536206e6f6e63652c75696e7432353620657870697265732c5365676d656e60408801526f5d20696473416e64416d6f756e74732c60708801527f697465722c75696e7432353620636861696e49642c75696e743235365b325d5b6060880152601a87019660900193506143ff565b7f4261746368436f6d7061637420636f6d70616374294261746368436f6d70616387527f74286164647265737320617262697465722c616464726573732073706f6e736f60208801527a75696e743235365b325d5b5d20696473416e64416d6f756e74732c605b8801527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60408801526015870196607b0193506143f8565b7f436f6d7061637420636f6d7061637429436f6d7061637428616464726573732087527f617262697465722c616464726573732073706f6e736f722c75696e743235362060208801526f2c75696e7432353620616d6f756e742c60508801527f6e6f6e63652c75696e7432353620657870697265732c75696e743235362069646040880152601087019660700193506143ee565b7569766174696f6e2875696e743235365b5d206964732c60368a01527f426174636841637469766174696f6e207769746e65737329426174636841637490526056880195506038880194505f6143e4565b686e743235362069642c60298a01527f41637469766174696f6e207769746e6573732941637469766174696f6e28756981526049890196506033890195506143dd565b6744036fc77deaed23605c1b81175491908215613fbf5750565b91906148883084613b85565b9260405194606052306040523360601b602c526323b872dd60601b600c5260205f6064601c82855af13d1560015f51141716156148cf5761393f945f606052604052613eca565b637939f4245f526004601cfd5b8060601b156148e85790565b63961c9a4f6040526024605cfd5b908015155f52602052337fe27f5e0382cf5347965fc81d5c81cd141897fe9ce402d22c496b7c2ddc84e5fd60405fa3565b6001600160401b0381116115a05760051b60200190565b9061494882614927565b61495560405191826135f9565b8281528092614966601f1991614927565b0190602036910137565b8051821015612a6d5760209160051b010190565b919261498e6139d1565b6001600160a01b03833516159260208101353490811415851690158514178315176139c45783926149c660843560a43560c4356142b1565b956149d08261493e565b94614a6d575b50848103956149e48761493e565b925f925f5b898110614a0857505050506149fb5790565b630f2f1e515f526004601cfd5b80614a598a600193979596970194614a29614a2487878a6138cd565b6137b4565b90848060a01b0382166001600160601b0360a01b8a1617988911151797614a5181978d614970565b523090613b85565b614a638289614970565b52019291926149e9565b614a799087349161437c565b835115612a6d578560208501525f6149d6565b91604051918360061b8460071b9160061b6024350163fe8ec1a7855260c06020860152816101400160408601526004356060860152826101600160a0860152606060e0860152604435610100860152606435610120860152856101408601528160248201610160870137818501956101608701525f5b828110614b185750939450508301610180019150565b806040918801306101808201526101a06044838601013591015201614b02565b83515f96909594939290875b878110614b5f575050505050505050613eec5761393f613baa565b80614ba783600193019a614b818c614b7c614a2430928c8b6138cd565b613b85565b90614b9d614b8f858c614970565b519183831015179d89614970565b519103908a61437c565b01614b44565b90614bb78261361a565b614bc460405191826135f9565b8281528092614966601f199161361a565b9015612a6d5790565b9190811015612a6d576060020190565b8160061b82810460401483151715611efe57614c0990614bad565b915f5b818110614c20575050506020815191012090565b80614c2e6001928486614bde565b604060208360061b880192803582850152013591015201614c0c565b60408401356001600160a01b031697969095939486948994919387358801936020890135890192909183359190614c8460808c0135614f51565b614c8d90614862565b6060819b013590614c9d91613fcf565b86811502019181151587841415179081159b614cd49961393f9d614cf0575b505050614cda575b5050508582359260200191614f6c565b846150bc565b614ce8926020018c89614f6c565b5f8080614cc4565b614d1b9350605892601c926040519260148401526368a30dd083526034830152605482015201205490565b4210155f898e614cbc565b98979380959196614d6b939894890198893581019860208a81019a359b013597614d63614d538d8d614bd5565b3560a01c60016001605c1b031690565b9d8e91615e45565b90614d768686614bd5565b95614d9f6020614d93878a35809b6040810135948591013561535c565b83151798868686615c31565b506001600160601b0360019916985b818110614dc7575050505050505061371291925061536d565b614dd2818389614bde565b80359889918860408201359b8c926020013592614dee9361535c565b8c8360a01c60016001605c1b03161415171798614e0d91878787615c31565b50600101614dae565b9015612a6d57803590605e19813603018212156107d3570190565b9190811015612a6d5760051b81013590605e19813603018212156107d3570190565b8160061b82810460401483151715611efe57614e6e90614bad565b915f5b818110614e85575050506020815191012090565b80614e936001928486614e31565b604060208360061b880192803582850152013591015201614e71565b7f0000000000000000000000000000000000000000000000000000000000000000613712576e22d473030f116ddee9f6b43ac78ba33b151590565b60a092916040606092815194848601525f516020615f455f395f51905f5285528560208601933385524684880152608087208752820101358101803560051b80916020018537602001852060808601525f516020615f855f395f51905f5285520190372090565b42811115614f5c5750565b63f80dbaea5f526020526024601cfd5b604080516119015f9081526020979097529181526042601e20918152919390929091606483019083146001600160a01b0386166041851481614fc7575b5050505050505033141715614fba57565b638baa579f5f526004601cfd5b909192939495975060405192885f5261506c575b61502d575b60209495965f60605282604052630b135d3f60e11b83526004830152602482019586946040865281604485015260648401375afa9051630b135d3f60e11b1416905f808080808080614fa9565b60408401355f1a60205260408481376020600160805f825afa5181183d1517614fe0575094505050506001915f6060526040525f808080808080614fa9565b60208581013560ff81901c601b01825286356040526001600160ff1b0316606052600160805f825afa5182183d1517614fdb57505094505050506001915f6060526040525f808080808080614fa9565b5f91825233926001600160a01b03908116929116907f770c32a2314b700d6239ee35ba23a9690f2fceb93a55d8c753e953059b3b18d490602090a4565b6040519260608401525f516020615f455f395f51905f5283526020830191338352466040850152608084209082019060a082013583019060c0823560051b93013560051b5f905f5b85811061517857505050505091604060609260a09594602001852060808601525f516020615f855f395f51905f5285520190372090565b8089016020848301870101358152828214615197575b50602001615141565b602090810185905292508261518e565b949195849197966151d4948101358101988960200199359a6151cc614d538d8d614e16565b988991615e45565b8515956001600160601b035f9416935b8181106151fb57505050505050506137129061536d565b806152498761520d600194868c614e31565b80359b8c8a60016001605c1b036152248c846153b0565b9260a01c16141517179b87602061523e604085018561377f565b9190940135936153c6565b50016151e4565b614299906152756040361517829060e0910160c08101355f52013560205260405f2090565b906031615651565b9291905f5b818110615290575050505050565b806152b86152a160019385896138cd565b8560206152ad836137b4565b920135913389615c31565b5001615282565b8160ff1c15901517156152cf5750565b63a06356f55f526020526024601cfd5b95849061530e9399949692968a01998a3597889660408d013583019a60016001605c1b038960a01c1691615e45565b9561531f60209261429998946152bf565b0135928035906020016153c6565b60a0916040519382019160c0830135019081359384930135855260208501526020016040840137604001902090565b9261536791926153b0565b91101790565b6140b557565b60c09160408051925f516020615fc55f395f51905f5284523360208501523382850152602081013560608501520135608083015260a08201522090565b60ff1c600281101561158c576001149015151690565b91949290925f958415945f5b81811061540157505050505050828210176153ee575050600190565b633078b2f65f526020526040526044601cfd5b8061543460209a988761542d61541a600196888d6138cd565b9d8e0135928c84019c8d10179b9d6137b4565b8789615c31565b50016153d2565b906040519160c08101350191823580937f4d756c7469636861696e436f6d7061637428616464726573732073706f6e736f83527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60208401527f5365676d656e745b5d207365676d656e7473295365676d656e7428616464726560408401527535365b325d5b5d20696473416e64416d6f756e74732c60768401527f737320617262697465722c75696e7432353620636861696e49642c75696e74326060840152602001609683013782604301605382012092609601902090565b614299903615906028615651565b906142996155386040361517846028615651565b928336159161532d565b61556d906155676080361517829060e0910160c08101355f52013560205260405f2090565b90615b8a565b9091565b61556d906155966040361517829060e0910160c08101355f52013560205260405f2090565b90615b66565b906142996155386155c46080361517859060e0910160c08101355f52013560205260405f2090565b846032615651565b90614299615538610b6b6040361517859060e0910160c08101355f52013560205260405f2090565b61561f906156196080361517829060e0910160c08101355f52013560205260405f2090565b90615bd9565b9192909190565b61561f9061564b60c0361517829060e0910160c08101355f52013560205260405f2090565b90615c0a565b91909180603214615764578060311461575757806030146157475780602b146157165780602f1461570957806028146156c857806033146156b057602a146156a757634e487b7160e01b5f52605160045260245ffd5b61429991615373565b5060e0910160c08101355f52013560205260405f2090565b5060c060e092606060408051948301925f516020615fa55f395f51905f52865233602087015201604085013760a081013560a0840152013560c08201522090565b5061429991361590614eea565b509060c091606060408051935f516020615fc55f395f51905f52855233602086015201604084013760a08201522090565b5061429991604036151790614eea565b50614299913615906150f9565b50614299916040361517906150f9565b9061010060405160a060c085013585019460608635967f436f6d70616374286164647265737320617262697465722c6164647265737320855260208501977f73706f6e736f722c75696e74323536206e6f6e63652c75696e7432353620657889528060408701927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c845260200184880137820185209788865233905260408301903760e0810135828401528381013560c0840152013560e0820152209190565b60e09092919260a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b92919280602c146159df5760291461591d57634e487b7160e01b5f52605160045260245ffd5b6101009060a0604051918360c082013582019660608835987f436f6d70616374286164647265737320617262697465722c6164647265737320875260208701997f73706f6e736f722c75696e74323536206e6f6e63652c75696e743235362065788b528060408901927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c8452602001848a013782018720998a8852339052604085019037820160e081013584860152013560c0840152013560e0820152209190565b5060e09060a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b91909180603814615af45780603914615ad857600714615ace57634e487b7160e01b5f52605160045260245ffd5b614299915f615651565b505f615aec9160016001605c1b0393614192565b3560a01c1690565b5015612a6d573560a01c60016001605c1b031690565b80603814615b525780603914615b3e57600714615b3557634e487b7160e01b5f52605160045260245ffd5b61429992615651565b5091615aec9160016001605c1b0393614192565b5091615aec9160016001605c1b03936138cd565b9190615b8690615b758461543b565b94908591604036151790602d615ce7565b9190565b9190615b8690615b998461543b565b94908591604036151790602e615ce7565b91615bba615b869284602c6158f7565b9290938460403615179161532d565b91615bba615b86928460296158f7565b91615b86604093615c0093615bed8261543b565b959091863615936080851786602d615ce7565b958691179161532d565b91615b86604093615c0093615c1e8261543b565b959091863615936080851786602e615ce7565b939291909380603514615cdd5780603414615c6a57603714615c6157634e487b7160e01b5f52605160045260245ffd5b614299936140ed565b5090929167edcaa89a8229394060205282601452835f5260405f20805480831183151761077257829003905581601452835f5260405f208054908282019182106107655755335f5260205260018060a01b03169060018060a01b03165f516020615f655f395f51905f5260405fa4600190565b5061429993613697565b9594939190929580602d14615dce57602e14615d1157634e487b7160e01b5f52605160045260245ffd5b6040519360608501528584525f516020615f455f395f51905f526020850196338852466040870152141580615dbf575b60051b60800184209083019060a082013584019060c0823560051b93013560051b5f905f5b858110615d9057505050505060609260a09596926040926020018620608087015285520190372090565b8089016020848301870101358152828214615daf575b50602001615d66565b6020908101859052925082615da6565b60a08401356080860152615d41565b5060609260a095969286604093845197878901528588525f516020615f455f395f51905f52602089019633885246878b0152141580615e37575b60051b60800188208852830101358201803560051b809160200186376020018620608087015285520190372090565b8285013560808a0152615e08565b969594939291909680602714615f315780602414615f1c5780602114615f075780602314615ef75780601f14615ee25780602614615ecf5780602214615ec45780602514615eb157601714615ea857634e487b7160e01b5f52605160045260245ffd5b61429996614c4a565b50906017959493929187614299986152df565b508661429997614239565b5090601795949392918761429998614d26565b50916142999691601796959493361593614d26565b5090614299969291361593614239565b509161429996916017969594933615936151a7565b509161429996916017969594933615936152df565b50906017959493929187614299986151a756fe295feb095767cc67d7e74695da0adaddede54d7b7194a8a5426fe8f0351e03371b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288595ca9a66b8bbf0d2316e90dfa3df465f0790b277b25393a3ef4d67e1f50865057cdca950b17b5efc016b74b912d8527dfba5e404a688cbc3dab16cb943287fec25a7fee8000a237929ef9be08f2933c4b4f320b00b38809f3c7aa104d5421049fa164736f6c634300081c000a60808060405234601557613e10908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8062ad800c146137045780634e41a1fb146136965763d637ca8d14610039575f80fd5b3461367e57366003190160a0811261367e5760801361367e576040516080810181811067ffffffffffffffff82111761368257604052600435906001600160a01b0382169081830361367e57828152602435906001600160a01b038216820361367e576020810191825260443592600884101561367e576040820193845260643594600286101561367e5760608381019687521b6bffffffffffffffffffffffff191661366c575061011c6040516100f2604082613793565b600c81526b2730ba34bb32902a37b5b2b760a11b6020820152925b516001600160a01b03166138a1565b9251600881101561365857610130906139c8565b935160028110156136585761014490613bba565b8151610158906001600160a01b03166137b5565b825190919061016f906001600160a01b0316613834565b925163313ce56760049081525f81905260209182919082906001600160a01b0316620186a0fa3d601f10166020510260ff166101aa90613c59565b916040519560208701977103d913730b6b2911d101121b7b6b830b1ba160751b89528786518060208901603284015e810161088b60f21b603282015203603201601d19810189526002016101fe9089613793565b6040519460208601947f226465736372697074696f6e223a2022436f6d7061637420000000000000000086528451806020870160388a015e87016038810161040560f31b90528951908160208c01603a83015e01603801600281017f29207265736f75726365206c6f636b207769746820616c6c6f6361746f72200090528451908160208701602183015e0160020193601f85017401030b732103932b9b2ba103832b934b7b21037b31605d1b905287845160208601968188603483015e01601f0161088b60f21b601582015203601501601d19810189526002016102e39089613793565b6102ee608435613c59565b604051906102fd604083613793565b6002825261125160f21b602083015261031591613c9e565b9960405190610325604083613793565b600d82526c546f6b656e204164647265737360981b602083015261034891613c9e565b9560405190610358604083613793565b600a825269546f6b656e204e616d6560b01b602083015261037891613c9e565b9860405190610388604083613793565b600c82526b151bdad95b8814de5b589bdb60a21b60208301526103aa91613c9e565b92604051906103ba604083613793565b600e82526d546f6b656e20446563696d616c7360901b60208301526103de91613c9e565b90604051906103ee604083613793565b600982526820b63637b1b0ba37b960b91b602083015261040d91613c9e565b916040519061041d604083613793565b600582526453636f706560d81b602083015261043891613c9e565b9260405195610448604088613793565b600c875260208701906b14995cd95d0814195c9a5bd960a21b825260405190610472602083613793565b5f8252604051978893602085019a6f3d913a3930b4ba2fba3cb832911d101160811b8c52518091603087015e8401906c111610113b30b63ab2911d101160991b6030830152518092603d83015e0160300161227d60f01b600d82015281516020819301600f83015e01600d01600281015f905203600201601f19810186526104fa9086613793565b604051998a97602089019c8d6e2261747472696275746573223a205b60881b905280516020819201602f8c015e8901602f8101915f83528051926020849201905e01602f015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e01905f8252518092825e01615d7d60f01b815203601d19810184526002016105a79084613793565b604051906105b76127c083613793565b61278e82527f22696d616765223a2022646174613a696d6167652f7376672b786d6c3b62617360208084019182527f6536342c5044393462577767646d567963326c76626a30694d5334774969426c6040808601919091527f626d4e765a476c755a7a306961584e764c5467344e546b744d53492f5067304b60608601527f504345744c5342485a57356c636d4630623349364945466b62324a6c49456c7360808601527f6248567a64484a68644739794944497a4c6a41754e53776755315a484945563460a08601527f63473979644342516248566e4c556c754943346755315a4849465a6c636e4e7060c08601527f62323436494459754d444167516e5670624751674d436b67494330745067304b60e08601527f50484e325a7942325a584a7a61573975505349784c6a4569494868746247357a6101008601527f50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441776101208601527f4c334e325a79496765473173626e4d3665477870626d7339496d6830644841366101408601527f4c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d73696101608601527f49486739496a427765434967655430694d4842344967304b43534232615756336101808601527f516d393450534977494441674e446b79494451354d69496763335235624755396101a08601527f496d567559574a735a53316959574e725a334a766457356b4f6d356c647941776101c08601527f494441674e446b79494451354d6a7369494868746244707a6347466a5a5430696101e08601527f63484a6c63325679646d55695067304b5047636761575139496b31686333526c6102008601527f636c394d59586c6c636c3879496a344e436a77765a7a344e436a786e49476c6b6102208601527f50534a4d59586c6c636c3878496a344e43676b385a7a344e43676b4a5047632b6102408601527f44516f4a43516b385a7a344e43676b4a43516b385a7a344e43676b4a43516b4a6102608601527f50484268644767676333523562475539496d5a7062477774636e56735a54706c6102808601527f646d56756232526b4f324e7361584174636e56735a54706c646d56756232526b6102a08601527f4f325a7062477736497a49784d6a45794d54736949475139496b307a4d6a45756102c08601527f4d7a41344c4449354e4334344e6a526a4e53347a4e5449734e53347a4d6a67736102e08601527f4f5334304e5459734d5449754d5451304c4445314c6a63354d6977344c6a677a6103008601527f4d67304b43516b4a43516b4a597a49754e4451344c5445754d6a63794c4455756103208601527f4d4459304c544d754d446b324c4463754d7a49744e5334794e545a6a4d7934336103408601527f4e4451744d7934314e7a59734f4334794e5459744f5334314d6a67734e4334326103608601527f4e5459744d5451754d6a686a4c5445794c6a51314e6930784d5334354e7a59746103808601527f4d7a59754d7a67304c544d794c6a45784d69307a4e6934304e5459744d7a49756103a08601527f4d54594e43676b4a43516b4a435777334c6a55324c5467754e545934597a41756103c08601527f4d4449304c4441754d4449304c4455754d5459734e4334314d7a59734d5445756103e08601527f4f444d794c4445774c6a67794e474d344c6a59344f4377344c6a49774f4377796104008601527f4d4334344e5459734d5459754d6977794e6934334d7a59734d6a51754e4441346104208601527f44516f4a43516b4a43516c6a4d79347a4d5449734e4334324d4467734d6934326104408601527f4d5459734d5449754e7a51304c4441754f4459304c4445334c6a5579597930786104608601527f4c6a4d354d69777a4c6a67304c5451754d5441304c4463754e4459304c5463756104808601527f4d7a49734d5441754e544d325979307a4c6a41794e4377794c6a6b774e4330326104a08601527f4c6a59734e5334304c546b754f5459734e7934784d6a674e43676b4a43516b4a6104c08601527f43574d744d79347a4f4451734d5334334e5449744e6934334f5449734d6934336104e08601527f4e6930354c6a59354e6977794c6a63344e474d744d4334774f5459734d4334306105008601527f4e5459744d4334794d5459734d4334354d7a59744d43347a4d7a59734d53347a6105208601527f4f544a6a4c5441754f5459734d7934794e43307a4c6a41794e4377324c6a41336105408601527f4d6930314c6a59784e6977344c6a514e43676b4a43516b4a43574d744d69347a6105608601527f4d6a67734d6934774f4467744e5334784d7a59734d7934344d5459744e7934356105808601527f4e4451734e5334774e6a526a4c544d754d4463794c4445754d7a51304c5459756105a08601527f4d6a67344c4449754d5445794c546b754d5459344c4449754d545a6a4c5441756105c08601527f4d446b324c4441754f544d324c5441754d6a67344c4445754f4451344c5441756105e08601527f4e5455794c4449754e7a594e43676b4a43516b4a43574d744d4334354e69777a6106008601527f4c6a49304c544d754d4449304c4459754d4463794c5455754e6a45324c4467756106208601527f4e474d744d69347a4d6a67734d6934774f4467744e5334784d7a59734d7934346106408601527f4d5459744e7934354e4451734e5334774e6a526a4c5451754d5449344c4445756106608601527f4f4449304c5467754e5451304c4449754e5459344c5445794c4445754f5459346106808601527f44516f4a43516b4a43516c6a4c5441754d5449734d5334794d6a51744d43347a6106a08601527f4e6977794c6a51744d4334324f5459734d7934314d4452324d4334774d6a526a6106c08601527f4c5445754d444d794c444d754d7a67304c544d734e6934794e4330314c6a55796106e08601527f4c4467754d7a5579597930794c6a55794c4449754d5445794c5455754e546b796107008601527f4c444d754e4467744f4334344e5459734d7934354d7a594e43676b4a43516b4a6107208601527f43574d744d7934354e6977774c6a55314d6930344c6a45324c5441754d6a51746107408601527f4d5445754f5441304c5449754e6a6734597930784c6a417a4d6930774c6a59336107608601527f4d6930794c6a45324c5445754e544d324c544d754e4467744d6934314f544a736107808601527f4c5441754e7a51304c5441754e546332624330784d5334784e6930344c6a59786107a08601527f4e6d77324c6a6b324c546b754d444930624445784c6a45324c4467754e6a45326107c08601527f44516f4a43516b4a43516c734d4334334e4451734d4334314e7a5a6a4d5334776107e08601527f4d7a49734d4334334f5449734d5334344f5459734d5334304f4467734d6934336108008601527f4f4451734d6934774e474d784c6a49354e6977774c6a67324e4377794c6a637a6108208601527f4e6977784c6a45794f4377304c6a41344c4441754f545a6a4d5334784d6a67746108408601527f4d4334784e6a67734d6934784f4451744d4334324e4467734d7934774e7a49746108608601527f4d53347a4f54494e43676b4a43516b4a43574d774c6a67324e4330774c6a63796108808601527f4c4445754e5459744d5334334d6a67734d5334354d6930794c6a6b774e4777776108a08601527f4c44426a4d4334304e5459744d5334314e6977774c6a4d344e43307a4c6a55776108c08601527f4e4330774c6a51314e6930314c6a6332597930354c6a55794f4330784d7934796108e08601527f4f5459744d6a6b754e4451344c5449354c6a51794e4330794f5334304f5459746109008601527f4d6a6b754e44637944516f4a43516b4a43516c734e7934794c5467754f4455326109208601527f597a41754d4451344c4441754d4449304c4467754d5445794c4459754e5463326109408601527f4c4445324c6a63314d6977784e5334774d6a526a4d69347a4d4451734d6934796109608601527f4e5459734e4334344e4467734e4334334e5449734e7934314d5449734e7934786109808601527f4d6a686a4d4334304f4377774c6a517a4d6977774c6a6b344e4377774c6a67326109a08601527f4e4377784c6a51324e4377784c6a49354e67304b43516b4a43516b4a624441736109c08601527f4d4777774c44426a4d4334774f5459734d4334774f5459734d4334794d5459736109e08601527f4d4334784f5449734d43347a4d5449734d4334794f44686a4d4334324d6a5173610a008601527f4d4334314e5449734d5334794e4467734d5334784d6a67734d5334344e7a4973610a208601527f4d5334334d44526a4d6934784d5449734d5334344f5459734e4334794c444d75610a408601527f4f4445324c4459754d7a67304c4455754e446b3244516f4a43516b4a43516c6a610a608601527f4d6934314f5449734d5334344e4467734d6934314e4451734d6934794d7a4973610a808601527f4e5334304f5459734d53347a4e44526a4d4334324d6a51744d4334784f544973610aa08601527f4d5334794f5459744d4334314d6a67734d6934774d5459744d4334344e474d78610ac08601527f4c6a63334e6930774c6a63324f43777a4c6a55774e4330784c6a67304f437730610ae08601527f4c6a67354e69307a4c6a41354e67304b43516b4a43516b4a597a45754d544934610b008601527f4c5445754d444d794c4445754f546b794c5449754d5445794c4449754d7a4130610b208601527f4c544d754d545934597a41754d6a51744d4334344e4377774c6a41334d693078610b408601527f4c6a67304f4330774c6a63304e4330794c6a6b334e6d4d744f5334314e7a5974610b608601527f4d544d754d7a49744d7a55754f5441304c544d324c6a51314e69307a4e533435610b808601527f4e7a59744d7a59754e544934624463754e5459744f4334314e6a674e43676b4a610ba08601527f43516b4a43574d774c6a41304f4377774c6a41304f4377784e4334324f446773610bc08601527f4d5449754f5445794c4449324c6a59784e6977794e5334304f44686a4d793479610be08601527f4e43777a4c6a45354d6977344c6a41324e4377334c6a55324c4445784c6a5530610c008601527f4e4377784d4334794e7a4a6a4d5334794e7a49734d4334354d5449734d693478610c208601527f4e6977794c6a41344f4377304c6a41344c4445754e44453244516f4a43516b4a610c408601527f43516c6a4d4334344d5459744d4334794f4467734d5334344e4467744d433432610c608601527f4f5459734d7930784c6a4a6a4d5334334e7a59744d4334334e6a67734d793431610c808601527f4d4451744d5334344e4467734e4334344f5459744d7934774f545a6a4d533478610ca08601527f4d6a67744d5334774d4467734d5334354f5449744d6934784d5449734d69347a610cc08601527f4d4451744d7934784e6a674e43676b4a43516b4a43574d774c6a49304c544175610ce08601527f4f4451734d4334774e7a49744d5334344e4467744d4334334e4451744d324d74610d008601527f4f5334314e7a59744d544d754d7a49744d7a55754f5441304c544d324c6a5131610d208601527f4e69307a4e5334354e7a59744d7a59754e544934624463754e5459744f433431610d408601527f4e6a674e43676b4a43516b4a43554d794f5449754d6a49734d6a59324c6a5934610d608601527f4f43777a4d446b754d4451304c4449344d5334304f5459734d7a49784c6a4d77610d808601527f4f4377794f5451754f445930656949765067304b43516b4a435477765a7a344e610da08601527f43676b4a43516b385a7a344e43676b4a43516b4a504842686447676763335235610dc08601527f62475539496d5a7062477774636e56735a54706c646d56756232526b4f324e73610de08601527f61584174636e56735a54706c646d56756232526b4f325a7062477736497a4978610e008601527f4d6a45794d54736949475139496b30304d6a6b754d4449734d6a55304c6a5179610e208601527f4e45777a4f544d754e6a6b794c4445794f5334334d6d77744d5334314d7a5974610e408601527f4e5334304e4468734c5455754e4451344c4445754e44673444516f4a43516b4a610e608601527f43516c734c5451314c6a49784e6977784d6934304d4468734c5455754e545934610e808601527f4c4445754e544d32624445754e5459734e5334314d6d77794c6a457a4e697733610ea08601527f4c6a557a4e6d4d744d6a45754e6a6b324c4445754f5459344c5451794c6a6730610ec08601527f4c5449754e6a59304c5459794c6a55324f4330324c6a6b3244516f4a43516b4a610ee08601527f43516c6a4c544d354c6a49324e4330344c6a55324f4330334d7934794f545974610f008601527f4d5455754f5467304c546b354c6a55334e6977794e5334344f545a734d437777610f208601527f597930334c6a45774e4377784d53347a4e5449744d5451754f4455324c444930610f408601527f4c6a67304c5445324c6a59314e69777a4e5334784e67304b43516b4a43516b4a610f608601527f597930794c6a51334d6977784e4334774e43777a4c6a41794e4377794d793477610f808601527f4e4377794e5334794e4467734d5467754f545a6a4d544d754e6a55324c544975610fa08601527f4e446b324c4449794c6a41344c546b754d7a59734d6a6b754f5449344c544531610fc08601527f4c6a63324f474d344c6a67344c5463754d6a51344c4445324c6a67334d693078610fe08601527f4d7934334e5449734d7a49754d7a63324c546b754d54513044516f4a43516b4a6110008601527f43516c6a4f4334784d7a59734d79347a4e6977344c6a67344c444d754e6a63796110208601527f4c4445314c6a49304c446b754d444930597a49784c6a45304e4377784e7934336110408601527f4d7a59734e7a45754e4377324d5334314d7a59734e7a49734e6a49754d4452736110608601527f4d437777624445774c6a51784e6977354c6a45324f4777794c6a6b774e4377796110808601527f4c6a55304e47777a4c6a517a4d6930784c6a63314d67304b43516b4a43516b4a6110a08601527f624449774c6a67344c5445774c6a59774f4777784c6a49334d6977304c6a51346110c08601527f4f4777314c6a51334d6930784c6a5532624451314c6a41354e6930784d6934336110e08601527f4e6a68734e5334304f5459744d5334314e6b77304d6a6b754d4449734d6a55306111008601527f4c6a51794e4577304d6a6b754d4449734d6a55304c6a51794e486f6754544d316111208601527f4d4334324d7a59734d6a59354c6a6b334e6d77744e7934314d5449744e6934326111408601527f44516f4a43516b4a43516c494d7a517a4c6a466a4c5441754d5451304c5441756111608601527f4d5449744e5445754e6a49304c5451314c5463794c6a45354d6930324d6934796111808601527f4d7a4a6a4c5463754e7a41304c5459754e4455324c5467754e5459344c5459756111a08601527f4f4445324c5445344c6a4d324c5445774c6a67334d6d77744d4334794e4330776111c08601527f4c6a41354e6d77744d4334314d6a67744d4334784f54494e43676b4a43516b4a6111e08601527f43574d744d6a45754d7a59744e6934304e5459744d7a45754e6a41344c4445756112008601527f4f5449744e4449754f5467304c4445784c6a49774f474d744e6934334e6a67736112208601527f4e5334314d6930784d7934354f5449734d5445754e4449304c5449304c6a63326112408601527f4f4377784d79347a4f544a6a4c5445774c6a41344c4445754f4451344c5445796112608601527f4c6a63324f4330784c6a417a4d6930784d5334354d6a67744e5334334f44514e6112808601527f43676b4a43516b4a43574d784c6a51344f4330344c6a51334d6977344c6a55306112a08601527f4e4330794d4334324e6a51734d5455754d4451344c544d784c6a41314e6e59746112c08601527f4d4334774d6a526a4d6a45754f5459744d7a55754d4459304c4455794c6a4d356112e08601527f4d6930794f4334304e4377344e7934304f4330794d4334334f44514e43676b4a6113008601527f43516b4a43574d794d5334784f5449734e4334324d4467734e444d754f5451306113208601527f4c446b754e5463324c4459344c6a45324c4459754f544d32624449334c6a49326113408601527f4e4377354e6934794e45777a4e5441754e6a4d324c4449324f5334354e7a5a4d6113608601527f4d7a55774c6a597a4e6977794e6a6b754f5463326569424e4d7a67794c6a4d326113808601527f4e4377794e6a45754e6a6b3254444d314d4334774e6977784e4463754e6a49316113a08601527f44516f4a43516b4a43516c734d7a51754d6930354c6a4d344e47777a4d6934796113c08601527f4d7a49734d54457a4c6a63344e45777a4f4449754d7a59304c4449324d5334326113e08601527f4f545a364969382b44516f4a43516b4a5043396e5067304b43516b4a4354786e6114008601527f5067304b43516b4a43516b38634746306143427a64486c735a5430695a6d6c736114208601527f624331796457786c4f6d56325a5735765a47513759327870634331796457786c6114408601527f4f6d56325a5735765a4751375a6d6c7362446f6a4d6a45794d5449784f7949676114608601527f5a443069545445314e5334774d544d734d5451314c6a4a734c5449754d6a67736114808601527f4f4334774d54594e43676b4a43516b4a43574d784d4334794d6a51734d4334796114a08601527f4d5459734d6a6b754e546b794c4441754d4451344c4451314c6a63794c544d756114c08601527f4e6d77794c6a51354e6977784d5334784d7a5a6a4c5445344c6a6b324c4451756114e08601527f4d6a6b324c5451784c6a67774f4377304c6a45774e4330314d5334304d4467736115008601527f4d7934334f544a734c5449314c6a51344f4377344f5334354e7a594e43676b4a6115208601527f43516b4a43574d354c6a59334d69777a4c6a41304f4377794e7934344f4467736115408601527f4d5441754f5459344c4449354c6a4d314d6977794e7934334d6d77744d5445756115608601527f4e4377774c6a6b344e474d744d4334344f4467744d5441754d5455794c54457a6115808601527f4c6a63794f4330784e5334314d4451744d6a45754d4463794c5445334c6a63326115a08601527f624330784c6a4d324f4377304c6a67794e4777744d5334314e6977314c6a51356115c08601527f4e67304b43516b4a43516b4a624330314c6a51334d6930784c6a5532624330306115e08601527f4e5334774f5459744d5449754e7a5934624330314c6a51354e6930784c6a55326116008601527f624445754e5459744e5334304e7a4a734d7a55754d7a49344c5445794e4334336116208601527f4d4452734d5334314d7a59744e5334304e4468734e5334304e4467734d5334306116408601527f4f4468734e4455754d6a45324c4445794c6a51774f4777314c6a55324f4377786116608601527f4c6a557a4e67304b43516b4a43516b4a544445314e5334774d544d734d5451316116808601527f4c6a4a4d4d5455314c6a41784d7977784e4455754d6b77784e5455754d44457a6116a08601527f4c4445304e5334796569424e4d5445774c6a45314e7977794e6a45754e6a6b326116c08601527f62444d794c6a4d774e4330784d5451754d4463796243307a4e4334794c546b756116e08601527f4d7a6730544463324c6a41794f5377794e5449754d444930544445784d4334786117008601527f4e5463734d6a59784c6a59354e6e6f694c7a344e43676b4a43516b384c32632b6117208601527f44516f4a43516b4a5047632b44516f4a43516b4a435478775958526f49484e306117408601527f6557786c50534a6d615778734c584a31624755365a585a6c626d396b5a44746a6117608601527f62476c774c584a31624755365a585a6c626d396b5a44746d615778734f694d796117808601527f4d5449784d6a45374969426b50534a4e4d6a51774c6a63324e43777a4d7a59756117a08601527f4e6a6379544449304d4334334e6a51734d7a4d324c6a59334d67304b43516b4a6117c08601527f43516b4a597930784c6a45774e4330774c6a67784e6930794c6a51304f4330786117e08601527f4c6a41344c544d754e7a51304c5441754f446734637930794c6a51354e6977776118008601527f4c6a67324e43307a4c6a4d784d6977784c6a6b304e4777744f4334344d7a49736118208601527f4d5445754f546332614441754d444930597930774c6a67784e6977784c6a45776118408601527f4e4330784c6a45774e4377794c6a51334d6930774c6a6b784d69777a4c6a63306118608601527f4e41304b43516b4a43516b4a597a41754d546b794c4445754d6a63794c4441756118808601527f4f4459304c4449754e4463794c4445754f5451304c444d754d6a6734624441756118a08601527f4d5459344c4441754d545130597a45754d4455324c4441754e7a49734d69347a6118c08601527f4e5449734d4334354e69777a4c6a55334e6977774c6a63324f474d784c6a49356118e08601527f4e6930774c6a45354d6977794c6a51354e6930774c6a67324e43777a4c6a4d786119008601527f4d6930784c6a6b304e41304b43516b4a43516b4a624467754f4455324c5445796119208601527f597a41754f4445324c5445754d5441304c4445754d4467744d6934304e4467736119408601527f4d4334344f4467744d7934334e4452444d6a51794c6a55784e69777a4d7a67756119608601527f4e6a67344c4449304d5334344e4451734d7a4d334c6a51344f4377794e4441756119808601527f4e7a59304c444d7a4e6934324e7a4a4d4d6a51774c6a63324e43777a4d7a59756119a08601527f4e6a637944516f4a43516b4a43516c4d4d6a51774c6a63324e43777a4d7a59756119c08601527f4e6a63796569424e4d5463324c6a51794d5377794e6a59754d6a686a4e4334796119e08601527f4d6a51734d7934784d6977324c6a67784e6977334c6a59344c4463754e544d32611a008601527f4c4445794c6a55774e474d774c6a4d784d6977794c6a41324e4377774c6a4934611a208601527f4f4377304c6a45334e6930774c6a41354e6977324c6a493044516f4a43516b4a611a408601527f43516c6a4d5334344f5459744d4334354e69777a4c6a6b7a4e6930784c6a5977611a608601527f4f4377324c6a41794e4330784c6a6b79597a55754d4445324c5441754e7a5130611a808601527f4c4445774c6a49354e6977774c6a4d344e4377784e4334324f4467734d793432611aa08601527f4d6a52324d4334774d6a526a4e4334304d5459734d7934794e4377334c6a4134611ac08601527f4c4463754f5459344c4463754f4449304c4445794c6a6b344e41304b43516b4a611ae08601527f43516b4a597a41754d7a45794c4445754f546b794c4441754d6a67344c445175611b008601527f4d444d794c5441754d4449304c4459754d445134597a41754e6930774c6a4530611b208601527f4e4377784c6a45334e6930774c6a49324e4377784c6a63334e6930774c6a4d32611b408601527f597a51754e544d324c5441754e6a63794c446b754d7a4d324c4441754d7a5973611b608601527f4d544d754d6a6b324c444d754d6a6734624441754d6a67344c4441754d6a514e611b808601527f43676b4a43516b4a43574d7a4c6a67784e6977794c6a6b794f4377324c6a4530611ba08601527f4e4377334c6a45794f4377324c6a67784e6977784d5334314d6d4d774c6a4978611bc08601527f4e6977784c6a4d324f4377774c6a49324e4377794c6a63324c4441754d545130611be08601527f4c4451754d545579597a41754d6a45324c5441754d4451344c4441754e444134611c008601527f4c5441754d4463794c4441754e6a49304c5441754d446b3244516f4a43516b4a611c208601527f43516c6a4e4334784d6a67744d4334324d6a51734f4334314e4451734d43347a611c408601527f4d7a59734d5449754d546b794c444d754d444930624441734d474d7a4c6a5933611c608601527f4d6977794c6a63784d6977314c6a67344c4459754e6a49304c4459754e544130611c808601527f4c4445774c6a63334e6d4d774c6a59794e4377304c6a45794f4330774c6a4d7a611ca08601527f4e6977344c6a55304e43307a4c6a41304f4377784d6934784f54494e43676b4a611cc08601527f43516b4a435777744f4334344e5459734d544a6a4c5449754e7a45794c444d75611ce08601527f4e6a63794c5459754e6a49304c4455754f4467744d5441754e7a63324c445975611d008601527f4e544130597930304c6a45794f4377774c6a59794e4330344c6a55794c544175611d208601527f4d7a4d324c5445794c6a45354d69307a4c6a41794e4859774c6a41794e41304b611d408601527f43516b4a43516b4a5979307a4c6a59304f4330794c6a59344f4330314c6a6734611d608601527f4c5459754e6a49304c5459754e5441304c5445774c6a686a4c5441754d446379611d808601527f4c5441754e4467744d4334784d6930774c6a6b324c5441754d5451304c544575611da08601527f4e44526a4c5445754d4441344c4441754d7a4d324c5449754d4451734d433432611dc08601527f4c544d754d4463794c4441754e7a513044516f4a43516b4a43516c6a4c545175611de08601527f4e5445794c4441754e6a63794c546b754d7a45794c5441754d7a59744d544d75611e008601527f4d6a6b324c544d754d7a4579624441734d474d744d7934354f4451744d693435611e208601527f4e5449744e6934304d4467744e7934794d6a51744e7934774f4330784d533433611e408601527f4d7a5a6a4c5441754d5451304c5441754f5445794c5441754d6a45324c544575611e608601527f4f4449304c5441754d546b794c5449754e7a594e43676b4a43516b4a43574d74611e808601527f4d5334314d5449734d4334324d6a51744d7934774e7a49734d5334774f433030611ea08601527f4c6a59344c4445754d7a4a6a4c5455754d4445324c4441754e7a51304c544577611ec08601527f4c6a49354e6930774c6a4d344e4330784e4334324f4467744d7934324d6a5273611ee08601527f4d437777597930304c6a4d354d69307a4c6a49304c5463754d4467744e793435611f008601527f4f5449744e7934344d6a51744d544d754d44413444516f4a43516b4a43516c6a611f208601527f4c5441754d7a67304c5449754e4463794c5441754d6a67344c5455754d444532611f408601527f4c4441754d7a45794c5463754e446734597930784c6a55344e4377774c6a6379611f608601527f4c544d754d6a59304c4445754d6930304c6a6b324f4377784c6a51324e474d74611f808601527f4e4334344d6a51734d4334334d6930354c6a6b784d6930774c6a4d344e433078611fa08601527f4e4334784d7a59744d7934304f41304b43516b4a43516b4a597930304c6a4979611fc08601527f4e43307a4c6a45794c5459754f4445324c5463754e6a67744e7934314d7a5974611fe08601527f4d5449754e544130637a41754d7a67304c546b754f5445794c444d754e4467746120008601527f4d5451754d544d32614441754d444930624445774c6a6b354d6930784e4334356120208601527f4d44526a4d7934784d6930304c6a49304f4377334c6a59344c5459754f4445326120408601527f4c4445794c6a51344c5463754e544d3244516f4a43516b4a43516c444d5459336120608601527f4c6a41344e5377794e6a49754d4455324c4445334d6934784e7a4d734d6a597a6120808601527f4c6a45324c4445334e6934304d6a45734d6a59324c6a4934544445334e6934306120a08601527f4d6a45734d6a59324c6a4934544445334e6934304d6a45734d6a59324c6a49346120c08601527f544445334e6934304d6a45734d6a59324c6a49346569424e4d5463794c6a59316120e08601527f4d7977794f4441754e44593044516f4a43516b4a43516c6a4c5441754d6a67346121008601527f4c5445754f5451304c5445754d7a49744d7934334e6a67744d6934354e7a59746121208601527f4e4334354f544a324c5441754d444930597930784c6a59344c5445754d6a49306121408601527f4c544d754e7a49744d5334324e5459744e5334324f4467744d53347a4e6a686a6121608601527f4c5445754f5459344c4441754d6a67344c544d754e7a6b794c4445754d7a49746121808601527f4e5334774d5459734d6934354e7a594e43676b4a43516b4a435777744d5441756121a08601527f4f546b794c4445304c6a6734614441754d444930597930784c6a49304f4377786121c08601527f4c6a59344c5445754e6a67734d7934334e4451744d53347a4f5449734e5334326121e08601527f4f44686a4d4334794f4467734d5334354e4451734d53347a4d69777a4c6a63326122008601527f4f4377794c6a6b334e6977304c6a6b354d67304b43516b4a43516b4a597a45756122208601527f4e6a67734d5334794e4467734d7934334e4451734d5334324f4377314c6a59346122408601527f4f4377784c6a4d354d6e4d7a4c6a63324f4330784c6a4d794c4451754f546b796122608601527f4c5449754f546332624441754d4449304c4442734d5441754f546b794c5445306122808601527f4c6a6734614330774c6a41794e41304b43516b4a43516b4a517a45334d6934306122a08601527f4f4455734d6a67304c6a51334d6977784e7a49754f5451784c4449344d6934306122c08601527f4d4467734d5463794c6a59314d7977794f4441754e445930544445334d6934326122e08601527f4e544d734d6a67774c6a51324e4577784e7a49754e6a557a4c4449344d4334306123008601527f4e6a5236494530794d4445754d446b794c444d774d5334304d54594e43676b4a6123208601527f43516b4a43574d744d43347a4d5449744d6934784d7a59744d5334304e4330306123408601527f4c6a45314d69307a4c6a49324e4330314c6a51354e6e59774c6a41794e474d746123608601527f4d5334344e4467744d53347a4e6a67744e4334784d4451744d5334344e4467746123808601527f4e6934794e4330784c6a557a4e6d4d744d6934784e6977774c6a4d7a4e6930306123a08601527f4c6a45314d6977784c6a51304c5455754e5449734d7934794e6a514e43676b4a6123c08601527f43516b4a435777744d5445754e6a45324c4445314c6a63304e474d744d53347a6123e08601527f4e4451734d5334344e4467744d5334344d6a51734e4334784d4451744d5334316124008601527f4d5449734e6934794e474d774c6a4d784d6977794c6a457a4e6977784c6a51306124208601527f4c4451754d5449344c444d754d6a59304c4455754e446b32624441734d41304b6124408601527f43516b4a43516b4a597a45754f4451344c4445754d7a59344c4451754d5441306124608601527f4c4445754f4451344c4459754d6a51734d5334314d7a5a6a4d6934784e6930776124808601527f4c6a4d784d6977304c6a45314d6930784c6a51304c4455754e5449744d7934796124a08601527f4e6a52734d437777624445784c6a59784e6930784e5334334e44514e43676b4a6124c08601527f43516b4a43554d794d4441754f5451344c444d774e5334344d7a49734d6a41786124e08601527f4c6a51794f43777a4d444d754e5463324c4449774d5334774f5449734d7a41786125008601527f4c6a51784e6b77794d4445754d446b794c444d774d5334304d545a4d4d6a41786125208601527f4c6a41354d69777a4d4445754e4445326569424e4d6a497a4c6a49304e43777a6125408601527f4d6a49754d54557944516f4a43516b4a43516c6a4c5441754d6a51744d5334326125608601527f4f4330784c6a45774e43307a4c6a49304c5449754e5449744e4334794e7a4a326125808601527f4d4334774d6a526a4c5445754e4451744d5334774e5459744d7934784f5449746125a08601527f4d5334304e4330304c6a67304f4330784c6a45334e6d4d744d5334324e5459736125c08601527f4d4334794e43307a4c6a49784e6977784c6a45774e4330304c6a49304f4377796125e08601527f4c6a55304e4777744d4334784f5449734d4334794e41304b43516b4a43516b4a6126008601527f624330354c6a67344f4377784d7934304d545a324d4334774d6a526a4c5445756126208601527f4d4455324c4445754e4445324c5445754e4445324c444d754d5459344c5445756126408601527f4d5455794c4451754f444930597a41754d6a59304c4445754e6a67734d5334786126608601527f4d6a67734d7934794e4377794c6a55304e4377304c6a49334d6d77774c44414e6126808601527f43676b4a43516b4a43574d784c6a51784e6977784c6a41314e69777a4c6a45326126a08601527f4f4377784c6a51784e6977304c6a67304f4377784c6a45314d6d4d784c6a59346126c08601527f4c5441754d6a59304c444d754d6a51744d5334784d6a67734e4334794e7a49746126e08601527f4d6934314e44524d4d6a49794c6a45304d53777a4d6a634e43676b4a43516b4a6127008601527f43554d794d6a4d754d5449304c444d794e5334314f4451734d6a497a4c6a55776127208601527f4f43777a4d6a4d754f444d794c4449794d7934794e4451734d7a49794c6a45316127408601527f4d6e6f694c7a344e43676b4a43516b384c32632b44516f4a43516b384c32632b6127608601527f44516f4a435477765a7a344e43676b384c32632b44516f384c32632b44516f386127808601526d130cd38c969e8d1390d9cf4f488b60921b6127a086015251975197988998929592918291908a015e87019060208201905f8252519283915e01602001905f8252518092825e01905f8252518092825e015f815203601f19810182526136469082613793565b604051613654819282613769565b0390f35b634e487b7160e01b5f52602160045260245ffd5b61367861011c916138a1565b9261010d565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b3461367e57602036600319011261367e5761365460206136f860256136c56004356001600160a01b0316613834565b60405164f09fa49d2d60d81b858201528151909485928291018484015e81015f838201520301601f198101835282613793565b60405191829182613769565b3461367e57602036600319011261367e5761365460206136f860286137336004356001600160a01b03166137b5565b60405193849167021b7b6b830b1ba160c51b828401528051918291018484015e81015f838201520301601f198101835282613793565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761368257604052565b6001600160a01b03811615613810576137d9906306fdde0360045260045f52613d42565b908151156137e357565b90506040516137f3604082613793565b600d81526c3ab735b737bbb7103a37b5b2b760991b602082015290565b5060405161381f604082613793565b600581526422ba3432b960d91b602082015290565b8060601b1561387f57613852906395d89b4160045260045f52613d42565b9081511561385c57565b905060405161386c604082613793565b60038152623f3f3f60e81b602082015290565b5060405161388e604082613793565b600381526208aa8960eb1b602082015290565b9060405191608083016040526f30313233343536373839616263646566600f526002830190602882525f604a85015260601b60015f5b8080018601602284831a600f811651602384015360041c5191015301906014821461390557906001906138d7565b50506130786002825101915282528160228101907f8888888888888888888888888888888888888888888888888888888888888880602883201660015f5b601160f31b83821a02818001520190601482146139635790600190613943565b505060429180517f2020202020202020202020202020202020202020202020202020202020202020815f511660011c161890520180517f2020202020202020202020202020202020202020202020202020202020202020816020511660011c16189052565b600881101561365857806139ff57506040516139e5604082613793565b600a81526913db99481cd958dbdb9960b21b602082015290565b60018103613a355750604051613a16604082613793565b600f81526e4669667465656e207365636f6e647360881b602082015290565b60028103613a665750604051613a4c604082613793565b600a8152694f6e65206d696e75746560b01b602082015290565b60038103613a985750604051613a7d604082613793565b600b81526a54656e206d696e7574657360a81b602082015290565b60048103613adc5750604051613aaf604082613793565b601981527f4f6e6520686f757220616e642066697665206d696e7574657300000000000000602082015290565b60058103613b0a5750604051613af3604082613793565b60078152664f6e652064617960c81b602082015290565b60068103613b4e5750604051613b21604082613793565b601781527f536576656e206461797320616e64206f6e6520686f7572000000000000000000602082015290565b600703613b7e57604051613b63604082613793565b600b81526a546869727479206461797360a81b602082015290565b60405162461bcd60e51b8152602060048201526014602482015273155b9adb9bdddb881c995cd95d081c195c9a5bd960621b6044820152606490fd5b60028110156136585780613bf15750604051613bd7604082613793565b600a81526926bab63a34b1b430b4b760b11b602082015290565b600103613c2457604051613c06604082613793565b600e81526d436861696e2d737065636966696360901b602082015290565b60405162461bcd60e51b815260206004820152600d60248201526c556e6b6e6f776e2073636f706560981b6044820152606490fd5b90604051600a608082019360a083016040525f8552935b5f190193603082820601855304928315613c8c57600a90613c70565b809350608091030191601f1901918252565b6002613d3f91600d602094604051613cb7604082613793565b6001815260308780830193600b60fa1b8552604051998a976f3d913a3930b4ba2fba3cb832911d101160811b828a0152805191829101858a015e8701906c111610113b30b63ab2911d101160991b84830152805192839101603d83015e01019061227d60f01b84830152518092600f83015e01015f838201520301601f198101835282613793565b90565b60205f60609282825191620186a0fa15613d3f57506040518060200160403d1015613da7575b5f60203d806103e8106103e8821802188083853e840101535b80515f1a15613d9257600101613d81565b818103601f190182525f815260200160405290565b5f513d601f1901811115613dbc575b50613d68565b602081843e82513d829003601f1901811115613dd85750613db6565b90604092826020936103e8106103e88218021892839283875201903e82015f6020820152016040529056fea164736f6c634300081c000a", + "sourceMap": "1085:8212:36:-:0;;;;;;399:6063:65;;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2214:262:48;8755:335:35;-1:-1:-1;8755:335:35;;;-1:-1:-1;8755:335:35;-1:-1:-1;;;;;1085:8212:36;;3014:31:35;3010:104;;-1:-1:-1;9726:9:35;;;;8755:335;9726:9;1085:8212:36;9691:55:35;1085:8212:36;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;-1:-1:-1;1085:8212:36;;;;;;3237:647:35;;;;3433:10;3418:25;;3472:10;3457:25;;3513:12;3496:29;;3237:647;3894:44;;4029:38;;2258:13:48;2238:33;;2309:42;2258:13;1871:575:54;1742:710;1871:575;;;;;;;;;;;;;;;;;;;;;;;;;;1742:710;;2309:42:48;2281:70;;1085:8212:36;;2382:22:48;;;;-1:-1:-1;;;;;2382:22:48;;;;;;;;;;;;;;;-1:-1:-1;2382:22:48;;;;;2361:43;;5767:105;;;;2414:55;;2214:262::o;2382:22::-;;:::i;:::-;;:::i;3237:647:35:-;3722:30;3707:45;;3781:29;3766:44;;3841:32;3824:49;;3237:647;;1085:8212:36;;;3010:104:35;3068:35;;;-1:-1:-1;3068:35:35;;-1:-1:-1;3068:35:35", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x6080806040526004361015610012575f80fd5b5f3560e01c908162ad800c1461312757508062fdd58e146130eb57806301ffc9a7146130a757806303417d721461309057806306659b7f1461307b57806306e8cc181461306657806306fdde031461303c57806308e600ee14613027578063095bcdb614612f4e5780630a133cf214612f395780630d57fec914612f245780630f5eeadf14612f0f578063107d4ee414612ec857806310d8267214612dff57806312a1e6ea14612dea57806312d4888514612d7a57806312f9d21e14612d6557806313589bfe14612d50578063138cd81914612d2a578063144bd5b514612cc85780631486590714612cb3578063176f405a14612c525780631b98b63f14612c3d5780631bb81a8114612c285780631d474b1414612c135780631e2eaeaf14612bf7578063200f0c4d14612b8f578063206620a114612b3f57806325d7776b14612b155780632737edb914612afe57806327c777a914612a815780632a9c4d0d146129515780632acd5dc31461293c5780632c4bbd17146129255780632e3ff2f7146128c15780632e4d55cc146128ac57806331bbae3e1461286e57806332e2a80314612859578063341056c5146128445780633644e5151461282a578063393c33e21461272f5780633f458a19146127185780633f47e662146126fc5780634073c0cc146126d9578063409b3a7e146126c4578063414fd914146126af578063418a23f51461269a578063426a849314612636578063440a0ec3146125ed57806344b97d78146125ba5780634ad5205e146125a35780634c1024161461258c5780634d585fbf146125755780634e41a1fb146125015780634e55a548146124ea578063507cb46f1461249057806353e5006714612350578063548439e114612339578063558a7297146122c4578063577cdc64146122ad5780635920212814612296578063598af9e7146122605780635ac2ccf1146122495780635b15bfd9146121dd5780635b6016ec146121765780635d76a382146121615780635e6c91ff1461214c57806362a420bb1461211557806363f5b1ad146120d8578063648705561461209a578063671b3bd61461202a5780636a9a4c4414611f895780636af2791b14611f745780637003019014611f125780637112406d14611dc857806371f5012714611db1578063721f629214611d765780637423eb3c14611c9157806376d531d414611c7c5780638340f54914611c41578063843719f014611bf15780638678555914611bdc57806388d247c414611bc557806388da84d414611bae57806389ce066114611b59578063935ed2ba14611b1e5780639730f4fd14611b07578063996d3aac14611adc57806399cf8b9b146119e85780639be5f537146119d1578063a23941471461191c578063a4c7bd93146118e2578063aa41c87e14611895578063aa8b845d14611863578063b20abc481461184e578063b24849b714611824578063b3244389146117ee578063b4039fc2146117c1578063b54baefd1461178c578063b602ae021461174a578063b6363cf214611705578063b7ace047146116c0578063b8a5bbad14611682578063bc95bd7a14611637578063c4d195e8146115f0578063c8091041146115b4578063c87b56dd14611432578063ca6cc39f146113e5578063d204f11e1461139a578063d2a1805f14611379578063d34ddc8214611362578063d350188c1461134d578063d3917f3c146112ff578063d921f36a146112b8578063da15ee7f1461112f578063da2f268b146110e6578063db04bc72146110d1578063dbd035ff14611059578063dd589cfc14610fdc578063e0565c4914610f8e578063e05c6e7d14610f41578063e6c5b65414610ee6578063e8672f9314610ed1578063ea14532e14610e6a578063eaa6748314610e33578063eb19600814610df9578063eb35a6d214610d89578063eb43182114610d4d578063ebcbd7b514610cf6578063ecaca40e14610c8d578063eea77a7814610c18578063eed634ad14610c03578063eed9357214610bb8578063f135baaa14610b9c578063f23d923d14610b2e578063f2f0def114610ae9578063f340fa0114610ab8578063f44a345214610a5a578063f745381c14610a24578063f95d3d16146109ea578063fa1c55001461098a578063fb75fb6914610924578063fcfe431a146108c1578063fdc060e7146107d75763fe99049a14610655575f80fd5b60803660031901126107d3576106696131bd565b6106716131ff565b6044359160643561068d60016001605c1b038560a01c16614862565b9260018060a01b0383169260018060a01b038216945f60208160a460405194828052601c8601948591631a808f91885233868901528b60408901528c60608901528d60808901528a60a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a82293940603452602852336014526034602020541561077f575b84601452604060142080548084116107725783900390556028528360145260406014208054908282019182106107655755335f526020525f516020615f655f395f51905f5260405fa45f603452602060405160018152f35b6389560ca15f526004601cfd5b63f4d678b85f526004601cfd5b845f5260545f20805460018101610798575b505061070d565b8084116107ab5783900390555f80610791565b63deda90305f526004601cfd5b3d1517156107cb5763014c931060a49252fd5b3d5f803e3d5ffd5b5f80fd5b346107d3576107e536613408565b608081015f806107f5838561377f565b905f915b80831061089c5750505061088a576108796035928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b809335613fcf565b614012565b61377f565b9061527d565b602060405160018152f35b634e487b715f5260116020526024601cfd5b90919260019060206108af8685876138cd565b013580960195861017930191906107f9565b346107d357602061091a601760356108d8366133d4565b6101806108f96108f36108ed83850185613c23565b90614bee565b83615c0a565b9290919361090b610160820135613c58565b926109146137c8565b95614d26565b6040519015158152f35b346107d357602061091a603461093936613249565b61095b61095361094d610100840184613898565b90614e53565b826030615651565b9061010061096b3615848461532d565b916109796001361517613cdd565b926109826137c8565b946021615e45565b346107d357602061091a603461099f3661327d565b6109bb6109b36108ed610100840184613c23565b826031615651565b906109c960e0820135613c58565b6101006109d96002361517613cdd565b926109e26137c8565b946026615e45565b346107d357602061091a60356109ff36613215565b610120610a10604036151783615bc9565b92919390610a1c6137c8565b946024615e45565b346107d357602061091a60176034610a3b3661333c565b610a4481615571565b90610100610a506137c8565b93361592806152df565b346107d357602061091a6035610a6f36613249565b610a8a610a826108ed60e0840184613c23565b82602b615651565b9060e0610a993615848461532d565b91610aa76001361517613cdd565b92610ab06137c8565b94601f615e45565b60203660031901126107d3576020610ad6610ad16131bd565b614320565b610ae134823361437c565b604051908152f35b346107d357602061091a60176035610b00366133a0565b610b19610b1361094d60e0840184613898565b82615834565b9060e0610b246137c8565b93361592806151a7565b346107d357602061091a6035610b4336613215565b3615610100610b73610b6b60408417859060e0910160c08101355f52013560205260405f2090565b846030615651565b92610b8b6002610b8485878561532d565b9417613cdd565b92610b946137c8565b946023615e45565b346107d35760203660031901126107d3576004355c5f5260205ff35b346107d357602061091a6035610bcd36613215565b610be7610be16108ed610140840184613c23565b82615b8a565b9091610140610bfa610120830135613c58565b916109e26137c8565b346107d357602061091a6034610bcd36613215565b346107d357602061091a6035610c2d366133d4565b361590610c5b610c5360808417839060e0910160c08101355f52013560205260405f2090565b826032615651565b91610140610c6a82858561532d565b92610c7e6002610b84610120840135613c58565b93610c876137c8565b95614239565b346107d35760a03660031901126107d3576020610ca86131bd565b610cd9610cc4610cb66131ff565b610cbf846148dc565b6142e2565b91610ccd6139d1565b8260443591339061487c565b610ce1613baa565b610ae1610258361517608435606435336141b4565b346107d357602061091a6034610d0b366134d1565b610180610d326108f360c0361517849060e0910160c08101355f52013560205260405f2090565b92909193610d44610160820135613c58565b92610c876137c8565b346107d357602061091a6034610d623661327d565b610120610d7d610d7761094d83850185613898565b83615baa565b929193906109826137c8565b346107d35760203660031901126107d3576020600435610ae162ffffff77278d00094890015180000f3c00025800003c00000f000001601860078560fc1c16021c1642018281610df38195339190604051926014526341d0e04b5f526034526038601c2091604052565b556148f6565b346107d357602061091a6035610e0e3661333c565b610100610e1a826155cc565b919092610e2a6002361517613cdd565b92610a1c6137c8565b346107d357602061091a6034610e48366133a0565b610e5b610a8261094d60e0840184613898565b9060e061096b3615848461532d565b346107d357602061091a60176034610e813661333c565b610e95610c5361094d610140840184613898565b90610ea23615838361532d565b90610140610eb4610120830135613c58565b91610ec26002361517613cdd565b93610ecb6137c8565b956151a7565b346107d357602061091a60346109ff36613215565b346107d357602061091a6034610efb3661327d565b610f20610f188260e09060c08101355f52013560205260405f2090565b82602f615651565b90361560c0610f3160028317613cdd565b92610f3a6137c8565b9480614239565b346107d357602061091a6035610f563661333c565b610f5f81615250565b90610f6d60e0820135613c58565b610100610f7d6002361517613cdd565b92610f866137c8565b946025615e45565b346107d357602061091a6034610fa336613215565b6101003615610fd1610fcb60408317859060e0910160c08101355f52013560205260405f2090565b84615b66565b929093610f3a6137c8565b346107d357602061091a610fef3661343b565b6040515f516020615fa55f395f51905f528152338482015233604082015261103f8260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b608061104d60a084016137b4565b92013591336034615c31565b346107d35760203660031901126107d3576004356001600160401b0381116107d357611089903690600401613370565b6040519160408360208152836020820152019160051b8301916020806040850193925b83355481520191019084838210156110c85750602080916110ac565b60408186030190f35b346107d357602061091a6034610a6f36613249565b346107d35760403660031901126107d35760206004356111046131ff565b906040519183526303f37b1a600c52806040526001603760282054918360405260ff161b1615158152f35b6101603660031901126107d3576111446131bd565b6024356001600160401b0381116107d35761116390369060040161346e565b61116e9291926131d3565b5060a4359060088210156107d357600260c43510156107d35760e43591610104359460038610156107d357610124356001600160401b0381116107d3576111b990369060040161330f565b9661014435906001600160401b0382116107d357869588926111df90369060040161330f565b6111ed8584899e949e614984565b96819f939183839b949b0160051b90602001209561120b8b84614a8c565b83839992993615976001891792611221946143c6565b9f9091604051925f5260205260405260605f206080890152604052601f19916002811460061b90600114600b020190801515010160f301169060071b01610180019060c01761126f94613e72565b611279948a614b38565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff16916112a6936141b4565b6040516112b48192826135c0565b0390f35b346107d357602061091a601760356112cf366132db565b6101806112e46108f361094d83850185613898565b929091936112f6610160820135613c58565b92610ecb6137c8565b346107d357602061091a6035611314366133d4565b61014061134161133b6080361517849060e0910160c08101355f52013560205260405f2090565b83615bd9565b92919390610b946137c8565b346107d357602061091a6034610e0e3661333c565b346107d357602061091a60176034610b00366133a0565b346107d357602061091a603561138e366132db565b610140610a10826155f4565b346107d357602061091a601760346113b13661343b565b6113c4610a8261094d60a0840184613898565b90361560a06113d560018317613cdd565b926113de6137c8565b94806151a7565b346107d357602061091a60356113fa36613215565b61140381615250565b9061141160e0820135613c58565b6101006114216002361517613cdd565b9261142a6137c8565b946022615e45565b346107d35760203660031901126107d357604051600435608082016001600160401b038111838210176115a05760409081525f60208401818152918401818152606085019182526001600160a01b03848116865261149c60a086901c60016001605c1b0316614862565b16835260078460fc1c16600881101561158c5781528360ff1c90600282101561158c5790825260405163d637ca8d60e01b815294516001600160a01b03908116600487015292519092166024850152905161150b91906115009060448601906135a6565b5160648401906135b3565b60848201525f8160a4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575b5060405191829182613193565b61157b91503d805f833e61157381836135f9565b810190613635565b82611552565b6040513d5f823e3d90fd5b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b60403660031901126107d3576004356001600160401b0381116107d3576115e261087f91369060040161346e565b6115ea6131ff565b916138dd565b346107d357602061091a601760356116073661327d565b61162161161b6108ed610100840184613c23565b82615b66565b9061010061162d6137c8565b9336159280614d26565b346107d357602061091a6017603561164e366133a0565b611661610f186108ed60c0840184613c23565b90361560c061167260028317613cdd565b9261167b6137c8565b9480614d26565b346107d357602061091a60176034611699366133a0565b6116a281615516565b90361560a06116b082613cdd565b926116b96137c8565b94806152df565b346107d357602061091a601760346116d736613249565b6116f4610f188260e09060c08101355f52013560205260405f2090565b90361560c06116b060028317613cdd565b346107d35760403660031901126107d35761171e6131bd565b6117266131ff565b9067edcaa89a822939406020526014525f5260206034600c20546040519015158152f35b346107d357602061091a603561175f36613249565b361561176d81836028615651565b9061177781613cdd565b916117806137c8565b9360a083179180614239565b346107d357602061091a601760346117a336613249565b6117b6610b136108ed60e0840184613c23565b9060e061162d6137c8565b346107d357602061091a60346117d63661327d565b60e06117e182615524565b919092610e2a3615613cdd565b346107d357602061091a603461180336613215565b61014061181861133b6108ed83850185613c23565b92919390610ab06137c8565b346107d357602061091a60346118393661333c565b610120611818610d776108ed83850185613c23565b346107d357602061091a60356118393661333c565b602061187c610ae1611874366132b1565b939091614320565b9261188834853361437c565b61025836151791336141b4565b346107d357602061091a60346118aa3661333c565b6118be610be161094d610140840184613898565b90916101406118d1610120830135613c58565b916118da6137c8565b946027615e45565b346107d357602061091a60346118f7366132db565b61190081615542565b9091610140611913610120830135613c58565b91610f866137c8565b346107d35761192a36613408565b608081015f8061193a838561377f565b905f915b8083106119ac5750505061088a576108796034928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b90919260019060206119bf8685876138cd565b0135809601958610179301919061193e565b346107d357602061091a6017603461164e366133a0565b6101203660031901126107d3576119fd6131bd565b506024356001600160401b0381116107d357611a1d90369060040161346e565b611a256131d3565b50600860a43510156107d357600260c43510156107d35760e435916001600160a01b03831683036107d35761010435906001600160401b0382116107d3576112b493611aca611a7b611ad094369060040161330f565b959093611a89848383614984565b9592611ab660c09b9399929b361592611aa460848517613d1e565b611aae8d83614a8c565b949094613db8565b608084015260071b61022001921790613e72565b86614b38565b604051918291826135c0565b346107d357602061091a60176034611af33661327d565b611afc81615774565b9060e0610a506137c8565b346107d357602061091a601760346116073661327d565b346107d357602061091a60176034611b3536613539565b611b48610f1861094d60c0840184613898565b90361560c06113d560028317613cdd565b346107d357602061091a6035611b6e366133d4565b611b92610be16080361517839060e0910160c08101355f52013560205260405f2090565b9091610140611ba5610120830135613c58565b9161142a6137c8565b346107d357602061091a60176035610e813661333c565b346107d357602061091a60176035611b3536613539565b346107d357602061091a603461175f36613249565b346107d357602061091a60176035611c08366132db565b611c118161559c565b9091610140611c24610120830135613c58565b91611c326002361517613cdd565b93611c3b6137c8565b956152df565b346107d3576020611c63611c74611c573661356c565b919390610cbf856148dc565b8093611c6d6139d1565b339061487c565b610ae1613baa565b346107d357602061091a6035610efb3661327d565b346107d3575f3660031901126107d357323303611d67577f00000000000000000000000000000000000000000000000000000000000000008015611d5c575b611d4d575f8080807f0000000000000000000000000000000000000000000000000000000000000000600a5a04fa3d15611d48573d611d0e8161361a565b90611d1c60405192836135f9565b81525f60203d92013e5b15611d39575f805460ff19166001179055005b6370a4078f60e01b5f5260045ffd5b611d26565b630f45b98b60e41b5f5260045ffd5b5060ff5f5416611cd0565b63096650c560e21b5f5260045ffd5b346107d357602061091a60176035611d8d36613539565b611da0610a826108ed60a0840184613c23565b90361560a061167260018317613cdd565b346107d357602061091a60176035611699366133a0565b346107d357611dd63661349e565b60608101611de48183613898565b8060069492941b81810460401482151715611efe57611e0290614bad565b935f915f5b818110611e955750505061088a57611e4d81611e2d856020611e52975191012082615373565b611e476039611e3c8785613898565b6020860135916140ed565b90614012565b613898565b5f5b818110611e6657602060405160018152f35b80611e8f6034611e796001948688614192565b611e86602082018261377f565b9091359161527d565b01611e54565b611ea0818385614192565b5f90611eaf602082018261377f565b905f915b808310611ed957505050906040839260019460061b8b0190356020820152015201611e07565b9091976001906020611eec8b85876138cd565b01358096019586101798019190611eb3565b634e487b7160e01b5f52601160045260245ffd5b346107d35760203660031901126107d357600435611f4981339190604051926014526341d0e04b5f526034526038601c2091604052565b805415611f5f57905f61087f92553615906148f6565b5063e632dbad5f52336020526040526044601cfd5b346107d357602061091a6034610c2d366133d4565b346107d3576080611f9936613408565b611fed611fe460608301611fde84611fc6611fb4848361377f565b6040519060061b809282372082615373565b611e47611fd3858461377f565b60208501359161406f565b8361377f565b939092016137b4565b905f5b83811061200257602060405160018152f35b8061202361201360019387866138cd565b6020810135903586336035615c31565b5001611ff0565b346107d35760c03660031901126107d3576120436131bd565b61204b6131ff565b906044359160088310156107d3576064359160028310156107d357612087611c74926020956120786131e9565b95612082856148dc565b61434b565b80936120916139d1565b6084359261487c565b346107d357602061091a601760356120b136613505565b6101806120bd82615626565b929091936120cf610160820135613c58565b92611c3b6137c8565b346107d357602061091a60346120ed3661333c565b361560e061210060408317846028615651565b92610b8b61210f84868461532d565b93613cdd565b346107d357602061091a6017603561212c36613249565b61214061161b61094d610100840184613898565b90610100610b246137c8565b346107d357602061091a6034611b6e366133d4565b346107d357602061091a60356118aa3661333c565b60603660031901126107d3576004356001600160401b0381116107d3576121a190369060040161346e565b602435906001600160401b0382116107d3576020926121d46121ca61091a94369060040161346e565b92909333916138dd565b60443591614159565b346107d35760203660031901126107d357608060043561224761220b60016001605c1b038360a01c16614862565b604080516001600160a01b038086168252909216602083015290929061223a90840160fc83901c6007166135a6565b606083019060ff1c6135b3565bf35b346107d357602061091a601760346108d8366133d4565b346107d35761226e3661356c565b9167edcaa89a822939406034526028526014525f52602060545f20545f603452604051908152f35b346107d357602061091a60176034611d8d36613539565b346107d357602061091a6017603461212c36613249565b60403660031901126107d3576122d86131bd565b602435908115158092036107d35767edcaa89a82293940602052336014525f52806034600c2055602052600c5160601c337fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267602080a3602060405160018152f35b346107d357602061091a601760356113b13661343b565b346107d3576101803660031901126107d35761236a6131bd565b6123726131d3565b9061237b6131e9565b5060c43560088110156107d357600260e43510156107d3576101043590610124359060038210156107d357610144356001600160401b0381116107d3576123c690369060040161330f565b94909261016435956001600160401b0387116107d35787966123ec90369060040161330f565b9890916123f885613d53565b839d93969297919436159b61240e938d936143c6565b9990604051905f52866020528b60405260605f20610100860152604052601f1961016085015161017f0116906101401761244794613e72565b61245093613eca565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff169161247d936141b4565b612485613baa565b604051908152602090f35b60803660031901126107d3576124a46131bd565b60243560088110156107d3576044359060028210156107d357606435916001600160a01b03831683036107d357602093610ae1926124e1926142b1565b9182349161437c565b346107d357602061091a601760356117a336613249565b346107d35760203660031901126107d357604051634e41a1fb60e01b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575060405191829182613193565b346107d357602061091a601760346120b136613505565b346107d357602061091a60176034611c08366132db565b346107d357602061091a60176035611af33661327d565b346107d357602061091a60346125cf3661333c565b6125d881615774565b9060e06125e36137c8565b9336159280614239565b346107d3576040612627612600366132b1565b91605892601c926040519260148401526368a30dd083526034830152605482015201205490565b81519042811182526020820152f35b61263f366132b1565b909167edcaa89a8229394060345233602852601452815f528060545f20555f5260205160601c337fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a760205fa45f603452602060405160018152f35b346107d357602061091a6035610d0b366134d1565b346107d357602061091a603461138e366132db565b346107d357602061091a6034610f563661333c565b346107d35760603660031901126107d35761087f604435602435600435336141b4565b346107d35760203660031901126107d357602060405160128152f35b346107d357602061091a60176035610a3b3661333c565b346107d35761273d3661349e565b6060810161274b8183613898565b8060069492941b81810460401482151715611efe5761276990614bad565b935f915f5b8181106127c15750505061088a57611e4d81611e2d856020612794975191012082615373565b5f5b8181106127a857602060405160018152f35b806127bb6035611e796001948688614192565b01612796565b6127cc818385614192565b5f906127db602082018261377f565b905f915b80831061280557505050906040839260019460061b8b019035602082015201520161276e565b90919760019060206128188b85876138cd565b013580960195861017980191906127df565b346107d3575f3660031901126107d3576020610ae16137c8565b346107d357602061091a60356118f7366132db565b346107d357602061091a60346113fa36613215565b346107d35760403660031901126107d3576004356001600160401b0381116107d35761091a6128a3602092369060040161346e565b60243591614159565b346107d357602061091a60356125cf3661333c565b346107d35760603660031901126107d3576004356128dd6131ff565b60408051336014526341d0e04b5f5260348490526038601c209152544281119015176129145761091a906020926044359133613697565b50639287bcb05f526020526024601cfd5b346107d357602061091a601760346112cf366132db565b346107d357602061091a603561099f3661327d565b346107d35760403660031901126107d35761296a6131bd565b6024356001600160401b0381116107d35761298990369060040161330f565b6001600160a01b03909216916055811491338414843b1515179183612a35575b50501715612a25576129ba81613ef9565b806744036fc77deaed23605c1b1791825480612a1157508060209355815f5282527fc54dcaa67a8fd7b4a9aa6fd57351934c792613d5ec1acbd65274270e6de8f7e460405fa16001600160601b0360405191168152f35b8263c18b0e975f526020526040526044601cfd5b634e7f492b5f526020526024601cfd5b809192935015612a6d57808260405137604051206001600160a01b031683146001600160f81b031991358216909114169083806129a9565b634e487b7160e01b5f52603260045260245ffd5b346107d357602061091a612a943661343b565b6040515f516020615fa55f395f51905f5281523384820152336040820152612ae48260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b6080612af260a084016137b4565b92013591336035615c31565b346107d357602061091a601760356116d736613249565b346107d357602061091a6035612b2a3661333c565b610140610d7d61133b61094d83850185613898565b346107d357602061091a6035612b5436613249565b612b686109b361094d610100840184613898565b90612b7660e0820135613c58565b610100612b866002361517613cdd565b926118da6137c8565b346107d3576080612b9f36613408565b612bba611fe460608301611fde84611fc6611fb4848361377f565b905f5b838110612bcf57602060405160018152f35b80612bf0612be060019387866138cd565b6020810135903586336034615c31565b5001612bbd565b346107d35760203660031901126107d357600435545f5260205ff35b346107d357602061091a6034611314366133d4565b346107d357602061091a60356120ed3661333c565b346107d357602061091a6035610fa336613215565b346107d357602061091a60176034612c6936613215565b612c7d610c536108ed610140840184613c23565b90612c8a3615838361532d565b90610140612c9c610120830135613c58565b91612caa6002361517613cdd565b936109146137c8565b346107d357602061091a603561180336613215565b346107d35760403660031901126107d357612d06612ce46131bd565b602435909190604051926014526341d0e04b5f526034526038601c2091604052565b546040518115154283116002030291600383101561158c5760409282526020820152f35b346107d357602061091a6035612d3f366132db565b610120611341604036151783615bc9565b346107d357602061091a6035610e48366133a0565b346107d357602061091a6034610b4336613215565b346107d35760203660031901126107d3576004356001600160401b0381116107d357612daa903690600401613370565b90612dbc612db733613ef9565b613fa8565b809160051b01905b818110612dd657602060405160018152f35b602090612de4338235613fcf565b01612dc4565b346107d357602061091a6034612b2a3661333c565b346107d3576101403660031901126107d357612e196131bd565b612e216131d3565b50612e2a6131e9565b50600860c43510156107d357600260e43510156107d35761010435906001600160a01b03821682036107d357610124356001600160401b0381116107d357602092612ead92612e80611c7493369060040161330f565b929091612ec3361594612e9560a48717613d1e565b94612e9f84613d53565b9b839c9a939991929a613db8565b6101008201526101406102008317921790613e72565b613eca565b346107d357602061091a6034612edd3661327d565b612ef16109536108ed610100840184613c23565b90610100612f013615848461532d565b91610aa76002361517613cdd565b346107d357602061091a6035612edd3661327d565b346107d357602061091a6034612d3f366132db565b346107d357602061091a603561093936613249565b612f57366132b1565b612f6f60016001605c1b038360a09594951c16614862565b9160018060a01b038116925f60208160a460405194828052601c8601948591631a808f91885233868901523360408901528a60608901528b60808901528960a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a8229394060205233601452835f5260405f208054808411610772578390039055601452825f5260405f208054908282019182106107655755335f52602052335f516020615f655f395f51905f5260405fa4602060405160018152f35b346107d357602061091a6035610d623661327d565b346107d3575f3660031901126107d357602080526b0b54686520436f6d70616374604b5260606020f35b346107d357602061091a60356117d63661327d565b346107d357602061091a6034612b5436613249565b346107d357602061091a60176035612c6936613215565b346107d35760203660031901126107d3576004356001600160e01b0319811681036107d35760209060e01c604051906301ffc9a7630f632fb3821491141715158152f35b346107d35760403660031901126107d3576131046131bd565b67edcaa89a822939406020526014526024355f52602060405f2054604051908152f35b346107d35760203660031901126107d357622b600360e21b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f5750604051918291825b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036107d357565b608435906001600160a01b03821682036107d357565b60a435906001600160a01b03821682036107d357565b602435906001600160a01b03821682036107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101209082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101409082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024359060443590565b60206003198201126107d357600435906001600160401b0382116107d3576101a09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d357602083818601950101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101609082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460051b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101c09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760a09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760c09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460061b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d35760809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576102009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101e09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760e09082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024356001600160a01b03811681036107d3579060443590565b90600882101561158c5752565b90600282101561158c5752565b60206040818301928281528451809452019201905f5b8181106135e35750505090565b82518452602093840193909201916001016135d6565b90601f801991011681019081106001600160401b038211176115a057604052565b6001600160401b0381116115a057601f01601f191660200190565b6020818303126107d3578051906001600160401b0382116107d3570181601f820112156107d3578051906136688261361a565b9261367660405194856135f9565b828452602083830101116107d357815f9260208093018386015e8301015290565b909291926136a36139d1565b6001600160a01b0384168061372457505f9081808538935af115613717575b67edcaa89a8229394060205280601452825f5260405f209182549283821161077257815f9403905533835260205260018060a01b03165f516020615f655f395f51905f52604083a4613712613baa565b600190565b63b12d13eb5f526004601cfd5b9091926137313083613b85565b9260145260345263a9059cbb60601b5f5260205f6044601082855af13d1560015f51141716156137725761376a905f6034523090613b85565b9003906136c2565b6390b8ec185f526004601cfd5b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160061b360383136107d357565b356001600160a01b03811681036107d35790565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046186138135790565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208201527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60408201524660608201523060808201522090565b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160051b360383136107d357565b9190811015612a6d5760061b0190565b91906138e76139d1565b82359060018060a01b03821615916020850135341415831634158414178215176139c4578060016001605c1b03849260a01c1661392381613fa8565b936139b2575b505b81811061394157505050505061393f613baa565b565b61394c8183876138cd565b80359060016001605c1b038260a01c166001600160601b0386168103613991575b506001929161398b916020013590876001600160a01b03821661487c565b0161392b565b61398b919550916020836139a760019695613fa8565b96925050919261396d565b6139be9034908661437c565b5f613929565b63ca0fc08e5f526004601cfd5b7f000000000000000000000000000000000000000000000000000000000000000080600414613b595780600314613b475780600914613b105780600a14613ad357600814613a2d57634e487b7160e01b5f52605160045260245ffd5b613a43361568929eee149b4bd212686028615651565b805b613ac357507f000000000000000000000000000000000000000000000000000000000000000080600214613a9c57600114613a8e57634e487b7160e01b5f52605160045260245ffd5b3368929eee149b4bd212685d565b505f5460ff1615613ab5573368929eee149b4bd212685d565b3368929eee149b4bd2126855565b63f57c448b5f526020526024601cfd5b5060e0604036151768929eee149b4bd212680160c08101355f520135602052613b0a60405f2068929eee149b4bd212686031615651565b80613a45565b5068929eee149b4bd21328355f90815268929eee149b4bd213483560205260409020613b0a9068929eee149b4bd21268602f615651565b5068929eee149b4bd212685c80613a45565b505f5460ff1615613b755768929eee149b4bd212685c80613a45565b68929eee149b4bd2126854613b0a565b602460106020939284936014526370a0823160601b5f525afa601f3d11166020510290565b7f000000000000000000000000000000000000000000000000000000000000000080600614613bfc57600514613bee57634e487b7160e01b5f52605160045260245ffd5b5f68929eee149b4bd212685d565b505f5460ff1615613c15575f68929eee149b4bd212685d565b5f68929eee149b4bd2126855565b903590601e19813603018212156107d357018035906001600160401b0382116107d3576020019160608202360383136107d357565b60a090604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208301527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d604083015260608201523060808201522090565b90604051915f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f5260405260051b5191604052565b60a0906080604051917fe055493563385cc588fffacbffe2dab023fef807baa449530431169b0eeb5b69835260208301372090565b90613d5c6139d1565b613d7c613d7460a43560c43560e435612082876148dc565b923090613b85565b906040519063137c29fe82526080600460208401373060a083015260243560c083015260843560e0830152610140610120830152610160820190565b60807f63697069656e7429546f6b656e5065726d697373696f6e73286164647265737391609681527f436f6d706163744465706f736974207769746e65737329436f6d70616374446560208201527f706f736974286164647265737320616c6c6f6361746f722c75696e743820726560408201527f736574506572696f642c75696e74382073636f70652c6164647265737320726560608201527520746f6b656e2c75696e7432353620616d6f756e742960968201520152565b9093805f9493601c92869582613e86614eaf565b9987015260408387018360208201520137016024019101826e22d473030f116ddee9f6b43ac78ba35af11615613eb857565b3d6107cb57637f28c61e5f526004601cfd5b613ed8909291923090613b85565b9283811015613eec5761393f93039161437c565b63426d8dcf5f526004601cfd5b6affffffffffffffffffffff6a7fffffffffffffffffffff8260491c16818360481c16178060021c178060041c178060081c178060101c178060201c176755555555555555558160011c169003673333333333333333808260021c169116018060041c01670f0f0f0f0f0f0f0f660f0f0f0f0f0f0f8260081c169116018060101c01911690690fedcba9876543210000600f60581b91607f600319918060201c0116604803161c60581b161790565b6744036fc77deaed23605c1b81175415613fbf5750565b63cf90c3a85f526020526024601cfd5b604051916020526303f37b1a600c5280604052603760282090600182549160ff161b9080821661400157179055604052565b63dbc205b160601b600c526044601cfd5b916140206040820135614f51565b803590601e19813603018212156107d35701918235926001600160401b0384116107d3576020019280360384136107d35761393f93614069916140616137c8565b918585614f6c565b336150bc565b90929183159161408185826038615aa0565b9161409561408e84614862565b8092613fcf565b946001600160601b0360019316905b8084106140c257505050506140b557565b633a03d3bb5f526004601cfd5b90919293600190836001600160601b036140df8886896038615b0a565b1614151794019291906140a4565b919093928415926140ff868284615aa0565b9261410c61408e85614862565b956001600160601b0360019416915b81851061412d5750505050506140b557565b9091929394600190846001600160601b0361414a8987878b615b0a565b1614151795019392919061411b565b91905f5b81811061416d5750505050600190565b8061418c8461417f60019486896138cd565b60208101359035336141b4565b0161415d565b9190811015612a6d5760051b81013590603e19813603018212156107d3570190565b91929092604051908360148301526368a30dd082526034820194855260548201526058601c8201208242019262278d00811182548510176142295750829055607401526001600160a01b0316907ff78a2f33ff80ef4391f7449c748dc2d577a62cd645108f4f4069f4a7e0635b6a90606090a2565b631f9a96f45f526020526024601cfd5b939195909497969286019586359560208801359760608101359861425d89876152bf565b89811061429c575091614299999a93916142939593604060018060a01b03910135169760016001605c1b038a60a01c1690614c4a565b90615c31565b90565b8990633078b2f65f526020526040526044601cfd5b90916142bc81613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b171790565b6142eb82613ef9565b6744036fc77deaed23605c1b81175490921861430f57600360fc1b9160a01b171790565b5063cf90c3a85f526020526024601cfd5b61432981613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b600360fc1b1790565b9261435581613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b17171790565b909167edcaa89a8229394060205281601452825f5260405f208054908282019182106107655755335f5260205260018060a01b03165f5f516020615f655f395f51905f52604082a4565b939194925f9160208601925f935f9515908161481f575b85156147ce575b505f92801561473a575b5f1981011561469b575b83156145e1575b8415614460575050508184959697823701946e75696e7432353620616d6f756e7429600e8701527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19870152600e81870301905280850390209303902090565b91985096935083919450600e925060051b936e75696e7432353620616d6f756e7429838201527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19820152030190526040519261456d575b83156144f9575b5f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f526040525191604052565b7f45012d42fad8c9e937cff5a2d750ee18713dd45aadcd718660d5523056618d995f527fc2e16a823b8cdddfdf889991d7a461f0a19faf1f8e608f1c164495a52151cc3e6020527fd2f6ad391328936f118250f231e63c7e639f9756a9ebf972d81763870a772d87604052805193506144c0565b7f2bf981c42c7f423b06fa49ba996d2930887e2f1f53d9a26b8c7423ac1cf83e615f527fd14445d78213a5acddfa89171b0199de521c3b36738b835264cae18f5a53dbf36020527f329b3c527a3c74b8cabc51c304669d1866b87352cafdf440ef2becd6dc261d1e604052805193506144b9565b7f4d756c7469636861696e436f6d7061637420636f6d70616374294d756c74696387527f6861696e436f6d7061637428616464726573732073706f6e736f722c75696e7460208801527f323536206e6f6e63652c75696e7432353620657870697265732c5365676d656e60408801526f5d20696473416e64416d6f756e74732c60708801527f697465722c75696e7432353620636861696e49642c75696e743235365b325d5b6060880152601a87019660900193506143ff565b7f4261746368436f6d7061637420636f6d70616374294261746368436f6d70616387527f74286164647265737320617262697465722c616464726573732073706f6e736f60208801527a75696e743235365b325d5b5d20696473416e64416d6f756e74732c605b8801527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60408801526015870196607b0193506143f8565b7f436f6d7061637420636f6d7061637429436f6d7061637428616464726573732087527f617262697465722c616464726573732073706f6e736f722c75696e743235362060208801526f2c75696e7432353620616d6f756e742c60508801527f6e6f6e63652c75696e7432353620657870697265732c75696e743235362069646040880152601087019660700193506143ee565b7569766174696f6e2875696e743235365b5d206964732c60368a01527f426174636841637469766174696f6e207769746e65737329426174636841637490526056880195506038880194505f6143e4565b686e743235362069642c60298a01527f41637469766174696f6e207769746e6573732941637469766174696f6e28756981526049890196506033890195506143dd565b6744036fc77deaed23605c1b81175491908215613fbf5750565b91906148883084613b85565b9260405194606052306040523360601b602c526323b872dd60601b600c5260205f6064601c82855af13d1560015f51141716156148cf5761393f945f606052604052613eca565b637939f4245f526004601cfd5b8060601b156148e85790565b63961c9a4f6040526024605cfd5b908015155f52602052337fe27f5e0382cf5347965fc81d5c81cd141897fe9ce402d22c496b7c2ddc84e5fd60405fa3565b6001600160401b0381116115a05760051b60200190565b9061494882614927565b61495560405191826135f9565b8281528092614966601f1991614927565b0190602036910137565b8051821015612a6d5760209160051b010190565b919261498e6139d1565b6001600160a01b03833516159260208101353490811415851690158514178315176139c45783926149c660843560a43560c4356142b1565b956149d08261493e565b94614a6d575b50848103956149e48761493e565b925f925f5b898110614a0857505050506149fb5790565b630f2f1e515f526004601cfd5b80614a598a600193979596970194614a29614a2487878a6138cd565b6137b4565b90848060a01b0382166001600160601b0360a01b8a1617988911151797614a5181978d614970565b523090613b85565b614a638289614970565b52019291926149e9565b614a799087349161437c565b835115612a6d578560208501525f6149d6565b91604051918360061b8460071b9160061b6024350163fe8ec1a7855260c06020860152816101400160408601526004356060860152826101600160a0860152606060e0860152604435610100860152606435610120860152856101408601528160248201610160870137818501956101608701525f5b828110614b185750939450508301610180019150565b806040918801306101808201526101a06044838601013591015201614b02565b83515f96909594939290875b878110614b5f575050505050505050613eec5761393f613baa565b80614ba783600193019a614b818c614b7c614a2430928c8b6138cd565b613b85565b90614b9d614b8f858c614970565b519183831015179d89614970565b519103908a61437c565b01614b44565b90614bb78261361a565b614bc460405191826135f9565b8281528092614966601f199161361a565b9015612a6d5790565b9190811015612a6d576060020190565b8160061b82810460401483151715611efe57614c0990614bad565b915f5b818110614c20575050506020815191012090565b80614c2e6001928486614bde565b604060208360061b880192803582850152013591015201614c0c565b60408401356001600160a01b031697969095939486948994919387358801936020890135890192909183359190614c8460808c0135614f51565b614c8d90614862565b6060819b013590614c9d91613fcf565b86811502019181151587841415179081159b614cd49961393f9d614cf0575b505050614cda575b5050508582359260200191614f6c565b846150bc565b614ce8926020018c89614f6c565b5f8080614cc4565b614d1b9350605892601c926040519260148401526368a30dd083526034830152605482015201205490565b4210155f898e614cbc565b98979380959196614d6b939894890198893581019860208a81019a359b013597614d63614d538d8d614bd5565b3560a01c60016001605c1b031690565b9d8e91615e45565b90614d768686614bd5565b95614d9f6020614d93878a35809b6040810135948591013561535c565b83151798868686615c31565b506001600160601b0360019916985b818110614dc7575050505050505061371291925061536d565b614dd2818389614bde565b80359889918860408201359b8c926020013592614dee9361535c565b8c8360a01c60016001605c1b03161415171798614e0d91878787615c31565b50600101614dae565b9015612a6d57803590605e19813603018212156107d3570190565b9190811015612a6d5760051b81013590605e19813603018212156107d3570190565b8160061b82810460401483151715611efe57614e6e90614bad565b915f5b818110614e85575050506020815191012090565b80614e936001928486614e31565b604060208360061b880192803582850152013591015201614e71565b7f0000000000000000000000000000000000000000000000000000000000000000613712576e22d473030f116ddee9f6b43ac78ba33b151590565b60a092916040606092815194848601525f516020615f455f395f51905f5285528560208601933385524684880152608087208752820101358101803560051b80916020018537602001852060808601525f516020615f855f395f51905f5285520190372090565b42811115614f5c5750565b63f80dbaea5f526020526024601cfd5b604080516119015f9081526020979097529181526042601e20918152919390929091606483019083146001600160a01b0386166041851481614fc7575b5050505050505033141715614fba57565b638baa579f5f526004601cfd5b909192939495975060405192885f5261506c575b61502d575b60209495965f60605282604052630b135d3f60e11b83526004830152602482019586946040865281604485015260648401375afa9051630b135d3f60e11b1416905f808080808080614fa9565b60408401355f1a60205260408481376020600160805f825afa5181183d1517614fe0575094505050506001915f6060526040525f808080808080614fa9565b60208581013560ff81901c601b01825286356040526001600160ff1b0316606052600160805f825afa5182183d1517614fdb57505094505050506001915f6060526040525f808080808080614fa9565b5f91825233926001600160a01b03908116929116907f770c32a2314b700d6239ee35ba23a9690f2fceb93a55d8c753e953059b3b18d490602090a4565b6040519260608401525f516020615f455f395f51905f5283526020830191338352466040850152608084209082019060a082013583019060c0823560051b93013560051b5f905f5b85811061517857505050505091604060609260a09594602001852060808601525f516020615f855f395f51905f5285520190372090565b8089016020848301870101358152828214615197575b50602001615141565b602090810185905292508261518e565b949195849197966151d4948101358101988960200199359a6151cc614d538d8d614e16565b988991615e45565b8515956001600160601b035f9416935b8181106151fb57505050505050506137129061536d565b806152498761520d600194868c614e31565b80359b8c8a60016001605c1b036152248c846153b0565b9260a01c16141517179b87602061523e604085018561377f565b9190940135936153c6565b50016151e4565b614299906152756040361517829060e0910160c08101355f52013560205260405f2090565b906031615651565b9291905f5b818110615290575050505050565b806152b86152a160019385896138cd565b8560206152ad836137b4565b920135913389615c31565b5001615282565b8160ff1c15901517156152cf5750565b63a06356f55f526020526024601cfd5b95849061530e9399949692968a01998a3597889660408d013583019a60016001605c1b038960a01c1691615e45565b9561531f60209261429998946152bf565b0135928035906020016153c6565b60a0916040519382019160c0830135019081359384930135855260208501526020016040840137604001902090565b9261536791926153b0565b91101790565b6140b557565b60c09160408051925f516020615fc55f395f51905f5284523360208501523382850152602081013560608501520135608083015260a08201522090565b60ff1c600281101561158c576001149015151690565b91949290925f958415945f5b81811061540157505050505050828210176153ee575050600190565b633078b2f65f526020526040526044601cfd5b8061543460209a988761542d61541a600196888d6138cd565b9d8e0135928c84019c8d10179b9d6137b4565b8789615c31565b50016153d2565b906040519160c08101350191823580937f4d756c7469636861696e436f6d7061637428616464726573732073706f6e736f83527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60208401527f5365676d656e745b5d207365676d656e7473295365676d656e7428616464726560408401527535365b325d5b5d20696473416e64416d6f756e74732c60768401527f737320617262697465722c75696e7432353620636861696e49642c75696e74326060840152602001609683013782604301605382012092609601902090565b614299903615906028615651565b906142996155386040361517846028615651565b928336159161532d565b61556d906155676080361517829060e0910160c08101355f52013560205260405f2090565b90615b8a565b9091565b61556d906155966040361517829060e0910160c08101355f52013560205260405f2090565b90615b66565b906142996155386155c46080361517859060e0910160c08101355f52013560205260405f2090565b846032615651565b90614299615538610b6b6040361517859060e0910160c08101355f52013560205260405f2090565b61561f906156196080361517829060e0910160c08101355f52013560205260405f2090565b90615bd9565b9192909190565b61561f9061564b60c0361517829060e0910160c08101355f52013560205260405f2090565b90615c0a565b91909180603214615764578060311461575757806030146157475780602b146157165780602f1461570957806028146156c857806033146156b057602a146156a757634e487b7160e01b5f52605160045260245ffd5b61429991615373565b5060e0910160c08101355f52013560205260405f2090565b5060c060e092606060408051948301925f516020615fa55f395f51905f52865233602087015201604085013760a081013560a0840152013560c08201522090565b5061429991361590614eea565b509060c091606060408051935f516020615fc55f395f51905f52855233602086015201604084013760a08201522090565b5061429991604036151790614eea565b50614299913615906150f9565b50614299916040361517906150f9565b9061010060405160a060c085013585019460608635967f436f6d70616374286164647265737320617262697465722c6164647265737320855260208501977f73706f6e736f722c75696e74323536206e6f6e63652c75696e7432353620657889528060408701927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c845260200184880137820185209788865233905260408301903760e0810135828401528381013560c0840152013560e0820152209190565b60e09092919260a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b92919280602c146159df5760291461591d57634e487b7160e01b5f52605160045260245ffd5b6101009060a0604051918360c082013582019660608835987f436f6d70616374286164647265737320617262697465722c6164647265737320875260208701997f73706f6e736f722c75696e74323536206e6f6e63652c75696e743235362065788b528060408901927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c8452602001848a013782018720998a8852339052604085019037820160e081013584860152013560c0840152013560e0820152209190565b5060e09060a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b91909180603814615af45780603914615ad857600714615ace57634e487b7160e01b5f52605160045260245ffd5b614299915f615651565b505f615aec9160016001605c1b0393614192565b3560a01c1690565b5015612a6d573560a01c60016001605c1b031690565b80603814615b525780603914615b3e57600714615b3557634e487b7160e01b5f52605160045260245ffd5b61429992615651565b5091615aec9160016001605c1b0393614192565b5091615aec9160016001605c1b03936138cd565b9190615b8690615b758461543b565b94908591604036151790602d615ce7565b9190565b9190615b8690615b998461543b565b94908591604036151790602e615ce7565b91615bba615b869284602c6158f7565b9290938460403615179161532d565b91615bba615b86928460296158f7565b91615b86604093615c0093615bed8261543b565b959091863615936080851786602d615ce7565b958691179161532d565b91615b86604093615c0093615c1e8261543b565b959091863615936080851786602e615ce7565b939291909380603514615cdd5780603414615c6a57603714615c6157634e487b7160e01b5f52605160045260245ffd5b614299936140ed565b5090929167edcaa89a8229394060205282601452835f5260405f20805480831183151761077257829003905581601452835f5260405f208054908282019182106107655755335f5260205260018060a01b03169060018060a01b03165f516020615f655f395f51905f5260405fa4600190565b5061429993613697565b9594939190929580602d14615dce57602e14615d1157634e487b7160e01b5f52605160045260245ffd5b6040519360608501528584525f516020615f455f395f51905f526020850196338852466040870152141580615dbf575b60051b60800184209083019060a082013584019060c0823560051b93013560051b5f905f5b858110615d9057505050505060609260a09596926040926020018620608087015285520190372090565b8089016020848301870101358152828214615daf575b50602001615d66565b6020908101859052925082615da6565b60a08401356080860152615d41565b5060609260a095969286604093845197878901528588525f516020615f455f395f51905f52602089019633885246878b0152141580615e37575b60051b60800188208852830101358201803560051b809160200186376020018620608087015285520190372090565b8285013560808a0152615e08565b969594939291909680602714615f315780602414615f1c5780602114615f075780602314615ef75780601f14615ee25780602614615ecf5780602214615ec45780602514615eb157601714615ea857634e487b7160e01b5f52605160045260245ffd5b61429996614c4a565b50906017959493929187614299986152df565b508661429997614239565b5090601795949392918761429998614d26565b50916142999691601796959493361593614d26565b5090614299969291361593614239565b509161429996916017969594933615936151a7565b509161429996916017969594933615936152df565b50906017959493929187614299986151a756fe295feb095767cc67d7e74695da0adaddede54d7b7194a8a5426fe8f0351e03371b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288595ca9a66b8bbf0d2316e90dfa3df465f0790b277b25393a3ef4d67e1f50865057cdca950b17b5efc016b74b912d8527dfba5e404a688cbc3dab16cb943287fec25a7fee8000a237929ef9be08f2933c4b4f320b00b38809f3c7aa104d5421049fa164736f6c634300081c000a", + "sourceMap": "1085:8212:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8968:151;1085:8212;8968:151;;;1085:8212;;;;;7602:1659:68;1085:8212:36;7602:1659:68;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5321:14:68;1085:8212:36;5321:14:68;;;1085:8212:36;;;;;;;;;;;;;;;2310:667:59;1085:8212:36;2310:667:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8235:26:59;1085:8212:36;8235:26:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12498:568:27;1085:8212:36;12498:568:27;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5321:14:68;1085:8212:36;5321:14:68;;;1085:8212:36;;;;;;;;;;8235:26:59;1085:8212:36;8235:26:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4017:20:59;1085:8212:36;4017:20:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:667:59;1085:8212:36;2310:667:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4017:20:59;;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;;;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;:::-;1085:8212:36;;;;;;7602:1659:68;;1085:8212:36;;;;;;7602:1659:68;;;1085:8212:36;;7602:1659:68;;1085:8212:36;7602:1659:68;;;;;;;;;;;;;;;;;;;;1085:8212:36;7602:1659:68;;;;1085:8212:36;7602:1659:68;;;;1085:8212:36;7602:1659:68;;;;12790:117:60;7602:1659:68;;;;;1085:8212:36;7602:1659:68;-1:-1:-1;;;7602:1659:68;;;9531:2564:27;;;;;;;;7602:1659:68;9531:2564:27;;;1085:8212:36;9531:2564:27;;;;;1085:8212:36;9531:2564:27;;;1085:8212:36;9531:2564:27;;;;;;;;;;;;;;;;;;;1085:8212:36;9531:2564:27;;;;;;;;;;;;;;7602:1659:68;1085:8212:36;9531:2564:27;1085:8212:36;9531:2564:27;-1:-1:-1;;;;;;;;;;;1085:8212:36;;9531:2564:27;1085:8212:36;9531:2564:27;;1085:8212:36;;;;;;;9531:2564:27;;1085:8212:36;9531:2564:27;1085:8212:36;7602:1659:68;9531:2564:27;;;1085:8212:36;9531:2564:27;1085:8212:36;7602:1659:68;9531:2564:27;;;1085:8212:36;9531:2564:27;;1085:8212:36;9531:2564:27;;;1085:8212:36;9531:2564:27;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;9531:2564:27;1085:8212:36;7602:1659:68;9531:2564:27;7602:1659:68;;;;;;;;;;;;;;1085:8212:36;7602:1659:68;;;1085:8212:36;7602:1659:68;1085:8212:36;;;;;;;;;;;:::i;:::-;3669:19:59;;;1085:8212:36;;3669:19:59;;;;:::i;:::-;3877:13;1085:8212:36;3872:369:59;3892:19;;;;;;4261:1050;;;;;2244:19:47;5626:9:36;4261:1050:59;;1085:8212:36;2278:9:47;4261:1050:59;1085:8212:36;;4261:1050:59;-1:-1:-1;;;;;;;;;;;4261:1050:59;;;4017:20;4261:1050;;;;1085:8212:36;4261:1050:59;;;4017:20;4261:1050;;;;;;;;;;;;;;4086:11:68;4261:1050:59;4086:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;:::-;1085:8212:36;;;2062:9:69;:::i;:::-;1085:8212:36;:::i;:::-;2244:19:47;:::i;:::-;2278:9;;:::i;:::-;4017:20:59;1085:8212:36;;;;;;4261:1050:59;;1085:8212:36;4261:1050:59;;4017:20;4261:1050;;;;3913:3;4017:13;;;1085:8212:36;4017:13:59;:20;:13;;;;;:::i;:::-;:20;1085:8212:36;;;;4191:22:59;;;4175:51;3913:3;1085:8212:36;3877:13:59;;;;1085:8212:36;;;;;11806:170:45;11967:8;17305:9:43;1085:8212:36;;;:::i;:::-;19364:12:42;19230:225;19364:34;:12;;;;;;:::i;:::-;:34;;:::i;:::-;19230:225;;:::i;:::-;30600:29:46;;;;:58;:29;;;1085:8212:36;30600:58:46;:::i;:::-;30670:18;;;:::i;:::-;30401:308;11806:170:45;:::i;:::-;1085:8212:36;;;;;;;;;;;;;21628:250:46;18259:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;10999:39;:12;;;;;;:::i;:::-;:39;;:::i;:::-;20153:30;11040:45;20153:30;:::i;:::-;5067:83:55;10999:12:42;21469:68;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;21801:36:46;21809:1;1085:8212:36;5067:83:55;;21801:36:46;:::i;:::-;21839:18;;;:::i;:::-;21628:250;:57;:250;:::i;1085:8212:36:-;;;;;28390:289:46;14631:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;8453:34;:12;;;;;;:::i;:34::-;20153:30;8797:51;20153:30;:::i;:::-;28542:29:46;:58;1085:8212:36;28542:29:46;;1085:8212:36;28542:58:46;:::i;:::-;8453:12:42;28602:36:46;28610:1;1085:8212:36;5067:83:55;;28602:36:46;:::i;:::-;28640:18;;;:::i;:::-;28390:289;:52;:289;:::i;1085:8212:36:-;;;;;10457:191:46;5049:9:43;1085:8212:36;;;:::i;:::-;10601:5:46;25394:148:42;25489:4;5067:83:55;;;25394:148:42;;:::i;:::-;1085:8212:36;;;;10618:18:46;;:::i;:::-;10457:191;:52;:191;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;12605::43;1085:8212:36;;;:::i;:::-;13766:86:42;;;:::i;:::-;18060:18:46;18043:5;18060:18;;:::i;:::-;17935:155;1085:8212:36;5689:83:55;9882:170:45;;;:::i;1085:8212:36:-;;;;;11364:229:46;5689:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;9563:34;:12;1085:8212:36;9563:12:42;;;;:::i;:34::-;20153:30;9914:26;20153:30;:::i;:::-;5067:83:55;1085:8212:36;21469:68:42;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;11516:36:46;11524:1;1085:8212:36;5067:83:55;;11516:36:46;:::i;:::-;11554:18;;;:::i;:::-;11364:229;:52;:229;:::i;1085:8212:36:-;;;-1:-1:-1;;1085:8212:36;;;;;1853:80:53;1085:8212:36;;:::i;:::-;1853:80:53;:::i;:::-;2055:9;;2039:10;;2055:9;:::i;:::-;1085:8212:36;;;;;;;;;;;13776:175:45;13942:8;7463:9:43;1085:8212:36;;;:::i;:::-;13274:124:42;13358:39;:12;1085:8212:36;13358:12:42;;;;:::i;:39::-;13274:124;;:::i;:::-;13987:18:46;1085:8212:36;13987:18:46;;:::i;:::-;13863:154;1085:8212:36;5689:83:55;13776:175:45;;;:::i;1085:8212:36:-;;;;;15363:230:46;8903:9:43;1085:8212:36;;;:::i;:::-;;5067:83:55;15509:5:46;20153:30:42;22104:98;1085:8212:36;5067:83:55;;22104:98:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;22104:98:42;20153:30;11040:45;20153:30;:::i;:::-;21469:68;15516:36:46;15524:1;21469:68:42;;;;;:::i;:::-;1085:8212:36;5067:83:55;15516:36:46;:::i;:::-;15554:18;;;:::i;:::-;15363:230;:47;:230;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;301:99:58;1085:8212:36;301:99:58;1085:8212:36;;301:99:58;1085:8212:36;;;;;29732:257:46;16425:9:43;1085:8212:36;;;:::i;:::-;15198:185:42;15301:34;:12;;;;;;:::i;:34::-;15198:185;;:::i;:::-;29880:29:46;;15301:12:42;29880:58:46;:29;;;1085:8212:36;29880:58:46;:::i;:::-;29950:18;;;:::i;1085:8212:36:-;;;;;29732:257:46;16209:8:43;1085:8212:36;;;:::i;:::-;;;;;;9297:9:43;1085:8212:36;;;:::i;:::-;;5067:83:55;;20153:30:42;22563:107;22651:4;5067:83:55;;22563:107:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;22563:107:42;20153:30;11894:54;20153:30;:::i;:::-;21469:68;24111:5:46;21469:68:42;;;;;:::i;:::-;1085:8212:36;24178:36:46;24186:1;24118:58;:29;;;1085:8212:36;24118:58:46;:::i;24178:36::-;24216:18;;;:::i;:::-;23940:315;1085:8212:36;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::i;:::-;11812:6:53;6995:93;1085:8212:36;;:::i;:::-;6995:23:53;;;:::i;:::-;:93;:::i;:::-;11523:372;;;:::i;:::-;1085:8212:36;;;7221:10:53;;11812:6;;:::i;:::-;;;:::i;:::-;4473:27:63;4481:5;1085:8212:36;5067:83:55;;1085:8212:36;;;;7221:10:53;4473:27:63;:::i;1085:8212:36:-;;;;;;10681:8:43;1085:8212:36;;;:::i;:::-;25434:5:46;26926:304:42;27055:118;27154:4;1085:8212:36;5067:83:55;;27055:118:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;26926:304:42;26919:311;;;;25441:58:46;:29;;;1085:8212:36;25441:58:46;:::i;:::-;25511:18;;;:::i;1085:8212:36:-;;;;;14399:223:46;7659:8:43;1085:8212:36;;;:::i;:::-;17004:12:42;16907:181;17004:39;:12;;;;;;:::i;:39::-;16907:181;;:::i;:::-;14583:18:46;;;;;;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;2283:14:70;13542:488:60;;;11487:137;;;;;13542:488;;;1790:15:70;1085:8212:36;1981:10:70;;1962:34;1981:10;;;6656:622;;6777:495;;;;;;;;;;;;;;;;6656:622;1962:34;2006:168;2283:14;:::i;1085:8212:36:-;;;;;17355:240:46;12003:9:43;1085:8212:36;;;:::i;:::-;17511:5:46;10316:77:42;;;:::i;:::-;1085:8212:36;;;17518:36:46;17526:1;1085:8212:36;5067:83:55;;17518:36:46;:::i;:::-;17556:18;;;:::i;1085:8212:36:-;;;;;13314:239:46;6913:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;9873:39;:12;1085:8212:36;9873:12:42;;;;:::i;20153:30::-;5067:83:55;1085:8212:36;21469:68:42;5067:83:55;;21469:68:42;;;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;18675::43;1085:8212:36;;;:::i;:::-;20153:30:42;12246:39;:12;;;;;;:::i;20153:30::-;5067:83:55;21469:68:42;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;12246:12:42;31852:58:46;:29;;;1085:8212:36;31852:58:46;:::i;:::-;1085:8212:36;31912:36:46;31920:1;1085:8212:36;5067:83:55;;31912:36:46;:::i;:::-;31950:18;;;:::i;:::-;31654:335;13776:175:45;:::i;1085:8212:36:-;;;;;10457:191:46;4853:8:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;8021:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;20598:64;;32705:531:59;1085:8212:36;32705:531:59;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;20598:64:42;20153:30;20664:42;20153:30;:::i;:::-;1085:8212:36;;5067:83:55;14967:4:46;14973:36;14981:1;5067:83:55;;14973:36:46;:::i;:::-;15011:18;;;:::i;:::-;14865:176;15174:162:45;;:::i;1085:8212:36:-;;;;;25784:289:46;11625:9:43;1085:8212:36;;;:::i;:::-;;;;:::i;:::-;25936:29:46;:58;1085:8212:36;25936:29:46;;1085:8212:36;25936:58:46;:::i;:::-;25929:5;25996:36;26004:1;1085:8212:36;5067:83:55;;25996:36:46;:::i;:::-;26034:18;;;:::i;:::-;25784:289;:52;:289;:::i;1085:8212:36:-;;;;;15174:162:45;9475:8:43;1085:8212:36;;;:::i;:::-;16001:5:46;1085:8212:36;5067:83:55;23950:250:42;24052:100;1085:8212:36;5067:83:55;;24052:100:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24052:100:42;23950:250;;:::i;:::-;23943:257;;;16018:18:46;;:::i;1085:8212:36:-;;;;2310:667:59;3084:71:68;1085:8212:36;;;:::i;:::-;;2310:667:59;-1:-1:-1;;;;;;;;;;;2310:667:59;;;;;;;;1085:8212:36;2310:667:59;;;3010:8:68;2310:667:59;1085:8212:36;2310:667:59;;;;;;;;;;;2947:11:68;2310:667:59;2947:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;3010:8:68:-;2310:667:59;3106:18:68;12790:117:60;3106:18:68;;;:::i;:::-;3139:15;;1085:8212:36;2310:667:59;;5148:8:36;3084:71:68;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;692:938:58;;1085:8212:36;692:938:58;1085:8212:36;692:938:58;;;1085:8212:36;692:938:58;;;;;;;;;;1085:8212:36;692:938:58;1085:8212:36;692:938:58;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;692:938:58;;;;;1085:8212:36;692:938:58;;;;;;1085:8212:36;;;;;11364:229:46;5515:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;;:::i;:::-;4965:661:49;1085:8212:36;4965:661:49;;;;453:10;4965:661;;;1085:8212:36;4965:661:49;1085:8212:36;4965:661:49;;;;;;1085:8212:36;4965:661:49;;;;;1085:8212:36;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;13446:63:52;;;;;;;;:::i;:::-;13598:158;;;;;;;;;;;;;;1085:8212:36;13598:158:52;;13860:100;;;;;:::i;:::-;1085:8212:36;;;;;;6305:83:55;;1085:8212:36;6305:83:55;;7578:9012:51;;;;:::i;:::-;17315:570;;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;1085:8212:36;17315:570:51;1085:8212:36;17315:570:51;1085:8212:36;;17315:570:51;1085:8212:36;17315:570:51;;;1085:8212:36;17315:570:51;7205:121:52;;14478:559;1085:8212:36;14478:559:52;;;;;1085:8212:36;14478:559:52;;;;;;;;;;;;;;;;;;;5067:83:55;1085:8212:36;5067:83:55;15198:9:52;;;:::i;:::-;15398:28;;;;:::i;:::-;13542:488:60;;;;;;;3956:20:63;;;;:::i;:::-;1085:8212:36;;;;;;;:::i;:::-;;;;;;;;;13776:175:45;13942:8;20665:9:43;1085:8212:36;;;:::i;:::-;19807:12:42;19668:235;19807:39;:12;;;;;;:::i;19668:235::-;33257:29:46;;;;:58;:29;;;1085:8212:36;33257:58:46;:::i;:::-;33327:18;;;:::i;1085:8212:36:-;;;;;16430:191:46;10467:9:43;1085:8212:36;;;:::i;:::-;16574:5:46;26376:277:42;26496:109;26586:4;1085:8212:36;5067:83:55;;26496:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;26496:109:42;26376:277;;:::i;:::-;26369:284;;;;16591:18:46;;:::i;1085:8212:36:-;;;;;17355:240:46;11809:8:43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;7275::43;1085:8212:36;;;:::i;:::-;;;;;18482:223:46;13647:9:43;1085:8212:36;;;:::i;:::-;18649:5:46;17537:104:42;;;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;6573::43;1085:8212:36;;;:::i;:::-;20153:30:42;6898:39;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;6898:12:42;12924:36:46;12932:1;5067:83:55;;12924:36:46;:::i;:::-;12962:18;;;:::i;:::-;12806:186;13776:175:45;;:::i;1085:8212:36:-;;;;;23301:279:46;8545:9:43;1085:8212:36;;;:::i;:::-;7992:40:42;;;:::i;:::-;23443:29:46;:58;1085:8212:36;23443:29:46;;1085:8212:36;23443:58:46;:::i;:::-;23436:5;23503:36;23511:1;1085:8212:36;5067:83:55;;23503:36:46;:::i;:::-;23541:18;;;:::i;:::-;23301:279;:47;:279;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2251:90:55;;;1085:8212:36;;9307:42:60;1085:8212:36;12790:117:60;;;-1:-1:-1;;;;;12790:117:60;9307:42;:::i;:::-;1085:8212:36;;;11487:137:60;;;;;1085:8212:36;;;;;;;;11032:107:60;;;1085:8212:36;;;;;;;;;;;;-1:-1:-1;;;5394:39:48;;1085:8212:36;;-1:-1:-1;;;;;1085:8212:36;;;;5394:39:48;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;5394:39:48;1085:8212:36;5394:18:48;-1:-1:-1;;;;;1085:8212:36;5394:39:48;;;;;;1085:8212:36;5394:39:48;1085:8212:36;5394:39:48;;;1085:8212:36;;;;;;;;;:::i;5394:39:48:-;;;;;;1085:8212:36;5394:39:48;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;2639:9;1085:8212;;;;;;:::i;:::-;;;:::i;:::-;2639:9;;:::i;1085:8212::-;;;;;11806:170:45;11967:8;16003:9:43;1085:8212:36;;;:::i;:::-;14015:167:42;14109:34;:12;;;;;;:::i;:34::-;14015:167;;:::i;:::-;20187:18:46;14109:12:42;20187:18:46;;:::i;:::-;20062:155;1085:8212:36;5689:83:55;11806:170:45;;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;14447:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;7498:34;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;7498:12:42;19082:36:46;19090:1;5067:83:55;;19082:36:46;:::i;:::-;19120:18;;;:::i;:::-;18964:186;11806:170:45;;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;3827::43;1085:8212:36;;;:::i;:::-;6447:44:42;;;:::i;:::-;1085:8212:36;;5067:83:55;9026:4:46;9032:36;;;:::i;:::-;9070:18;;;:::i;:::-;8924:176;9882:170:45;;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;11071::43;1085:8212:36;;;:::i;:::-;20153:30:42;20598:64;;32705:531:59;1085:8212:36;32705:531:59;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;20153:30:42;1085:8212:36;;5067:83:55;16949:4:46;16955:36;16963:1;5067:83:55;;16955:36:46;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;6702:189:27;;1085:8212:36;6702:189:27;;;1085:8212:36;6702:189:27;1085:8212:36;6702:189:27;;;;1085:8212:36;;;;;;;;;;;;;15174:162:45;2675:9:43;1085:8212:36;;;:::i;:::-;;5067:83:55;20153:30:42;;;20382:26;20153:30;:::i;:::-;7202:36:46;;;;:::i;:::-;7240:18;;;:::i;:::-;7077:193;7182:4;5067:83:55;;15174:162:45;;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;5857::43;1085:8212:36;;;:::i;:::-;13002:114:42;13081:34;:12;1085:8212:36;13081:12:42;;;;:::i;13002:114::-;12007:18:46;1085:8212:36;12007:18:46;;:::i;1085:8212:36:-;;;;;9412:229:46;4147:8:43;1085:8212:36;;;:::i;:::-;;9269:57:42;;;:::i;:::-;1085:8212:36;;;9564:36:46;1085:8212:36;5067:83:55;9564:36:46;:::i;1085:8212:36:-;;;;;20609:223:46;16631:8:43;1085:8212:36;;;:::i;:::-;17952:12:42;17840:185;17952:34;:12;;;;;;:::i;17840:185::-;20793:18:46;;;;;;:::i;1085:8212:36:-;;;;;12409:191:46;6221:8:43;1085:8212:36;;;:::i;:::-;16634:12:42;16542:171;16634:34;:12;;;;;;:::i;1085:8212:36:-;;;;;12409:191:46;6417:9:43;1085:8212:36;;;:::i;:::-;;1853:80:53;4473:27:63;1085:8212:36;;;:::i;:::-;1853:80:53;;;;:::i;:::-;2055:9;;;2039:10;;2055:9;:::i;:::-;4481:5:63;1085:8212:36;5067:83:55;;2039:10:53;;4473:27:63;:::i;1085:8212:36:-;;;;;32359:267:46;19519:8:43;1085:8212:36;;;:::i;:::-;15560:195:42;15668:39;:12;;;;;;:::i;15560:195::-;32517:29:46;;15668:12:42;32517:58:46;:29;;;1085:8212:36;32517:58:46;:::i;:::-;32587:18;;;:::i;:::-;32359:267;:57;:267;:::i;1085:8212:36:-;;;;;27126:257:46;13009:8:43;1085:8212:36;;;:::i;:::-;14922:104:42;;;:::i;:::-;27274:29:46;;27267:5;27274:58;:29;;;1085:8212:36;27274:58:46;:::i;:::-;27344:18;;;:::i;1085:8212:36:-;;;;;;;:::i;:::-;3669:19:59;;;1085:8212:36;;3669:19:59;;;;:::i;:::-;3877:13;1085:8212:36;3872:369:59;3892:19;;;;;;4261:1050;;;;;2244:19:47;5465:8:36;4261:1050:59;;1085:8212:36;2278:9:47;4261:1050:59;1085:8212:36;;4261:1050:59;-1:-1:-1;;;;;;;;;;;4261:1050:59;;;4017:20;4261:1050;;;;1085:8212:36;4261:1050:59;;;4017:20;4261:1050;;;;;;;;;;;;;;4086:11:68;4261:1050:59;4086:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;3913:3:59:-;4017:13;;;1085:8212:36;4017:13:59;:20;:13;;;;;:::i;:::-;:20;1085:8212:36;;;;4191:22:59;;;4175:51;3913:3;1085:8212:36;3877:13:59;;;;1085:8212:36;;;;;11806:170:45;11967:8;14271::43;1085:8212:36;;;:::i;:::-;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;10704:9:52;1085:8212:36;10904:28:52;1085:8212:36;;;;;;:::i;:::-;9640:63:52;;;;;;;;:::i;:::-;1085:8212:36;;10117:55:52;1085:8212:36;;;;;;;5067:83:55;;9783:60:52;1085:8212:36;5067:83:55;;9783:60:52;:::i;:::-;9948:100;;;;:::i;:::-;10117:55;;;;:::i;:::-;1085:8212:36;10279:264:52;;;;;;;5067:83:55;;10704:9:52;;:::i;:::-;10904:28;;:::i;:::-;1085:8212:36;;;;;;;:::i;:::-;;;;;9882:170:45;10043:8;4489::43;1085:8212:36;;;:::i;:::-;12559:66:42;;;:::i;:::-;10055:18:46;1085:8212:36;10055:18:46;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;15805::43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;17481::43;1085:8212:36;;;:::i;:::-;20153:30:42;7774:39;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;7774:12:42;21198:36:46;21206:1;5067:83:55;;21198:36:46;:::i;1085:8212:36:-;;;;;24603:247:46;10065:9:43;1085:8212:36;;;:::i;:::-;24400:277:42;24511:109;24601:4;1085:8212:36;5067:83:55;;24511:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24400:277:42;24393:284;;24734:5:46;24741:58;:29;;;1085:8212:36;24741:58:46;:::i;:::-;24811:18;;;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;18897:9:43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;17667:9:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;2519:8:43;1085:8212:36;;;:::i;:::-;;;;;9882:170:45;10043:8;12417:9:43;1085:8212:36;;;:::i;:::-;11488:95:42;;;:::i;:::-;26631:29:46;;26624:5;26631:58;:29;;;1085:8212:36;26631:58:46;:::i;:::-;1085:8212:36;26691:36:46;26699:1;1085:8212:36;5067:83:55;;26691:36:46;:::i;:::-;26729:18;;;:::i;:::-;26443:325;9882:170:45;:::i;1085:8212:36:-;;;;;6995:93:53;11812:6;1085:8212:36;;;:::i;:::-;6995:23:53;;;;;;:::i;:93::-;11523:372;;;;:::i;:::-;7221:10;11812:6;;:::i;:::-;;;:::i;1085:8212:36:-;;;;;15174:162:45;8187:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;4635:9:35;4621:10;:23;4617:78;;4770:21;:39;;;;1085:8212:36;4766:101:35;;1085:8212:36;4960:18:35;;;;9738:2;9726:9;1085:8212:36;9691:55:35;1085:8212:36;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;4948:31:35;4944:89;;1085:8212:36;;;-1:-1:-1;;1085:8212:36;5097:4:35;1085:8212:36;;;;4944:89:35;5002:20;;;1085:8212:36;5002:20:35;1085:8212:36;;5002:20:35;1085:8212:36;;;4766:101:35;4832:24;;;1085:8212:36;4832:24:35;1085:8212:36;;4832:24:35;4770:39;1085:8212:36;;;;;4770:39:35;;4617:78;4667:17;;;1085:8212:36;4667:17:35;1085:8212:36;;4667:17:35;1085:8212:36;;;;;11806:170:45;11967:8;5351:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;6658:34;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;6658:12:42;10984:36:46;10992:1;5067:83:55;;10984:36:46;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;3983:9:43;1085:8212:36;;;:::i;:::-;;;;;;;:::i;:::-;7189:18:59;;;;;;;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;7393:26:59;;;:::i;:::-;7481:19;1085:8212:36;7593:13:59;1085:8212:36;7608:12:59;;;;;;9381:470;;;;;1085:8212:36;9381:470:59;1085:8212:36;9381:470:59;8235:26;4546:18:47;9381:470:59;;8854:398;;9381:470;1085:8212:36;;:::i;:::-;;6633:32:68;6597:18;;;;:::i;:::-;8235:26:59;6617:14:68;;1085:8212:36;;;:::i;:::-;;;:::i;:::-;4546:18:47;:::i;:::-;1085:8212:36;4773:12:47;;;;;;8235:26:59;1085:8212:36;;;;;;4787:3:47;4920:12;5090:9;6109:8:36;4920:12:47;1085:8212:36;4920:12:47;;;;:::i;:::-;5056:18;8235:26:59;5056:18:47;;;;:::i;:::-;1085:8212:36;;;5090:9:47;;:::i;:::-;1085:8212:36;4758:13:47;;7622:3:59;7756:12;;;;;:::i;:::-;1085:8212:36;8235:26:59;;;;;;;:::i;:::-;8452:13;1085:8212:36;8447:389:59;8467:18;;;;;;8854:398;;;;1085:8212:36;8854:398:59;;1085:8212:36;8854:398:59;1085:8212:36;8854:398:59;;;1085:8212:36;;8235:26:59;8854:398;;;;;1085:8212:36;7593:13:59;;8487:3;8596:11;;;1085:8212:36;8596:11:59;8235:26;8596:11;;;;;:::i;:::-;:18;1085:8212:36;;;;8783:21:59;;;8767:50;8487:3;1085:8212:36;8452:13:59;;;;1085:8212:36;;;;;;;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;2865:34:70;2884:10;;6656:622;;6777:495;;;;;;;;;;;;;;;;6656:622;2865:34;2910:506;;;;;;1085:8212:36;3525:23:70;2910:506;;1085:8212:36;5067:83:55;3525:23:70;;:::i;2910:506::-;;;1085:8212:36;2910:506:70;2884:10;1085:8212:36;2910:506:70;1085:8212:36;2910:506:70;;;;1085:8212:36;;;;;;9095:8:43;1085:8212:36;;;:::i;:::-;;;;3200:18:47;1085:8212:36;;;:::i;:::-;3200:18:47;3081;5822::59;;;1085:8212:36;5822:18:59;6579:76;5822:18;;;;:::i;:::-;1085:8212:36;5947:541:59;;;;;;;;;6579:76;;:::i;:::-;5259:112:68;5301:18;;;;:::i;:::-;5321:14;;;1085:8212:36;5259:112:68;;:::i;1085:8212:36:-;3081:18:47;;:::i;:::-;3200;;;;;:::i;:::-;3365:13;1085:8212:36;3380:18:47;;;;;;5321:14:68;1085:8212:36;;;;;;3400:3:47;3532:12;3636:64;3532:12;1085:8212:36;3532:12:47;;;;:::i;:::-;5321:14:68;3683:16:47;;1085:8212:36;;;3646:10:47;;5943:9:36;3636:64:47;:::i;:::-;;1085:8212:36;3365:13:47;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;9865:71:53;11812:6;1085:8212:36;;;;;:::i;:::-;9865:23:53;;;;:::i;:::-;:71;:::i;:::-;11523:372;;;;:::i;:::-;1085:8212:36;;11812:6:53;;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;14105:9:43;1085:8212:36;;;:::i;:::-;27987:5:46;18900:122:42;;;:::i;:::-;27994:29:46;;;;:58;:29;;;1085:8212:36;27994:58:46;:::i;:::-;28064:18;;;:::i;1085:8212:36:-;;;;;7584:197:46;2829:8:43;1085:8212:36;;;:::i;:::-;;5067:83:55;1085:8212:36;20153:30:42;1085:8212:36;5067:83:55;;20153:30:42;21800:26;20153:30;:::i;:::-;21469:68;7713:36:46;21469:68:42;;;;;:::i;:::-;1085:8212:36;7713:36:46;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;19303:9:43;1085:8212:36;;;:::i;:::-;14350:177:42;14449:39;:12;;;;;;:::i;14350:177::-;22363:18:46;14449:12:42;22363:18:46;;:::i;1085:8212:36:-;;;;;24603:247:46;9859:8:43;1085:8212:36;;;:::i;:::-;;;;;32359:267:46;19745:9:43;1085:8212:36;;;:::i;:::-;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;2893:10;1085:8212;2423:56:64;1085:8212:36;;;;;;:::i;:::-;2893:10;;;;;;:::i;:::-;1085:8212;;2423:56:64;;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;4290:42:40;-1:-1:-1;;;;;12790:117:60;;;;4290:42:40;:::i;:::-;1085:8212:36;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;11487:137:60;;;;;;1085:8212:36;:::i;:::-;;;;11032:107:60;;;1085:8212:36;:::i;:::-;;;;;;;11806:170:45;11967:8;17071::43;1085:8212:36;;;:::i;:::-;;;;;;;:::i;:::-;6119:335:27;;;;;;;;1085:8212:36;6119:335:27;1085:8212:36;6119:335:27;1085:8212:36;6119:335:27;;1085:8212:36;6119:335:27;;1085:8212:36;;;;;;;;;;;11806:170:45;11967:8;5195::43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;19095::43;1085:8212:36;;;:::i;:::-;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;;;;;;;;;;13373:554:27;1085:8212:36;13373:554:27;;;;1085:8212:36;13373:554:27;;;;;;1085:8212:36;13373:554:27;;;;;;;1085:8212:36;13373:554:27;;1085:8212:36;;;13943:4:27;1085:8212:36;;;;;;;;13776:175:45;13942:8;6739:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;:::i;:::-;6658:53:52;;;;;;:::i;:::-;1085:8212:36;;;;;;;;;6305:83:55;7578:9012:51;;;;;;:::i;:::-;17315:570;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;1085:8212:36;;17315:570:51;1085:8212:36;17315:570:51;;;1085:8212:36;17315:570:51;7205:121:52;;1085:8212:36;7205:121:52;;;;;;5067:83:55;1085:8212:36;5067:83:55;7488:9:52;;;:::i;:::-;7632:14;;;:::i;:::-;13542:488:60;;;;;;;3956:20:63;;;;:::i;:::-;7745:11:52;;:::i;:::-;1085:8212:36;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;8258:58:53;8422:9;8258:58;;;;:::i;:::-;8422:9;;;;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;6035:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;5088:29:48;;1085:8212:36;;;5088:29:48;;;1085:8212:36;-1:-1:-1;1085:8212:36;5088:29:48;1085:8212:36;5088:18:48;-1:-1:-1;;;;;1085:8212:36;5088:29:48;;;;;;1085:8212:36;5088:29:48;1085:8212:36;5088:29:48;;;1085:8212:36;;;;;;;;:::i;:::-;;;;;9882:170:45;10043:8;13871::43;1085:8212:36;;;:::i;:::-;;;;;9882:170:45;10043:8;12205::43;1085:8212:36;;;:::i;:::-;;;;;9882:170:45;10043:8;4667:9:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;3151:8:43;1085:8212:36;;;:::i;:::-;12559:66:42;;;:::i;:::-;8175:18:46;1085:8212:36;8175:18:46;;:::i;:::-;8071:134;1085:8212:36;5689:83:55;15174:162:45;;;:::i;1085:8212:36:-;;;;;3053:53:64;1085:8212:36;;;:::i;:::-;3053:53:64;6411:531:63;6273:675;6411:531;6273:675;6411:531;;;;;;;;;;;;;;;;;;;;;6273:675;;3053:53:64;1085:8212:36;;7168:15;;7158:25;;1085:8212;;;;;;;;;;;:::i;:::-;12498:568:27;;;;;;;;;;;1085:8212:36;12498:568:27;;;1085:8212:36;12498:568:27;;1085:8212:36;12498:568:27;;;;;;;;1085:8212:36;12498:568:27;1085:8212:36;12498:568:27;;;1085:8212:36;;13082:4:27;1085:8212:36;;;;;;;;;10905:9:43;1085:8212:36;;;:::i;:::-;;;;;18482:223:46;13431:8:43;1085:8212:36;;;:::i;:::-;;;;;25784:289:46;11431:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;1317:8:64;1085:8212:36;;;;;;6849:10;1317:8:64;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;4972:2:27;1085:8212:36;;;;;;;;9882:170:45;10043:8;12803:9:43;1085:8212:36;;;:::i;:::-;;;;;;;:::i;:::-;7189:18:59;;;;;;;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;7393:26:59;;;:::i;:::-;7481:19;1085:8212:36;7593:13:59;1085:8212:36;7608:12:59;;;;;;9381:470;;;;;1085:8212:36;9381:470:59;1085:8212:36;9381:470:59;8235:26;4546:18:47;9381:470:59;;8854:398;;9381:470;1085:8212:36;;:::i;4546:18:47:-;1085:8212:36;4773:12:47;;;;;;8235:26:59;1085:8212:36;;;;;;4787:3:47;4920:12;5090:9;6280::36;4920:12:47;1085:8212:36;4920:12:47;;;;:::i;5090:9::-;1085:8212:36;4758:13:47;;7622:3:59;7756:12;;;;;:::i;:::-;1085:8212:36;8235:26:59;;;;;;;:::i;:::-;8452:13;1085:8212:36;8447:389:59;8467:18;;;;;;8854:398;;;;1085:8212:36;8854:398:59;;1085:8212:36;8854:398:59;1085:8212:36;8854:398:59;;;1085:8212:36;;8235:26:59;8854:398;;;;;1085:8212:36;7593:13:59;;8487:3;8596:11;;;1085:8212:36;8596:11:59;8235:26;8596:11;;;;;:::i;:::-;:18;1085:8212:36;;;;8783:21:59;;;8767:50;8487:3;1085:8212:36;8452:13:59;;;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;8244:18;;:::i;1085:8212::-;;;;;27126:257:46;13225:9:43;1085:8212:36;;;:::i;:::-;;;;;23301:279:46;8361:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;2423:56:64;1085:8212:36;;;;;;;;:::i;:::-;;;2423:56:64;;:::i;1085:8212:36:-;;;;;15174:162:45;3319:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;:::i;:::-;6777:495:70;;;4416:10;6777:495;;;;;;;;;;;;;;4442:510;;;;;;;;;5004:44;1085:8212:36;;;;;4416:10:70;;5004:44;:::i;4442:510::-;;;1085:8212:36;4442:510:70;1085:8212:36;4442:510:70;1085:8212:36;4442:510:70;;1085:8212:36;;;;;13776:175:45;13942:8;20421::43;1085:8212:36;;;:::i;:::-;;;;;28390:289:46;14825:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1085:8212:36;;;;8794:2:60;8778:18;;;8720:10;:23;;8748:21;;:25;;1422:62:55;;8778:18:60;:106;;1085:8212:36;1422:62:55;;;2730:33:40;2726:278;;2663:28:60;;;:::i;:::-;2702:1053;;;;;;;;;;;;;1085:8212:36;2702:1053:60;;;1085:8212:36;2702:1053:60;;;;1085:8212:36;;2702:1053:60;-1:-1:-1;;;;;1085:8212:36;;;;;;;2702:1053:60;;;1085:8212:36;2702:1053:60;1085:8212:36;2702:1053:60;1085:8212:36;2702:1053:60;;;;2726:278:40;2779:215;1085:8212:36;2779:215:40;1085:8212:36;2779:215:40;1085:8212:36;2779:215:40;;8778:106:60;1085:8212:36;;;;;;;;14773:133:28;;1085:8212:36;14773:133:28;;1085:8212:36;14773:133:28;;-1:-1:-1;;;;;1085:8212:36;8823:60:60;;-1:-1:-1;;;;;;8801:8:60;;1085:8212:36;;8801:16:60;;;905:63:55;;8778:106:60;;;;1085:8212:36;;;;;;;;;;;;;;;;2310:667:59;3084:71:68;1085:8212:36;;;:::i;:::-;;2310:667:59;-1:-1:-1;;;;;;;;;;;2310:667:59;;;;;;;;1085:8212:36;2310:667:59;;;3010:8:68;2310:667:59;1085:8212:36;2310:667:59;;;;;;;;;;;2947:11:68;2310:667:59;2947:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;3010:8:68:-;2310:667:59;3106:18:68;12790:117:60;3106:18:68;;;:::i;:::-;3139:15;;1085:8212:36;2310:667:59;;5309:9:36;3084:71:68;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;11247:9:43;1085:8212:36;;;:::i;:::-;;;;;22797:233:46;20187:9:43;1085:8212:36;;;:::i;:::-;18346:12:42;18229:195;18346:39;:12;;;;;;:::i;1085:8212:36:-;;;;;30973:299:46;18065:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;8756:39;:12;;;;;;:::i;20153:30::-;31135:29:46;:58;1085:8212:36;31135:29:46;;1085:8212:36;31135:58:46;:::i;:::-;8756:12:42;31195:36:46;31203:1;1085:8212:36;5067:83:55;;31195:36:46;:::i;:::-;31233:18;;;:::i;1085:8212:36:-;;;;3200:18:47;1085:8212:36;;;:::i;:::-;3200:18:47;3081;5822::59;;;1085:8212:36;5822:18:59;6579:76;5822:18;;;;:::i;3200::47:-;3365:13;1085:8212:36;3380:18:47;;;;;;5321:14:68;1085:8212:36;;;;;;3400:3:47;3532:12;3636:64;3532:12;1085:8212:36;3532:12:47;;;;:::i;:::-;5321:14:68;3683:16:47;;1085:8212:36;;;3646:10:47;;5782:8:36;3636:64:47;:::i;:::-;;1085:8212:36;3365:13:47;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;;486:99:58;1085:8212:36;486:99:58;1085:8212:36;;486:99:58;1085:8212:36;;;;;16430:191:46;10261:8:43;1085:8212:36;;;:::i;:::-;;;;;7584:197:46;2993:9:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;9663:9:43;1085:8212:36;;;:::i;:::-;;;;;11806:170:45;11967:8;15405::43;1085:8212:36;;;:::i;:::-;20153:30:42;11858:34;:12;;;;;;:::i;20153:30::-;5067:83:55;21469:68:42;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;11858:12:42;29237:58:46;:29;;;1085:8212:36;29237:58:46;:::i;:::-;1085:8212:36;29297:36:46;29305:1;1085:8212:36;5067:83:55;;29297:36:46;:::i;:::-;29335:18;;;:::i;1085:8212:36:-;;;;;20609:223:46;16847:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;5874:31:70;1085:8212:36;;:::i;:::-;;;5874:31:70;6656:622;;6777:495;;;;;;;;;;;;;;;;6656:622;5874:31;5916:329;1085:8212:36;;5916:329:70;;;;;;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;8547:181:46;3681:9:43;1085:8212:36;;;:::i;:::-;8681:5:46;25394:148:42;1085:8212:36;;5067:83:55;;25394:148:42;;:::i;1085:8212:36:-;;;;;13314:239:46;7097:9:43;1085:8212:36;;;:::i;:::-;;;;;15363:230:46;8719:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;1457:10:40;:58;:29;:10;:29;:::i;:::-;:58;:::i;:::-;1576:75;1085:8212:36;1701:1:40;1085:8212:36;;1717:13:40;1751:7;;;;;;1085:8212:36;;;1978:4:40;1085:8212:36;;;1760:9:40;1085:8212:36;;1925:10:40;1457;1789:89;;1925:10;:::i;:::-;1085:8212:36;1744:207:40;;1085:8212:36;;;;;22797:233:46;19961:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;3855:55:52;1085:8212:36;;4365:14:52;1085:8212:36;;;;;;:::i;:::-;;;;4221:9:52;1085:8212:36;5067:83:55;;3486:60:52;1085:8212:36;5067:83:55;;3486:60:52;:::i;:::-;3733:53;;;;:::i;:::-;3855:55;;;;;;;;;;:::i;:::-;1085:8212:36;3973:79:52;;;1085:8212:36;4200:5:52;5067:83:55;;;;4221:9:52;;:::i;:::-;4365:14;:::i;1085:8212:36:-;;;;;19482:240:46;15009:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;10650:34;:12;;;;;;:::i;20153:30::-;5067:83:55;10650:12:42;21469:68;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;19645:36:46;19653:1;1085:8212:36;5067:83:55;;19645:36:46;:::i;1085:8212:36:-;;;;;19482:240:46;15203:9:43;1085:8212:36;;;:::i;:::-;;;;;8547:181:46;3495:8:43;1085:8212:36;;;:::i;:::-;;;;;21628:250:46;18463:9:43;1085:8212:36;;;:::i;:::-;;;;:::i;:::-;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;;;;9307:42;:::i;:::-;1085:8212:36;;;;;;7602:1659:68;;;1085:8212:36;7602:1659:68;;;1085:8212:36;7602:1659:68;;;;;;;;;;;;;;7255:10:27;7602:1659:68;;;;7255:10:27;1085:8212:36;7602:1659:68;;;;;;;;;;;;;;12790:117:60;7602:1659:68;;;;;1085:8212:36;7602:1659:68;-1:-1:-1;;;7602:1659:68;;;7335:1429:27;;;;7602:1659:68;7335:1429:27;7255:10;7335:1429;;;1085:8212:36;7335:1429:27;1085:8212:36;;7335:1429:27;;;;;;;;;;;;;;;;1085:8212:36;7335:1429:27;1085:8212:36;;7335:1429:27;;;;;;;;;;;;;7255:10;1085:8212:36;7335:1429:27;7602:1659:68;7335:1429:27;7255:10;-1:-1:-1;;;;;;;;;;;1085:8212:36;;7335:1429:27;7602:1659:68;1085:8212:36;;8837:4:27;1085:8212:36;;;;;;;;14399:223:46;7865:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;8968:151;;;;;;;;;1085:8212;;;;;9412:229:46;4321:9:43;1085:8212:36;;;:::i;:::-;;;;;30973:299:46;17861:8:43;1085:8212:36;;;:::i;:::-;;;;;11806:170:45;11967:8;15617:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;;1085:8212:36;;;;;;;14196:182:27;1085:8212:36;14196:182:27;1085:8212:36;;14196:182:27;;;;;;;;1085:8212:36;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;5633:184:27;1085:8212:36;5633:184:27;;;1085:8212:36;;;5633:184:27;1085:8212:36;;;5633:184:27;;1085:8212:36;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;-1:-1:-1;;;4780:27:48;;1085:8212:36;;;4780:27:48;;;1085:8212:36;-1:-1:-1;4780:27:48;;;:18;-1:-1:-1;;;;;1085:8212:36;4780:27:48;;;;;;1085:8212:36;4780:27:48;1085:8212:36;4780:27:48;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;7205:121:52;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;:::o;:::-;-1:-1:-1;;;;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1085:8212:36;;;;;;;;;;;;;;:::o;4176:2284:65:-;;;;;4275:4;;:::i;:::-;-1:-1:-1;;;;;1085:8212:36;;4557:19:65;1085:8212:36;;4146:221:31;-1:-1:-1;4146:221:31;;;;;;;;;;;4553:627:65;5190:1169;;;;;;;-1:-1:-1;5190:1169:65;;-1:-1:-1;5190:1169:65;;;;;;;;;;;-1:-1:-1;5190:1169:65;;;;;;;;;1085:8212:36;;;;;5190:1169:65;-1:-1:-1;;;;;;;;;;;5190:1169:65;;;;;:::i;:::-;6449:4;4176:2284;:::o;4146:221:31:-;;-1:-1:-1;4146:221:31;;;;4553:627:65;4785:4;;;4761:30;4785:4;4761:30;;:::i;:::-;13593:806:31;;;;;;;;-1:-1:-1;13593:806:31;;-1:-1:-1;13593:806:31;;;;;;;;;-1:-1:-1;13593:806:31;;;;;;;5125:30:65;13593:806:31;-1:-1:-1;13593:806:31;;4785:4:65;5125:30;;:::i;:::-;1085:8212:36;;4553:627:65;;;13593:806:31;;-1:-1:-1;13593:806:31;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1085:8212:36;;;;;;;:::o;4367:145:48:-;4452:25;4487:17;981:749:54;;;;4367:145:48;:::o;981:749:54:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4367:145:48;:::o;1085:8212:36:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;2947:3169:53:-;;;;;:::i;:::-;3405:1072;;1085:8212:36;;;;;;3405:1072:53;;;;;;;;;;;;;;;;;;;;;;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;;7277:40;;;:::i;:::-;4791:93:53;;;2947:3169;4974:52;5028:12;;;;;;6009:6;;;;;;;:::i;:::-;2947:3169::o;5042:3::-;5174:16;;;;;:::i;:::-;1085:8212:36;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;-1:-1:-1;;;;;1085:8212:36;;5559:36:53;;5555:300;;5042:3;-1:-1:-1;5322:1:53;;1085:8212:36;6009:6:53;;3405:1072;1085:8212:36;;;;-1:-1:-1;;;;;1085:8212:36;;6009:6:53;:::i;:::-;1085:8212:36;4974:52:53;;5555:300;6009:6;5681:43;;;;3405:1072;5681:43;;5322:1;5681:43;;;:::i;:::-;5555:300;;;;;;;;4791:93;4863:9;3405:1072;;4863:9;;;:::i;:::-;4791:93;;;3405:1072;;-1:-1:-1;3405:1072:53;;;;2950:460:48;3018:12;;1085:8212:36;3018:12:48;;;1085:8212:36;;;;;1409:20:48;1085:8212:36;1409:20:48;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;20153:30:42;5067:83:55;;1409:20:48;20382:26:42;20153:30;:::i;:::-;1085:8212:36;;3065:283:48;;3358:12;;;1085:8212:36;3358:12:48;;;1085:8212:36;3065:283:48;;;1085:8212:36;;;;;;;;;;;;3065:283:48;1409:20;5514:59:35;2950:460:48:o;1085:8212:36:-;-1:-1:-1;6052:14:35;1085:8212:36;;;;;;3065:283:48;1409:20;6082:67:35;2950:460:48:o;6048:208:35:-;3065:283:48;1409:20;6179:67:35;2947:3169:53:o;3065:283:48:-;;;;;;;;;1085:8212:36;;32705:531:59;21015:4:42;5067:83:55;;;1409:20:48;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;20153:30:42;32705:531:59;-1:-1:-1;32705:531:59;1409:20:48;8797:51:42;20153:30;:::i;:::-;1085:8212:36;;;;-1:-1:-1;32705:531:59;;-1:-1:-1;32705:531:59;;;;;;;;;;20153:30:42;;1409:20:48;20664:42:42;20153:30;:::i;1085:8212:36:-;6699:60:35;1409:20:48;6699:60:35;1085:8212:36;;;;-1:-1:-1;;1085:8212:36;;;;;;1409:20:48;7298:68:35;1085:8212:36;;;7264:210:35;1409:20:48;7396:68:35;7264:210;;19260:739:31;19403:590;;;19260:739;;;;19403:590;;;;;;;;;;;;;;;;19260:739;:::o;3597:97:48:-;3649:14;;1085:8212:36;3649:14:48;;;1085:8212:36;8260:14:35;;;1085:8212:36;;;;;;;;;;;;7806:55:35;1409:20:48;7806:55:35;3597:97:48:o;1085:8212:36:-;-1:-1:-1;8260:14:35;1085:8212:36;;;;;;8260:14:35;1409:20:48;8290:63:35;3597:97:48:o;8256:200:35:-;8260:14;1409:20:48;8383:63:35;2947:3169:53:o;1085:8212:36:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;:::o;1742:710:54:-;1871:575;1742:710;1871:575;;;;;;;;;;;;;;;;;;;;;;;;;;1742:710;:::o;36947:606:59:-;;37029:518;;;-1:-1:-1;;;;;;;;;;;37029:518:59;;-1:-1:-1;;;;;;;;;;;37029:518:59;;-1:-1:-1;;;;;;;;;;;37029:518:59;;;;;;;;36947:606::o;18139:956:51:-;18258:831;18139:956;18258:831;;;;;;;;;;;;18139:956;:::o;19699:1824:52:-;;19834:32;;:::i;:::-;20564:30;20400:71;20142:166;;;;;;20400:23;;;:::i;:71::-;20588:4;;20564:30;;:::i;:::-;20605:912;;;;;;;;;;;;;20588:4;20605:912;;;;;;;;;;;;;;;;;;;;;;;;19699:1824;:::o;19362:712:51:-;19450:618;;19362:712;19450:618;;;;;;;;;;;;;;;;;;;;;;;;;19362:712::o;21931:1560:52:-;;;;22196:1289;21931:1560;;22196:1289;21931:1560;;;22165:20;;;:::i;:::-;22196:1289;;;;;;;;;;;;;;;;;;;;;;;;;;;;21931:1560::o;22196:1289::-;;;;;;;;;;1450:776:50;1665:30;1450:776;;;;1689:4;1665:30;;:::i;:::-;1757:237;;;;;;;2179:29;1085:8212:36;;2179:29:50;;:::i;1757:237::-;;;;;;;16149:279:60;14888:947;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16303:119;;;14888:947;13542:488;16303:119;;1085:8212:36;14888:947:60;1085:8212:36;;14888:947:60;;;;;;;;;;16303:119;;;;16149:279;:::o;7544:445::-;-1:-1:-1;;;7626:357:60;;;;;;7544:445;:::o;7626:357::-;;;;;;;;;898:148:49;3299:1046;;;;;453:10;3299:1046;;;;;;;;;;;;;;;;;;;;;;;;;;;898:148::o;3299:1046::-;-1:-1:-1;;;3299:1046:49;;;;;9633:516:68;;9844:29;:23;;;1085:8212:36;9844:29:68;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;10132:9:68;10039:18;;;;;:::i;:::-;;;;;:::i;:::-;10098:10;10132:9;:::i;10716:1453::-;;;;11213:20;;11359:35;;;;5337:33;11359:35;:::i;:::-;1359::69;1434:9;1359:35;;;:::i;:::-;1434:9;;;:::i;:::-;11645:13:68;-1:-1:-1;;;;;11657:1:68;1085:8212:36;;11640:253:68;11660:19;;;;;;11960:203;;;;;;10716:1453::o;11960:203::-;;11232:1;11960:203;;;;11681:3;11815:35;;;;11657:1;11815:35;;-1:-1:-1;;;;;11815:35:68;;;;5337:33;11815:35;:::i;:::-;1085:8212:36;11815:50:68;;11799:79;11681:3;1085:8212:36;11645:13:68;;;;;10716:1453;;;;;11213:20;;11359:35;;;;;;:::i;:::-;1359::69;1434:9;1359:35;;;:::i;1434:9::-;11645:13:68;-1:-1:-1;;;;;11657:1:68;1085:8212:36;;11640:253:68;11660:19;;;;;;11960:203;;;;;;;10716:1453::o;11681:3::-;11815:35;;;;;11657:1;11815:35;;-1:-1:-1;;;;;11815:35:68;;;;;;:::i;:::-;1085:8212:36;11815:50:68;;11799:79;11681:3;1085:8212:36;11645:13:68;;;;;;4999:850:63;;;5399:1;5402:20;;;;;;5831:11;;;;5783:1;4999:850;:::o;5424:3::-;5561:27;5787:8;5561:27;;5783:1;5561:27;;;;:::i;:::-;1085:8212:36;;;;;;5690:10:63;5787:8;:::i;:::-;1085:8212:36;5387:13:63;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1651:1664:63:-;;;;;1787:1522;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1787:1522:63;;;;;;-1:-1:-1;;;;;1787:1522:63;;;;;;;1651:1664::o;1787:1522::-;;;;;;;;;6488:1750:45;;;;;;;;;7088:592;;;;;;;;;;;;;;;7822:2;;;;;:::i;:::-;5410:327:69;;;;;1085:8212:36;;8064:167:45;1085:8212:36;;;;8074:134:45;1085:8212:36;;7088:592:45;1085:8212:36;;;;;7088:592:45;;;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;8074:134:45;;:::i;:::-;8064:167;;:::i;:::-;6488:1750;:::o;5410:327:69:-;;;;;;7088:592:45;5410:327:69;7088:592:45;5410:327:69;;;;4509:499:60;;;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;4976:3;1085:8212:36;;4941:3:60;1085:8212:36;;;;4884:61:60;:96;4509:499;:::o;:::-;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;1085:8212:36;;;;4976:3:60;1085:8212:36;4884:116:60;;4509:499;:::o;6455:374::-;;;1085:8212:36;6455:374:60;;;;;;4509:499;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;4976:3;1085:8212:36;;;;4884:96:60;4509:499;:::o;:::-;;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;4976:3;1085:8212:36;;4941:3:60;1085:8212:36;;;;4884:61:60;:96;:116;4509:499;:::o;2678:1277:50:-;;;2755:1194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;;;;2755:1194:50;;-1:-1:-1;;;;;;;;;;;2755:1194:50;;;2678:1277::o;7578:9012:51:-;;;;;;;;;;;-1:-1:-1;7578:9012:51;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;-1:-1:-1;;7578:9012:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;7578:9012:51;-1:-1:-1;;;;;;;;;;;7578:9012:51;;-1:-1:-1;;;;;;;;;;;7578:9012:51;;;;;;:::o;:::-;;-1:-1:-1;7578:9012:51;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;-1:-1:-1;7578:9012:51;;5295:557:60;-1:-1:-1;;;5398:448:60;;;;5295:557;5398:448;;;;5295:557;:::o;10557:505:53:-;;;10744:30;10768:4;10744:30;;:::i;:::-;9254:988:31;;;;;;10768:4:53;9254:988:31;;10865:10:53;9254:988:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;11040:14:53;9254:988:31;;;;;;11040:14:53;:::i;9254:988:31:-;;;;;;;4719:320:69;4801:209;;;;;;4719:320;:::o;4801:209::-;;;;;;;1932:568:57;;2035:459;;;;;;;;;;;;1932:568::o;1085:8212:36:-;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;7205:121:52;1085:8212:36;7205:121:52;;1085:8212:36;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;16358:2747:52:-;;;16614:37;;:::i;:::-;-1:-1:-1;;;;;16956:1264:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;18295:58;16956:1264;;;;;;18295:58;:::i;:::-;18401:26;;;;:::i;:::-;18492:199;;;16358:2747;1085:8212:36;;;;18986:112:52;27026:43;;;:::i;:::-;27216:19;-1:-1:-1;27295:13:52;-1:-1:-1;27310:32:52;;;;;;28096:286;;;;;;16358:2747;:::o;28096:286::-;;-1:-1:-1;28096:286:52;;;;27344:3;1085:8212:36;28037:30:52;1085:8212:36;;;;;;;;27442:55:52;:61;:55;;;;;:::i;:::-;:61;:::i;:::-;1085:8212:36;;;;;;10621:113:60;;-1:-1:-1;;;;;10621:113:60;;;;;27698:17:52;;;;27682:46;27781:16;27864:54;27781:16;27864:54;;;:::i;:::-;1085:8212:36;28061:4:52;28037:30;;:::i;:::-;28018:49;;;;:::i;:::-;1085:8212:36;;27295:13:52;;;;;18492:199;18571:9;16956:1264;;;18571:9;;:::i;:::-;1085:8212:36;;;;;;16956:1264:52;1085:8212:36;;;18492:199:52;;;3614:3121:51;;3816:2913;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3816:2913:51;;-1:-1:-1;;3816:2913:51;;;;;-1:-1:-1;3614:3121:51:o;3816:2913::-;;;;;;;;;;;;;;;;;;;;;;;;24121:1723:52;1085:8212:36;;;;;;24121:1723:52;;;;1085:8212:36;24844:32:52;;;;;;25511:258;;;;;;;;;;;;:::i;24878:3::-;1085:8212:36;25446:29:52;1085:8212:36;;;;25064:4:52;24978:92;25064:4;24978:67;:61;25064:4;24978:61;;;;:::i;:67::-;:92;:::i;:::-;25105:23;25395:49;25105:23;;;;:::i;:::-;1085:8212:36;25273:30:52;;;;;25257:59;25395:49;;;:::i;:::-;1085:8212:36;;;25446:29:52;;;:::i;:::-;1085:8212:36;24829:13:52;;1085:8212:36;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;7205:121:52;1085:8212:36;7205:121:52;;1085:8212:36;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;:::o;33488:1350:59:-;1085:8212:36;;;;;;33842:4:59;1085:8212:36;;;;;;;33821:26:59;;;:::i;:::-;33933:13;-1:-1:-1;33948:12:59;;;;;;34627:205;;;34131:462;34627:205;;34131:462;;34627:205;33488:1350;:::o;33962:3::-;34103:9;;1085:8212:36;34103:9:59;;;;:::i;:::-;33842:4;34131:462;;1085:8212:36;34131:462:59;;;;;;;;;;;;;;;1085:8212:36;33933:13:59;;2568:2676:45;3056:1056;;;;-1:-1:-1;;;;;3056:1056:45;;2568:2676;;;;;;;3056:1056;;2568:2676;;3056:1056;;;;;;;;;;;;2568:2676;;3056:1056;;;2568:2676;4171:13;3056:1056;;;;4171:13;:::i;:::-;1359:35:69;;;:::i;:::-;3056:1056:45;;;;;1434:9:69;;;;:::i;:::-;4384:262:45;;;;;4805:28;;;;4759:41;;;;1422:62:55;4758:134:45;;;;5140:15;4758:134;5227:9;4758:134;;;2568:2676;4754:236;;;;;2568:2676;3056:1056;;;;;;;;;5140:15;;:::i;:::-;5227:9;;:::i;4754:236::-;4956:22;3056:1056;;;4956:22;;;:::i;:::-;4754:236;;;;;4758:134;7498:53:63;;;6411:531;6273:675;6411:531;6273:675;6411:531;;;;;;;;;;;;;;;;;;;;;6273:675;;7498:53;7555:15;-1:-1:-1;7498:72:63;4758:134:45;;;;;9841:2874:47;;;;;;;;11273:135;9841:2874;;;10515:537;;;;;;;;;;;;;;;;;11153:9;:28;:9;;;;:::i;:::-;1085:8212:36;12790:117:60;;-1:-1:-1;;;;;12790:117:60;;12702:211;11153:28:47;11273:135;;;;:::i;:::-;11710:9;;;;;:::i;:::-;11742:12;12034:40;10515:537;11851:100;1085:8212:36;;;11781:16:47;;;;;1085:8212:36;11851:25:47;;;;1085:8212:36;11851:100:47;:::i;:::-;11830:16;;1422:62:55;12034:40:47;;;;;:::i;:::-;;-1:-1:-1;;;;;12203:1:47;1085:8212:36;;12186:423:47;12206:15;;;;;;12664:11;;;;;;;;;;;;:::i;12223:3::-;12258:9;;;;;:::i;:::-;1085:8212:36;;12329:16:47;;;;11781;12329;;1085:8212:36;12422:25:47;;;10515:537;12422:25;1085:8212:36;12422:100:47;;;;:::i;:::-;12790:117:60;;;;-1:-1:-1;;;;;12790:117:60;12379:38:47;;1422:62:55;12363:172:47;12554:40;;;;;;;:::i;:::-;;12203:1;1085:8212:36;12191:13:47;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;35089:1381:59:-;1085:8212:36;;;;;;35453:4:59;1085:8212:36;;;;;;;35432:26:59;;;:::i;:::-;35544:13;-1:-1:-1;35559:12:59;;;;;;36259:205;;;35747:478;36259:205;;35747:478;;36259:205;35089:1381;:::o;35573:3::-;35719:9;;1085:8212:36;35719:9:59;;;;:::i;:::-;35453:4;35747:478;;1085:8212:36;35747:478:59;;;;;;;;;;;;;;;1085:8212:36;35544:13:59;;3959:187:48;4032:27;4028:69;;5767:105;;;;3959:187;:::o;19512:2305:59:-;19760:2051;19512:2305;;19760:2051;;19512:2305;19760:2051;;;;;;;-1:-1:-1;;;;;;;;;;;19760:2051:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19760:2051:59;;;;;;19512:2305;:::o;2298:320:69:-;2354:258;;;;;;2298:320;:::o;2354:258::-;;;;;;;;;3290:686;2577:519:54;;;;-1:-1:-1;2577:519:54;;;;;;;;;;;;;;;;;3290:686:69;;2577:519:54;;3290:686:69;;6576:3996:32;;;;;;-1:-1:-1;;;;;6576:3996:32;;;;;;;;;3641:329:69;;;;;;;;;;;;;3290:686::o;3641:329::-;;-1:-1:-1;3641:329:69;6576:3996:32;3641:329:69;;6576:3996:32;;;;;;;;;2577:519:54;6576:3996:32;;;-1:-1:-1;6576:3996:32;;;;;;;2577:519:54;6576:3996:32;;;-1:-1:-1;6576:3996:32;;;2577:519:54;6576:3996:32;;;;;;;;;;;;;;;;2577:519:54;6576:3996:32;;;;;;;;;;;;;;;-1:-1:-1;;;6576:3996:32;;;;;;;;;;;;;2577:519:54;6576:3996:32;;;-1:-1:-1;6576:3996:32;2577:519:54;6576:3996:32;2577:519:54;6576:3996:32;;;2577:519:54;6576:3996:32;;-1:-1:-1;6576:3996:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;6576:3996:32;;2577:519:54;6576:3996:32;;;;;;;;;;;2577:519:54;6576:3996:32;;;;;;;;;;;;;;2577:519:54;6576:3996:32;-1:-1:-1;;;;;6576:3996:32;;;1085:8212:36;6576:3996:32;-1:-1:-1;1085:8212:36;6576:3996:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;6576:3996:32;;2577:519:54;6576:3996:32;;;;;;;;;;1099:568:57;1194:467;;;;;;-1:-1:-1;;;;;1194:467:57;;;;;;;;;;;;1099:568::o;22429:3319:59:-;22686:3056;;;;;;;-1:-1:-1;;;;;;;;;;;22686:3056:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22686:3056:59;;;;;;22429:3319;:::o;22686:3056::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22686:3056:59;;;14160:2308:47;;;;;;;;15357:135;14160:2308;14837:299;;;;;;;;;;;15237:9;:28;:9;;;;:::i;:28::-;15357:135;;;;:::i;:::-;15613:16;;15783:13;-1:-1:-1;;;;;;1085:8212:36;;15778:538:47;15798:15;;;;;;16417:11;;;;;;;;;;:::i;15815:3::-;15889:9;16190:111;15889:9;;1085:8212:36;15889:9:47;;;;:::i;:::-;1085:8212:36;;16015:45:47;;;-1:-1:-1;;;;;16015:45:47;;;;:::i;:::-;12790:117:60;;;;15972:38:47;;1422:62:55;15956:117:47;16190:23;;14837:299;16190:23;;;;;;:::i;:::-;16259:30;;;;1085:8212:36;16190:111:47;;:::i;:::-;;1085:8212:36;15783:13:47;;20720:384:42;20153:30;20720:384;20936:98;21015:4;5067:83:55;;;20936:98:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;20936:98:42;20862:235;8797:51;20153:30;:::i;19628:745:47:-;;;;20027:1;20030:15;;;;;;19628:745;;;;;:::o;20047:3::-;20176:13;20279:63;20176:13;1085:8212:36;20176:13:47;;;;:::i;:::-;20301:18;20325:16;20301:18;;;:::i;:::-;20325:16;;1085:8212:36;20289:10:47;;20279:63;;:::i;:::-;;1085:8212:36;20015:13:47;;6324:381:69;6418:281;;;;;;;;;;6324:381;:::o;6418:281::-;;;;;;;;;6454:1983:47;;;;7956:137;6454:1983;;;;;;7154:711;;;;;;;;;;;;;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;7956:137:47;;:::i;:::-;;8236:2;7154:711;7956:137;8347:83;7956:137;8236:2;;:::i;:::-;7154:711;;;;;;;;8347:83;:::i;30933:1265:59:-;31095:1097;30933:1265;31095:1097;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30933:1265;:::o;8318:262:69:-;;8527:45;8318:262;;8527:45;:::i;:::-;8498:24;;1422:62:55;8318:262:69;:::o;20573:345:47:-;20709:203;;20573:345::o;14317:1060:59:-;14489:882;14317:1060;14489:882;;;;-1:-1:-1;;;;;;;;;;;14489:882:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14317:1060;:::o;7335:204:69:-;11032:107:60;;1085:8212:36;;;;;;7512:19:69;7496:35;7454:36;;;905:63:55;7335:204:69;:::o;17378:1707:47:-;;;;;;17782:1;17816:16;;;17984:13;17782:1;17999:15;;;;;;18689:29;;;;;;;;;18673:58;18741:316;;19067:11;;1085:8212:36;17378:1707:47;:::o;18741:316::-;;17782:1;18741:316;18122:16;18741:316;;;;;;18016:3;18075:12;18499:50;18122:16;18075:12;;;18518:18;18075:12;1085:8212:36;18075:12:47;;;;:::i;:::-;18122:16;;;1085:8212:36;;;;;18310:32:47;;;18294:61;18373:32;18518:18;;:::i;:::-;18499:50;;;:::i;:::-;;1085:8212:36;17984:13:47;;28999:1456:59;;29139:1310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28999:1456;:::o;1085:8212:36:-;20153:30:42;1085:8212:36;5067:83:55;;20153:30:42;20382:26;20153:30;:::i;1085:8212:36:-;;21469:68:42;20153:30;21780:4;5067:83:55;;;20153:30:42;21800:26;20153:30;:::i;:::-;5067:83:55;;;;21469:68:42;;:::i;1085:8212:36:-;24400:277:42;1085:8212:36;24511:109:42;24601:4;5067:83:55;;;24511:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24511:109:42;24400:277;;:::i;:::-;24393:284;;1085:8212:36:o;:::-;23950:250:42;1085:8212:36;24052:100:42;24133:4;5067:83:55;;;24052:100:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24052:100:42;23950:250;;:::i;1085:8212:36:-;;21469:68:42;20153:30;22563:107;22651:4;5067:83:55;;;22563:107:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;22563:107:42;20153:30;11894:54;20153:30;:::i;1085:8212:36:-;;21469:68:42;20153:30;22104:98;22183:4;5067:83:55;;;22104:98:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;;26376:277:42;1085:8212:36;26496:109:42;26586:4;5067:83:55;;;26496:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;26496:109:42;26376:277;;:::i;:::-;26369:284;;;;;1085:8212:36:o;:::-;26926:304:42;1085:8212:36;27055:118:42;27154:4;5067:83:55;;;27055:118:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;27055:118:42;26926:304;;:::i;1085:8212:36:-;;;;;;;;;28508:137:59;1085:8212:36;28508:137:59;;;27779:134;1085:8212:36;27779:134:59;;;27062:128;1085:8212:36;27062:128:59;;;15848:748;1085:8212:36;15848:748:59;;;26336:125;1085:8212:36;26336:125:59;;;10532:988;1085:8212:36;10532:988:59;;;1085:8212:36;32705:531:59;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;32705:531:59;;;;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;:::o;:::-;10532:988:59;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10532:988:59;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;:::o;:::-;5067:83:55;26336:125:59;5067:83:55;;;26336:125:59;;:::i;1085:8212:36:-;15848:748:59;;;;;;;;;-1:-1:-1;;;;;;;;;;;15848:748:59;;;;;;;;;;;;;;;;;1085:8212:36;:::o;:::-;5067:83:55;27062:128:59;5067:83:55;27105:4:59;5067:83:55;;;27062:128:59;;:::i;1085:8212:36:-;5067:83:55;27779:134:59;5067:83:55;;;27779:134:59;;:::i;1085:8212:36:-;5067:83:55;28508:137:59;5067:83:55;28560:4:59;5067:83:55;;;28508:137:59;;:::i;1085:8212:36:-;;12113:1798:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;17159:1746:59;1085:8212:36;;;;17159:1746:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;12113:1798:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;17159:1746:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;;;;;;;;;12790:117:60;1085:8212:36;12790:117:60;;;1085:8212:36;12790:117:60;;;1085:8212:36;;;11232:1:68;1085:8212:36;;;;;11232:1:68;1085:8212:36;;20153:30:42;;11232:1:68;20153:30:42;:::i;1085:8212:36:-;13584:17:68;11232:1;13584:17;;-1:-1:-1;;;;;13584:17:68;;:::i;:::-;1085:8212:36;12790:117:60;;;1085:8212:36;:::o;:::-;-1:-1:-1;1085:8212:36;;;;12790:117:60;;-1:-1:-1;;;;;12790:117:60;;1085:8212:36:o;:::-;;;;;;12790:117:60;1085:8212:36;12790:117:60;;;1085:8212:36;12790:117:60;;;1085:8212:36;;;;;;;;;;;;20153:30:42;;;:::i;1085:8212:36:-;13584:17:68;;;;-1:-1:-1;;;;;13584:17:68;;:::i;1085:8212:36:-;12846:17:68;;;;-1:-1:-1;;;;;12846:17:68;;:::i;1085:8212:36:-;;;23142:88:42;1085:8212:36;23094:30:42;;;:::i;:::-;5067:83:55;;;;23164:4:42;5067:83:55;;;23142:88:42;14490:36;23142:88;:::i;:::-;1085:8212:36;;:::o;:::-;;;23142:88:42;1085:8212:36;23094:30:42;;;:::i;:::-;5067:83:55;;;;23164:4:42;5067:83:55;;;23142:88:42;15709:45;23142:88;:::i;1085:8212:36:-;;25042:30:42;25103:73;1085:8212:36;25042:30:42;17045:42;25042:30;:::i;:::-;5067:83:55;;;;25157:4:42;5067:83:55;;;25103:73:42;;:::i;1085:8212:36:-;;25042:30:42;25103:73;1085:8212:36;25042:30:42;25509:32;25042:30;:::i;1085:8212:36:-;;26065:73:42;26119:4;1085:8212:36;23669:88:42;1085:8212:36;23621:30:42;;;:::i;:::-;5067:83:55;;;;;;;23691:4:42;5067:83:55;;23669:88:42;18387:36;23669:88;:::i;:::-;5067:83:55;;;;26065:73:42;;:::i;1085:8212:36:-;;26065:73:42;26119:4;1085:8212:36;23669:88:42;1085:8212:36;23621:30:42;;;:::i;:::-;5067:83:55;;;;;;;23691:4:42;5067:83:55;;23669:88:42;19848:45;23669:88;:::i;1085:8212:36:-;;;;;;;;;;;;;;;;;3463:4:65;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;1594:1852:65;;;;;;;;;;;-1:-1:-1;1594:1852:65;;-1:-1:-1;1594:1852:65;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1594:1852:65;;-1:-1:-1;1594:1852:65;;;;;;;;;;;;;;-1:-1:-1;1594:1852:65;;;1085:8212:36;;;;;1594:1852:65;1085:8212:36;;;;;;1594:1852:65;-1:-1:-1;;;;;;;;;;;1594:1852:65;-1:-1:-1;1594:1852:65;3463:4;1085:8212:36;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22686:3056:59;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22686:3056:59;;;;;;;;;;;;;;;;;1085:8212:36;22686:3056:59;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22686:3056:59;-1:-1:-1;22686:3056:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;:::o;22686:3056:59:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22686:3056:59;;;;;;;;;;;;;;1085:8212:36;;19760:2051:59;1085:8212:36;19760:2051:59;1085:8212:36;;;;19760:2051:59;1085:8212:36;19760:2051:59;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19760:2051:59;;;;;;;;;;;;;;;;;1085:8212:36;19760:2051:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;:::o;19760:2051:59:-;;;;;;;;;;;1085:8212:36;;;;;;;;;;;;;;13942:8:45;1085:8212:36;13942:8:45;;;10043;1085:8212:36;10043:8:45;;;13942;1085:8212:36;13942:8:45;;;1085:8212:36;;;;;11967:8:45;1085:8212:36;11967:8:45;;;;1085:8212:36;11967:8:45;;;1085:8212:36;;;;;;10043:8:45;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;9882:170:45;;10043:8;9882:170;;;;;;;;;:::i;1085:8212:36:-;24406:152:45;;;;;:::i;1085:8212:36:-;11806:170:45;;11967:8;11806:170;;;;;;;;;:::i;1085:8212:36:-;5689:83:55;;11806:170:45;5689:83:55;;11967:8:45;5689:83:55;;;;;;11806:170:45;;:::i;1085:8212:36:-;5689:83:55;;25964:175:45;5689:83:55;;;;;25964:175:45;;:::i;1085:8212:36:-;5689:83:55;;13776:175:45;5689:83:55;;13942:8:45;5689:83:55;;;;;;13776:175:45;;:::i;1085:8212:36:-;5689:83:55;;9882:170:45;5689:83:55;;10043:8:45;5689:83:55;;;;;;9882:170:45;;:::i;1085:8212:36:-;13776:175:45;;13942:8;13776:175;;;;;;;;;:::i", + "linkReferences": {}, + "immutableReferences": { + "44928": [{ "start": 7386, "length": 32 }], + "44930": [{ "start": 7338, "length": 32 }], + "44938": [{ "start": 14924, "length": 32 }], + "44946": [{ "start": 14803, "length": 32 }], + "44952": [{ "start": 15276, "length": 32 }], + "61471": [{ "start": 14315, "length": 32 }], + "61473": [{ "start": 14282, "length": 32 }], + "61476": [ + { "start": 5399, "length": 32 }, + { "start": 9518, "length": 32 }, + { "start": 12624, "length": 32 } + ], + "61478": [{ "start": 20145, "length": 32 }] + } + }, + "methodIdentifiers": { + "DOMAIN_SEPARATOR()": "3644e515", + "__activateTstore()": "7423eb3c", + "__registerAllocator(address,bytes)": "2a9c4d0d", + "allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))": "7112406d", + "allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))": "200f0c4d", + "allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))": "a2394147", + "allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))": "dd589cfc", + "allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))": "393c33e2", + "allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))": "6a9a4c44", + "allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))": "fdc060e7", + "allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))": "27c777a9", + "allowance(address,address,uint256)": "598af9e7", + "approve(address,uint256,uint256)": "426a8493", + "balanceOf(address,uint256)": "00fdd58e", + "claim((bytes,bytes,address,uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "d204f11e", + "claim((bytes,bytes,address,uint256,uint256,(uint256,uint256,uint256)[],address))": "59202128", + "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))": "eaa67483", + "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,uint256)[],address))": "db04bc72", + "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "fb75fb69", + "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))": "107d4ee4", + "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))": "d350188c", + "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "ea14532e", + "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "176f405a", + "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))": "12f9d21e", + "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "4c102416", + "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "6af2791b", + "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,(address,uint256)[]))": "b4039fc2", + "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,address,uint256))": "63f5b1ad", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,(address,uint256)[])[]))": "d34ddc82", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,uint256)[],address))": "b54baefd", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))": "eb431821", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,uint256)[],address))": "b24849b7", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "12a1e6ea", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))": "b3244389", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))": "414fd914", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "2c4bbd17", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "5ac2ccf1", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))": "1d474b14", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "4d585fbf", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "ebcbd7b5", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,(address,uint256)[]))": "e8672f93", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,address,uint256))": "0d57fec9", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "577cdc64", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,uint256)[],address))": "9730f4fd", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(address,uint256)[]))": "f745381c", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "aa41c87e", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "eed634ad", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,address,uint256))": "e0565c49", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "a4c7bd93", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "5e6c91ff", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,(address,uint256)[]))": "996d3aac", + "claim((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,address,uint256))": "44b97d78", + "claim((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "935ed2ba", + "claim((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,uint256)[],address))": "9be5f537", + "claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(address,uint256)[]))": "b7ace047", + "claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "06659b7f", + "claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "fa1c5500", + "claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,address,uint256))": "e6c5b654", + "claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "409b3a7e", + "claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "32e2a803", + "claim((bytes,bytes,address,uint256,uint256,uint256,uint256,(address,uint256)[]))": "b8a5bbad", + "claim((bytes,bytes,address,uint256,uint256,uint256,uint256,address,uint256))": "86785559", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "548439e1", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,(uint256,uint256,uint256)[],address))": "721f6292", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))": "13589bfe", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,uint256)[],address))": "f44a3452", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "0a133cf2", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))": "0f5eeadf", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))": "eb196008", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "88da84d4", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "03417d72", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))": "f23d923d", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "843719f0", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "eea77a78", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,(address,uint256)[]))": "06e8cc18", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,address,uint256))": "1bb81a81", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,(address,uint256)[])[]))": "f2f0def1", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,uint256)[],address))": "4e55a548", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))": "08e600ee", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,uint256)[],address))": "b20abc48", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "25d7776b", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))": "14865907", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))": "d2a1805f", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "d921f36a", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "fcfe431a", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))": "d3917f3c", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "64870556", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "418a23f5", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,(address,uint256)[]))": "f95d3d16", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,address,uint256))": "138cd819", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "62a420bb", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,uint256)[],address))": "c4d195e8", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(address,uint256)[]))": "3f458a19", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "5d76a382", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "eed93572", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,address,uint256))": "1b98b63f", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "341056c5", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "89ce0661", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,(address,uint256)[]))": "4ad5205e", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,address,uint256))": "2e4d55cc", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "88d247c4", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,uint256)[],address))": "bc95bd7a", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(address,uint256)[]))": "2737edb9", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "206620a1", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "2acd5dc3", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,address,uint256))": "76d531d4", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "e05c6e7d", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "ca6cc39f", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,uint256,uint256,(address,uint256)[]))": "71f50127", + "claimAndWithdraw((bytes,bytes,address,uint256,uint256,uint256,uint256,address,uint256))": "b602ae02", + "consume(uint256[])": "12d48885", + "decimals(uint256)": "3f47e662", + "deposit(address)": "f340fa01", + "deposit(address,(address,uint256)[],uint256,uint256,address,uint8,uint8,address,bytes)": "99cf8b9b", + "deposit(address,address,uint256)": "8340f549", + "deposit(address,address,uint8,uint8,uint256,address)": "671b3bd6", + "deposit(address,uint256,uint256,uint256,address,address,uint8,uint8,address,bytes)": "10d82672", + "deposit(address,uint8,uint8,address)": "507cb46f", + "deposit(uint256[2][],address)": "c8091041", + "depositAndRegister(address,(address,uint256)[],uint256,uint256,address,uint8,uint8,bytes32,uint8,string,bytes)": "da15ee7f", + "depositAndRegister(address,address,uint256,bytes32,bytes32)": "ecaca40e", + "depositAndRegister(address,bytes32,bytes32)": "aa8b845d", + "depositAndRegister(address,uint256,uint256,uint256,address,address,uint8,uint8,bytes32,uint8,string,bytes)": "53e50067", + "depositAndRegister(uint256[2][],bytes32[2][],uint256)": "5b6016ec", + "disableForcedWithdrawal(uint256)": "70030190", + "enableForcedWithdrawal(uint256)": "eb35a6d2", + "extsload(bytes32)": "1e2eaeaf", + "extsload(bytes32[])": "dbd035ff", + "exttload(bytes32)": "f135baaa", + "forcedWithdrawal(uint256,address,uint256)": "2e3ff2f7", + "getForcedWithdrawalStatus(address,uint256)": "144bd5b5", + "getLockDetails(uint256)": "5b15bfd9", + "getRegistrationStatus(address,bytes32,bytes32)": "440a0ec3", + "hasConsumedAllocatorNonce(uint256,address)": "da2f268b", + "isOperator(address,address)": "b6363cf2", + "name()": "06fdde03", + "name(uint256)": "00ad800c", + "register(bytes32,bytes32,uint256)": "4073c0cc", + "register(bytes32[2][],uint256)": "31bbae3e", + "setOperator(address,bool)": "558a7297", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol(uint256)": "4e41a1fb", + "tokenURI(uint256)": "c87b56dd", + "transfer(address,uint256,uint256)": "095bcdb6", + "transferFrom(address,address,uint256,uint256)": "fe99049a" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providedAmount\",\"type\":\"uint256\"}],\"name\":\"AllocatedAmountExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceOverflow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"Expired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ForcedWithdrawalAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientPermission\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchDepositStructure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDepositBalanceChange\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDepositTokenOrdering\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"InvalidRegistrationDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"InvalidRegistrationProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"InvalidScope\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"InvalidToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyDirectCalls\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Permit2CallFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"PrematureWithdrawal\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"existingCaller\",\"type\":\"address\"}],\"name\":\"ReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TStoreAlreadyActivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TStoreNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TloadTestContractDeploymentFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UnallocatedTransfer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"allocatorId\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"AllocatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"arbiter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"}],\"name\":\"CompactRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"activating\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawableAt\",\"type\":\"uint256\"}],\"name\":\"ForcedWithdrawalStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"OperatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__activateTstore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"__registerAllocator\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TransferComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BatchTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitByIdComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"recipients\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BasicTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BasicTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitByIdComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TransferComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BatchTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"recipients\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BasicClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BasicClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nonces\",\"type\":\"uint256[]\"}],\"name\":\"consume\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"scope\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"scope\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.TokenPermissions[]\",\"name\":\"permitted\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[2][]\",\"name\":\"idsAndAmounts\",\"type\":\"uint256[2][]\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum CompactCategory\",\"name\":\"compactCategory\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"witness\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[2][]\",\"name\":\"idsAndAmounts\",\"type\":\"uint256[2][]\"},{\"internalType\":\"bytes32[2][]\",\"name\":\"claimHashesAndTypehashes\",\"type\":\"bytes32[2][]\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.TokenPermissions[]\",\"name\":\"permitted\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum CompactCategory\",\"name\":\"compactCategory\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"witness\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"disableForcedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"enableForcedWithdrawal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"extsload\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"slots\",\"type\":\"bytes32[]\"}],\"name\":\"extsload\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"exttload\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"forcedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getForcedWithdrawalStatus\",\"outputs\":[{\"internalType\":\"enum ForcedWithdrawalStatus\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getLockDetails\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"}],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"hasConsumedAllocatorNonce\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[2][]\",\"name\":\"claimHashesAndTypehashes\",\"type\":\"bytes32[2][]\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"0age (0age.eth)\",\"custom:version\":\"0 (early-stage proof-of-concept)\",\"errors\":{\"BalanceOverflow()\":[{\"details\":\"The balance has overflowed.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InsufficientPermission()\":[{\"details\":\"Insufficient permission to perform the action.\"}]},\"events\":{\"AllocatorRegistered(uint96,address)\":{\"params\":{\"allocator\":\"The address of the registered allocator.\",\"allocatorId\":\"The unique identifier assigned to the allocator.\"}},\"Approval(address,address,uint256,uint256)\":{\"details\":\"Emitted when `owner` approves `spender` to use `amount` of `id` token.\"},\"Claim(address,address,address,bytes32)\":{\"params\":{\"allocator\":\"The account mediating the resource locks utilized by the claim.\",\"arbiter\":\"The account verifying and initiating the settlement of the claim.\",\"claimHash\":\"A bytes32 hash derived from the details of the claimed compact.\",\"sponsor\":\"The account sponsoring the claimed compact.\"}},\"CompactRegistered(address,bytes32,bytes32,uint256)\":{\"params\":{\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"expires\":\"The timestamp at which the compact can no longer be claimed.\",\"sponsor\":\"The address registering the compact in question.\",\"typehash\":\"The EIP-712 typehash associated with the registered compact.\"}},\"ForcedWithdrawalStatusUpdated(address,uint256,bool,uint256)\":{\"params\":{\"account\":\"The account for which the withdrawal status has changed.\",\"activating\":\"Whether the forced withdrawal is being activated or has been deactivated.\",\"id\":\"The ERC6909 token identifier of the associated resource lock.\",\"withdrawableAt\":\"The timestamp when tokens become withdrawable if it is being activated.\"}},\"OperatorSet(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables `operator` to manage all of their tokens.\"},\"Transfer(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `by` transfers `amount` of token `id` from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"returns\":{\"_0\":\"A bytes32 representing the domain separator for the contract.\"}},\"__activateTstore()\":{\"details\":\"External function to activate TSTORE usage. Does not need to be called if TSTORE is supported from deployment, and only needs to be called once. Reverts if TSTORE has already been activated or if the opcode is not available. Note that this must be called directly from an externally-owned account to avoid potential reentrancy issues.\"},\"__registerAllocator(address,bytes)\":{\"params\":{\"allocator\":\"The address to register as an allocator.\",\"proof\":\"An 85-byte value containing create2 address derivation parameters (0xff ++ factory ++ salt ++ initcode hash).\"},\"returns\":{\"_0\":\"A unique identifier assigned to the registered allocator.\"}},\"allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"params\":{\"transfer\":\"A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"params\":{\"transfer\":\"A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive all tokens.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"params\":{\"transfer\":\"A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))\":{\"params\":{\"transfer\":\"A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive the tokens.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"params\":{\"withdrawal\":\"A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"params\":{\"withdrawal\":\"A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive all tokens.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"params\":{\"withdrawal\":\"A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))\":{\"params\":{\"withdrawal\":\"A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive the tokens.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allowance(address,address,uint256)\":{\"details\":\"Returns the amount of token `id` that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` for the caller for token `id`. Emits a {Approval} event.\"},\"balanceOf(address,uint256)\":{\"details\":\"Returns the amount of token `id` owned by `owner`.\"},\"consume(uint256[])\":{\"params\":{\"nonces\":\"Array of nonces to be consumed.\"},\"returns\":{\"_0\":\"Whether all nonces were successfully consumed.\"}},\"decimals(uint256)\":{\"details\":\"Returns the number of decimals for token `id`. Returns 18 by default. Please override this function if you need to return a custom value.\"},\"deposit(address)\":{\"params\":{\"allocator\":\"The address of the allocator.\"},\"returns\":{\"_0\":\"The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(address,address,uint256)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"amount\":\"The amount of tokens to deposit.\",\"token\":\"The address of the ERC20 token to deposit.\"},\"returns\":{\"_0\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(address,address,uint8,uint8,uint256,address)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"amount\":\"The amount of tokens to deposit.\",\"recipient\":\"The address that will receive the corresponding ERC6909 tokens.\",\"resetPeriod\":\"The duration after which the resource lock can be reset once a forced withdrawal is initiated.\",\"scope\":\"The scope of the resource lock (multichain or single chain).\",\"token\":\"The address of the ERC20 token to deposit.\"},\"returns\":{\"_0\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(address,uint8,uint8,address)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"recipient\":\"The address that will receive the corresponding ERC6909 tokens.\",\"resetPeriod\":\"The duration after which the resource lock can be reset once a forced withdrawal is initiated.\",\"scope\":\"The scope of the resource lock (multichain or single chain).\"},\"returns\":{\"_0\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(uint256[2][],address)\":{\"params\":{\"idsAndAmounts\":\"Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit.\",\"recipient\":\"The address that will receive the corresponding ERC6909 tokens.\"},\"returns\":{\"_0\":\"Whether the batch deposit was successfully completed.\"}},\"depositAndRegister(address,address,uint256,bytes32,bytes32)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"amount\":\"The amount of tokens to deposit.\",\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"token\":\"The address of the ERC20 token to deposit.\",\"typehash\":\"The EIP-712 typehash associated with the registered compact.\"},\"returns\":{\"id\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"depositAndRegister(address,bytes32,bytes32)\":{\"params\":{\"allocator\":\"The address of the allocator.\",\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"typehash\":\"The EIP-712 typehash associated with the registered compact.\"},\"returns\":{\"id\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"depositAndRegister(uint256[2][],bytes32[2][],uint256)\":{\"params\":{\"claimHashesAndTypehashes\":\"Array of [claimHash, typehash] pairs for registration.\",\"duration\":\"The duration for which the claim hashes remain valid.\",\"idsAndAmounts\":\"Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit.\"},\"returns\":{\"_0\":\"Whether the batch deposit and claim hash registration was successfully completed.\"}},\"disableForcedWithdrawal(uint256)\":{\"params\":{\"id\":\"The ERC6909 token identifier for the resource lock.\"},\"returns\":{\"_0\":\"Whether the forced withdrawal was successfully disabled.\"}},\"enableForcedWithdrawal(uint256)\":{\"params\":{\"id\":\"The ERC6909 token identifier for the resource lock.\"},\"returns\":{\"_0\":\"The timestamp at which tokens become withdrawable.\"}},\"forcedWithdrawal(uint256,address,uint256)\":{\"params\":{\"amount\":\"The amount of tokens to withdraw.\",\"id\":\"The ERC6909 token identifier for the resource lock.\",\"recipient\":\"The account that will receive the withdrawn tokens.\"},\"returns\":{\"_0\":\"Whether the forced withdrawal was successfully executed.\"}},\"getForcedWithdrawalStatus(address,uint256)\":{\"params\":{\"account\":\"The account to get the forced withdrawal status for.\",\"id\":\"The ERC6909 token identifier of the resource lock.\"},\"returns\":{\"_0\":\" The current ForcedWithdrawalStatus (disabled, pending, or enabled).\",\"_1\":\"The timestamp at which tokens become withdrawable if status is pending.\"}},\"getLockDetails(uint256)\":{\"params\":{\"id\":\"The ERC6909 token identifier of the resource lock.\"},\"returns\":{\"_0\":\" The address of the underlying token (or address(0) for native tokens).\",\"_1\":\" The account of the allocator mediating the resource lock.\",\"_2\":\"The duration after which the resource lock can be reset once a forced withdrawal is initiated.\",\"_3\":\" The scope of the resource lock (multichain or single chain).\"}},\"getRegistrationStatus(address,bytes32,bytes32)\":{\"params\":{\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"sponsor\":\"The account that registered the compact.\",\"typehash\":\"The EIP-712 typehash associated with the registered claim hash.\"},\"returns\":{\"expires\":\" The timestamp at which the compact registration expires.\",\"isActive\":\"Whether the compact registration is currently active.\"}},\"hasConsumedAllocatorNonce(uint256,address)\":{\"params\":{\"allocator\":\"The account of the allocator.\",\"nonce\":\"The nonce to check.\"},\"returns\":{\"_0\":\"Whether the nonce has been consumed.\"}},\"isOperator(address,address)\":{\"details\":\"Checks if a `spender` is approved by `owner` to manage all of their tokens.\"},\"name()\":{\"details\":\"Returns the name for the contract.\"},\"name(uint256)\":{\"details\":\"Returns the symbol for token `id`.\"},\"register(bytes32,bytes32,uint256)\":{\"params\":{\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"duration\":\"The duration for which the claim hash remains valid.\",\"typehash\":\"The EIP-712 typehash associated with the registered claim hash.\"},\"returns\":{\"_0\":\"Whether the claim hash was successfully registered.\"}},\"register(bytes32[2][],uint256)\":{\"params\":{\"claimHashesAndTypehashes\":\"Array of [claimHash, typehash] pairs for registration.\",\"duration\":\"The duration for which the claim hashes remain valid.\"},\"returns\":{\"_0\":\"Whether all claim hashes were successfully registered.\"}},\"setOperator(address,bool)\":{\"details\":\"Sets whether `operator` is approved to manage the tokens of the caller. Emits {OperatorSet} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`.\"},\"symbol(uint256)\":{\"details\":\"Returns the symbol for token `id`.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for token `id`.\"},\"transfer(address,uint256,uint256)\":{\"details\":\"Transfers `amount` of token `id` from the caller to `to`. Requirements: - caller must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256,uint256)\":{\"details\":\"Transfers `amount` of token `id` from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount` of token `id`. - The caller must have at least `amount` of allowance to transfer the tokens of `from` or approved as an operator. Emits a {Transfer} event.\"}},\"title\":\"The Compact\",\"version\":1},\"userdoc\":{\"events\":{\"AllocatorRegistered(uint96,address)\":{\"notice\":\"Event indicating an allocator has been registered.\"},\"Claim(address,address,address,bytes32)\":{\"notice\":\"Event indicating that a claim has been processed for a given compact.\"},\"CompactRegistered(address,bytes32,bytes32,uint256)\":{\"notice\":\"Event indicating that a compact has been registered directly.\"},\"ForcedWithdrawalStatusUpdated(address,uint256,bool,uint256)\":{\"notice\":\"Event indicating a change in forced withdrawal status.\"}},\"kind\":\"user\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"notice\":\"External pure function for returning the domain separator of the contract.\"},\"__registerAllocator(address,bytes)\":{\"notice\":\"External function for registering an allocator. Can be called by anyone if one of three conditions is met: the caller is the allocator address being registered, the allocator address contains code, or a proof is supplied representing valid create2 deployment parameters that resolve to the supplied allocator address.\"},\"allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"notice\":\"Transfers ERC6909 tokens from multiple resource locks to multiple recipients with allocator approval.\"},\"allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"notice\":\"Transfers ERC6909 tokens from multiple resource locks to a single recipient with allocator approval.\"},\"allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"notice\":\"Transfers ERC6909 tokens to multiple recipients with allocator approval.\"},\"allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))\":{\"notice\":\"Transfers ERC6909 tokens to a single recipient with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"notice\":\"Withdraws underlying tokens from multiple resource locks to multiple recipients with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"notice\":\"Withdraws underlying tokens from multiple resource locks to a single recipient with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"notice\":\"Withdraws underlying tokens to multiple recipients with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))\":{\"notice\":\"Withdraws underlying tokens to a single recipient with allocator approval.\"},\"consume(uint256[])\":{\"notice\":\"External function for consuming allocator nonces. Only callable by a registered allocator. Once consumed, any compact payloads that utilize those nonces cannot be claimed.\"},\"deposit(address)\":{\"notice\":\"External payable function for depositing native tokens into a resource lock and receiving back ERC6909 tokens representing the underlying locked balance controlled by the depositor. The allocator mediating the lock is provided as an argument, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction.\"},\"deposit(address,address,uint256)\":{\"notice\":\"External function for depositing ERC20 tokens into a resource lock. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token.\"},\"deposit(address,address,uint8,uint8,uint256,address)\":{\"notice\":\"External function for depositing ERC20 tokens into a resource lock with custom reset period and scope parameters. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received by the recipient is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token.\"},\"deposit(address,uint8,uint8,address)\":{\"notice\":\"External payable function for depositing native tokens into a resource lock with custom reset period and scope parameters. The ERC6909 token amount received by the recipient will match the amount of native tokens sent with the transaction.\"},\"deposit(uint256[2][],address)\":{\"notice\":\"External payable function for depositing multiple tokens in a single transaction. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens.\"},\"depositAndRegister(address,address,uint256,bytes32,bytes32)\":{\"notice\":\"External function for depositing ERC20 tokens and simultaneously registering a compact. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token.\"},\"depositAndRegister(address,bytes32,bytes32)\":{\"notice\":\"External payable function for depositing native tokens into a resource lock and simultaneously registering a compact. The allocator, the claim hash, and the typehash used for the claim hash are provided as additional arguments, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction.\"},\"depositAndRegister(uint256[2][],bytes32[2][],uint256)\":{\"notice\":\"External payable function for depositing multiple tokens in a single transaction and registering a set of claim hashes. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens. Note that resource lock ids must be supplied in alphanumeric order.\"},\"disableForcedWithdrawal(uint256)\":{\"notice\":\"External function to disable a previously enabled forced withdrawal for a resource lock.\"},\"enableForcedWithdrawal(uint256)\":{\"notice\":\"External function to initiate a forced withdrawal for a resource lock. Once enabled, forced withdrawals can be executed after the reset period has elapsed. The withdrawableAt timestamp returned will be the current timestamp plus the reset period associated with the resource lock.\"},\"forcedWithdrawal(uint256,address,uint256)\":{\"notice\":\"External function to execute a forced withdrawal from a resource lock after the reset period has elapsed. The tokens will be withdrawn to the specified recipient in the amount requested. The ERC6909 token balance of the caller will be reduced by the difference in the balance held by the resource lock before and after the withdrawal, which may differ from the provided amount depending on the underlying token in question.\"},\"getForcedWithdrawalStatus(address,uint256)\":{\"notice\":\"External view function for checking the forced withdrawal status of a resource lock for a given account. Returns both the current status (disabled, pending, or enabled) and the timestamp at which forced withdrawals will be enabled (if status is pending) or became enabled (if status is enabled).\"},\"getLockDetails(uint256)\":{\"notice\":\"External view function for retrieving the details of a resource lock. Returns the underlying token, the mediating allocator, the reset period, and the scope.\"},\"getRegistrationStatus(address,bytes32,bytes32)\":{\"notice\":\"External view function for checking the registration status of a compact. Returns both whether the claim hash is currently active and when it expires (if it is active).\"},\"hasConsumedAllocatorNonce(uint256,address)\":{\"notice\":\"External view function for checking whether a specific nonce has been consumed by an allocator. Once consumed, a nonce cannot be reused for claims mediated by that allocator.\"},\"register(bytes32,bytes32,uint256)\":{\"notice\":\"External function to register a claim hash and its associated EIP-712 typehash. The registered claim hash will remain valid for the specified duration. Once expired, the claim hash can no longer be used to initiate claims.\"},\"register(bytes32[2][],uint256)\":{\"notice\":\"External function to register multiple claim hashes and their associated EIP-712 typehashes in a single call. All registered claim hashes will remain valid for the specified duration. Once expired, the claim hashes can no longer be used to initiate claims.\"}},\"notice\":\"The Compact is an ownerless ERC6909 contract that facilitates the voluntary formation and mediation of reusable \\\"resource locks.\\\" This contract has not yet been properly tested, audited, or reviewed.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/TheCompact.sol\":\"TheCompact\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/permit2/lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solady/=lib/solady/src/\",\":soledge/=lib/soledge/src/\",\":solmate/=lib/permit2/lib/solmate/\",\":tstorish/=lib/tstorish/src/\"],\"viaIR\":true},\"sources\":{\"lib/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"lib/permit2/src/interfaces/ISignatureTransfer.sol\":{\"keccak256\":\"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317\",\"dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d\"]},\"lib/solady/src/tokens/ERC6909.sol\":{\"keccak256\":\"0x03975a3d9680a1bfe53a678685c81ed4d70b6e0f046ccf1905539caa5376eea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827a2f6b69fcb700909635203a9453310ea89c0bb904943cf3cc732e35d81398\",\"dweb:/ipfs/QmZha3DSrunz1NR3jXHRXrLT6uvAKTt3AEV6PcbGWRLu4q\"]},\"lib/solady/src/utils/EfficientHashLib.sol\":{\"keccak256\":\"0x32032578683dc18c5f95c8dd4c1422d212f230d96d5425cc491f3350157e6fe1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82c89ef25e537766bbfc8ebba4138eee4fa1b64527c39add8240bce2ea99c661\",\"dweb:/ipfs/QmZVciQDtnXs3nDVUaH7mMLC6vFKe8zeKLK969bqJetKCj\"]},\"lib/solady/src/utils/LibString.sol\":{\"keccak256\":\"0xa0b70980612eeedd30cc65c44c37a286c8527cb41c7454db55b1a435beb2276f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93950259301ac435f1d8756cb80f99eafe9da4dc68b05e148a4b16042a69cc9b\",\"dweb:/ipfs/QmUpyP9AD7AqmRNEmrjLSQivXXdbZmFZKaLJwW9UP2wWCN\"]},\"lib/solady/src/utils/MetadataReaderLib.sol\":{\"keccak256\":\"0x671f4b38462335f3500b91eeff2fd25fc447cc201901524959c05b934ad0b100\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa64b44dc13b25c1aa713cb5724fade1dc093c95581efc5ccb85cbcc616c02c5\",\"dweb:/ipfs/QmRvXqBw8GqpShA8cXAwA6ha14Q2bfajNmYq1mYNYAaMiv\"]},\"lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"lib/solady/src/utils/SignatureCheckerLib.sol\":{\"keccak256\":\"0x472ad43dd67dcc0d548efbbc8779f34e56a7eb99d7a8b1c29af33fb03bbe9ffc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://733da5015058b9540927c63c316665e9ac8d9676d23f722bddf9376c2a03d4cb\",\"dweb:/ipfs/QmPhXj1qpjnwVjrZUgFdkinMK9XSuoLN3cxbSmqADYSZry\"]},\"lib/tstorish/src/Tstorish.sol\":{\"keccak256\":\"0xad3697d9fd6e7c1fb6faa8d474af00bb2a7afd51e8818165fd30bcc7ead53973\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8b62000145be27440c913238fbe9b97ecfc709eacac14b498f18980418d6ab6\",\"dweb:/ipfs/QmRMXHdYUDmajWzwUjs7CQZ5i1T739MhiMmimd3do8qJNk\"]},\"src/TheCompact.sol\":{\"keccak256\":\"0x2949a8d172180ba623c85dfc22eda0ba1f59c4d70d8ee8ade62b5876ff6cd935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c6a3fdaa5319cc8a272422e8af551bee8e1467f78aa8b65a1290fddf0453a90\",\"dweb:/ipfs/QmafPX5TCncQbuhFtztQVL81hmU9wmdxfNZCYj9t5X6QqM\"]},\"src/interfaces/ITheCompact.sol\":{\"keccak256\":\"0xe75d130ab9ead7ef7866f4ce8fcbe5e8de49450abf5f8c6b5878c4e54e480103\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b7694d1b97b350c41e668e72d25d3df10c230b9dd21219827d7d2cc0dc39b6\",\"dweb:/ipfs/QmTDJAFcTYfU7DyfuYMJHK3YMYRkXQvm9MoUhywaqeUsZ6\"]},\"src/interfaces/ITheCompactClaims.sol\":{\"keccak256\":\"0x5691d5127ccff51eea74ce4f6dd01a5f121fd2a1b7bdad41aca39c4d236e27bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca686c6911319d151dc1f658767545823d750c3fb54cb8f75e46b544df3a217a\",\"dweb:/ipfs/QmT2a1twcvzHxjWwcLqMebo9rat5x5CVy2KJfawj9qXS5a\"]},\"src/lib/AllocatorLogic.sol\":{\"keccak256\":\"0xadfa16ae7d02777e129d31639f110be46093ef109c1287896598ee792de34d5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11a258ef5e43b6d85c99b330beaf4c3750f0d41c3b862b677551eca3626a2071\",\"dweb:/ipfs/QmfViBPCWeKqgdVKfA7KQUz2JntZEdGfbpgAwCGWwLGQ9Y\"]},\"src/lib/ClaimHashFunctionCastLib.sol\":{\"keccak256\":\"0xcfa2f7fb4e3df789ae504ebc13e31cadb6c05282e07d46a4b807d5d23a5ef530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51e642f4676ec4e0ecc1fb716cd051bd6d12dac2d39e997e516af5bd141b3178\",\"dweb:/ipfs/QmeQ8vHdg8vsCZ9XPc3af82ktXHHicY3QQbAoghHfvkVK4\"]},\"src/lib/ClaimHashLib.sol\":{\"keccak256\":\"0x2bc3fb604115697562a4770f98020efd578b02d6376b56ca52c64d0df46f6e87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aeddaee5ec0f8512fc13af7b0bfc07e93250a1bc34b6095c6a5bd6624a73990d\",\"dweb:/ipfs/QmVeVSBNoJeMndTQpvB2Kr9BzWWG8crjeBPjZZxciGYXMx\"]},\"src/lib/ClaimProcessor.sol\":{\"keccak256\":\"0x58872af76a73fd131a85635150545978bbe09ae83ec4ed2fae19d75c038a482c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d782488fcbded4ef2781031940611599b6ec41e92d813800912e2c86afd7979\",\"dweb:/ipfs/QmaCuq52gwjc1LfZrURPpyrjmGZZCtzhXRqg4dMhXP1NKa\"]},\"src/lib/ClaimProcessorFunctionCastLib.sol\":{\"keccak256\":\"0xb69ec41dc657f93f6f6a1901d39e48a791907d4debc0eb8104f9fe016b6a59ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6a54cebc498c4181ddc25fd4c6162449ae12d407fc1b45c0e6c4b365da1543e\",\"dweb:/ipfs/QmRdZp5fraYJRB7QXwDqE5jbpmerWaCV3DqMPxi9aCk4ZQ\"]},\"src/lib/ClaimProcessorLib.sol\":{\"keccak256\":\"0xf150692ad2915d0c4df63ea44e62f6e3d5736f2c91de7cea48a1301cf4034e51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c2f21638d2a613e912cf73dd049b0bb2e4abbea54a3f58a5439f6396c59d9ee\",\"dweb:/ipfs/QmRQpwnhhNfvWyTXHRy982awBnHA4fjK7GpHzSgqC3pPT6\"]},\"src/lib/ClaimProcessorLogic.sol\":{\"keccak256\":\"0x737780590a48e67dc0f64bd3bb7248eafb7630f579d8aa44befb197d9ac66ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea7c69e2cbf316fe182fad296b8d65a76ade84923edb0572c339f880e21fc7bc\",\"dweb:/ipfs/QmWuZ9UJA4nsdPjgCa6rsCBvoWBjcUhWRuCnLqPNbM8687\"]},\"src/lib/ComponentLib.sol\":{\"keccak256\":\"0x3e1ad4bff9cd12162f9b849078839b802f4783b474588fa93be8ba1e61263dd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faa70f41d0679e1fa2aa827f863c03bf8a3962703a26ae724b7ca2a8d5f9f96b\",\"dweb:/ipfs/QmXWyv8ATKeSKwiXCPFZBLkrRuV1NhNDS5yH5rDyrm6GLs\"]},\"src/lib/ConstructorLogic.sol\":{\"keccak256\":\"0xca9b0d52a562351978aafcc06f79f5c555ea948eaad28983812a7892f02b1245\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f2e41013c0ef8ef9bee844494185b7a09c8680ea3d931a2683f968cdaa154a9\",\"dweb:/ipfs/QmX8CoLP6VGRkxhx6VonrRf2YqPZ1hg1LagKvkNBaQtNaR\"]},\"src/lib/ConsumerLib.sol\":{\"keccak256\":\"0x582badfccdb57ee9518e39676fab7ba2abc6b527c854d524b8f417126fa6d192\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96d6dde54bdad2fc2203620d5f75e96cc9267cb340e1284d311bf6f8c77d16d2\",\"dweb:/ipfs/Qmbq8XuUiAoEsmYVa2NCHSdi6gu4ZYzeyr1iPNGaFwwhxu\"]},\"src/lib/DepositLogic.sol\":{\"keccak256\":\"0xb2a199980ca4025c1784ebc79ec5d73cbe849ff26d446b2ca58bdb7066475fcf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73e9defc19c10bb6b63d7571a1e097ed09accdf7cf123b91c8a9bea02c9ca87f\",\"dweb:/ipfs/QmVWt9Ssb6CuFpYKTDYc31FH9TFZfYqs4WGsqf2ksiPtpx\"]},\"src/lib/DepositViaPermit2Lib.sol\":{\"keccak256\":\"0x3d45834b9be7e0af8aadd4c3afb2b5d7a9c1a47156e30780499852b1e503b1c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e16d1aa8eb93fefd956455fbb157a58cb9fb3824a276f54a33a52c17924c30b\",\"dweb:/ipfs/QmUmsqU9p8J7r7hk5jxNYXUnaPoCaMruFKtxFo12zV7XJQ\"]},\"src/lib/DepositViaPermit2Logic.sol\":{\"keccak256\":\"0xb8813f63d4a3c05dc99e36b6a900cbd7c6c6bfc8cccdb5b9052894400b4925a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://463fa79ef23b7f6d56a9bc8f6139917374a06f860c12fbfe6e76d794e690b9e0\",\"dweb:/ipfs/QmXGqm3wZqRSDAvy7mykMvezMBVPPT79pJYsASwkxXFitq\"]},\"src/lib/DirectDepositLogic.sol\":{\"keccak256\":\"0xa1b9f042c5ecf3edcde3733bd12cde49633dcce9336622ea7c5eabd0ce2bafa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0eeaa505727c2b42780bd4e3e3dbede2ce51480c46ff90ad401d7328fc5e42d8\",\"dweb:/ipfs/QmZ8MDQjSi2yczScSgKyd6Ge3ir4xJA2o8pX1j15ryyzVp\"]},\"src/lib/DomainLib.sol\":{\"keccak256\":\"0x0a69b112fabd7d4e13fbf4c796a4a163f522c84b4b6a981c913a6c7342f5cc6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a3d3fd2d8ab66c6dd0f2674efcf2bca87899decd42e949631be80a60f74d6a2\",\"dweb:/ipfs/QmP38CpNz5GjycQZwpe7CxXrRsugraQDtr6rsiA5ue2iK6\"]},\"src/lib/EfficiencyLib.sol\":{\"keccak256\":\"0xd8fd182c728a98a3ac5c64cbc7011bc34dc1ee06e377a1a5e670c3cd8375eff9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f565cad687dc0bd3438a8b8b08ecc973f5ad5a1aebd332baa402e45cd56ae83\",\"dweb:/ipfs/QmayoEFEv6zMhRw6kqqoqdmNE1jGbwgRQ6VA5wj2XAb7Du\"]},\"src/lib/EventLib.sol\":{\"keccak256\":\"0x0d9bc84e78628d9ff42689b8cd33353c86f9de7220002d74c5d485275f328946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb8bf826a89bb1cc62e8af269f34453c13df6ffe473e0dff8aeddaf1797afa0f\",\"dweb:/ipfs/QmX7TFZACuGBhCVMjAPve7JKz6PWZjYTMr7JQ9WbFatKcu\"]},\"src/lib/Extsload.sol\":{\"keccak256\":\"0x72075add7c7d734c46922f2f56cb490d48711a0cc6af439619ff39e60df75924\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://283cc72cb88802327c60fc9bc75f840ff639d791c1d19056bbadf7e7e5f3c99f\",\"dweb:/ipfs/QmWoCebx1axDW8uuUEPv6QRzGWFD5bRGnvw2VD7KJufokB\"]},\"src/lib/HashLib.sol\":{\"keccak256\":\"0x50bc064b796b92d6199cf09cf8ea34a808653a8c668f695ce89cd3614956cb4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6bd96eb47fd50bb4f15540e3f8c903d5cf83d8e0e975d615abb9e2dfe7329af0\",\"dweb:/ipfs/QmVPs5HWJEbUtKQn69jSYdA7U92jU7nkWwGfsmD6sUCWsR\"]},\"src/lib/IdLib.sol\":{\"keccak256\":\"0x14a04b7bdfcd5e7cc783a7202cb0429fb225f0a960908f06028f39f78b01373b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c465efd13c8fd3ddfd701357f8f6e64443d69c5ab835c7bb35b8934261c2313e\",\"dweb:/ipfs/QmP15v2Qrp1hg7BvkfzE4zqcjwhDH2NBHkzJ8rRShCwU8S\"]},\"src/lib/MetadataLib.sol\":{\"keccak256\":\"0x1d7f67de567fccba29393048a15373c9ad6cc903409b52b94a8baf1747204340\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f15f66c2420d6f5a527ee12945bc000e7687586727845015d60e229ca5009d4\",\"dweb:/ipfs/QmY27xFEKUBW3U7K18gQNNbmR3pZbp1Gz3ecQVkZQUBzek\"]},\"src/lib/MetadataRenderer.sol\":{\"keccak256\":\"0xdef8b8a92120470f9d290b5d6ab3fc69145300741ca066b152ddc71cd719982e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6946d4d9d525fd21e3b4d310aaa5160de531bda7574bb5ad8c6a10616c340fe8\",\"dweb:/ipfs/QmdB6Kwipo2MXCLPexXqjNP2xQhkG8BRx7KBWKMyqCRNHk\"]},\"src/lib/RegistrationLib.sol\":{\"keccak256\":\"0xa6be3d3f74e30fa04157f369964afe818f562c82369bb0823ffc4a06297364a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f73aa296543d4c3757a9b104278cfa9c07838ae9a9b82a3e77ed6df7bbe8ef20\",\"dweb:/ipfs/QmWDCBxnz3quqhDtAN7zqetaQmCE8ULM1dAYEBrguHP5DQ\"]},\"src/lib/RegistrationLogic.sol\":{\"keccak256\":\"0x40850751ea4a77f6bd9df09a3a9f565994dfd03b29a15dcc31e03da3be317b7f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16f07cb5ab8e5adfe74cdd700f5c9e448b28fab0b120058b25d4d1bcf2338a9a\",\"dweb:/ipfs/QmULZACcDPswptXRxKnA8dBChU63k8CkvY5Q7YG7SJoSs6\"]},\"src/lib/SharedLogic.sol\":{\"keccak256\":\"0xcc76a01f9dc24f1afc4fd21dbdb423ec7a6cccb454c9b725fa3b135d4d851365\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f9fe59a2d0c467832d42c60acabd4c599868024c09b5aa89e9e91b38e9f8eba\",\"dweb:/ipfs/Qmbsu2BLJT32Qc77RR3ZHhVTMkyh1sLJueLiTuYHCQwxVf\"]},\"src/lib/TheCompactLogic.sol\":{\"keccak256\":\"0xc6106d8b4a9f2bf6c9006181a3e6acc95c8524628b5096478c76716a7e2cc5c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18056a737da3fddaac4cb50dd598b57e0bcc5d1889669831bbb4d09bc48c5cf6\",\"dweb:/ipfs/QmPvQs8THzQPfpxuB5MKNKsFGiPjbR9B5QVAKa4NTkpSbd\"]},\"src/lib/TransferFunctionCastLib.sol\":{\"keccak256\":\"0x1b2b8d48503f85dee96cb0d915d1f506ab872aac6fb29a1adbb894de93a534e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a2eb941a4a3e4633c88420ae3eab750ffdb32e431c71927a10feb6562b6e9a9\",\"dweb:/ipfs/QmeYJbeupvqjyrMV43Z41mz52E9Bwqhmm4mSx7K8F26Vmb\"]},\"src/lib/TransferLogic.sol\":{\"keccak256\":\"0x08ae66f9d642e8caabcd200d8574e5487cc11181c23acc18f2076e4f5e9ca086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f4ec47106727e1fd5197f9fa7e86552469a198dd62dd24ad3dc1db9fb6d4327\",\"dweb:/ipfs/QmR3bC1fmUVYTarsZMRU3u3RV1GcbNsF3NghvxND4B7J46\"]},\"src/lib/ValidityLib.sol\":{\"keccak256\":\"0xfdecefc1bd9b9ba92fb471af7d09dc30255cb16154cec436b27fc06630fc7106\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b36c79e57192514bcf3aace66e38568708e066f24db93832f0a7f530754c5a7\",\"dweb:/ipfs/QmUSRsBpZz7VEPN1ubX5mB71uKRdQ17Tf5jbkUNkyiMGhu\"]},\"src/lib/WithdrawalLogic.sol\":{\"keccak256\":\"0x438c41cb28048ee067e8f64e2faaf7339a3324f0ce81ec96c94e5692074ee650\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f811218032733e0fd0eb937a036b04e37dfcd46ed64bcbac22ecbb5d2a5993b4\",\"dweb:/ipfs/QmdD2bN9Be2dDBEmuYBKGJKgW5FsayuojBqjYuz2ZvWcEb\"]},\"src/types/BatchClaims.sol\":{\"keccak256\":\"0x368860cb48d9cf8b7ee86e226fc203307c8559ee5bbd987299c14580c61039b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edd6eccb18ee3f7dc1e4fdeaa00d007b8cd6f506ab76366f74e530a66211ba8d\",\"dweb:/ipfs/Qmf68iLL8CVZEvkjnQb6GdPumsP5V8dFfSubXCSx1Vgu4Z\"]},\"src/types/BatchMultichainClaims.sol\":{\"keccak256\":\"0xe493995e946bf63d2970e5668e426f6c3d84f9ae5b03f86f7c493ae02ca8b96c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91370d328607589fa1ff37f3c0ef66a5b90ff63de20c8ccee3b009a6aedb2620\",\"dweb:/ipfs/QmY5Ja2XfxRFbh4dtViqiepaSfNr1rWrMYSnSGjeMPxxNw\"]},\"src/types/Claims.sol\":{\"keccak256\":\"0x6ae4ad79a64e0edd6169e87f8c3e35abd5f592ac23dc8eae7b92dfc190fa3ae2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4434f16be0877209b2aaa51c9f27b9374fab6acbfc3b6241ba00907d6de7a96\",\"dweb:/ipfs/QmTTcNwtekjwMZkrNKAcKAprWG47pSVEn2GETX6tZu746C\"]},\"src/types/CompactCategory.sol\":{\"keccak256\":\"0xc3ab3758e88fc8591d79352d3d49140433bbf4176c3caa1bfce1903e2bfadf06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16960ee62b98c5cbbedcfe22ce4b521205d2bcc4fe9dfa57a9d68ec90efeb5a1\",\"dweb:/ipfs/Qmc3FciGTRrDZjRSb9waUYkZsELRvVWkJKNVqS1u8vEDNG\"]},\"src/types/Components.sol\":{\"keccak256\":\"0xd5027c0eb603a4604e050e97930fa436db33755b3e8097894320916cd7163ff0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b414c4a0e0d543f8de309bbb005f62d63a5c67ae6cf78d5d5b5fd076dd7b0a51\",\"dweb:/ipfs/QmX8Z9Fp2QJVgE9hwbPjrXUYc4RVAE8qTyfN8DKBpV5iPB\"]},\"src/types/EIP712Types.sol\":{\"keccak256\":\"0x386ff8e0aff7d437b8b49117ed158554e608d0cc18a0b4f561510e9584cafb91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e49d199dd3caab0210a2648a1b9d2a8965b5706f602fffee8e1815bbacddbe5e\",\"dweb:/ipfs/QmYUzWFC4GK1rjoqnZEt2ghL5GMPCiaF5xaPzSr4Rm99PK\"]},\"src/types/ForcedWithdrawalStatus.sol\":{\"keccak256\":\"0xdf352a2439e57ea9e1b7d54997fe904e4ea41ab9d2d8221d7d753dce94e76dc7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6faadb6857eda66cbef8fe1bf36d85d16f534b899a737a9464e69dc505eb9e89\",\"dweb:/ipfs/QmdC9beQhPRYv5sAFx7TyWvzGPjm6XY3bCYNKzuZH1Pesd\"]},\"src/types/Lock.sol\":{\"keccak256\":\"0x21a490258b933f8d5db759a91d07f7d9d2b2435d366334a8bcfbce4379a85011\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d1cfcb02c3b0a70d82b2d9bd9c55ffcf654a226774711ca727eab8b0cdf456ea\",\"dweb:/ipfs/QmRFN3dvespK1mUcUuXm4rnPd3ZGNRdba8MZgub1zu24Qw\"]},\"src/types/MultichainClaims.sol\":{\"keccak256\":\"0x596b71d675b7b5e13b29f6b7fb92d23722d2792fadc82ad764467fdf9c693cb9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://974d9d906e06ad29e875c2556d32c1f631a70539e43b018815e3fc68ede01e53\",\"dweb:/ipfs/QmPbqsU21jDGhLQ9x9No2xDUimaLueGGF7eAkNxJfhc3fx\"]},\"src/types/ResetPeriod.sol\":{\"keccak256\":\"0xfd32523d563b926c72fdc693aa8b7f6db24f4720decee16710cdfc662a8d8f16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c510cde0fc28cde51aad2df6bac8eeef5e0fb67be754a3d8c655a8556db32c6\",\"dweb:/ipfs/QmWjVZJdfxVK5EiprmWi9iGNMqXAkVZjECnzeXvjfTsDZX\"]},\"src/types/Scope.sol\":{\"keccak256\":\"0x3e63be015c24bde88698efc20b00690d1e683a5cabf2122dc91ab0ecad4ae8ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5160d46460204dc6268a963e9d0c117fab903318f74d3b5903693fe2dfcc2462\",\"dweb:/ipfs/QmRsc4VSWvvSxi3VfyFgjTELj5DB5MpZ7UPJ3mzgPMyD9v\"]}},\"version\":1}", + "metadata": { + "compiler": { "version": "0.8.28+commit.7893614a" }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "providedAmount", + "type": "uint256" + } + ], + "type": "error", + "name": "AllocatedAmountExceeded" + }, + { "inputs": [], "type": "error", "name": "BalanceOverflow" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "expiration", + "type": "uint256" + } + ], + "type": "error", + "name": "Expired" + }, + { + "inputs": [ + { "internalType": "address", "name": "account", "type": "address" }, + { "internalType": "uint256", "name": "id", "type": "uint256" } + ], + "type": "error", + "name": "ForcedWithdrawalAlreadyDisabled" + }, + { "inputs": [], "type": "error", "name": "InsufficientBalance" }, + { "inputs": [], "type": "error", "name": "InsufficientPermission" }, + { "inputs": [], "type": "error", "name": "InvalidBatchAllocation" }, + { + "inputs": [], + "type": "error", + "name": "InvalidBatchDepositStructure" + }, + { + "inputs": [], + "type": "error", + "name": "InvalidDepositBalanceChange" + }, + { + "inputs": [], + "type": "error", + "name": "InvalidDepositTokenOrdering" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "duration", "type": "uint256" } + ], + "type": "error", + "name": "InvalidRegistrationDuration" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "allocator", + "type": "address" + } + ], + "type": "error", + "name": "InvalidRegistrationProof" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "id", "type": "uint256" } + ], + "type": "error", + "name": "InvalidScope" + }, + { "inputs": [], "type": "error", "name": "InvalidSignature" }, + { + "inputs": [ + { "internalType": "address", "name": "token", "type": "address" } + ], + "type": "error", + "name": "InvalidToken" + }, + { "inputs": [], "type": "error", "name": "OnlyDirectCalls" }, + { "inputs": [], "type": "error", "name": "Permit2CallFailed" }, + { + "inputs": [ + { "internalType": "uint256", "name": "id", "type": "uint256" } + ], + "type": "error", + "name": "PrematureWithdrawal" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "existingCaller", + "type": "address" + } + ], + "type": "error", + "name": "ReentrantCall" + }, + { "inputs": [], "type": "error", "name": "TStoreAlreadyActivated" }, + { "inputs": [], "type": "error", "name": "TStoreNotSupported" }, + { + "inputs": [], + "type": "error", + "name": "TloadTestContractDeploymentFailed" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { "internalType": "address", "name": "from", "type": "address" }, + { "internalType": "address", "name": "to", "type": "address" }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ], + "type": "error", + "name": "UnallocatedTransfer" + }, + { + "inputs": [ + { + "internalType": "uint96", + "name": "allocatorId", + "type": "uint96", + "indexed": false + }, + { + "internalType": "address", + "name": "allocator", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "AllocatorRegistered", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "spender", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + "indexed": true + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Approval", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sponsor", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "allocator", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "arbiter", + "type": "address", + "indexed": true + }, + { + "internalType": "bytes32", + "name": "claimHash", + "type": "bytes32", + "indexed": false + } + ], + "type": "event", + "name": "Claim", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sponsor", + "type": "address", + "indexed": true + }, + { + "internalType": "bytes32", + "name": "claimHash", + "type": "bytes32", + "indexed": false + }, + { + "internalType": "bytes32", + "name": "typehash", + "type": "bytes32", + "indexed": false + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "CompactRegistered", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + "indexed": true + }, + { + "internalType": "bool", + "name": "activating", + "type": "bool", + "indexed": false + }, + { + "internalType": "uint256", + "name": "withdrawableAt", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "ForcedWithdrawalStatusUpdated", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "operator", + "type": "address", + "indexed": true + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool", + "indexed": false + } + ], + "type": "event", + "name": "OperatorSet", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "by", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "from", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + "indexed": true + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Transfer", + "anonymous": false + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { "internalType": "bytes32", "name": "", "type": "bytes32" } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "__activateTstore" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "allocator", + "type": "address" + }, + { "internalType": "bytes", "name": "proof", "type": "bytes" } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "__registerAllocator", + "outputs": [ + { "internalType": "uint96", "name": "", "type": "uint96" } + ] + }, + { + "inputs": [ + { + "internalType": "struct BatchTransfer", + "name": "transfer", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "struct TransferComponent[]", + "name": "transfers", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "allocatedTransfer", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitBatchTransfer", + "name": "transfer", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "struct SplitByIdComponent[]", + "name": "transfers", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "allocatedTransfer", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitTransfer", + "name": "transfer", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "struct SplitComponent[]", + "name": "recipients", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "allocatedTransfer", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct BasicTransfer", + "name": "transfer", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "allocatedTransfer", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct BasicTransfer", + "name": "withdrawal", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "allocatedWithdrawal", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitBatchTransfer", + "name": "withdrawal", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "struct SplitByIdComponent[]", + "name": "transfers", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "allocatedWithdrawal", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct BatchTransfer", + "name": "withdrawal", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "struct TransferComponent[]", + "name": "transfers", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "allocatedWithdrawal", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitTransfer", + "name": "withdrawal", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "struct SplitComponent[]", + "name": "recipients", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "allocatedWithdrawal", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { "internalType": "address", "name": "owner", "type": "address" }, + { "internalType": "address", "name": "spender", "type": "address" }, + { "internalType": "uint256", "name": "id", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function", + "name": "allowance", + "outputs": [ + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ] + }, + { + "inputs": [ + { "internalType": "address", "name": "spender", "type": "address" }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ], + "stateMutability": "payable", + "type": "function", + "name": "approve", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { "internalType": "address", "name": "owner", "type": "address" }, + { "internalType": "uint256", "name": "id", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function", + "name": "balanceOf", + "outputs": [ + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousSplitBatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedBatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitBatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedBatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousSplitMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedSplitMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedSplitMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitBatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct BatchClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedBatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct BasicClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitBatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct BatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct BatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousSplitMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousSplitBatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedBatchClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedBatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct BatchClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitBatchClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitBatchClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedBatchClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct MultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct MultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitBatchClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitBatchClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousBatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousBatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitBatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claim", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedBatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitBatchClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitBatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedBatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitBatchClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedBatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct MultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousSplitBatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitBatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousBatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousSplitMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct BatchClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitBatchClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousSplitBatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitBatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedSplitMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct BatchClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct MultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedSplitMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitBatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedBatchClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct BasicClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct BatchMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct BatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousSplitMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousBatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedMultichainClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct SplitBatchClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "struct SplitBatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "portions", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedBatchClaim", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct QualifiedSplitClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "struct SplitComponent[]", + "name": "claimants", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "claimant", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "struct ExogenousQualifiedBatchMultichainClaimWithWitness", + "name": "claimPayload", + "type": "tuple", + "components": [ + { + "internalType": "bytes", + "name": "allocatorSignature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "sponsorSignature", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sponsor", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "witness", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "witnessTypestring", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "qualificationTypehash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "qualificationPayload", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "additionalChains", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "chainIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "notarizedChainId", + "type": "uint256" + }, + { + "internalType": "struct BatchClaimComponent[]", + "name": "claims", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "allocatedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "address", + "name": "claimant", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimAndWithdraw", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "nonces", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "consume", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { "internalType": "uint256", "name": "id", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function", + "name": "decimals", + "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }] + }, + { + "inputs": [ + { "internalType": "address", "name": "token", "type": "address" }, + { "internalType": "uint256", "name": "", "type": "uint256" }, + { "internalType": "uint256", "name": "", "type": "uint256" }, + { "internalType": "uint256", "name": "", "type": "uint256" }, + { "internalType": "address", "name": "", "type": "address" }, + { "internalType": "address", "name": "", "type": "address" }, + { "internalType": "enum ResetPeriod", "name": "", "type": "uint8" }, + { "internalType": "enum Scope", "name": "", "type": "uint8" }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { "internalType": "bytes", "name": "signature", "type": "bytes" } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "deposit", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "allocator", + "type": "address" + }, + { + "internalType": "enum ResetPeriod", + "name": "resetPeriod", + "type": "uint8" + }, + { "internalType": "enum Scope", "name": "scope", "type": "uint8" }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "deposit", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ] + }, + { + "inputs": [ + { "internalType": "address", "name": "token", "type": "address" }, + { + "internalType": "address", + "name": "allocator", + "type": "address" + }, + { + "internalType": "enum ResetPeriod", + "name": "resetPeriod", + "type": "uint8" + }, + { "internalType": "enum Scope", "name": "scope", "type": "uint8" }, + { "internalType": "uint256", "name": "amount", "type": "uint256" }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "deposit", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ] + }, + { + "inputs": [ + { "internalType": "address", "name": "token", "type": "address" }, + { + "internalType": "address", + "name": "allocator", + "type": "address" + }, + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "deposit", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ] + }, + { + "inputs": [ + { "internalType": "address", "name": "", "type": "address" }, + { + "internalType": "struct ISignatureTransfer.TokenPermissions[]", + "name": "permitted", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { "internalType": "uint256", "name": "", "type": "uint256" }, + { "internalType": "uint256", "name": "", "type": "uint256" }, + { "internalType": "address", "name": "", "type": "address" }, + { "internalType": "enum ResetPeriod", "name": "", "type": "uint8" }, + { "internalType": "enum Scope", "name": "", "type": "uint8" }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { "internalType": "bytes", "name": "signature", "type": "bytes" } + ], + "stateMutability": "payable", + "type": "function", + "name": "deposit", + "outputs": [ + { "internalType": "uint256[]", "name": "", "type": "uint256[]" } + ] + }, + { + "inputs": [ + { + "internalType": "uint256[2][]", + "name": "idsAndAmounts", + "type": "uint256[2][]" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "deposit", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "allocator", + "type": "address" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "deposit", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ] + }, + { + "inputs": [ + { "internalType": "address", "name": "token", "type": "address" }, + { "internalType": "uint256", "name": "", "type": "uint256" }, + { "internalType": "uint256", "name": "", "type": "uint256" }, + { "internalType": "uint256", "name": "", "type": "uint256" }, + { + "internalType": "address", + "name": "depositor", + "type": "address" + }, + { "internalType": "address", "name": "", "type": "address" }, + { + "internalType": "enum ResetPeriod", + "name": "resetPeriod", + "type": "uint8" + }, + { "internalType": "enum Scope", "name": "", "type": "uint8" }, + { + "internalType": "bytes32", + "name": "claimHash", + "type": "bytes32" + }, + { + "internalType": "enum CompactCategory", + "name": "compactCategory", + "type": "uint8" + }, + { "internalType": "string", "name": "witness", "type": "string" }, + { "internalType": "bytes", "name": "signature", "type": "bytes" } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "depositAndRegister", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ] + }, + { + "inputs": [ + { + "internalType": "uint256[2][]", + "name": "idsAndAmounts", + "type": "uint256[2][]" + }, + { + "internalType": "bytes32[2][]", + "name": "claimHashesAndTypehashes", + "type": "bytes32[2][]" + }, + { "internalType": "uint256", "name": "duration", "type": "uint256" } + ], + "stateMutability": "payable", + "type": "function", + "name": "depositAndRegister", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "allocator", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "claimHash", + "type": "bytes32" + }, + { "internalType": "bytes32", "name": "typehash", "type": "bytes32" } + ], + "stateMutability": "payable", + "type": "function", + "name": "depositAndRegister", + "outputs": [ + { "internalType": "uint256", "name": "id", "type": "uint256" } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "depositor", + "type": "address" + }, + { + "internalType": "struct ISignatureTransfer.TokenPermissions[]", + "name": "permitted", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { "internalType": "uint256", "name": "", "type": "uint256" }, + { "internalType": "uint256", "name": "", "type": "uint256" }, + { "internalType": "address", "name": "", "type": "address" }, + { + "internalType": "enum ResetPeriod", + "name": "resetPeriod", + "type": "uint8" + }, + { "internalType": "enum Scope", "name": "", "type": "uint8" }, + { + "internalType": "bytes32", + "name": "claimHash", + "type": "bytes32" + }, + { + "internalType": "enum CompactCategory", + "name": "compactCategory", + "type": "uint8" + }, + { "internalType": "string", "name": "witness", "type": "string" }, + { "internalType": "bytes", "name": "signature", "type": "bytes" } + ], + "stateMutability": "payable", + "type": "function", + "name": "depositAndRegister", + "outputs": [ + { "internalType": "uint256[]", "name": "", "type": "uint256[]" } + ] + }, + { + "inputs": [ + { "internalType": "address", "name": "token", "type": "address" }, + { + "internalType": "address", + "name": "allocator", + "type": "address" + }, + { "internalType": "uint256", "name": "amount", "type": "uint256" }, + { + "internalType": "bytes32", + "name": "claimHash", + "type": "bytes32" + }, + { "internalType": "bytes32", "name": "typehash", "type": "bytes32" } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "depositAndRegister", + "outputs": [ + { "internalType": "uint256", "name": "id", "type": "uint256" } + ] + }, + { + "inputs": [ + { "internalType": "uint256", "name": "id", "type": "uint256" } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "disableForcedWithdrawal", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { "internalType": "uint256", "name": "id", "type": "uint256" } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "enableForcedWithdrawal", + "outputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" } + ] + }, + { + "inputs": [ + { "internalType": "bytes32", "name": "slot", "type": "bytes32" } + ], + "stateMutability": "view", + "type": "function", + "name": "extsload", + "outputs": [ + { "internalType": "bytes32", "name": "", "type": "bytes32" } + ] + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "slots", + "type": "bytes32[]" + } + ], + "stateMutability": "view", + "type": "function", + "name": "extsload", + "outputs": [ + { "internalType": "bytes32[]", "name": "", "type": "bytes32[]" } + ] + }, + { + "inputs": [ + { "internalType": "bytes32", "name": "slot", "type": "bytes32" } + ], + "stateMutability": "view", + "type": "function", + "name": "exttload", + "outputs": [ + { "internalType": "bytes32", "name": "", "type": "bytes32" } + ] + }, + { + "inputs": [ + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "forcedWithdrawal", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { "internalType": "address", "name": "account", "type": "address" }, + { "internalType": "uint256", "name": "id", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function", + "name": "getForcedWithdrawalStatus", + "outputs": [ + { + "internalType": "enum ForcedWithdrawalStatus", + "name": "", + "type": "uint8" + }, + { "internalType": "uint256", "name": "", "type": "uint256" } + ] + }, + { + "inputs": [ + { "internalType": "uint256", "name": "id", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function", + "name": "getLockDetails", + "outputs": [ + { "internalType": "address", "name": "", "type": "address" }, + { "internalType": "address", "name": "", "type": "address" }, + { "internalType": "enum ResetPeriod", "name": "", "type": "uint8" }, + { "internalType": "enum Scope", "name": "", "type": "uint8" } + ] + }, + { + "inputs": [ + { "internalType": "address", "name": "sponsor", "type": "address" }, + { + "internalType": "bytes32", + "name": "claimHash", + "type": "bytes32" + }, + { "internalType": "bytes32", "name": "typehash", "type": "bytes32" } + ], + "stateMutability": "view", + "type": "function", + "name": "getRegistrationStatus", + "outputs": [ + { "internalType": "bool", "name": "isActive", "type": "bool" }, + { "internalType": "uint256", "name": "expires", "type": "uint256" } + ] + }, + { + "inputs": [ + { "internalType": "uint256", "name": "nonce", "type": "uint256" }, + { + "internalType": "address", + "name": "allocator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "hasConsumedAllocatorNonce", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { "internalType": "address", "name": "owner", "type": "address" }, + { "internalType": "address", "name": "spender", "type": "address" } + ], + "stateMutability": "view", + "type": "function", + "name": "isOperator", + "outputs": [ + { "internalType": "bool", "name": "status", "type": "bool" } + ] + }, + { + "inputs": [ + { "internalType": "uint256", "name": "id", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function", + "name": "name", + "outputs": [ + { "internalType": "string", "name": "", "type": "string" } + ] + }, + { + "inputs": [], + "stateMutability": "pure", + "type": "function", + "name": "name", + "outputs": [ + { "internalType": "string", "name": "", "type": "string" } + ] + }, + { + "inputs": [ + { + "internalType": "bytes32[2][]", + "name": "claimHashesAndTypehashes", + "type": "bytes32[2][]" + }, + { "internalType": "uint256", "name": "duration", "type": "uint256" } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "register", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "claimHash", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "typehash", + "type": "bytes32" + }, + { "internalType": "uint256", "name": "duration", "type": "uint256" } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "register", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { "internalType": "bool", "name": "approved", "type": "bool" } + ], + "stateMutability": "payable", + "type": "function", + "name": "setOperator", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "stateMutability": "view", + "type": "function", + "name": "supportsInterface", + "outputs": [ + { "internalType": "bool", "name": "result", "type": "bool" } + ] + }, + { + "inputs": [ + { "internalType": "uint256", "name": "id", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function", + "name": "symbol", + "outputs": [ + { "internalType": "string", "name": "", "type": "string" } + ] + }, + { + "inputs": [ + { "internalType": "uint256", "name": "id", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function", + "name": "tokenURI", + "outputs": [ + { "internalType": "string", "name": "", "type": "string" } + ] + }, + { + "inputs": [ + { "internalType": "address", "name": "to", "type": "address" }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ], + "stateMutability": "payable", + "type": "function", + "name": "transfer", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { "internalType": "address", "name": "from", "type": "address" }, + { "internalType": "address", "name": "to", "type": "address" }, + { "internalType": "uint256", "name": "id", "type": "uint256" }, + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ], + "stateMutability": "payable", + "type": "function", + "name": "transferFrom", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "DOMAIN_SEPARATOR()": { + "returns": { + "_0": "A bytes32 representing the domain separator for the contract." + } + }, + "__activateTstore()": { + "details": "External function to activate TSTORE usage. Does not need to be called if TSTORE is supported from deployment, and only needs to be called once. Reverts if TSTORE has already been activated or if the opcode is not available. Note that this must be called directly from an externally-owned account to avoid potential reentrancy issues." + }, + "__registerAllocator(address,bytes)": { + "params": { + "allocator": "The address to register as an allocator.", + "proof": "An 85-byte value containing create2 address derivation parameters (0xff ++ factory ++ salt ++ initcode hash)." + }, + "returns": { + "_0": "A unique identifier assigned to the registered allocator." + } + }, + "allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))": { + "params": { + "transfer": "A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive." + }, + "returns": { "_0": "Whether the transfer was successful." } + }, + "allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))": { + "params": { + "transfer": "A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive all tokens." + }, + "returns": { "_0": "Whether the transfer was successful." } + }, + "allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))": { + "params": { + "transfer": "A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive." + }, + "returns": { "_0": "Whether the transfer was successful." } + }, + "allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))": { + "params": { + "transfer": "A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive the tokens." + }, + "returns": { "_0": "Whether the transfer was successful." } + }, + "allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))": { + "params": { + "withdrawal": "A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive." + }, + "returns": { "_0": "Whether the withdrawal was successful." } + }, + "allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))": { + "params": { + "withdrawal": "A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive all tokens." + }, + "returns": { "_0": "Whether the withdrawal was successful." } + }, + "allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))": { + "params": { + "withdrawal": "A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive." + }, + "returns": { "_0": "Whether the withdrawal was successful." } + }, + "allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))": { + "params": { + "withdrawal": "A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive the tokens." + }, + "returns": { "_0": "Whether the withdrawal was successful." } + }, + "allowance(address,address,uint256)": { + "details": "Returns the amount of token `id` that `spender` can spend on behalf of `owner`." + }, + "approve(address,uint256,uint256)": { + "details": "Sets `amount` as the allowance of `spender` for the caller for token `id`. Emits a {Approval} event." + }, + "balanceOf(address,uint256)": { + "details": "Returns the amount of token `id` owned by `owner`." + }, + "consume(uint256[])": { + "params": { "nonces": "Array of nonces to be consumed." }, + "returns": { + "_0": "Whether all nonces were successfully consumed." + } + }, + "decimals(uint256)": { + "details": "Returns the number of decimals for token `id`. Returns 18 by default. Please override this function if you need to return a custom value." + }, + "deposit(address)": { + "params": { "allocator": "The address of the allocator." }, + "returns": { + "_0": "The ERC6909 token identifier of the associated resource lock." + } + }, + "deposit(address,address,uint256)": { + "params": { + "allocator": "The address of the allocator mediating the resource lock.", + "amount": "The amount of tokens to deposit.", + "token": "The address of the ERC20 token to deposit." + }, + "returns": { + "_0": " The ERC6909 token identifier of the associated resource lock." + } + }, + "deposit(address,address,uint8,uint8,uint256,address)": { + "params": { + "allocator": "The address of the allocator mediating the resource lock.", + "amount": "The amount of tokens to deposit.", + "recipient": "The address that will receive the corresponding ERC6909 tokens.", + "resetPeriod": "The duration after which the resource lock can be reset once a forced withdrawal is initiated.", + "scope": "The scope of the resource lock (multichain or single chain).", + "token": "The address of the ERC20 token to deposit." + }, + "returns": { + "_0": " The ERC6909 token identifier of the associated resource lock." + } + }, + "deposit(address,uint8,uint8,address)": { + "params": { + "allocator": "The address of the allocator mediating the resource lock.", + "recipient": "The address that will receive the corresponding ERC6909 tokens.", + "resetPeriod": "The duration after which the resource lock can be reset once a forced withdrawal is initiated.", + "scope": "The scope of the resource lock (multichain or single chain)." + }, + "returns": { + "_0": " The ERC6909 token identifier of the associated resource lock." + } + }, + "deposit(uint256[2][],address)": { + "params": { + "idsAndAmounts": "Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit.", + "recipient": "The address that will receive the corresponding ERC6909 tokens." + }, + "returns": { + "_0": "Whether the batch deposit was successfully completed." + } + }, + "depositAndRegister(address,address,uint256,bytes32,bytes32)": { + "params": { + "allocator": "The address of the allocator mediating the resource lock.", + "amount": "The amount of tokens to deposit.", + "claimHash": "A bytes32 hash derived from the details of the compact.", + "token": "The address of the ERC20 token to deposit.", + "typehash": "The EIP-712 typehash associated with the registered compact." + }, + "returns": { + "id": " The ERC6909 token identifier of the associated resource lock." + } + }, + "depositAndRegister(address,bytes32,bytes32)": { + "params": { + "allocator": "The address of the allocator.", + "claimHash": "A bytes32 hash derived from the details of the compact.", + "typehash": "The EIP-712 typehash associated with the registered compact." + }, + "returns": { + "id": " The ERC6909 token identifier of the associated resource lock." + } + }, + "depositAndRegister(uint256[2][],bytes32[2][],uint256)": { + "params": { + "claimHashesAndTypehashes": "Array of [claimHash, typehash] pairs for registration.", + "duration": "The duration for which the claim hashes remain valid.", + "idsAndAmounts": "Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit." + }, + "returns": { + "_0": "Whether the batch deposit and claim hash registration was successfully completed." + } + }, + "disableForcedWithdrawal(uint256)": { + "params": { + "id": "The ERC6909 token identifier for the resource lock." + }, + "returns": { + "_0": "Whether the forced withdrawal was successfully disabled." + } + }, + "enableForcedWithdrawal(uint256)": { + "params": { + "id": "The ERC6909 token identifier for the resource lock." + }, + "returns": { + "_0": "The timestamp at which tokens become withdrawable." + } + }, + "forcedWithdrawal(uint256,address,uint256)": { + "params": { + "amount": "The amount of tokens to withdraw.", + "id": "The ERC6909 token identifier for the resource lock.", + "recipient": "The account that will receive the withdrawn tokens." + }, + "returns": { + "_0": "Whether the forced withdrawal was successfully executed." + } + }, + "getForcedWithdrawalStatus(address,uint256)": { + "params": { + "account": "The account to get the forced withdrawal status for.", + "id": "The ERC6909 token identifier of the resource lock." + }, + "returns": { + "_0": " The current ForcedWithdrawalStatus (disabled, pending, or enabled).", + "_1": "The timestamp at which tokens become withdrawable if status is pending." + } + }, + "getLockDetails(uint256)": { + "params": { + "id": "The ERC6909 token identifier of the resource lock." + }, + "returns": { + "_0": " The address of the underlying token (or address(0) for native tokens).", + "_1": " The account of the allocator mediating the resource lock.", + "_2": "The duration after which the resource lock can be reset once a forced withdrawal is initiated.", + "_3": " The scope of the resource lock (multichain or single chain)." + } + }, + "getRegistrationStatus(address,bytes32,bytes32)": { + "params": { + "claimHash": "A bytes32 hash derived from the details of the compact.", + "sponsor": "The account that registered the compact.", + "typehash": "The EIP-712 typehash associated with the registered claim hash." + }, + "returns": { + "expires": " The timestamp at which the compact registration expires.", + "isActive": "Whether the compact registration is currently active." + } + }, + "hasConsumedAllocatorNonce(uint256,address)": { + "params": { + "allocator": "The account of the allocator.", + "nonce": "The nonce to check." + }, + "returns": { "_0": "Whether the nonce has been consumed." } + }, + "isOperator(address,address)": { + "details": "Checks if a `spender` is approved by `owner` to manage all of their tokens." + }, + "name()": { "details": "Returns the name for the contract." }, + "name(uint256)": { "details": "Returns the symbol for token `id`." }, + "register(bytes32,bytes32,uint256)": { + "params": { + "claimHash": "A bytes32 hash derived from the details of the compact.", + "duration": "The duration for which the claim hash remains valid.", + "typehash": "The EIP-712 typehash associated with the registered claim hash." + }, + "returns": { + "_0": "Whether the claim hash was successfully registered." + } + }, + "register(bytes32[2][],uint256)": { + "params": { + "claimHashesAndTypehashes": "Array of [claimHash, typehash] pairs for registration.", + "duration": "The duration for which the claim hashes remain valid." + }, + "returns": { + "_0": "Whether all claim hashes were successfully registered." + } + }, + "setOperator(address,bool)": { + "details": "Sets whether `operator` is approved to manage the tokens of the caller. Emits {OperatorSet} event." + }, + "supportsInterface(bytes4)": { + "details": "Returns true if this contract implements the interface defined by `interfaceId`." + }, + "symbol(uint256)": { + "details": "Returns the symbol for token `id`." + }, + "tokenURI(uint256)": { + "details": "Returns the Uniform Resource Identifier (URI) for token `id`." + }, + "transfer(address,uint256,uint256)": { + "details": "Transfers `amount` of token `id` from the caller to `to`. Requirements: - caller must at least have `amount`. Emits a {Transfer} event." + }, + "transferFrom(address,address,uint256,uint256)": { + "details": "Transfers `amount` of token `id` from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount` of token `id`. - The caller must have at least `amount` of allowance to transfer the tokens of `from` or approved as an operator. Emits a {Transfer} event." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "DOMAIN_SEPARATOR()": { + "notice": "External pure function for returning the domain separator of the contract." + }, + "__registerAllocator(address,bytes)": { + "notice": "External function for registering an allocator. Can be called by anyone if one of three conditions is met: the caller is the allocator address being registered, the allocator address contains code, or a proof is supplied representing valid create2 deployment parameters that resolve to the supplied allocator address." + }, + "allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))": { + "notice": "Transfers ERC6909 tokens from multiple resource locks to multiple recipients with allocator approval." + }, + "allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))": { + "notice": "Transfers ERC6909 tokens from multiple resource locks to a single recipient with allocator approval." + }, + "allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))": { + "notice": "Transfers ERC6909 tokens to multiple recipients with allocator approval." + }, + "allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))": { + "notice": "Transfers ERC6909 tokens to a single recipient with allocator approval." + }, + "allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))": { + "notice": "Withdraws underlying tokens from multiple resource locks to multiple recipients with allocator approval." + }, + "allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))": { + "notice": "Withdraws underlying tokens from multiple resource locks to a single recipient with allocator approval." + }, + "allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))": { + "notice": "Withdraws underlying tokens to multiple recipients with allocator approval." + }, + "allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))": { + "notice": "Withdraws underlying tokens to a single recipient with allocator approval." + }, + "consume(uint256[])": { + "notice": "External function for consuming allocator nonces. Only callable by a registered allocator. Once consumed, any compact payloads that utilize those nonces cannot be claimed." + }, + "deposit(address)": { + "notice": "External payable function for depositing native tokens into a resource lock and receiving back ERC6909 tokens representing the underlying locked balance controlled by the depositor. The allocator mediating the lock is provided as an argument, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction." + }, + "deposit(address,address,uint256)": { + "notice": "External function for depositing ERC20 tokens into a resource lock. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token." + }, + "deposit(address,address,uint8,uint8,uint256,address)": { + "notice": "External function for depositing ERC20 tokens into a resource lock with custom reset period and scope parameters. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received by the recipient is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token." + }, + "deposit(address,uint8,uint8,address)": { + "notice": "External payable function for depositing native tokens into a resource lock with custom reset period and scope parameters. The ERC6909 token amount received by the recipient will match the amount of native tokens sent with the transaction." + }, + "deposit(uint256[2][],address)": { + "notice": "External payable function for depositing multiple tokens in a single transaction. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens." + }, + "depositAndRegister(address,address,uint256,bytes32,bytes32)": { + "notice": "External function for depositing ERC20 tokens and simultaneously registering a compact. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token." + }, + "depositAndRegister(address,bytes32,bytes32)": { + "notice": "External payable function for depositing native tokens into a resource lock and simultaneously registering a compact. The allocator, the claim hash, and the typehash used for the claim hash are provided as additional arguments, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction." + }, + "depositAndRegister(uint256[2][],bytes32[2][],uint256)": { + "notice": "External payable function for depositing multiple tokens in a single transaction and registering a set of claim hashes. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens. Note that resource lock ids must be supplied in alphanumeric order." + }, + "disableForcedWithdrawal(uint256)": { + "notice": "External function to disable a previously enabled forced withdrawal for a resource lock." + }, + "enableForcedWithdrawal(uint256)": { + "notice": "External function to initiate a forced withdrawal for a resource lock. Once enabled, forced withdrawals can be executed after the reset period has elapsed. The withdrawableAt timestamp returned will be the current timestamp plus the reset period associated with the resource lock." + }, + "forcedWithdrawal(uint256,address,uint256)": { + "notice": "External function to execute a forced withdrawal from a resource lock after the reset period has elapsed. The tokens will be withdrawn to the specified recipient in the amount requested. The ERC6909 token balance of the caller will be reduced by the difference in the balance held by the resource lock before and after the withdrawal, which may differ from the provided amount depending on the underlying token in question." + }, + "getForcedWithdrawalStatus(address,uint256)": { + "notice": "External view function for checking the forced withdrawal status of a resource lock for a given account. Returns both the current status (disabled, pending, or enabled) and the timestamp at which forced withdrawals will be enabled (if status is pending) or became enabled (if status is enabled)." + }, + "getLockDetails(uint256)": { + "notice": "External view function for retrieving the details of a resource lock. Returns the underlying token, the mediating allocator, the reset period, and the scope." + }, + "getRegistrationStatus(address,bytes32,bytes32)": { + "notice": "External view function for checking the registration status of a compact. Returns both whether the claim hash is currently active and when it expires (if it is active)." + }, + "hasConsumedAllocatorNonce(uint256,address)": { + "notice": "External view function for checking whether a specific nonce has been consumed by an allocator. Once consumed, a nonce cannot be reused for claims mediated by that allocator." + }, + "register(bytes32,bytes32,uint256)": { + "notice": "External function to register a claim hash and its associated EIP-712 typehash. The registered claim hash will remain valid for the specified duration. Once expired, the claim hash can no longer be used to initiate claims." + }, + "register(bytes32[2][],uint256)": { + "notice": "External function to register multiple claim hashes and their associated EIP-712 typehashes in a single call. All registered claim hashes will remain valid for the specified duration. Once expired, the claim hashes can no longer be used to initiate claims." + } + }, + "version": 1 + } + }, + "settings": { + "remappings": [ + "ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/", + "forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/", + "forge-std/=lib/forge-std/src/", + "openzeppelin-contracts/=lib/permit2/lib/openzeppelin-contracts/", + "permit2/=lib/permit2/", + "solady/=lib/solady/src/", + "soledge/=lib/soledge/src/", + "solmate/=lib/permit2/lib/solmate/", + "tstorish/=lib/tstorish/src/" + ], + "optimizer": { "enabled": true, "runs": 200 }, + "metadata": { "bytecodeHash": "none" }, + "compilationTarget": { "src/TheCompact.sol": "TheCompact" }, + "evmVersion": "cancun", + "libraries": {}, + "viaIR": true + }, + "sources": { + "lib/permit2/src/interfaces/IEIP712.sol": { + "keccak256": "0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138", + "urls": [ + "bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72", + "dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk" + ], + "license": "MIT" + }, + "lib/permit2/src/interfaces/ISignatureTransfer.sol": { + "keccak256": "0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e", + "urls": [ + "bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317", + "dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d" + ], + "license": "MIT" + }, + "lib/solady/src/tokens/ERC6909.sol": { + "keccak256": "0x03975a3d9680a1bfe53a678685c81ed4d70b6e0f046ccf1905539caa5376eea2", + "urls": [ + "bzz-raw://827a2f6b69fcb700909635203a9453310ea89c0bb904943cf3cc732e35d81398", + "dweb:/ipfs/QmZha3DSrunz1NR3jXHRXrLT6uvAKTt3AEV6PcbGWRLu4q" + ], + "license": "MIT" + }, + "lib/solady/src/utils/EfficientHashLib.sol": { + "keccak256": "0x32032578683dc18c5f95c8dd4c1422d212f230d96d5425cc491f3350157e6fe1", + "urls": [ + "bzz-raw://82c89ef25e537766bbfc8ebba4138eee4fa1b64527c39add8240bce2ea99c661", + "dweb:/ipfs/QmZVciQDtnXs3nDVUaH7mMLC6vFKe8zeKLK969bqJetKCj" + ], + "license": "MIT" + }, + "lib/solady/src/utils/LibString.sol": { + "keccak256": "0xa0b70980612eeedd30cc65c44c37a286c8527cb41c7454db55b1a435beb2276f", + "urls": [ + "bzz-raw://93950259301ac435f1d8756cb80f99eafe9da4dc68b05e148a4b16042a69cc9b", + "dweb:/ipfs/QmUpyP9AD7AqmRNEmrjLSQivXXdbZmFZKaLJwW9UP2wWCN" + ], + "license": "MIT" + }, + "lib/solady/src/utils/MetadataReaderLib.sol": { + "keccak256": "0x671f4b38462335f3500b91eeff2fd25fc447cc201901524959c05b934ad0b100", + "urls": [ + "bzz-raw://aa64b44dc13b25c1aa713cb5724fade1dc093c95581efc5ccb85cbcc616c02c5", + "dweb:/ipfs/QmRvXqBw8GqpShA8cXAwA6ha14Q2bfajNmYq1mYNYAaMiv" + ], + "license": "MIT" + }, + "lib/solady/src/utils/SafeTransferLib.sol": { + "keccak256": "0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a", + "urls": [ + "bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c", + "dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J" + ], + "license": "MIT" + }, + "lib/solady/src/utils/SignatureCheckerLib.sol": { + "keccak256": "0x472ad43dd67dcc0d548efbbc8779f34e56a7eb99d7a8b1c29af33fb03bbe9ffc", + "urls": [ + "bzz-raw://733da5015058b9540927c63c316665e9ac8d9676d23f722bddf9376c2a03d4cb", + "dweb:/ipfs/QmPhXj1qpjnwVjrZUgFdkinMK9XSuoLN3cxbSmqADYSZry" + ], + "license": "MIT" + }, + "lib/tstorish/src/Tstorish.sol": { + "keccak256": "0xad3697d9fd6e7c1fb6faa8d474af00bb2a7afd51e8818165fd30bcc7ead53973", + "urls": [ + "bzz-raw://a8b62000145be27440c913238fbe9b97ecfc709eacac14b498f18980418d6ab6", + "dweb:/ipfs/QmRMXHdYUDmajWzwUjs7CQZ5i1T739MhiMmimd3do8qJNk" + ], + "license": "MIT" + }, + "src/TheCompact.sol": { + "keccak256": "0x2949a8d172180ba623c85dfc22eda0ba1f59c4d70d8ee8ade62b5876ff6cd935", + "urls": [ + "bzz-raw://4c6a3fdaa5319cc8a272422e8af551bee8e1467f78aa8b65a1290fddf0453a90", + "dweb:/ipfs/QmafPX5TCncQbuhFtztQVL81hmU9wmdxfNZCYj9t5X6QqM" + ], + "license": "MIT" + }, + "src/interfaces/ITheCompact.sol": { + "keccak256": "0xe75d130ab9ead7ef7866f4ce8fcbe5e8de49450abf5f8c6b5878c4e54e480103", + "urls": [ + "bzz-raw://63b7694d1b97b350c41e668e72d25d3df10c230b9dd21219827d7d2cc0dc39b6", + "dweb:/ipfs/QmTDJAFcTYfU7DyfuYMJHK3YMYRkXQvm9MoUhywaqeUsZ6" + ], + "license": "MIT" + }, + "src/interfaces/ITheCompactClaims.sol": { + "keccak256": "0x5691d5127ccff51eea74ce4f6dd01a5f121fd2a1b7bdad41aca39c4d236e27bb", + "urls": [ + "bzz-raw://ca686c6911319d151dc1f658767545823d750c3fb54cb8f75e46b544df3a217a", + "dweb:/ipfs/QmT2a1twcvzHxjWwcLqMebo9rat5x5CVy2KJfawj9qXS5a" + ], + "license": "MIT" + }, + "src/lib/AllocatorLogic.sol": { + "keccak256": "0xadfa16ae7d02777e129d31639f110be46093ef109c1287896598ee792de34d5c", + "urls": [ + "bzz-raw://11a258ef5e43b6d85c99b330beaf4c3750f0d41c3b862b677551eca3626a2071", + "dweb:/ipfs/QmfViBPCWeKqgdVKfA7KQUz2JntZEdGfbpgAwCGWwLGQ9Y" + ], + "license": "MIT" + }, + "src/lib/ClaimHashFunctionCastLib.sol": { + "keccak256": "0xcfa2f7fb4e3df789ae504ebc13e31cadb6c05282e07d46a4b807d5d23a5ef530", + "urls": [ + "bzz-raw://51e642f4676ec4e0ecc1fb716cd051bd6d12dac2d39e997e516af5bd141b3178", + "dweb:/ipfs/QmeQ8vHdg8vsCZ9XPc3af82ktXHHicY3QQbAoghHfvkVK4" + ], + "license": "MIT" + }, + "src/lib/ClaimHashLib.sol": { + "keccak256": "0x2bc3fb604115697562a4770f98020efd578b02d6376b56ca52c64d0df46f6e87", + "urls": [ + "bzz-raw://aeddaee5ec0f8512fc13af7b0bfc07e93250a1bc34b6095c6a5bd6624a73990d", + "dweb:/ipfs/QmVeVSBNoJeMndTQpvB2Kr9BzWWG8crjeBPjZZxciGYXMx" + ], + "license": "MIT" + }, + "src/lib/ClaimProcessor.sol": { + "keccak256": "0x58872af76a73fd131a85635150545978bbe09ae83ec4ed2fae19d75c038a482c", + "urls": [ + "bzz-raw://8d782488fcbded4ef2781031940611599b6ec41e92d813800912e2c86afd7979", + "dweb:/ipfs/QmaCuq52gwjc1LfZrURPpyrjmGZZCtzhXRqg4dMhXP1NKa" + ], + "license": "MIT" + }, + "src/lib/ClaimProcessorFunctionCastLib.sol": { + "keccak256": "0xb69ec41dc657f93f6f6a1901d39e48a791907d4debc0eb8104f9fe016b6a59ba", + "urls": [ + "bzz-raw://b6a54cebc498c4181ddc25fd4c6162449ae12d407fc1b45c0e6c4b365da1543e", + "dweb:/ipfs/QmRdZp5fraYJRB7QXwDqE5jbpmerWaCV3DqMPxi9aCk4ZQ" + ], + "license": "MIT" + }, + "src/lib/ClaimProcessorLib.sol": { + "keccak256": "0xf150692ad2915d0c4df63ea44e62f6e3d5736f2c91de7cea48a1301cf4034e51", + "urls": [ + "bzz-raw://1c2f21638d2a613e912cf73dd049b0bb2e4abbea54a3f58a5439f6396c59d9ee", + "dweb:/ipfs/QmRQpwnhhNfvWyTXHRy982awBnHA4fjK7GpHzSgqC3pPT6" + ], + "license": "MIT" + }, + "src/lib/ClaimProcessorLogic.sol": { + "keccak256": "0x737780590a48e67dc0f64bd3bb7248eafb7630f579d8aa44befb197d9ac66ce8", + "urls": [ + "bzz-raw://ea7c69e2cbf316fe182fad296b8d65a76ade84923edb0572c339f880e21fc7bc", + "dweb:/ipfs/QmWuZ9UJA4nsdPjgCa6rsCBvoWBjcUhWRuCnLqPNbM8687" + ], + "license": "MIT" + }, + "src/lib/ComponentLib.sol": { + "keccak256": "0x3e1ad4bff9cd12162f9b849078839b802f4783b474588fa93be8ba1e61263dd6", + "urls": [ + "bzz-raw://faa70f41d0679e1fa2aa827f863c03bf8a3962703a26ae724b7ca2a8d5f9f96b", + "dweb:/ipfs/QmXWyv8ATKeSKwiXCPFZBLkrRuV1NhNDS5yH5rDyrm6GLs" + ], + "license": "MIT" + }, + "src/lib/ConstructorLogic.sol": { + "keccak256": "0xca9b0d52a562351978aafcc06f79f5c555ea948eaad28983812a7892f02b1245", + "urls": [ + "bzz-raw://1f2e41013c0ef8ef9bee844494185b7a09c8680ea3d931a2683f968cdaa154a9", + "dweb:/ipfs/QmX8CoLP6VGRkxhx6VonrRf2YqPZ1hg1LagKvkNBaQtNaR" + ], + "license": "MIT" + }, + "src/lib/ConsumerLib.sol": { + "keccak256": "0x582badfccdb57ee9518e39676fab7ba2abc6b527c854d524b8f417126fa6d192", + "urls": [ + "bzz-raw://96d6dde54bdad2fc2203620d5f75e96cc9267cb340e1284d311bf6f8c77d16d2", + "dweb:/ipfs/Qmbq8XuUiAoEsmYVa2NCHSdi6gu4ZYzeyr1iPNGaFwwhxu" + ], + "license": "MIT" + }, + "src/lib/DepositLogic.sol": { + "keccak256": "0xb2a199980ca4025c1784ebc79ec5d73cbe849ff26d446b2ca58bdb7066475fcf", + "urls": [ + "bzz-raw://73e9defc19c10bb6b63d7571a1e097ed09accdf7cf123b91c8a9bea02c9ca87f", + "dweb:/ipfs/QmVWt9Ssb6CuFpYKTDYc31FH9TFZfYqs4WGsqf2ksiPtpx" + ], + "license": "MIT" + }, + "src/lib/DepositViaPermit2Lib.sol": { + "keccak256": "0x3d45834b9be7e0af8aadd4c3afb2b5d7a9c1a47156e30780499852b1e503b1c4", + "urls": [ + "bzz-raw://1e16d1aa8eb93fefd956455fbb157a58cb9fb3824a276f54a33a52c17924c30b", + "dweb:/ipfs/QmUmsqU9p8J7r7hk5jxNYXUnaPoCaMruFKtxFo12zV7XJQ" + ], + "license": "MIT" + }, + "src/lib/DepositViaPermit2Logic.sol": { + "keccak256": "0xb8813f63d4a3c05dc99e36b6a900cbd7c6c6bfc8cccdb5b9052894400b4925a9", + "urls": [ + "bzz-raw://463fa79ef23b7f6d56a9bc8f6139917374a06f860c12fbfe6e76d794e690b9e0", + "dweb:/ipfs/QmXGqm3wZqRSDAvy7mykMvezMBVPPT79pJYsASwkxXFitq" + ], + "license": "MIT" + }, + "src/lib/DirectDepositLogic.sol": { + "keccak256": "0xa1b9f042c5ecf3edcde3733bd12cde49633dcce9336622ea7c5eabd0ce2bafa1", + "urls": [ + "bzz-raw://0eeaa505727c2b42780bd4e3e3dbede2ce51480c46ff90ad401d7328fc5e42d8", + "dweb:/ipfs/QmZ8MDQjSi2yczScSgKyd6Ge3ir4xJA2o8pX1j15ryyzVp" + ], + "license": "MIT" + }, + "src/lib/DomainLib.sol": { + "keccak256": "0x0a69b112fabd7d4e13fbf4c796a4a163f522c84b4b6a981c913a6c7342f5cc6a", + "urls": [ + "bzz-raw://4a3d3fd2d8ab66c6dd0f2674efcf2bca87899decd42e949631be80a60f74d6a2", + "dweb:/ipfs/QmP38CpNz5GjycQZwpe7CxXrRsugraQDtr6rsiA5ue2iK6" + ], + "license": "MIT" + }, + "src/lib/EfficiencyLib.sol": { + "keccak256": "0xd8fd182c728a98a3ac5c64cbc7011bc34dc1ee06e377a1a5e670c3cd8375eff9", + "urls": [ + "bzz-raw://1f565cad687dc0bd3438a8b8b08ecc973f5ad5a1aebd332baa402e45cd56ae83", + "dweb:/ipfs/QmayoEFEv6zMhRw6kqqoqdmNE1jGbwgRQ6VA5wj2XAb7Du" + ], + "license": "MIT" + }, + "src/lib/EventLib.sol": { + "keccak256": "0x0d9bc84e78628d9ff42689b8cd33353c86f9de7220002d74c5d485275f328946", + "urls": [ + "bzz-raw://eb8bf826a89bb1cc62e8af269f34453c13df6ffe473e0dff8aeddaf1797afa0f", + "dweb:/ipfs/QmX7TFZACuGBhCVMjAPve7JKz6PWZjYTMr7JQ9WbFatKcu" + ], + "license": "MIT" + }, + "src/lib/Extsload.sol": { + "keccak256": "0x72075add7c7d734c46922f2f56cb490d48711a0cc6af439619ff39e60df75924", + "urls": [ + "bzz-raw://283cc72cb88802327c60fc9bc75f840ff639d791c1d19056bbadf7e7e5f3c99f", + "dweb:/ipfs/QmWoCebx1axDW8uuUEPv6QRzGWFD5bRGnvw2VD7KJufokB" + ], + "license": "MIT" + }, + "src/lib/HashLib.sol": { + "keccak256": "0x50bc064b796b92d6199cf09cf8ea34a808653a8c668f695ce89cd3614956cb4e", + "urls": [ + "bzz-raw://6bd96eb47fd50bb4f15540e3f8c903d5cf83d8e0e975d615abb9e2dfe7329af0", + "dweb:/ipfs/QmVPs5HWJEbUtKQn69jSYdA7U92jU7nkWwGfsmD6sUCWsR" + ], + "license": "MIT" + }, + "src/lib/IdLib.sol": { + "keccak256": "0x14a04b7bdfcd5e7cc783a7202cb0429fb225f0a960908f06028f39f78b01373b", + "urls": [ + "bzz-raw://c465efd13c8fd3ddfd701357f8f6e64443d69c5ab835c7bb35b8934261c2313e", + "dweb:/ipfs/QmP15v2Qrp1hg7BvkfzE4zqcjwhDH2NBHkzJ8rRShCwU8S" + ], + "license": "MIT" + }, + "src/lib/MetadataLib.sol": { + "keccak256": "0x1d7f67de567fccba29393048a15373c9ad6cc903409b52b94a8baf1747204340", + "urls": [ + "bzz-raw://1f15f66c2420d6f5a527ee12945bc000e7687586727845015d60e229ca5009d4", + "dweb:/ipfs/QmY27xFEKUBW3U7K18gQNNbmR3pZbp1Gz3ecQVkZQUBzek" + ], + "license": "MIT" + }, + "src/lib/MetadataRenderer.sol": { + "keccak256": "0xdef8b8a92120470f9d290b5d6ab3fc69145300741ca066b152ddc71cd719982e", + "urls": [ + "bzz-raw://6946d4d9d525fd21e3b4d310aaa5160de531bda7574bb5ad8c6a10616c340fe8", + "dweb:/ipfs/QmdB6Kwipo2MXCLPexXqjNP2xQhkG8BRx7KBWKMyqCRNHk" + ], + "license": "MIT" + }, + "src/lib/RegistrationLib.sol": { + "keccak256": "0xa6be3d3f74e30fa04157f369964afe818f562c82369bb0823ffc4a06297364a8", + "urls": [ + "bzz-raw://f73aa296543d4c3757a9b104278cfa9c07838ae9a9b82a3e77ed6df7bbe8ef20", + "dweb:/ipfs/QmWDCBxnz3quqhDtAN7zqetaQmCE8ULM1dAYEBrguHP5DQ" + ], + "license": "MIT" + }, + "src/lib/RegistrationLogic.sol": { + "keccak256": "0x40850751ea4a77f6bd9df09a3a9f565994dfd03b29a15dcc31e03da3be317b7f", + "urls": [ + "bzz-raw://16f07cb5ab8e5adfe74cdd700f5c9e448b28fab0b120058b25d4d1bcf2338a9a", + "dweb:/ipfs/QmULZACcDPswptXRxKnA8dBChU63k8CkvY5Q7YG7SJoSs6" + ], + "license": "MIT" + }, + "src/lib/SharedLogic.sol": { + "keccak256": "0xcc76a01f9dc24f1afc4fd21dbdb423ec7a6cccb454c9b725fa3b135d4d851365", + "urls": [ + "bzz-raw://1f9fe59a2d0c467832d42c60acabd4c599868024c09b5aa89e9e91b38e9f8eba", + "dweb:/ipfs/Qmbsu2BLJT32Qc77RR3ZHhVTMkyh1sLJueLiTuYHCQwxVf" + ], + "license": "MIT" + }, + "src/lib/TheCompactLogic.sol": { + "keccak256": "0xc6106d8b4a9f2bf6c9006181a3e6acc95c8524628b5096478c76716a7e2cc5c4", + "urls": [ + "bzz-raw://18056a737da3fddaac4cb50dd598b57e0bcc5d1889669831bbb4d09bc48c5cf6", + "dweb:/ipfs/QmPvQs8THzQPfpxuB5MKNKsFGiPjbR9B5QVAKa4NTkpSbd" + ], + "license": "MIT" + }, + "src/lib/TransferFunctionCastLib.sol": { + "keccak256": "0x1b2b8d48503f85dee96cb0d915d1f506ab872aac6fb29a1adbb894de93a534e7", + "urls": [ + "bzz-raw://6a2eb941a4a3e4633c88420ae3eab750ffdb32e431c71927a10feb6562b6e9a9", + "dweb:/ipfs/QmeYJbeupvqjyrMV43Z41mz52E9Bwqhmm4mSx7K8F26Vmb" + ], + "license": "MIT" + }, + "src/lib/TransferLogic.sol": { + "keccak256": "0x08ae66f9d642e8caabcd200d8574e5487cc11181c23acc18f2076e4f5e9ca086", + "urls": [ + "bzz-raw://2f4ec47106727e1fd5197f9fa7e86552469a198dd62dd24ad3dc1db9fb6d4327", + "dweb:/ipfs/QmR3bC1fmUVYTarsZMRU3u3RV1GcbNsF3NghvxND4B7J46" + ], + "license": "MIT" + }, + "src/lib/ValidityLib.sol": { + "keccak256": "0xfdecefc1bd9b9ba92fb471af7d09dc30255cb16154cec436b27fc06630fc7106", + "urls": [ + "bzz-raw://3b36c79e57192514bcf3aace66e38568708e066f24db93832f0a7f530754c5a7", + "dweb:/ipfs/QmUSRsBpZz7VEPN1ubX5mB71uKRdQ17Tf5jbkUNkyiMGhu" + ], + "license": "MIT" + }, + "src/lib/WithdrawalLogic.sol": { + "keccak256": "0x438c41cb28048ee067e8f64e2faaf7339a3324f0ce81ec96c94e5692074ee650", + "urls": [ + "bzz-raw://f811218032733e0fd0eb937a036b04e37dfcd46ed64bcbac22ecbb5d2a5993b4", + "dweb:/ipfs/QmdD2bN9Be2dDBEmuYBKGJKgW5FsayuojBqjYuz2ZvWcEb" + ], + "license": "MIT" + }, + "src/types/BatchClaims.sol": { + "keccak256": "0x368860cb48d9cf8b7ee86e226fc203307c8559ee5bbd987299c14580c61039b5", + "urls": [ + "bzz-raw://edd6eccb18ee3f7dc1e4fdeaa00d007b8cd6f506ab76366f74e530a66211ba8d", + "dweb:/ipfs/Qmf68iLL8CVZEvkjnQb6GdPumsP5V8dFfSubXCSx1Vgu4Z" + ], + "license": "MIT" + }, + "src/types/BatchMultichainClaims.sol": { + "keccak256": "0xe493995e946bf63d2970e5668e426f6c3d84f9ae5b03f86f7c493ae02ca8b96c", + "urls": [ + "bzz-raw://91370d328607589fa1ff37f3c0ef66a5b90ff63de20c8ccee3b009a6aedb2620", + "dweb:/ipfs/QmY5Ja2XfxRFbh4dtViqiepaSfNr1rWrMYSnSGjeMPxxNw" + ], + "license": "MIT" + }, + "src/types/Claims.sol": { + "keccak256": "0x6ae4ad79a64e0edd6169e87f8c3e35abd5f592ac23dc8eae7b92dfc190fa3ae2", + "urls": [ + "bzz-raw://d4434f16be0877209b2aaa51c9f27b9374fab6acbfc3b6241ba00907d6de7a96", + "dweb:/ipfs/QmTTcNwtekjwMZkrNKAcKAprWG47pSVEn2GETX6tZu746C" + ], + "license": "MIT" + }, + "src/types/CompactCategory.sol": { + "keccak256": "0xc3ab3758e88fc8591d79352d3d49140433bbf4176c3caa1bfce1903e2bfadf06", + "urls": [ + "bzz-raw://16960ee62b98c5cbbedcfe22ce4b521205d2bcc4fe9dfa57a9d68ec90efeb5a1", + "dweb:/ipfs/Qmc3FciGTRrDZjRSb9waUYkZsELRvVWkJKNVqS1u8vEDNG" + ], + "license": "MIT" + }, + "src/types/Components.sol": { + "keccak256": "0xd5027c0eb603a4604e050e97930fa436db33755b3e8097894320916cd7163ff0", + "urls": [ + "bzz-raw://b414c4a0e0d543f8de309bbb005f62d63a5c67ae6cf78d5d5b5fd076dd7b0a51", + "dweb:/ipfs/QmX8Z9Fp2QJVgE9hwbPjrXUYc4RVAE8qTyfN8DKBpV5iPB" + ], + "license": "MIT" + }, + "src/types/EIP712Types.sol": { + "keccak256": "0x386ff8e0aff7d437b8b49117ed158554e608d0cc18a0b4f561510e9584cafb91", + "urls": [ + "bzz-raw://e49d199dd3caab0210a2648a1b9d2a8965b5706f602fffee8e1815bbacddbe5e", + "dweb:/ipfs/QmYUzWFC4GK1rjoqnZEt2ghL5GMPCiaF5xaPzSr4Rm99PK" + ], + "license": "MIT" + }, + "src/types/ForcedWithdrawalStatus.sol": { + "keccak256": "0xdf352a2439e57ea9e1b7d54997fe904e4ea41ab9d2d8221d7d753dce94e76dc7", + "urls": [ + "bzz-raw://6faadb6857eda66cbef8fe1bf36d85d16f534b899a737a9464e69dc505eb9e89", + "dweb:/ipfs/QmdC9beQhPRYv5sAFx7TyWvzGPjm6XY3bCYNKzuZH1Pesd" + ], + "license": "MIT" + }, + "src/types/Lock.sol": { + "keccak256": "0x21a490258b933f8d5db759a91d07f7d9d2b2435d366334a8bcfbce4379a85011", + "urls": [ + "bzz-raw://d1cfcb02c3b0a70d82b2d9bd9c55ffcf654a226774711ca727eab8b0cdf456ea", + "dweb:/ipfs/QmRFN3dvespK1mUcUuXm4rnPd3ZGNRdba8MZgub1zu24Qw" + ], + "license": "MIT" + }, + "src/types/MultichainClaims.sol": { + "keccak256": "0x596b71d675b7b5e13b29f6b7fb92d23722d2792fadc82ad764467fdf9c693cb9", + "urls": [ + "bzz-raw://974d9d906e06ad29e875c2556d32c1f631a70539e43b018815e3fc68ede01e53", + "dweb:/ipfs/QmPbqsU21jDGhLQ9x9No2xDUimaLueGGF7eAkNxJfhc3fx" + ], + "license": "MIT" + }, + "src/types/ResetPeriod.sol": { + "keccak256": "0xfd32523d563b926c72fdc693aa8b7f6db24f4720decee16710cdfc662a8d8f16", + "urls": [ + "bzz-raw://4c510cde0fc28cde51aad2df6bac8eeef5e0fb67be754a3d8c655a8556db32c6", + "dweb:/ipfs/QmWjVZJdfxVK5EiprmWi9iGNMqXAkVZjECnzeXvjfTsDZX" + ], + "license": "MIT" + }, + "src/types/Scope.sol": { + "keccak256": "0x3e63be015c24bde88698efc20b00690d1e683a5cabf2122dc91ab0ecad4ae8ed", + "urls": [ + "bzz-raw://5160d46460204dc6268a963e9d0c117fab903318f74d3b5903693fe2dfcc2462", + "dweb:/ipfs/QmRsc4VSWvvSxi3VfyFgjTELj5DB5MpZ7UPJ3mzgPMyD9v" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "id": 36 +} diff --git a/typescript/solver/solvers/compactX/rules/index.ts b/typescript/solver/solvers/compactX/rules/index.ts index 2234b9ca..cb0ff5c3 100644 --- a/typescript/solver/solvers/compactX/rules/index.ts +++ b/typescript/solver/solvers/compactX/rules/index.ts @@ -1 +1 @@ -export { }; +export {}; diff --git a/typescript/solver/solvers/eco/config/metadata.ts b/typescript/solver/solvers/eco/config/metadata.ts index d1406b56..fc42fc36 100644 --- a/typescript/solver/solvers/eco/config/metadata.ts +++ b/typescript/solver/solvers/eco/config/metadata.ts @@ -8,7 +8,7 @@ const metadata: EcoMetadata = { address: "0x734a3d5a8D691d9b911674E682De5f06517c79ec", chainName: "optimismsepolia", }, - ] + ], }, adapters: { basesepolia: "0x218FB5210d4eE248f046F3EC8B5Dd1c7Bc0756e5", diff --git a/typescript/solver/solvers/eco/listener.ts b/typescript/solver/solvers/eco/listener.ts index cd93a356..110e5d2a 100644 --- a/typescript/solver/solvers/eco/listener.ts +++ b/typescript/solver/solvers/eco/listener.ts @@ -18,7 +18,10 @@ export class EcoListener extends BaseListener< > { constructor() { const { intentSources, protocolName } = metadata; - const ecoMetadata = { contracts: intentSources.blockchainEvents, protocolName }; + const ecoMetadata = { + contracts: intentSources.blockchainEvents, + protocolName, + }; super(IntentSource__factory, "IntentCreated", ecoMetadata, log); } diff --git a/typescript/solver/solvers/hyperlane7683/config/metadata.ts b/typescript/solver/solvers/hyperlane7683/config/metadata.ts index 1fe19dd8..6228b068 100644 --- a/typescript/solver/solvers/hyperlane7683/config/metadata.ts +++ b/typescript/solver/solvers/hyperlane7683/config/metadata.ts @@ -67,7 +67,7 @@ const metadata: Hyperlane7683Metadata = { pollInterval: 1000, confirmationBlocks: 2, }, - ] + ], }, customRules: { rules: [ diff --git a/typescript/solver/solvers/hyperlane7683/listener.ts b/typescript/solver/solvers/hyperlane7683/listener.ts index dec288f3..4ba948da 100644 --- a/typescript/solver/solvers/hyperlane7683/listener.ts +++ b/typescript/solver/solvers/hyperlane7683/listener.ts @@ -18,7 +18,10 @@ export class Hyperlane7683Listener extends BaseListener< > { constructor(metadata: Hyperlane7683Metadata) { const { intentSources, protocolName } = metadata; - const hyperlane7683Metadata = { contracts: intentSources.blockchainEvents, protocolName }; + const hyperlane7683Metadata = { + contracts: intentSources.blockchainEvents, + protocolName, + }; super(Hyperlane7683__factory, "Open", hyperlane7683Metadata, log); } @@ -43,22 +46,24 @@ export const create = async () => { const { intentSources } = metadata; const blocksByChain = await getLastIndexedBlocks(); - metadata.intentSources.blockchainEvents = intentSources.blockchainEvents.map((intentSource) => { - const chainBlockNumber = - blocksByChain[intentSource.chainName]?.blockNumber; + metadata.intentSources.blockchainEvents = intentSources.blockchainEvents.map( + (intentSource) => { + const chainBlockNumber = + blocksByChain[intentSource.chainName]?.blockNumber; - if ( - chainBlockNumber && - chainBlockNumber >= (intentSource.initialBlock ?? 0) - ) { - return { - ...intentSource, - initialBlock: blocksByChain[intentSource.chainName].blockNumber, - processedIds: blocksByChain[intentSource.chainName].processedIds, - }; - } - return intentSource; - }); + if ( + chainBlockNumber && + chainBlockNumber >= (intentSource.initialBlock ?? 0) + ) { + return { + ...intentSource, + initialBlock: blocksByChain[intentSource.chainName].blockNumber, + processedIds: blocksByChain[intentSource.chainName].processedIds, + }; + } + return intentSource; + }, + ); return new Hyperlane7683Listener(metadata).create(); }; diff --git a/typescript/solver/solvers/hyperlane7683/rules/filterByTokenAndAmount.ts b/typescript/solver/solvers/hyperlane7683/rules/filterByTokenAndAmount.ts index fd76ec4a..d46d3ecc 100644 --- a/typescript/solver/solvers/hyperlane7683/rules/filterByTokenAndAmount.ts +++ b/typescript/solver/solvers/hyperlane7683/rules/filterByTokenAndAmount.ts @@ -21,7 +21,7 @@ export function filterByTokenAndAmount( FilterByTokenAndAmountArgs.parse(args); const allowedTokens: Record = {}; - + for (const [chainId, tokens] of Object.entries(args)) { allowedTokens[chainId] = []; @@ -68,9 +68,12 @@ export function filterByTokenAndAmount( if (amountIn.lte(amountOut)) { return { error: "Intent is not profitable", success: false }; } - + if (amountOut.gt(maxAmount.toString())) { - return { error: "Output amount exceeds the maximum allowed", success: false }; + return { + error: "Output amount exceeds the maximum allowed", + success: false, + }; } return { data: "Amounts and tokens are Ok", success: true }; From aa34806a55b9e65aadd7156de6379ab8f17034c6 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Wed, 12 Mar 2025 16:48:30 +0100 Subject: [PATCH 07/41] fix: type --- typescript/solver/solvers/WebSocketListener.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typescript/solver/solvers/WebSocketListener.ts b/typescript/solver/solvers/WebSocketListener.ts index 0bc643f6..8356a645 100644 --- a/typescript/solver/solvers/WebSocketListener.ts +++ b/typescript/solver/solvers/WebSocketListener.ts @@ -55,7 +55,7 @@ export abstract class WebSocketListener { try { this.ws = new WebSocket( this.wsUrl, - this.metadata.webSocket.clientOptions, + this.metadata.webSocket.clientOptions as WebSocket.ClientOptions, ); this.setupEventListeners(); } catch (error) { From 03209905888c38659ba66afabafd53d78c88f8fc Mon Sep 17 00:00:00 2001 From: fernandomg Date: Wed, 12 Mar 2025 19:44:20 +0100 Subject: [PATCH 08/41] feat(compactX): listener minimum implementation --- .../solver/solvers/compactX/listener.ts | 28 +++++++++++++++++++ typescript/solver/solvers/compactX/utils.ts | 4 +++ 2 files changed, 32 insertions(+) create mode 100644 typescript/solver/solvers/compactX/listener.ts create mode 100644 typescript/solver/solvers/compactX/utils.ts diff --git a/typescript/solver/solvers/compactX/listener.ts b/typescript/solver/solvers/compactX/listener.ts new file mode 100644 index 00000000..0a880b05 --- /dev/null +++ b/typescript/solver/solvers/compactX/listener.ts @@ -0,0 +1,28 @@ +import type { ParsedArgs } from "../BaseFiller"; +import type { BaseWebSocketSource } from "../types.js"; +import { WebSocketListener } from "../WebSocketListener"; +import { type BroadcastRequest } from "./types.js"; +import { log } from "./utils.js"; + +type CompactXClassMetadata = { + webSocket: BaseWebSocketSource; + protocolName: string; +}; + +type Args = ParsedArgs & { context: BroadcastRequest }; + +export class CompactXListener extends WebSocketListener { + constructor(metadata: CompactXClassMetadata) { + super(metadata, log); + } + + protected parseEventArgs(args: Buffer): Args { + const parsedArgs: Args["context"] = JSON.parse(args.toString()); + return { + context: parsedArgs, + orderId: "", + senderAddress: "", + recipients: [], + }; + } +} diff --git a/typescript/solver/solvers/compactX/utils.ts b/typescript/solver/solvers/compactX/utils.ts new file mode 100644 index 00000000..de5e7767 --- /dev/null +++ b/typescript/solver/solvers/compactX/utils.ts @@ -0,0 +1,4 @@ +import { createLogger } from "../../logger.js"; +import { metadata } from "./config/index.js"; + +export const log = createLogger(metadata.protocolName); From 8f60665ab8415ccf3ce1a6a89c0c0baa83c25e71 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Wed, 12 Mar 2025 19:44:56 +0100 Subject: [PATCH 09/41] chore: prettier --- typescript/solver/index.ts | 2 +- typescript/solver/scripts/solver-add.ts | 4 +++- typescript/solver/scripts/solver-remove.ts | 21 +++++++++++-------- .../templates/config/allowBlockLists.ts | 2 +- .../solver/scripts/templates/config/index.ts | 2 +- .../scripts/templates/config/metadata.ts | 6 +++++- typescript/solver/scripts/templates/index.ts | 12 +++++------ .../solver/scripts/templates/rules/index.ts | 2 +- typescript/solver/solvers/BaseListener.ts | 5 ++--- 9 files changed, 32 insertions(+), 24 deletions(-) diff --git a/typescript/solver/index.ts b/typescript/solver/index.ts index ca033069..4fa5b6cb 100644 --- a/typescript/solver/index.ts +++ b/typescript/solver/index.ts @@ -9,7 +9,7 @@ import { getMultiProvider } from "./solvers/utils.js"; const main = async () => { const multiProvider = await getMultiProvider(chainMetadata).catch( - (error) => (log.error(error.reason ?? error.message), process.exit(1)) + (error) => (log.error(error.reason ?? error.message), process.exit(1)), ); log.info("🙍 Intent Solver 📝"); diff --git a/typescript/solver/scripts/solver-add.ts b/typescript/solver/scripts/solver-add.ts index ef4f72b3..36cacc89 100644 --- a/typescript/solver/scripts/solver-add.ts +++ b/typescript/solver/scripts/solver-add.ts @@ -28,7 +28,9 @@ async function getSolverName(cliName?: string): Promise { const solverPath = path.join(PATHS.solversDir, cliName); if (existsSync(solverPath)) { - throw new Error(`Solver "${cliName}" already exists. Please choose a different name.`); + throw new Error( + `Solver "${cliName}" already exists. Please choose a different name.`, + ); } return cliName; diff --git a/typescript/solver/scripts/solver-remove.ts b/typescript/solver/scripts/solver-remove.ts index 45fd7e9d..9a08a84b 100644 --- a/typescript/solver/scripts/solver-remove.ts +++ b/typescript/solver/scripts/solver-remove.ts @@ -11,13 +11,13 @@ import { } from "./utils.js"; function cancelOp() { - console.log('\nOperation cancelled.'); + console.log("\nOperation cancelled."); process.exit(0); } async function removeSolver() { - process.stdin.on('keypress', (_, key) => { - if (key.name === 'q') { + process.stdin.on("keypress", (_, key) => { + if (key.name === "q") { cancelOp(); } }); @@ -30,15 +30,16 @@ async function removeSolver() { } while (true) { - const choices = existingSolvers.map(solver => ({ + const choices = existingSolvers.map((solver) => ({ name: solver, value: solver, - description: `Remove solver "${solver}" and all related files` + description: `Remove solver "${solver}" and all related files`, })); try { const selectedSolvers = await checkbox({ - message: "Select solvers to remove (space to select, enter to confirm, q to quit):", + message: + "Select solvers to remove (space to select, enter to confirm, q to quit):", choices, pageSize: Math.min(choices.length, 10), loop: true, @@ -51,7 +52,7 @@ async function removeSolver() { const solverList = selectedSolvers.join(", "); const shouldProceed = await confirm({ message: `Are you sure you want to remove the following solvers: ${solverList}?`, - default: false + default: false, }); if (!shouldProceed) { @@ -62,7 +63,9 @@ async function removeSolver() { for (const name of selectedSolvers) { // Remove solver directory await fs.rm(path.join(PATHS.solversDir, name), { recursive: true }); - console.log(`✓ Removed solver directory: ${path.join(PATHS.solversDir, name)}`); + console.log( + `✓ Removed solver directory: ${path.join(PATHS.solversDir, name)}`, + ); // Update main solvers index.ts await updateSolversIndex(name, true); @@ -86,7 +89,7 @@ async function removeSolver() { return; } } catch (error) { - if (error.message?.includes('User force closed')) { + if (error.message?.includes("User force closed")) { cancelOp(); } diff --git a/typescript/solver/scripts/templates/config/allowBlockLists.ts b/typescript/solver/scripts/templates/config/allowBlockLists.ts index 439549a9..b3eda70a 100644 --- a/typescript/solver/scripts/templates/config/allowBlockLists.ts +++ b/typescript/solver/scripts/templates/config/allowBlockLists.ts @@ -31,4 +31,4 @@ const allowBlockLists: AllowBlockLists = { AllowBlockListsSchema.parse(allowBlockLists); export default allowBlockLists; -`; \ No newline at end of file +`; diff --git a/typescript/solver/scripts/templates/config/index.ts b/typescript/solver/scripts/templates/config/index.ts index 6c47d681..b3075a46 100644 --- a/typescript/solver/scripts/templates/config/index.ts +++ b/typescript/solver/scripts/templates/config/index.ts @@ -3,4 +3,4 @@ import allowBlockLists from "./allowBlockLists.js"; import metadata from "./metadata.js"; export { allowBlockLists, metadata }; -`; \ No newline at end of file +`; diff --git a/typescript/solver/scripts/templates/config/metadata.ts b/typescript/solver/scripts/templates/config/metadata.ts index 78422647..4d9c7872 100644 --- a/typescript/solver/scripts/templates/config/metadata.ts +++ b/typescript/solver/scripts/templates/config/metadata.ts @@ -1,4 +1,8 @@ -export const metadataTemplate = (name: string, contractAddress: string, chainName: string) => ` +export const metadataTemplate = ( + name: string, + contractAddress: string, + chainName: string, +) => ` import { BaseMetadataSchema } from '../../types.js'; // TODO: Update with actual contract address and chain name before using in production diff --git a/typescript/solver/scripts/templates/index.ts b/typescript/solver/scripts/templates/index.ts index a221ad5e..bda09bca 100644 --- a/typescript/solver/scripts/templates/index.ts +++ b/typescript/solver/scripts/templates/index.ts @@ -1,6 +1,6 @@ -export * from './types.js'; -export * from './listener.js'; -export * from './filler.js'; -export * from './config/index.js'; -export * from './config/allowBlockLists.js'; -export * from './config/metadata.js'; +export * from "./types.js"; +export * from "./listener.js"; +export * from "./filler.js"; +export * from "./config/index.js"; +export * from "./config/allowBlockLists.js"; +export * from "./config/metadata.js"; diff --git a/typescript/solver/scripts/templates/rules/index.ts b/typescript/solver/scripts/templates/rules/index.ts index f858abfe..88045197 100644 --- a/typescript/solver/scripts/templates/rules/index.ts +++ b/typescript/solver/scripts/templates/rules/index.ts @@ -14,4 +14,4 @@ import { type RulesMap } from "../../types.js"; */ export const rules: RulesMap = {}; -`; \ No newline at end of file +`; diff --git a/typescript/solver/solvers/BaseListener.ts b/typescript/solver/solvers/BaseListener.ts index 28c6a5fe..37d8c40e 100644 --- a/typescript/solver/solvers/BaseListener.ts +++ b/typescript/solver/solvers/BaseListener.ts @@ -97,7 +97,7 @@ export abstract class BaseListener< confirmationBlocks, ), pollInterval ?? this.defaultPollInterval, - ) + ), ); contract.provider.getNetwork().then((network) => { @@ -118,9 +118,8 @@ export abstract class BaseListener< clearInterval(this.pollIntervals[i]); } this.pollIntervals = []; - } + }; }; - } protected async pollEvents( From 0cd858f2b8329e2e641036c7bff65c49ca2ef0e6 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Wed, 12 Mar 2025 20:38:24 +0100 Subject: [PATCH 10/41] feat(compactX): mvp (no fill) Co-Authored-By: Lisandro Corbalan --- typescript/solver/config/solvers.json | 3 + typescript/solver/solvers/SolverManager.ts | 13 +- .../solvers/compactX/config/metadata.ts | 2 +- typescript/solver/solvers/compactX/filler.ts | 123 ++++++++++++++++++ typescript/solver/solvers/compactX/index.ts | 3 + .../solver/solvers/compactX/listener.ts | 37 ++++-- typescript/solver/solvers/compactX/types.ts | 5 + typescript/solver/solvers/index.ts | 1 + 8 files changed, 167 insertions(+), 20 deletions(-) create mode 100644 typescript/solver/solvers/compactX/filler.ts create mode 100644 typescript/solver/solvers/compactX/index.ts diff --git a/typescript/solver/config/solvers.json b/typescript/solver/config/solvers.json index 24b34bbb..93b26091 100644 --- a/typescript/solver/config/solvers.json +++ b/typescript/solver/config/solvers.json @@ -4,5 +4,8 @@ }, "hyperlane7683": { "enabled": true + }, + "compactX": { + "enabled": true } } diff --git a/typescript/solver/solvers/SolverManager.ts b/typescript/solver/solvers/SolverManager.ts index ff55bb24..8791513e 100644 --- a/typescript/solver/solvers/SolverManager.ts +++ b/typescript/solver/solvers/SolverManager.ts @@ -8,16 +8,13 @@ type SolverModule = { create: () => Promise; }; filler: { - create: ( - multiProvider: MultiProvider, - rules?: any - ) => FillerFn; + create: (multiProvider: MultiProvider, rules?: any) => FillerFn; }; rules?: any; }; type ListenerFn = ( - handler: (args: T, originChainName: string, blockNumber: number) => void + handler: (args: T, originChainName: string, blockNumber: number) => void, ) => ShutdownFn; type ShutdownFn = () => void; @@ -25,7 +22,7 @@ type ShutdownFn = () => void; type FillerFn = ( args: T, originChainName: string, - blockNumber: number + blockNumber: number, ) => Promise; export class SolverManager { @@ -33,7 +30,7 @@ export class SolverManager { constructor( private readonly multiProvider: MultiProvider, - private readonly log: Logger + private readonly log: Logger, ) {} async initializeSolvers() { @@ -47,7 +44,7 @@ export class SolverManager { await this.initializeSolver(solverName as SolverName); } catch (error: any) { this.log.error( - `Failed to initialize solver ${solverName}: ${error.message}` + `Failed to initialize solver ${solverName}: ${error.message}`, ); throw error; } diff --git a/typescript/solver/solvers/compactX/config/metadata.ts b/typescript/solver/solvers/compactX/config/metadata.ts index a7019386..3cbb76b5 100644 --- a/typescript/solver/solvers/compactX/config/metadata.ts +++ b/typescript/solver/solvers/compactX/config/metadata.ts @@ -5,7 +5,7 @@ const metadata: CompactXMetadata = { intentSources: { webSockets: [ { - url: "ws://localhost:8080", + url: "ws://localhost:3000/ws", }, ], }, diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts new file mode 100644 index 00000000..18cb3142 --- /dev/null +++ b/typescript/solver/solvers/compactX/filler.ts @@ -0,0 +1,123 @@ +import { type MultiProvider } from "@hyperlane-xyz/sdk"; +import { type Result } from "@hyperlane-xyz/utils"; + +import { BaseFiller } from "../BaseFiller.js"; +import { BuildRules, RulesMap } from "../types.js"; +import { allowBlockLists, metadata } from "./config/index.js"; +import type { CompactXMetadata, CompactXParsedArgs } from "./types.js"; +import { log } from "./utils.js"; + +export type CompactXRule = CompactXFiller["rules"][number]; + +export class CompactXFiller extends BaseFiller< + CompactXMetadata, + CompactXParsedArgs, + {} +> { + constructor(multiProvider: MultiProvider, rules?: BuildRules) { + super(multiProvider, allowBlockLists, metadata, log, rules); + } + + protected retrieveOriginInfo( + parsedArgs: CompactXParsedArgs, + chainName: string, + ) { + return Promise.reject("Method not implemented."); + } + + protected retrieveTargetInfo(parsedArgs: CompactXParsedArgs) { + return Promise.reject("Method not implemented."); + } + + protected async prepareIntent( + parsedArgs: CompactXParsedArgs, + ): Promise> { + try { + await super.prepareIntent(parsedArgs); + + return { data: {}, success: true }; + } catch (error: any) { + return { + error: error.message ?? "Failed to prepare Eco Intent.", + success: false, + }; + } + } + + protected async fill( + parsedArgs: CompactXParsedArgs, + data: any, + originChainName: string, + ) { + this.log.info({ + msg: "Filling Intent", + intent: `no se`, + }); + + this.log.debug({ + msg: "Approving tokens", + protocolName: this.metadata.protocolName, + intentHash: "no se", + adapterAddress: data.adapterAddress, + }); + + this.log.info({ + msg: "Filled Intent", + intent: `${this.metadata.protocolName}-${""}`, + txDetails: "", + txHash: "", + }); + } +} + +const enoughBalanceOnDestination: CompactXRule = async ( + parsedArgs, + context, +) => { + // const erc20Interface = Erc20__factory.createInterface(); + + // const requiredAmountsByTarget = parsedArgs._targets.reduce<{ + // [tokenAddress: string]: BigNumber; + // }>((acc, target, index) => { + // const [, amount] = erc20Interface.decodeFunctionData( + // "transfer", + // parsedArgs._data[index], + // ) as [unknown, BigNumber]; + + // acc[target] ||= Zero; + // acc[target] = acc[target].add(amount); + + // return acc; + // }, {}); + + // const chainId = parsedArgs._destinationChain.toString(); + // const fillerAddress = await context.multiProvider.getSignerAddress(chainId); + // const provider = context.multiProvider.getProvider(chainId); + + // for (const tokenAddress in requiredAmountsByTarget) { + // const balance = await retrieveTokenBalance( + // tokenAddress, + // fillerAddress, + // provider, + // ); + + // if (balance.lt(requiredAmountsByTarget[tokenAddress])) { + // return { + // error: `Insufficient balance on destination chain ${chainId} for token ${tokenAddress}`, + // success: false, + // }; + // } + // } + + return { data: "Enough tokens to fulfill the intent", success: true }; +}; + +export const create = ( + multiProvider: MultiProvider, + customRules?: RulesMap, +) => { + return new CompactXFiller(multiProvider, { + base: [enoughBalanceOnDestination], + custom: customRules, + }).create(); +}; diff --git a/typescript/solver/solvers/compactX/index.ts b/typescript/solver/solvers/compactX/index.ts new file mode 100644 index 00000000..e578421c --- /dev/null +++ b/typescript/solver/solvers/compactX/index.ts @@ -0,0 +1,3 @@ +export * as filler from "./filler.js"; +export * as listener from "./listener.js"; +export * as rules from "./rules/index.js"; diff --git a/typescript/solver/solvers/compactX/listener.ts b/typescript/solver/solvers/compactX/listener.ts index 0a880b05..235c1bf5 100644 --- a/typescript/solver/solvers/compactX/listener.ts +++ b/typescript/solver/solvers/compactX/listener.ts @@ -1,7 +1,8 @@ -import type { ParsedArgs } from "../BaseFiller"; +import { chainIdsToName } from "../../config/index.js"; import type { BaseWebSocketSource } from "../types.js"; import { WebSocketListener } from "../WebSocketListener"; -import { type BroadcastRequest } from "./types.js"; +import metadata from "./config/metadata.js"; +import { CompactXParsedArgs } from "./types.js"; import { log } from "./utils.js"; type CompactXClassMetadata = { @@ -9,20 +10,34 @@ type CompactXClassMetadata = { protocolName: string; }; -type Args = ParsedArgs & { context: BroadcastRequest }; - -export class CompactXListener extends WebSocketListener { +export class CompactXListener extends WebSocketListener { constructor(metadata: CompactXClassMetadata) { super(metadata, log); } - protected parseEventArgs(args: Buffer): Args { - const parsedArgs: Args["context"] = JSON.parse(args.toString()); + protected parseEventArgs(args: Buffer): CompactXParsedArgs { + const context: CompactXParsedArgs["context"] = JSON.parse(args.toString()); + return { - context: parsedArgs, - orderId: "", - senderAddress: "", - recipients: [], + orderId: context.compact.id, + senderAddress: context.compact.sponsor, + recipients: [ + { + destinationChainName: + chainIdsToName[context.compact.mandate.chainId.toString()], + recipientAddress: context.compact.mandate.recipient, + }, + ], + context, }; } } + +export const create = () => { + const { intentSources, protocolName } = metadata; + const _metadata = { + webSocket: intentSources.webSockets[0], + protocolName, + }; + return new CompactXListener(_metadata).create(); +}; diff --git a/typescript/solver/solvers/compactX/types.ts b/typescript/solver/solvers/compactX/types.ts index d1600e3f..95288cf1 100644 --- a/typescript/solver/solvers/compactX/types.ts +++ b/typescript/solver/solvers/compactX/types.ts @@ -1,6 +1,7 @@ import { z } from "zod"; import { BaseMetadataSchema, BaseWebSocketSourceSchema } from "../types.js"; +import { ParsedArgs } from "../BaseFiller.js"; // Custom validators and constants const isHexString = (str: string) => /^0x[0-9a-fA-F]*$/.test(str); @@ -106,3 +107,7 @@ export const CompactXMetadataSchema = BaseMetadataSchema.extend({ }); export type CompactXMetadata = z.infer; + +export type CompactXParsedArgs = ParsedArgs & { + context: BroadcastRequest; +}; diff --git a/typescript/solver/solvers/index.ts b/typescript/solver/solvers/index.ts index 4c1ad5c7..6c790749 100644 --- a/typescript/solver/solvers/index.ts +++ b/typescript/solver/solvers/index.ts @@ -1,2 +1,3 @@ export * as eco from "./eco/index.js"; export * as hyperlane7683 from "./hyperlane7683/index.js"; +export * as compactX from "./compactX/index.js"; From 4a7c25176dd17d920b7acc285e8f4a2ee4f5f7c4 Mon Sep 17 00:00:00 2001 From: Lisandro Corbalan Date: Thu, 13 Mar 2025 07:36:08 -0300 Subject: [PATCH 11/41] fix: websocket listener shutdown Co-Authored-By: fernandomg --- .../solver/solvers/WebSocketListener.ts | 27 +++++-------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/typescript/solver/solvers/WebSocketListener.ts b/typescript/solver/solvers/WebSocketListener.ts index 8356a645..89e0e6fe 100644 --- a/typescript/solver/solvers/WebSocketListener.ts +++ b/typescript/solver/solvers/WebSocketListener.ts @@ -93,15 +93,6 @@ export abstract class WebSocketListener { this.cleanupPingInterval(); }); - this.ws.on("message", (data: Buffer): void => { - try { - const message = JSON.parse(data.toString()); - this.handleMessage(message); - } catch (error) { - this.log.error("Error parsing message:", error); - } - }); - this.ws.on("pong", () => { if (this.pongTimeout) { clearTimeout(this.pongTimeout); @@ -163,7 +154,7 @@ export abstract class WebSocketListener { } create() { - return async ( + return ( handler: ( args: TParsedArgs, originChainName: string, @@ -185,19 +176,13 @@ export abstract class WebSocketListener { this.log.error("Error parsing message:", error); } }); + + return () => { + this.cleanupPingInterval(); + this.ws?.close(); + } }; } - private handleMessage(data: WebSocketMessage): void { - switch (data.type) { - // case "connected": - // console.debug("Connected to the server"); - // console.debug(`Client count: ${data.data.clientCount}`); - // console.debug(`Timestamp: ${data.timestamp}`); - // break; - default: - console.error("Unknown message type:", data); - } - } protected abstract parseEventArgs(args: Buffer): TParsedArgs; } From 43abd77567ce360c3f163d9fd0577fc737735d38 Mon Sep 17 00:00:00 2001 From: Lisandro Corbalan Date: Fri, 14 Mar 2025 16:39:48 -0300 Subject: [PATCH 12/41] wip: add CompactX filler logic --- .../solvers/compactX/config/constants.ts | 19 ++ typescript/solver/solvers/compactX/filler.ts | 145 +++++++-- .../solver/solvers/compactX/listener.ts | 2 +- .../compactX/services/TheCompactService.ts | 280 ++++++++++++++++++ typescript/solver/solvers/compactX/types.ts | 4 +- typescript/solver/solvers/compactX/utils.ts | 107 +++++++ .../solvers/compactX/validation/signature.ts | 163 ++++++++++ 7 files changed, 699 insertions(+), 21 deletions(-) create mode 100644 typescript/solver/solvers/compactX/config/constants.ts create mode 100644 typescript/solver/solvers/compactX/services/TheCompactService.ts create mode 100644 typescript/solver/solvers/compactX/validation/signature.ts diff --git a/typescript/solver/solvers/compactX/config/constants.ts b/typescript/solver/solvers/compactX/config/constants.ts new file mode 100644 index 00000000..3e112c4d --- /dev/null +++ b/typescript/solver/solvers/compactX/config/constants.ts @@ -0,0 +1,19 @@ +export const SUPPORTED_CHAINS = [1, 10, 130, 8453] as const; // Mainnet, Optimism, Unichain, & Base +export type SupportedChainId = (typeof SUPPORTED_CHAINS)[number]; + +export const CHAIN_PRIORITY_FEES: Record = { + 1: 1n, // Mainnet + 10: 1n, // Optimism + 130: 1n, // Unichain + 8453: 50n, // Base +} as const; + +// Supported addresses for arbiters and tribunals per chain +export const SUPPORTED_ARBITER_ADDRESSES: Record = { + 1: "0xDfd41e6E2e08e752f464084F5C11619A3c950237", // Ethereum + 10: "0x2602D9f66ec17F2dc770063F7B91821DD741F626", // Optimism + 130: "0x81fC1d90C5fae0f15FC91B5592177B594011C576", // Unichain + 8453: "0xfaBE453252ca8337b091ba01BB168030E2FE6c1F", // Base +} as const; + +export const SUPPORTED_TRIBUNAL_ADDRESSES = SUPPORTED_ARBITER_ADDRESSES; diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index 18cb3142..7a5da8ce 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -4,8 +4,11 @@ import { type Result } from "@hyperlane-xyz/utils"; import { BaseFiller } from "../BaseFiller.js"; import { BuildRules, RulesMap } from "../types.js"; import { allowBlockLists, metadata } from "./config/index.js"; -import type { CompactXMetadata, CompactXParsedArgs } from "./types.js"; -import { log } from "./utils.js"; +import { type CompactXMetadata, type CompactXParsedArgs, type BroadcastRequest, BroadcastRequestSchema } from "./types.js"; +import { log, deriveClaimHash } from "./utils.js"; +import { SupportedChainId, SUPPORTED_CHAINS, SUPPORTED_ARBITER_ADDRESSES, SUPPORTED_TRIBUNAL_ADDRESSES } from "./config/constants.js" +import { verifyBroadcastRequest } from "./validation/signature.js"; +import { TheCompactService } from "./services/TheCompactService.js"; export type CompactXRule = CompactXFiller["rules"][number]; @@ -31,11 +34,13 @@ export class CompactXFiller extends BaseFiller< protected async prepareIntent( parsedArgs: CompactXParsedArgs, - ): Promise> { + ): Promise> { try { await super.prepareIntent(parsedArgs); - return { data: {}, success: true }; + const result = BroadcastRequestSchema.parse(parsedArgs.context); + + return { data: result, success: true }; } catch (error: any) { return { error: error.message ?? "Failed to prepare Eco Intent.", @@ -46,28 +51,132 @@ export class CompactXFiller extends BaseFiller< protected async fill( parsedArgs: CompactXParsedArgs, - data: any, + data: BroadcastRequest, originChainName: string, ) { this.log.info({ msg: "Filling Intent", - intent: `no se`, + intent: `${this.metadata.protocolName}-${data.compact.id}`, }); - this.log.debug({ - msg: "Approving tokens", - protocolName: this.metadata.protocolName, - intentHash: "no se", - adapterAddress: data.adapterAddress, - }); + const chainId = Number.parseInt( + data.chainId.toString() + ) as SupportedChainId; - this.log.info({ - msg: "Filled Intent", - intent: `${this.metadata.protocolName}-${""}`, - txDetails: "", - txHash: "", - }); + // Derive and log claim hash + const claimHash = deriveClaimHash(chainId, data.compact); + this.log.info( + `Processing fill request for chainId ${chainId}, claimHash: ${claimHash}` + ); + + // Set the claim hash before verification + data.claimHash = claimHash; + + const theCompactService = new TheCompactService(this.multiProvider, this.log); + + // Verify signatures + this.log.info("Verifying signatures..."); + const { isValid, isOnchainRegistration, error } = await verifyBroadcastRequest(data, theCompactService); + + if (!isValid) { + throw new Error(error); + } + + // Log registration status + this.log.info( + `Signature verification successful, registration status: ${isOnchainRegistration ? "onchain" : "offchain"}` + ); + + if (!SUPPORTED_CHAINS.includes(chainId)) { + throw new Error(`Unsupported chain ID: ${chainId}`); + } + + // Check if either compact or mandate has expired or is close to expiring + const currentTimestamp = BigInt(Math.floor(Date.now() / 1000)); + const COMPACT_EXPIRATION_BUFFER = 60n; // 60 seconds buffer for compact + const MANDATE_EXPIRATION_BUFFER = 10n; // 10 seconds buffer for mandate + + if ( + BigInt(data.compact.expires) <= + currentTimestamp + COMPACT_EXPIRATION_BUFFER + ) { + throw new Error(`Compact must have at least ${COMPACT_EXPIRATION_BUFFER} seconds until expiration`); + } + + if ( + BigInt(data.compact.mandate.expires) <= + currentTimestamp + MANDATE_EXPIRATION_BUFFER + ) { + throw new Error(`Mandate must have at least ${MANDATE_EXPIRATION_BUFFER} seconds until expiration`); + } + + // Check if nonce has already been consumed + const nonceConsumed = await theCompactService.hasConsumedAllocatorNonce( + chainId, + BigInt(data.compact.nonce), + data.compact.arbiter as `0x${string}` + ); + + if (nonceConsumed) { + throw new Error("Nonce has already been consumed"); + } + + // Process the broadcast transaction + const mandateChainId = Number( + data.compact.mandate.chainId + ) as SupportedChainId; + + // Validate arbiter and tribunal addresses + const arbiterAddress = data.compact.arbiter.toLowerCase(); + const tribunalAddress = data.compact.mandate.tribunal.toLowerCase(); + + if ( + arbiterAddress !== + SUPPORTED_ARBITER_ADDRESSES[ + Number(data.chainId) as SupportedChainId + ].toLowerCase() + ) { + throw new Error("Unsupported arbiter address"); + } + + if ( + tribunalAddress !== + SUPPORTED_TRIBUNAL_ADDRESSES[mandateChainId].toLowerCase() + ) { + wsManager.broadcastFillRequest( + JSON.stringify(request), + false, + "Unsupported tribunal address" + ); + return res.status(400).json({ error: "Unsupported tribunal address" }); + } + + // const result = await processBroadcastTransaction( + // { ...request, chainId: Number(request.chainId) }, + // mandateChainId, + // priceService, + // tokenBalanceService, + // publicClients[mandateChainId], + // walletClients[mandateChainId], + // account.address + // ); + + // // Handle the result + // wsManager.broadcastFillRequest( + // JSON.stringify(request), + // result.success, + // result.success ? undefined : result.reason + // ); + + // return res.status(result.success ? 200 : 400).json({ + // success: result.success, + // ...(result.success + // ? { transactionHash: result.hash } + // : { reason: result.reason }), + // details: result.details, + // }); } + } const enoughBalanceOnDestination: CompactXRule = async ( diff --git a/typescript/solver/solvers/compactX/listener.ts b/typescript/solver/solvers/compactX/listener.ts index 235c1bf5..a452d5e1 100644 --- a/typescript/solver/solvers/compactX/listener.ts +++ b/typescript/solver/solvers/compactX/listener.ts @@ -1,6 +1,6 @@ import { chainIdsToName } from "../../config/index.js"; import type { BaseWebSocketSource } from "../types.js"; -import { WebSocketListener } from "../WebSocketListener"; +import { WebSocketListener } from "../WebSocketListener.js"; import metadata from "./config/metadata.js"; import { CompactXParsedArgs } from "./types.js"; import { log } from "./utils.js"; diff --git a/typescript/solver/solvers/compactX/services/TheCompactService.ts b/typescript/solver/solvers/compactX/services/TheCompactService.ts new file mode 100644 index 00000000..992968e3 --- /dev/null +++ b/typescript/solver/solvers/compactX/services/TheCompactService.ts @@ -0,0 +1,280 @@ +import { + type Address, + type PublicClient, + type WalletClient, + encodeFunctionData, +} from "viem"; +import { + CHAIN_PRIORITY_FEES, + type SupportedChainId, +} from "../config/constants.js"; +import type { Logger } from "../../../logger.js"; + +import { TheCompact__factory } from "../../../typechain/factories/compactX/contracts/TheCompact__factory.js"; +import type { MultiProvider } from "@hyperlane-xyz/sdk"; +import type { BigNumber } from "@ethersproject/bignumber"; + +const THE_COMPACT_ADDRESS = "0x00000000000018DF021Ff2467dF97ff846E09f48"; + +/** + * @notice Status of a forced withdrawal + * @dev Maps to the contract's ForcedWithdrawalStatus enum + */ +export enum ForcedWithdrawalStatus { + Disabled = 0, // Not pending or enabled for forced withdrawal + Pending = 1, // Not yet available, but initiated + Enabled = 2, // Available for forced withdrawal on demand +} + +export interface RegistrationStatus { + isActive: boolean; + expires: BigNumber; +} + +export interface ForcedWithdrawalInfo { + status: keyof typeof ForcedWithdrawalStatus; + availableAt: number; +} + +export class TheCompactService { + constructor( + readonly multiProvider: MultiProvider, + readonly log: Logger + ) { + } + + async hasConsumedAllocatorNonce( + chainId: SupportedChainId, + nonce: bigint, + allocator: `0x${string}` + ): Promise { + const provider = this.multiProvider.getProvider(chainId); + if (!provider) { + throw new Error(`No client found for chain ${chainId}`); + } + + const theCompact = TheCompact__factory.connect(THE_COMPACT_ADDRESS, provider); + const result = await theCompact.hasConsumedAllocatorNonce(nonce, allocator) + + return result as boolean; + } + + async getRegistrationStatus( + chainId: SupportedChainId, + sponsor: `0x${string}`, + claimHash: `0x${string}`, + typehash: `0x${string}` + ): Promise { + const provider = this.multiProvider.getProvider(chainId); + if (!provider) { + throw new Error(`No client found for chain ${chainId}`); + } + + const theCompact = TheCompact__factory.connect(THE_COMPACT_ADDRESS, provider); + + try { + this.log.debug( + `Fetching registration status for sponsor ${sponsor}, claimHash ${claimHash}, and typehash ${typehash} on chain ${chainId}` + ); + + // Use explicit type assertion for the contract call result + const {isActive, expires} = await theCompact.getRegistrationStatus(sponsor, claimHash, typehash) + + this.log.debug(`Result: ${isActive}, ${expires}`); + + return { isActive, expires } as RegistrationStatus; + } catch (error) { + const errorInfo = { + message: error instanceof Error ? error.message : String(error), + stack: error instanceof Error ? error.stack : undefined, + name: error instanceof Error ? error.name : undefined, + // For viem errors, they often have a cause property + cause: (error as { cause?: unknown })?.cause, + // Some errors might have a data property with more details + data: (error as { data?: unknown })?.data, + // Convert the whole error to string to capture anything else + toString: String(error), + }; + + this.log.debug("Error in getRegistrationStatus:", { + errorInfo, + errorMessage: errorInfo.message, + chainId, + sponsor, + claimHash, + typehash, + }); + throw error; + } + } + + async getForcedWithdrawalStatus( + chainId: SupportedChainId, + account: Address, + lockId: bigint + ): Promise { + const provider = this.multiProvider.getProvider(chainId); + if (!provider) { + throw new Error(`No client found for chain ${chainId}`); + } + + const theCompact = TheCompact__factory.connect(THE_COMPACT_ADDRESS, provider); + + const result = await theCompact.getForcedWithdrawalStatus(account, lockId) + + const [status, availableAt] = result as [number, BigNumber]; + + // Map numeric status to enum key + const statusKey = ForcedWithdrawalStatus[ + status + ] as keyof typeof ForcedWithdrawalStatus; + + return { + status: statusKey, + availableAt: Number(availableAt), + }; + } + + // async enableForcedWithdrawal( + // chainId: SupportedChainId, + // lockId: bigint + // ): Promise<`0x${string}`> { + // this.log.debug( + // `Preparing to enable forced withdrawal for lock ${lockId} on chain ${chainId}` + // ); + + // const publicClient = this.publicClients[chainId]; + // const walletClient = this.walletClients[chainId]; + + // if (!publicClient || !walletClient) { + // throw new Error(`No clients found for chain ${chainId}`); + // } + + // // Get the account from the wallet client + // const account = walletClient.account; + // if (!account) { + // throw new Error("No account found in wallet client"); + // } + + // this.log.debug(`Using account ${account.address} for forced withdrawal`); + + // // Encode the function call + // const data = encodeFunctionData({ + // abi: THE_COMPACT_ABI, + // functionName: "enableForcedWithdrawal", + // args: [lockId], + // }); + + // this.log.debug(`Encoded enableForcedWithdrawal call for lock ${lockId}`); + + // // Get base fee + // const baseFee = await publicClient + // .getBlock({ blockTag: "latest" }) + // .then( + // (block: { baseFeePerGas: bigint | null }) => block.baseFeePerGas || 0n + // ); + + // this.log.debug(`Got base fee for chain ${chainId}: ${baseFee}`); + + // // Submit the transaction + // this.log.debug( + // `Submitting enableForcedWithdrawal transaction for lock ${lockId}` + // ); + // const hash = await walletClient.sendTransaction({ + // to: THE_COMPACT_ADDRESS, + // data, + // account, + // chain: null, + // maxFeePerGas: (baseFee * 120n) / 100n, + // maxPriorityFeePerGas: CHAIN_PRIORITY_FEES[chainId], + // }); + + // this.log.debug( + // `Successfully submitted enableForcedWithdrawal transaction for lock ${lockId} on chain ${chainId}: ${hash}` + // ); + + // return hash; + // } + + // async executeForcedWithdrawal( + // chainId: SupportedChainId, + // lockId: bigint, + // amount: bigint + // ): Promise<`0x${string}`> { + // this.log.debug( + // `Preparing to execute forced withdrawal for lock ${lockId} on chain ${chainId}`, + // { amount: amount.toString() } + // ); + + // const publicClient = this.publicClients[chainId]; + // const walletClient = this.walletClients[chainId]; + + // if (!publicClient || !walletClient) { + // throw new Error(`No clients found for chain ${chainId}`); + // } + + // // Get the account from the wallet client + // const account = walletClient.account; + // if (!account) { + // throw new Error("No account found in wallet client"); + // } + + // this.log.debug(`Using account ${account.address} for forced withdrawal`); + + // // Double check that forced withdrawal is enabled + // const { status } = await this.getForcedWithdrawalStatus( + // chainId, + // account.address, + // lockId + // ); + + // if (status !== "Enabled") { + // throw new Error( + // `Forced withdrawal not enabled for lock ${lockId} on chain ${chainId}. ` + + // `Current status: ${status} (${ForcedWithdrawalStatus[status as keyof typeof ForcedWithdrawalStatus]})` + // ); + // } + + // // Encode the function call + // const data = encodeFunctionData({ + // abi: THE_COMPACT_ABI, + // functionName: "forcedWithdrawal", + // args: [lockId, account.address, amount], + // }); + + // this.log.debug(`Encoded forcedWithdrawal call for lock ${lockId}`); + + // // Get base fee + // const baseFee = await publicClient + // .getBlock({ blockTag: "latest" }) + // .then( + // (block: { baseFeePerGas: bigint | null }) => block.baseFeePerGas || 0n + // ); + + // this.log.debug(`Got base fee for chain ${chainId}: ${baseFee}`); + + // // Submit the transaction + // this.log.debug(`Submitting forcedWithdrawal transaction for lock ${lockId}`, { + // amount: amount.toString(), + // }); + // const hash = await walletClient.sendTransaction({ + // to: THE_COMPACT_ADDRESS, + // data, + // account, + // chain: null, + // maxFeePerGas: (baseFee * 120n) / 100n, + // maxPriorityFeePerGas: CHAIN_PRIORITY_FEES[chainId], + // }); + + // this.log.debug( + // `Successfully submitted forcedWithdrawal transaction for lock ${lockId} on chain ${chainId}: ${hash}`, + // { amount: amount.toString() } + // ); + + // return hash; + // } + + // public getPublicClient(chainId: SupportedChainId) { + // return this.publicClients[chainId]; + // } +} diff --git a/typescript/solver/solvers/compactX/types.ts b/typescript/solver/solvers/compactX/types.ts index 95288cf1..f4d23ce8 100644 --- a/typescript/solver/solvers/compactX/types.ts +++ b/typescript/solver/solvers/compactX/types.ts @@ -47,7 +47,7 @@ export const MandateSchema = z.object({ salt: hashSchema, }); -export const CompactMessageSchema = z.object({ +export const CompactSchema = z.object({ arbiter: addressSchema, sponsor: addressSchema, nonce: hashSchema, @@ -81,7 +81,7 @@ export const ContextSchema = z.object({ export const BroadcastRequestSchema = z.object({ chainId: numericOrHexSchema, - compact: CompactMessageSchema, + compact: CompactSchema, sponsorSignature: z .string() .refine( diff --git a/typescript/solver/solvers/compactX/utils.ts b/typescript/solver/solvers/compactX/utils.ts index de5e7767..4c6a0ef3 100644 --- a/typescript/solver/solvers/compactX/utils.ts +++ b/typescript/solver/solvers/compactX/utils.ts @@ -1,4 +1,111 @@ import { createLogger } from "../../logger.js"; import { metadata } from "./config/index.js"; +import { keccak256} from "@ethersproject/keccak256" +import { arrayify } from "@ethersproject/bytes"; +import { AbiCoder } from "@ethersproject/abi"; +import { toUtf8Bytes } from "@ethersproject/strings"; + export const log = createLogger(metadata.protocolName); + +/** + * Derives the claim hash using EIP-712 typed data hashing + */ +export function deriveClaimHash( + chainId: number, + compact: Compact +) { + // Validate mandate parameters + if (!compact.mandate.chainId) throw new Error("Mandate chainId is required"); + if (!compact.mandate.tribunal) + throw new Error("Mandate tribunal is required"); + if (!compact.mandate.recipient) + throw new Error("Mandate recipient is required"); + if (!compact.mandate.expires) throw new Error("Mandate expires is required"); + if (!compact.mandate.token) throw new Error("Mandate token is required"); + if (!compact.mandate.minimumAmount) + throw new Error("Mandate minimumAmount is required"); + if (!compact.mandate.baselinePriorityFee) + throw new Error("Mandate baselinePriorityFee is required"); + if (!compact.mandate.scalingFactor) + throw new Error("Mandate scalingFactor is required"); + if (!compact.mandate.salt) throw new Error("Mandate salt is required"); + + // Validate compact parameters + if (!compact.arbiter) throw new Error("Compact arbiter is required"); + if (!compact.sponsor) throw new Error("Compact sponsor is required"); + if (!compact.nonce) throw new Error("Compact nonce is required"); + if (!compact.expires) throw new Error("Compact expires is required"); + if (!compact.id) throw new Error("Compact id is required"); + if (!compact.amount) throw new Error("Compact amount is required"); + + // Calculate COMPACT_TYPEHASH to match Solidity's EIP-712 typed data + const COMPACT_TYPESTRING = + "Compact(address arbiter,address sponsor,uint256 nonce,uint256 expires,uint256 id,uint256 amount,Mandate mandate)Mandate(uint256 chainId,address tribunal,address recipient,uint256 expires,address token,uint256 minimumAmount,uint256 baselinePriorityFee,uint256 scalingFactor,bytes32 salt)"; + const COMPACT_TYPEHASH = keccak256(toUtf8Bytes(COMPACT_TYPESTRING)); + + // Calculate MANDATE_TYPEHASH to match Solidity's EIP-712 typed data + const MANDATE_TYPESTRING = + "Mandate(uint256 chainId,address tribunal,address recipient,uint256 expires,address token,uint256 minimumAmount,uint256 baselinePriorityFee,uint256 scalingFactor,bytes32 salt)"; + const MANDATE_TYPEHASH = keccak256(toUtf8Bytes(MANDATE_TYPESTRING)); + + + const abiCoder = new AbiCoder(); + // Now encode all the mandate parameters with the mandate typehash + const encodedMandateData = abiCoder.encode( + [ + "bytes32", // MANDATE_TYPEHASH + "uint256", // mandate.chainId + "address", // mandate.tribunal + "address", // mandate.recipient + "uint256", // mandate.expires + "address", // mandate.token + "uint256", // mandate.minimumAmount + "uint256", // mandate.baselinePriorityFee + "uint256", // mandate.scalingFactor + "bytes32", // mandate.salt + ], + [ + MANDATE_TYPEHASH, + BigInt(compact.mandate.chainId), + compact.mandate.tribunal.toLowerCase() as `0x${string}`, + compact.mandate.recipient.toLowerCase() as `0x${string}`, + BigInt(compact.mandate.expires), + compact.mandate.token.toLowerCase() as `0x${string}`, + BigInt(compact.mandate.minimumAmount), + BigInt(compact.mandate.baselinePriorityFee), + BigInt(compact.mandate.scalingFactor), + compact.mandate.salt as `0x${string}`, + ] + ); + + // derive the "witness hash" using the mandate data + const witnessHash = keccak256(encodedMandateData); + + // Now encode all the parameters with the typehash, matching the contract's abi.encode + const encodedData = abiCoder.encode( + [ + "bytes32", // COMPACT_TYPEHASH + "address", // arbiter + "address", // sponsor + "uint256", // nonce + "uint256", // expires + "uint256", // id + "uint256", // amount + "bytes32", // witnessHash + ], + [ + COMPACT_TYPEHASH, + compact.arbiter.toLowerCase() as `0x${string}`, + compact.sponsor.toLowerCase() as `0x${string}`, + BigInt(compact.nonce), + BigInt(compact.expires), + BigInt(compact.id), + BigInt(compact.amount), + witnessHash, + ] + ); + + // Return the final hash + return keccak256(encodedData); +} diff --git a/typescript/solver/solvers/compactX/validation/signature.ts b/typescript/solver/solvers/compactX/validation/signature.ts new file mode 100644 index 00000000..e581fec2 --- /dev/null +++ b/typescript/solver/solvers/compactX/validation/signature.ts @@ -0,0 +1,163 @@ +import { + compactSignatureToSignature, + keccak256, + parseCompactSignature, + recoverAddress, + serializeSignature, + toBytes, +} from "viem"; +import type { SupportedChainId } from "../config/constants.js"; +import type { TheCompactService, RegistrationStatus } from "../services/TheCompactService.js"; +import type { BroadcastRequest } from "../types.js"; + +// Chain-specific prefixes for signature verification +const CHAIN_PREFIXES = { + 1: "0x1901afbd5f3d34c216b31ba8b82d0b32ae91e4edea92dd5bbf4c1ad028f72364a211", // ethereum + 10: "0x1901ea25de9c16847077fe9d95916c29598dc64f4850ba02c5dbe7800d2e2ecb338e", // optimism + 8453: "0x1901a1324f3bfe91ee592367ae7552e9348145e65b410335d72e4507dcedeb41bf52", // base + 130: "0x190150e2b173e1ac2eac4e4995e45458f4cd549c256c423a041bf17d0c0a4a736d2c", // unichain +} as const; + +// Allocator address for signature verification +const ALLOCATOR_ADDRESS = "0x51044301738Ba2a27bd9332510565eBE9F03546b"; + +// The Compact typehash for registration checks +const COMPACT_REGISTRATION_TYPEHASH = + "0x27f09e0bb8ce2ae63380578af7af85055d3ada248c502e2378b85bc3d05ee0b0" as const; + +async function verifySignature( + claimHash: string, + signature: string, + expectedSigner: string, + chainPrefix: string +): Promise { + try { + // Ensure hex values have 0x prefix + const normalizedClaimHash = claimHash.startsWith("0x") + ? claimHash + : `0x${claimHash}`; + const normalizedPrefix = chainPrefix.startsWith("0x") + ? chainPrefix + : `0x${chainPrefix}`; + const normalizedSignature = signature.startsWith("0x") + ? signature + : `0x${signature}`; + + // Convert hex strings to bytes and concatenate + const prefixBytes = toBytes(normalizedPrefix); + const claimHashBytes = toBytes(normalizedClaimHash); + + // Concatenate bytes + const messageBytes = new Uint8Array( + prefixBytes.length + claimHashBytes.length + ); + messageBytes.set(prefixBytes); + messageBytes.set(claimHashBytes, prefixBytes.length); + + // Get the digest + const digest = keccak256(messageBytes); + + // Convert compact signature to full signature + const parsedCompactSig = parseCompactSignature( + normalizedSignature as `0x${string}` + ); + const fullSig = compactSignatureToSignature(parsedCompactSig); + const serializedSig = serializeSignature(fullSig); + + // Recover the signer address + const recoveredAddress = await recoverAddress({ + hash: digest, + signature: serializedSig, + }); + + // Compare recovered address with expected signer + return recoveredAddress.toLowerCase() === expectedSigner.toLowerCase(); + } catch (error) { + return false; + } +} + +export async function verifyBroadcastRequest( + request: BroadcastRequest, + theCompactService: TheCompactService +): Promise<{ + isValid: boolean; + isOnchainRegistration: boolean; + error?: string; +}> { + const chainId = Number.parseInt( + request.chainId.toString() + ) as SupportedChainId; + + // Get chain prefix based on chainId + const chainPrefix = CHAIN_PREFIXES[chainId]; + if (!chainPrefix) { + throw new Error(`Unsupported chain ID: ${chainId}`); + } + + // Get the claim hash from the request + const claimHash = request.claimHash; + if (!claimHash) { + throw new Error("Claim hash is required for signature verification"); + } + + // Try to verify sponsor signature first + let isSponsorValid = false; + let registrationStatus: RegistrationStatus | null = null; + let isOnchainRegistration = false; + let error: string | undefined; + + try { + if (request.sponsorSignature && request.sponsorSignature !== "0x") { + isSponsorValid = await verifySignature( + claimHash, + request.sponsorSignature, + request.compact.sponsor, + chainPrefix + ); + + if (!isSponsorValid) { + error = "Invalid sponsor signature provided"; + } + } else { + // Check registration status if no valid signature provided + try { + registrationStatus = await theCompactService.getRegistrationStatus( + chainId, + request.compact.sponsor as `0x${string}`, + claimHash as `0x${string}`, + COMPACT_REGISTRATION_TYPEHASH as `0x${string}` + ); + + if (registrationStatus.isActive) { + isSponsorValid = true; + isOnchainRegistration = true; + } else { + error = + "No sponsor signature provided (0x) and no active onchain registration found"; + } + } catch (err) { + error = "Failed to check onchain registration status"; + } + } + } catch (err) { + error = "Sponsor signature verification failed"; + } + + if (!isSponsorValid) { + return { isValid: false, isOnchainRegistration, error }; + } + + // Verify allocator signature + const isAllocatorValid = await verifySignature( + claimHash, + request.allocatorSignature, + ALLOCATOR_ADDRESS, + chainPrefix + ); + if (!isAllocatorValid) { + throw new Error("Invalid allocator signature"); + } + + return { isValid: true, isOnchainRegistration }; +} From 691d327f9b7a0fd6f9e142d88f9a28eefb10fd46 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Mon, 17 Mar 2025 11:56:25 +0100 Subject: [PATCH 13/41] refactor: rename CompactSchema to CompactMessageSchema --- typescript/solver/solvers/compactX/types.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/typescript/solver/solvers/compactX/types.ts b/typescript/solver/solvers/compactX/types.ts index f4d23ce8..572c04a0 100644 --- a/typescript/solver/solvers/compactX/types.ts +++ b/typescript/solver/solvers/compactX/types.ts @@ -1,7 +1,7 @@ import { z } from "zod"; -import { BaseMetadataSchema, BaseWebSocketSourceSchema } from "../types.js"; import { ParsedArgs } from "../BaseFiller.js"; +import { BaseMetadataSchema, BaseWebSocketSourceSchema } from "../types.js"; // Custom validators and constants const isHexString = (str: string) => /^0x[0-9a-fA-F]*$/.test(str); @@ -47,7 +47,7 @@ export const MandateSchema = z.object({ salt: hashSchema, }); -export const CompactSchema = z.object({ +export const CompactMessageSchema = z.object({ arbiter: addressSchema, sponsor: addressSchema, nonce: hashSchema, @@ -81,7 +81,7 @@ export const ContextSchema = z.object({ export const BroadcastRequestSchema = z.object({ chainId: numericOrHexSchema, - compact: CompactSchema, + compact: CompactMessageSchema, sponsorSignature: z .string() .refine( From 26c3e99c290887050c26b0c47ad70a532f20cd56 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Mon, 17 Mar 2025 13:10:11 +0100 Subject: [PATCH 14/41] refactor: replace viem with ethers equivalences --- .../solvers/compactX/validation/signature.ts | 28 ++++++------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/typescript/solver/solvers/compactX/validation/signature.ts b/typescript/solver/solvers/compactX/validation/signature.ts index e581fec2..1d3e4991 100644 --- a/typescript/solver/solvers/compactX/validation/signature.ts +++ b/typescript/solver/solvers/compactX/validation/signature.ts @@ -1,11 +1,5 @@ -import { - compactSignatureToSignature, - keccak256, - parseCompactSignature, - recoverAddress, - serializeSignature, - toBytes, -} from "viem"; +import ethers from "ethers"; + import type { SupportedChainId } from "../config/constants.js"; import type { TheCompactService, RegistrationStatus } from "../services/TheCompactService.js"; import type { BroadcastRequest } from "../types.js"; @@ -44,8 +38,8 @@ async function verifySignature( : `0x${signature}`; // Convert hex strings to bytes and concatenate - const prefixBytes = toBytes(normalizedPrefix); - const claimHashBytes = toBytes(normalizedClaimHash); + const prefixBytes = ethers.utils.arrayify(normalizedPrefix); + const claimHashBytes = ethers.utils.arrayify(normalizedClaimHash); // Concatenate bytes const messageBytes = new Uint8Array( @@ -55,20 +49,14 @@ async function verifySignature( messageBytes.set(claimHashBytes, prefixBytes.length); // Get the digest - const digest = keccak256(messageBytes); + const digest = ethers.utils.keccak256(messageBytes); // Convert compact signature to full signature - const parsedCompactSig = parseCompactSignature( - normalizedSignature as `0x${string}` - ); - const fullSig = compactSignatureToSignature(parsedCompactSig); - const serializedSig = serializeSignature(fullSig); + const parsedCompactSig = ethers.utils.splitSignature(normalizedSignature); + const serializedSig = ethers.utils.joinSignature(parsedCompactSig); // Recover the signer address - const recoveredAddress = await recoverAddress({ - hash: digest, - signature: serializedSig, - }); + const recoveredAddress = ethers.utils.recoverAddress(digest, serializedSig); // Compare recovered address with expected signer return recoveredAddress.toLowerCase() === expectedSigner.toLowerCase(); From 38aae9ce46c00a41a5e5545fe7cae0fd1b289950 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Mon, 17 Mar 2025 14:46:54 +0100 Subject: [PATCH 15/41] fix: update signature to latest changes Co-Authored-By: Lisandro Corbalan --- .../solvers/compactX/config/constants.ts | 16 ++ .../solvers/compactX/validation/signature.ts | 146 ++++++++++++++++-- 2 files changed, 145 insertions(+), 17 deletions(-) diff --git a/typescript/solver/solvers/compactX/config/constants.ts b/typescript/solver/solvers/compactX/config/constants.ts index 3e112c4d..564fb42c 100644 --- a/typescript/solver/solvers/compactX/config/constants.ts +++ b/typescript/solver/solvers/compactX/config/constants.ts @@ -17,3 +17,19 @@ export const SUPPORTED_ARBITER_ADDRESSES: Record = { } as const; export const SUPPORTED_TRIBUNAL_ADDRESSES = SUPPORTED_ARBITER_ADDRESSES; + +/** + * Configuration for allocators used in signature verification + */ +export const ALLOCATORS = { + AUTOCATOR: { + id: "1730150456036417775412616585", + signingAddress: "0x4491fB95F2d51416688D4862f0cAeFE5281Fa3d9", // used to verify signatures from server + url: "https://autocator.org", + }, + SMALLOCATOR: { + id: "1223867955028248789127899354", + signingAddress: "0x51044301738Ba2a27bd9332510565eBE9F03546b", + url: "https://smallocator.xyz", + }, +} as const; diff --git a/typescript/solver/solvers/compactX/validation/signature.ts b/typescript/solver/solvers/compactX/validation/signature.ts index 1d3e4991..b8e59aca 100644 --- a/typescript/solver/solvers/compactX/validation/signature.ts +++ b/typescript/solver/solvers/compactX/validation/signature.ts @@ -1,8 +1,12 @@ import ethers from "ethers"; -import type { SupportedChainId } from "../config/constants.js"; -import type { TheCompactService, RegistrationStatus } from "../services/TheCompactService.js"; +import { ALLOCATORS, type SupportedChainId } from "../config/constants.js"; +import type { + RegistrationStatus, + TheCompactService, +} from "../services/TheCompactService.js"; import type { BroadcastRequest } from "../types.js"; +import { log } from "../utils.js"; // Chain-specific prefixes for signature verification const CHAIN_PREFIXES = { @@ -12,8 +16,19 @@ const CHAIN_PREFIXES = { 130: "0x190150e2b173e1ac2eac4e4995e45458f4cd549c256c423a041bf17d0c0a4a736d2c", // unichain } as const; -// Allocator address for signature verification -const ALLOCATOR_ADDRESS = "0x51044301738Ba2a27bd9332510565eBE9F03546b"; +// Extract allocator ID from compact.id +const extractAllocatorId = (compactId: string): string => { + const compactIdBigInt = BigInt(compactId); + + // Shift right by 160 bits to remove the input token part + const shiftedBigInt = compactIdBigInt >> 160n; + + // Then mask to get only the allocator ID bits (92 bits) + const mask = (1n << 92n) - 1n; + const allocatorIdBigInt = shiftedBigInt & mask; + + return allocatorIdBigInt.toString(); +}; // The Compact typehash for registration checks const COMPACT_REGISTRATION_TYPEHASH = @@ -23,7 +38,7 @@ async function verifySignature( claimHash: string, signature: string, expectedSigner: string, - chainPrefix: string + chainPrefix: string, ): Promise { try { // Ensure hex values have 0x prefix @@ -37,29 +52,45 @@ async function verifySignature( ? signature : `0x${signature}`; + log.debug({ + msg: "Verifying signature", + normalizedClaimHash, + normalizedPrefix, + normalizedSignature, + expectedSigner, + }); + // Convert hex strings to bytes and concatenate const prefixBytes = ethers.utils.arrayify(normalizedPrefix); const claimHashBytes = ethers.utils.arrayify(normalizedClaimHash); // Concatenate bytes const messageBytes = new Uint8Array( - prefixBytes.length + claimHashBytes.length + prefixBytes.length + claimHashBytes.length, ); messageBytes.set(prefixBytes); messageBytes.set(claimHashBytes, prefixBytes.length); // Get the digest const digest = ethers.utils.keccak256(messageBytes); + log.debug({ msg: "Generated digest", digest }); // Convert compact signature to full signature const parsedCompactSig = ethers.utils.splitSignature(normalizedSignature); const serializedSig = ethers.utils.joinSignature(parsedCompactSig); + log.debug({ msg: "Parsed signature", serializedSig }); // Recover the signer address const recoveredAddress = ethers.utils.recoverAddress(digest, serializedSig); + const match = + recoveredAddress.toLowerCase() === expectedSigner.toLowerCase(); + + log.debug({ msg: "Recovered address", recoveredAddress }); + log.debug({ msg: "Expected signer", expectedSigner }); + log.debug({ msg: "Match?", match }); // Compare recovered address with expected signer - return recoveredAddress.toLowerCase() === expectedSigner.toLowerCase(); + return match; } catch (error) { return false; } @@ -67,16 +98,29 @@ async function verifySignature( export async function verifyBroadcastRequest( request: BroadcastRequest, - theCompactService: TheCompactService + theCompactService: TheCompactService, ): Promise<{ isValid: boolean; isOnchainRegistration: boolean; error?: string; }> { const chainId = Number.parseInt( - request.chainId.toString() + request.chainId.toString(), ) as SupportedChainId; + log.info({ + msg: "Verifying broadcast request", + chainId, + sponsor: request.compact.sponsor, + arbiter: request.compact.arbiter, + nonce: request.compact.nonce, + expires: request.compact.expires, + id: request.compact.id, + amount: request.compact.amount, + sponsorSignature: request.sponsorSignature, + allocatorSignature: request.allocatorSignature, + }); + // Get chain prefix based on chainId const chainPrefix = CHAIN_PREFIXES[chainId]; if (!chainPrefix) { @@ -91,17 +135,25 @@ export async function verifyBroadcastRequest( // Try to verify sponsor signature first let isSponsorValid = false; - let registrationStatus: RegistrationStatus | null = null; + let registrationStatus: RegistrationStatus | null = null; // TODO: ???? types let isOnchainRegistration = false; let error: string | undefined; try { + log.debug({ + msg: "Attempting to verify sponsor signature", + claimHash, + sponsorSignature: request.sponsorSignature, + sponsor: request.compact.sponsor, + chainPrefix, + }); + if (request.sponsorSignature && request.sponsorSignature !== "0x") { isSponsorValid = await verifySignature( claimHash, request.sponsorSignature, request.compact.sponsor, - chainPrefix + chainPrefix, ); if (!isSponsorValid) { @@ -109,14 +161,24 @@ export async function verifyBroadcastRequest( } } else { // Check registration status if no valid signature provided + log.debug( + "No sponsor signature provided, checking onchain registration...", + ); try { registrationStatus = await theCompactService.getRegistrationStatus( chainId, - request.compact.sponsor as `0x${string}`, - claimHash as `0x${string}`, - COMPACT_REGISTRATION_TYPEHASH as `0x${string}` + request.compact.sponsor, + claimHash, + COMPACT_REGISTRATION_TYPEHASH, ); + log.debug({ + msg: "Registration status check result", + isActive: registrationStatus.isActive, + expires: registrationStatus.expires?.toString(), + compactExpires: request.compact.expires, + }); + if (registrationStatus.isActive) { isSponsorValid = true; isOnchainRegistration = true; @@ -125,26 +187,76 @@ export async function verifyBroadcastRequest( "No sponsor signature provided (0x) and no active onchain registration found"; } } catch (err) { + log.error({ + msg: "Registration status check failed", + error: err, + chainId, + sponsor: request.compact.sponsor, + claimHash, + }); error = "Failed to check onchain registration status"; } } } catch (err) { error = "Sponsor signature verification failed"; + log.error({ msg: error, err }); } if (!isSponsorValid) { + log.error({ + msg: "Verification failed: Invalid sponsor signature and no active registration found", + sponsorSignaturePresent: !!request.sponsorSignature, + registrationStatus: registrationStatus + ? { + isActive: registrationStatus.isActive, + expires: registrationStatus.expires?.toString(), + } + : null, + }); return { isValid: false, isOnchainRegistration, error }; } + // Extract allocator ID from compact.id + const allocatorId = extractAllocatorId(request.compact.id); + log.debug({ msg: "Extracted allocator ID", allocatorId }); + + // Find the matching allocator + let allocatorAddress: string | undefined; + for (const [name, allocator] of Object.entries(ALLOCATORS)) { + if (allocator.id === allocatorId) { + allocatorAddress = allocator.signingAddress; + log.debug({ msg: "Found matching allocator", name, allocatorAddress }); + break; + } + } + + if (!allocatorAddress) { + const error = `No allocator found for ID: ${allocatorId}`; + log.error(error); + + return { + isValid: false, + isOnchainRegistration, + error: error, + }; + } + // Verify allocator signature const isAllocatorValid = await verifySignature( claimHash, request.allocatorSignature, - ALLOCATOR_ADDRESS, - chainPrefix + allocatorAddress, + chainPrefix, ); if (!isAllocatorValid) { - throw new Error("Invalid allocator signature"); + const error = "Invalid allocator signature"; + log.error(error); + + return { + isValid: false, + isOnchainRegistration, + error, + }; } return { isValid: true, isOnchainRegistration }; From efa333aa9902028059459a84b6292b6f856163fa Mon Sep 17 00:00:00 2001 From: fernandomg Date: Mon, 17 Mar 2025 14:52:29 +0100 Subject: [PATCH 16/41] chore: prettier Co-Authored-By: Lisandro Corbalan --- .../solver/solvers/WebSocketListener.ts | 2 +- .../solvers/compactX/config/metadata.ts | 3 +- typescript/solver/solvers/compactX/filler.ts | 91 +++++++++++-------- .../compactX/services/TheCompactService.ts | 48 +++++----- typescript/solver/solvers/compactX/utils.ts | 12 +-- 5 files changed, 88 insertions(+), 68 deletions(-) diff --git a/typescript/solver/solvers/WebSocketListener.ts b/typescript/solver/solvers/WebSocketListener.ts index 89e0e6fe..62f3e16a 100644 --- a/typescript/solver/solvers/WebSocketListener.ts +++ b/typescript/solver/solvers/WebSocketListener.ts @@ -180,7 +180,7 @@ export abstract class WebSocketListener { return () => { this.cleanupPingInterval(); this.ws?.close(); - } + }; }; } diff --git a/typescript/solver/solvers/compactX/config/metadata.ts b/typescript/solver/solvers/compactX/config/metadata.ts index 3cbb76b5..4f90af50 100644 --- a/typescript/solver/solvers/compactX/config/metadata.ts +++ b/typescript/solver/solvers/compactX/config/metadata.ts @@ -5,7 +5,8 @@ const metadata: CompactXMetadata = { intentSources: { webSockets: [ { - url: "ws://localhost:3000/ws", + // url: "ws://localhost:3000/ws", + url: "wss://compactx-disseminator.com/ws", }, ], }, diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index 7a5da8ce..67a6ed38 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -4,9 +4,19 @@ import { type Result } from "@hyperlane-xyz/utils"; import { BaseFiller } from "../BaseFiller.js"; import { BuildRules, RulesMap } from "../types.js"; import { allowBlockLists, metadata } from "./config/index.js"; -import { type CompactXMetadata, type CompactXParsedArgs, type BroadcastRequest, BroadcastRequestSchema } from "./types.js"; +import { + type CompactXMetadata, + type CompactXParsedArgs, + type BroadcastRequest, + BroadcastRequestSchema, +} from "./types.js"; import { log, deriveClaimHash } from "./utils.js"; -import { SupportedChainId, SUPPORTED_CHAINS, SUPPORTED_ARBITER_ADDRESSES, SUPPORTED_TRIBUNAL_ADDRESSES } from "./config/constants.js" +import { + SupportedChainId, + SUPPORTED_CHAINS, + SUPPORTED_ARBITER_ADDRESSES, + SUPPORTED_TRIBUNAL_ADDRESSES, +} from "./config/constants.js"; import { verifyBroadcastRequest } from "./validation/signature.js"; import { TheCompactService } from "./services/TheCompactService.js"; @@ -60,23 +70,27 @@ export class CompactXFiller extends BaseFiller< }); const chainId = Number.parseInt( - data.chainId.toString() + data.chainId.toString(), ) as SupportedChainId; // Derive and log claim hash const claimHash = deriveClaimHash(chainId, data.compact); this.log.info( - `Processing fill request for chainId ${chainId}, claimHash: ${claimHash}` + `Processing fill request for chainId ${chainId}, claimHash: ${claimHash}`, ); // Set the claim hash before verification data.claimHash = claimHash; - const theCompactService = new TheCompactService(this.multiProvider, this.log); + const theCompactService = new TheCompactService( + this.multiProvider, + this.log, + ); // Verify signatures this.log.info("Verifying signatures..."); - const { isValid, isOnchainRegistration, error } = await verifyBroadcastRequest(data, theCompactService); + const { isValid, isOnchainRegistration, error } = + await verifyBroadcastRequest(data, theCompactService); if (!isValid) { throw new Error(error); @@ -84,7 +98,7 @@ export class CompactXFiller extends BaseFiller< // Log registration status this.log.info( - `Signature verification successful, registration status: ${isOnchainRegistration ? "onchain" : "offchain"}` + `Signature verification successful, registration status: ${isOnchainRegistration ? "onchain" : "offchain"}`, ); if (!SUPPORTED_CHAINS.includes(chainId)) { @@ -100,21 +114,25 @@ export class CompactXFiller extends BaseFiller< BigInt(data.compact.expires) <= currentTimestamp + COMPACT_EXPIRATION_BUFFER ) { - throw new Error(`Compact must have at least ${COMPACT_EXPIRATION_BUFFER} seconds until expiration`); + throw new Error( + `Compact must have at least ${COMPACT_EXPIRATION_BUFFER} seconds until expiration`, + ); } if ( BigInt(data.compact.mandate.expires) <= currentTimestamp + MANDATE_EXPIRATION_BUFFER ) { - throw new Error(`Mandate must have at least ${MANDATE_EXPIRATION_BUFFER} seconds until expiration`); + throw new Error( + `Mandate must have at least ${MANDATE_EXPIRATION_BUFFER} seconds until expiration`, + ); } // Check if nonce has already been consumed const nonceConsumed = await theCompactService.hasConsumedAllocatorNonce( chainId, BigInt(data.compact.nonce), - data.compact.arbiter as `0x${string}` + data.compact.arbiter as `0x${string}`, ); if (nonceConsumed) { @@ -123,7 +141,7 @@ export class CompactXFiller extends BaseFiller< // Process the broadcast transaction const mandateChainId = Number( - data.compact.mandate.chainId + data.compact.mandate.chainId, ) as SupportedChainId; // Validate arbiter and tribunal addresses @@ -146,37 +164,36 @@ export class CompactXFiller extends BaseFiller< wsManager.broadcastFillRequest( JSON.stringify(request), false, - "Unsupported tribunal address" + "Unsupported tribunal address", ); return res.status(400).json({ error: "Unsupported tribunal address" }); } - // const result = await processBroadcastTransaction( - // { ...request, chainId: Number(request.chainId) }, - // mandateChainId, - // priceService, - // tokenBalanceService, - // publicClients[mandateChainId], - // walletClients[mandateChainId], - // account.address - // ); - - // // Handle the result - // wsManager.broadcastFillRequest( - // JSON.stringify(request), - // result.success, - // result.success ? undefined : result.reason - // ); - - // return res.status(result.success ? 200 : 400).json({ - // success: result.success, - // ...(result.success - // ? { transactionHash: result.hash } - // : { reason: result.reason }), - // details: result.details, - // }); + // const result = await processBroadcastTransaction( + // { ...request, chainId: Number(request.chainId) }, + // mandateChainId, + // priceService, + // tokenBalanceService, + // publicClients[mandateChainId], + // walletClients[mandateChainId], + // account.address + // ); + + // // Handle the result + // wsManager.broadcastFillRequest( + // JSON.stringify(request), + // result.success, + // result.success ? undefined : result.reason + // ); + + // return res.status(result.success ? 200 : 400).json({ + // success: result.success, + // ...(result.success + // ? { transactionHash: result.hash } + // : { reason: result.reason }), + // details: result.details, + // }); } - } const enoughBalanceOnDestination: CompactXRule = async ( diff --git a/typescript/solver/solvers/compactX/services/TheCompactService.ts b/typescript/solver/solvers/compactX/services/TheCompactService.ts index 992968e3..2d917f97 100644 --- a/typescript/solver/solvers/compactX/services/TheCompactService.ts +++ b/typescript/solver/solvers/compactX/services/TheCompactService.ts @@ -1,9 +1,3 @@ -import { - type Address, - type PublicClient, - type WalletClient, - encodeFunctionData, -} from "viem"; import { CHAIN_PRIORITY_FEES, type SupportedChainId, @@ -39,46 +33,55 @@ export interface ForcedWithdrawalInfo { export class TheCompactService { constructor( readonly multiProvider: MultiProvider, - readonly log: Logger - ) { - } + readonly log: Logger, + ) {} async hasConsumedAllocatorNonce( chainId: SupportedChainId, nonce: bigint, - allocator: `0x${string}` + allocator: `0x${string}`, ): Promise { const provider = this.multiProvider.getProvider(chainId); if (!provider) { throw new Error(`No client found for chain ${chainId}`); } - const theCompact = TheCompact__factory.connect(THE_COMPACT_ADDRESS, provider); - const result = await theCompact.hasConsumedAllocatorNonce(nonce, allocator) + const theCompact = TheCompact__factory.connect( + THE_COMPACT_ADDRESS, + provider, + ); + const result = await theCompact.hasConsumedAllocatorNonce(nonce, allocator); return result as boolean; } async getRegistrationStatus( chainId: SupportedChainId, - sponsor: `0x${string}`, - claimHash: `0x${string}`, - typehash: `0x${string}` + sponsor: string, + claimHash: string, + typehash: string, ): Promise { const provider = this.multiProvider.getProvider(chainId); if (!provider) { throw new Error(`No client found for chain ${chainId}`); } - const theCompact = TheCompact__factory.connect(THE_COMPACT_ADDRESS, provider); + const theCompact = TheCompact__factory.connect( + THE_COMPACT_ADDRESS, + provider, + ); try { this.log.debug( - `Fetching registration status for sponsor ${sponsor}, claimHash ${claimHash}, and typehash ${typehash} on chain ${chainId}` + `Fetching registration status for sponsor ${sponsor}, claimHash ${claimHash}, and typehash ${typehash} on chain ${chainId}`, ); // Use explicit type assertion for the contract call result - const {isActive, expires} = await theCompact.getRegistrationStatus(sponsor, claimHash, typehash) + const { isActive, expires } = await theCompact.getRegistrationStatus( + sponsor, + claimHash, + typehash, + ); this.log.debug(`Result: ${isActive}, ${expires}`); @@ -111,16 +114,19 @@ export class TheCompactService { async getForcedWithdrawalStatus( chainId: SupportedChainId, account: Address, - lockId: bigint + lockId: bigint, ): Promise { const provider = this.multiProvider.getProvider(chainId); if (!provider) { throw new Error(`No client found for chain ${chainId}`); } - const theCompact = TheCompact__factory.connect(THE_COMPACT_ADDRESS, provider); + const theCompact = TheCompact__factory.connect( + THE_COMPACT_ADDRESS, + provider, + ); - const result = await theCompact.getForcedWithdrawalStatus(account, lockId) + const result = await theCompact.getForcedWithdrawalStatus(account, lockId); const [status, availableAt] = result as [number, BigNumber]; diff --git a/typescript/solver/solvers/compactX/utils.ts b/typescript/solver/solvers/compactX/utils.ts index 4c6a0ef3..d5fbc396 100644 --- a/typescript/solver/solvers/compactX/utils.ts +++ b/typescript/solver/solvers/compactX/utils.ts @@ -1,7 +1,7 @@ import { createLogger } from "../../logger.js"; import { metadata } from "./config/index.js"; -import { keccak256} from "@ethersproject/keccak256" +import { keccak256 } from "@ethersproject/keccak256"; import { arrayify } from "@ethersproject/bytes"; import { AbiCoder } from "@ethersproject/abi"; import { toUtf8Bytes } from "@ethersproject/strings"; @@ -11,10 +11,7 @@ export const log = createLogger(metadata.protocolName); /** * Derives the claim hash using EIP-712 typed data hashing */ -export function deriveClaimHash( - chainId: number, - compact: Compact -) { +export function deriveClaimHash(chainId: number, compact: Compact) { // Validate mandate parameters if (!compact.mandate.chainId) throw new Error("Mandate chainId is required"); if (!compact.mandate.tribunal) @@ -49,7 +46,6 @@ export function deriveClaimHash( "Mandate(uint256 chainId,address tribunal,address recipient,uint256 expires,address token,uint256 minimumAmount,uint256 baselinePriorityFee,uint256 scalingFactor,bytes32 salt)"; const MANDATE_TYPEHASH = keccak256(toUtf8Bytes(MANDATE_TYPESTRING)); - const abiCoder = new AbiCoder(); // Now encode all the mandate parameters with the mandate typehash const encodedMandateData = abiCoder.encode( @@ -76,7 +72,7 @@ export function deriveClaimHash( BigInt(compact.mandate.baselinePriorityFee), BigInt(compact.mandate.scalingFactor), compact.mandate.salt as `0x${string}`, - ] + ], ); // derive the "witness hash" using the mandate data @@ -103,7 +99,7 @@ export function deriveClaimHash( BigInt(compact.id), BigInt(compact.amount), witnessHash, - ] + ], ); // Return the final hash From e239f75f50009ffd7786886e6cabf2b252915e51 Mon Sep 17 00:00:00 2001 From: Lisandro Corbalan Date: Mon, 17 Mar 2025 14:05:02 -0300 Subject: [PATCH 17/41] wip: fill logic --- .../solvers/compactX/config/constants.ts | 111 +++++ .../solvers/compactX/contracts/Tribunal.json | 51 +++ typescript/solver/solvers/compactX/filler.ts | 412 +++++++++++++++++- .../compactX/services/TheCompactService.ts | 1 + typescript/solver/solvers/compactX/types.ts | 13 + 5 files changed, 582 insertions(+), 6 deletions(-) create mode 100644 typescript/solver/solvers/compactX/contracts/Tribunal.json diff --git a/typescript/solver/solvers/compactX/config/constants.ts b/typescript/solver/solvers/compactX/config/constants.ts index 564fb42c..126ee6ad 100644 --- a/typescript/solver/solvers/compactX/config/constants.ts +++ b/typescript/solver/solvers/compactX/config/constants.ts @@ -33,3 +33,114 @@ export const ALLOCATORS = { url: "https://smallocator.xyz", }, } as const; + +export const CHAIN_CONFIG: Record = { + 1: { + name: "Mainnet", + nativeToken: "ETH", + coingeckoId: "ethereum", + blockExplorer: "https://etherscan.io", + rpcEnvKey: "RPC_URL_MAINNET", + tokens: { + ETH: { + address: "0x0000000000000000000000000000000000000000", + decimals: 18, + symbol: "ETH", + coingeckoId: "ethereum", + }, + WETH: { + address: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + decimals: 18, + symbol: "WETH", + coingeckoId: "weth", + }, + USDC: { + address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + decimals: 6, + symbol: "USDC", + coingeckoId: "usd-coin", + }, + }, + }, + 10: { + name: "Optimism", + nativeToken: "ETH", + coingeckoId: "ethereum", + blockExplorer: "https://optimistic.etherscan.io", + rpcEnvKey: "RPC_URL_OPTIMISM", + tokens: { + ETH: { + address: "0x0000000000000000000000000000000000000000", + decimals: 18, + symbol: "ETH", + coingeckoId: "ethereum", + }, + WETH: { + address: "0x4200000000000000000000000000000000000006", + decimals: 18, + symbol: "WETH", + coingeckoId: "weth", + }, + USDC: { + address: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", + decimals: 6, + symbol: "USDC", + coingeckoId: "usd-coin", + }, + }, + }, + 130: { + name: "Unichain", + nativeToken: "ETH", + coingeckoId: "unichain", + blockExplorer: "https://uniscan.xyz", + rpcEnvKey: "RPC_URL_UNICHAIN", + tokens: { + ETH: { + address: "0x0000000000000000000000000000000000000000", + decimals: 18, + symbol: "ETH", + coingeckoId: "ethereum", + }, + WETH: { + address: "0x4200000000000000000000000000000000000006", + decimals: 18, + symbol: "WETH", + coingeckoId: "weth", + }, + USDC: { + address: "0x078d782b760474a361dda0af3839290b0ef57ad6", + decimals: 6, + symbol: "USDC", + coingeckoId: "usd-coin", + }, + }, + }, + 8453: { + name: "Base", + nativeToken: "ETH", + coingeckoId: "ethereum", + blockExplorer: "https://basescan.org", + rpcEnvKey: "RPC_URL_BASE", + tokens: { + ETH: { + address: "0x0000000000000000000000000000000000000000", + decimals: 18, + symbol: "ETH", + coingeckoId: "ethereum", + }, + WETH: { + address: "0x4200000000000000000000000000000000000006", + decimals: 18, + symbol: "WETH", + coingeckoId: "weth", + }, + USDC: { + address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + decimals: 6, + symbol: "USDC", + coingeckoId: "usd-coin", + }, + }, + }, +} as const; diff --git a/typescript/solver/solvers/compactX/contracts/Tribunal.json b/typescript/solver/solvers/compactX/contracts/Tribunal.json new file mode 100644 index 00000000..fa714fe6 --- /dev/null +++ b/typescript/solver/solvers/compactX/contracts/Tribunal.json @@ -0,0 +1,51 @@ +{ + "abi": [ + { + "name": "fill", + "type": "function", + "stateMutability": "payable", + "inputs": [ + { + "name": "claim", + "type": "tuple", + "components": [ + { "name": "chainId", "type": "uint256" }, + { + "name": "compact", + "type": "tuple", + "components": [ + { "name": "arbiter", "type": "address" }, + { "name": "sponsor", "type": "address" }, + { "name": "nonce", "type": "uint256" }, + { "name": "expires", "type": "uint256" }, + { "name": "id", "type": "uint256" }, + { "name": "amount", "type": "uint256" } + ] + }, + { "name": "sponsorSignature", "type": "bytes" }, + { "name": "allocatorSignature", "type": "bytes" } + ] + }, + { + "name": "mandate", + "type": "tuple", + "components": [ + { "name": "recipient", "type": "address" }, + { "name": "expires", "type": "uint256" }, + { "name": "token", "type": "address" }, + { "name": "minimumAmount", "type": "uint256" }, + { "name": "baselinePriorityFee", "type": "uint256" }, + { "name": "scalingFactor", "type": "uint256" }, + { "name": "salt", "type": "bytes32" } + ] + }, + { "name": "claimant", "type": "address" } + ], + "outputs": [ + { "name": "mandateHash", "type": "bytes32" }, + { "name": "settlementAmount", "type": "uint256" }, + { "name": "claimAmount", "type": "uint256" } + ] + } + ] +} diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index 67a6ed38..3e78cc0c 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -1,5 +1,6 @@ import { type MultiProvider } from "@hyperlane-xyz/sdk"; import { type Result } from "@hyperlane-xyz/utils"; +import { AddressZero } from "@ethersproject/constants"; import { BaseFiller } from "../BaseFiller.js"; import { BuildRules, RulesMap } from "../types.js"; @@ -9,6 +10,7 @@ import { type CompactXParsedArgs, type BroadcastRequest, BroadcastRequestSchema, + ProcessedBroadcastResult, } from "./types.js"; import { log, deriveClaimHash } from "./utils.js"; import { @@ -16,9 +18,13 @@ import { SUPPORTED_CHAINS, SUPPORTED_ARBITER_ADDRESSES, SUPPORTED_TRIBUNAL_ADDRESSES, + CHAIN_PRIORITY_FEES, + CHAIN_CONFIG, } from "./config/constants.js"; import { verifyBroadcastRequest } from "./validation/signature.js"; import { TheCompactService } from "./services/TheCompactService.js"; +import { retrieveTokenBalance } from "../utils.js"; +import { Tribunal__factory } from "../../typechain/factories/compactX/contracts/Tribunal__factory.js"; export type CompactXRule = CompactXFiller["rules"][number]; @@ -161,12 +167,7 @@ export class CompactXFiller extends BaseFiller< tribunalAddress !== SUPPORTED_TRIBUNAL_ADDRESSES[mandateChainId].toLowerCase() ) { - wsManager.broadcastFillRequest( - JSON.stringify(request), - false, - "Unsupported tribunal address", - ); - return res.status(400).json({ error: "Unsupported tribunal address" }); + throw new Error("Unsupported tribunal address"); } // const result = await processBroadcastTransaction( @@ -194,6 +195,405 @@ export class CompactXFiller extends BaseFiller< // details: result.details, // }); } + + protected async processBroadcastTransaction( + request: BroadcastRequest & { chainId: number }, + chainId: SupportedChainId, + address: `0x${string}` + ): Promise { + // Get the chain object and config for the mandate's chain + const mandateChainId = Number( + request.compact.mandate.chainId + ) as SupportedChainId; + const mandateChainConfig = CHAIN_CONFIG[mandateChainId]; + this.log.debug(`Evaluating fill against chainId ${mandateChainId}`); + + // Use chain from public client + // const chain = publicClient.chain; + const provider = this.multiProvider.getProvider(chainId); + const fillerAddress = await this.multiProvider.getSignerAddress(chainId); + + // Get current ETH price for the chain from memory + // const ethPrice = priceService.getPrice(chainId); + // logger.info(`Current ETH price on chain ${chainId}: $${ethPrice}`); + + // Extract the dispensation amount in USD from the request and add 25% buffer + const dispensationUSD = Number.parseFloat( + request.context.dispensationUSD.replace("$", "") + ); + const bufferedDispensation = + (BigInt(request.context.dispensation) * 125n) / 100n; + + // Calculate simulation values + const minimumAmount = BigInt(request.compact.mandate.minimumAmount); + const simulationSettlement = (minimumAmount * 101n) / 100n; + const baselinePriorityFee = BigInt( + request.compact.mandate.baselinePriorityFee + ); + const scalingFactor = BigInt(request.compact.mandate.scalingFactor); + + // Get cached balances for the mandate chain + // const cachedBalances = tokenBalanceService.getBalances(chainId); + // if (!cachedBalances) { + // return { + // success: false, + // reason: "Could not get cached balances for chain", + // details: { + // dispensationUSD, + // }, + // }; + // } + + // Calculate settlement amount based on mandate token (ETH/WETH check) + const mandateTokenAddress = + request.compact.mandate.token.toLowerCase() as `0x${string}`; + const isSettlementTokenETHorWETH = + mandateTokenAddress === mandateChainConfig.tokens.ETH.address.toLowerCase() || + mandateTokenAddress === mandateChainConfig.tokens.WETH.address.toLowerCase(); + + if ( + mandateTokenAddress !== mandateChainConfig.tokens.ETH.address.toLowerCase() && + mandateTokenAddress !== mandateChainConfig.tokens.WETH.address.toLowerCase() && + mandateTokenAddress !== mandateChainConfig.tokens.USDC.address.toLowerCase() + ) { + return { + success: false, + reason: "Unsupported mandate token", + details: { + dispensationUSD, + }, + }; + } + + // Get the relevant token balance based on mandate token + const relevantTokenBalance = await retrieveTokenBalance( + mandateTokenAddress, + fillerAddress, + provider, + ); + + + // Check if we have sufficient token balance for minimum amount + if (relevantTokenBalance.lt(minimumAmount)) { + return { + success: false, + reason: "Token balance is less than minimum required settlement amount", + details: { + dispensationUSD, + }, + }; + } + + // Check if we have sufficient token balance for simulation settlement + if (relevantTokenBalance.lt(simulationSettlement)) { + return { + success: false, + reason: "Token balance is less than simulation settlement amount", + details: { + dispensationUSD, + }, + }; + } + + // Calculate simulation priority fee + const simulationPriorityFee = CHAIN_PRIORITY_FEES[chainId]; + + // Calculate simulation value + const simulationValue = + request.compact.mandate.token === + "0x0000000000000000000000000000000000000000" + ? simulationSettlement + bufferedDispensation + : bufferedDispensation; + + + const ethBalance = await retrieveTokenBalance( + AddressZero, + fillerAddress, + provider, + ); + // Check if we have sufficient ETH for simulation value + if (ethBalance.(simulationValue)) { + return { + success: false, + reason: "ETH balance is less than simulation value", + details: { + dispensationUSD, + }, + }; + } + + const tribunal = Tribunal__factory.connect( + request.compact.mandate.tribunal, + this.multiProvider.getSigner(chainId), + ); + + // Encode simulation data with proper ABI + const data = tribunal.interface.encodeFunctionData("fill", [ + { + chainId: BigInt(request.chainId), + compact: { + arbiter: request.compact.arbiter as `0x${string}`, + sponsor: request.compact.sponsor as `0x${string}`, + nonce: BigInt(request.compact.nonce), + expires: BigInt(request.compact.expires), + id: BigInt(request.compact.id), + amount: BigInt(request.compact.amount), + }, + sponsorSignature: (!request.sponsorSignature || + request.sponsorSignature === "0x" + ? `0x${"0".repeat(128)}` + : request.sponsorSignature) as `0x${string}`, + allocatorSignature: request.allocatorSignature as `0x${string}`, + }, + { + recipient: request.compact.mandate.recipient as `0x${string}`, + expires: BigInt(request.compact.mandate.expires), + token: request.compact.mandate.token as `0x${string}`, + minimumAmount: BigInt(request.compact.mandate.minimumAmount), + baselinePriorityFee: BigInt( + request.compact.mandate.baselinePriorityFee + ), + scalingFactor: BigInt(request.compact.mandate.scalingFactor), + salt: request.compact.mandate.salt as `0x${string}`, + }, + address, + ]) + + // // Encode simulation data with proper ABI + // const data = encodeFunctionData({ + // functionName: "fill", + // args: [ + // { + // chainId: BigInt(request.chainId), + // compact: { + // arbiter: request.compact.arbiter as `0x${string}`, + // sponsor: request.compact.sponsor as `0x${string}`, + // nonce: BigInt(request.compact.nonce), + // expires: BigInt(request.compact.expires), + // id: BigInt(request.compact.id), + // amount: BigInt(request.compact.amount), + // }, + // sponsorSignature: (!request.sponsorSignature || + // request.sponsorSignature === "0x" + // ? `0x${"0".repeat(128)}` + // : request.sponsorSignature) as `0x${string}`, + // allocatorSignature: request.allocatorSignature as `0x${string}`, + // }, + // { + // recipient: request.compact.mandate.recipient as `0x${string}`, + // expires: BigInt(request.compact.mandate.expires), + // token: request.compact.mandate.token as `0x${string}`, + // minimumAmount: BigInt(request.compact.mandate.minimumAmount), + // baselinePriorityFee: BigInt( + // request.compact.mandate.baselinePriorityFee + // ), + // scalingFactor: BigInt(request.compact.mandate.scalingFactor), + // salt: request.compact.mandate.salt as `0x${string}`, + // }, + // address, + // ], + // }); + + // Get current base fee from latest block using mandate chain + const block = await provider.getBlock('latest'); + const baseFee = BigInt(block.baseFeePerGas?.toString() || 0); + if (!baseFee) { + return { + success: false, + reason: "Could not get base fee from latest block", + details: { + dispensationUSD, + }, + }; + } + + // Estimate gas using simulation values and add 25% buffer + this.log.debug("Performing initial simulation to get gas estimate"); + const estimatedGas = await provider.estimateGas({ + to: request.compact.mandate.tribunal as `0x${string}`, + value: simulationValue, + data, + maxFeePerGas: simulationPriorityFee + (baseFee * 120n) / 100n, + maxPriorityFeePerGas: simulationPriorityFee, + account: address, + }); + + const gasWithBuffer = (estimatedGas * 125n) / 100n; + logger.info( + `Got gas estimate: ${estimatedGas} (${gasWithBuffer} with buffer)` + ); + + // Calculate max fee and total gas cost + const maxFeePerGas = simulationPriorityFee + (baseFee * 120n) / 100n; // Base fee + 20% buffer + const totalGasCost = maxFeePerGas * gasWithBuffer; + const gasCostEth = Number(formatEther(totalGasCost)); + const gasCostUSD = gasCostEth * ethPrice; + + // Calculate execution costs + const executionCostWei = totalGasCost + bufferedDispensation; + const executionCostUSD = gasCostUSD + dispensationUSD; + + // Get claim token from compact ID and check if it's ETH/WETH across all chains + const claimTokenHex = BigInt(request.compact.id).toString(16).slice(-40); + const claimToken = `0x${claimTokenHex}`.toLowerCase() as `0x${string}`; + + // Check if token is ETH/WETH in any supported chain + const isETHorWETH = Object.values(CHAIN_CONFIG).some( + (chainConfig) => + claimToken === chainConfig.tokens.ETH.address.toLowerCase() || + claimToken === chainConfig.tokens.WETH.address.toLowerCase() + ); + + // Calculate claim amount less execution costs + let claimAmountLessExecutionCostsWei: bigint; + let claimAmountLessExecutionCostsUSD: number; + if (isETHorWETH) { + claimAmountLessExecutionCostsWei = + BigInt(request.compact.amount) - executionCostWei; + claimAmountLessExecutionCostsUSD = + Number(formatEther(claimAmountLessExecutionCostsWei)) * ethPrice; + } else { + // Assume USDC with 6 decimals + claimAmountLessExecutionCostsUSD = + Number(request.compact.amount) / 1e6 - executionCostUSD; + claimAmountLessExecutionCostsWei = parseEther( + (claimAmountLessExecutionCostsUSD / ethPrice).toString() + ); + } + + const settlementAmount = isSettlementTokenETHorWETH + ? claimAmountLessExecutionCostsWei + : BigInt(Math.floor(claimAmountLessExecutionCostsUSD * 1e6)); // Scale up USDC amount + + logger.info( + `Settlement amount: ${settlementAmount} (minimum: ${minimumAmount})` + ); + + // Check if we have sufficient token balance for settlement amount + if (relevantTokenBalance < settlementAmount) { + return { + success: false, + reason: "Token balance is less than settlement amount", + details: { + dispensationUSD, + }, + }; + } + + // Check if profitable (settlement amount > minimum amount) + if (settlementAmount <= minimumAmount) { + return { + success: false, + reason: "Fill estimated to be unprofitable after execution costs", + details: { + dispensationUSD, + gasCostUSD, + }, + }; + } + + // Check if we have sufficient ETH for value + if (cachedBalances.ETH < settlementAmount + bufferedDispensation) { + return { + success: false, + reason: "ETH balance is less than settlement value", + details: { + dispensationUSD, + }, + }; + } + + // Calculate final priority fee based on actual settlement amount + const priorityFee = CHAIN_PRIORITY_FEES[chainId]; + + // Calculate final value based on mandate token (using chain-specific ETH address) + const value = + mandateTokenAddress === mandateChainConfig.tokens.ETH.address.toLowerCase() + ? settlementAmount + bufferedDispensation + : bufferedDispensation; + + // Do final gas estimation with actual values + const finalEstimatedGas = await publicClient.estimateGas({ + to: request.compact.mandate.tribunal as `0x${string}`, + value, + data, + maxFeePerGas: priorityFee + (baseFee * 120n) / 100n, + maxPriorityFeePerGas: priorityFee, + account: address, + }); + + const finalGasWithBuffer = (finalEstimatedGas * 125n) / 100n; + + logger.info( + `Got final gas estimate: ${finalEstimatedGas} (${finalGasWithBuffer} with buffer)` + ); + + // Check if we have enough ETH for value + gas using cached balance + const requiredBalance = + value + (priorityFee + (baseFee * 120n) / 100n) * finalGasWithBuffer; + + if (cachedBalances.ETH < requiredBalance) { + const shortageWei = requiredBalance - cachedBalances.ETH; + const shortageEth = Number(formatEther(shortageWei)); + return { + success: false, + reason: `Insufficient ETH balance. Need ${formatEther(requiredBalance)} ETH but only have ${formatEther(cachedBalances.ETH)} ETH (short ${shortageEth.toFixed(6)} ETH)`, + details: { + dispensationUSD, + gasCostUSD, + }, + }; + } + + logger.info( + `account balance ${cachedBalances.ETH} exceeds required balance of ${requiredBalance}. Submitting transaction!` + ); + + // Get the account from the wallet client + const account = walletClient.account; + if (!account) { + throw new Error("No account found in wallet client"); + } + + // Submit transaction with the wallet client + const hash = await walletClient.sendTransaction({ + to: request.compact.mandate.tribunal as `0x${string}`, + value, + maxFeePerGas: priorityFee + (baseFee * 120n) / 100n, + maxPriorityFeePerGas: priorityFee, + gas: finalGasWithBuffer, + data: data as `0x${string}`, + chain, + account, + }); + + // Calculate final costs and profit + const finalGasCostWei = + (priorityFee + (baseFee * 120n) / 100n) * finalGasWithBuffer; + const finalGasCostEth = Number(formatEther(finalGasCostWei)); + const finalGasCostUSD = finalGasCostEth * ethPrice; + + logger.info( + `Transaction submitted: ${hash} (${mandateChainConfig.blockExplorer}/tx/${hash})` + ); + logger.info( + `Settlement amount: ${settlementAmount} (minimum: ${minimumAmount})` + ); + logger.info( + `Final gas cost: $${finalGasCostUSD.toFixed(2)} (${formatEther(finalGasCostWei)} ETH)` + ); + + return { + success: true, + hash, + details: { + dispensationUSD, + gasCostUSD: finalGasCostUSD, + netProfitUSD: 0, + minProfitUSD: 0, + }, + }; + } } const enoughBalanceOnDestination: CompactXRule = async ( diff --git a/typescript/solver/solvers/compactX/services/TheCompactService.ts b/typescript/solver/solvers/compactX/services/TheCompactService.ts index 2d917f97..a235310a 100644 --- a/typescript/solver/solvers/compactX/services/TheCompactService.ts +++ b/typescript/solver/solvers/compactX/services/TheCompactService.ts @@ -7,6 +7,7 @@ import type { Logger } from "../../../logger.js"; import { TheCompact__factory } from "../../../typechain/factories/compactX/contracts/TheCompact__factory.js"; import type { MultiProvider } from "@hyperlane-xyz/sdk"; import type { BigNumber } from "@ethersproject/bignumber"; +import { Address } from "@hyperlane-xyz/utils"; const THE_COMPACT_ADDRESS = "0x00000000000018DF021Ff2467dF97ff846E09f48"; diff --git a/typescript/solver/solvers/compactX/types.ts b/typescript/solver/solvers/compactX/types.ts index 572c04a0..e6409b88 100644 --- a/typescript/solver/solvers/compactX/types.ts +++ b/typescript/solver/solvers/compactX/types.ts @@ -111,3 +111,16 @@ export type CompactXMetadata = z.infer; export type CompactXParsedArgs = ParsedArgs & { context: BroadcastRequest; }; + +export interface ProcessedBroadcastResult { + success: boolean; + // hash?: Hash; + hash?: string; + reason?: string; + details: { + dispensationUSD: number; + gasCostUSD?: number; + netProfitUSD?: number; + minProfitUSD?: number; + }; +} From c0f8edc84c44000149f909e79d3d5d7adbf483b9 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Mon, 17 Mar 2025 20:48:05 +0100 Subject: [PATCH 18/41] feat(compactX): WIP filler Co-Authored-By: Lisandro Corbalan --- typescript/solver/config/solvers.json | 4 +- .../solvers/compactX/config/constants.ts | 18 ++ typescript/solver/solvers/compactX/filler.ts | 288 ++++++++---------- .../services/price/CoinGeckoProvider.ts | 148 +++++++++ .../compactX/services/price/PriceService.ts | 84 +++++ typescript/solver/solvers/compactX/utils.ts | 15 +- .../solvers/compactX/validation/signature.ts | 2 +- 7 files changed, 387 insertions(+), 172 deletions(-) create mode 100644 typescript/solver/solvers/compactX/services/price/CoinGeckoProvider.ts create mode 100644 typescript/solver/solvers/compactX/services/price/PriceService.ts diff --git a/typescript/solver/config/solvers.json b/typescript/solver/config/solvers.json index 93b26091..c11bde19 100644 --- a/typescript/solver/config/solvers.json +++ b/typescript/solver/config/solvers.json @@ -1,9 +1,9 @@ { "eco": { - "enabled": true + "enabled": false }, "hyperlane7683": { - "enabled": true + "enabled": false }, "compactX": { "enabled": true diff --git a/typescript/solver/solvers/compactX/config/constants.ts b/typescript/solver/solvers/compactX/config/constants.ts index 126ee6ad..b9ad5e5a 100644 --- a/typescript/solver/solvers/compactX/config/constants.ts +++ b/typescript/solver/solvers/compactX/config/constants.ts @@ -1,6 +1,24 @@ +import { Address } from "@hyperlane-xyz/utils"; + export const SUPPORTED_CHAINS = [1, 10, 130, 8453] as const; // Mainnet, Optimism, Unichain, & Base export type SupportedChainId = (typeof SUPPORTED_CHAINS)[number]; +interface TokenConfig { + address: Address; + decimals: number; + symbol: string; + coingeckoId: string; +} + +interface ChainConfig { + name: string; + nativeToken: string; + coingeckoId: string; + blockExplorer: string; + rpcEnvKey: string; + tokens: Record; +} + export const CHAIN_PRIORITY_FEES: Record = { 1: 1n, // Mainnet 10: 1n, // Optimism diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index 3e78cc0c..d8b0c934 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -1,30 +1,32 @@ -import { type MultiProvider } from "@hyperlane-xyz/sdk"; -import { type Result } from "@hyperlane-xyz/utils"; import { AddressZero } from "@ethersproject/constants"; +import { type MultiProvider } from "@hyperlane-xyz/sdk"; +import type { Result } from "@hyperlane-xyz/utils"; +import { formatEther, parseEther } from "@ethersproject/units"; +import { Tribunal__factory } from "../../typechain/factories/compactX/contracts/Tribunal__factory.js"; import { BaseFiller } from "../BaseFiller.js"; import { BuildRules, RulesMap } from "../types.js"; +import { retrieveTokenBalance } from "../utils.js"; +import { + CHAIN_CONFIG, + CHAIN_PRIORITY_FEES, + SUPPORTED_ARBITER_ADDRESSES, + SUPPORTED_CHAINS, + SUPPORTED_TRIBUNAL_ADDRESSES, + SupportedChainId, +} from "./config/constants.js"; import { allowBlockLists, metadata } from "./config/index.js"; +import { PriceService } from "./services/price/PriceService.js"; +import { TheCompactService } from "./services/TheCompactService.js"; import { - type CompactXMetadata, - type CompactXParsedArgs, type BroadcastRequest, BroadcastRequestSchema, + type CompactXMetadata, + type CompactXParsedArgs, ProcessedBroadcastResult, } from "./types.js"; -import { log, deriveClaimHash } from "./utils.js"; -import { - SupportedChainId, - SUPPORTED_CHAINS, - SUPPORTED_ARBITER_ADDRESSES, - SUPPORTED_TRIBUNAL_ADDRESSES, - CHAIN_PRIORITY_FEES, - CHAIN_CONFIG, -} from "./config/constants.js"; +import { deriveClaimHash, log } from "./utils.js"; import { verifyBroadcastRequest } from "./validation/signature.js"; -import { TheCompactService } from "./services/TheCompactService.js"; -import { retrieveTokenBalance } from "../utils.js"; -import { Tribunal__factory } from "../../typechain/factories/compactX/contracts/Tribunal__factory.js"; export type CompactXRule = CompactXFiller["rules"][number]; @@ -33,8 +35,12 @@ export class CompactXFiller extends BaseFiller< CompactXParsedArgs, {} > { + private priceService: PriceService; + constructor(multiProvider: MultiProvider, rules?: BuildRules) { super(multiProvider, allowBlockLists, metadata, log, rules); + this.priceService = new PriceService(); + this.priceService.start(); } protected retrieveOriginInfo( @@ -170,15 +176,10 @@ export class CompactXFiller extends BaseFiller< throw new Error("Unsupported tribunal address"); } - // const result = await processBroadcastTransaction( - // { ...request, chainId: Number(request.chainId) }, - // mandateChainId, - // priceService, - // tokenBalanceService, - // publicClients[mandateChainId], - // walletClients[mandateChainId], - // account.address - // ); + const result = await this.processBroadcastTransaction( + data, + mandateChainId, + ); // // Handle the result // wsManager.broadcastFillRequest( @@ -197,13 +198,12 @@ export class CompactXFiller extends BaseFiller< } protected async processBroadcastTransaction( - request: BroadcastRequest & { chainId: number }, + request: BroadcastRequest, chainId: SupportedChainId, - address: `0x${string}` ): Promise { // Get the chain object and config for the mandate's chain const mandateChainId = Number( - request.compact.mandate.chainId + request.compact.mandate.chainId, ) as SupportedChainId; const mandateChainConfig = CHAIN_CONFIG[mandateChainId]; this.log.debug(`Evaluating fill against chainId ${mandateChainId}`); @@ -214,12 +214,12 @@ export class CompactXFiller extends BaseFiller< const fillerAddress = await this.multiProvider.getSignerAddress(chainId); // Get current ETH price for the chain from memory - // const ethPrice = priceService.getPrice(chainId); - // logger.info(`Current ETH price on chain ${chainId}: $${ethPrice}`); + const ethPrice = this.priceService.getPrice(chainId); + this.log.debug({ msg: "Current ETH price", chainId, ethPrice }); // Extract the dispensation amount in USD from the request and add 25% buffer const dispensationUSD = Number.parseFloat( - request.context.dispensationUSD.replace("$", "") + request.context.dispensationUSD.replace("$", ""), ); const bufferedDispensation = (BigInt(request.context.dispensation) * 125n) / 100n; @@ -227,10 +227,6 @@ export class CompactXFiller extends BaseFiller< // Calculate simulation values const minimumAmount = BigInt(request.compact.mandate.minimumAmount); const simulationSettlement = (minimumAmount * 101n) / 100n; - const baselinePriorityFee = BigInt( - request.compact.mandate.baselinePriorityFee - ); - const scalingFactor = BigInt(request.compact.mandate.scalingFactor); // Get cached balances for the mandate chain // const cachedBalances = tokenBalanceService.getBalances(chainId); @@ -245,17 +241,17 @@ export class CompactXFiller extends BaseFiller< // } // Calculate settlement amount based on mandate token (ETH/WETH check) - const mandateTokenAddress = - request.compact.mandate.token.toLowerCase() as `0x${string}`; + const mandateTokenAddress = request.compact.mandate.token.toLowerCase(); + const mandateTokens = mandateChainConfig.tokens; const isSettlementTokenETHorWETH = - mandateTokenAddress === mandateChainConfig.tokens.ETH.address.toLowerCase() || - mandateTokenAddress === mandateChainConfig.tokens.WETH.address.toLowerCase(); + mandateTokenAddress === mandateTokens.ETH.address.toLowerCase() || + mandateTokenAddress === mandateTokens.WETH.address.toLowerCase(); if ( - mandateTokenAddress !== mandateChainConfig.tokens.ETH.address.toLowerCase() && - mandateTokenAddress !== mandateChainConfig.tokens.WETH.address.toLowerCase() && - mandateTokenAddress !== mandateChainConfig.tokens.USDC.address.toLowerCase() - ) { + mandateTokenAddress !== mandateTokens.ETH.address.toLowerCase() && + mandateTokenAddress !== mandateTokens.WETH.address.toLowerCase() && + mandateTokenAddress !== mandateTokens.USDC.address.toLowerCase() + ) { return { success: false, reason: "Unsupported mandate token", @@ -272,7 +268,6 @@ export class CompactXFiller extends BaseFiller< provider, ); - // Check if we have sufficient token balance for minimum amount if (relevantTokenBalance.lt(minimumAmount)) { return { @@ -300,19 +295,18 @@ export class CompactXFiller extends BaseFiller< // Calculate simulation value const simulationValue = - request.compact.mandate.token === - "0x0000000000000000000000000000000000000000" + request.compact.mandate.token === AddressZero ? simulationSettlement + bufferedDispensation : bufferedDispensation; - const ethBalance = await retrieveTokenBalance( AddressZero, fillerAddress, provider, ); + // Check if we have sufficient ETH for simulation value - if (ethBalance.(simulationValue)) { + if (ethBalance.lt(simulationValue)) { return { success: false, reason: "ETH balance is less than simulation value", @@ -322,81 +316,41 @@ export class CompactXFiller extends BaseFiller< }; } + const signer = this.multiProvider.getSigner(chainId); + const tribunal = Tribunal__factory.connect( request.compact.mandate.tribunal, - this.multiProvider.getSigner(chainId), + signer, ); // Encode simulation data with proper ABI + const { mandate, ...compact } = request.compact; const data = tribunal.interface.encodeFunctionData("fill", [ { - chainId: BigInt(request.chainId), - compact: { - arbiter: request.compact.arbiter as `0x${string}`, - sponsor: request.compact.sponsor as `0x${string}`, - nonce: BigInt(request.compact.nonce), - expires: BigInt(request.compact.expires), - id: BigInt(request.compact.id), - amount: BigInt(request.compact.amount), - }, - sponsorSignature: (!request.sponsorSignature || - request.sponsorSignature === "0x" - ? `0x${"0".repeat(128)}` - : request.sponsorSignature) as `0x${string}`, - allocatorSignature: request.allocatorSignature as `0x${string}`, + chainId: request.chainId, + compact, + sponsorSignature: + !request.sponsorSignature || request.sponsorSignature === "0x" + ? `0x${"0".repeat(128)}` + : request.sponsorSignature, + allocatorSignature: request.allocatorSignature, }, { - recipient: request.compact.mandate.recipient as `0x${string}`, - expires: BigInt(request.compact.mandate.expires), - token: request.compact.mandate.token as `0x${string}`, - minimumAmount: BigInt(request.compact.mandate.minimumAmount), - baselinePriorityFee: BigInt( - request.compact.mandate.baselinePriorityFee - ), - scalingFactor: BigInt(request.compact.mandate.scalingFactor), - salt: request.compact.mandate.salt as `0x${string}`, + recipient: mandate.recipient, + expires: mandate.expires, + token: mandate.token, + minimumAmount: mandate.minimumAmount, + baselinePriorityFee: mandate.baselinePriorityFee, + scalingFactor: mandate.scalingFactor, + salt: mandate.salt, }, - address, - ]) - - // // Encode simulation data with proper ABI - // const data = encodeFunctionData({ - // functionName: "fill", - // args: [ - // { - // chainId: BigInt(request.chainId), - // compact: { - // arbiter: request.compact.arbiter as `0x${string}`, - // sponsor: request.compact.sponsor as `0x${string}`, - // nonce: BigInt(request.compact.nonce), - // expires: BigInt(request.compact.expires), - // id: BigInt(request.compact.id), - // amount: BigInt(request.compact.amount), - // }, - // sponsorSignature: (!request.sponsorSignature || - // request.sponsorSignature === "0x" - // ? `0x${"0".repeat(128)}` - // : request.sponsorSignature) as `0x${string}`, - // allocatorSignature: request.allocatorSignature as `0x${string}`, - // }, - // { - // recipient: request.compact.mandate.recipient as `0x${string}`, - // expires: BigInt(request.compact.mandate.expires), - // token: request.compact.mandate.token as `0x${string}`, - // minimumAmount: BigInt(request.compact.mandate.minimumAmount), - // baselinePriorityFee: BigInt( - // request.compact.mandate.baselinePriorityFee - // ), - // scalingFactor: BigInt(request.compact.mandate.scalingFactor), - // salt: request.compact.mandate.salt as `0x${string}`, - // }, - // address, - // ], - // }); + fillerAddress, + ]); // Get current base fee from latest block using mandate chain - const block = await provider.getBlock('latest'); - const baseFee = BigInt(block.baseFeePerGas?.toString() || 0); + const block = await provider.getBlock("latest"); + const baseFee = block.baseFeePerGas?.toBigInt(); + if (!baseFee) { return { success: false, @@ -410,18 +364,20 @@ export class CompactXFiller extends BaseFiller< // Estimate gas using simulation values and add 25% buffer this.log.debug("Performing initial simulation to get gas estimate"); const estimatedGas = await provider.estimateGas({ - to: request.compact.mandate.tribunal as `0x${string}`, + to: request.compact.mandate.tribunal, value: simulationValue, data, maxFeePerGas: simulationPriorityFee + (baseFee * 120n) / 100n, maxPriorityFeePerGas: simulationPriorityFee, - account: address, + from: fillerAddress, }); - const gasWithBuffer = (estimatedGas * 125n) / 100n; - logger.info( - `Got gas estimate: ${estimatedGas} (${gasWithBuffer} with buffer)` - ); + const gasWithBuffer = (estimatedGas.toBigInt() * 125n) / 100n; + this.log.debug({ + msg: "Got gas estimate", + estimatedGas, + gasWithBuffer, + }); // Calculate max fee and total gas cost const maxFeePerGas = simulationPriorityFee + (baseFee * 120n) / 100n; // Base fee + 20% buffer @@ -435,13 +391,13 @@ export class CompactXFiller extends BaseFiller< // Get claim token from compact ID and check if it's ETH/WETH across all chains const claimTokenHex = BigInt(request.compact.id).toString(16).slice(-40); - const claimToken = `0x${claimTokenHex}`.toLowerCase() as `0x${string}`; + const claimToken = `0x${claimTokenHex}`.toLowerCase(); // Check if token is ETH/WETH in any supported chain const isETHorWETH = Object.values(CHAIN_CONFIG).some( (chainConfig) => claimToken === chainConfig.tokens.ETH.address.toLowerCase() || - claimToken === chainConfig.tokens.WETH.address.toLowerCase() + claimToken === chainConfig.tokens.WETH.address.toLowerCase(), ); // Calculate claim amount less execution costs @@ -457,20 +413,22 @@ export class CompactXFiller extends BaseFiller< claimAmountLessExecutionCostsUSD = Number(request.compact.amount) / 1e6 - executionCostUSD; claimAmountLessExecutionCostsWei = parseEther( - (claimAmountLessExecutionCostsUSD / ethPrice).toString() - ); + (claimAmountLessExecutionCostsUSD / ethPrice).toString(), + ).toBigInt(); } const settlementAmount = isSettlementTokenETHorWETH ? claimAmountLessExecutionCostsWei : BigInt(Math.floor(claimAmountLessExecutionCostsUSD * 1e6)); // Scale up USDC amount - logger.info( - `Settlement amount: ${settlementAmount} (minimum: ${minimumAmount})` - ); + this.log.debug({ + msg: "Settlement", + amount: settlementAmount, + minimum: minimumAmount, + }); // Check if we have sufficient token balance for settlement amount - if (relevantTokenBalance < settlementAmount) { + if (relevantTokenBalance.toBigInt() < settlementAmount) { return { success: false, reason: "Token balance is less than settlement amount", @@ -493,7 +451,7 @@ export class CompactXFiller extends BaseFiller< } // Check if we have sufficient ETH for value - if (cachedBalances.ETH < settlementAmount + bufferedDispensation) { + if (ethBalance.toBigInt() < settlementAmount + bufferedDispensation) { return { success: false, reason: "ETH balance is less than settlement value", @@ -508,36 +466,39 @@ export class CompactXFiller extends BaseFiller< // Calculate final value based on mandate token (using chain-specific ETH address) const value = - mandateTokenAddress === mandateChainConfig.tokens.ETH.address.toLowerCase() + mandateTokenAddress === + mandateChainConfig.tokens.ETH.address.toLowerCase() ? settlementAmount + bufferedDispensation : bufferedDispensation; // Do final gas estimation with actual values - const finalEstimatedGas = await publicClient.estimateGas({ - to: request.compact.mandate.tribunal as `0x${string}`, + const finalEstimatedGas = await provider.estimateGas({ + to: request.compact.mandate.tribunal, value, data, maxFeePerGas: priorityFee + (baseFee * 120n) / 100n, maxPriorityFeePerGas: priorityFee, - account: address, + from: fillerAddress, }); - const finalGasWithBuffer = (finalEstimatedGas * 125n) / 100n; + const finalGasWithBuffer = (finalEstimatedGas.toBigInt() * 125n) / 100n; - logger.info( - `Got final gas estimate: ${finalEstimatedGas} (${finalGasWithBuffer} with buffer)` - ); + this.log.debug({ + msg: "Got final gas estimate", + finalEstimatedGas, + finalGasWithBuffer, + }); // Check if we have enough ETH for value + gas using cached balance const requiredBalance = value + (priorityFee + (baseFee * 120n) / 100n) * finalGasWithBuffer; - if (cachedBalances.ETH < requiredBalance) { - const shortageWei = requiredBalance - cachedBalances.ETH; + if (ethBalance.toBigInt() < requiredBalance) { + const shortageWei = requiredBalance - ethBalance.toBigInt(); const shortageEth = Number(formatEther(shortageWei)); return { success: false, - reason: `Insufficient ETH balance. Need ${formatEther(requiredBalance)} ETH but only have ${formatEther(cachedBalances.ETH)} ETH (short ${shortageEth.toFixed(6)} ETH)`, + reason: `Insufficient ETH balance. Need ${formatEther(requiredBalance)} ETH but only have ${formatEther(ethBalance)} ETH (short ${shortageEth.toFixed(6)} ETH)`, details: { dispensationUSD, gasCostUSD, @@ -545,47 +506,50 @@ export class CompactXFiller extends BaseFiller< }; } - logger.info( - `account balance ${cachedBalances.ETH} exceeds required balance of ${requiredBalance}. Submitting transaction!` - ); - - // Get the account from the wallet client - const account = walletClient.account; - if (!account) { - throw new Error("No account found in wallet client"); - } + this.log.debug({ + msg: "account balance exceeds required balance. Submitting transaction!", + ethBalance, + requiredBalance, + }); // Submit transaction with the wallet client - const hash = await walletClient.sendTransaction({ - to: request.compact.mandate.tribunal as `0x${string}`, + const response = await signer.sendTransaction({ + to: request.compact.mandate.tribunal, value, maxFeePerGas: priorityFee + (baseFee * 120n) / 100n, + chainId, maxPriorityFeePerGas: priorityFee, - gas: finalGasWithBuffer, - data: data as `0x${string}`, - chain, - account, + gasLimit: finalGasWithBuffer, + data: data, }); + const receipt = await response.wait(); + // Calculate final costs and profit const finalGasCostWei = (priorityFee + (baseFee * 120n) / 100n) * finalGasWithBuffer; const finalGasCostEth = Number(formatEther(finalGasCostWei)); const finalGasCostUSD = finalGasCostEth * ethPrice; - logger.info( - `Transaction submitted: ${hash} (${mandateChainConfig.blockExplorer}/tx/${hash})` - ); - logger.info( - `Settlement amount: ${settlementAmount} (minimum: ${minimumAmount})` - ); - logger.info( - `Final gas cost: $${finalGasCostUSD.toFixed(2)} (${formatEther(finalGasCostWei)} ETH)` - ); + this.log.info({ + msg: "Transaction submitted", + hash: receipt.transactionHash, + blockExplorer: `${mandateChainConfig.blockExplorer}/tx/${receipt.transactionHash})`, + }); + this.log.debug({ + msg: "Settlement amount", + settlementAmount, + minimumAmount, + }); + this.log.debug({ + msg: "Final gas cost", + finalGasCostUSD: finalGasCostUSD.toFixed(2), + finalGasCostWei: `${formatEther(finalGasCostWei)} ETH)`, + }); return { success: true, - hash, + hash: receipt.transactionHash, details: { dispensationUSD, gasCostUSD: finalGasCostUSD, diff --git a/typescript/solver/solvers/compactX/services/price/CoinGeckoProvider.ts b/typescript/solver/solvers/compactX/services/price/CoinGeckoProvider.ts new file mode 100644 index 00000000..fa145eb1 --- /dev/null +++ b/typescript/solver/solvers/compactX/services/price/CoinGeckoProvider.ts @@ -0,0 +1,148 @@ +import type { Logger } from "../../../../logger.js"; +import type { SupportedChainId } from "../../config/constants.js"; +import { log } from "../../utils.js"; + +// Map chain IDs to CoinGecko platform IDs and their native token IDs +const CHAIN_TO_PLATFORM: Record< + number, + { platform: string; nativeToken: string } +> = { + 1: { platform: "ethereum", nativeToken: "ethereum" }, + 10: { platform: "optimistic-ethereum", nativeToken: "ethereum" }, + 130: { platform: "unichain", nativeToken: "ethereum" }, + 8453: { platform: "base", nativeToken: "ethereum" }, +}; + +interface PriceData { + price: number; + timestamp: number; + source: string; +} + +class CoinGeckoError extends Error { + constructor(message: string) { + super(message); + this.name = "CoinGeckoError"; + } +} + +export class CoinGeckoProvider { + private cache: Map; + private log: Logger; + private baseUrl: string; + private headers: Record; + private readonly CACHE_TTL = 30_000; // 30 seconds + + constructor(apiKey?: string) { + this.cache = new Map(); + this.log = log; + this.baseUrl = apiKey + ? "https://pro-api.coingecko.com/api/v3" + : "https://api.coingecko.com/api/v3"; + this.headers = { + accept: "application/json", + ...(apiKey && { "x-cg-pro-api-key": apiKey }), + }; + } + + private async makeRequest(url: string, errorContext: string): Promise { + try { + // Use global fetch + const response = await fetch(url, { headers: this.headers }); + + if (!response.ok) { + let errorMessage: string; + try { + const errorData = (await response.json()) as { error?: string }; + errorMessage = errorData?.error || response.statusText; + } catch { + errorMessage = response.statusText; + } + throw new CoinGeckoError(`${errorContext}: ${errorMessage}`); + } + + const data = await response.json(); + if (!data) { + throw new CoinGeckoError(`${errorContext}: Empty response`); + } + + return data as T; + } catch (error) { + if (error instanceof CoinGeckoError) throw error; + throw new CoinGeckoError( + `${errorContext}: ${error instanceof Error ? error.message : "Unknown error"}`, + ); + } + } + + private validateEthPriceResponse( + data: unknown, + nativeToken: string, + ): asserts data is { [key: string]: { usd: number } } { + if (!data || typeof data !== "object") { + throw new CoinGeckoError( + "Invalid native token price response format: not an object", + ); + } + + const priceObj = data as { [key: string]: { usd?: unknown } }; + if ( + !priceObj[nativeToken]?.usd || + typeof priceObj[nativeToken].usd !== "number" + ) { + throw new CoinGeckoError( + "Invalid native token price response format: missing or invalid price", + ); + } + } + + private getPlatformInfo(chainId: number): { + platform: string; + nativeToken: string; + } { + const info = CHAIN_TO_PLATFORM[chainId]; + if (!info) { + throw new CoinGeckoError(`Unsupported chain ID: ${chainId}`); + } + return info; + } + + async getEthPrice(chainId: SupportedChainId): Promise { + const cached = this.cache.get(chainId); + + if (cached && Date.now() - cached.timestamp < this.CACHE_TTL) { + return cached.data; + } + + try { + const { nativeToken } = this.getPlatformInfo(chainId); + const url = `${this.baseUrl}/simple/price?ids=${nativeToken}&vs_currencies=usd`; + + this.log.debug({ msg: "Fetching native token price", chainId, url }); + + const data = await this.makeRequest( + url, + "Failed to fetch ETH price", + ); + this.validateEthPriceResponse(data, nativeToken); + + this.log.debug({ + msg: "Received native token price data", + data: JSON.stringify(data), + }); + + const timestamp = Date.now(); + const priceData: PriceData = { + price: data[nativeToken].usd, + timestamp, + source: "coingecko", + }; + + this.cache.set(chainId, { data: priceData, timestamp }); + return priceData; + } catch (error) { + this.log.error({ msg: "Failed to fetch ETH price", error }); + throw error; + } + } +} diff --git a/typescript/solver/solvers/compactX/services/price/PriceService.ts b/typescript/solver/solvers/compactX/services/price/PriceService.ts new file mode 100644 index 00000000..79353c9a --- /dev/null +++ b/typescript/solver/solvers/compactX/services/price/PriceService.ts @@ -0,0 +1,84 @@ +import EventEmitter from "node:events"; +import type { Logger } from "../../../../logger.js"; +import { + SUPPORTED_CHAINS, + type SupportedChainId, +} from "../../config/constants.js"; +import { log } from "../../utils.js"; +import { CoinGeckoProvider } from "./CoinGeckoProvider.js"; + +interface PriceData { + price: number; + lastUpdated: number; +} + +export class PriceService extends EventEmitter { + private prices: Map; + private log: Logger; + private provider: CoinGeckoProvider; + private updateInterval: NodeJS.Timeout | null; + private readonly UPDATE_INTERVAL = 10_000; // 10 seconds + + constructor(apiKey?: string) { + super(); + this.prices = new Map(); + this.log = log; + this.provider = new CoinGeckoProvider(apiKey); + this.updateInterval = null; + } + + public start(): void { + // Initial price fetch + this.updatePrices().catch((error) => { + this.log.error({ msg: "Failed to fetch initial prices", error }); + }); + + // Set up periodic updates + this.updateInterval = setInterval(() => { + this.updatePrices().catch((error) => { + this.log.error({ msg: "Failed to update prices", error }); + }); + }, this.UPDATE_INTERVAL); + } + + public stop(): void { + if (this.updateInterval) { + clearInterval(this.updateInterval); + this.updateInterval = null; + } + } + + public getPrice(chainId: SupportedChainId): number { + const priceData = this.prices.get(chainId); + if (!priceData) { + throw new Error(`No price data available for chain ${chainId}`); + } + + // Check if price is stale (older than 30 seconds) + const stalePriceThreshold = 30_000; // 30 seconds + if (Date.now() - priceData.lastUpdated > stalePriceThreshold) { + this.log.warn({ msg: "Price data is stale", chainId }); + } + + return priceData.price; + } + + private async updatePrices(): Promise { + for (const chainId of SUPPORTED_CHAINS) { + try { + const { price } = await this.provider.getEthPrice(chainId); + this.prices.set(chainId, { + price, + lastUpdated: Date.now(), + }); + this.log.debug({ msg: "Updated ETH price", chainId, price }); + + // Emit the price update + this.emit("price_update", chainId, price); + } catch (error) { + this.log.error({ msg: "Failed to update price", chainId, error }); + // Don't update the price if there's an error, keep using the old one + } + } + } +} diff --git a/typescript/solver/solvers/compactX/utils.ts b/typescript/solver/solvers/compactX/utils.ts index d5fbc396..fe504873 100644 --- a/typescript/solver/solvers/compactX/utils.ts +++ b/typescript/solver/solvers/compactX/utils.ts @@ -5,13 +5,14 @@ import { keccak256 } from "@ethersproject/keccak256"; import { arrayify } from "@ethersproject/bytes"; import { AbiCoder } from "@ethersproject/abi"; import { toUtf8Bytes } from "@ethersproject/strings"; +import { BroadcastRequest } from "./types.js"; export const log = createLogger(metadata.protocolName); /** * Derives the claim hash using EIP-712 typed data hashing */ -export function deriveClaimHash(chainId: number, compact: Compact) { +export function deriveClaimHash(chainId: number, compact: BroadcastRequest['compact']) { // Validate mandate parameters if (!compact.mandate.chainId) throw new Error("Mandate chainId is required"); if (!compact.mandate.tribunal) @@ -64,14 +65,14 @@ export function deriveClaimHash(chainId: number, compact: Compact) { [ MANDATE_TYPEHASH, BigInt(compact.mandate.chainId), - compact.mandate.tribunal.toLowerCase() as `0x${string}`, - compact.mandate.recipient.toLowerCase() as `0x${string}`, + compact.mandate.tribunal.toLowerCase(), + compact.mandate.recipient.toLowerCase(), BigInt(compact.mandate.expires), - compact.mandate.token.toLowerCase() as `0x${string}`, + compact.mandate.token.toLowerCase(), BigInt(compact.mandate.minimumAmount), BigInt(compact.mandate.baselinePriorityFee), BigInt(compact.mandate.scalingFactor), - compact.mandate.salt as `0x${string}`, + compact.mandate.salt, ], ); @@ -92,8 +93,8 @@ export function deriveClaimHash(chainId: number, compact: Compact) { ], [ COMPACT_TYPEHASH, - compact.arbiter.toLowerCase() as `0x${string}`, - compact.sponsor.toLowerCase() as `0x${string}`, + compact.arbiter.toLowerCase(), + compact.sponsor.toLowerCase(), BigInt(compact.nonce), BigInt(compact.expires), BigInt(compact.id), diff --git a/typescript/solver/solvers/compactX/validation/signature.ts b/typescript/solver/solvers/compactX/validation/signature.ts index b8e59aca..2793580a 100644 --- a/typescript/solver/solvers/compactX/validation/signature.ts +++ b/typescript/solver/solvers/compactX/validation/signature.ts @@ -225,7 +225,7 @@ export async function verifyBroadcastRequest( for (const [name, allocator] of Object.entries(ALLOCATORS)) { if (allocator.id === allocatorId) { allocatorAddress = allocator.signingAddress; - log.debug({ msg: "Found matching allocator", name, allocatorAddress }); + log.debug({ msg: "Found matching allocator", allocatorName: name, allocatorAddress }); break; } } From 2dfeea0ef0ecb1438e6414468d2fe9ff1bb658b5 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Mon, 17 Mar 2025 20:48:16 +0100 Subject: [PATCH 19/41] chore: prettier Co-Authored-By: Lisandro Corbalan --- typescript/solver/solvers/compactX/filler.ts | 5 +---- typescript/solver/solvers/compactX/utils.ts | 5 ++++- typescript/solver/solvers/compactX/validation/signature.ts | 6 +++++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index d8b0c934..53fc7c98 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -176,10 +176,7 @@ export class CompactXFiller extends BaseFiller< throw new Error("Unsupported tribunal address"); } - const result = await this.processBroadcastTransaction( - data, - mandateChainId, - ); + const result = await this.processBroadcastTransaction(data, mandateChainId); // // Handle the result // wsManager.broadcastFillRequest( diff --git a/typescript/solver/solvers/compactX/utils.ts b/typescript/solver/solvers/compactX/utils.ts index fe504873..08dfe587 100644 --- a/typescript/solver/solvers/compactX/utils.ts +++ b/typescript/solver/solvers/compactX/utils.ts @@ -12,7 +12,10 @@ export const log = createLogger(metadata.protocolName); /** * Derives the claim hash using EIP-712 typed data hashing */ -export function deriveClaimHash(chainId: number, compact: BroadcastRequest['compact']) { +export function deriveClaimHash( + chainId: number, + compact: BroadcastRequest["compact"], +) { // Validate mandate parameters if (!compact.mandate.chainId) throw new Error("Mandate chainId is required"); if (!compact.mandate.tribunal) diff --git a/typescript/solver/solvers/compactX/validation/signature.ts b/typescript/solver/solvers/compactX/validation/signature.ts index 2793580a..25b743dc 100644 --- a/typescript/solver/solvers/compactX/validation/signature.ts +++ b/typescript/solver/solvers/compactX/validation/signature.ts @@ -225,7 +225,11 @@ export async function verifyBroadcastRequest( for (const [name, allocator] of Object.entries(ALLOCATORS)) { if (allocator.id === allocatorId) { allocatorAddress = allocator.signingAddress; - log.debug({ msg: "Found matching allocator", allocatorName: name, allocatorAddress }); + log.debug({ + msg: "Found matching allocator", + allocatorName: name, + allocatorAddress, + }); break; } } From a46630237f90f43edf9b1931f69bed537a9d646e Mon Sep 17 00:00:00 2001 From: fernandomg Date: Tue, 18 Mar 2025 11:28:36 +0100 Subject: [PATCH 20/41] feat: less agressive price polling also, set a name for the services logs --- .../services/price/CoinGeckoProvider.ts | 16 +++++++++++++--- .../compactX/services/price/PriceService.ts | 19 ++++++++++--------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/typescript/solver/solvers/compactX/services/price/CoinGeckoProvider.ts b/typescript/solver/solvers/compactX/services/price/CoinGeckoProvider.ts index fa145eb1..b46479d5 100644 --- a/typescript/solver/solvers/compactX/services/price/CoinGeckoProvider.ts +++ b/typescript/solver/solvers/compactX/services/price/CoinGeckoProvider.ts @@ -31,7 +31,7 @@ export class CoinGeckoProvider { private log: Logger; private baseUrl: string; private headers: Record; - private readonly CACHE_TTL = 30_000; // 30 seconds + private readonly CACHE_TTL = 120_000; constructor(apiKey?: string) { this.cache = new Map(); @@ -118,7 +118,12 @@ export class CoinGeckoProvider { const { nativeToken } = this.getPlatformInfo(chainId); const url = `${this.baseUrl}/simple/price?ids=${nativeToken}&vs_currencies=usd`; - this.log.debug({ msg: "Fetching native token price", chainId, url }); + this.log.debug({ + name: "CoinGeckoProvider", + msg: "Fetching native token price", + chainId, + url, + }); const data = await this.makeRequest( url, @@ -127,6 +132,7 @@ export class CoinGeckoProvider { this.validateEthPriceResponse(data, nativeToken); this.log.debug({ + name: "CoinGeckoProvider", msg: "Received native token price data", data: JSON.stringify(data), }); @@ -141,7 +147,11 @@ export class CoinGeckoProvider { this.cache.set(chainId, { data: priceData, timestamp }); return priceData; } catch (error) { - this.log.error({ msg: "Failed to fetch ETH price", error }); + this.log.error({ + name: "CoinGeckoProvider", + msg: "Failed to fetch ETH price", + error, + }); throw error; } } diff --git a/typescript/solver/solvers/compactX/services/price/PriceService.ts b/typescript/solver/solvers/compactX/services/price/PriceService.ts index 79353c9a..d65c6b63 100644 --- a/typescript/solver/solvers/compactX/services/price/PriceService.ts +++ b/typescript/solver/solvers/compactX/services/price/PriceService.ts @@ -17,7 +17,7 @@ export class PriceService extends EventEmitter { private log: Logger; private provider: CoinGeckoProvider; private updateInterval: NodeJS.Timeout | null; - private readonly UPDATE_INTERVAL = 10_000; // 10 seconds + private readonly UPDATE_INTERVAL = 60_000; constructor(apiKey?: string) { super(); @@ -30,13 +30,13 @@ export class PriceService extends EventEmitter { public start(): void { // Initial price fetch this.updatePrices().catch((error) => { - this.log.error({ msg: "Failed to fetch initial prices", error }); + this.log.error({ name: "PriceService", msg: "Failed to fetch initial prices", error }); }); // Set up periodic updates this.updateInterval = setInterval(() => { this.updatePrices().catch((error) => { - this.log.error({ msg: "Failed to update prices", error }); + this.log.error({ name: "PriceService", msg: "Failed to update prices", error }); }); }, this.UPDATE_INTERVAL); } @@ -51,13 +51,14 @@ export class PriceService extends EventEmitter { public getPrice(chainId: SupportedChainId): number { const priceData = this.prices.get(chainId); if (!priceData) { - throw new Error(`No price data available for chain ${chainId}`); + this.log.error({ name: "PriceService", msg: "No price data available", chainId }); + return 0; } - // Check if price is stale (older than 30 seconds) - const stalePriceThreshold = 30_000; // 30 seconds + // Check if price is stale + const stalePriceThreshold = 120_000; if (Date.now() - priceData.lastUpdated > stalePriceThreshold) { - this.log.warn({ msg: "Price data is stale", chainId }); + this.log.warn({ name: "PriceService", msg: "Price data is stale", chainId }); } return priceData.price; @@ -71,12 +72,12 @@ export class PriceService extends EventEmitter { price, lastUpdated: Date.now(), }); - this.log.debug({ msg: "Updated ETH price", chainId, price }); + this.log.debug({ name: "PriceService", msg: "Updated ETH price", chainId, price }); // Emit the price update this.emit("price_update", chainId, price); } catch (error) { - this.log.error({ msg: "Failed to update price", chainId, error }); + this.log.error({ name: "PriceService", msg: "Failed to update price", chainId, error }); // Don't update the price if there's an error, keep using the old one } } From e76c15adbfada5f822e6dd6db41503ffec430a54 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Tue, 18 Mar 2025 12:06:14 +0100 Subject: [PATCH 21/41] fix: be specific on the enncode data parameters --- typescript/solver/solvers/compactX/filler.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index 53fc7c98..07954d71 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -325,7 +325,14 @@ export class CompactXFiller extends BaseFiller< const data = tribunal.interface.encodeFunctionData("fill", [ { chainId: request.chainId, - compact, + compact: { + arbiter: compact.arbiter, + sponsor: compact.sponsor, + nonce: compact.nonce, + expires: compact.expires, + id: compact.id, + amount: compact.amount, + }, sponsorSignature: !request.sponsorSignature || request.sponsorSignature === "0x" ? `0x${"0".repeat(128)}` @@ -391,6 +398,7 @@ export class CompactXFiller extends BaseFiller< const claimToken = `0x${claimTokenHex}`.toLowerCase(); // Check if token is ETH/WETH in any supported chain + // TODO: why on any supported chain? Shouldn't it be only the chain of the claim? const isETHorWETH = Object.values(CHAIN_CONFIG).some( (chainConfig) => claimToken === chainConfig.tokens.ETH.address.toLowerCase() || @@ -407,8 +415,10 @@ export class CompactXFiller extends BaseFiller< Number(formatEther(claimAmountLessExecutionCostsWei)) * ethPrice; } else { // Assume USDC with 6 decimals + // TODO-1: refactor this to allow any non-ETH/WETH token claimAmountLessExecutionCostsUSD = - Number(request.compact.amount) / 1e6 - executionCostUSD; + Number(request.compact.amount) / 1e6 - executionCostUSD; + // TODO-2: check how negative values makes this fail claimAmountLessExecutionCostsWei = parseEther( (claimAmountLessExecutionCostsUSD / ethPrice).toString(), ).toBigInt(); @@ -517,7 +527,7 @@ export class CompactXFiller extends BaseFiller< chainId, maxPriorityFeePerGas: priorityFee, gasLimit: finalGasWithBuffer, - data: data, + data, }); const receipt = await response.wait(); From ec6d2a4318a8921f93bfb0cfe39464676225f7af Mon Sep 17 00:00:00 2001 From: fernandomg Date: Wed, 19 Mar 2025 16:15:55 +0100 Subject: [PATCH 22/41] refactor: comapctX filler Co-Authored-By: Lisandro Corbalan --- typescript/solver/solvers/compactX/filler.ts | 247 ++++++++++--------- 1 file changed, 132 insertions(+), 115 deletions(-) diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index 07954d71..95d5c36e 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -1,8 +1,8 @@ -import { AddressZero } from "@ethersproject/constants"; import { type MultiProvider } from "@hyperlane-xyz/sdk"; import type { Result } from "@hyperlane-xyz/utils"; import { formatEther, parseEther } from "@ethersproject/units"; +import assert from "node:assert"; import { Tribunal__factory } from "../../typechain/factories/compactX/contracts/Tribunal__factory.js"; import { BaseFiller } from "../BaseFiller.js"; import { BuildRules, RulesMap } from "../types.js"; @@ -176,7 +176,7 @@ export class CompactXFiller extends BaseFiller< throw new Error("Unsupported tribunal address"); } - const result = await this.processBroadcastTransaction(data, mandateChainId); + const result = await this.processBroadcastTransaction(data); // // Handle the result // wsManager.broadcastFillRequest( @@ -196,23 +196,22 @@ export class CompactXFiller extends BaseFiller< protected async processBroadcastTransaction( request: BroadcastRequest, - chainId: SupportedChainId, ): Promise { - // Get the chain object and config for the mandate's chain - const mandateChainId = Number( - request.compact.mandate.chainId, - ) as SupportedChainId; - const mandateChainConfig = CHAIN_CONFIG[mandateChainId]; - this.log.debug(`Evaluating fill against chainId ${mandateChainId}`); - // Use chain from public client - // const chain = publicClient.chain; - const provider = this.multiProvider.getProvider(chainId); - const fillerAddress = await this.multiProvider.getSignerAddress(chainId); + const mandateChainId = ensureIsSupportedChainId( + request.compact.mandate.chainId, + ); + const provider = this.multiProvider.getProvider(mandateChainId); + const fillerAddress = + await this.multiProvider.getSignerAddress(mandateChainId); // Get current ETH price for the chain from memory - const ethPrice = this.priceService.getPrice(chainId); - this.log.debug({ msg: "Current ETH price", chainId, ethPrice }); + const ethPrice = this.priceService.getPrice(mandateChainId); + this.log.debug({ + msg: "Current ETH price", + chainId: mandateChainId, + ethPrice, + }); // Extract the dispensation amount in USD from the request and add 25% buffer const dispensationUSD = Number.parseFloat( @@ -225,30 +224,10 @@ export class CompactXFiller extends BaseFiller< const minimumAmount = BigInt(request.compact.mandate.minimumAmount); const simulationSettlement = (minimumAmount * 101n) / 100n; - // Get cached balances for the mandate chain - // const cachedBalances = tokenBalanceService.getBalances(chainId); - // if (!cachedBalances) { - // return { - // success: false, - // reason: "Could not get cached balances for chain", - // details: { - // dispensationUSD, - // }, - // }; - // } - // Calculate settlement amount based on mandate token (ETH/WETH check) const mandateTokenAddress = request.compact.mandate.token.toLowerCase(); - const mandateTokens = mandateChainConfig.tokens; - const isSettlementTokenETHorWETH = - mandateTokenAddress === mandateTokens.ETH.address.toLowerCase() || - mandateTokenAddress === mandateTokens.WETH.address.toLowerCase(); - if ( - mandateTokenAddress !== mandateTokens.ETH.address.toLowerCase() && - mandateTokenAddress !== mandateTokens.WETH.address.toLowerCase() && - mandateTokenAddress !== mandateTokens.USDC.address.toLowerCase() - ) { + if (isSupportedChainToken(mandateChainId, mandateTokenAddress)) { return { success: false, reason: "Unsupported mandate token", @@ -259,14 +238,12 @@ export class CompactXFiller extends BaseFiller< } // Get the relevant token balance based on mandate token - const relevantTokenBalance = await retrieveTokenBalance( - mandateTokenAddress, - fillerAddress, - provider, - ); + const relevantTokenBalance = ( + await retrieveTokenBalance(mandateTokenAddress, fillerAddress, provider) + ).toBigInt(); // Check if we have sufficient token balance for minimum amount - if (relevantTokenBalance.lt(minimumAmount)) { + if (relevantTokenBalance < minimumAmount) { return { success: false, reason: "Token balance is less than minimum required settlement amount", @@ -277,7 +254,7 @@ export class CompactXFiller extends BaseFiller< } // Check if we have sufficient token balance for simulation settlement - if (relevantTokenBalance.lt(simulationSettlement)) { + if (relevantTokenBalance < simulationSettlement) { return { success: false, reason: "Token balance is less than simulation settlement amount", @@ -287,23 +264,32 @@ export class CompactXFiller extends BaseFiller< }; } + // Get current base fee from latest block using mandate chain + const block = await provider.getBlock("latest"); + const baseFee = block.baseFeePerGas?.toBigInt(); + + if (!baseFee) { + return { + success: false, + reason: "Could not get base fee from latest block", + details: { + dispensationUSD, + }, + }; + } + // Calculate simulation priority fee - const simulationPriorityFee = CHAIN_PRIORITY_FEES[chainId]; + const maxPriorityFeePerGas = CHAIN_PRIORITY_FEES[mandateChainId]; + const maxFeePerGas = maxPriorityFeePerGas + (baseFee * 120n) / 100n; // Base fee + 20% buffer // Calculate simulation value - const simulationValue = - request.compact.mandate.token === AddressZero - ? simulationSettlement + bufferedDispensation - : bufferedDispensation; + const simulationValue = calculateFillValue(request, simulationSettlement); - const ethBalance = await retrieveTokenBalance( - AddressZero, - fillerAddress, - provider, - ); + const signer = this.multiProvider.getSigner(mandateChainId); + const ethBalance = (await signer.getBalance()).toBigInt(); // Check if we have sufficient ETH for simulation value - if (ethBalance.lt(simulationValue)) { + if (ethBalance < simulationValue) { return { success: false, reason: "ETH balance is less than simulation value", @@ -313,8 +299,6 @@ export class CompactXFiller extends BaseFiller< }; } - const signer = this.multiProvider.getSigner(chainId); - const tribunal = Tribunal__factory.connect( request.compact.mandate.tribunal, signer, @@ -351,29 +335,14 @@ export class CompactXFiller extends BaseFiller< fillerAddress, ]); - // Get current base fee from latest block using mandate chain - const block = await provider.getBlock("latest"); - const baseFee = block.baseFeePerGas?.toBigInt(); - - if (!baseFee) { - return { - success: false, - reason: "Could not get base fee from latest block", - details: { - dispensationUSD, - }, - }; - } - // Estimate gas using simulation values and add 25% buffer this.log.debug("Performing initial simulation to get gas estimate"); - const estimatedGas = await provider.estimateGas({ + const estimatedGas = await signer.estimateGas({ to: request.compact.mandate.tribunal, value: simulationValue, data, - maxFeePerGas: simulationPriorityFee + (baseFee * 120n) / 100n, - maxPriorityFeePerGas: simulationPriorityFee, - from: fillerAddress, + maxFeePerGas, + maxPriorityFeePerGas, }); const gasWithBuffer = (estimatedGas.toBigInt() * 125n) / 100n; @@ -384,7 +353,6 @@ export class CompactXFiller extends BaseFiller< }); // Calculate max fee and total gas cost - const maxFeePerGas = simulationPriorityFee + (baseFee * 120n) / 100n; // Base fee + 20% buffer const totalGasCost = maxFeePerGas * gasWithBuffer; const gasCostEth = Number(formatEther(totalGasCost)); const gasCostUSD = gasCostEth * ethPrice; @@ -399,11 +367,7 @@ export class CompactXFiller extends BaseFiller< // Check if token is ETH/WETH in any supported chain // TODO: why on any supported chain? Shouldn't it be only the chain of the claim? - const isETHorWETH = Object.values(CHAIN_CONFIG).some( - (chainConfig) => - claimToken === chainConfig.tokens.ETH.address.toLowerCase() || - claimToken === chainConfig.tokens.WETH.address.toLowerCase(), - ); + const isETHorWETH = isNativeOrWrappedNative(request.chainId, claimToken); // Calculate claim amount less execution costs let claimAmountLessExecutionCostsWei: bigint; @@ -415,15 +379,20 @@ export class CompactXFiller extends BaseFiller< Number(formatEther(claimAmountLessExecutionCostsWei)) * ethPrice; } else { // Assume USDC with 6 decimals - // TODO-1: refactor this to allow any non-ETH/WETH token + // TODO-1: refactor this to allow any non-ETH/WETH token, not only USDC claimAmountLessExecutionCostsUSD = - Number(request.compact.amount) / 1e6 - executionCostUSD; + Number(request.compact.amount) / 1e6 - executionCostUSD; // TODO-2: check how negative values makes this fail claimAmountLessExecutionCostsWei = parseEther( - (claimAmountLessExecutionCostsUSD / ethPrice).toString(), + (claimAmountLessExecutionCostsUSD / ethPrice).toFixed(18), ).toBigInt(); } + const isSettlementTokenETHorWETH = isNativeOrWrappedNative( + request.compact.mandate.chainId, + mandateTokenAddress, + ); + const settlementAmount = isSettlementTokenETHorWETH ? claimAmountLessExecutionCostsWei : BigInt(Math.floor(claimAmountLessExecutionCostsUSD * 1e6)); // Scale up USDC amount @@ -435,7 +404,7 @@ export class CompactXFiller extends BaseFiller< }); // Check if we have sufficient token balance for settlement amount - if (relevantTokenBalance.toBigInt() < settlementAmount) { + if (relevantTokenBalance < settlementAmount) { return { success: false, reason: "Token balance is less than settlement amount", @@ -457,8 +426,11 @@ export class CompactXFiller extends BaseFiller< }; } + // Calculate final value based on mandate token (using chain-specific ETH address) + const value = calculateFillValue(request, settlementAmount); + // Check if we have sufficient ETH for value - if (ethBalance.toBigInt() < settlementAmount + bufferedDispensation) { + if (ethBalance < value) { return { success: false, reason: "ETH balance is less than settlement value", @@ -468,27 +440,18 @@ export class CompactXFiller extends BaseFiller< }; } - // Calculate final priority fee based on actual settlement amount - const priorityFee = CHAIN_PRIORITY_FEES[chainId]; - - // Calculate final value based on mandate token (using chain-specific ETH address) - const value = - mandateTokenAddress === - mandateChainConfig.tokens.ETH.address.toLowerCase() - ? settlementAmount + bufferedDispensation - : bufferedDispensation; - // Do final gas estimation with actual values - const finalEstimatedGas = await provider.estimateGas({ - to: request.compact.mandate.tribunal, - value, - data, - maxFeePerGas: priorityFee + (baseFee * 120n) / 100n, - maxPriorityFeePerGas: priorityFee, - from: fillerAddress, - }); - - const finalGasWithBuffer = (finalEstimatedGas.toBigInt() * 125n) / 100n; + const finalEstimatedGas = ( + await signer.estimateGas({ + to: request.compact.mandate.tribunal, + value, + data, + maxFeePerGas, + maxPriorityFeePerGas, + }) + ).toBigInt(); + + const finalGasWithBuffer = (finalEstimatedGas * 125n) / 100n; this.log.debug({ msg: "Got final gas estimate", @@ -497,11 +460,10 @@ export class CompactXFiller extends BaseFiller< }); // Check if we have enough ETH for value + gas using cached balance - const requiredBalance = - value + (priorityFee + (baseFee * 120n) / 100n) * finalGasWithBuffer; + const requiredBalance = value + maxFeePerGas * finalGasWithBuffer; - if (ethBalance.toBigInt() < requiredBalance) { - const shortageWei = requiredBalance - ethBalance.toBigInt(); + if (ethBalance < requiredBalance) { + const shortageWei = requiredBalance - ethBalance; const shortageEth = Number(formatEther(shortageWei)); return { success: false, @@ -523,9 +485,9 @@ export class CompactXFiller extends BaseFiller< const response = await signer.sendTransaction({ to: request.compact.mandate.tribunal, value, - maxFeePerGas: priorityFee + (baseFee * 120n) / 100n, - chainId, - maxPriorityFeePerGas: priorityFee, + maxFeePerGas, + chainId: mandateChainId, + maxPriorityFeePerGas, gasLimit: finalGasWithBuffer, data, }); @@ -533,15 +495,14 @@ export class CompactXFiller extends BaseFiller< const receipt = await response.wait(); // Calculate final costs and profit - const finalGasCostWei = - (priorityFee + (baseFee * 120n) / 100n) * finalGasWithBuffer; + const finalGasCostWei = maxFeePerGas * finalGasWithBuffer; const finalGasCostEth = Number(formatEther(finalGasCostWei)); const finalGasCostUSD = finalGasCostEth * ethPrice; this.log.info({ msg: "Transaction submitted", hash: receipt.transactionHash, - blockExplorer: `${mandateChainConfig.blockExplorer}/tx/${receipt.transactionHash})`, + blockExplorer: `${getChainConfig(mandateChainId).blockExplorer}/tx/${receipt.transactionHash})`, }); this.log.debug({ msg: "Settlement amount", @@ -609,6 +570,62 @@ const enoughBalanceOnDestination: CompactXRule = async ( return { data: "Enough tokens to fulfill the intent", success: true }; }; +function isSupportedChainId( + chainId: string | number, +): chainId is SupportedChainId { + return SUPPORTED_CHAINS.includes(+chainId as SupportedChainId); +} + +function ensureIsSupportedChainId(chainId: string | number) { + assert(isSupportedChainId(chainId), `Unsupported chainId: ${chainId}`); + + return chainId; +} + +function getChainConfig(chainId: string | number) { + const supportedChainId = ensureIsSupportedChainId(chainId); + return CHAIN_CONFIG[supportedChainId]; +} + +function getChainSupportedTokens(chainId: string | number) { + return getChainConfig(chainId).tokens; +} + +function isNativeOrWrappedNative( + chainId: string | number, + token: string, +): boolean { + const { ETH, WETH } = getChainSupportedTokens(chainId); + token = token.toLowerCase(); + + return ( + token === ETH.address.toLowerCase() || token === WETH.address.toLowerCase() + ); +} + +function calculateFillValue( + request: BroadcastRequest, + settlementAmount: bigint, +) { + const { ETH } = getChainSupportedTokens(request.compact.mandate.chainId); + const mandateTokenAddress = request.compact.mandate.token.toLowerCase(); + const bufferedDispensation = + (BigInt(request.context.dispensation) * 125n) / 100n; + + return mandateTokenAddress === ETH.address.toLowerCase() + ? settlementAmount + bufferedDispensation + : bufferedDispensation; +} + +// TODO-RULE: move into a rule +function isSupportedChainToken(chainId: string | number, token: string) { + const chainTokens = getChainSupportedTokens(chainId); + + return !Object.keys(chainTokens).some( + (symbol) => token === chainTokens[symbol].address.toLowerCase(), + ); +} + export const create = ( multiProvider: MultiProvider, customRules?: RulesMap, From 27cf06a084acb5aaae8d921b0e0f308b8735ad0d Mon Sep 17 00:00:00 2001 From: fernandomg Date: Wed, 19 Mar 2025 16:16:35 +0100 Subject: [PATCH 23/41] fix: properly identify native tokens Co-Authored-By: Lisandro Corbalan --- typescript/solver/solvers/utils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/typescript/solver/solvers/utils.ts b/typescript/solver/solvers/utils.ts index a2e13dbb..9bb151fa 100644 --- a/typescript/solver/solvers/utils.ts +++ b/typescript/solver/solvers/utils.ts @@ -5,7 +5,7 @@ import { AddressZero } from "@ethersproject/constants"; import { formatUnits } from "@ethersproject/units"; import type { ChainMap, ChainMetadata } from "@hyperlane-xyz/sdk"; import { MultiProvider } from "@hyperlane-xyz/sdk"; -import { ensure0x } from "@hyperlane-xyz/utils"; +import { ensure0x, isZeroishAddress } from "@hyperlane-xyz/utils"; import { password } from "@inquirer/prompts"; import { MNEMONIC, PRIVATE_KEY } from "../config/index.js"; @@ -140,7 +140,7 @@ export function retrieveTokenBalance( ownerAddress: string, provider: Provider, ) { - if (tokenAddress === AddressZero) { + if (isZeroishAddress(tokenAddress)) { return provider.getBalance(ownerAddress); } From 0f0bc6aaa8d516fca526a7a6973b9122bcd83561 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Wed, 19 Mar 2025 20:51:21 +0100 Subject: [PATCH 24/41] refactor(compactX): organize filler flow Co-Authored-By: Lisandro Corbalan --- typescript/solver/solvers/compactX/filler.ts | 322 ++++++++----------- 1 file changed, 130 insertions(+), 192 deletions(-) diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index 95d5c36e..353b20b2 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -23,7 +23,6 @@ import { BroadcastRequestSchema, type CompactXMetadata, type CompactXParsedArgs, - ProcessedBroadcastResult, } from "./types.js"; import { deriveClaimHash, log } from "./utils.js"; import { verifyBroadcastRequest } from "./validation/signature.js"; @@ -176,127 +175,68 @@ export class CompactXFiller extends BaseFiller< throw new Error("Unsupported tribunal address"); } - const result = await this.processBroadcastTransaction(data); - - // // Handle the result - // wsManager.broadcastFillRequest( - // JSON.stringify(request), - // result.success, - // result.success ? undefined : result.reason - // ); - - // return res.status(result.success ? 200 : 400).json({ - // success: result.success, - // ...(result.success - // ? { transactionHash: result.hash } - // : { reason: result.reason }), - // details: result.details, - // }); + await this.processBroadcastTransaction(data); } - protected async processBroadcastTransaction( - request: BroadcastRequest, - ): Promise { + protected async processBroadcastTransaction(request: BroadcastRequest) { // Use chain from public client const mandateChainId = ensureIsSupportedChainId( request.compact.mandate.chainId, ); const provider = this.multiProvider.getProvider(mandateChainId); - const fillerAddress = - await this.multiProvider.getSignerAddress(mandateChainId); + const signer = this.multiProvider.getSigner(mandateChainId); + const fillerAddress = await signer.getAddress(); // Get current ETH price for the chain from memory const ethPrice = this.priceService.getPrice(mandateChainId); - this.log.debug({ - msg: "Current ETH price", - chainId: mandateChainId, - ethPrice, - }); - - // Extract the dispensation amount in USD from the request and add 25% buffer - const dispensationUSD = Number.parseFloat( - request.context.dispensationUSD.replace("$", ""), - ); - const bufferedDispensation = - (BigInt(request.context.dispensation) * 125n) / 100n; // Calculate simulation values const minimumAmount = BigInt(request.compact.mandate.minimumAmount); - const simulationSettlement = (minimumAmount * 101n) / 100n; + const bufferedMinimumAmount = (minimumAmount * 101n) / 100n; // Calculate settlement amount based on mandate token (ETH/WETH check) const mandateTokenAddress = request.compact.mandate.token.toLowerCase(); if (isSupportedChainToken(mandateChainId, mandateTokenAddress)) { - return { - success: false, - reason: "Unsupported mandate token", - details: { - dispensationUSD, - }, - }; + throw new Error( + `Unsupported mandate token ${mandateTokenAddress}, on chain ${mandateChainId}`, + ); } // Get the relevant token balance based on mandate token - const relevantTokenBalance = ( + const mandateTokenBalance = ( await retrieveTokenBalance(mandateTokenAddress, fillerAddress, provider) ).toBigInt(); - // Check if we have sufficient token balance for minimum amount - if (relevantTokenBalance < minimumAmount) { - return { - success: false, - reason: "Token balance is less than minimum required settlement amount", - details: { - dispensationUSD, - }, - }; - } - // Check if we have sufficient token balance for simulation settlement - if (relevantTokenBalance < simulationSettlement) { - return { - success: false, - reason: "Token balance is less than simulation settlement amount", - details: { - dispensationUSD, - }, - }; + if (mandateTokenBalance < bufferedMinimumAmount) { + throw new Error( + `Token balance (${mandateTokenBalance}) is less than simulation settlement amount (${bufferedMinimumAmount})`, + ); } // Get current base fee from latest block using mandate chain const block = await provider.getBlock("latest"); - const baseFee = block.baseFeePerGas?.toBigInt(); + const baseFeePerGas = block.baseFeePerGas?.toBigInt(); - if (!baseFee) { - return { - success: false, - reason: "Could not get base fee from latest block", - details: { - dispensationUSD, - }, - }; + if (!baseFeePerGas) { + throw new Error("Could not get base fee from latest block"); } // Calculate simulation priority fee const maxPriorityFeePerGas = CHAIN_PRIORITY_FEES[mandateChainId]; - const maxFeePerGas = maxPriorityFeePerGas + (baseFee * 120n) / 100n; // Base fee + 20% buffer + const bufferedBaseFeePerGas = (baseFeePerGas * 120n) / 100n; // Base fee + 20% buffer + const maxFeePerGas = maxPriorityFeePerGas + bufferedBaseFeePerGas; // Calculate simulation value - const simulationValue = calculateFillValue(request, simulationSettlement); - - const signer = this.multiProvider.getSigner(mandateChainId); + const simulationValue = calculateFillValue(request, bufferedMinimumAmount); const ethBalance = (await signer.getBalance()).toBigInt(); // Check if we have sufficient ETH for simulation value if (ethBalance < simulationValue) { - return { - success: false, - reason: "ETH balance is less than simulation value", - details: { - dispensationUSD, - }, - }; + throw new Error( + `ETH balance (${ethBalance}) is less than simulation value (${simulationValue})`, + ); } const tribunal = Tribunal__factory.connect( @@ -337,107 +277,51 @@ export class CompactXFiller extends BaseFiller< // Estimate gas using simulation values and add 25% buffer this.log.debug("Performing initial simulation to get gas estimate"); - const estimatedGas = await signer.estimateGas({ - to: request.compact.mandate.tribunal, - value: simulationValue, - data, - maxFeePerGas, - maxPriorityFeePerGas, - }); + const estimatedGas = ( + await signer.estimateGas({ + to: request.compact.mandate.tribunal, + value: simulationValue, + data, + maxFeePerGas, + maxPriorityFeePerGas, + }) + ).toBigInt(); - const gasWithBuffer = (estimatedGas.toBigInt() * 125n) / 100n; - this.log.debug({ - msg: "Got gas estimate", + const maxSettlementAmount = getMaxSettlementAmount({ estimatedGas, - gasWithBuffer, + ethPrice, + maxFeePerGas, + request, }); - // Calculate max fee and total gas cost - const totalGasCost = maxFeePerGas * gasWithBuffer; - const gasCostEth = Number(formatEther(totalGasCost)); - const gasCostUSD = gasCostEth * ethPrice; - - // Calculate execution costs - const executionCostWei = totalGasCost + bufferedDispensation; - const executionCostUSD = gasCostUSD + dispensationUSD; - - // Get claim token from compact ID and check if it's ETH/WETH across all chains - const claimTokenHex = BigInt(request.compact.id).toString(16).slice(-40); - const claimToken = `0x${claimTokenHex}`.toLowerCase(); - - // Check if token is ETH/WETH in any supported chain - // TODO: why on any supported chain? Shouldn't it be only the chain of the claim? - const isETHorWETH = isNativeOrWrappedNative(request.chainId, claimToken); - - // Calculate claim amount less execution costs - let claimAmountLessExecutionCostsWei: bigint; - let claimAmountLessExecutionCostsUSD: number; - if (isETHorWETH) { - claimAmountLessExecutionCostsWei = - BigInt(request.compact.amount) - executionCostWei; - claimAmountLessExecutionCostsUSD = - Number(formatEther(claimAmountLessExecutionCostsWei)) * ethPrice; - } else { - // Assume USDC with 6 decimals - // TODO-1: refactor this to allow any non-ETH/WETH token, not only USDC - claimAmountLessExecutionCostsUSD = - Number(request.compact.amount) / 1e6 - executionCostUSD; - // TODO-2: check how negative values makes this fail - claimAmountLessExecutionCostsWei = parseEther( - (claimAmountLessExecutionCostsUSD / ethPrice).toFixed(18), - ).toBigInt(); - } - - const isSettlementTokenETHorWETH = isNativeOrWrappedNative( - request.compact.mandate.chainId, - mandateTokenAddress, - ); - - const settlementAmount = isSettlementTokenETHorWETH - ? claimAmountLessExecutionCostsWei - : BigInt(Math.floor(claimAmountLessExecutionCostsUSD * 1e6)); // Scale up USDC amount - this.log.debug({ msg: "Settlement", - amount: settlementAmount, + amount: maxSettlementAmount, minimum: minimumAmount, }); // Check if we have sufficient token balance for settlement amount - if (relevantTokenBalance < settlementAmount) { - return { - success: false, - reason: "Token balance is less than settlement amount", - details: { - dispensationUSD, - }, - }; + if (mandateTokenBalance < maxSettlementAmount) { + throw new Error( + `Token balance (${mandateTokenBalance}) is less than settlement amount (${maxSettlementAmount})`, + ); } // Check if profitable (settlement amount > minimum amount) - if (settlementAmount <= minimumAmount) { - return { - success: false, - reason: "Fill estimated to be unprofitable after execution costs", - details: { - dispensationUSD, - gasCostUSD, - }, - }; + if (maxSettlementAmount <= minimumAmount) { + throw new Error( + `Fill estimated to be unprofitable after execution costs (${maxSettlementAmount} <= ${minimumAmount})`, + ); } // Calculate final value based on mandate token (using chain-specific ETH address) - const value = calculateFillValue(request, settlementAmount); + const value = calculateFillValue(request, maxSettlementAmount); // Check if we have sufficient ETH for value if (ethBalance < value) { - return { - success: false, - reason: "ETH balance is less than settlement value", - details: { - dispensationUSD, - }, - }; + throw new Error( + `ETH balance (${ethBalance}) is less than settlement value (${value})`, + ); } // Do final gas estimation with actual values @@ -451,32 +335,30 @@ export class CompactXFiller extends BaseFiller< }) ).toBigInt(); - const finalGasWithBuffer = (finalEstimatedGas * 125n) / 100n; + const bufferedGasLimit = (finalEstimatedGas * 125n) / 100n; this.log.debug({ msg: "Got final gas estimate", finalEstimatedGas, - finalGasWithBuffer, + finalGasWithBuffer: bufferedGasLimit, }); // Check if we have enough ETH for value + gas using cached balance - const requiredBalance = value + maxFeePerGas * finalGasWithBuffer; + const requiredBalance = value + maxFeePerGas * bufferedGasLimit; if (ethBalance < requiredBalance) { const shortageWei = requiredBalance - ethBalance; - const shortageEth = Number(formatEther(shortageWei)); - return { - success: false, - reason: `Insufficient ETH balance. Need ${formatEther(requiredBalance)} ETH but only have ${formatEther(ethBalance)} ETH (short ${shortageEth.toFixed(6)} ETH)`, - details: { - dispensationUSD, - gasCostUSD, - }, - }; + const shortageEth = +formatEther(shortageWei); + + throw new Error( + `Insufficient ETH balance. Need ${formatEther(requiredBalance)} ETH but only have ${formatEther(ethBalance)} ETH (short ${shortageEth.toFixed( + 6, + )} ETH)`, + ); } this.log.debug({ - msg: "account balance exceeds required balance. Submitting transaction!", + msg: "Account balance exceeds required balance. Submitting transaction!", ethBalance, requiredBalance, }); @@ -488,15 +370,15 @@ export class CompactXFiller extends BaseFiller< maxFeePerGas, chainId: mandateChainId, maxPriorityFeePerGas, - gasLimit: finalGasWithBuffer, + gasLimit: bufferedGasLimit, data, }); const receipt = await response.wait(); // Calculate final costs and profit - const finalGasCostWei = maxFeePerGas * finalGasWithBuffer; - const finalGasCostEth = Number(formatEther(finalGasCostWei)); + const finalGasCostWei = maxFeePerGas * bufferedGasLimit; + const finalGasCostEth = +formatEther(finalGasCostWei); const finalGasCostUSD = finalGasCostEth * ethPrice; this.log.info({ @@ -506,7 +388,7 @@ export class CompactXFiller extends BaseFiller< }); this.log.debug({ msg: "Settlement amount", - settlementAmount, + settlementAmount: maxSettlementAmount, minimumAmount, }); this.log.debug({ @@ -514,17 +396,6 @@ export class CompactXFiller extends BaseFiller< finalGasCostUSD: finalGasCostUSD.toFixed(2), finalGasCostWei: `${formatEther(finalGasCostWei)} ETH)`, }); - - return { - success: true, - hash: receipt.transactionHash, - details: { - dispensationUSD, - gasCostUSD: finalGasCostUSD, - netProfitUSD: 0, - minProfitUSD: 0, - }, - }; } } @@ -626,6 +497,73 @@ function isSupportedChainToken(chainId: string | number, token: string) { ); } +function getMaxSettlementAmount({ + estimatedGas, + ethPrice, + maxFeePerGas, + request, +}: { + estimatedGas: bigint; + ethPrice: number; + maxFeePerGas: bigint; + request: BroadcastRequest; +}) { + // Extract the dispensation amount in USD from the request and add 25% buffer + const dispensationUSD = +request.context.dispensationUSD.replace("$", ""); + const dispensation = BigInt(request.context.dispensation); + const bufferedDispensation = (dispensation * 125n) / 100n; + + const bufferedEstimatedGas = (estimatedGas * 125n) / 100n; + log.debug({ + msg: "Got gas estimate", + estimatedGas, + bufferedEstimatedGas, + }); + + // Calculate max fee and total gas cost + const gasCostWei = maxFeePerGas * bufferedEstimatedGas; + const gasCostEth = +formatEther(gasCostWei); + const gasCostUSD = gasCostEth * ethPrice; + + // Calculate execution costs + const executionCostWei = gasCostWei + bufferedDispensation; + const executionCostUSD = gasCostUSD + dispensationUSD; + + // Get claim token from compact ID and check if it's ETH/WETH across all chains + const claimToken = + `0x${BigInt(request.compact.id).toString(16).slice(-40)}`.toLowerCase(); + + // Check if token is ETH/WETH in any supported chain + const isClaimETHorWETH = isNativeOrWrappedNative(request.chainId, claimToken); + const isSettlementTokenETHorWETH = isNativeOrWrappedNative( + request.compact.mandate.chainId, + request.compact.mandate.token.toLowerCase(), + ); + + // Calculate claim amount less execution costs + let claimAmountLessExecutionCostsWei: bigint; + let claimAmountLessExecutionCostsUSD: number; + + if (isClaimETHorWETH) { + claimAmountLessExecutionCostsWei = + BigInt(request.compact.amount) - executionCostWei; + claimAmountLessExecutionCostsUSD = + +formatEther(claimAmountLessExecutionCostsWei) * ethPrice; + } else { + // Assume USDC with 6 decimals + // TODO-1: refactor this to allow any non-ETH/WETH token, not only USDC + claimAmountLessExecutionCostsUSD = + Number(request.compact.amount) / 1e6 - executionCostUSD; + claimAmountLessExecutionCostsWei = parseEther( + (claimAmountLessExecutionCostsUSD / ethPrice).toFixed(18), + ).toBigInt(); + } + + return isSettlementTokenETHorWETH + ? claimAmountLessExecutionCostsWei + : BigInt(Math.floor(claimAmountLessExecutionCostsUSD * 1e6)); // Scale up USDC amount +} + export const create = ( multiProvider: MultiProvider, customRules?: RulesMap, From d0b0d613081190e45a9a643b2ec692c780eac7f1 Mon Sep 17 00:00:00 2001 From: Lisandro Corbalan Date: Thu, 20 Mar 2025 09:18:35 -0300 Subject: [PATCH 25/41] fix: minor errors preventing the build from working --- .../solver/solvers/compactX/services/TheCompactService.ts | 1 - typescript/solver/solvers/compactX/utils.ts | 1 - typescript/solver/solvers/eco/utils.ts | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/typescript/solver/solvers/compactX/services/TheCompactService.ts b/typescript/solver/solvers/compactX/services/TheCompactService.ts index a235310a..0e0b25c2 100644 --- a/typescript/solver/solvers/compactX/services/TheCompactService.ts +++ b/typescript/solver/solvers/compactX/services/TheCompactService.ts @@ -1,5 +1,4 @@ import { - CHAIN_PRIORITY_FEES, type SupportedChainId, } from "../config/constants.js"; import type { Logger } from "../../../logger.js"; diff --git a/typescript/solver/solvers/compactX/utils.ts b/typescript/solver/solvers/compactX/utils.ts index 08dfe587..9588d06b 100644 --- a/typescript/solver/solvers/compactX/utils.ts +++ b/typescript/solver/solvers/compactX/utils.ts @@ -2,7 +2,6 @@ import { createLogger } from "../../logger.js"; import { metadata } from "./config/index.js"; import { keccak256 } from "@ethersproject/keccak256"; -import { arrayify } from "@ethersproject/bytes"; import { AbiCoder } from "@ethersproject/abi"; import { toUtf8Bytes } from "@ethersproject/strings"; import { BroadcastRequest } from "./types.js"; diff --git a/typescript/solver/solvers/eco/utils.ts b/typescript/solver/solvers/eco/utils.ts index 95c9f066..e0ec628c 100644 --- a/typescript/solver/solvers/eco/utils.ts +++ b/typescript/solver/solvers/eco/utils.ts @@ -31,7 +31,7 @@ export async function withdrawRewards( log.debug(`${protocolName} - Intent proven: ${_hash}`); const settler = IntentSource__factory.connect( - metadata.intentSources.find( + metadata.intentSources.blockchainEvents.find( (source) => source.chainName == originChainName, )!.address, signer, From bb6d7268d14798e2d53d28f23dae11e278f8a2fc Mon Sep 17 00:00:00 2001 From: fernandomg Date: Thu, 20 Mar 2025 17:27:10 +0100 Subject: [PATCH 26/41] refactor(compactX): move util functions to utils file Co-Authored-By: Lisandro Corbalan --- .../solvers/compactX/config/constants.ts | 4 +- .../solvers/compactX/config/metadata.ts | 4 +- typescript/solver/solvers/compactX/filler.ts | 131 +----------------- typescript/solver/solvers/compactX/utils.ts | 126 +++++++++++++++++ 4 files changed, 133 insertions(+), 132 deletions(-) diff --git a/typescript/solver/solvers/compactX/config/constants.ts b/typescript/solver/solvers/compactX/config/constants.ts index b9ad5e5a..bb762c25 100644 --- a/typescript/solver/solvers/compactX/config/constants.ts +++ b/typescript/solver/solvers/compactX/config/constants.ts @@ -3,14 +3,14 @@ import { Address } from "@hyperlane-xyz/utils"; export const SUPPORTED_CHAINS = [1, 10, 130, 8453] as const; // Mainnet, Optimism, Unichain, & Base export type SupportedChainId = (typeof SUPPORTED_CHAINS)[number]; -interface TokenConfig { +export interface TokenConfig { address: Address; decimals: number; symbol: string; coingeckoId: string; } -interface ChainConfig { +export interface ChainConfig { name: string; nativeToken: string; coingeckoId: string; diff --git a/typescript/solver/solvers/compactX/config/metadata.ts b/typescript/solver/solvers/compactX/config/metadata.ts index 4f90af50..ede32377 100644 --- a/typescript/solver/solvers/compactX/config/metadata.ts +++ b/typescript/solver/solvers/compactX/config/metadata.ts @@ -5,8 +5,8 @@ const metadata: CompactXMetadata = { intentSources: { webSockets: [ { - // url: "ws://localhost:3000/ws", - url: "wss://compactx-disseminator.com/ws", + url: "ws://localhost:3000/ws", + // url: "wss://compactx-disseminator.com/ws", }, ], }, diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index 353b20b2..426de7d2 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -1,19 +1,17 @@ import { type MultiProvider } from "@hyperlane-xyz/sdk"; import type { Result } from "@hyperlane-xyz/utils"; -import { formatEther, parseEther } from "@ethersproject/units"; -import assert from "node:assert"; +import { formatEther } from "@ethersproject/units"; import { Tribunal__factory } from "../../typechain/factories/compactX/contracts/Tribunal__factory.js"; import { BaseFiller } from "../BaseFiller.js"; import { BuildRules, RulesMap } from "../types.js"; import { retrieveTokenBalance } from "../utils.js"; import { - CHAIN_CONFIG, CHAIN_PRIORITY_FEES, SUPPORTED_ARBITER_ADDRESSES, SUPPORTED_CHAINS, SUPPORTED_TRIBUNAL_ADDRESSES, - SupportedChainId, + SupportedChainId } from "./config/constants.js"; import { allowBlockLists, metadata } from "./config/index.js"; import { PriceService } from "./services/price/PriceService.js"; @@ -24,7 +22,7 @@ import { type CompactXMetadata, type CompactXParsedArgs, } from "./types.js"; -import { deriveClaimHash, log } from "./utils.js"; +import { calculateFillValue, deriveClaimHash, ensureIsSupportedChainId, getChainConfig, getMaxSettlementAmount, isSupportedChainToken, log } from "./utils.js"; import { verifyBroadcastRequest } from "./validation/signature.js"; export type CompactXRule = CompactXFiller["rules"][number]; @@ -441,129 +439,6 @@ const enoughBalanceOnDestination: CompactXRule = async ( return { data: "Enough tokens to fulfill the intent", success: true }; }; -function isSupportedChainId( - chainId: string | number, -): chainId is SupportedChainId { - return SUPPORTED_CHAINS.includes(+chainId as SupportedChainId); -} - -function ensureIsSupportedChainId(chainId: string | number) { - assert(isSupportedChainId(chainId), `Unsupported chainId: ${chainId}`); - - return chainId; -} - -function getChainConfig(chainId: string | number) { - const supportedChainId = ensureIsSupportedChainId(chainId); - return CHAIN_CONFIG[supportedChainId]; -} - -function getChainSupportedTokens(chainId: string | number) { - return getChainConfig(chainId).tokens; -} - -function isNativeOrWrappedNative( - chainId: string | number, - token: string, -): boolean { - const { ETH, WETH } = getChainSupportedTokens(chainId); - token = token.toLowerCase(); - - return ( - token === ETH.address.toLowerCase() || token === WETH.address.toLowerCase() - ); -} - -function calculateFillValue( - request: BroadcastRequest, - settlementAmount: bigint, -) { - const { ETH } = getChainSupportedTokens(request.compact.mandate.chainId); - const mandateTokenAddress = request.compact.mandate.token.toLowerCase(); - const bufferedDispensation = - (BigInt(request.context.dispensation) * 125n) / 100n; - - return mandateTokenAddress === ETH.address.toLowerCase() - ? settlementAmount + bufferedDispensation - : bufferedDispensation; -} - -// TODO-RULE: move into a rule -function isSupportedChainToken(chainId: string | number, token: string) { - const chainTokens = getChainSupportedTokens(chainId); - - return !Object.keys(chainTokens).some( - (symbol) => token === chainTokens[symbol].address.toLowerCase(), - ); -} - -function getMaxSettlementAmount({ - estimatedGas, - ethPrice, - maxFeePerGas, - request, -}: { - estimatedGas: bigint; - ethPrice: number; - maxFeePerGas: bigint; - request: BroadcastRequest; -}) { - // Extract the dispensation amount in USD from the request and add 25% buffer - const dispensationUSD = +request.context.dispensationUSD.replace("$", ""); - const dispensation = BigInt(request.context.dispensation); - const bufferedDispensation = (dispensation * 125n) / 100n; - - const bufferedEstimatedGas = (estimatedGas * 125n) / 100n; - log.debug({ - msg: "Got gas estimate", - estimatedGas, - bufferedEstimatedGas, - }); - - // Calculate max fee and total gas cost - const gasCostWei = maxFeePerGas * bufferedEstimatedGas; - const gasCostEth = +formatEther(gasCostWei); - const gasCostUSD = gasCostEth * ethPrice; - - // Calculate execution costs - const executionCostWei = gasCostWei + bufferedDispensation; - const executionCostUSD = gasCostUSD + dispensationUSD; - - // Get claim token from compact ID and check if it's ETH/WETH across all chains - const claimToken = - `0x${BigInt(request.compact.id).toString(16).slice(-40)}`.toLowerCase(); - - // Check if token is ETH/WETH in any supported chain - const isClaimETHorWETH = isNativeOrWrappedNative(request.chainId, claimToken); - const isSettlementTokenETHorWETH = isNativeOrWrappedNative( - request.compact.mandate.chainId, - request.compact.mandate.token.toLowerCase(), - ); - - // Calculate claim amount less execution costs - let claimAmountLessExecutionCostsWei: bigint; - let claimAmountLessExecutionCostsUSD: number; - - if (isClaimETHorWETH) { - claimAmountLessExecutionCostsWei = - BigInt(request.compact.amount) - executionCostWei; - claimAmountLessExecutionCostsUSD = - +formatEther(claimAmountLessExecutionCostsWei) * ethPrice; - } else { - // Assume USDC with 6 decimals - // TODO-1: refactor this to allow any non-ETH/WETH token, not only USDC - claimAmountLessExecutionCostsUSD = - Number(request.compact.amount) / 1e6 - executionCostUSD; - claimAmountLessExecutionCostsWei = parseEther( - (claimAmountLessExecutionCostsUSD / ethPrice).toFixed(18), - ).toBigInt(); - } - - return isSettlementTokenETHorWETH - ? claimAmountLessExecutionCostsWei - : BigInt(Math.floor(claimAmountLessExecutionCostsUSD * 1e6)); // Scale up USDC amount -} - export const create = ( multiProvider: MultiProvider, customRules?: RulesMap, diff --git a/typescript/solver/solvers/compactX/utils.ts b/typescript/solver/solvers/compactX/utils.ts index 9588d06b..4dd46851 100644 --- a/typescript/solver/solvers/compactX/utils.ts +++ b/typescript/solver/solvers/compactX/utils.ts @@ -4,7 +4,10 @@ import { metadata } from "./config/index.js"; import { keccak256 } from "@ethersproject/keccak256"; import { AbiCoder } from "@ethersproject/abi"; import { toUtf8Bytes } from "@ethersproject/strings"; +import { formatEther, parseEther } from "@ethersproject/units"; import { BroadcastRequest } from "./types.js"; +import { CHAIN_CONFIG, SUPPORTED_CHAINS, SupportedChainId } from "./config/constants.js"; +import { assert } from "@hyperlane-xyz/utils"; export const log = createLogger(metadata.protocolName); @@ -108,3 +111,126 @@ export function deriveClaimHash( // Return the final hash return keccak256(encodedData); } + +export function isSupportedChainId( + chainId: string | number, +): chainId is SupportedChainId { + return SUPPORTED_CHAINS.includes(+chainId as SupportedChainId); +} + +export function ensureIsSupportedChainId(chainId: string | number) { + assert(isSupportedChainId(chainId), `Unsupported chainId: ${chainId}`); + + return chainId; +} + +export function getChainConfig(chainId: string | number) { + const supportedChainId = ensureIsSupportedChainId(chainId); + return CHAIN_CONFIG[supportedChainId]; +} + +export function getChainSupportedTokens(chainId: string | number) { + return getChainConfig(chainId).tokens; +} + +export function isNativeOrWrappedNative( + chainId: string | number, + token: string, +): boolean { + const { ETH, WETH } = getChainSupportedTokens(chainId); + token = token.toLowerCase(); + + return ( + token === ETH.address.toLowerCase() || token === WETH.address.toLowerCase() + ); +} + +export function calculateFillValue( + request: BroadcastRequest, + settlementAmount: bigint, +) { + const { ETH } = getChainSupportedTokens(request.compact.mandate.chainId); + const mandateTokenAddress = request.compact.mandate.token.toLowerCase(); + const bufferedDispensation = + (BigInt(request.context.dispensation) * 125n) / 100n; + + return mandateTokenAddress === ETH.address.toLowerCase() + ? settlementAmount + bufferedDispensation + : bufferedDispensation; +} + +// TODO-RULE: move into a rule +export function isSupportedChainToken(chainId: string | number, token: string) { + const chainTokens = getChainSupportedTokens(chainId); + + return !Object.keys(chainTokens).some( + (symbol) => token === chainTokens[symbol].address.toLowerCase(), + ); +} + +export function getMaxSettlementAmount({ + estimatedGas, + ethPrice, + maxFeePerGas, + request, +}: { + estimatedGas: bigint; + ethPrice: number; + maxFeePerGas: bigint; + request: BroadcastRequest; +}) { + // Extract the dispensation amount in USD from the request and add 25% buffer + const dispensationUSD = +request.context.dispensationUSD.replace("$", ""); + const dispensation = BigInt(request.context.dispensation); + const bufferedDispensation = (dispensation * 125n) / 100n; + + const bufferedEstimatedGas = (estimatedGas * 125n) / 100n; + log.debug({ + msg: "Got gas estimate", + estimatedGas, + bufferedEstimatedGas, + }); + + // Calculate max fee and total gas cost + const gasCostWei = maxFeePerGas * bufferedEstimatedGas; + const gasCostEth = +formatEther(gasCostWei); + const gasCostUSD = gasCostEth * ethPrice; + + // Calculate execution costs + const executionCostWei = gasCostWei + bufferedDispensation; + const executionCostUSD = gasCostUSD + dispensationUSD; + + // Get claim token from compact ID and check if it's ETH/WETH across all chains + const claimToken = + `0x${BigInt(request.compact.id).toString(16).slice(-40)}`.toLowerCase(); + + // Check if token is ETH/WETH in any supported chain + const isClaimETHorWETH = isNativeOrWrappedNative(request.chainId, claimToken); + const isSettlementTokenETHorWETH = isNativeOrWrappedNative( + request.compact.mandate.chainId, + request.compact.mandate.token.toLowerCase(), + ); + + // Calculate claim amount less execution costs + let claimAmountLessExecutionCostsWei: bigint; + let claimAmountLessExecutionCostsUSD: number; + + if (isClaimETHorWETH) { + claimAmountLessExecutionCostsWei = + BigInt(request.compact.amount) - executionCostWei; + claimAmountLessExecutionCostsUSD = + +formatEther(claimAmountLessExecutionCostsWei) * ethPrice; + } else { + // Assume USDC with 6 decimals + // TODO-1: refactor this to allow any non-ETH/WETH token, not only USDC + claimAmountLessExecutionCostsUSD = + Number(request.compact.amount) / 1e6 - executionCostUSD; + claimAmountLessExecutionCostsWei = parseEther( + (claimAmountLessExecutionCostsUSD / ethPrice).toFixed(18), + ).toBigInt(); + } + + return isSettlementTokenETHorWETH + ? claimAmountLessExecutionCostsWei + : BigInt(Math.floor(claimAmountLessExecutionCostsUSD * 1e6)); // Scale up USDC amount +} From dc80dac54cdc1072ad93c2ba5e5c192b67b50e89 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Thu, 20 Mar 2025 18:48:35 +0100 Subject: [PATCH 27/41] refactor(compactX): move constants to metadata Co-Authored-By: Lisandro Corbalan --- .../solvers/compactX/config/constants.ts | 164 ------------------ .../solvers/compactX/config/metadata.ts | 126 +++++++++++++- typescript/solver/solvers/compactX/filler.ts | 81 ++++----- .../solver/solvers/compactX/listener.ts | 2 +- .../compactX/services/TheCompactService.ts | 4 +- .../compactX/services/price/PriceService.ts | 51 ++++-- typescript/solver/solvers/compactX/types.ts | 35 +++- typescript/solver/solvers/compactX/utils.ts | 11 +- .../solvers/compactX/validation/signature.ts | 25 +-- 9 files changed, 237 insertions(+), 262 deletions(-) delete mode 100644 typescript/solver/solvers/compactX/config/constants.ts diff --git a/typescript/solver/solvers/compactX/config/constants.ts b/typescript/solver/solvers/compactX/config/constants.ts deleted file mode 100644 index bb762c25..00000000 --- a/typescript/solver/solvers/compactX/config/constants.ts +++ /dev/null @@ -1,164 +0,0 @@ -import { Address } from "@hyperlane-xyz/utils"; - -export const SUPPORTED_CHAINS = [1, 10, 130, 8453] as const; // Mainnet, Optimism, Unichain, & Base -export type SupportedChainId = (typeof SUPPORTED_CHAINS)[number]; - -export interface TokenConfig { - address: Address; - decimals: number; - symbol: string; - coingeckoId: string; -} - -export interface ChainConfig { - name: string; - nativeToken: string; - coingeckoId: string; - blockExplorer: string; - rpcEnvKey: string; - tokens: Record; -} - -export const CHAIN_PRIORITY_FEES: Record = { - 1: 1n, // Mainnet - 10: 1n, // Optimism - 130: 1n, // Unichain - 8453: 50n, // Base -} as const; - -// Supported addresses for arbiters and tribunals per chain -export const SUPPORTED_ARBITER_ADDRESSES: Record = { - 1: "0xDfd41e6E2e08e752f464084F5C11619A3c950237", // Ethereum - 10: "0x2602D9f66ec17F2dc770063F7B91821DD741F626", // Optimism - 130: "0x81fC1d90C5fae0f15FC91B5592177B594011C576", // Unichain - 8453: "0xfaBE453252ca8337b091ba01BB168030E2FE6c1F", // Base -} as const; - -export const SUPPORTED_TRIBUNAL_ADDRESSES = SUPPORTED_ARBITER_ADDRESSES; - -/** - * Configuration for allocators used in signature verification - */ -export const ALLOCATORS = { - AUTOCATOR: { - id: "1730150456036417775412616585", - signingAddress: "0x4491fB95F2d51416688D4862f0cAeFE5281Fa3d9", // used to verify signatures from server - url: "https://autocator.org", - }, - SMALLOCATOR: { - id: "1223867955028248789127899354", - signingAddress: "0x51044301738Ba2a27bd9332510565eBE9F03546b", - url: "https://smallocator.xyz", - }, -} as const; - -export const CHAIN_CONFIG: Record = { - 1: { - name: "Mainnet", - nativeToken: "ETH", - coingeckoId: "ethereum", - blockExplorer: "https://etherscan.io", - rpcEnvKey: "RPC_URL_MAINNET", - tokens: { - ETH: { - address: "0x0000000000000000000000000000000000000000", - decimals: 18, - symbol: "ETH", - coingeckoId: "ethereum", - }, - WETH: { - address: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", - decimals: 18, - symbol: "WETH", - coingeckoId: "weth", - }, - USDC: { - address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", - decimals: 6, - symbol: "USDC", - coingeckoId: "usd-coin", - }, - }, - }, - 10: { - name: "Optimism", - nativeToken: "ETH", - coingeckoId: "ethereum", - blockExplorer: "https://optimistic.etherscan.io", - rpcEnvKey: "RPC_URL_OPTIMISM", - tokens: { - ETH: { - address: "0x0000000000000000000000000000000000000000", - decimals: 18, - symbol: "ETH", - coingeckoId: "ethereum", - }, - WETH: { - address: "0x4200000000000000000000000000000000000006", - decimals: 18, - symbol: "WETH", - coingeckoId: "weth", - }, - USDC: { - address: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", - decimals: 6, - symbol: "USDC", - coingeckoId: "usd-coin", - }, - }, - }, - 130: { - name: "Unichain", - nativeToken: "ETH", - coingeckoId: "unichain", - blockExplorer: "https://uniscan.xyz", - rpcEnvKey: "RPC_URL_UNICHAIN", - tokens: { - ETH: { - address: "0x0000000000000000000000000000000000000000", - decimals: 18, - symbol: "ETH", - coingeckoId: "ethereum", - }, - WETH: { - address: "0x4200000000000000000000000000000000000006", - decimals: 18, - symbol: "WETH", - coingeckoId: "weth", - }, - USDC: { - address: "0x078d782b760474a361dda0af3839290b0ef57ad6", - decimals: 6, - symbol: "USDC", - coingeckoId: "usd-coin", - }, - }, - }, - 8453: { - name: "Base", - nativeToken: "ETH", - coingeckoId: "ethereum", - blockExplorer: "https://basescan.org", - rpcEnvKey: "RPC_URL_BASE", - tokens: { - ETH: { - address: "0x0000000000000000000000000000000000000000", - decimals: 18, - symbol: "ETH", - coingeckoId: "ethereum", - }, - WETH: { - address: "0x4200000000000000000000000000000000000006", - decimals: 18, - symbol: "WETH", - coingeckoId: "weth", - }, - USDC: { - address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", - decimals: 6, - symbol: "USDC", - coingeckoId: "usd-coin", - }, - }, - }, -} as const; diff --git a/typescript/solver/solvers/compactX/config/metadata.ts b/typescript/solver/solvers/compactX/config/metadata.ts index ede32377..31e1c3ac 100644 --- a/typescript/solver/solvers/compactX/config/metadata.ts +++ b/typescript/solver/solvers/compactX/config/metadata.ts @@ -10,8 +10,130 @@ const metadata: CompactXMetadata = { }, ], }, + chainInfo: { + 1: { + arbiter: "0xDfd41e6E2e08e752f464084F5C11619A3c950237", + tribunal: "0xDfd41e6E2e08e752f464084F5C11619A3c950237", + prefix: + "0x1901afbd5f3d34c216b31ba8b82d0b32ae91e4edea92dd5bbf4c1ad028f72364a211", + priorityFee: 1n, + tokens: { + ETH: { + address: "0x0000000000000000000000000000000000000000", + decimals: 18, + symbol: "ETH", + coingeckoId: "ethereum", + }, + WETH: { + address: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + decimals: 18, + symbol: "WETH", + coingeckoId: "weth", + }, + USDC: { + address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + decimals: 6, + symbol: "USDC", + coingeckoId: "usd-coin", + }, + }, + }, + 10: { + arbiter: "0x2602D9f66ec17F2dc770063F7B91821DD741F626", + tribunal: "0x2602D9f66ec17F2dc770063F7B91821DD741F626", + prefix: + "0x1901ea25de9c16847077fe9d95916c29598dc64f4850ba02c5dbe7800d2e2ecb338e", + priorityFee: 1n, + tokens: { + ETH: { + address: "0x0000000000000000000000000000000000000000", + decimals: 18, + symbol: "ETH", + coingeckoId: "ethereum", + }, + WETH: { + address: "0x4200000000000000000000000000000000000006", + decimals: 18, + symbol: "WETH", + coingeckoId: "weth", + }, + USDC: { + address: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", + decimals: 6, + symbol: "USDC", + coingeckoId: "usd-coin", + }, + }, + }, + 130: { + arbiter: "0x81fC1d90C5fae0f15FC91B5592177B594011C576", + tribunal: "0x81fC1d90C5fae0f15FC91B5592177B594011C576", + prefix: + "0x190150e2b173e1ac2eac4e4995e45458f4cd549c256c423a041bf17d0c0a4a736d2c", + priorityFee: 1n, + tokens: { + ETH: { + address: "0x0000000000000000000000000000000000000000", + decimals: 18, + symbol: "ETH", + coingeckoId: "ethereum", + }, + WETH: { + address: "0x4200000000000000000000000000000000000006", + decimals: 18, + symbol: "WETH", + coingeckoId: "weth", + }, + USDC: { + address: "0x078d782b760474a361dda0af3839290b0ef57ad6", + decimals: 6, + symbol: "USDC", + coingeckoId: "usd-coin", + }, + }, + }, + 8453: { + arbiter: "0xfaBE453252ca8337b091ba01BB168030E2FE6c1F", + tribunal: "0xfaBE453252ca8337b091ba01BB168030E2FE6c1F", + prefix: + "0x1901a1324f3bfe91ee592367ae7552e9348145e65b410335d72e4507dcedeb41bf52", + priorityFee: 50n, + tokens: { + ETH: { + address: "0x0000000000000000000000000000000000000000", + decimals: 18, + symbol: "ETH", + coingeckoId: "ethereum", + }, + WETH: { + address: "0x4200000000000000000000000000000000000006", + decimals: 18, + symbol: "WETH", + coingeckoId: "weth", + }, + USDC: { + address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + decimals: 6, + symbol: "USDC", + coingeckoId: "usd-coin", + }, + }, + }, + }, + allocators: { + AUTOCATOR: { + id: "1730150456036417775412616585", + signingAddress: "0x4491fB95F2d51416688D4862f0cAeFE5281Fa3d9", + url: "https://autocator.org", + }, + SMALLOCATOR: { + id: "1223867955028248789127899354", + signingAddress: "0x51044301738Ba2a27bd9332510565eBE9F03546b", + url: "https://smallocator.xyz", + }, + }, }; -CompactXMetadataSchema.parse(metadata); +export default CompactXMetadataSchema.parse(metadata); -export default metadata; +console.log("metadata", CompactXMetadataSchema.parse(metadata)); diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index 426de7d2..81b99ec9 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -6,13 +6,6 @@ import { Tribunal__factory } from "../../typechain/factories/compactX/contracts/ import { BaseFiller } from "../BaseFiller.js"; import { BuildRules, RulesMap } from "../types.js"; import { retrieveTokenBalance } from "../utils.js"; -import { - CHAIN_PRIORITY_FEES, - SUPPORTED_ARBITER_ADDRESSES, - SUPPORTED_CHAINS, - SUPPORTED_TRIBUNAL_ADDRESSES, - SupportedChainId -} from "./config/constants.js"; import { allowBlockLists, metadata } from "./config/index.js"; import { PriceService } from "./services/price/PriceService.js"; import { TheCompactService } from "./services/TheCompactService.js"; @@ -22,7 +15,14 @@ import { type CompactXMetadata, type CompactXParsedArgs, } from "./types.js"; -import { calculateFillValue, deriveClaimHash, ensureIsSupportedChainId, getChainConfig, getMaxSettlementAmount, isSupportedChainToken, log } from "./utils.js"; +import { + calculateFillValue, + deriveClaimHash, + ensureIsSupportedChainId, + getMaxSettlementAmount, + isSupportedChainToken, + log, +} from "./utils.js"; import { verifyBroadcastRequest } from "./validation/signature.js"; export type CompactXRule = CompactXFiller["rules"][number]; @@ -62,7 +62,8 @@ export class CompactXFiller extends BaseFiller< return { data: result, success: true }; } catch (error: any) { return { - error: error.message ?? "Failed to prepare Eco Intent.", + error: + error.message ?? `Failed to prepare ${metadata.protocolName} Intent.`, success: false, }; } @@ -70,26 +71,23 @@ export class CompactXFiller extends BaseFiller< protected async fill( parsedArgs: CompactXParsedArgs, - data: BroadcastRequest, - originChainName: string, + request: BroadcastRequest, ) { this.log.info({ msg: "Filling Intent", - intent: `${this.metadata.protocolName}-${data.compact.id}`, + intent: `${this.metadata.protocolName}-${request.compact.id}`, }); - const chainId = Number.parseInt( - data.chainId.toString(), - ) as SupportedChainId; + const chainId = ensureIsSupportedChainId(request.chainId); // Derive and log claim hash - const claimHash = deriveClaimHash(chainId, data.compact); + const claimHash = deriveClaimHash(chainId, request.compact); this.log.info( `Processing fill request for chainId ${chainId}, claimHash: ${claimHash}`, ); // Set the claim hash before verification - data.claimHash = claimHash; + request.claimHash = claimHash; const theCompactService = new TheCompactService( this.multiProvider, @@ -99,7 +97,7 @@ export class CompactXFiller extends BaseFiller< // Verify signatures this.log.info("Verifying signatures..."); const { isValid, isOnchainRegistration, error } = - await verifyBroadcastRequest(data, theCompactService); + await verifyBroadcastRequest(request, theCompactService); if (!isValid) { throw new Error(error); @@ -110,17 +108,13 @@ export class CompactXFiller extends BaseFiller< `Signature verification successful, registration status: ${isOnchainRegistration ? "onchain" : "offchain"}`, ); - if (!SUPPORTED_CHAINS.includes(chainId)) { - throw new Error(`Unsupported chain ID: ${chainId}`); - } - // Check if either compact or mandate has expired or is close to expiring const currentTimestamp = BigInt(Math.floor(Date.now() / 1000)); const COMPACT_EXPIRATION_BUFFER = 60n; // 60 seconds buffer for compact const MANDATE_EXPIRATION_BUFFER = 10n; // 10 seconds buffer for mandate if ( - BigInt(data.compact.expires) <= + BigInt(request.compact.expires) <= currentTimestamp + COMPACT_EXPIRATION_BUFFER ) { throw new Error( @@ -129,7 +123,7 @@ export class CompactXFiller extends BaseFiller< } if ( - BigInt(data.compact.mandate.expires) <= + BigInt(request.compact.mandate.expires) <= currentTimestamp + MANDATE_EXPIRATION_BUFFER ) { throw new Error( @@ -140,8 +134,8 @@ export class CompactXFiller extends BaseFiller< // Check if nonce has already been consumed const nonceConsumed = await theCompactService.hasConsumedAllocatorNonce( chainId, - BigInt(data.compact.nonce), - data.compact.arbiter as `0x${string}`, + BigInt(request.compact.nonce), + request.compact.arbiter as `0x${string}`, ); if (nonceConsumed) { @@ -149,38 +143,22 @@ export class CompactXFiller extends BaseFiller< } // Process the broadcast transaction - const mandateChainId = Number( - data.compact.mandate.chainId, - ) as SupportedChainId; + const mandateChainId = ensureIsSupportedChainId( + request.compact.mandate.chainId, + ); // Validate arbiter and tribunal addresses - const arbiterAddress = data.compact.arbiter.toLowerCase(); - const tribunalAddress = data.compact.mandate.tribunal.toLowerCase(); - - if ( - arbiterAddress !== - SUPPORTED_ARBITER_ADDRESSES[ - Number(data.chainId) as SupportedChainId - ].toLowerCase() - ) { + if (request.compact.arbiter !== metadata.chainInfo[chainId].arbiter) { throw new Error("Unsupported arbiter address"); } if ( - tribunalAddress !== - SUPPORTED_TRIBUNAL_ADDRESSES[mandateChainId].toLowerCase() + request.compact.mandate.tribunal !== + metadata.chainInfo[mandateChainId].tribunal ) { throw new Error("Unsupported tribunal address"); } - await this.processBroadcastTransaction(data); - } - - protected async processBroadcastTransaction(request: BroadcastRequest) { - // Use chain from public client - const mandateChainId = ensureIsSupportedChainId( - request.compact.mandate.chainId, - ); const provider = this.multiProvider.getProvider(mandateChainId); const signer = this.multiProvider.getSigner(mandateChainId); const fillerAddress = await signer.getAddress(); @@ -222,7 +200,7 @@ export class CompactXFiller extends BaseFiller< } // Calculate simulation priority fee - const maxPriorityFeePerGas = CHAIN_PRIORITY_FEES[mandateChainId]; + const maxPriorityFeePerGas = metadata.chainInfo[mandateChainId].priorityFee; const bufferedBaseFeePerGas = (baseFeePerGas * 120n) / 100n; // Base fee + 20% buffer const maxFeePerGas = maxPriorityFeePerGas + bufferedBaseFeePerGas; @@ -382,7 +360,10 @@ export class CompactXFiller extends BaseFiller< this.log.info({ msg: "Transaction submitted", hash: receipt.transactionHash, - blockExplorer: `${getChainConfig(mandateChainId).blockExplorer}/tx/${receipt.transactionHash})`, + txInfo: + this.multiProvider.tryGetExplorerTxUrl(mandateChainId, { + hash: receipt.transactionHash, + }) ?? receipt.transactionHash, }); this.log.debug({ msg: "Settlement amount", diff --git a/typescript/solver/solvers/compactX/listener.ts b/typescript/solver/solvers/compactX/listener.ts index a452d5e1..2b82f5d7 100644 --- a/typescript/solver/solvers/compactX/listener.ts +++ b/typescript/solver/solvers/compactX/listener.ts @@ -1,7 +1,7 @@ import { chainIdsToName } from "../../config/index.js"; import type { BaseWebSocketSource } from "../types.js"; import { WebSocketListener } from "../WebSocketListener.js"; -import metadata from "./config/metadata.js"; +import { metadata } from "./config/index.js"; import { CompactXParsedArgs } from "./types.js"; import { log } from "./utils.js"; diff --git a/typescript/solver/solvers/compactX/services/TheCompactService.ts b/typescript/solver/solvers/compactX/services/TheCompactService.ts index 0e0b25c2..0c8ee566 100644 --- a/typescript/solver/solvers/compactX/services/TheCompactService.ts +++ b/typescript/solver/solvers/compactX/services/TheCompactService.ts @@ -1,6 +1,4 @@ -import { - type SupportedChainId, -} from "../config/constants.js"; +import { type SupportedChainId } from "../config/constants.js"; import type { Logger } from "../../../logger.js"; import { TheCompact__factory } from "../../../typechain/factories/compactX/contracts/TheCompact__factory.js"; diff --git a/typescript/solver/solvers/compactX/services/price/PriceService.ts b/typescript/solver/solvers/compactX/services/price/PriceService.ts index d65c6b63..fda88658 100644 --- a/typescript/solver/solvers/compactX/services/price/PriceService.ts +++ b/typescript/solver/solvers/compactX/services/price/PriceService.ts @@ -1,9 +1,6 @@ import EventEmitter from "node:events"; import type { Logger } from "../../../../logger.js"; -import { - SUPPORTED_CHAINS, - type SupportedChainId, -} from "../../config/constants.js"; +import { metadata } from "../../config/index.js"; import { log } from "../../utils.js"; import { CoinGeckoProvider } from "./CoinGeckoProvider.js"; @@ -13,7 +10,7 @@ interface PriceData { } export class PriceService extends EventEmitter { - private prices: Map; + private prices: Map; private log: Logger; private provider: CoinGeckoProvider; private updateInterval: NodeJS.Timeout | null; @@ -30,13 +27,21 @@ export class PriceService extends EventEmitter { public start(): void { // Initial price fetch this.updatePrices().catch((error) => { - this.log.error({ name: "PriceService", msg: "Failed to fetch initial prices", error }); + this.log.error({ + name: "PriceService", + msg: "Failed to fetch initial prices", + error, + }); }); // Set up periodic updates this.updateInterval = setInterval(() => { this.updatePrices().catch((error) => { - this.log.error({ name: "PriceService", msg: "Failed to update prices", error }); + this.log.error({ + name: "PriceService", + msg: "Failed to update prices", + error, + }); }); }, this.UPDATE_INTERVAL); } @@ -48,36 +53,54 @@ export class PriceService extends EventEmitter { } } - public getPrice(chainId: SupportedChainId): number { + public getPrice(chainId: number): number { const priceData = this.prices.get(chainId); if (!priceData) { - this.log.error({ name: "PriceService", msg: "No price data available", chainId }); + this.log.error({ + name: "PriceService", + msg: "No price data available", + chainId, + }); return 0; } // Check if price is stale const stalePriceThreshold = 120_000; if (Date.now() - priceData.lastUpdated > stalePriceThreshold) { - this.log.warn({ name: "PriceService", msg: "Price data is stale", chainId }); + this.log.warn({ + name: "PriceService", + msg: "Price data is stale", + chainId, + }); } return priceData.price; } private async updatePrices(): Promise { - for (const chainId of SUPPORTED_CHAINS) { + for (const chainId in metadata.chainInfo) { try { const { price } = await this.provider.getEthPrice(chainId); - this.prices.set(chainId, { + this.prices.set(+chainId, { price, lastUpdated: Date.now(), }); - this.log.debug({ name: "PriceService", msg: "Updated ETH price", chainId, price }); + this.log.debug({ + name: "PriceService", + msg: "Updated ETH price", + chainId, + price, + }); // Emit the price update this.emit("price_update", chainId, price); } catch (error) { - this.log.error({ name: "PriceService", msg: "Failed to update price", chainId, error }); + this.log.error({ + name: "PriceService", + msg: "Failed to update price", + chainId, + error, + }); // Don't update the price if there's an error, keep using the old one } } diff --git a/typescript/solver/solvers/compactX/types.ts b/typescript/solver/solvers/compactX/types.ts index e6409b88..35aaa328 100644 --- a/typescript/solver/solvers/compactX/types.ts +++ b/typescript/solver/solvers/compactX/types.ts @@ -18,9 +18,12 @@ const numericOrHexSchema = z.string().refine(isNumericOrHexString, { message: "Must be either a numeric string or a hex string with 0x prefix", }); -const addressSchema = z.string().refine(isAddress, { - message: "Must be a valid Ethereum address (0x prefix + 20 bytes)", -}); +const addressSchema = z + .string() + .refine(isAddress, { + message: "Must be a valid Ethereum address (0x prefix + 20 bytes)", + }) + .transform((addr) => addr.toLowerCase()); const hashSchema = z.string().refine(isHash, { message: "Must be a valid hash (0x prefix + 32 bytes)", @@ -104,6 +107,32 @@ export const CompactXMetadataSchema = BaseMetadataSchema.extend({ webSockets: z.array(BaseWebSocketSourceSchema), }) .strict(), + chainInfo: z.record( + z.string(), + z.object({ + arbiter: addressSchema, + tribunal: addressSchema, + prefix: z.string(), + priorityFee: z.bigint(), + tokens: z.record( + z.string(), + z.object({ + address: addressSchema, + decimals: z.number(), + symbol: z.string(), + coingeckoId: z.string(), + }), + ), + }), + ), + allocators: z.record( + z.string(), + z.object({ + id: z.string(), + signingAddress: addressSchema, + url: z.string().url(), + }), + ), }); export type CompactXMetadata = z.infer; diff --git a/typescript/solver/solvers/compactX/utils.ts b/typescript/solver/solvers/compactX/utils.ts index 4dd46851..ea080ea1 100644 --- a/typescript/solver/solvers/compactX/utils.ts +++ b/typescript/solver/solvers/compactX/utils.ts @@ -1,13 +1,12 @@ import { createLogger } from "../../logger.js"; import { metadata } from "./config/index.js"; -import { keccak256 } from "@ethersproject/keccak256"; import { AbiCoder } from "@ethersproject/abi"; +import { keccak256 } from "@ethersproject/keccak256"; import { toUtf8Bytes } from "@ethersproject/strings"; import { formatEther, parseEther } from "@ethersproject/units"; -import { BroadcastRequest } from "./types.js"; -import { CHAIN_CONFIG, SUPPORTED_CHAINS, SupportedChainId } from "./config/constants.js"; import { assert } from "@hyperlane-xyz/utils"; +import { BroadcastRequest } from "./types.js"; export const log = createLogger(metadata.protocolName); @@ -114,8 +113,8 @@ export function deriveClaimHash( export function isSupportedChainId( chainId: string | number, -): chainId is SupportedChainId { - return SUPPORTED_CHAINS.includes(+chainId as SupportedChainId); +): chainId is keyof typeof metadata.chainInfo { + return (+chainId) in metadata.chainInfo; } export function ensureIsSupportedChainId(chainId: string | number) { @@ -126,7 +125,7 @@ export function ensureIsSupportedChainId(chainId: string | number) { export function getChainConfig(chainId: string | number) { const supportedChainId = ensureIsSupportedChainId(chainId); - return CHAIN_CONFIG[supportedChainId]; + return metadata.chainInfo[supportedChainId]; } export function getChainSupportedTokens(chainId: string | number) { diff --git a/typescript/solver/solvers/compactX/validation/signature.ts b/typescript/solver/solvers/compactX/validation/signature.ts index 25b743dc..b86310a6 100644 --- a/typescript/solver/solvers/compactX/validation/signature.ts +++ b/typescript/solver/solvers/compactX/validation/signature.ts @@ -1,20 +1,12 @@ import ethers from "ethers"; -import { ALLOCATORS, type SupportedChainId } from "../config/constants.js"; +import { metadata } from "../config/index.js"; import type { RegistrationStatus, TheCompactService, } from "../services/TheCompactService.js"; import type { BroadcastRequest } from "../types.js"; -import { log } from "../utils.js"; - -// Chain-specific prefixes for signature verification -const CHAIN_PREFIXES = { - 1: "0x1901afbd5f3d34c216b31ba8b82d0b32ae91e4edea92dd5bbf4c1ad028f72364a211", // ethereum - 10: "0x1901ea25de9c16847077fe9d95916c29598dc64f4850ba02c5dbe7800d2e2ecb338e", // optimism - 8453: "0x1901a1324f3bfe91ee592367ae7552e9348145e65b410335d72e4507dcedeb41bf52", // base - 130: "0x190150e2b173e1ac2eac4e4995e45458f4cd549c256c423a041bf17d0c0a4a736d2c", // unichain -} as const; +import { ensureIsSupportedChainId, log } from "../utils.js"; // Extract allocator ID from compact.id const extractAllocatorId = (compactId: string): string => { @@ -104,9 +96,7 @@ export async function verifyBroadcastRequest( isOnchainRegistration: boolean; error?: string; }> { - const chainId = Number.parseInt( - request.chainId.toString(), - ) as SupportedChainId; + const chainId = ensureIsSupportedChainId(request.chainId); log.info({ msg: "Verifying broadcast request", @@ -122,10 +112,7 @@ export async function verifyBroadcastRequest( }); // Get chain prefix based on chainId - const chainPrefix = CHAIN_PREFIXES[chainId]; - if (!chainPrefix) { - throw new Error(`Unsupported chain ID: ${chainId}`); - } + const chainPrefix = metadata.chainInfo[chainId].prefix; // Get the claim hash from the request const claimHash = request.claimHash; @@ -135,7 +122,7 @@ export async function verifyBroadcastRequest( // Try to verify sponsor signature first let isSponsorValid = false; - let registrationStatus: RegistrationStatus | null = null; // TODO: ???? types + let registrationStatus: RegistrationStatus | null = null; let isOnchainRegistration = false; let error: string | undefined; @@ -222,7 +209,7 @@ export async function verifyBroadcastRequest( // Find the matching allocator let allocatorAddress: string | undefined; - for (const [name, allocator] of Object.entries(ALLOCATORS)) { + for (const [name, allocator] of Object.entries(metadata.allocators)) { if (allocator.id === allocatorId) { allocatorAddress = allocator.signingAddress; log.debug({ From 276a4fc3e2be17fe9eabdf78ff966b40560e5491 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Thu, 20 Mar 2025 19:11:36 +0100 Subject: [PATCH 28/41] refactor(compactX): TheCompactService Co-Authored-By: Lisandro Corbalan --- .../solvers/compactX/config/metadata.ts | 6 +- .../compactX/services/TheCompactService.ts | 216 +++--------------- .../services/price/CoinGeckoProvider.ts | 5 +- .../compactX/services/price/PriceService.ts | 2 +- typescript/solver/solvers/compactX/types.ts | 14 +- typescript/solver/solvers/compactX/utils.ts | 2 +- 6 files changed, 41 insertions(+), 204 deletions(-) diff --git a/typescript/solver/solvers/compactX/config/metadata.ts b/typescript/solver/solvers/compactX/config/metadata.ts index 31e1c3ac..35ff0359 100644 --- a/typescript/solver/solvers/compactX/config/metadata.ts +++ b/typescript/solver/solvers/compactX/config/metadata.ts @@ -14,6 +14,7 @@ const metadata: CompactXMetadata = { 1: { arbiter: "0xDfd41e6E2e08e752f464084F5C11619A3c950237", tribunal: "0xDfd41e6E2e08e752f464084F5C11619A3c950237", + compactX: "0x00000000000018DF021Ff2467dF97ff846E09f48", prefix: "0x1901afbd5f3d34c216b31ba8b82d0b32ae91e4edea92dd5bbf4c1ad028f72364a211", priorityFee: 1n, @@ -41,6 +42,7 @@ const metadata: CompactXMetadata = { 10: { arbiter: "0x2602D9f66ec17F2dc770063F7B91821DD741F626", tribunal: "0x2602D9f66ec17F2dc770063F7B91821DD741F626", + compactX: "0x00000000000018DF021Ff2467dF97ff846E09f48", prefix: "0x1901ea25de9c16847077fe9d95916c29598dc64f4850ba02c5dbe7800d2e2ecb338e", priorityFee: 1n, @@ -68,6 +70,7 @@ const metadata: CompactXMetadata = { 130: { arbiter: "0x81fC1d90C5fae0f15FC91B5592177B594011C576", tribunal: "0x81fC1d90C5fae0f15FC91B5592177B594011C576", + compactX: "0x00000000000018DF021Ff2467dF97ff846E09f48", prefix: "0x190150e2b173e1ac2eac4e4995e45458f4cd549c256c423a041bf17d0c0a4a736d2c", priorityFee: 1n, @@ -95,6 +98,7 @@ const metadata: CompactXMetadata = { 8453: { arbiter: "0xfaBE453252ca8337b091ba01BB168030E2FE6c1F", tribunal: "0xfaBE453252ca8337b091ba01BB168030E2FE6c1F", + compactX: "0x00000000000018DF021Ff2467dF97ff846E09f48", prefix: "0x1901a1324f3bfe91ee592367ae7552e9348145e65b410335d72e4507dcedeb41bf52", priorityFee: 50n, @@ -135,5 +139,3 @@ const metadata: CompactXMetadata = { }; export default CompactXMetadataSchema.parse(metadata); - -console.log("metadata", CompactXMetadataSchema.parse(metadata)); diff --git a/typescript/solver/solvers/compactX/services/TheCompactService.ts b/typescript/solver/solvers/compactX/services/TheCompactService.ts index 0c8ee566..1fbea63a 100644 --- a/typescript/solver/solvers/compactX/services/TheCompactService.ts +++ b/typescript/solver/solvers/compactX/services/TheCompactService.ts @@ -1,12 +1,11 @@ -import { type SupportedChainId } from "../config/constants.js"; import type { Logger } from "../../../logger.js"; -import { TheCompact__factory } from "../../../typechain/factories/compactX/contracts/TheCompact__factory.js"; -import type { MultiProvider } from "@hyperlane-xyz/sdk"; import type { BigNumber } from "@ethersproject/bignumber"; +import type { MultiProvider } from "@hyperlane-xyz/sdk"; import { Address } from "@hyperlane-xyz/utils"; - -const THE_COMPACT_ADDRESS = "0x00000000000018DF021Ff2467dF97ff846E09f48"; +import { TheCompact__factory } from "../../../typechain/factories/compactX/contracts/TheCompact__factory.js"; +import { metadata } from "../config/index.js"; +import { ensureIsSupportedChainId } from "../utils.js"; /** * @notice Status of a forced withdrawal @@ -34,45 +33,43 @@ export class TheCompactService { readonly log: Logger, ) {} - async hasConsumedAllocatorNonce( - chainId: SupportedChainId, - nonce: bigint, - allocator: `0x${string}`, - ): Promise { + private getReadOnlyCompactInstance(chainId: number) { + chainId = ensureIsSupportedChainId(chainId); const provider = this.multiProvider.getProvider(chainId); - if (!provider) { - throw new Error(`No client found for chain ${chainId}`); - } - const theCompact = TheCompact__factory.connect( - THE_COMPACT_ADDRESS, + return TheCompact__factory.connect( + metadata.chainInfo[chainId].compactX, provider, ); + } + + async hasConsumedAllocatorNonce( + chainId: number, + nonce: bigint, + allocator: `0x${string}`, + ): Promise { + const theCompact = this.getReadOnlyCompactInstance(chainId); const result = await theCompact.hasConsumedAllocatorNonce(nonce, allocator); return result as boolean; } async getRegistrationStatus( - chainId: SupportedChainId, + chainId: number, sponsor: string, claimHash: string, typehash: string, ): Promise { - const provider = this.multiProvider.getProvider(chainId); - if (!provider) { - throw new Error(`No client found for chain ${chainId}`); - } - - const theCompact = TheCompact__factory.connect( - THE_COMPACT_ADDRESS, - provider, - ); - try { - this.log.debug( - `Fetching registration status for sponsor ${sponsor}, claimHash ${claimHash}, and typehash ${typehash} on chain ${chainId}`, - ); + this.log.debug({ + msg: "Fetching registration status for sponsor", + sponsor, + claimHash, + typehash, + chainId, + }); + + const theCompact = this.getReadOnlyCompactInstance(chainId); // Use explicit type assertion for the contract call result const { isActive, expires } = await theCompact.getRegistrationStatus( @@ -81,7 +78,7 @@ export class TheCompactService { typehash, ); - this.log.debug(`Result: ${isActive}, ${expires}`); + this.log.debug({ msg: "Registration status", isActive, expires }); return { isActive, expires } as RegistrationStatus; } catch (error) { @@ -97,7 +94,8 @@ export class TheCompactService { toString: String(error), }; - this.log.debug("Error in getRegistrationStatus:", { + this.log.debug({ + msg: "Error in getRegistrationStatus:", errorInfo, errorMessage: errorInfo.message, chainId, @@ -105,24 +103,17 @@ export class TheCompactService { claimHash, typehash, }); + throw error; } } async getForcedWithdrawalStatus( - chainId: SupportedChainId, + chainId: number, account: Address, lockId: bigint, ): Promise { - const provider = this.multiProvider.getProvider(chainId); - if (!provider) { - throw new Error(`No client found for chain ${chainId}`); - } - - const theCompact = TheCompact__factory.connect( - THE_COMPACT_ADDRESS, - provider, - ); + const theCompact = this.getReadOnlyCompactInstance(chainId); const result = await theCompact.getForcedWithdrawalStatus(account, lockId); @@ -138,147 +129,4 @@ export class TheCompactService { availableAt: Number(availableAt), }; } - - // async enableForcedWithdrawal( - // chainId: SupportedChainId, - // lockId: bigint - // ): Promise<`0x${string}`> { - // this.log.debug( - // `Preparing to enable forced withdrawal for lock ${lockId} on chain ${chainId}` - // ); - - // const publicClient = this.publicClients[chainId]; - // const walletClient = this.walletClients[chainId]; - - // if (!publicClient || !walletClient) { - // throw new Error(`No clients found for chain ${chainId}`); - // } - - // // Get the account from the wallet client - // const account = walletClient.account; - // if (!account) { - // throw new Error("No account found in wallet client"); - // } - - // this.log.debug(`Using account ${account.address} for forced withdrawal`); - - // // Encode the function call - // const data = encodeFunctionData({ - // abi: THE_COMPACT_ABI, - // functionName: "enableForcedWithdrawal", - // args: [lockId], - // }); - - // this.log.debug(`Encoded enableForcedWithdrawal call for lock ${lockId}`); - - // // Get base fee - // const baseFee = await publicClient - // .getBlock({ blockTag: "latest" }) - // .then( - // (block: { baseFeePerGas: bigint | null }) => block.baseFeePerGas || 0n - // ); - - // this.log.debug(`Got base fee for chain ${chainId}: ${baseFee}`); - - // // Submit the transaction - // this.log.debug( - // `Submitting enableForcedWithdrawal transaction for lock ${lockId}` - // ); - // const hash = await walletClient.sendTransaction({ - // to: THE_COMPACT_ADDRESS, - // data, - // account, - // chain: null, - // maxFeePerGas: (baseFee * 120n) / 100n, - // maxPriorityFeePerGas: CHAIN_PRIORITY_FEES[chainId], - // }); - - // this.log.debug( - // `Successfully submitted enableForcedWithdrawal transaction for lock ${lockId} on chain ${chainId}: ${hash}` - // ); - - // return hash; - // } - - // async executeForcedWithdrawal( - // chainId: SupportedChainId, - // lockId: bigint, - // amount: bigint - // ): Promise<`0x${string}`> { - // this.log.debug( - // `Preparing to execute forced withdrawal for lock ${lockId} on chain ${chainId}`, - // { amount: amount.toString() } - // ); - - // const publicClient = this.publicClients[chainId]; - // const walletClient = this.walletClients[chainId]; - - // if (!publicClient || !walletClient) { - // throw new Error(`No clients found for chain ${chainId}`); - // } - - // // Get the account from the wallet client - // const account = walletClient.account; - // if (!account) { - // throw new Error("No account found in wallet client"); - // } - - // this.log.debug(`Using account ${account.address} for forced withdrawal`); - - // // Double check that forced withdrawal is enabled - // const { status } = await this.getForcedWithdrawalStatus( - // chainId, - // account.address, - // lockId - // ); - - // if (status !== "Enabled") { - // throw new Error( - // `Forced withdrawal not enabled for lock ${lockId} on chain ${chainId}. ` + - // `Current status: ${status} (${ForcedWithdrawalStatus[status as keyof typeof ForcedWithdrawalStatus]})` - // ); - // } - - // // Encode the function call - // const data = encodeFunctionData({ - // abi: THE_COMPACT_ABI, - // functionName: "forcedWithdrawal", - // args: [lockId, account.address, amount], - // }); - - // this.log.debug(`Encoded forcedWithdrawal call for lock ${lockId}`); - - // // Get base fee - // const baseFee = await publicClient - // .getBlock({ blockTag: "latest" }) - // .then( - // (block: { baseFeePerGas: bigint | null }) => block.baseFeePerGas || 0n - // ); - - // this.log.debug(`Got base fee for chain ${chainId}: ${baseFee}`); - - // // Submit the transaction - // this.log.debug(`Submitting forcedWithdrawal transaction for lock ${lockId}`, { - // amount: amount.toString(), - // }); - // const hash = await walletClient.sendTransaction({ - // to: THE_COMPACT_ADDRESS, - // data, - // account, - // chain: null, - // maxFeePerGas: (baseFee * 120n) / 100n, - // maxPriorityFeePerGas: CHAIN_PRIORITY_FEES[chainId], - // }); - - // this.log.debug( - // `Successfully submitted forcedWithdrawal transaction for lock ${lockId} on chain ${chainId}: ${hash}`, - // { amount: amount.toString() } - // ); - - // return hash; - // } - - // public getPublicClient(chainId: SupportedChainId) { - // return this.publicClients[chainId]; - // } } diff --git a/typescript/solver/solvers/compactX/services/price/CoinGeckoProvider.ts b/typescript/solver/solvers/compactX/services/price/CoinGeckoProvider.ts index b46479d5..b8ef64a2 100644 --- a/typescript/solver/solvers/compactX/services/price/CoinGeckoProvider.ts +++ b/typescript/solver/solvers/compactX/services/price/CoinGeckoProvider.ts @@ -1,5 +1,4 @@ import type { Logger } from "../../../../logger.js"; -import type { SupportedChainId } from "../../config/constants.js"; import { log } from "../../utils.js"; // Map chain IDs to CoinGecko platform IDs and their native token IDs @@ -27,7 +26,7 @@ class CoinGeckoError extends Error { } export class CoinGeckoProvider { - private cache: Map; + private cache: Map; private log: Logger; private baseUrl: string; private headers: Record; @@ -107,7 +106,7 @@ export class CoinGeckoProvider { return info; } - async getEthPrice(chainId: SupportedChainId): Promise { + async getEthPrice(chainId: number): Promise { const cached = this.cache.get(chainId); if (cached && Date.now() - cached.timestamp < this.CACHE_TTL) { diff --git a/typescript/solver/solvers/compactX/services/price/PriceService.ts b/typescript/solver/solvers/compactX/services/price/PriceService.ts index fda88658..4c573176 100644 --- a/typescript/solver/solvers/compactX/services/price/PriceService.ts +++ b/typescript/solver/solvers/compactX/services/price/PriceService.ts @@ -80,7 +80,7 @@ export class PriceService extends EventEmitter { private async updatePrices(): Promise { for (const chainId in metadata.chainInfo) { try { - const { price } = await this.provider.getEthPrice(chainId); + const { price } = await this.provider.getEthPrice(+chainId); this.prices.set(+chainId, { price, lastUpdated: Date.now(), diff --git a/typescript/solver/solvers/compactX/types.ts b/typescript/solver/solvers/compactX/types.ts index 35aaa328..1fb41511 100644 --- a/typescript/solver/solvers/compactX/types.ts +++ b/typescript/solver/solvers/compactX/types.ts @@ -112,6 +112,7 @@ export const CompactXMetadataSchema = BaseMetadataSchema.extend({ z.object({ arbiter: addressSchema, tribunal: addressSchema, + compactX: addressSchema, prefix: z.string(), priorityFee: z.bigint(), tokens: z.record( @@ -140,16 +141,3 @@ export type CompactXMetadata = z.infer; export type CompactXParsedArgs = ParsedArgs & { context: BroadcastRequest; }; - -export interface ProcessedBroadcastResult { - success: boolean; - // hash?: Hash; - hash?: string; - reason?: string; - details: { - dispensationUSD: number; - gasCostUSD?: number; - netProfitUSD?: number; - minProfitUSD?: number; - }; -} diff --git a/typescript/solver/solvers/compactX/utils.ts b/typescript/solver/solvers/compactX/utils.ts index ea080ea1..b85f0459 100644 --- a/typescript/solver/solvers/compactX/utils.ts +++ b/typescript/solver/solvers/compactX/utils.ts @@ -120,7 +120,7 @@ export function isSupportedChainId( export function ensureIsSupportedChainId(chainId: string | number) { assert(isSupportedChainId(chainId), `Unsupported chainId: ${chainId}`); - return chainId; + return +chainId; } export function getChainConfig(chainId: string | number) { From 15f3432c1fb59882f21423dc9759fda6e384a0bf Mon Sep 17 00:00:00 2001 From: fernandomg Date: Thu, 20 Mar 2025 19:50:15 +0100 Subject: [PATCH 29/41] refactor(compactX): move buffer values to config/metadata Co-Authored-By: Lisandro Corbalan --- typescript/solver/solvers/compactX/filler.ts | 33 ++++++----- .../compactX/services/TheCompactService.ts | 4 +- typescript/solver/solvers/compactX/types.ts | 4 +- typescript/solver/solvers/compactX/utils.ts | 55 ++++--------------- 4 files changed, 35 insertions(+), 61 deletions(-) diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index 81b99ec9..383ddfb2 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -81,10 +81,12 @@ export class CompactXFiller extends BaseFiller< const chainId = ensureIsSupportedChainId(request.chainId); // Derive and log claim hash - const claimHash = deriveClaimHash(chainId, request.compact); - this.log.info( - `Processing fill request for chainId ${chainId}, claimHash: ${claimHash}`, - ); + const claimHash = deriveClaimHash(request.compact); + this.log.info({ + msg: "Processing fill request", + claimHash, + chainId, + }); // Set the claim hash before verification request.claimHash = claimHash; @@ -104,30 +106,31 @@ export class CompactXFiller extends BaseFiller< } // Log registration status - this.log.info( - `Signature verification successful, registration status: ${isOnchainRegistration ? "onchain" : "offchain"}`, - ); + this.log.debug({ + msg: "Signature verification", + isOnchainRegistration, + }); // Check if either compact or mandate has expired or is close to expiring const currentTimestamp = BigInt(Math.floor(Date.now() / 1000)); - const COMPACT_EXPIRATION_BUFFER = 60n; // 60 seconds buffer for compact - const MANDATE_EXPIRATION_BUFFER = 10n; // 10 seconds buffer for mandate + const { compactExpirationBuffer, mandateExpirationBuffer } = + metadata.chainInfo[chainId]; if ( BigInt(request.compact.expires) <= - currentTimestamp + COMPACT_EXPIRATION_BUFFER + currentTimestamp + compactExpirationBuffer ) { throw new Error( - `Compact must have at least ${COMPACT_EXPIRATION_BUFFER} seconds until expiration`, + `Compact must have at least ${compactExpirationBuffer} seconds until expiration`, ); } if ( BigInt(request.compact.mandate.expires) <= - currentTimestamp + MANDATE_EXPIRATION_BUFFER + currentTimestamp + mandateExpirationBuffer ) { throw new Error( - `Mandate must have at least ${MANDATE_EXPIRATION_BUFFER} seconds until expiration`, + `Mandate must have at least ${mandateExpirationBuffer} seconds until expiration`, ); } @@ -135,7 +138,7 @@ export class CompactXFiller extends BaseFiller< const nonceConsumed = await theCompactService.hasConsumedAllocatorNonce( chainId, BigInt(request.compact.nonce), - request.compact.arbiter as `0x${string}`, + request.compact.arbiter, ); if (nonceConsumed) { @@ -171,7 +174,7 @@ export class CompactXFiller extends BaseFiller< const bufferedMinimumAmount = (minimumAmount * 101n) / 100n; // Calculate settlement amount based on mandate token (ETH/WETH check) - const mandateTokenAddress = request.compact.mandate.token.toLowerCase(); + const mandateTokenAddress = request.compact.mandate.token; if (isSupportedChainToken(mandateChainId, mandateTokenAddress)) { throw new Error( diff --git a/typescript/solver/solvers/compactX/services/TheCompactService.ts b/typescript/solver/solvers/compactX/services/TheCompactService.ts index 1fbea63a..63f91367 100644 --- a/typescript/solver/solvers/compactX/services/TheCompactService.ts +++ b/typescript/solver/solvers/compactX/services/TheCompactService.ts @@ -2,7 +2,7 @@ import type { Logger } from "../../../logger.js"; import type { BigNumber } from "@ethersproject/bignumber"; import type { MultiProvider } from "@hyperlane-xyz/sdk"; -import { Address } from "@hyperlane-xyz/utils"; +import type { Address } from "@hyperlane-xyz/utils"; import { TheCompact__factory } from "../../../typechain/factories/compactX/contracts/TheCompact__factory.js"; import { metadata } from "../config/index.js"; import { ensureIsSupportedChainId } from "../utils.js"; @@ -46,7 +46,7 @@ export class TheCompactService { async hasConsumedAllocatorNonce( chainId: number, nonce: bigint, - allocator: `0x${string}`, + allocator: Address, ): Promise { const theCompact = this.getReadOnlyCompactInstance(chainId); const result = await theCompact.hasConsumedAllocatorNonce(nonce, allocator); diff --git a/typescript/solver/solvers/compactX/types.ts b/typescript/solver/solvers/compactX/types.ts index 1fb41511..4a547c0e 100644 --- a/typescript/solver/solvers/compactX/types.ts +++ b/typescript/solver/solvers/compactX/types.ts @@ -115,6 +115,8 @@ export const CompactXMetadataSchema = BaseMetadataSchema.extend({ compactX: addressSchema, prefix: z.string(), priorityFee: z.bigint(), + compactExpirationBuffer: z.bigint().default(60n), + mandateExpirationBuffer: z.bigint().default(10n), tokens: z.record( z.string(), z.object({ @@ -136,7 +138,7 @@ export const CompactXMetadataSchema = BaseMetadataSchema.extend({ ), }); -export type CompactXMetadata = z.infer; +export type CompactXMetadata = z.input; export type CompactXParsedArgs = ParsedArgs & { context: BroadcastRequest; diff --git a/typescript/solver/solvers/compactX/utils.ts b/typescript/solver/solvers/compactX/utils.ts index b85f0459..1adced0b 100644 --- a/typescript/solver/solvers/compactX/utils.ts +++ b/typescript/solver/solvers/compactX/utils.ts @@ -13,34 +13,7 @@ export const log = createLogger(metadata.protocolName); /** * Derives the claim hash using EIP-712 typed data hashing */ -export function deriveClaimHash( - chainId: number, - compact: BroadcastRequest["compact"], -) { - // Validate mandate parameters - if (!compact.mandate.chainId) throw new Error("Mandate chainId is required"); - if (!compact.mandate.tribunal) - throw new Error("Mandate tribunal is required"); - if (!compact.mandate.recipient) - throw new Error("Mandate recipient is required"); - if (!compact.mandate.expires) throw new Error("Mandate expires is required"); - if (!compact.mandate.token) throw new Error("Mandate token is required"); - if (!compact.mandate.minimumAmount) - throw new Error("Mandate minimumAmount is required"); - if (!compact.mandate.baselinePriorityFee) - throw new Error("Mandate baselinePriorityFee is required"); - if (!compact.mandate.scalingFactor) - throw new Error("Mandate scalingFactor is required"); - if (!compact.mandate.salt) throw new Error("Mandate salt is required"); - - // Validate compact parameters - if (!compact.arbiter) throw new Error("Compact arbiter is required"); - if (!compact.sponsor) throw new Error("Compact sponsor is required"); - if (!compact.nonce) throw new Error("Compact nonce is required"); - if (!compact.expires) throw new Error("Compact expires is required"); - if (!compact.id) throw new Error("Compact id is required"); - if (!compact.amount) throw new Error("Compact amount is required"); - +export function deriveClaimHash(compact: BroadcastRequest["compact"]) { // Calculate COMPACT_TYPEHASH to match Solidity's EIP-712 typed data const COMPACT_TYPESTRING = "Compact(address arbiter,address sponsor,uint256 nonce,uint256 expires,uint256 id,uint256 amount,Mandate mandate)Mandate(uint256 chainId,address tribunal,address recipient,uint256 expires,address token,uint256 minimumAmount,uint256 baselinePriorityFee,uint256 scalingFactor,bytes32 salt)"; @@ -69,10 +42,10 @@ export function deriveClaimHash( [ MANDATE_TYPEHASH, BigInt(compact.mandate.chainId), - compact.mandate.tribunal.toLowerCase(), - compact.mandate.recipient.toLowerCase(), + compact.mandate.tribunal, + compact.mandate.recipient, BigInt(compact.mandate.expires), - compact.mandate.token.toLowerCase(), + compact.mandate.token, BigInt(compact.mandate.minimumAmount), BigInt(compact.mandate.baselinePriorityFee), BigInt(compact.mandate.scalingFactor), @@ -97,8 +70,8 @@ export function deriveClaimHash( ], [ COMPACT_TYPEHASH, - compact.arbiter.toLowerCase(), - compact.sponsor.toLowerCase(), + compact.arbiter, + compact.sponsor, BigInt(compact.nonce), BigInt(compact.expires), BigInt(compact.id), @@ -137,11 +110,8 @@ export function isNativeOrWrappedNative( token: string, ): boolean { const { ETH, WETH } = getChainSupportedTokens(chainId); - token = token.toLowerCase(); - return ( - token === ETH.address.toLowerCase() || token === WETH.address.toLowerCase() - ); + return token.toLowerCase() === ETH.address || token === WETH.address; } export function calculateFillValue( @@ -149,11 +119,11 @@ export function calculateFillValue( settlementAmount: bigint, ) { const { ETH } = getChainSupportedTokens(request.compact.mandate.chainId); - const mandateTokenAddress = request.compact.mandate.token.toLowerCase(); + const mandateTokenAddress = request.compact.mandate.token; const bufferedDispensation = (BigInt(request.context.dispensation) * 125n) / 100n; - return mandateTokenAddress === ETH.address.toLowerCase() + return mandateTokenAddress === ETH.address ? settlementAmount + bufferedDispensation : bufferedDispensation; } @@ -163,7 +133,7 @@ export function isSupportedChainToken(chainId: string | number, token: string) { const chainTokens = getChainSupportedTokens(chainId); return !Object.keys(chainTokens).some( - (symbol) => token === chainTokens[symbol].address.toLowerCase(), + (symbol) => token === chainTokens[symbol].address, ); } @@ -200,14 +170,13 @@ export function getMaxSettlementAmount({ const executionCostUSD = gasCostUSD + dispensationUSD; // Get claim token from compact ID and check if it's ETH/WETH across all chains - const claimToken = - `0x${BigInt(request.compact.id).toString(16).slice(-40)}`.toLowerCase(); + const claimToken = `0x${BigInt(request.compact.id).toString(16).slice(-40)}`; // Check if token is ETH/WETH in any supported chain const isClaimETHorWETH = isNativeOrWrappedNative(request.chainId, claimToken); const isSettlementTokenETHorWETH = isNativeOrWrappedNative( request.compact.mandate.chainId, - request.compact.mandate.token.toLowerCase(), + request.compact.mandate.token, ); // Calculate claim amount less execution costs From e2481e87fe2dff76f2927464e2a06076266f7b66 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Thu, 20 Mar 2025 20:34:10 +0100 Subject: [PATCH 30/41] feat(compactX): extract checks to rules and simplify Co-Authored-By: Lisandro Corbalan --- .../solvers/compactX/config/metadata.ts | 7 +++ typescript/solver/solvers/compactX/filler.ts | 59 +------------------ .../solver/solvers/compactX/rules/index.ts | 2 +- .../compactX/rules/validateChainsAndTokens.ts | 56 ++++++++++++++++++ .../compactX/services/TheCompactService.ts | 2 - typescript/solver/solvers/compactX/utils.ts | 29 +-------- .../solvers/compactX/validation/signature.ts | 6 +- 7 files changed, 71 insertions(+), 90 deletions(-) create mode 100644 typescript/solver/solvers/compactX/rules/validateChainsAndTokens.ts diff --git a/typescript/solver/solvers/compactX/config/metadata.ts b/typescript/solver/solvers/compactX/config/metadata.ts index 35ff0359..cd37b0de 100644 --- a/typescript/solver/solvers/compactX/config/metadata.ts +++ b/typescript/solver/solvers/compactX/config/metadata.ts @@ -136,6 +136,13 @@ const metadata: CompactXMetadata = { url: "https://smallocator.xyz", }, }, + customRules: { + rules: [ + { + name: "validateChainsAndTokens", + }, + ], + }, }; export default CompactXMetadataSchema.parse(metadata); diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index 383ddfb2..32513094 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -18,9 +18,7 @@ import { import { calculateFillValue, deriveClaimHash, - ensureIsSupportedChainId, getMaxSettlementAmount, - isSupportedChainToken, log, } from "./utils.js"; import { verifyBroadcastRequest } from "./validation/signature.js"; @@ -78,7 +76,7 @@ export class CompactXFiller extends BaseFiller< intent: `${this.metadata.protocolName}-${request.compact.id}`, }); - const chainId = ensureIsSupportedChainId(request.chainId); + const chainId = request.chainId; // Derive and log claim hash const claimHash = deriveClaimHash(request.compact); @@ -136,7 +134,7 @@ export class CompactXFiller extends BaseFiller< // Check if nonce has already been consumed const nonceConsumed = await theCompactService.hasConsumedAllocatorNonce( - chainId, + +chainId, BigInt(request.compact.nonce), request.compact.arbiter, ); @@ -146,9 +144,7 @@ export class CompactXFiller extends BaseFiller< } // Process the broadcast transaction - const mandateChainId = ensureIsSupportedChainId( - request.compact.mandate.chainId, - ); + const mandateChainId = request.compact.mandate.chainId; // Validate arbiter and tribunal addresses if (request.compact.arbiter !== metadata.chainInfo[chainId].arbiter) { @@ -176,12 +172,6 @@ export class CompactXFiller extends BaseFiller< // Calculate settlement amount based on mandate token (ETH/WETH check) const mandateTokenAddress = request.compact.mandate.token; - if (isSupportedChainToken(mandateChainId, mandateTokenAddress)) { - throw new Error( - `Unsupported mandate token ${mandateTokenAddress}, on chain ${mandateChainId}`, - ); - } - // Get the relevant token balance based on mandate token const mandateTokenBalance = ( await retrieveTokenBalance(mandateTokenAddress, fillerAddress, provider) @@ -381,54 +371,11 @@ export class CompactXFiller extends BaseFiller< } } -const enoughBalanceOnDestination: CompactXRule = async ( - parsedArgs, - context, -) => { - // const erc20Interface = Erc20__factory.createInterface(); - - // const requiredAmountsByTarget = parsedArgs._targets.reduce<{ - // [tokenAddress: string]: BigNumber; - // }>((acc, target, index) => { - // const [, amount] = erc20Interface.decodeFunctionData( - // "transfer", - // parsedArgs._data[index], - // ) as [unknown, BigNumber]; - - // acc[target] ||= Zero; - // acc[target] = acc[target].add(amount); - - // return acc; - // }, {}); - - // const chainId = parsedArgs._destinationChain.toString(); - // const fillerAddress = await context.multiProvider.getSignerAddress(chainId); - // const provider = context.multiProvider.getProvider(chainId); - - // for (const tokenAddress in requiredAmountsByTarget) { - // const balance = await retrieveTokenBalance( - // tokenAddress, - // fillerAddress, - // provider, - // ); - - // if (balance.lt(requiredAmountsByTarget[tokenAddress])) { - // return { - // error: `Insufficient balance on destination chain ${chainId} for token ${tokenAddress}`, - // success: false, - // }; - // } - // } - - return { data: "Enough tokens to fulfill the intent", success: true }; -}; - export const create = ( multiProvider: MultiProvider, customRules?: RulesMap, ) => { return new CompactXFiller(multiProvider, { - base: [enoughBalanceOnDestination], custom: customRules, }).create(); }; diff --git a/typescript/solver/solvers/compactX/rules/index.ts b/typescript/solver/solvers/compactX/rules/index.ts index cb0ff5c3..e0e33f3e 100644 --- a/typescript/solver/solvers/compactX/rules/index.ts +++ b/typescript/solver/solvers/compactX/rules/index.ts @@ -1 +1 @@ -export {}; +export { validateChainsAndTokens } from "./validateChainsAndTokens.js"; diff --git a/typescript/solver/solvers/compactX/rules/validateChainsAndTokens.ts b/typescript/solver/solvers/compactX/rules/validateChainsAndTokens.ts new file mode 100644 index 00000000..5f5e813c --- /dev/null +++ b/typescript/solver/solvers/compactX/rules/validateChainsAndTokens.ts @@ -0,0 +1,56 @@ +import { metadata } from "../config/index.js"; +import type { CompactXRule } from "../filler.js"; +import type { CompactXParsedArgs } from "../types.js"; +import { getChainSupportedTokens } from "../utils.js"; + +export function validateChainsAndTokens(): CompactXRule { + return async (parsedArgs: CompactXParsedArgs) => { + if (!(parsedArgs.context.chainId in metadata.chainInfo)) { + return { + error: `Origin ${parsedArgs.context.chainId} is not supported`, + success: false, + }; + } + + if (!(parsedArgs.context.compact.mandate.chainId in metadata.chainInfo)) { + return { + error: `Destination ${parsedArgs.context.compact.mandate.chainId} is not supported`, + success: false, + }; + } + + const claimToken = `0x${BigInt(parsedArgs.context.compact.id).toString(16).slice(-40)}`; + const originChainTokens = getChainSupportedTokens( + parsedArgs.context.chainId, + ); + + if ( + !Object.entries(originChainTokens).some( + ([, { address }]) => claimToken === address, + ) + ) { + return { + error: `Claim token not supported ${claimToken}, on chain ${parsedArgs.context.chainId}`, + success: false, + }; + } + + const mandateToken = parsedArgs.context.compact.mandate.token.toLowerCase(); + const mandateChainTokens = getChainSupportedTokens( + parsedArgs.context.compact.mandate.chainId, + ); + + if ( + !Object.entries(mandateChainTokens).some( + ([, { address }]) => mandateToken === address, + ) + ) { + return { + error: `Destination token not supported ${mandateToken}, on chain ${parsedArgs.context.compact.mandate.chainId}`, + success: false, + }; + } + + return { data: "Chains and tokens are Ok", success: true }; + }; +} diff --git a/typescript/solver/solvers/compactX/services/TheCompactService.ts b/typescript/solver/solvers/compactX/services/TheCompactService.ts index 63f91367..b315fd95 100644 --- a/typescript/solver/solvers/compactX/services/TheCompactService.ts +++ b/typescript/solver/solvers/compactX/services/TheCompactService.ts @@ -5,7 +5,6 @@ import type { MultiProvider } from "@hyperlane-xyz/sdk"; import type { Address } from "@hyperlane-xyz/utils"; import { TheCompact__factory } from "../../../typechain/factories/compactX/contracts/TheCompact__factory.js"; import { metadata } from "../config/index.js"; -import { ensureIsSupportedChainId } from "../utils.js"; /** * @notice Status of a forced withdrawal @@ -34,7 +33,6 @@ export class TheCompactService { ) {} private getReadOnlyCompactInstance(chainId: number) { - chainId = ensureIsSupportedChainId(chainId); const provider = this.multiProvider.getProvider(chainId); return TheCompact__factory.connect( diff --git a/typescript/solver/solvers/compactX/utils.ts b/typescript/solver/solvers/compactX/utils.ts index 1adced0b..8e3d80f5 100644 --- a/typescript/solver/solvers/compactX/utils.ts +++ b/typescript/solver/solvers/compactX/utils.ts @@ -5,7 +5,6 @@ import { AbiCoder } from "@ethersproject/abi"; import { keccak256 } from "@ethersproject/keccak256"; import { toUtf8Bytes } from "@ethersproject/strings"; import { formatEther, parseEther } from "@ethersproject/units"; -import { assert } from "@hyperlane-xyz/utils"; import { BroadcastRequest } from "./types.js"; export const log = createLogger(metadata.protocolName); @@ -84,25 +83,8 @@ export function deriveClaimHash(compact: BroadcastRequest["compact"]) { return keccak256(encodedData); } -export function isSupportedChainId( - chainId: string | number, -): chainId is keyof typeof metadata.chainInfo { - return (+chainId) in metadata.chainInfo; -} - -export function ensureIsSupportedChainId(chainId: string | number) { - assert(isSupportedChainId(chainId), `Unsupported chainId: ${chainId}`); - - return +chainId; -} - -export function getChainConfig(chainId: string | number) { - const supportedChainId = ensureIsSupportedChainId(chainId); - return metadata.chainInfo[supportedChainId]; -} - export function getChainSupportedTokens(chainId: string | number) { - return getChainConfig(chainId).tokens; + return metadata.chainInfo[chainId].tokens; } export function isNativeOrWrappedNative( @@ -128,15 +110,6 @@ export function calculateFillValue( : bufferedDispensation; } -// TODO-RULE: move into a rule -export function isSupportedChainToken(chainId: string | number, token: string) { - const chainTokens = getChainSupportedTokens(chainId); - - return !Object.keys(chainTokens).some( - (symbol) => token === chainTokens[symbol].address, - ); -} - export function getMaxSettlementAmount({ estimatedGas, ethPrice, diff --git a/typescript/solver/solvers/compactX/validation/signature.ts b/typescript/solver/solvers/compactX/validation/signature.ts index b86310a6..9d91a590 100644 --- a/typescript/solver/solvers/compactX/validation/signature.ts +++ b/typescript/solver/solvers/compactX/validation/signature.ts @@ -6,7 +6,7 @@ import type { TheCompactService, } from "../services/TheCompactService.js"; import type { BroadcastRequest } from "../types.js"; -import { ensureIsSupportedChainId, log } from "../utils.js"; +import { log } from "../utils.js"; // Extract allocator ID from compact.id const extractAllocatorId = (compactId: string): string => { @@ -96,7 +96,7 @@ export async function verifyBroadcastRequest( isOnchainRegistration: boolean; error?: string; }> { - const chainId = ensureIsSupportedChainId(request.chainId); + const chainId = request.chainId; log.info({ msg: "Verifying broadcast request", @@ -153,7 +153,7 @@ export async function verifyBroadcastRequest( ); try { registrationStatus = await theCompactService.getRegistrationStatus( - chainId, + +chainId, request.compact.sponsor, claimHash, COMPACT_REGISTRATION_TYPEHASH, From 16e046679e47910922902133786f5ba0c7ad03b8 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Thu, 20 Mar 2025 21:02:27 +0100 Subject: [PATCH 31/41] feat(compactX): extract verifySignatures rules Co-Authored-By: Lisandro Corbalan --- .../solvers/compactX/config/metadata.ts | 3 ++ typescript/solver/solvers/compactX/filler.ts | 44 +++---------------- .../solver/solvers/compactX/rules/index.ts | 1 + .../compactX/rules/verifySignatures.ts | 35 +++++++++++++++ 4 files changed, 45 insertions(+), 38 deletions(-) create mode 100644 typescript/solver/solvers/compactX/rules/verifySignatures.ts diff --git a/typescript/solver/solvers/compactX/config/metadata.ts b/typescript/solver/solvers/compactX/config/metadata.ts index cd37b0de..66764d61 100644 --- a/typescript/solver/solvers/compactX/config/metadata.ts +++ b/typescript/solver/solvers/compactX/config/metadata.ts @@ -141,6 +141,9 @@ const metadata: CompactXMetadata = { { name: "validateChainsAndTokens", }, + { + name: "verifySignatures", + }, ], }, }; diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index 32513094..ef1450c6 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -15,13 +15,7 @@ import { type CompactXMetadata, type CompactXParsedArgs, } from "./types.js"; -import { - calculateFillValue, - deriveClaimHash, - getMaxSettlementAmount, - log, -} from "./utils.js"; -import { verifyBroadcastRequest } from "./validation/signature.js"; +import { calculateFillValue, getMaxSettlementAmount, log } from "./utils.js"; export type CompactXRule = CompactXFiller["rules"][number]; @@ -78,37 +72,6 @@ export class CompactXFiller extends BaseFiller< const chainId = request.chainId; - // Derive and log claim hash - const claimHash = deriveClaimHash(request.compact); - this.log.info({ - msg: "Processing fill request", - claimHash, - chainId, - }); - - // Set the claim hash before verification - request.claimHash = claimHash; - - const theCompactService = new TheCompactService( - this.multiProvider, - this.log, - ); - - // Verify signatures - this.log.info("Verifying signatures..."); - const { isValid, isOnchainRegistration, error } = - await verifyBroadcastRequest(request, theCompactService); - - if (!isValid) { - throw new Error(error); - } - - // Log registration status - this.log.debug({ - msg: "Signature verification", - isOnchainRegistration, - }); - // Check if either compact or mandate has expired or is close to expiring const currentTimestamp = BigInt(Math.floor(Date.now() / 1000)); const { compactExpirationBuffer, mandateExpirationBuffer } = @@ -133,6 +96,11 @@ export class CompactXFiller extends BaseFiller< } // Check if nonce has already been consumed + const theCompactService = new TheCompactService( + this.multiProvider, + this.log, + ); + const nonceConsumed = await theCompactService.hasConsumedAllocatorNonce( +chainId, BigInt(request.compact.nonce), diff --git a/typescript/solver/solvers/compactX/rules/index.ts b/typescript/solver/solvers/compactX/rules/index.ts index e0e33f3e..f9a8cd62 100644 --- a/typescript/solver/solvers/compactX/rules/index.ts +++ b/typescript/solver/solvers/compactX/rules/index.ts @@ -1 +1,2 @@ export { validateChainsAndTokens } from "./validateChainsAndTokens.js"; +export { verifySignatures } from "./verifySignatures.js"; diff --git a/typescript/solver/solvers/compactX/rules/verifySignatures.ts b/typescript/solver/solvers/compactX/rules/verifySignatures.ts new file mode 100644 index 00000000..11d6d2f9 --- /dev/null +++ b/typescript/solver/solvers/compactX/rules/verifySignatures.ts @@ -0,0 +1,35 @@ +import type { CompactXRule } from "../filler.js"; +import { TheCompactService } from "../services/TheCompactService.js"; +import { BroadcastRequestSchema } from "../types.js"; +import { deriveClaimHash, log } from "../utils.js"; +import { verifyBroadcastRequest } from "../validation/signature.js"; + +export function verifySignatures(): CompactXRule { + return async (parsedArgs, context) => { + const { data: request, error: requestError } = + BroadcastRequestSchema.safeParse(parsedArgs.context); + + if (requestError) { + return { error: requestError.message, success: false }; + } + + const theCompactService = new TheCompactService(context.multiProvider, log); + + // Derive and log claim hash + const claimHash = deriveClaimHash(request.compact); + + // Set the claim hash before verification + request.claimHash = claimHash; + + const { isValid, error } = await verifyBroadcastRequest( + request, + theCompactService, + ); + + if (!isValid) { + return { error: error ?? "Could not verify signatures", success: false }; + } + + return { data: "Signatures are Ok", success: true }; + }; +} From 667129e295781b1349526ca246dc746c58bcb8ca Mon Sep 17 00:00:00 2001 From: fernandomg Date: Thu, 20 Mar 2025 21:09:26 +0100 Subject: [PATCH 32/41] feat(compactX): extract checkExpirations rule Co-Authored-By: Lisandro Corbalan --- .../solvers/compactX/config/metadata.ts | 3 ++ typescript/solver/solvers/compactX/filler.ts | 27 ++------------ .../compactX/rules/checkExpirations.ts | 35 +++++++++++++++++++ .../solver/solvers/compactX/rules/index.ts | 1 + 4 files changed, 41 insertions(+), 25 deletions(-) create mode 100644 typescript/solver/solvers/compactX/rules/checkExpirations.ts diff --git a/typescript/solver/solvers/compactX/config/metadata.ts b/typescript/solver/solvers/compactX/config/metadata.ts index 66764d61..67b983f8 100644 --- a/typescript/solver/solvers/compactX/config/metadata.ts +++ b/typescript/solver/solvers/compactX/config/metadata.ts @@ -144,6 +144,9 @@ const metadata: CompactXMetadata = { { name: "verifySignatures", }, + { + name: "checkExpirations", + }, ], }, }; diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index ef1450c6..50edca4e 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -70,30 +70,7 @@ export class CompactXFiller extends BaseFiller< intent: `${this.metadata.protocolName}-${request.compact.id}`, }); - const chainId = request.chainId; - - // Check if either compact or mandate has expired or is close to expiring - const currentTimestamp = BigInt(Math.floor(Date.now() / 1000)); - const { compactExpirationBuffer, mandateExpirationBuffer } = - metadata.chainInfo[chainId]; - - if ( - BigInt(request.compact.expires) <= - currentTimestamp + compactExpirationBuffer - ) { - throw new Error( - `Compact must have at least ${compactExpirationBuffer} seconds until expiration`, - ); - } - - if ( - BigInt(request.compact.mandate.expires) <= - currentTimestamp + mandateExpirationBuffer - ) { - throw new Error( - `Mandate must have at least ${mandateExpirationBuffer} seconds until expiration`, - ); - } + const chainId = +request.chainId; // Check if nonce has already been consumed const theCompactService = new TheCompactService( @@ -102,7 +79,7 @@ export class CompactXFiller extends BaseFiller< ); const nonceConsumed = await theCompactService.hasConsumedAllocatorNonce( - +chainId, + chainId, BigInt(request.compact.nonce), request.compact.arbiter, ); diff --git a/typescript/solver/solvers/compactX/rules/checkExpirations.ts b/typescript/solver/solvers/compactX/rules/checkExpirations.ts new file mode 100644 index 00000000..b53705b6 --- /dev/null +++ b/typescript/solver/solvers/compactX/rules/checkExpirations.ts @@ -0,0 +1,35 @@ +import { metadata } from "../config/index.js"; +import { CompactXRule } from "../filler.js"; + +export function checkExpirations(): CompactXRule { + return async (parsedArgs) => { + const chainId = parsedArgs.context.chainId; + + // Check if either compact or mandate has expired or is close to expiring + const currentTimestamp = BigInt(Math.floor(Date.now() / 1000)); + const { compactExpirationBuffer, mandateExpirationBuffer } = + metadata.chainInfo[chainId]; + + if ( + BigInt(parsedArgs.context.compact.expires) <= + currentTimestamp + compactExpirationBuffer + ) { + return { + error: `Compact must have at least ${compactExpirationBuffer} seconds until expiration`, + success: false, + }; + } + + if ( + BigInt(parsedArgs.context.compact.mandate.expires) <= + currentTimestamp + mandateExpirationBuffer + ) { + return { + error: `Mandate must have at least ${mandateExpirationBuffer} seconds until expiration`, + success: false, + }; + } + + return { data: "Intent is not expired", success: true }; + }; +} diff --git a/typescript/solver/solvers/compactX/rules/index.ts b/typescript/solver/solvers/compactX/rules/index.ts index f9a8cd62..642c4076 100644 --- a/typescript/solver/solvers/compactX/rules/index.ts +++ b/typescript/solver/solvers/compactX/rules/index.ts @@ -1,2 +1,3 @@ +export { checkExpirations } from "./checkExpirations.js"; export { validateChainsAndTokens } from "./validateChainsAndTokens.js"; export { verifySignatures } from "./verifySignatures.js"; From 398970f13395e3c85333a6afe85e630e7608d8c0 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Fri, 21 Mar 2025 08:25:57 +0100 Subject: [PATCH 33/41] feat(compactX): extract arbiter and tribunal checks --- .../solvers/compactX/config/metadata.ts | 3 ++ typescript/solver/solvers/compactX/filler.ts | 12 ------- .../solver/solvers/compactX/rules/index.ts | 1 + .../rules/validateArbiterAndTribunal.ts | 31 +++++++++++++++++++ .../compactX/rules/validateChainsAndTokens.ts | 26 ++++++++++++++++ 5 files changed, 61 insertions(+), 12 deletions(-) create mode 100644 typescript/solver/solvers/compactX/rules/validateArbiterAndTribunal.ts diff --git a/typescript/solver/solvers/compactX/config/metadata.ts b/typescript/solver/solvers/compactX/config/metadata.ts index 67b983f8..e60885bb 100644 --- a/typescript/solver/solvers/compactX/config/metadata.ts +++ b/typescript/solver/solvers/compactX/config/metadata.ts @@ -147,6 +147,9 @@ const metadata: CompactXMetadata = { { name: "checkExpirations", }, + { + name: "validateArbiterAndTribunal", + }, ], }, }; diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index 50edca4e..f605982b 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -91,18 +91,6 @@ export class CompactXFiller extends BaseFiller< // Process the broadcast transaction const mandateChainId = request.compact.mandate.chainId; - // Validate arbiter and tribunal addresses - if (request.compact.arbiter !== metadata.chainInfo[chainId].arbiter) { - throw new Error("Unsupported arbiter address"); - } - - if ( - request.compact.mandate.tribunal !== - metadata.chainInfo[mandateChainId].tribunal - ) { - throw new Error("Unsupported tribunal address"); - } - const provider = this.multiProvider.getProvider(mandateChainId); const signer = this.multiProvider.getSigner(mandateChainId); const fillerAddress = await signer.getAddress(); diff --git a/typescript/solver/solvers/compactX/rules/index.ts b/typescript/solver/solvers/compactX/rules/index.ts index 642c4076..f2207cce 100644 --- a/typescript/solver/solvers/compactX/rules/index.ts +++ b/typescript/solver/solvers/compactX/rules/index.ts @@ -1,3 +1,4 @@ export { checkExpirations } from "./checkExpirations.js"; +export { validateArbiterAndTribunal } from "./validateArbiterAndTribunal.js"; export { validateChainsAndTokens } from "./validateChainsAndTokens.js"; export { verifySignatures } from "./verifySignatures.js"; diff --git a/typescript/solver/solvers/compactX/rules/validateArbiterAndTribunal.ts b/typescript/solver/solvers/compactX/rules/validateArbiterAndTribunal.ts new file mode 100644 index 00000000..9d25e617 --- /dev/null +++ b/typescript/solver/solvers/compactX/rules/validateArbiterAndTribunal.ts @@ -0,0 +1,31 @@ +import { metadata } from "../config/index.js"; +import type { CompactXRule } from "../filler.js"; +import type { CompactXParsedArgs } from "../types.js"; + +export function validateArbiterAndTribunal(): CompactXRule { + return async (parsedArgs: CompactXParsedArgs) => { + // Validate arbiter address + if ( + parsedArgs.context.compact.arbiter !== + metadata.chainInfo[parsedArgs.context.chainId].arbiter + ) { + return { + error: `Unsupported arbiter address ${parsedArgs.context.compact.arbiter}, on chain ${parsedArgs.context.chainId}`, + success: false, + }; + } + + // Validate tribunal addresses + if ( + parsedArgs.context.compact.mandate.tribunal !== + metadata.chainInfo[parsedArgs.context.compact.mandate.chainId].tribunal + ) { + return { + error: `Unsupported tribunal address ${parsedArgs.context.compact.mandate.tribunal}, on chain ${parsedArgs.context.compact.mandate.chainId}`, + success: false, + }; + } + + return { data: "Arbiter and Tribunal are Ok", success: true }; + }; +} diff --git a/typescript/solver/solvers/compactX/rules/validateChainsAndTokens.ts b/typescript/solver/solvers/compactX/rules/validateChainsAndTokens.ts index 5f5e813c..89cde7da 100644 --- a/typescript/solver/solvers/compactX/rules/validateChainsAndTokens.ts +++ b/typescript/solver/solvers/compactX/rules/validateChainsAndTokens.ts @@ -5,6 +5,7 @@ import { getChainSupportedTokens } from "../utils.js"; export function validateChainsAndTokens(): CompactXRule { return async (parsedArgs: CompactXParsedArgs) => { + // Validate origin chain ID if (!(parsedArgs.context.chainId in metadata.chainInfo)) { return { error: `Origin ${parsedArgs.context.chainId} is not supported`, @@ -12,6 +13,7 @@ export function validateChainsAndTokens(): CompactXRule { }; } + // Validate destination chain ID if (!(parsedArgs.context.compact.mandate.chainId in metadata.chainInfo)) { return { error: `Destination ${parsedArgs.context.compact.mandate.chainId} is not supported`, @@ -19,6 +21,7 @@ export function validateChainsAndTokens(): CompactXRule { }; } + // Validate claim token const claimToken = `0x${BigInt(parsedArgs.context.compact.id).toString(16).slice(-40)}`; const originChainTokens = getChainSupportedTokens( parsedArgs.context.chainId, @@ -35,6 +38,7 @@ export function validateChainsAndTokens(): CompactXRule { }; } + // Validate destination token const mandateToken = parsedArgs.context.compact.mandate.token.toLowerCase(); const mandateChainTokens = getChainSupportedTokens( parsedArgs.context.compact.mandate.chainId, @@ -51,6 +55,28 @@ export function validateChainsAndTokens(): CompactXRule { }; } + // Validate arbiter address + if ( + parsedArgs.context.compact.arbiter !== + metadata.chainInfo[parsedArgs.context.chainId].arbiter + ) { + return { + error: `Unsupported arbiter address ${parsedArgs.context.compact.arbiter}, on chain ${parsedArgs.context.chainId}`, + success: false, + }; + } + + // Validate tribunal addresses + if ( + parsedArgs.context.compact.mandate.tribunal !== + metadata.chainInfo[parsedArgs.context.compact.mandate.chainId].tribunal + ) { + return { + error: `Unsupported tribunal address ${parsedArgs.context.compact.mandate.tribunal}, on chain ${parsedArgs.context.compact.mandate.chainId}`, + success: false, + }; + } + return { data: "Chains and tokens are Ok", success: true }; }; } From 532bd38bf8d586d4e03730db0bbb9a9c2e09c440 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Fri, 21 Mar 2025 08:32:28 +0100 Subject: [PATCH 34/41] feat(compactX): extract nonce check --- .../solvers/compactX/config/metadata.ts | 3 +++ typescript/solver/solvers/compactX/filler.ts | 18 -------------- .../solver/solvers/compactX/rules/index.ts | 1 + .../solvers/compactX/rules/verifyNonce.ts | 24 +++++++++++++++++++ 4 files changed, 28 insertions(+), 18 deletions(-) create mode 100644 typescript/solver/solvers/compactX/rules/verifyNonce.ts diff --git a/typescript/solver/solvers/compactX/config/metadata.ts b/typescript/solver/solvers/compactX/config/metadata.ts index e60885bb..800f1ab5 100644 --- a/typescript/solver/solvers/compactX/config/metadata.ts +++ b/typescript/solver/solvers/compactX/config/metadata.ts @@ -150,6 +150,9 @@ const metadata: CompactXMetadata = { { name: "validateArbiterAndTribunal", }, + { + name: "verifyNonce", + }, ], }, }; diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index f605982b..2c6c5b2c 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -70,24 +70,6 @@ export class CompactXFiller extends BaseFiller< intent: `${this.metadata.protocolName}-${request.compact.id}`, }); - const chainId = +request.chainId; - - // Check if nonce has already been consumed - const theCompactService = new TheCompactService( - this.multiProvider, - this.log, - ); - - const nonceConsumed = await theCompactService.hasConsumedAllocatorNonce( - chainId, - BigInt(request.compact.nonce), - request.compact.arbiter, - ); - - if (nonceConsumed) { - throw new Error("Nonce has already been consumed"); - } - // Process the broadcast transaction const mandateChainId = request.compact.mandate.chainId; diff --git a/typescript/solver/solvers/compactX/rules/index.ts b/typescript/solver/solvers/compactX/rules/index.ts index f2207cce..d2e0b825 100644 --- a/typescript/solver/solvers/compactX/rules/index.ts +++ b/typescript/solver/solvers/compactX/rules/index.ts @@ -1,4 +1,5 @@ export { checkExpirations } from "./checkExpirations.js"; export { validateArbiterAndTribunal } from "./validateArbiterAndTribunal.js"; export { validateChainsAndTokens } from "./validateChainsAndTokens.js"; +export { verifyNonce } from "./verifyNonce.js"; export { verifySignatures } from "./verifySignatures.js"; diff --git a/typescript/solver/solvers/compactX/rules/verifyNonce.ts b/typescript/solver/solvers/compactX/rules/verifyNonce.ts new file mode 100644 index 00000000..cc5e160c --- /dev/null +++ b/typescript/solver/solvers/compactX/rules/verifyNonce.ts @@ -0,0 +1,24 @@ +import type { CompactXRule } from "../filler.js"; +import { TheCompactService } from "../services/TheCompactService.js"; +import { log } from "../utils.js"; + +export function verifyNonce(): CompactXRule { + return async (parsedArgs, context) => { + const theCompactService = new TheCompactService(context.multiProvider, log); + + const nonceConsumed = await theCompactService.hasConsumedAllocatorNonce( + +parsedArgs.context.chainId, + BigInt(parsedArgs.context.compact.nonce), + parsedArgs.context.compact.arbiter, + ); + + if (nonceConsumed) { + return { + error: "Nonce has already been consumed", + success: false, + }; + } + + return { data: "Signatures are Ok", success: true }; + }; +} From 12f94d8e5deb612f8d9f3a7fd223cd5614e85450 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Fri, 21 Mar 2025 08:34:48 +0100 Subject: [PATCH 35/41] refactor(compactX): code reorg --- typescript/solver/solvers/compactX/filler.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index 2c6c5b2c..ee131ead 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -8,7 +8,6 @@ import { BuildRules, RulesMap } from "../types.js"; import { retrieveTokenBalance } from "../utils.js"; import { allowBlockLists, metadata } from "./config/index.js"; import { PriceService } from "./services/price/PriceService.js"; -import { TheCompactService } from "./services/TheCompactService.js"; import { type BroadcastRequest, BroadcastRequestSchema, @@ -77,9 +76,6 @@ export class CompactXFiller extends BaseFiller< const signer = this.multiProvider.getSigner(mandateChainId); const fillerAddress = await signer.getAddress(); - // Get current ETH price for the chain from memory - const ethPrice = this.priceService.getPrice(mandateChainId); - // Calculate simulation values const minimumAmount = BigInt(request.compact.mandate.minimumAmount); const bufferedMinimumAmount = (minimumAmount * 101n) / 100n; @@ -171,6 +167,9 @@ export class CompactXFiller extends BaseFiller< }) ).toBigInt(); + // Get current ETH price for the chain from memory + const ethPrice = this.priceService.getPrice(mandateChainId); + const maxSettlementAmount = getMaxSettlementAmount({ estimatedGas, ethPrice, From 3b16be8847d1b4c68d1b1469ad7205feec6841d8 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Fri, 21 Mar 2025 09:00:33 +0100 Subject: [PATCH 36/41] feat(compactX): move zod checks/parse into listener parser --- typescript/solver/solvers/compactX/filler.ts | 20 ++++++------------- .../solver/solvers/compactX/listener.ts | 9 +++++---- .../compactX/rules/checkExpirations.ts | 4 +--- .../compactX/rules/validateChainsAndTokens.ts | 2 +- .../compactX/rules/verifySignatures.ts | 14 +++---------- 5 files changed, 16 insertions(+), 33 deletions(-) diff --git a/typescript/solver/solvers/compactX/filler.ts b/typescript/solver/solvers/compactX/filler.ts index ee131ead..9ff257e8 100644 --- a/typescript/solver/solvers/compactX/filler.ts +++ b/typescript/solver/solvers/compactX/filler.ts @@ -8,12 +8,7 @@ import { BuildRules, RulesMap } from "../types.js"; import { retrieveTokenBalance } from "../utils.js"; import { allowBlockLists, metadata } from "./config/index.js"; import { PriceService } from "./services/price/PriceService.js"; -import { - type BroadcastRequest, - BroadcastRequestSchema, - type CompactXMetadata, - type CompactXParsedArgs, -} from "./types.js"; +import type { CompactXMetadata, CompactXParsedArgs } from "./types.js"; import { calculateFillValue, getMaxSettlementAmount, log } from "./utils.js"; export type CompactXRule = CompactXFiller["rules"][number]; @@ -44,13 +39,11 @@ export class CompactXFiller extends BaseFiller< protected async prepareIntent( parsedArgs: CompactXParsedArgs, - ): Promise> { + ): Promise> { try { await super.prepareIntent(parsedArgs); - const result = BroadcastRequestSchema.parse(parsedArgs.context); - - return { data: result, success: true }; + return { data: "", success: true }; } catch (error: any) { return { error: @@ -60,10 +53,9 @@ export class CompactXFiller extends BaseFiller< } } - protected async fill( - parsedArgs: CompactXParsedArgs, - request: BroadcastRequest, - ) { + protected async fill(parsedArgs: CompactXParsedArgs) { + const request = parsedArgs.context; + this.log.info({ msg: "Filling Intent", intent: `${this.metadata.protocolName}-${request.compact.id}`, diff --git a/typescript/solver/solvers/compactX/listener.ts b/typescript/solver/solvers/compactX/listener.ts index 2b82f5d7..1b66bcc0 100644 --- a/typescript/solver/solvers/compactX/listener.ts +++ b/typescript/solver/solvers/compactX/listener.ts @@ -2,7 +2,7 @@ import { chainIdsToName } from "../../config/index.js"; import type { BaseWebSocketSource } from "../types.js"; import { WebSocketListener } from "../WebSocketListener.js"; import { metadata } from "./config/index.js"; -import { CompactXParsedArgs } from "./types.js"; +import { BroadcastRequestSchema, type CompactXParsedArgs } from "./types.js"; import { log } from "./utils.js"; type CompactXClassMetadata = { @@ -16,15 +16,16 @@ export class CompactXListener extends WebSocketListener { } protected parseEventArgs(args: Buffer): CompactXParsedArgs { - const context: CompactXParsedArgs["context"] = JSON.parse(args.toString()); + const context: CompactXParsedArgs["context"] = BroadcastRequestSchema.parse( + JSON.parse(args.toString()), + ); return { orderId: context.compact.id, senderAddress: context.compact.sponsor, recipients: [ { - destinationChainName: - chainIdsToName[context.compact.mandate.chainId.toString()], + destinationChainName: chainIdsToName[context.compact.mandate.chainId], recipientAddress: context.compact.mandate.recipient, }, ], diff --git a/typescript/solver/solvers/compactX/rules/checkExpirations.ts b/typescript/solver/solvers/compactX/rules/checkExpirations.ts index b53705b6..d923c7fe 100644 --- a/typescript/solver/solvers/compactX/rules/checkExpirations.ts +++ b/typescript/solver/solvers/compactX/rules/checkExpirations.ts @@ -3,12 +3,10 @@ import { CompactXRule } from "../filler.js"; export function checkExpirations(): CompactXRule { return async (parsedArgs) => { - const chainId = parsedArgs.context.chainId; - // Check if either compact or mandate has expired or is close to expiring const currentTimestamp = BigInt(Math.floor(Date.now() / 1000)); const { compactExpirationBuffer, mandateExpirationBuffer } = - metadata.chainInfo[chainId]; + metadata.chainInfo[parsedArgs.context.chainId]; if ( BigInt(parsedArgs.context.compact.expires) <= diff --git a/typescript/solver/solvers/compactX/rules/validateChainsAndTokens.ts b/typescript/solver/solvers/compactX/rules/validateChainsAndTokens.ts index 89cde7da..3d0141fa 100644 --- a/typescript/solver/solvers/compactX/rules/validateChainsAndTokens.ts +++ b/typescript/solver/solvers/compactX/rules/validateChainsAndTokens.ts @@ -39,7 +39,7 @@ export function validateChainsAndTokens(): CompactXRule { } // Validate destination token - const mandateToken = parsedArgs.context.compact.mandate.token.toLowerCase(); + const mandateToken = parsedArgs.context.compact.mandate.token; const mandateChainTokens = getChainSupportedTokens( parsedArgs.context.compact.mandate.chainId, ); diff --git a/typescript/solver/solvers/compactX/rules/verifySignatures.ts b/typescript/solver/solvers/compactX/rules/verifySignatures.ts index 11d6d2f9..2d5c590f 100644 --- a/typescript/solver/solvers/compactX/rules/verifySignatures.ts +++ b/typescript/solver/solvers/compactX/rules/verifySignatures.ts @@ -1,28 +1,20 @@ import type { CompactXRule } from "../filler.js"; import { TheCompactService } from "../services/TheCompactService.js"; -import { BroadcastRequestSchema } from "../types.js"; import { deriveClaimHash, log } from "../utils.js"; import { verifyBroadcastRequest } from "../validation/signature.js"; export function verifySignatures(): CompactXRule { return async (parsedArgs, context) => { - const { data: request, error: requestError } = - BroadcastRequestSchema.safeParse(parsedArgs.context); - - if (requestError) { - return { error: requestError.message, success: false }; - } - const theCompactService = new TheCompactService(context.multiProvider, log); // Derive and log claim hash - const claimHash = deriveClaimHash(request.compact); + const claimHash = deriveClaimHash(parsedArgs.context.compact); // Set the claim hash before verification - request.claimHash = claimHash; + parsedArgs.context.claimHash = claimHash; const { isValid, error } = await verifyBroadcastRequest( - request, + parsedArgs.context, theCompactService, ); From ccf1cd0681f357c6b5e1045e932b10e0ece81277 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Fri, 21 Mar 2025 10:00:25 +0100 Subject: [PATCH 37/41] fix: wrong message --- typescript/solver/solvers/compactX/rules/verifyNonce.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typescript/solver/solvers/compactX/rules/verifyNonce.ts b/typescript/solver/solvers/compactX/rules/verifyNonce.ts index cc5e160c..9ee0d8a5 100644 --- a/typescript/solver/solvers/compactX/rules/verifyNonce.ts +++ b/typescript/solver/solvers/compactX/rules/verifyNonce.ts @@ -19,6 +19,6 @@ export function verifyNonce(): CompactXRule { }; } - return { data: "Signatures are Ok", success: true }; + return { data: "Nonce is Ok", success: true }; }; } From 1f4b5f8c36e21b85df6de8019cae2971fe214e90 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Fri, 21 Mar 2025 12:16:38 +0100 Subject: [PATCH 38/41] feat: better handle errors Co-Authored-By: Lisandro Corbalan --- typescript/solver/NonceKeeperWallet.ts | 9 +++++++++ typescript/solver/solvers/BaseFiller.ts | 13 +++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/typescript/solver/NonceKeeperWallet.ts b/typescript/solver/NonceKeeperWallet.ts index 58ce84ac..782b197e 100644 --- a/typescript/solver/NonceKeeperWallet.ts +++ b/typescript/solver/NonceKeeperWallet.ts @@ -1,3 +1,4 @@ +import type { BigNumber } from "@ethersproject/bignumber"; import { defaultPath, HDNode } from "@ethersproject/hdnode"; import type { Deferrable } from "@ethersproject/properties"; import type { @@ -48,6 +49,14 @@ export class NonceKeeperWallet extends Wallet { return super.sendTransaction(transaction); } + async estimateGas( + transaction: Deferrable, + ): Promise { + return super + .estimateGas(transaction) + .catch((error) => checkError(error, { transaction })); + } + static override fromMnemonic( mnemonic: string, path?: string, diff --git a/typescript/solver/solvers/BaseFiller.ts b/typescript/solver/solvers/BaseFiller.ts index 2f197c3d..36c2d06c 100644 --- a/typescript/solver/solvers/BaseFiller.ts +++ b/typescript/solver/solvers/BaseFiller.ts @@ -1,3 +1,4 @@ +import { BigNumber } from "@ethersproject/bignumber"; import type { MultiProvider } from "@hyperlane-xyz/sdk"; import type { Result } from "@hyperlane-xyz/utils"; import { @@ -82,11 +83,19 @@ export abstract class BaseFiller< await this.fill(parsedArgs, data, originChainName, blockNumber); await this.settleOrder(parsedArgs, data, originChainName); - } catch (error) { + } catch (error: any) { this.log.error({ msg: `Failed processing intent`, intent: `${this.metadata.protocolName}-${parsedArgs.orderId}`, - error: JSON.stringify(error), + error: { + stack: error.stack, + details: JSON.stringify(error, (_, value) => { + if (value instanceof BigNumber || typeof value === "bigint") { + return value.toString(); + } + return value; + }), + }, }); } }; From 630f2c2899c44c05f51eaf6f7fac65dda360240f Mon Sep 17 00:00:00 2001 From: fernandomg Date: Fri, 21 Mar 2025 12:35:34 +0100 Subject: [PATCH 39/41] chore(compactX): reduce TheCompact abi size --- .../compactX/contracts/TheCompact.json | 17514 +--------------- 1 file changed, 25 insertions(+), 17489 deletions(-) diff --git a/typescript/solver/solvers/compactX/contracts/TheCompact.json b/typescript/solver/solvers/compactX/contracts/TheCompact.json index c04249ba..ff6dae73 100644 --- a/typescript/solver/solvers/compactX/contracts/TheCompact.json +++ b/typescript/solver/solvers/compactX/contracts/TheCompact.json @@ -2,17513 +2,49 @@ "abi": [ { "type": "function", - "name": "DOMAIN_SEPARATOR", - "inputs": [], - "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "__activateTstore", - "inputs": [], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "__registerAllocator", - "inputs": [ - { "name": "allocator", "type": "address", "internalType": "address" }, - { "name": "proof", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [{ "name": "", "type": "uint96", "internalType": "uint96" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "allocatedTransfer", - "inputs": [ - { - "name": "transfer", - "type": "tuple", - "internalType": "struct BatchTransfer", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "transfers", - "type": "tuple[]", - "internalType": "struct TransferComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "recipient", - "type": "address", - "internalType": "address" - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "allocatedTransfer", - "inputs": [ - { - "name": "transfer", - "type": "tuple", - "internalType": "struct SplitBatchTransfer", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "transfers", - "type": "tuple[]", - "internalType": "struct SplitByIdComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "allocatedTransfer", - "inputs": [ - { - "name": "transfer", - "type": "tuple", - "internalType": "struct SplitTransfer", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "recipients", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "allocatedTransfer", - "inputs": [ - { - "name": "transfer", - "type": "tuple", - "internalType": "struct BasicTransfer", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { - "name": "recipient", - "type": "address", - "internalType": "address" - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "allocatedWithdrawal", - "inputs": [ - { - "name": "withdrawal", - "type": "tuple", - "internalType": "struct BasicTransfer", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { - "name": "recipient", - "type": "address", - "internalType": "address" - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "allocatedWithdrawal", - "inputs": [ - { - "name": "withdrawal", - "type": "tuple", - "internalType": "struct SplitBatchTransfer", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "transfers", - "type": "tuple[]", - "internalType": "struct SplitByIdComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "allocatedWithdrawal", - "inputs": [ - { - "name": "withdrawal", - "type": "tuple", - "internalType": "struct BatchTransfer", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "transfers", - "type": "tuple[]", - "internalType": "struct TransferComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "recipient", - "type": "address", - "internalType": "address" - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "allocatedWithdrawal", - "inputs": [ - { - "name": "withdrawal", - "type": "tuple", - "internalType": "struct SplitTransfer", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "recipients", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "allowance", + "name": "getForcedWithdrawalStatus", "inputs": [ - { "name": "owner", "type": "address", "internalType": "address" }, - { "name": "spender", "type": "address", "internalType": "address" }, + { "name": "account", "type": "address", "internalType": "address" }, { "name": "id", "type": "uint256", "internalType": "uint256" } ], "outputs": [ - { "name": "amount", "type": "uint256", "internalType": "uint256" } + { + "name": "", + "type": "uint8", + "internalType": "enum ForcedWithdrawalStatus" + }, + { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", - "name": "approve", - "inputs": [ - { "name": "spender", "type": "address", "internalType": "address" }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "balanceOf", + "name": "getRegistrationStatus", "inputs": [ - { "name": "owner", "type": "address", "internalType": "address" }, - { "name": "id", "type": "uint256", "internalType": "uint256" } + { "name": "sponsor", "type": "address", "internalType": "address" }, + { "name": "claimHash", "type": "bytes32", "internalType": "bytes32" }, + { "name": "typehash", "type": "bytes32", "internalType": "bytes32" } ], "outputs": [ - { "name": "amount", "type": "uint256", "internalType": "uint256" } + { "name": "isActive", "type": "bool", "internalType": "bool" }, + { "name": "expires", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousSplitBatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedBatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitBatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedBatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousSplitMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedSplitMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedSplitMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitBatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct BatchClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedBatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct BasicClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitBatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct BatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", + "name": "hasConsumedAllocatorNonce", "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } + { "name": "nonce", "type": "uint256", "internalType": "uint256" }, + { "name": "allocator", "type": "address", "internalType": "address" } ], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct BatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousSplitMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousSplitBatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedBatchClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedBatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct BatchClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitBatchClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitBatchClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedBatchClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct MultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct MultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitBatchClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitBatchClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousBatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousBatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claim", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitBatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedBatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitBatchClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitBatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedBatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitBatchClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedBatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct MultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousSplitBatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitBatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousBatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousSplitMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct BatchClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitBatchClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousSplitBatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitBatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedSplitMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct BatchClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct MultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedSplitMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitBatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedBatchClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct BasicClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct BatchMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct BatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousSplitMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousBatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedMultichainClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct SplitBatchClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct SplitBatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "portions", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedBatchClaim", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct QualifiedSplitClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claimants", - "type": "tuple[]", - "internalType": "struct SplitComponent[]", - "components": [ - { - "name": "claimant", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "claimAndWithdraw", - "inputs": [ - { - "name": "claimPayload", - "type": "tuple", - "internalType": "struct ExogenousQualifiedBatchMultichainClaimWithWitness", - "components": [ - { - "name": "allocatorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sponsorSignature", - "type": "bytes", - "internalType": "bytes" - }, - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" }, - { "name": "witness", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "witnessTypestring", - "type": "string", - "internalType": "string" - }, - { - "name": "qualificationTypehash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "qualificationPayload", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "additionalChains", - "type": "bytes32[]", - "internalType": "bytes32[]" - }, - { - "name": "chainIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "notarizedChainId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "claims", - "type": "tuple[]", - "internalType": "struct BatchClaimComponent[]", - "components": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "name": "claimant", "type": "address", "internalType": "address" } - ] - } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "consume", - "inputs": [ - { "name": "nonces", "type": "uint256[]", "internalType": "uint256[]" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "decimals", - "inputs": [ - { "name": "id", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "uint8", "internalType": "uint8" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "deposit", - "inputs": [ - { "name": "token", "type": "address", "internalType": "address" }, - { "name": "", "type": "uint256", "internalType": "uint256" }, - { "name": "", "type": "uint256", "internalType": "uint256" }, - { "name": "", "type": "uint256", "internalType": "uint256" }, - { "name": "", "type": "address", "internalType": "address" }, - { "name": "", "type": "address", "internalType": "address" }, - { "name": "", "type": "uint8", "internalType": "enum ResetPeriod" }, - { "name": "", "type": "uint8", "internalType": "enum Scope" }, - { "name": "recipient", "type": "address", "internalType": "address" }, - { "name": "signature", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "deposit", - "inputs": [ - { "name": "allocator", "type": "address", "internalType": "address" }, - { - "name": "resetPeriod", - "type": "uint8", - "internalType": "enum ResetPeriod" - }, - { "name": "scope", "type": "uint8", "internalType": "enum Scope" }, - { "name": "recipient", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "deposit", - "inputs": [ - { "name": "token", "type": "address", "internalType": "address" }, - { "name": "allocator", "type": "address", "internalType": "address" }, - { - "name": "resetPeriod", - "type": "uint8", - "internalType": "enum ResetPeriod" - }, - { "name": "scope", "type": "uint8", "internalType": "enum Scope" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { "name": "recipient", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "deposit", - "inputs": [ - { "name": "token", "type": "address", "internalType": "address" }, - { "name": "allocator", "type": "address", "internalType": "address" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "deposit", - "inputs": [ - { "name": "", "type": "address", "internalType": "address" }, - { - "name": "permitted", - "type": "tuple[]", - "internalType": "struct ISignatureTransfer.TokenPermissions[]", - "components": [ - { "name": "token", "type": "address", "internalType": "address" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - }, - { "name": "", "type": "uint256", "internalType": "uint256" }, - { "name": "", "type": "uint256", "internalType": "uint256" }, - { "name": "", "type": "address", "internalType": "address" }, - { "name": "", "type": "uint8", "internalType": "enum ResetPeriod" }, - { "name": "", "type": "uint8", "internalType": "enum Scope" }, - { "name": "recipient", "type": "address", "internalType": "address" }, - { "name": "signature", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [ - { "name": "", "type": "uint256[]", "internalType": "uint256[]" } - ], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "deposit", - "inputs": [ - { - "name": "idsAndAmounts", - "type": "uint256[2][]", - "internalType": "uint256[2][]" - }, - { "name": "recipient", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "deposit", - "inputs": [ - { "name": "allocator", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "depositAndRegister", - "inputs": [ - { "name": "token", "type": "address", "internalType": "address" }, - { "name": "", "type": "uint256", "internalType": "uint256" }, - { "name": "", "type": "uint256", "internalType": "uint256" }, - { "name": "", "type": "uint256", "internalType": "uint256" }, - { "name": "depositor", "type": "address", "internalType": "address" }, - { "name": "", "type": "address", "internalType": "address" }, - { - "name": "resetPeriod", - "type": "uint8", - "internalType": "enum ResetPeriod" - }, - { "name": "", "type": "uint8", "internalType": "enum Scope" }, - { "name": "claimHash", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "compactCategory", - "type": "uint8", - "internalType": "enum CompactCategory" - }, - { "name": "witness", "type": "string", "internalType": "string" }, - { "name": "signature", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "depositAndRegister", - "inputs": [ - { - "name": "idsAndAmounts", - "type": "uint256[2][]", - "internalType": "uint256[2][]" - }, - { - "name": "claimHashesAndTypehashes", - "type": "bytes32[2][]", - "internalType": "bytes32[2][]" - }, - { "name": "duration", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "depositAndRegister", - "inputs": [ - { "name": "allocator", "type": "address", "internalType": "address" }, - { "name": "claimHash", "type": "bytes32", "internalType": "bytes32" }, - { "name": "typehash", "type": "bytes32", "internalType": "bytes32" } - ], - "outputs": [ - { "name": "id", "type": "uint256", "internalType": "uint256" } - ], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "depositAndRegister", - "inputs": [ - { "name": "depositor", "type": "address", "internalType": "address" }, - { - "name": "permitted", - "type": "tuple[]", - "internalType": "struct ISignatureTransfer.TokenPermissions[]", - "components": [ - { "name": "token", "type": "address", "internalType": "address" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - }, - { "name": "", "type": "uint256", "internalType": "uint256" }, - { "name": "", "type": "uint256", "internalType": "uint256" }, - { "name": "", "type": "address", "internalType": "address" }, - { - "name": "resetPeriod", - "type": "uint8", - "internalType": "enum ResetPeriod" - }, - { "name": "", "type": "uint8", "internalType": "enum Scope" }, - { "name": "claimHash", "type": "bytes32", "internalType": "bytes32" }, - { - "name": "compactCategory", - "type": "uint8", - "internalType": "enum CompactCategory" - }, - { "name": "witness", "type": "string", "internalType": "string" }, - { "name": "signature", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [ - { "name": "", "type": "uint256[]", "internalType": "uint256[]" } - ], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "depositAndRegister", - "inputs": [ - { "name": "token", "type": "address", "internalType": "address" }, - { "name": "allocator", "type": "address", "internalType": "address" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" }, - { "name": "claimHash", "type": "bytes32", "internalType": "bytes32" }, - { "name": "typehash", "type": "bytes32", "internalType": "bytes32" } - ], - "outputs": [ - { "name": "id", "type": "uint256", "internalType": "uint256" } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "disableForcedWithdrawal", - "inputs": [ - { "name": "id", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "enableForcedWithdrawal", - "inputs": [ - { "name": "id", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "extsload", - "inputs": [ - { "name": "slot", "type": "bytes32", "internalType": "bytes32" } - ], - "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "extsload", - "inputs": [ - { "name": "slots", "type": "bytes32[]", "internalType": "bytes32[]" } - ], - "outputs": [ - { "name": "", "type": "bytes32[]", "internalType": "bytes32[]" } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "exttload", - "inputs": [ - { "name": "slot", "type": "bytes32", "internalType": "bytes32" } - ], - "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "forcedWithdrawal", - "inputs": [ - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { "name": "recipient", "type": "address", "internalType": "address" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "getForcedWithdrawalStatus", - "inputs": [ - { "name": "account", "type": "address", "internalType": "address" }, - { "name": "id", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [ - { - "name": "", - "type": "uint8", - "internalType": "enum ForcedWithdrawalStatus" - }, - { "name": "", "type": "uint256", "internalType": "uint256" } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getLockDetails", - "inputs": [ - { "name": "id", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [ - { "name": "", "type": "address", "internalType": "address" }, - { "name": "", "type": "address", "internalType": "address" }, - { "name": "", "type": "uint8", "internalType": "enum ResetPeriod" }, - { "name": "", "type": "uint8", "internalType": "enum Scope" } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getRegistrationStatus", - "inputs": [ - { "name": "sponsor", "type": "address", "internalType": "address" }, - { "name": "claimHash", "type": "bytes32", "internalType": "bytes32" }, - { "name": "typehash", "type": "bytes32", "internalType": "bytes32" } - ], - "outputs": [ - { "name": "isActive", "type": "bool", "internalType": "bool" }, - { "name": "expires", "type": "uint256", "internalType": "uint256" } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "hasConsumedAllocatorNonce", - "inputs": [ - { "name": "nonce", "type": "uint256", "internalType": "uint256" }, - { "name": "allocator", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "isOperator", - "inputs": [ - { "name": "owner", "type": "address", "internalType": "address" }, - { "name": "spender", "type": "address", "internalType": "address" } - ], - "outputs": [{ "name": "status", "type": "bool", "internalType": "bool" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "name", - "inputs": [ - { "name": "id", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "string", "internalType": "string" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "name", - "inputs": [], - "outputs": [{ "name": "", "type": "string", "internalType": "string" }], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "register", - "inputs": [ - { - "name": "claimHashesAndTypehashes", - "type": "bytes32[2][]", - "internalType": "bytes32[2][]" - }, - { "name": "duration", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "register", - "inputs": [ - { "name": "claimHash", "type": "bytes32", "internalType": "bytes32" }, - { "name": "typehash", "type": "bytes32", "internalType": "bytes32" }, - { "name": "duration", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "setOperator", - "inputs": [ - { "name": "operator", "type": "address", "internalType": "address" }, - { "name": "approved", "type": "bool", "internalType": "bool" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "supportsInterface", - "inputs": [ - { "name": "interfaceId", "type": "bytes4", "internalType": "bytes4" } - ], - "outputs": [{ "name": "result", "type": "bool", "internalType": "bool" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "symbol", - "inputs": [ - { "name": "id", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "string", "internalType": "string" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "tokenURI", - "inputs": [ - { "name": "id", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "string", "internalType": "string" }], - "stateMutability": "view" - }, - { - "type": "function", - "name": "transfer", - "inputs": [ - { "name": "to", "type": "address", "internalType": "address" }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "payable" - }, - { - "type": "function", - "name": "transferFrom", - "inputs": [ - { "name": "from", "type": "address", "internalType": "address" }, - { "name": "to", "type": "address", "internalType": "address" }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ], - "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], - "stateMutability": "payable" - }, - { - "type": "event", - "name": "AllocatorRegistered", - "inputs": [ - { - "name": "allocatorId", - "type": "uint96", - "indexed": false, - "internalType": "uint96" - }, - { - "name": "allocator", - "type": "address", - "indexed": false, - "internalType": "address" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Approval", - "inputs": [ - { - "name": "owner", - "type": "address", - "indexed": true, - "internalType": "address" - }, - { - "name": "spender", - "type": "address", - "indexed": true, - "internalType": "address" - }, - { - "name": "id", - "type": "uint256", - "indexed": true, - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "indexed": false, - "internalType": "uint256" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Claim", - "inputs": [ - { - "name": "sponsor", - "type": "address", - "indexed": true, - "internalType": "address" - }, - { - "name": "allocator", - "type": "address", - "indexed": true, - "internalType": "address" - }, - { - "name": "arbiter", - "type": "address", - "indexed": true, - "internalType": "address" - }, - { - "name": "claimHash", - "type": "bytes32", - "indexed": false, - "internalType": "bytes32" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "CompactRegistered", - "inputs": [ - { - "name": "sponsor", - "type": "address", - "indexed": true, - "internalType": "address" - }, - { - "name": "claimHash", - "type": "bytes32", - "indexed": false, - "internalType": "bytes32" - }, - { - "name": "typehash", - "type": "bytes32", - "indexed": false, - "internalType": "bytes32" - }, - { - "name": "expires", - "type": "uint256", - "indexed": false, - "internalType": "uint256" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "ForcedWithdrawalStatusUpdated", - "inputs": [ - { - "name": "account", - "type": "address", - "indexed": true, - "internalType": "address" - }, - { - "name": "id", - "type": "uint256", - "indexed": true, - "internalType": "uint256" - }, - { - "name": "activating", - "type": "bool", - "indexed": false, - "internalType": "bool" - }, - { - "name": "withdrawableAt", - "type": "uint256", - "indexed": false, - "internalType": "uint256" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "OperatorSet", - "inputs": [ - { - "name": "owner", - "type": "address", - "indexed": true, - "internalType": "address" - }, - { - "name": "operator", - "type": "address", - "indexed": true, - "internalType": "address" - }, - { - "name": "approved", - "type": "bool", - "indexed": false, - "internalType": "bool" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Transfer", - "inputs": [ - { - "name": "by", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "from", - "type": "address", - "indexed": true, - "internalType": "address" - }, - { - "name": "to", - "type": "address", - "indexed": true, - "internalType": "address" - }, - { - "name": "id", - "type": "uint256", - "indexed": true, - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "indexed": false, - "internalType": "uint256" - } - ], - "anonymous": false - }, - { - "type": "error", - "name": "AllocatedAmountExceeded", - "inputs": [ - { - "name": "allocatedAmount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "providedAmount", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { "type": "error", "name": "BalanceOverflow", "inputs": [] }, - { - "type": "error", - "name": "Expired", - "inputs": [ - { "name": "expiration", "type": "uint256", "internalType": "uint256" } - ] - }, - { - "type": "error", - "name": "ForcedWithdrawalAlreadyDisabled", - "inputs": [ - { "name": "account", "type": "address", "internalType": "address" }, - { "name": "id", "type": "uint256", "internalType": "uint256" } - ] - }, - { "type": "error", "name": "InsufficientBalance", "inputs": [] }, - { "type": "error", "name": "InsufficientPermission", "inputs": [] }, - { "type": "error", "name": "InvalidBatchAllocation", "inputs": [] }, - { "type": "error", "name": "InvalidBatchDepositStructure", "inputs": [] }, - { "type": "error", "name": "InvalidDepositBalanceChange", "inputs": [] }, - { "type": "error", "name": "InvalidDepositTokenOrdering", "inputs": [] }, - { - "type": "error", - "name": "InvalidRegistrationDuration", - "inputs": [ - { "name": "duration", "type": "uint256", "internalType": "uint256" } - ] - }, - { - "type": "error", - "name": "InvalidRegistrationProof", - "inputs": [ - { "name": "allocator", "type": "address", "internalType": "address" } - ] - }, - { - "type": "error", - "name": "InvalidScope", - "inputs": [{ "name": "id", "type": "uint256", "internalType": "uint256" }] - }, - { "type": "error", "name": "InvalidSignature", "inputs": [] }, - { - "type": "error", - "name": "InvalidToken", - "inputs": [ - { "name": "token", "type": "address", "internalType": "address" } - ] - }, - { "type": "error", "name": "OnlyDirectCalls", "inputs": [] }, - { "type": "error", "name": "Permit2CallFailed", "inputs": [] }, - { - "type": "error", - "name": "PrematureWithdrawal", - "inputs": [{ "name": "id", "type": "uint256", "internalType": "uint256" }] - }, - { - "type": "error", - "name": "ReentrantCall", - "inputs": [ - { - "name": "existingCaller", - "type": "address", - "internalType": "address" - } - ] - }, - { "type": "error", "name": "TStoreAlreadyActivated", "inputs": [] }, - { "type": "error", "name": "TStoreNotSupported", "inputs": [] }, - { - "type": "error", - "name": "TloadTestContractDeploymentFailed", - "inputs": [] - }, - { - "type": "error", - "name": "UnallocatedTransfer", - "inputs": [ - { "name": "operator", "type": "address", "internalType": "address" }, - { "name": "from", "type": "address", "internalType": "address" }, - { "name": "to", "type": "address", "internalType": "address" }, - { "name": "id", "type": "uint256", "internalType": "uint256" }, - { "name": "amount", "type": "uint256", "internalType": "uint256" } - ] - } - ], - "bytecode": { - "object": "0x6101a060405234610085576100126100a8565b604051615ff19081610248823960805181611cda015260a05181611caa015260c05181613a4c015260e051816139d301526101005181613bac015261012051816137eb015261014051816137ca0152610160518181816115170152818161252e015261315001526101805181614eb10152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040513d5f823e3d90fd5b696002601e613d5c3d52f35f52600a60165ff06001600160a01b03811615610238575f80808084600a5a04fa3d15610233573d6001600160401b0381116102195760405190601f8101601f19908116603f011682016001600160401b038111838210176102195760405281525f60203d92013e5b801561021e57600160c052600360e0526005610100525b60a05260805246610120526101c74660a090604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208301527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d604083015260608201523060808201522090565b61014052604051613e2a8082016001600160401b03811183821017610219578291616239833903905ff0801561021457610160526e22d473030f116ddee9f6b43ac78ba33b151561018052565b61009d565b610089565b600260c052600460e052600661010052610133565b61011c565b632aea588760e01b5f5260045ffdfe6080806040526004361015610012575f80fd5b5f3560e01c908162ad800c1461312757508062fdd58e146130eb57806301ffc9a7146130a757806303417d721461309057806306659b7f1461307b57806306e8cc181461306657806306fdde031461303c57806308e600ee14613027578063095bcdb614612f4e5780630a133cf214612f395780630d57fec914612f245780630f5eeadf14612f0f578063107d4ee414612ec857806310d8267214612dff57806312a1e6ea14612dea57806312d4888514612d7a57806312f9d21e14612d6557806313589bfe14612d50578063138cd81914612d2a578063144bd5b514612cc85780631486590714612cb3578063176f405a14612c525780631b98b63f14612c3d5780631bb81a8114612c285780631d474b1414612c135780631e2eaeaf14612bf7578063200f0c4d14612b8f578063206620a114612b3f57806325d7776b14612b155780632737edb914612afe57806327c777a914612a815780632a9c4d0d146129515780632acd5dc31461293c5780632c4bbd17146129255780632e3ff2f7146128c15780632e4d55cc146128ac57806331bbae3e1461286e57806332e2a80314612859578063341056c5146128445780633644e5151461282a578063393c33e21461272f5780633f458a19146127185780633f47e662146126fc5780634073c0cc146126d9578063409b3a7e146126c4578063414fd914146126af578063418a23f51461269a578063426a849314612636578063440a0ec3146125ed57806344b97d78146125ba5780634ad5205e146125a35780634c1024161461258c5780634d585fbf146125755780634e41a1fb146125015780634e55a548146124ea578063507cb46f1461249057806353e5006714612350578063548439e114612339578063558a7297146122c4578063577cdc64146122ad5780635920212814612296578063598af9e7146122605780635ac2ccf1146122495780635b15bfd9146121dd5780635b6016ec146121765780635d76a382146121615780635e6c91ff1461214c57806362a420bb1461211557806363f5b1ad146120d8578063648705561461209a578063671b3bd61461202a5780636a9a4c4414611f895780636af2791b14611f745780637003019014611f125780637112406d14611dc857806371f5012714611db1578063721f629214611d765780637423eb3c14611c9157806376d531d414611c7c5780638340f54914611c41578063843719f014611bf15780638678555914611bdc57806388d247c414611bc557806388da84d414611bae57806389ce066114611b59578063935ed2ba14611b1e5780639730f4fd14611b07578063996d3aac14611adc57806399cf8b9b146119e85780639be5f537146119d1578063a23941471461191c578063a4c7bd93146118e2578063aa41c87e14611895578063aa8b845d14611863578063b20abc481461184e578063b24849b714611824578063b3244389146117ee578063b4039fc2146117c1578063b54baefd1461178c578063b602ae021461174a578063b6363cf214611705578063b7ace047146116c0578063b8a5bbad14611682578063bc95bd7a14611637578063c4d195e8146115f0578063c8091041146115b4578063c87b56dd14611432578063ca6cc39f146113e5578063d204f11e1461139a578063d2a1805f14611379578063d34ddc8214611362578063d350188c1461134d578063d3917f3c146112ff578063d921f36a146112b8578063da15ee7f1461112f578063da2f268b146110e6578063db04bc72146110d1578063dbd035ff14611059578063dd589cfc14610fdc578063e0565c4914610f8e578063e05c6e7d14610f41578063e6c5b65414610ee6578063e8672f9314610ed1578063ea14532e14610e6a578063eaa6748314610e33578063eb19600814610df9578063eb35a6d214610d89578063eb43182114610d4d578063ebcbd7b514610cf6578063ecaca40e14610c8d578063eea77a7814610c18578063eed634ad14610c03578063eed9357214610bb8578063f135baaa14610b9c578063f23d923d14610b2e578063f2f0def114610ae9578063f340fa0114610ab8578063f44a345214610a5a578063f745381c14610a24578063f95d3d16146109ea578063fa1c55001461098a578063fb75fb6914610924578063fcfe431a146108c1578063fdc060e7146107d75763fe99049a14610655575f80fd5b60803660031901126107d3576106696131bd565b6106716131ff565b6044359160643561068d60016001605c1b038560a01c16614862565b9260018060a01b0383169260018060a01b038216945f60208160a460405194828052601c8601948591631a808f91885233868901528b60408901528c60608901528d60808901528a60a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a82293940603452602852336014526034602020541561077f575b84601452604060142080548084116107725783900390556028528360145260406014208054908282019182106107655755335f526020525f516020615f655f395f51905f5260405fa45f603452602060405160018152f35b6389560ca15f526004601cfd5b63f4d678b85f526004601cfd5b845f5260545f20805460018101610798575b505061070d565b8084116107ab5783900390555f80610791565b63deda90305f526004601cfd5b3d1517156107cb5763014c931060a49252fd5b3d5f803e3d5ffd5b5f80fd5b346107d3576107e536613408565b608081015f806107f5838561377f565b905f915b80831061089c5750505061088a576108796035928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b809335613fcf565b614012565b61377f565b9061527d565b602060405160018152f35b634e487b715f5260116020526024601cfd5b90919260019060206108af8685876138cd565b013580960195861017930191906107f9565b346107d357602061091a601760356108d8366133d4565b6101806108f96108f36108ed83850185613c23565b90614bee565b83615c0a565b9290919361090b610160820135613c58565b926109146137c8565b95614d26565b6040519015158152f35b346107d357602061091a603461093936613249565b61095b61095361094d610100840184613898565b90614e53565b826030615651565b9061010061096b3615848461532d565b916109796001361517613cdd565b926109826137c8565b946021615e45565b346107d357602061091a603461099f3661327d565b6109bb6109b36108ed610100840184613c23565b826031615651565b906109c960e0820135613c58565b6101006109d96002361517613cdd565b926109e26137c8565b946026615e45565b346107d357602061091a60356109ff36613215565b610120610a10604036151783615bc9565b92919390610a1c6137c8565b946024615e45565b346107d357602061091a60176034610a3b3661333c565b610a4481615571565b90610100610a506137c8565b93361592806152df565b346107d357602061091a6035610a6f36613249565b610a8a610a826108ed60e0840184613c23565b82602b615651565b9060e0610a993615848461532d565b91610aa76001361517613cdd565b92610ab06137c8565b94601f615e45565b60203660031901126107d3576020610ad6610ad16131bd565b614320565b610ae134823361437c565b604051908152f35b346107d357602061091a60176035610b00366133a0565b610b19610b1361094d60e0840184613898565b82615834565b9060e0610b246137c8565b93361592806151a7565b346107d357602061091a6035610b4336613215565b3615610100610b73610b6b60408417859060e0910160c08101355f52013560205260405f2090565b846030615651565b92610b8b6002610b8485878561532d565b9417613cdd565b92610b946137c8565b946023615e45565b346107d35760203660031901126107d3576004355c5f5260205ff35b346107d357602061091a6035610bcd36613215565b610be7610be16108ed610140840184613c23565b82615b8a565b9091610140610bfa610120830135613c58565b916109e26137c8565b346107d357602061091a6034610bcd36613215565b346107d357602061091a6035610c2d366133d4565b361590610c5b610c5360808417839060e0910160c08101355f52013560205260405f2090565b826032615651565b91610140610c6a82858561532d565b92610c7e6002610b84610120840135613c58565b93610c876137c8565b95614239565b346107d35760a03660031901126107d3576020610ca86131bd565b610cd9610cc4610cb66131ff565b610cbf846148dc565b6142e2565b91610ccd6139d1565b8260443591339061487c565b610ce1613baa565b610ae1610258361517608435606435336141b4565b346107d357602061091a6034610d0b366134d1565b610180610d326108f360c0361517849060e0910160c08101355f52013560205260405f2090565b92909193610d44610160820135613c58565b92610c876137c8565b346107d357602061091a6034610d623661327d565b610120610d7d610d7761094d83850185613898565b83615baa565b929193906109826137c8565b346107d35760203660031901126107d3576020600435610ae162ffffff77278d00094890015180000f3c00025800003c00000f000001601860078560fc1c16021c1642018281610df38195339190604051926014526341d0e04b5f526034526038601c2091604052565b556148f6565b346107d357602061091a6035610e0e3661333c565b610100610e1a826155cc565b919092610e2a6002361517613cdd565b92610a1c6137c8565b346107d357602061091a6034610e48366133a0565b610e5b610a8261094d60e0840184613898565b9060e061096b3615848461532d565b346107d357602061091a60176034610e813661333c565b610e95610c5361094d610140840184613898565b90610ea23615838361532d565b90610140610eb4610120830135613c58565b91610ec26002361517613cdd565b93610ecb6137c8565b956151a7565b346107d357602061091a60346109ff36613215565b346107d357602061091a6034610efb3661327d565b610f20610f188260e09060c08101355f52013560205260405f2090565b82602f615651565b90361560c0610f3160028317613cdd565b92610f3a6137c8565b9480614239565b346107d357602061091a6035610f563661333c565b610f5f81615250565b90610f6d60e0820135613c58565b610100610f7d6002361517613cdd565b92610f866137c8565b946025615e45565b346107d357602061091a6034610fa336613215565b6101003615610fd1610fcb60408317859060e0910160c08101355f52013560205260405f2090565b84615b66565b929093610f3a6137c8565b346107d357602061091a610fef3661343b565b6040515f516020615fa55f395f51905f528152338482015233604082015261103f8260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b608061104d60a084016137b4565b92013591336034615c31565b346107d35760203660031901126107d3576004356001600160401b0381116107d357611089903690600401613370565b6040519160408360208152836020820152019160051b8301916020806040850193925b83355481520191019084838210156110c85750602080916110ac565b60408186030190f35b346107d357602061091a6034610a6f36613249565b346107d35760403660031901126107d35760206004356111046131ff565b906040519183526303f37b1a600c52806040526001603760282054918360405260ff161b1615158152f35b6101603660031901126107d3576111446131bd565b6024356001600160401b0381116107d35761116390369060040161346e565b61116e9291926131d3565b5060a4359060088210156107d357600260c43510156107d35760e43591610104359460038610156107d357610124356001600160401b0381116107d3576111b990369060040161330f565b9661014435906001600160401b0382116107d357869588926111df90369060040161330f565b6111ed8584899e949e614984565b96819f939183839b949b0160051b90602001209561120b8b84614a8c565b83839992993615976001891792611221946143c6565b9f9091604051925f5260205260405260605f206080890152604052601f19916002811460061b90600114600b020190801515010160f301169060071b01610180019060c01761126f94613e72565b611279948a614b38565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff16916112a6936141b4565b6040516112b48192826135c0565b0390f35b346107d357602061091a601760356112cf366132db565b6101806112e46108f361094d83850185613898565b929091936112f6610160820135613c58565b92610ecb6137c8565b346107d357602061091a6035611314366133d4565b61014061134161133b6080361517849060e0910160c08101355f52013560205260405f2090565b83615bd9565b92919390610b946137c8565b346107d357602061091a6034610e0e3661333c565b346107d357602061091a60176034610b00366133a0565b346107d357602061091a603561138e366132db565b610140610a10826155f4565b346107d357602061091a601760346113b13661343b565b6113c4610a8261094d60a0840184613898565b90361560a06113d560018317613cdd565b926113de6137c8565b94806151a7565b346107d357602061091a60356113fa36613215565b61140381615250565b9061141160e0820135613c58565b6101006114216002361517613cdd565b9261142a6137c8565b946022615e45565b346107d35760203660031901126107d357604051600435608082016001600160401b038111838210176115a05760409081525f60208401818152918401818152606085019182526001600160a01b03848116865261149c60a086901c60016001605c1b0316614862565b16835260078460fc1c16600881101561158c5781528360ff1c90600282101561158c5790825260405163d637ca8d60e01b815294516001600160a01b03908116600487015292519092166024850152905161150b91906115009060448601906135a6565b5160648401906135b3565b60848201525f8160a4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575b5060405191829182613193565b61157b91503d805f833e61157381836135f9565b810190613635565b82611552565b6040513d5f823e3d90fd5b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b60403660031901126107d3576004356001600160401b0381116107d3576115e261087f91369060040161346e565b6115ea6131ff565b916138dd565b346107d357602061091a601760356116073661327d565b61162161161b6108ed610100840184613c23565b82615b66565b9061010061162d6137c8565b9336159280614d26565b346107d357602061091a6017603561164e366133a0565b611661610f186108ed60c0840184613c23565b90361560c061167260028317613cdd565b9261167b6137c8565b9480614d26565b346107d357602061091a60176034611699366133a0565b6116a281615516565b90361560a06116b082613cdd565b926116b96137c8565b94806152df565b346107d357602061091a601760346116d736613249565b6116f4610f188260e09060c08101355f52013560205260405f2090565b90361560c06116b060028317613cdd565b346107d35760403660031901126107d35761171e6131bd565b6117266131ff565b9067edcaa89a822939406020526014525f5260206034600c20546040519015158152f35b346107d357602061091a603561175f36613249565b361561176d81836028615651565b9061177781613cdd565b916117806137c8565b9360a083179180614239565b346107d357602061091a601760346117a336613249565b6117b6610b136108ed60e0840184613c23565b9060e061162d6137c8565b346107d357602061091a60346117d63661327d565b60e06117e182615524565b919092610e2a3615613cdd565b346107d357602061091a603461180336613215565b61014061181861133b6108ed83850185613c23565b92919390610ab06137c8565b346107d357602061091a60346118393661333c565b610120611818610d776108ed83850185613c23565b346107d357602061091a60356118393661333c565b602061187c610ae1611874366132b1565b939091614320565b9261188834853361437c565b61025836151791336141b4565b346107d357602061091a60346118aa3661333c565b6118be610be161094d610140840184613898565b90916101406118d1610120830135613c58565b916118da6137c8565b946027615e45565b346107d357602061091a60346118f7366132db565b61190081615542565b9091610140611913610120830135613c58565b91610f866137c8565b346107d35761192a36613408565b608081015f8061193a838561377f565b905f915b8083106119ac5750505061088a576108796034928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b90919260019060206119bf8685876138cd565b0135809601958610179301919061193e565b346107d357602061091a6017603461164e366133a0565b6101203660031901126107d3576119fd6131bd565b506024356001600160401b0381116107d357611a1d90369060040161346e565b611a256131d3565b50600860a43510156107d357600260c43510156107d35760e435916001600160a01b03831683036107d35761010435906001600160401b0382116107d3576112b493611aca611a7b611ad094369060040161330f565b959093611a89848383614984565b9592611ab660c09b9399929b361592611aa460848517613d1e565b611aae8d83614a8c565b949094613db8565b608084015260071b61022001921790613e72565b86614b38565b604051918291826135c0565b346107d357602061091a60176034611af33661327d565b611afc81615774565b9060e0610a506137c8565b346107d357602061091a601760346116073661327d565b346107d357602061091a60176034611b3536613539565b611b48610f1861094d60c0840184613898565b90361560c06113d560028317613cdd565b346107d357602061091a6035611b6e366133d4565b611b92610be16080361517839060e0910160c08101355f52013560205260405f2090565b9091610140611ba5610120830135613c58565b9161142a6137c8565b346107d357602061091a60176035610e813661333c565b346107d357602061091a60176035611b3536613539565b346107d357602061091a603461175f36613249565b346107d357602061091a60176035611c08366132db565b611c118161559c565b9091610140611c24610120830135613c58565b91611c326002361517613cdd565b93611c3b6137c8565b956152df565b346107d3576020611c63611c74611c573661356c565b919390610cbf856148dc565b8093611c6d6139d1565b339061487c565b610ae1613baa565b346107d357602061091a6035610efb3661327d565b346107d3575f3660031901126107d357323303611d67577f00000000000000000000000000000000000000000000000000000000000000008015611d5c575b611d4d575f8080807f0000000000000000000000000000000000000000000000000000000000000000600a5a04fa3d15611d48573d611d0e8161361a565b90611d1c60405192836135f9565b81525f60203d92013e5b15611d39575f805460ff19166001179055005b6370a4078f60e01b5f5260045ffd5b611d26565b630f45b98b60e41b5f5260045ffd5b5060ff5f5416611cd0565b63096650c560e21b5f5260045ffd5b346107d357602061091a60176035611d8d36613539565b611da0610a826108ed60a0840184613c23565b90361560a061167260018317613cdd565b346107d357602061091a60176035611699366133a0565b346107d357611dd63661349e565b60608101611de48183613898565b8060069492941b81810460401482151715611efe57611e0290614bad565b935f915f5b818110611e955750505061088a57611e4d81611e2d856020611e52975191012082615373565b611e476039611e3c8785613898565b6020860135916140ed565b90614012565b613898565b5f5b818110611e6657602060405160018152f35b80611e8f6034611e796001948688614192565b611e86602082018261377f565b9091359161527d565b01611e54565b611ea0818385614192565b5f90611eaf602082018261377f565b905f915b808310611ed957505050906040839260019460061b8b0190356020820152015201611e07565b9091976001906020611eec8b85876138cd565b01358096019586101798019190611eb3565b634e487b7160e01b5f52601160045260245ffd5b346107d35760203660031901126107d357600435611f4981339190604051926014526341d0e04b5f526034526038601c2091604052565b805415611f5f57905f61087f92553615906148f6565b5063e632dbad5f52336020526040526044601cfd5b346107d357602061091a6034610c2d366133d4565b346107d3576080611f9936613408565b611fed611fe460608301611fde84611fc6611fb4848361377f565b6040519060061b809282372082615373565b611e47611fd3858461377f565b60208501359161406f565b8361377f565b939092016137b4565b905f5b83811061200257602060405160018152f35b8061202361201360019387866138cd565b6020810135903586336035615c31565b5001611ff0565b346107d35760c03660031901126107d3576120436131bd565b61204b6131ff565b906044359160088310156107d3576064359160028310156107d357612087611c74926020956120786131e9565b95612082856148dc565b61434b565b80936120916139d1565b6084359261487c565b346107d357602061091a601760356120b136613505565b6101806120bd82615626565b929091936120cf610160820135613c58565b92611c3b6137c8565b346107d357602061091a60346120ed3661333c565b361560e061210060408317846028615651565b92610b8b61210f84868461532d565b93613cdd565b346107d357602061091a6017603561212c36613249565b61214061161b61094d610100840184613898565b90610100610b246137c8565b346107d357602061091a6034611b6e366133d4565b346107d357602061091a60356118aa3661333c565b60603660031901126107d3576004356001600160401b0381116107d3576121a190369060040161346e565b602435906001600160401b0382116107d3576020926121d46121ca61091a94369060040161346e565b92909333916138dd565b60443591614159565b346107d35760203660031901126107d357608060043561224761220b60016001605c1b038360a01c16614862565b604080516001600160a01b038086168252909216602083015290929061223a90840160fc83901c6007166135a6565b606083019060ff1c6135b3565bf35b346107d357602061091a601760346108d8366133d4565b346107d35761226e3661356c565b9167edcaa89a822939406034526028526014525f52602060545f20545f603452604051908152f35b346107d357602061091a60176034611d8d36613539565b346107d357602061091a6017603461212c36613249565b60403660031901126107d3576122d86131bd565b602435908115158092036107d35767edcaa89a82293940602052336014525f52806034600c2055602052600c5160601c337fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267602080a3602060405160018152f35b346107d357602061091a601760356113b13661343b565b346107d3576101803660031901126107d35761236a6131bd565b6123726131d3565b9061237b6131e9565b5060c43560088110156107d357600260e43510156107d3576101043590610124359060038210156107d357610144356001600160401b0381116107d3576123c690369060040161330f565b94909261016435956001600160401b0387116107d35787966123ec90369060040161330f565b9890916123f885613d53565b839d93969297919436159b61240e938d936143c6565b9990604051905f52866020528b60405260605f20610100860152604052601f1961016085015161017f0116906101401761244794613e72565b61245093613eca565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff169161247d936141b4565b612485613baa565b604051908152602090f35b60803660031901126107d3576124a46131bd565b60243560088110156107d3576044359060028210156107d357606435916001600160a01b03831683036107d357602093610ae1926124e1926142b1565b9182349161437c565b346107d357602061091a601760356117a336613249565b346107d35760203660031901126107d357604051634e41a1fb60e01b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575060405191829182613193565b346107d357602061091a601760346120b136613505565b346107d357602061091a60176034611c08366132db565b346107d357602061091a60176035611af33661327d565b346107d357602061091a60346125cf3661333c565b6125d881615774565b9060e06125e36137c8565b9336159280614239565b346107d3576040612627612600366132b1565b91605892601c926040519260148401526368a30dd083526034830152605482015201205490565b81519042811182526020820152f35b61263f366132b1565b909167edcaa89a8229394060345233602852601452815f528060545f20555f5260205160601c337fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a760205fa45f603452602060405160018152f35b346107d357602061091a6035610d0b366134d1565b346107d357602061091a603461138e366132db565b346107d357602061091a6034610f563661333c565b346107d35760603660031901126107d35761087f604435602435600435336141b4565b346107d35760203660031901126107d357602060405160128152f35b346107d357602061091a60176035610a3b3661333c565b346107d35761273d3661349e565b6060810161274b8183613898565b8060069492941b81810460401482151715611efe5761276990614bad565b935f915f5b8181106127c15750505061088a57611e4d81611e2d856020612794975191012082615373565b5f5b8181106127a857602060405160018152f35b806127bb6035611e796001948688614192565b01612796565b6127cc818385614192565b5f906127db602082018261377f565b905f915b80831061280557505050906040839260019460061b8b019035602082015201520161276e565b90919760019060206128188b85876138cd565b013580960195861017980191906127df565b346107d3575f3660031901126107d3576020610ae16137c8565b346107d357602061091a60356118f7366132db565b346107d357602061091a60346113fa36613215565b346107d35760403660031901126107d3576004356001600160401b0381116107d35761091a6128a3602092369060040161346e565b60243591614159565b346107d357602061091a60356125cf3661333c565b346107d35760603660031901126107d3576004356128dd6131ff565b60408051336014526341d0e04b5f5260348490526038601c209152544281119015176129145761091a906020926044359133613697565b50639287bcb05f526020526024601cfd5b346107d357602061091a601760346112cf366132db565b346107d357602061091a603561099f3661327d565b346107d35760403660031901126107d35761296a6131bd565b6024356001600160401b0381116107d35761298990369060040161330f565b6001600160a01b03909216916055811491338414843b1515179183612a35575b50501715612a25576129ba81613ef9565b806744036fc77deaed23605c1b1791825480612a1157508060209355815f5282527fc54dcaa67a8fd7b4a9aa6fd57351934c792613d5ec1acbd65274270e6de8f7e460405fa16001600160601b0360405191168152f35b8263c18b0e975f526020526040526044601cfd5b634e7f492b5f526020526024601cfd5b809192935015612a6d57808260405137604051206001600160a01b031683146001600160f81b031991358216909114169083806129a9565b634e487b7160e01b5f52603260045260245ffd5b346107d357602061091a612a943661343b565b6040515f516020615fa55f395f51905f5281523384820152336040820152612ae48260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b6080612af260a084016137b4565b92013591336035615c31565b346107d357602061091a601760356116d736613249565b346107d357602061091a6035612b2a3661333c565b610140610d7d61133b61094d83850185613898565b346107d357602061091a6035612b5436613249565b612b686109b361094d610100840184613898565b90612b7660e0820135613c58565b610100612b866002361517613cdd565b926118da6137c8565b346107d3576080612b9f36613408565b612bba611fe460608301611fde84611fc6611fb4848361377f565b905f5b838110612bcf57602060405160018152f35b80612bf0612be060019387866138cd565b6020810135903586336034615c31565b5001612bbd565b346107d35760203660031901126107d357600435545f5260205ff35b346107d357602061091a6034611314366133d4565b346107d357602061091a60356120ed3661333c565b346107d357602061091a6035610fa336613215565b346107d357602061091a60176034612c6936613215565b612c7d610c536108ed610140840184613c23565b90612c8a3615838361532d565b90610140612c9c610120830135613c58565b91612caa6002361517613cdd565b936109146137c8565b346107d357602061091a603561180336613215565b346107d35760403660031901126107d357612d06612ce46131bd565b602435909190604051926014526341d0e04b5f526034526038601c2091604052565b546040518115154283116002030291600383101561158c5760409282526020820152f35b346107d357602061091a6035612d3f366132db565b610120611341604036151783615bc9565b346107d357602061091a6035610e48366133a0565b346107d357602061091a6034610b4336613215565b346107d35760203660031901126107d3576004356001600160401b0381116107d357612daa903690600401613370565b90612dbc612db733613ef9565b613fa8565b809160051b01905b818110612dd657602060405160018152f35b602090612de4338235613fcf565b01612dc4565b346107d357602061091a6034612b2a3661333c565b346107d3576101403660031901126107d357612e196131bd565b612e216131d3565b50612e2a6131e9565b50600860c43510156107d357600260e43510156107d35761010435906001600160a01b03821682036107d357610124356001600160401b0381116107d357602092612ead92612e80611c7493369060040161330f565b929091612ec3361594612e9560a48717613d1e565b94612e9f84613d53565b9b839c9a939991929a613db8565b6101008201526101406102008317921790613e72565b613eca565b346107d357602061091a6034612edd3661327d565b612ef16109536108ed610100840184613c23565b90610100612f013615848461532d565b91610aa76002361517613cdd565b346107d357602061091a6035612edd3661327d565b346107d357602061091a6034612d3f366132db565b346107d357602061091a603561093936613249565b612f57366132b1565b612f6f60016001605c1b038360a09594951c16614862565b9160018060a01b038116925f60208160a460405194828052601c8601948591631a808f91885233868901523360408901528a60608901528b60808901528960a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a8229394060205233601452835f5260405f208054808411610772578390039055601452825f5260405f208054908282019182106107655755335f52602052335f516020615f655f395f51905f5260405fa4602060405160018152f35b346107d357602061091a6035610d623661327d565b346107d3575f3660031901126107d357602080526b0b54686520436f6d70616374604b5260606020f35b346107d357602061091a60356117d63661327d565b346107d357602061091a6034612b5436613249565b346107d357602061091a60176035612c6936613215565b346107d35760203660031901126107d3576004356001600160e01b0319811681036107d35760209060e01c604051906301ffc9a7630f632fb3821491141715158152f35b346107d35760403660031901126107d3576131046131bd565b67edcaa89a822939406020526014526024355f52602060405f2054604051908152f35b346107d35760203660031901126107d357622b600360e21b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f5750604051918291825b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036107d357565b608435906001600160a01b03821682036107d357565b60a435906001600160a01b03821682036107d357565b602435906001600160a01b03821682036107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101209082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101409082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024359060443590565b60206003198201126107d357600435906001600160401b0382116107d3576101a09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d357602083818601950101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101609082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460051b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101c09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760a09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760c09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460061b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d35760809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576102009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101e09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760e09082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024356001600160a01b03811681036107d3579060443590565b90600882101561158c5752565b90600282101561158c5752565b60206040818301928281528451809452019201905f5b8181106135e35750505090565b82518452602093840193909201916001016135d6565b90601f801991011681019081106001600160401b038211176115a057604052565b6001600160401b0381116115a057601f01601f191660200190565b6020818303126107d3578051906001600160401b0382116107d3570181601f820112156107d3578051906136688261361a565b9261367660405194856135f9565b828452602083830101116107d357815f9260208093018386015e8301015290565b909291926136a36139d1565b6001600160a01b0384168061372457505f9081808538935af115613717575b67edcaa89a8229394060205280601452825f5260405f209182549283821161077257815f9403905533835260205260018060a01b03165f516020615f655f395f51905f52604083a4613712613baa565b600190565b63b12d13eb5f526004601cfd5b9091926137313083613b85565b9260145260345263a9059cbb60601b5f5260205f6044601082855af13d1560015f51141716156137725761376a905f6034523090613b85565b9003906136c2565b6390b8ec185f526004601cfd5b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160061b360383136107d357565b356001600160a01b03811681036107d35790565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046186138135790565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208201527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60408201524660608201523060808201522090565b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160051b360383136107d357565b9190811015612a6d5760061b0190565b91906138e76139d1565b82359060018060a01b03821615916020850135341415831634158414178215176139c4578060016001605c1b03849260a01c1661392381613fa8565b936139b2575b505b81811061394157505050505061393f613baa565b565b61394c8183876138cd565b80359060016001605c1b038260a01c166001600160601b0386168103613991575b506001929161398b916020013590876001600160a01b03821661487c565b0161392b565b61398b919550916020836139a760019695613fa8565b96925050919261396d565b6139be9034908661437c565b5f613929565b63ca0fc08e5f526004601cfd5b7f000000000000000000000000000000000000000000000000000000000000000080600414613b595780600314613b475780600914613b105780600a14613ad357600814613a2d57634e487b7160e01b5f52605160045260245ffd5b613a43361568929eee149b4bd212686028615651565b805b613ac357507f000000000000000000000000000000000000000000000000000000000000000080600214613a9c57600114613a8e57634e487b7160e01b5f52605160045260245ffd5b3368929eee149b4bd212685d565b505f5460ff1615613ab5573368929eee149b4bd212685d565b3368929eee149b4bd2126855565b63f57c448b5f526020526024601cfd5b5060e0604036151768929eee149b4bd212680160c08101355f520135602052613b0a60405f2068929eee149b4bd212686031615651565b80613a45565b5068929eee149b4bd21328355f90815268929eee149b4bd213483560205260409020613b0a9068929eee149b4bd21268602f615651565b5068929eee149b4bd212685c80613a45565b505f5460ff1615613b755768929eee149b4bd212685c80613a45565b68929eee149b4bd2126854613b0a565b602460106020939284936014526370a0823160601b5f525afa601f3d11166020510290565b7f000000000000000000000000000000000000000000000000000000000000000080600614613bfc57600514613bee57634e487b7160e01b5f52605160045260245ffd5b5f68929eee149b4bd212685d565b505f5460ff1615613c15575f68929eee149b4bd212685d565b5f68929eee149b4bd2126855565b903590601e19813603018212156107d357018035906001600160401b0382116107d3576020019160608202360383136107d357565b60a090604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208301527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d604083015260608201523060808201522090565b90604051915f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f5260405260051b5191604052565b60a0906080604051917fe055493563385cc588fffacbffe2dab023fef807baa449530431169b0eeb5b69835260208301372090565b90613d5c6139d1565b613d7c613d7460a43560c43560e435612082876148dc565b923090613b85565b906040519063137c29fe82526080600460208401373060a083015260243560c083015260843560e0830152610140610120830152610160820190565b60807f63697069656e7429546f6b656e5065726d697373696f6e73286164647265737391609681527f436f6d706163744465706f736974207769746e65737329436f6d70616374446560208201527f706f736974286164647265737320616c6c6f6361746f722c75696e743820726560408201527f736574506572696f642c75696e74382073636f70652c6164647265737320726560608201527520746f6b656e2c75696e7432353620616d6f756e742960968201520152565b9093805f9493601c92869582613e86614eaf565b9987015260408387018360208201520137016024019101826e22d473030f116ddee9f6b43ac78ba35af11615613eb857565b3d6107cb57637f28c61e5f526004601cfd5b613ed8909291923090613b85565b9283811015613eec5761393f93039161437c565b63426d8dcf5f526004601cfd5b6affffffffffffffffffffff6a7fffffffffffffffffffff8260491c16818360481c16178060021c178060041c178060081c178060101c178060201c176755555555555555558160011c169003673333333333333333808260021c169116018060041c01670f0f0f0f0f0f0f0f660f0f0f0f0f0f0f8260081c169116018060101c01911690690fedcba9876543210000600f60581b91607f600319918060201c0116604803161c60581b161790565b6744036fc77deaed23605c1b81175415613fbf5750565b63cf90c3a85f526020526024601cfd5b604051916020526303f37b1a600c5280604052603760282090600182549160ff161b9080821661400157179055604052565b63dbc205b160601b600c526044601cfd5b916140206040820135614f51565b803590601e19813603018212156107d35701918235926001600160401b0384116107d3576020019280360384136107d35761393f93614069916140616137c8565b918585614f6c565b336150bc565b90929183159161408185826038615aa0565b9161409561408e84614862565b8092613fcf565b946001600160601b0360019316905b8084106140c257505050506140b557565b633a03d3bb5f526004601cfd5b90919293600190836001600160601b036140df8886896038615b0a565b1614151794019291906140a4565b919093928415926140ff868284615aa0565b9261410c61408e85614862565b956001600160601b0360019416915b81851061412d5750505050506140b557565b9091929394600190846001600160601b0361414a8987878b615b0a565b1614151795019392919061411b565b91905f5b81811061416d5750505050600190565b8061418c8461417f60019486896138cd565b60208101359035336141b4565b0161415d565b9190811015612a6d5760051b81013590603e19813603018212156107d3570190565b91929092604051908360148301526368a30dd082526034820194855260548201526058601c8201208242019262278d00811182548510176142295750829055607401526001600160a01b0316907ff78a2f33ff80ef4391f7449c748dc2d577a62cd645108f4f4069f4a7e0635b6a90606090a2565b631f9a96f45f526020526024601cfd5b939195909497969286019586359560208801359760608101359861425d89876152bf565b89811061429c575091614299999a93916142939593604060018060a01b03910135169760016001605c1b038a60a01c1690614c4a565b90615c31565b90565b8990633078b2f65f526020526040526044601cfd5b90916142bc81613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b171790565b6142eb82613ef9565b6744036fc77deaed23605c1b81175490921861430f57600360fc1b9160a01b171790565b5063cf90c3a85f526020526024601cfd5b61432981613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b600360fc1b1790565b9261435581613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b17171790565b909167edcaa89a8229394060205281601452825f5260405f208054908282019182106107655755335f5260205260018060a01b03165f5f516020615f655f395f51905f52604082a4565b939194925f9160208601925f935f9515908161481f575b85156147ce575b505f92801561473a575b5f1981011561469b575b83156145e1575b8415614460575050508184959697823701946e75696e7432353620616d6f756e7429600e8701527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19870152600e81870301905280850390209303902090565b91985096935083919450600e925060051b936e75696e7432353620616d6f756e7429838201527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19820152030190526040519261456d575b83156144f9575b5f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f526040525191604052565b7f45012d42fad8c9e937cff5a2d750ee18713dd45aadcd718660d5523056618d995f527fc2e16a823b8cdddfdf889991d7a461f0a19faf1f8e608f1c164495a52151cc3e6020527fd2f6ad391328936f118250f231e63c7e639f9756a9ebf972d81763870a772d87604052805193506144c0565b7f2bf981c42c7f423b06fa49ba996d2930887e2f1f53d9a26b8c7423ac1cf83e615f527fd14445d78213a5acddfa89171b0199de521c3b36738b835264cae18f5a53dbf36020527f329b3c527a3c74b8cabc51c304669d1866b87352cafdf440ef2becd6dc261d1e604052805193506144b9565b7f4d756c7469636861696e436f6d7061637420636f6d70616374294d756c74696387527f6861696e436f6d7061637428616464726573732073706f6e736f722c75696e7460208801527f323536206e6f6e63652c75696e7432353620657870697265732c5365676d656e60408801526f5d20696473416e64416d6f756e74732c60708801527f697465722c75696e7432353620636861696e49642c75696e743235365b325d5b6060880152601a87019660900193506143ff565b7f4261746368436f6d7061637420636f6d70616374294261746368436f6d70616387527f74286164647265737320617262697465722c616464726573732073706f6e736f60208801527a75696e743235365b325d5b5d20696473416e64416d6f756e74732c605b8801527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60408801526015870196607b0193506143f8565b7f436f6d7061637420636f6d7061637429436f6d7061637428616464726573732087527f617262697465722c616464726573732073706f6e736f722c75696e743235362060208801526f2c75696e7432353620616d6f756e742c60508801527f6e6f6e63652c75696e7432353620657870697265732c75696e743235362069646040880152601087019660700193506143ee565b7569766174696f6e2875696e743235365b5d206964732c60368a01527f426174636841637469766174696f6e207769746e65737329426174636841637490526056880195506038880194505f6143e4565b686e743235362069642c60298a01527f41637469766174696f6e207769746e6573732941637469766174696f6e28756981526049890196506033890195506143dd565b6744036fc77deaed23605c1b81175491908215613fbf5750565b91906148883084613b85565b9260405194606052306040523360601b602c526323b872dd60601b600c5260205f6064601c82855af13d1560015f51141716156148cf5761393f945f606052604052613eca565b637939f4245f526004601cfd5b8060601b156148e85790565b63961c9a4f6040526024605cfd5b908015155f52602052337fe27f5e0382cf5347965fc81d5c81cd141897fe9ce402d22c496b7c2ddc84e5fd60405fa3565b6001600160401b0381116115a05760051b60200190565b9061494882614927565b61495560405191826135f9565b8281528092614966601f1991614927565b0190602036910137565b8051821015612a6d5760209160051b010190565b919261498e6139d1565b6001600160a01b03833516159260208101353490811415851690158514178315176139c45783926149c660843560a43560c4356142b1565b956149d08261493e565b94614a6d575b50848103956149e48761493e565b925f925f5b898110614a0857505050506149fb5790565b630f2f1e515f526004601cfd5b80614a598a600193979596970194614a29614a2487878a6138cd565b6137b4565b90848060a01b0382166001600160601b0360a01b8a1617988911151797614a5181978d614970565b523090613b85565b614a638289614970565b52019291926149e9565b614a799087349161437c565b835115612a6d578560208501525f6149d6565b91604051918360061b8460071b9160061b6024350163fe8ec1a7855260c06020860152816101400160408601526004356060860152826101600160a0860152606060e0860152604435610100860152606435610120860152856101408601528160248201610160870137818501956101608701525f5b828110614b185750939450508301610180019150565b806040918801306101808201526101a06044838601013591015201614b02565b83515f96909594939290875b878110614b5f575050505050505050613eec5761393f613baa565b80614ba783600193019a614b818c614b7c614a2430928c8b6138cd565b613b85565b90614b9d614b8f858c614970565b519183831015179d89614970565b519103908a61437c565b01614b44565b90614bb78261361a565b614bc460405191826135f9565b8281528092614966601f199161361a565b9015612a6d5790565b9190811015612a6d576060020190565b8160061b82810460401483151715611efe57614c0990614bad565b915f5b818110614c20575050506020815191012090565b80614c2e6001928486614bde565b604060208360061b880192803582850152013591015201614c0c565b60408401356001600160a01b031697969095939486948994919387358801936020890135890192909183359190614c8460808c0135614f51565b614c8d90614862565b6060819b013590614c9d91613fcf565b86811502019181151587841415179081159b614cd49961393f9d614cf0575b505050614cda575b5050508582359260200191614f6c565b846150bc565b614ce8926020018c89614f6c565b5f8080614cc4565b614d1b9350605892601c926040519260148401526368a30dd083526034830152605482015201205490565b4210155f898e614cbc565b98979380959196614d6b939894890198893581019860208a81019a359b013597614d63614d538d8d614bd5565b3560a01c60016001605c1b031690565b9d8e91615e45565b90614d768686614bd5565b95614d9f6020614d93878a35809b6040810135948591013561535c565b83151798868686615c31565b506001600160601b0360019916985b818110614dc7575050505050505061371291925061536d565b614dd2818389614bde565b80359889918860408201359b8c926020013592614dee9361535c565b8c8360a01c60016001605c1b03161415171798614e0d91878787615c31565b50600101614dae565b9015612a6d57803590605e19813603018212156107d3570190565b9190811015612a6d5760051b81013590605e19813603018212156107d3570190565b8160061b82810460401483151715611efe57614e6e90614bad565b915f5b818110614e85575050506020815191012090565b80614e936001928486614e31565b604060208360061b880192803582850152013591015201614e71565b7f0000000000000000000000000000000000000000000000000000000000000000613712576e22d473030f116ddee9f6b43ac78ba33b151590565b60a092916040606092815194848601525f516020615f455f395f51905f5285528560208601933385524684880152608087208752820101358101803560051b80916020018537602001852060808601525f516020615f855f395f51905f5285520190372090565b42811115614f5c5750565b63f80dbaea5f526020526024601cfd5b604080516119015f9081526020979097529181526042601e20918152919390929091606483019083146001600160a01b0386166041851481614fc7575b5050505050505033141715614fba57565b638baa579f5f526004601cfd5b909192939495975060405192885f5261506c575b61502d575b60209495965f60605282604052630b135d3f60e11b83526004830152602482019586946040865281604485015260648401375afa9051630b135d3f60e11b1416905f808080808080614fa9565b60408401355f1a60205260408481376020600160805f825afa5181183d1517614fe0575094505050506001915f6060526040525f808080808080614fa9565b60208581013560ff81901c601b01825286356040526001600160ff1b0316606052600160805f825afa5182183d1517614fdb57505094505050506001915f6060526040525f808080808080614fa9565b5f91825233926001600160a01b03908116929116907f770c32a2314b700d6239ee35ba23a9690f2fceb93a55d8c753e953059b3b18d490602090a4565b6040519260608401525f516020615f455f395f51905f5283526020830191338352466040850152608084209082019060a082013583019060c0823560051b93013560051b5f905f5b85811061517857505050505091604060609260a09594602001852060808601525f516020615f855f395f51905f5285520190372090565b8089016020848301870101358152828214615197575b50602001615141565b602090810185905292508261518e565b949195849197966151d4948101358101988960200199359a6151cc614d538d8d614e16565b988991615e45565b8515956001600160601b035f9416935b8181106151fb57505050505050506137129061536d565b806152498761520d600194868c614e31565b80359b8c8a60016001605c1b036152248c846153b0565b9260a01c16141517179b87602061523e604085018561377f565b9190940135936153c6565b50016151e4565b614299906152756040361517829060e0910160c08101355f52013560205260405f2090565b906031615651565b9291905f5b818110615290575050505050565b806152b86152a160019385896138cd565b8560206152ad836137b4565b920135913389615c31565b5001615282565b8160ff1c15901517156152cf5750565b63a06356f55f526020526024601cfd5b95849061530e9399949692968a01998a3597889660408d013583019a60016001605c1b038960a01c1691615e45565b9561531f60209261429998946152bf565b0135928035906020016153c6565b60a0916040519382019160c0830135019081359384930135855260208501526020016040840137604001902090565b9261536791926153b0565b91101790565b6140b557565b60c09160408051925f516020615fc55f395f51905f5284523360208501523382850152602081013560608501520135608083015260a08201522090565b60ff1c600281101561158c576001149015151690565b91949290925f958415945f5b81811061540157505050505050828210176153ee575050600190565b633078b2f65f526020526040526044601cfd5b8061543460209a988761542d61541a600196888d6138cd565b9d8e0135928c84019c8d10179b9d6137b4565b8789615c31565b50016153d2565b906040519160c08101350191823580937f4d756c7469636861696e436f6d7061637428616464726573732073706f6e736f83527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60208401527f5365676d656e745b5d207365676d656e7473295365676d656e7428616464726560408401527535365b325d5b5d20696473416e64416d6f756e74732c60768401527f737320617262697465722c75696e7432353620636861696e49642c75696e74326060840152602001609683013782604301605382012092609601902090565b614299903615906028615651565b906142996155386040361517846028615651565b928336159161532d565b61556d906155676080361517829060e0910160c08101355f52013560205260405f2090565b90615b8a565b9091565b61556d906155966040361517829060e0910160c08101355f52013560205260405f2090565b90615b66565b906142996155386155c46080361517859060e0910160c08101355f52013560205260405f2090565b846032615651565b90614299615538610b6b6040361517859060e0910160c08101355f52013560205260405f2090565b61561f906156196080361517829060e0910160c08101355f52013560205260405f2090565b90615bd9565b9192909190565b61561f9061564b60c0361517829060e0910160c08101355f52013560205260405f2090565b90615c0a565b91909180603214615764578060311461575757806030146157475780602b146157165780602f1461570957806028146156c857806033146156b057602a146156a757634e487b7160e01b5f52605160045260245ffd5b61429991615373565b5060e0910160c08101355f52013560205260405f2090565b5060c060e092606060408051948301925f516020615fa55f395f51905f52865233602087015201604085013760a081013560a0840152013560c08201522090565b5061429991361590614eea565b509060c091606060408051935f516020615fc55f395f51905f52855233602086015201604084013760a08201522090565b5061429991604036151790614eea565b50614299913615906150f9565b50614299916040361517906150f9565b9061010060405160a060c085013585019460608635967f436f6d70616374286164647265737320617262697465722c6164647265737320855260208501977f73706f6e736f722c75696e74323536206e6f6e63652c75696e7432353620657889528060408701927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c845260200184880137820185209788865233905260408301903760e0810135828401528381013560c0840152013560e0820152209190565b60e09092919260a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b92919280602c146159df5760291461591d57634e487b7160e01b5f52605160045260245ffd5b6101009060a0604051918360c082013582019660608835987f436f6d70616374286164647265737320617262697465722c6164647265737320875260208701997f73706f6e736f722c75696e74323536206e6f6e63652c75696e743235362065788b528060408901927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c8452602001848a013782018720998a8852339052604085019037820160e081013584860152013560c0840152013560e0820152209190565b5060e09060a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b91909180603814615af45780603914615ad857600714615ace57634e487b7160e01b5f52605160045260245ffd5b614299915f615651565b505f615aec9160016001605c1b0393614192565b3560a01c1690565b5015612a6d573560a01c60016001605c1b031690565b80603814615b525780603914615b3e57600714615b3557634e487b7160e01b5f52605160045260245ffd5b61429992615651565b5091615aec9160016001605c1b0393614192565b5091615aec9160016001605c1b03936138cd565b9190615b8690615b758461543b565b94908591604036151790602d615ce7565b9190565b9190615b8690615b998461543b565b94908591604036151790602e615ce7565b91615bba615b869284602c6158f7565b9290938460403615179161532d565b91615bba615b86928460296158f7565b91615b86604093615c0093615bed8261543b565b959091863615936080851786602d615ce7565b958691179161532d565b91615b86604093615c0093615c1e8261543b565b959091863615936080851786602e615ce7565b939291909380603514615cdd5780603414615c6a57603714615c6157634e487b7160e01b5f52605160045260245ffd5b614299936140ed565b5090929167edcaa89a8229394060205282601452835f5260405f20805480831183151761077257829003905581601452835f5260405f208054908282019182106107655755335f5260205260018060a01b03169060018060a01b03165f516020615f655f395f51905f5260405fa4600190565b5061429993613697565b9594939190929580602d14615dce57602e14615d1157634e487b7160e01b5f52605160045260245ffd5b6040519360608501528584525f516020615f455f395f51905f526020850196338852466040870152141580615dbf575b60051b60800184209083019060a082013584019060c0823560051b93013560051b5f905f5b858110615d9057505050505060609260a09596926040926020018620608087015285520190372090565b8089016020848301870101358152828214615daf575b50602001615d66565b6020908101859052925082615da6565b60a08401356080860152615d41565b5060609260a095969286604093845197878901528588525f516020615f455f395f51905f52602089019633885246878b0152141580615e37575b60051b60800188208852830101358201803560051b809160200186376020018620608087015285520190372090565b8285013560808a0152615e08565b969594939291909680602714615f315780602414615f1c5780602114615f075780602314615ef75780601f14615ee25780602614615ecf5780602214615ec45780602514615eb157601714615ea857634e487b7160e01b5f52605160045260245ffd5b61429996614c4a565b50906017959493929187614299986152df565b508661429997614239565b5090601795949392918761429998614d26565b50916142999691601796959493361593614d26565b5090614299969291361593614239565b509161429996916017969594933615936151a7565b509161429996916017969594933615936152df565b50906017959493929187614299986151a756fe295feb095767cc67d7e74695da0adaddede54d7b7194a8a5426fe8f0351e03371b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288595ca9a66b8bbf0d2316e90dfa3df465f0790b277b25393a3ef4d67e1f50865057cdca950b17b5efc016b74b912d8527dfba5e404a688cbc3dab16cb943287fec25a7fee8000a237929ef9be08f2933c4b4f320b00b38809f3c7aa104d5421049fa164736f6c634300081c000a60808060405234601557613e10908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8062ad800c146137045780634e41a1fb146136965763d637ca8d14610039575f80fd5b3461367e57366003190160a0811261367e5760801361367e576040516080810181811067ffffffffffffffff82111761368257604052600435906001600160a01b0382169081830361367e57828152602435906001600160a01b038216820361367e576020810191825260443592600884101561367e576040820193845260643594600286101561367e5760608381019687521b6bffffffffffffffffffffffff191661366c575061011c6040516100f2604082613793565b600c81526b2730ba34bb32902a37b5b2b760a11b6020820152925b516001600160a01b03166138a1565b9251600881101561365857610130906139c8565b935160028110156136585761014490613bba565b8151610158906001600160a01b03166137b5565b825190919061016f906001600160a01b0316613834565b925163313ce56760049081525f81905260209182919082906001600160a01b0316620186a0fa3d601f10166020510260ff166101aa90613c59565b916040519560208701977103d913730b6b2911d101121b7b6b830b1ba160751b89528786518060208901603284015e810161088b60f21b603282015203603201601d19810189526002016101fe9089613793565b6040519460208601947f226465736372697074696f6e223a2022436f6d7061637420000000000000000086528451806020870160388a015e87016038810161040560f31b90528951908160208c01603a83015e01603801600281017f29207265736f75726365206c6f636b207769746820616c6c6f6361746f72200090528451908160208701602183015e0160020193601f85017401030b732103932b9b2ba103832b934b7b21037b31605d1b905287845160208601968188603483015e01601f0161088b60f21b601582015203601501601d19810189526002016102e39089613793565b6102ee608435613c59565b604051906102fd604083613793565b6002825261125160f21b602083015261031591613c9e565b9960405190610325604083613793565b600d82526c546f6b656e204164647265737360981b602083015261034891613c9e565b9560405190610358604083613793565b600a825269546f6b656e204e616d6560b01b602083015261037891613c9e565b9860405190610388604083613793565b600c82526b151bdad95b8814de5b589bdb60a21b60208301526103aa91613c9e565b92604051906103ba604083613793565b600e82526d546f6b656e20446563696d616c7360901b60208301526103de91613c9e565b90604051906103ee604083613793565b600982526820b63637b1b0ba37b960b91b602083015261040d91613c9e565b916040519061041d604083613793565b600582526453636f706560d81b602083015261043891613c9e565b9260405195610448604088613793565b600c875260208701906b14995cd95d0814195c9a5bd960a21b825260405190610472602083613793565b5f8252604051978893602085019a6f3d913a3930b4ba2fba3cb832911d101160811b8c52518091603087015e8401906c111610113b30b63ab2911d101160991b6030830152518092603d83015e0160300161227d60f01b600d82015281516020819301600f83015e01600d01600281015f905203600201601f19810186526104fa9086613793565b604051998a97602089019c8d6e2261747472696275746573223a205b60881b905280516020819201602f8c015e8901602f8101915f83528051926020849201905e01602f015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e01905f8252518092825e01615d7d60f01b815203601d19810184526002016105a79084613793565b604051906105b76127c083613793565b61278e82527f22696d616765223a2022646174613a696d6167652f7376672b786d6c3b62617360208084019182527f6536342c5044393462577767646d567963326c76626a30694d5334774969426c6040808601919091527f626d4e765a476c755a7a306961584e764c5467344e546b744d53492f5067304b60608601527f504345744c5342485a57356c636d4630623349364945466b62324a6c49456c7360808601527f6248567a64484a68644739794944497a4c6a41754e53776755315a484945563460a08601527f63473979644342516248566e4c556c754943346755315a4849465a6c636e4e7060c08601527f62323436494459754d444167516e5670624751674d436b67494330745067304b60e08601527f50484e325a7942325a584a7a61573975505349784c6a4569494868746247357a6101008601527f50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441776101208601527f4c334e325a79496765473173626e4d3665477870626d7339496d6830644841366101408601527f4c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d73696101608601527f49486739496a427765434967655430694d4842344967304b43534232615756336101808601527f516d393450534977494441674e446b79494451354d69496763335235624755396101a08601527f496d567559574a735a53316959574e725a334a766457356b4f6d356c647941776101c08601527f494441674e446b79494451354d6a7369494868746244707a6347466a5a5430696101e08601527f63484a6c63325679646d55695067304b5047636761575139496b31686333526c6102008601527f636c394d59586c6c636c3879496a344e436a77765a7a344e436a786e49476c6b6102208601527f50534a4d59586c6c636c3878496a344e43676b385a7a344e43676b4a5047632b6102408601527f44516f4a43516b385a7a344e43676b4a43516b385a7a344e43676b4a43516b4a6102608601527f50484268644767676333523562475539496d5a7062477774636e56735a54706c6102808601527f646d56756232526b4f324e7361584174636e56735a54706c646d56756232526b6102a08601527f4f325a7062477736497a49784d6a45794d54736949475139496b307a4d6a45756102c08601527f4d7a41344c4449354e4334344e6a526a4e53347a4e5449734e53347a4d6a67736102e08601527f4f5334304e5459734d5449754d5451304c4445314c6a63354d6977344c6a677a6103008601527f4d67304b43516b4a43516b4a597a49754e4451344c5445754d6a63794c4455756103208601527f4d4459304c544d754d446b324c4463754d7a49744e5334794e545a6a4d7934336103408601527f4e4451744d7934314e7a59734f4334794e5459744f5334314d6a67734e4334326103608601527f4e5459744d5451754d6a686a4c5445794c6a51314e6930784d5334354e7a59746103808601527f4d7a59754d7a67304c544d794c6a45784d69307a4e6934304e5459744d7a49756103a08601527f4d54594e43676b4a43516b4a435777334c6a55324c5467754e545934597a41756103c08601527f4d4449304c4441754d4449304c4455754d5459734e4334314d7a59734d5445756103e08601527f4f444d794c4445774c6a67794e474d344c6a59344f4377344c6a49774f4377796104008601527f4d4334344e5459734d5459754d6977794e6934334d7a59734d6a51754e4441346104208601527f44516f4a43516b4a43516c6a4d79347a4d5449734e4334324d4467734d6934326104408601527f4d5459734d5449754e7a51304c4441754f4459304c4445334c6a5579597930786104608601527f4c6a4d354d69777a4c6a67304c5451754d5441304c4463754e4459304c5463756104808601527f4d7a49734d5441754e544d325979307a4c6a41794e4377794c6a6b774e4330326104a08601527f4c6a59734e5334304c546b754f5459734e7934784d6a674e43676b4a43516b4a6104c08601527f43574d744d79347a4f4451734d5334334e5449744e6934334f5449734d6934336104e08601527f4e6930354c6a59354e6977794c6a63344e474d744d4334774f5459734d4334306105008601527f4e5459744d4334794d5459734d4334354d7a59744d43347a4d7a59734d53347a6105208601527f4f544a6a4c5441754f5459734d7934794e43307a4c6a41794e4377324c6a41336105408601527f4d6930314c6a59784e6977344c6a514e43676b4a43516b4a43574d744d69347a6105608601527f4d6a67734d6934774f4467744e5334784d7a59734d7934344d5459744e7934356105808601527f4e4451734e5334774e6a526a4c544d754d4463794c4445754d7a51304c5459756105a08601527f4d6a67344c4449754d5445794c546b754d5459344c4449754d545a6a4c5441756105c08601527f4d446b324c4441754f544d324c5441754d6a67344c4445754f4451344c5441756105e08601527f4e5455794c4449754e7a594e43676b4a43516b4a43574d744d4334354e69777a6106008601527f4c6a49304c544d754d4449304c4459754d4463794c5455754e6a45324c4467756106208601527f4e474d744d69347a4d6a67734d6934774f4467744e5334784d7a59734d7934346106408601527f4d5459744e7934354e4451734e5334774e6a526a4c5451754d5449344c4445756106608601527f4f4449304c5467754e5451304c4449754e5459344c5445794c4445754f5459346106808601527f44516f4a43516b4a43516c6a4c5441754d5449734d5334794d6a51744d43347a6106a08601527f4e6977794c6a51744d4334324f5459734d7934314d4452324d4334774d6a526a6106c08601527f4c5445754d444d794c444d754d7a67304c544d734e6934794e4330314c6a55796106e08601527f4c4467754d7a5579597930794c6a55794c4449754d5445794c5455754e546b796107008601527f4c444d754e4467744f4334344e5459734d7934354d7a594e43676b4a43516b4a6107208601527f43574d744d7934354e6977774c6a55314d6930344c6a45324c5441754d6a51746107408601527f4d5445754f5441304c5449754e6a6734597930784c6a417a4d6930774c6a59336107608601527f4d6930794c6a45324c5445754e544d324c544d754e4467744d6934314f544a736107808601527f4c5441754e7a51304c5441754e546332624330784d5334784e6930344c6a59786107a08601527f4e6d77324c6a6b324c546b754d444930624445784c6a45324c4467754e6a45326107c08601527f44516f4a43516b4a43516c734d4334334e4451734d4334314e7a5a6a4d5334776107e08601527f4d7a49734d4334334f5449734d5334344f5459734d5334304f4467734d6934336108008601527f4f4451734d6934774e474d784c6a49354e6977774c6a67324e4377794c6a637a6108208601527f4e6977784c6a45794f4377304c6a41344c4441754f545a6a4d5334784d6a67746108408601527f4d4334784e6a67734d6934784f4451744d4334324e4467734d7934774e7a49746108608601527f4d53347a4f54494e43676b4a43516b4a43574d774c6a67324e4330774c6a63796108808601527f4c4445754e5459744d5334334d6a67734d5334354d6930794c6a6b774e4777776108a08601527f4c44426a4d4334304e5459744d5334314e6977774c6a4d344e43307a4c6a55776108c08601527f4e4330774c6a51314e6930314c6a6332597930354c6a55794f4330784d7934796108e08601527f4f5459744d6a6b754e4451344c5449354c6a51794e4330794f5334304f5459746109008601527f4d6a6b754e44637944516f4a43516b4a43516c734e7934794c5467754f4455326109208601527f597a41754d4451344c4441754d4449304c4467754d5445794c4459754e5463326109408601527f4c4445324c6a63314d6977784e5334774d6a526a4d69347a4d4451734d6934796109608601527f4e5459734e4334344e4467734e4334334e5449734e7934314d5449734e7934786109808601527f4d6a686a4d4334304f4377774c6a517a4d6977774c6a6b344e4377774c6a67326109a08601527f4e4377784c6a51324e4377784c6a49354e67304b43516b4a43516b4a624441736109c08601527f4d4777774c44426a4d4334774f5459734d4334774f5459734d4334794d5459736109e08601527f4d4334784f5449734d43347a4d5449734d4334794f44686a4d4334324d6a5173610a008601527f4d4334314e5449734d5334794e4467734d5334784d6a67734d5334344e7a4973610a208601527f4d5334334d44526a4d6934784d5449734d5334344f5459734e4334794c444d75610a408601527f4f4445324c4459754d7a67304c4455754e446b3244516f4a43516b4a43516c6a610a608601527f4d6934314f5449734d5334344e4467734d6934314e4451734d6934794d7a4973610a808601527f4e5334304f5459734d53347a4e44526a4d4334324d6a51744d4334784f544973610aa08601527f4d5334794f5459744d4334314d6a67734d6934774d5459744d4334344e474d78610ac08601527f4c6a63334e6930774c6a63324f43777a4c6a55774e4330784c6a67304f437730610ae08601527f4c6a67354e69307a4c6a41354e67304b43516b4a43516b4a597a45754d544934610b008601527f4c5445754d444d794c4445754f546b794c5449754d5445794c4449754d7a4130610b208601527f4c544d754d545934597a41754d6a51744d4334344e4377774c6a41334d693078610b408601527f4c6a67304f4330774c6a63304e4330794c6a6b334e6d4d744f5334314e7a5974610b608601527f4d544d754d7a49744d7a55754f5441304c544d324c6a51314e69307a4e533435610b808601527f4e7a59744d7a59754e544934624463754e5459744f4334314e6a674e43676b4a610ba08601527f43516b4a43574d774c6a41304f4377774c6a41304f4377784e4334324f446773610bc08601527f4d5449754f5445794c4449324c6a59784e6977794e5334304f44686a4d793479610be08601527f4e43777a4c6a45354d6977344c6a41324e4377334c6a55324c4445784c6a5530610c008601527f4e4377784d4334794e7a4a6a4d5334794e7a49734d4334354d5449734d693478610c208601527f4e6977794c6a41344f4377304c6a41344c4445754e44453244516f4a43516b4a610c408601527f43516c6a4d4334344d5459744d4334794f4467734d5334344e4467744d433432610c608601527f4f5459734d7930784c6a4a6a4d5334334e7a59744d4334334e6a67734d793431610c808601527f4d4451744d5334344e4467734e4334344f5459744d7934774f545a6a4d533478610ca08601527f4d6a67744d5334774d4467734d5334354f5449744d6934784d5449734d69347a610cc08601527f4d4451744d7934784e6a674e43676b4a43516b4a43574d774c6a49304c544175610ce08601527f4f4451734d4334774e7a49744d5334344e4467744d4334334e4451744d324d74610d008601527f4f5334314e7a59744d544d754d7a49744d7a55754f5441304c544d324c6a5131610d208601527f4e69307a4e5334354e7a59744d7a59754e544934624463754e5459744f433431610d408601527f4e6a674e43676b4a43516b4a43554d794f5449754d6a49734d6a59324c6a5934610d608601527f4f43777a4d446b754d4451304c4449344d5334304f5459734d7a49784c6a4d77610d808601527f4f4377794f5451754f445930656949765067304b43516b4a435477765a7a344e610da08601527f43676b4a43516b385a7a344e43676b4a43516b4a504842686447676763335235610dc08601527f62475539496d5a7062477774636e56735a54706c646d56756232526b4f324e73610de08601527f61584174636e56735a54706c646d56756232526b4f325a7062477736497a4978610e008601527f4d6a45794d54736949475139496b30304d6a6b754d4449734d6a55304c6a5179610e208601527f4e45777a4f544d754e6a6b794c4445794f5334334d6d77744d5334314d7a5974610e408601527f4e5334304e4468734c5455754e4451344c4445754e44673444516f4a43516b4a610e608601527f43516c734c5451314c6a49784e6977784d6934304d4468734c5455754e545934610e808601527f4c4445754e544d32624445754e5459734e5334314d6d77794c6a457a4e697733610ea08601527f4c6a557a4e6d4d744d6a45754e6a6b324c4445754f5459344c5451794c6a6730610ec08601527f4c5449754e6a59304c5459794c6a55324f4330324c6a6b3244516f4a43516b4a610ee08601527f43516c6a4c544d354c6a49324e4330344c6a55324f4330334d7934794f545974610f008601527f4d5455754f5467304c546b354c6a55334e6977794e5334344f545a734d437777610f208601527f597930334c6a45774e4377784d53347a4e5449744d5451754f4455324c444930610f408601527f4c6a67304c5445324c6a59314e69777a4e5334784e67304b43516b4a43516b4a610f608601527f597930794c6a51334d6977784e4334774e43777a4c6a41794e4377794d793477610f808601527f4e4377794e5334794e4467734d5467754f545a6a4d544d754e6a55324c544975610fa08601527f4e446b324c4449794c6a41344c546b754d7a59734d6a6b754f5449344c544531610fc08601527f4c6a63324f474d344c6a67344c5463754d6a51344c4445324c6a67334d693078610fe08601527f4d7934334e5449734d7a49754d7a63324c546b754d54513044516f4a43516b4a6110008601527f43516c6a4f4334784d7a59734d79347a4e6977344c6a67344c444d754e6a63796110208601527f4c4445314c6a49304c446b754d444930597a49784c6a45304e4377784e7934336110408601527f4d7a59734e7a45754e4377324d5334314d7a59734e7a49734e6a49754d4452736110608601527f4d437777624445774c6a51784e6977354c6a45324f4777794c6a6b774e4377796110808601527f4c6a55304e47777a4c6a517a4d6930784c6a63314d67304b43516b4a43516b4a6110a08601527f624449774c6a67344c5445774c6a59774f4777784c6a49334d6977304c6a51346110c08601527f4f4777314c6a51334d6930784c6a5532624451314c6a41354e6930784d6934336110e08601527f4e6a68734e5334304f5459744d5334314e6b77304d6a6b754d4449734d6a55306111008601527f4c6a51794e4577304d6a6b754d4449734d6a55304c6a51794e486f6754544d316111208601527f4d4334324d7a59734d6a59354c6a6b334e6d77744e7934314d5449744e6934326111408601527f44516f4a43516b4a43516c494d7a517a4c6a466a4c5441754d5451304c5441756111608601527f4d5449744e5445754e6a49304c5451314c5463794c6a45354d6930324d6934796111808601527f4d7a4a6a4c5463754e7a41304c5459754e4455324c5467754e5459344c5459756111a08601527f4f4445324c5445344c6a4d324c5445774c6a67334d6d77744d4334794e4330776111c08601527f4c6a41354e6d77744d4334314d6a67744d4334784f54494e43676b4a43516b4a6111e08601527f43574d744d6a45754d7a59744e6934304e5459744d7a45754e6a41344c4445756112008601527f4f5449744e4449754f5467304c4445784c6a49774f474d744e6934334e6a67736112208601527f4e5334314d6930784d7934354f5449734d5445754e4449304c5449304c6a63326112408601527f4f4377784d79347a4f544a6a4c5445774c6a41344c4445754f4451344c5445796112608601527f4c6a63324f4330784c6a417a4d6930784d5334354d6a67744e5334334f44514e6112808601527f43676b4a43516b4a43574d784c6a51344f4330344c6a51334d6977344c6a55306112a08601527f4e4330794d4334324e6a51734d5455754d4451344c544d784c6a41314e6e59746112c08601527f4d4334774d6a526a4d6a45754f5459744d7a55754d4459304c4455794c6a4d356112e08601527f4d6930794f4334304e4377344e7934304f4330794d4334334f44514e43676b4a6113008601527f43516b4a43574d794d5334784f5449734e4334324d4467734e444d754f5451306113208601527f4c446b754e5463324c4459344c6a45324c4459754f544d32624449334c6a49326113408601527f4e4377354e6934794e45777a4e5441754e6a4d324c4449324f5334354e7a5a4d6113608601527f4d7a55774c6a597a4e6977794e6a6b754f5463326569424e4d7a67794c6a4d326113808601527f4e4377794e6a45754e6a6b3254444d314d4334774e6977784e4463754e6a49316113a08601527f44516f4a43516b4a43516c734d7a51754d6930354c6a4d344e47777a4d6934796113c08601527f4d7a49734d54457a4c6a63344e45777a4f4449754d7a59304c4449324d5334326113e08601527f4f545a364969382b44516f4a43516b4a5043396e5067304b43516b4a4354786e6114008601527f5067304b43516b4a43516b38634746306143427a64486c735a5430695a6d6c736114208601527f624331796457786c4f6d56325a5735765a47513759327870634331796457786c6114408601527f4f6d56325a5735765a4751375a6d6c7362446f6a4d6a45794d5449784f7949676114608601527f5a443069545445314e5334774d544d734d5451314c6a4a734c5449754d6a67736114808601527f4f4334774d54594e43676b4a43516b4a43574d784d4334794d6a51734d4334796114a08601527f4d5459734d6a6b754e546b794c4441754d4451344c4451314c6a63794c544d756114c08601527f4e6d77794c6a51354e6977784d5334784d7a5a6a4c5445344c6a6b324c4451756114e08601527f4d6a6b324c5451784c6a67774f4377304c6a45774e4330314d5334304d4467736115008601527f4d7934334f544a734c5449314c6a51344f4377344f5334354e7a594e43676b4a6115208601527f43516b4a43574d354c6a59334d69777a4c6a41304f4377794e7934344f4467736115408601527f4d5441754f5459344c4449354c6a4d314d6977794e7934334d6d77744d5445756115608601527f4e4377774c6a6b344e474d744d4334344f4467744d5441754d5455794c54457a6115808601527f4c6a63794f4330784e5334314d4451744d6a45754d4463794c5445334c6a63326115a08601527f624330784c6a4d324f4377304c6a67794e4777744d5334314e6977314c6a51356115c08601527f4e67304b43516b4a43516b4a624330314c6a51334d6930784c6a5532624330306115e08601527f4e5334774f5459744d5449754e7a5934624330314c6a51354e6930784c6a55326116008601527f624445754e5459744e5334304e7a4a734d7a55754d7a49344c5445794e4334336116208601527f4d4452734d5334314d7a59744e5334304e4468734e5334304e4467734d5334306116408601527f4f4468734e4455754d6a45324c4445794c6a51774f4777314c6a55324f4377786116608601527f4c6a557a4e67304b43516b4a43516b4a544445314e5334774d544d734d5451316116808601527f4c6a4a4d4d5455314c6a41784d7977784e4455754d6b77784e5455754d44457a6116a08601527f4c4445304e5334796569424e4d5445774c6a45314e7977794e6a45754e6a6b326116c08601527f62444d794c6a4d774e4330784d5451754d4463796243307a4e4334794c546b756116e08601527f4d7a6730544463324c6a41794f5377794e5449754d444930544445784d4334786117008601527f4e5463734d6a59784c6a59354e6e6f694c7a344e43676b4a43516b384c32632b6117208601527f44516f4a43516b4a5047632b44516f4a43516b4a435478775958526f49484e306117408601527f6557786c50534a6d615778734c584a31624755365a585a6c626d396b5a44746a6117608601527f62476c774c584a31624755365a585a6c626d396b5a44746d615778734f694d796117808601527f4d5449784d6a45374969426b50534a4e4d6a51774c6a63324e43777a4d7a59756117a08601527f4e6a6379544449304d4334334e6a51734d7a4d324c6a59334d67304b43516b4a6117c08601527f43516b4a597930784c6a45774e4330774c6a67784e6930794c6a51304f4330786117e08601527f4c6a41344c544d754e7a51304c5441754f446734637930794c6a51354e6977776118008601527f4c6a67324e43307a4c6a4d784d6977784c6a6b304e4777744f4334344d7a49736118208601527f4d5445754f546332614441754d444930597930774c6a67784e6977784c6a45776118408601527f4e4330784c6a45774e4377794c6a51334d6930774c6a6b784d69777a4c6a63306118608601527f4e41304b43516b4a43516b4a597a41754d546b794c4445754d6a63794c4441756118808601527f4f4459304c4449754e4463794c4445754f5451304c444d754d6a6734624441756118a08601527f4d5459344c4441754d545130597a45754d4455324c4441754e7a49734d69347a6118c08601527f4e5449734d4334354e69777a4c6a55334e6977774c6a63324f474d784c6a49356118e08601527f4e6930774c6a45354d6977794c6a51354e6930774c6a67324e43777a4c6a4d786119008601527f4d6930784c6a6b304e41304b43516b4a43516b4a624467754f4455324c5445796119208601527f597a41754f4445324c5445754d5441304c4445754d4467744d6934304e4467736119408601527f4d4334344f4467744d7934334e4452444d6a51794c6a55784e69777a4d7a67756119608601527f4e6a67344c4449304d5334344e4451734d7a4d334c6a51344f4377794e4441756119808601527f4e7a59304c444d7a4e6934324e7a4a4d4d6a51774c6a63324e43777a4d7a59756119a08601527f4e6a637944516f4a43516b4a43516c4d4d6a51774c6a63324e43777a4d7a59756119c08601527f4e6a63796569424e4d5463324c6a51794d5377794e6a59754d6a686a4e4334796119e08601527f4d6a51734d7934784d6977324c6a67784e6977334c6a59344c4463754e544d32611a008601527f4c4445794c6a55774e474d774c6a4d784d6977794c6a41324e4377774c6a4934611a208601527f4f4377304c6a45334e6930774c6a41354e6977324c6a493044516f4a43516b4a611a408601527f43516c6a4d5334344f5459744d4334354e69777a4c6a6b7a4e6930784c6a5977611a608601527f4f4377324c6a41794e4330784c6a6b79597a55754d4445324c5441754e7a5130611a808601527f4c4445774c6a49354e6977774c6a4d344e4377784e4334324f4467734d793432611aa08601527f4d6a52324d4334774d6a526a4e4334304d5459734d7934794e4377334c6a4134611ac08601527f4c4463754f5459344c4463754f4449304c4445794c6a6b344e41304b43516b4a611ae08601527f43516b4a597a41754d7a45794c4445754f546b794c4441754d6a67344c445175611b008601527f4d444d794c5441754d4449304c4459754d445134597a41754e6930774c6a4530611b208601527f4e4377784c6a45334e6930774c6a49324e4377784c6a63334e6930774c6a4d32611b408601527f597a51754e544d324c5441754e6a63794c446b754d7a4d324c4441754d7a5973611b608601527f4d544d754d6a6b324c444d754d6a6734624441754d6a67344c4441754d6a514e611b808601527f43676b4a43516b4a43574d7a4c6a67784e6977794c6a6b794f4377324c6a4530611ba08601527f4e4377334c6a45794f4377324c6a67784e6977784d5334314d6d4d774c6a4978611bc08601527f4e6977784c6a4d324f4377774c6a49324e4377794c6a63324c4441754d545130611be08601527f4c4451754d545579597a41754d6a45324c5441754d4451344c4441754e444134611c008601527f4c5441754d4463794c4441754e6a49304c5441754d446b3244516f4a43516b4a611c208601527f43516c6a4e4334784d6a67744d4334324d6a51734f4334314e4451734d43347a611c408601527f4d7a59734d5449754d546b794c444d754d444930624441734d474d7a4c6a5933611c608601527f4d6977794c6a63784d6977314c6a67344c4459754e6a49304c4459754e544130611c808601527f4c4445774c6a63334e6d4d774c6a59794e4377304c6a45794f4330774c6a4d7a611ca08601527f4e6977344c6a55304e43307a4c6a41304f4377784d6934784f54494e43676b4a611cc08601527f43516b4a435777744f4334344e5459734d544a6a4c5449754e7a45794c444d75611ce08601527f4e6a63794c5459754e6a49304c4455754f4467744d5441754e7a63324c445975611d008601527f4e544130597930304c6a45794f4377774c6a59794e4330344c6a55794c544175611d208601527f4d7a4d324c5445794c6a45354d69307a4c6a41794e4859774c6a41794e41304b611d408601527f43516b4a43516b4a5979307a4c6a59304f4330794c6a59344f4330314c6a6734611d608601527f4c5459754e6a49304c5459754e5441304c5445774c6a686a4c5441754d446379611d808601527f4c5441754e4467744d4334784d6930774c6a6b324c5441754d5451304c544575611da08601527f4e44526a4c5445754d4441344c4441754d7a4d324c5449754d4451734d433432611dc08601527f4c544d754d4463794c4441754e7a513044516f4a43516b4a43516c6a4c545175611de08601527f4e5445794c4441754e6a63794c546b754d7a45794c5441754d7a59744d544d75611e008601527f4d6a6b324c544d754d7a4579624441734d474d744d7934354f4451744d693435611e208601527f4e5449744e6934304d4467744e7934794d6a51744e7934774f4330784d533433611e408601527f4d7a5a6a4c5441754d5451304c5441754f5445794c5441754d6a45324c544575611e608601527f4f4449304c5441754d546b794c5449754e7a594e43676b4a43516b4a43574d74611e808601527f4d5334314d5449734d4334324d6a51744d7934774e7a49734d5334774f433030611ea08601527f4c6a59344c4445754d7a4a6a4c5455754d4445324c4441754e7a51304c544577611ec08601527f4c6a49354e6930774c6a4d344e4330784e4334324f4467744d7934324d6a5273611ee08601527f4d437777597930304c6a4d354d69307a4c6a49304c5463754d4467744e793435611f008601527f4f5449744e7934344d6a51744d544d754d44413444516f4a43516b4a43516c6a611f208601527f4c5441754d7a67304c5449754e4463794c5441754d6a67344c5455754d444532611f408601527f4c4441754d7a45794c5463754e446734597930784c6a55344e4377774c6a6379611f608601527f4c544d754d6a59304c4445754d6930304c6a6b324f4377784c6a51324e474d74611f808601527f4e4334344d6a51734d4334334d6930354c6a6b784d6930774c6a4d344e433078611fa08601527f4e4334784d7a59744d7934304f41304b43516b4a43516b4a597930304c6a4979611fc08601527f4e43307a4c6a45794c5459754f4445324c5463754e6a67744e7934314d7a5974611fe08601527f4d5449754e544130637a41754d7a67304c546b754f5445794c444d754e4467746120008601527f4d5451754d544d32614441754d444930624445774c6a6b354d6930784e4334356120208601527f4d44526a4d7934784d6930304c6a49304f4377334c6a59344c5459754f4445326120408601527f4c4445794c6a51344c5463754e544d3244516f4a43516b4a43516c444d5459336120608601527f4c6a41344e5377794e6a49754d4455324c4445334d6934784e7a4d734d6a597a6120808601527f4c6a45324c4445334e6934304d6a45734d6a59324c6a4934544445334e6934306120a08601527f4d6a45734d6a59324c6a4934544445334e6934304d6a45734d6a59324c6a49346120c08601527f544445334e6934304d6a45734d6a59324c6a49346569424e4d5463794c6a59316120e08601527f4d7977794f4441754e44593044516f4a43516b4a43516c6a4c5441754d6a67346121008601527f4c5445754f5451304c5445754d7a49744d7934334e6a67744d6934354e7a59746121208601527f4e4334354f544a324c5441754d444930597930784c6a59344c5445754d6a49306121408601527f4c544d754e7a49744d5334324e5459744e5334324f4467744d53347a4e6a686a6121608601527f4c5445754f5459344c4441754d6a67344c544d754e7a6b794c4445754d7a49746121808601527f4e5334774d5459734d6934354e7a594e43676b4a43516b4a435777744d5441756121a08601527f4f546b794c4445304c6a6734614441754d444930597930784c6a49304f4377786121c08601527f4c6a59344c5445754e6a67734d7934334e4451744d53347a4f5449734e5334326121e08601527f4f44686a4d4334794f4467734d5334354e4451734d53347a4d69777a4c6a63326122008601527f4f4377794c6a6b334e6977304c6a6b354d67304b43516b4a43516b4a597a45756122208601527f4e6a67734d5334794e4467734d7934334e4451734d5334324f4377314c6a59346122408601527f4f4377784c6a4d354d6e4d7a4c6a63324f4330784c6a4d794c4451754f546b796122608601527f4c5449754f546332624441754d4449304c4442734d5441754f546b794c5445306122808601527f4c6a6734614330774c6a41794e41304b43516b4a43516b4a517a45334d6934306122a08601527f4f4455734d6a67304c6a51334d6977784e7a49754f5451784c4449344d6934306122c08601527f4d4467734d5463794c6a59314d7977794f4441754e445930544445334d6934326122e08601527f4e544d734d6a67774c6a51324e4577784e7a49754e6a557a4c4449344d4334306123008601527f4e6a5236494530794d4445754d446b794c444d774d5334304d54594e43676b4a6123208601527f43516b4a43574d744d43347a4d5449744d6934784d7a59744d5334304e4330306123408601527f4c6a45314d69307a4c6a49324e4330314c6a51354e6e59774c6a41794e474d746123608601527f4d5334344e4467744d53347a4e6a67744e4334784d4451744d5334344e4467746123808601527f4e6934794e4330784c6a557a4e6d4d744d6934784e6977774c6a4d7a4e6930306123a08601527f4c6a45314d6977784c6a51304c5455754e5449734d7934794e6a514e43676b4a6123c08601527f43516b4a435777744d5445754e6a45324c4445314c6a63304e474d744d53347a6123e08601527f4e4451734d5334344e4467744d5334344d6a51734e4334784d4451744d5334316124008601527f4d5449734e6934794e474d774c6a4d784d6977794c6a457a4e6977784c6a51306124208601527f4c4451754d5449344c444d754d6a59304c4455754e446b32624441734d41304b6124408601527f43516b4a43516b4a597a45754f4451344c4445754d7a59344c4451754d5441306124608601527f4c4445754f4451344c4459754d6a51734d5334314d7a5a6a4d6934784e6930776124808601527f4c6a4d784d6977304c6a45314d6930784c6a51304c4455754e5449744d7934796124a08601527f4e6a52734d437777624445784c6a59784e6930784e5334334e44514e43676b4a6124c08601527f43516b4a43554d794d4441754f5451344c444d774e5334344d7a49734d6a41786124e08601527f4c6a51794f43777a4d444d754e5463324c4449774d5334774f5449734d7a41786125008601527f4c6a51784e6b77794d4445754d446b794c444d774d5334304d545a4d4d6a41786125208601527f4c6a41354d69777a4d4445754e4445326569424e4d6a497a4c6a49304e43777a6125408601527f4d6a49754d54557944516f4a43516b4a43516c6a4c5441754d6a51744d5334326125608601527f4f4330784c6a45774e43307a4c6a49304c5449754e5449744e4334794e7a4a326125808601527f4d4334774d6a526a4c5445754e4451744d5334774e5459744d7934784f5449746125a08601527f4d5334304e4330304c6a67304f4330784c6a45334e6d4d744d5334324e5459736125c08601527f4d4334794e43307a4c6a49784e6977784c6a45774e4330304c6a49304f4377796125e08601527f4c6a55304e4777744d4334784f5449734d4334794e41304b43516b4a43516b4a6126008601527f624330354c6a67344f4377784d7934304d545a324d4334774d6a526a4c5445756126208601527f4d4455324c4445754e4445324c5445754e4445324c444d754d5459344c5445756126408601527f4d5455794c4451754f444930597a41754d6a59304c4445754e6a67734d5334786126608601527f4d6a67734d7934794e4377794c6a55304e4377304c6a49334d6d77774c44414e6126808601527f43676b4a43516b4a43574d784c6a51784e6977784c6a41314e69777a4c6a45326126a08601527f4f4377784c6a51784e6977304c6a67304f4377784c6a45314d6d4d784c6a59346126c08601527f4c5441754d6a59304c444d754d6a51744d5334784d6a67734e4334794e7a49746126e08601527f4d6934314e44524d4d6a49794c6a45304d53777a4d6a634e43676b4a43516b4a6127008601527f43554d794d6a4d754d5449304c444d794e5334314f4451734d6a497a4c6a55776127208601527f4f43777a4d6a4d754f444d794c4449794d7934794e4451734d7a49794c6a45316127408601527f4d6e6f694c7a344e43676b4a43516b384c32632b44516f4a43516b384c32632b6127608601527f44516f4a435477765a7a344e43676b384c32632b44516f384c32632b44516f386127808601526d130cd38c969e8d1390d9cf4f488b60921b6127a086015251975197988998929592918291908a015e87019060208201905f8252519283915e01602001905f8252518092825e01905f8252518092825e015f815203601f19810182526136469082613793565b604051613654819282613769565b0390f35b634e487b7160e01b5f52602160045260245ffd5b61367861011c916138a1565b9261010d565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b3461367e57602036600319011261367e5761365460206136f860256136c56004356001600160a01b0316613834565b60405164f09fa49d2d60d81b858201528151909485928291018484015e81015f838201520301601f198101835282613793565b60405191829182613769565b3461367e57602036600319011261367e5761365460206136f860286137336004356001600160a01b03166137b5565b60405193849167021b7b6b830b1ba160c51b828401528051918291018484015e81015f838201520301601f198101835282613793565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761368257604052565b6001600160a01b03811615613810576137d9906306fdde0360045260045f52613d42565b908151156137e357565b90506040516137f3604082613793565b600d81526c3ab735b737bbb7103a37b5b2b760991b602082015290565b5060405161381f604082613793565b600581526422ba3432b960d91b602082015290565b8060601b1561387f57613852906395d89b4160045260045f52613d42565b9081511561385c57565b905060405161386c604082613793565b60038152623f3f3f60e81b602082015290565b5060405161388e604082613793565b600381526208aa8960eb1b602082015290565b9060405191608083016040526f30313233343536373839616263646566600f526002830190602882525f604a85015260601b60015f5b8080018601602284831a600f811651602384015360041c5191015301906014821461390557906001906138d7565b50506130786002825101915282528160228101907f8888888888888888888888888888888888888888888888888888888888888880602883201660015f5b601160f31b83821a02818001520190601482146139635790600190613943565b505060429180517f2020202020202020202020202020202020202020202020202020202020202020815f511660011c161890520180517f2020202020202020202020202020202020202020202020202020202020202020816020511660011c16189052565b600881101561365857806139ff57506040516139e5604082613793565b600a81526913db99481cd958dbdb9960b21b602082015290565b60018103613a355750604051613a16604082613793565b600f81526e4669667465656e207365636f6e647360881b602082015290565b60028103613a665750604051613a4c604082613793565b600a8152694f6e65206d696e75746560b01b602082015290565b60038103613a985750604051613a7d604082613793565b600b81526a54656e206d696e7574657360a81b602082015290565b60048103613adc5750604051613aaf604082613793565b601981527f4f6e6520686f757220616e642066697665206d696e7574657300000000000000602082015290565b60058103613b0a5750604051613af3604082613793565b60078152664f6e652064617960c81b602082015290565b60068103613b4e5750604051613b21604082613793565b601781527f536576656e206461797320616e64206f6e6520686f7572000000000000000000602082015290565b600703613b7e57604051613b63604082613793565b600b81526a546869727479206461797360a81b602082015290565b60405162461bcd60e51b8152602060048201526014602482015273155b9adb9bdddb881c995cd95d081c195c9a5bd960621b6044820152606490fd5b60028110156136585780613bf15750604051613bd7604082613793565b600a81526926bab63a34b1b430b4b760b11b602082015290565b600103613c2457604051613c06604082613793565b600e81526d436861696e2d737065636966696360901b602082015290565b60405162461bcd60e51b815260206004820152600d60248201526c556e6b6e6f776e2073636f706560981b6044820152606490fd5b90604051600a608082019360a083016040525f8552935b5f190193603082820601855304928315613c8c57600a90613c70565b809350608091030191601f1901918252565b6002613d3f91600d602094604051613cb7604082613793565b6001815260308780830193600b60fa1b8552604051998a976f3d913a3930b4ba2fba3cb832911d101160811b828a0152805191829101858a015e8701906c111610113b30b63ab2911d101160991b84830152805192839101603d83015e01019061227d60f01b84830152518092600f83015e01015f838201520301601f198101835282613793565b90565b60205f60609282825191620186a0fa15613d3f57506040518060200160403d1015613da7575b5f60203d806103e8106103e8821802188083853e840101535b80515f1a15613d9257600101613d81565b818103601f190182525f815260200160405290565b5f513d601f1901811115613dbc575b50613d68565b602081843e82513d829003601f1901811115613dd85750613db6565b90604092826020936103e8106103e88218021892839283875201903e82015f6020820152016040529056fea164736f6c634300081c000a", - "sourceMap": "1085:8212:36:-:0;;;;;;399:6063:65;;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2214:262:48;8755:335:35;-1:-1:-1;8755:335:35;;;-1:-1:-1;8755:335:35;-1:-1:-1;;;;;1085:8212:36;;3014:31:35;3010:104;;-1:-1:-1;9726:9:35;;;;8755:335;9726:9;1085:8212:36;9691:55:35;1085:8212:36;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;-1:-1:-1;1085:8212:36;;;;;;3237:647:35;;;;3433:10;3418:25;;3472:10;3457:25;;3513:12;3496:29;;3237:647;3894:44;;4029:38;;2258:13:48;2238:33;;2309:42;2258:13;1871:575:54;1742:710;1871:575;;;;;;;;;;;;;;;;;;;;;;;;;;1742:710;;2309:42:48;2281:70;;1085:8212:36;;2382:22:48;;;;-1:-1:-1;;;;;2382:22:48;;;;;;;;;;;;;;;-1:-1:-1;2382:22:48;;;;;2361:43;;5767:105;;;;2414:55;;2214:262::o;2382:22::-;;:::i;:::-;;:::i;3237:647:35:-;3722:30;3707:45;;3781:29;3766:44;;3841:32;3824:49;;3237:647;;1085:8212:36;;;3010:104:35;3068:35;;;-1:-1:-1;3068:35:35;;-1:-1:-1;3068:35:35", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x6080806040526004361015610012575f80fd5b5f3560e01c908162ad800c1461312757508062fdd58e146130eb57806301ffc9a7146130a757806303417d721461309057806306659b7f1461307b57806306e8cc181461306657806306fdde031461303c57806308e600ee14613027578063095bcdb614612f4e5780630a133cf214612f395780630d57fec914612f245780630f5eeadf14612f0f578063107d4ee414612ec857806310d8267214612dff57806312a1e6ea14612dea57806312d4888514612d7a57806312f9d21e14612d6557806313589bfe14612d50578063138cd81914612d2a578063144bd5b514612cc85780631486590714612cb3578063176f405a14612c525780631b98b63f14612c3d5780631bb81a8114612c285780631d474b1414612c135780631e2eaeaf14612bf7578063200f0c4d14612b8f578063206620a114612b3f57806325d7776b14612b155780632737edb914612afe57806327c777a914612a815780632a9c4d0d146129515780632acd5dc31461293c5780632c4bbd17146129255780632e3ff2f7146128c15780632e4d55cc146128ac57806331bbae3e1461286e57806332e2a80314612859578063341056c5146128445780633644e5151461282a578063393c33e21461272f5780633f458a19146127185780633f47e662146126fc5780634073c0cc146126d9578063409b3a7e146126c4578063414fd914146126af578063418a23f51461269a578063426a849314612636578063440a0ec3146125ed57806344b97d78146125ba5780634ad5205e146125a35780634c1024161461258c5780634d585fbf146125755780634e41a1fb146125015780634e55a548146124ea578063507cb46f1461249057806353e5006714612350578063548439e114612339578063558a7297146122c4578063577cdc64146122ad5780635920212814612296578063598af9e7146122605780635ac2ccf1146122495780635b15bfd9146121dd5780635b6016ec146121765780635d76a382146121615780635e6c91ff1461214c57806362a420bb1461211557806363f5b1ad146120d8578063648705561461209a578063671b3bd61461202a5780636a9a4c4414611f895780636af2791b14611f745780637003019014611f125780637112406d14611dc857806371f5012714611db1578063721f629214611d765780637423eb3c14611c9157806376d531d414611c7c5780638340f54914611c41578063843719f014611bf15780638678555914611bdc57806388d247c414611bc557806388da84d414611bae57806389ce066114611b59578063935ed2ba14611b1e5780639730f4fd14611b07578063996d3aac14611adc57806399cf8b9b146119e85780639be5f537146119d1578063a23941471461191c578063a4c7bd93146118e2578063aa41c87e14611895578063aa8b845d14611863578063b20abc481461184e578063b24849b714611824578063b3244389146117ee578063b4039fc2146117c1578063b54baefd1461178c578063b602ae021461174a578063b6363cf214611705578063b7ace047146116c0578063b8a5bbad14611682578063bc95bd7a14611637578063c4d195e8146115f0578063c8091041146115b4578063c87b56dd14611432578063ca6cc39f146113e5578063d204f11e1461139a578063d2a1805f14611379578063d34ddc8214611362578063d350188c1461134d578063d3917f3c146112ff578063d921f36a146112b8578063da15ee7f1461112f578063da2f268b146110e6578063db04bc72146110d1578063dbd035ff14611059578063dd589cfc14610fdc578063e0565c4914610f8e578063e05c6e7d14610f41578063e6c5b65414610ee6578063e8672f9314610ed1578063ea14532e14610e6a578063eaa6748314610e33578063eb19600814610df9578063eb35a6d214610d89578063eb43182114610d4d578063ebcbd7b514610cf6578063ecaca40e14610c8d578063eea77a7814610c18578063eed634ad14610c03578063eed9357214610bb8578063f135baaa14610b9c578063f23d923d14610b2e578063f2f0def114610ae9578063f340fa0114610ab8578063f44a345214610a5a578063f745381c14610a24578063f95d3d16146109ea578063fa1c55001461098a578063fb75fb6914610924578063fcfe431a146108c1578063fdc060e7146107d75763fe99049a14610655575f80fd5b60803660031901126107d3576106696131bd565b6106716131ff565b6044359160643561068d60016001605c1b038560a01c16614862565b9260018060a01b0383169260018060a01b038216945f60208160a460405194828052601c8601948591631a808f91885233868901528b60408901528c60608901528d60808901528a60a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a82293940603452602852336014526034602020541561077f575b84601452604060142080548084116107725783900390556028528360145260406014208054908282019182106107655755335f526020525f516020615f655f395f51905f5260405fa45f603452602060405160018152f35b6389560ca15f526004601cfd5b63f4d678b85f526004601cfd5b845f5260545f20805460018101610798575b505061070d565b8084116107ab5783900390555f80610791565b63deda90305f526004601cfd5b3d1517156107cb5763014c931060a49252fd5b3d5f803e3d5ffd5b5f80fd5b346107d3576107e536613408565b608081015f806107f5838561377f565b905f915b80831061089c5750505061088a576108796035928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b809335613fcf565b614012565b61377f565b9061527d565b602060405160018152f35b634e487b715f5260116020526024601cfd5b90919260019060206108af8685876138cd565b013580960195861017930191906107f9565b346107d357602061091a601760356108d8366133d4565b6101806108f96108f36108ed83850185613c23565b90614bee565b83615c0a565b9290919361090b610160820135613c58565b926109146137c8565b95614d26565b6040519015158152f35b346107d357602061091a603461093936613249565b61095b61095361094d610100840184613898565b90614e53565b826030615651565b9061010061096b3615848461532d565b916109796001361517613cdd565b926109826137c8565b946021615e45565b346107d357602061091a603461099f3661327d565b6109bb6109b36108ed610100840184613c23565b826031615651565b906109c960e0820135613c58565b6101006109d96002361517613cdd565b926109e26137c8565b946026615e45565b346107d357602061091a60356109ff36613215565b610120610a10604036151783615bc9565b92919390610a1c6137c8565b946024615e45565b346107d357602061091a60176034610a3b3661333c565b610a4481615571565b90610100610a506137c8565b93361592806152df565b346107d357602061091a6035610a6f36613249565b610a8a610a826108ed60e0840184613c23565b82602b615651565b9060e0610a993615848461532d565b91610aa76001361517613cdd565b92610ab06137c8565b94601f615e45565b60203660031901126107d3576020610ad6610ad16131bd565b614320565b610ae134823361437c565b604051908152f35b346107d357602061091a60176035610b00366133a0565b610b19610b1361094d60e0840184613898565b82615834565b9060e0610b246137c8565b93361592806151a7565b346107d357602061091a6035610b4336613215565b3615610100610b73610b6b60408417859060e0910160c08101355f52013560205260405f2090565b846030615651565b92610b8b6002610b8485878561532d565b9417613cdd565b92610b946137c8565b946023615e45565b346107d35760203660031901126107d3576004355c5f5260205ff35b346107d357602061091a6035610bcd36613215565b610be7610be16108ed610140840184613c23565b82615b8a565b9091610140610bfa610120830135613c58565b916109e26137c8565b346107d357602061091a6034610bcd36613215565b346107d357602061091a6035610c2d366133d4565b361590610c5b610c5360808417839060e0910160c08101355f52013560205260405f2090565b826032615651565b91610140610c6a82858561532d565b92610c7e6002610b84610120840135613c58565b93610c876137c8565b95614239565b346107d35760a03660031901126107d3576020610ca86131bd565b610cd9610cc4610cb66131ff565b610cbf846148dc565b6142e2565b91610ccd6139d1565b8260443591339061487c565b610ce1613baa565b610ae1610258361517608435606435336141b4565b346107d357602061091a6034610d0b366134d1565b610180610d326108f360c0361517849060e0910160c08101355f52013560205260405f2090565b92909193610d44610160820135613c58565b92610c876137c8565b346107d357602061091a6034610d623661327d565b610120610d7d610d7761094d83850185613898565b83615baa565b929193906109826137c8565b346107d35760203660031901126107d3576020600435610ae162ffffff77278d00094890015180000f3c00025800003c00000f000001601860078560fc1c16021c1642018281610df38195339190604051926014526341d0e04b5f526034526038601c2091604052565b556148f6565b346107d357602061091a6035610e0e3661333c565b610100610e1a826155cc565b919092610e2a6002361517613cdd565b92610a1c6137c8565b346107d357602061091a6034610e48366133a0565b610e5b610a8261094d60e0840184613898565b9060e061096b3615848461532d565b346107d357602061091a60176034610e813661333c565b610e95610c5361094d610140840184613898565b90610ea23615838361532d565b90610140610eb4610120830135613c58565b91610ec26002361517613cdd565b93610ecb6137c8565b956151a7565b346107d357602061091a60346109ff36613215565b346107d357602061091a6034610efb3661327d565b610f20610f188260e09060c08101355f52013560205260405f2090565b82602f615651565b90361560c0610f3160028317613cdd565b92610f3a6137c8565b9480614239565b346107d357602061091a6035610f563661333c565b610f5f81615250565b90610f6d60e0820135613c58565b610100610f7d6002361517613cdd565b92610f866137c8565b946025615e45565b346107d357602061091a6034610fa336613215565b6101003615610fd1610fcb60408317859060e0910160c08101355f52013560205260405f2090565b84615b66565b929093610f3a6137c8565b346107d357602061091a610fef3661343b565b6040515f516020615fa55f395f51905f528152338482015233604082015261103f8260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b608061104d60a084016137b4565b92013591336034615c31565b346107d35760203660031901126107d3576004356001600160401b0381116107d357611089903690600401613370565b6040519160408360208152836020820152019160051b8301916020806040850193925b83355481520191019084838210156110c85750602080916110ac565b60408186030190f35b346107d357602061091a6034610a6f36613249565b346107d35760403660031901126107d35760206004356111046131ff565b906040519183526303f37b1a600c52806040526001603760282054918360405260ff161b1615158152f35b6101603660031901126107d3576111446131bd565b6024356001600160401b0381116107d35761116390369060040161346e565b61116e9291926131d3565b5060a4359060088210156107d357600260c43510156107d35760e43591610104359460038610156107d357610124356001600160401b0381116107d3576111b990369060040161330f565b9661014435906001600160401b0382116107d357869588926111df90369060040161330f565b6111ed8584899e949e614984565b96819f939183839b949b0160051b90602001209561120b8b84614a8c565b83839992993615976001891792611221946143c6565b9f9091604051925f5260205260405260605f206080890152604052601f19916002811460061b90600114600b020190801515010160f301169060071b01610180019060c01761126f94613e72565b611279948a614b38565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff16916112a6936141b4565b6040516112b48192826135c0565b0390f35b346107d357602061091a601760356112cf366132db565b6101806112e46108f361094d83850185613898565b929091936112f6610160820135613c58565b92610ecb6137c8565b346107d357602061091a6035611314366133d4565b61014061134161133b6080361517849060e0910160c08101355f52013560205260405f2090565b83615bd9565b92919390610b946137c8565b346107d357602061091a6034610e0e3661333c565b346107d357602061091a60176034610b00366133a0565b346107d357602061091a603561138e366132db565b610140610a10826155f4565b346107d357602061091a601760346113b13661343b565b6113c4610a8261094d60a0840184613898565b90361560a06113d560018317613cdd565b926113de6137c8565b94806151a7565b346107d357602061091a60356113fa36613215565b61140381615250565b9061141160e0820135613c58565b6101006114216002361517613cdd565b9261142a6137c8565b946022615e45565b346107d35760203660031901126107d357604051600435608082016001600160401b038111838210176115a05760409081525f60208401818152918401818152606085019182526001600160a01b03848116865261149c60a086901c60016001605c1b0316614862565b16835260078460fc1c16600881101561158c5781528360ff1c90600282101561158c5790825260405163d637ca8d60e01b815294516001600160a01b03908116600487015292519092166024850152905161150b91906115009060448601906135a6565b5160648401906135b3565b60848201525f8160a4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575b5060405191829182613193565b61157b91503d805f833e61157381836135f9565b810190613635565b82611552565b6040513d5f823e3d90fd5b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b60403660031901126107d3576004356001600160401b0381116107d3576115e261087f91369060040161346e565b6115ea6131ff565b916138dd565b346107d357602061091a601760356116073661327d565b61162161161b6108ed610100840184613c23565b82615b66565b9061010061162d6137c8565b9336159280614d26565b346107d357602061091a6017603561164e366133a0565b611661610f186108ed60c0840184613c23565b90361560c061167260028317613cdd565b9261167b6137c8565b9480614d26565b346107d357602061091a60176034611699366133a0565b6116a281615516565b90361560a06116b082613cdd565b926116b96137c8565b94806152df565b346107d357602061091a601760346116d736613249565b6116f4610f188260e09060c08101355f52013560205260405f2090565b90361560c06116b060028317613cdd565b346107d35760403660031901126107d35761171e6131bd565b6117266131ff565b9067edcaa89a822939406020526014525f5260206034600c20546040519015158152f35b346107d357602061091a603561175f36613249565b361561176d81836028615651565b9061177781613cdd565b916117806137c8565b9360a083179180614239565b346107d357602061091a601760346117a336613249565b6117b6610b136108ed60e0840184613c23565b9060e061162d6137c8565b346107d357602061091a60346117d63661327d565b60e06117e182615524565b919092610e2a3615613cdd565b346107d357602061091a603461180336613215565b61014061181861133b6108ed83850185613c23565b92919390610ab06137c8565b346107d357602061091a60346118393661333c565b610120611818610d776108ed83850185613c23565b346107d357602061091a60356118393661333c565b602061187c610ae1611874366132b1565b939091614320565b9261188834853361437c565b61025836151791336141b4565b346107d357602061091a60346118aa3661333c565b6118be610be161094d610140840184613898565b90916101406118d1610120830135613c58565b916118da6137c8565b946027615e45565b346107d357602061091a60346118f7366132db565b61190081615542565b9091610140611913610120830135613c58565b91610f866137c8565b346107d35761192a36613408565b608081015f8061193a838561377f565b905f915b8083106119ac5750505061088a576108796034928461087461087f9660e06040515f516020615fa55f395f51905f52815233602082015233604082015260208301976060898184013760c0820152209560608201359661086f61086760016001605c1b038a60a01c16614862565b90919260019060206119bf8685876138cd565b0135809601958610179301919061193e565b346107d357602061091a6017603461164e366133a0565b6101203660031901126107d3576119fd6131bd565b506024356001600160401b0381116107d357611a1d90369060040161346e565b611a256131d3565b50600860a43510156107d357600260c43510156107d35760e435916001600160a01b03831683036107d35761010435906001600160401b0382116107d3576112b493611aca611a7b611ad094369060040161330f565b959093611a89848383614984565b9592611ab660c09b9399929b361592611aa460848517613d1e565b611aae8d83614a8c565b949094613db8565b608084015260071b61022001921790613e72565b86614b38565b604051918291826135c0565b346107d357602061091a60176034611af33661327d565b611afc81615774565b9060e0610a506137c8565b346107d357602061091a601760346116073661327d565b346107d357602061091a60176034611b3536613539565b611b48610f1861094d60c0840184613898565b90361560c06113d560028317613cdd565b346107d357602061091a6035611b6e366133d4565b611b92610be16080361517839060e0910160c08101355f52013560205260405f2090565b9091610140611ba5610120830135613c58565b9161142a6137c8565b346107d357602061091a60176035610e813661333c565b346107d357602061091a60176035611b3536613539565b346107d357602061091a603461175f36613249565b346107d357602061091a60176035611c08366132db565b611c118161559c565b9091610140611c24610120830135613c58565b91611c326002361517613cdd565b93611c3b6137c8565b956152df565b346107d3576020611c63611c74611c573661356c565b919390610cbf856148dc565b8093611c6d6139d1565b339061487c565b610ae1613baa565b346107d357602061091a6035610efb3661327d565b346107d3575f3660031901126107d357323303611d67577f00000000000000000000000000000000000000000000000000000000000000008015611d5c575b611d4d575f8080807f0000000000000000000000000000000000000000000000000000000000000000600a5a04fa3d15611d48573d611d0e8161361a565b90611d1c60405192836135f9565b81525f60203d92013e5b15611d39575f805460ff19166001179055005b6370a4078f60e01b5f5260045ffd5b611d26565b630f45b98b60e41b5f5260045ffd5b5060ff5f5416611cd0565b63096650c560e21b5f5260045ffd5b346107d357602061091a60176035611d8d36613539565b611da0610a826108ed60a0840184613c23565b90361560a061167260018317613cdd565b346107d357602061091a60176035611699366133a0565b346107d357611dd63661349e565b60608101611de48183613898565b8060069492941b81810460401482151715611efe57611e0290614bad565b935f915f5b818110611e955750505061088a57611e4d81611e2d856020611e52975191012082615373565b611e476039611e3c8785613898565b6020860135916140ed565b90614012565b613898565b5f5b818110611e6657602060405160018152f35b80611e8f6034611e796001948688614192565b611e86602082018261377f565b9091359161527d565b01611e54565b611ea0818385614192565b5f90611eaf602082018261377f565b905f915b808310611ed957505050906040839260019460061b8b0190356020820152015201611e07565b9091976001906020611eec8b85876138cd565b01358096019586101798019190611eb3565b634e487b7160e01b5f52601160045260245ffd5b346107d35760203660031901126107d357600435611f4981339190604051926014526341d0e04b5f526034526038601c2091604052565b805415611f5f57905f61087f92553615906148f6565b5063e632dbad5f52336020526040526044601cfd5b346107d357602061091a6034610c2d366133d4565b346107d3576080611f9936613408565b611fed611fe460608301611fde84611fc6611fb4848361377f565b6040519060061b809282372082615373565b611e47611fd3858461377f565b60208501359161406f565b8361377f565b939092016137b4565b905f5b83811061200257602060405160018152f35b8061202361201360019387866138cd565b6020810135903586336035615c31565b5001611ff0565b346107d35760c03660031901126107d3576120436131bd565b61204b6131ff565b906044359160088310156107d3576064359160028310156107d357612087611c74926020956120786131e9565b95612082856148dc565b61434b565b80936120916139d1565b6084359261487c565b346107d357602061091a601760356120b136613505565b6101806120bd82615626565b929091936120cf610160820135613c58565b92611c3b6137c8565b346107d357602061091a60346120ed3661333c565b361560e061210060408317846028615651565b92610b8b61210f84868461532d565b93613cdd565b346107d357602061091a6017603561212c36613249565b61214061161b61094d610100840184613898565b90610100610b246137c8565b346107d357602061091a6034611b6e366133d4565b346107d357602061091a60356118aa3661333c565b60603660031901126107d3576004356001600160401b0381116107d3576121a190369060040161346e565b602435906001600160401b0382116107d3576020926121d46121ca61091a94369060040161346e565b92909333916138dd565b60443591614159565b346107d35760203660031901126107d357608060043561224761220b60016001605c1b038360a01c16614862565b604080516001600160a01b038086168252909216602083015290929061223a90840160fc83901c6007166135a6565b606083019060ff1c6135b3565bf35b346107d357602061091a601760346108d8366133d4565b346107d35761226e3661356c565b9167edcaa89a822939406034526028526014525f52602060545f20545f603452604051908152f35b346107d357602061091a60176034611d8d36613539565b346107d357602061091a6017603461212c36613249565b60403660031901126107d3576122d86131bd565b602435908115158092036107d35767edcaa89a82293940602052336014525f52806034600c2055602052600c5160601c337fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267602080a3602060405160018152f35b346107d357602061091a601760356113b13661343b565b346107d3576101803660031901126107d35761236a6131bd565b6123726131d3565b9061237b6131e9565b5060c43560088110156107d357600260e43510156107d3576101043590610124359060038210156107d357610144356001600160401b0381116107d3576123c690369060040161330f565b94909261016435956001600160401b0387116107d35787966123ec90369060040161330f565b9890916123f885613d53565b839d93969297919436159b61240e938d936143c6565b9990604051905f52866020528b60405260605f20610100860152604052601f1961016085015161017f0116906101401761244794613e72565b61245093613eca565b60180277278d00094890015180000f3c00025800003c00000f000001901c62ffffff169161247d936141b4565b612485613baa565b604051908152602090f35b60803660031901126107d3576124a46131bd565b60243560088110156107d3576044359060028210156107d357606435916001600160a01b03831683036107d357602093610ae1926124e1926142b1565b9182349161437c565b346107d357602061091a601760356117a336613249565b346107d35760203660031901126107d357604051634e41a1fb60e01b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f575060405191829182613193565b346107d357602061091a601760346120b136613505565b346107d357602061091a60176034611c08366132db565b346107d357602061091a60176035611af33661327d565b346107d357602061091a60346125cf3661333c565b6125d881615774565b9060e06125e36137c8565b9336159280614239565b346107d3576040612627612600366132b1565b91605892601c926040519260148401526368a30dd083526034830152605482015201205490565b81519042811182526020820152f35b61263f366132b1565b909167edcaa89a8229394060345233602852601452815f528060545f20555f5260205160601c337fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a760205fa45f603452602060405160018152f35b346107d357602061091a6035610d0b366134d1565b346107d357602061091a603461138e366132db565b346107d357602061091a6034610f563661333c565b346107d35760603660031901126107d35761087f604435602435600435336141b4565b346107d35760203660031901126107d357602060405160128152f35b346107d357602061091a60176035610a3b3661333c565b346107d35761273d3661349e565b6060810161274b8183613898565b8060069492941b81810460401482151715611efe5761276990614bad565b935f915f5b8181106127c15750505061088a57611e4d81611e2d856020612794975191012082615373565b5f5b8181106127a857602060405160018152f35b806127bb6035611e796001948688614192565b01612796565b6127cc818385614192565b5f906127db602082018261377f565b905f915b80831061280557505050906040839260019460061b8b019035602082015201520161276e565b90919760019060206128188b85876138cd565b013580960195861017980191906127df565b346107d3575f3660031901126107d3576020610ae16137c8565b346107d357602061091a60356118f7366132db565b346107d357602061091a60346113fa36613215565b346107d35760403660031901126107d3576004356001600160401b0381116107d35761091a6128a3602092369060040161346e565b60243591614159565b346107d357602061091a60356125cf3661333c565b346107d35760603660031901126107d3576004356128dd6131ff565b60408051336014526341d0e04b5f5260348490526038601c209152544281119015176129145761091a906020926044359133613697565b50639287bcb05f526020526024601cfd5b346107d357602061091a601760346112cf366132db565b346107d357602061091a603561099f3661327d565b346107d35760403660031901126107d35761296a6131bd565b6024356001600160401b0381116107d35761298990369060040161330f565b6001600160a01b03909216916055811491338414843b1515179183612a35575b50501715612a25576129ba81613ef9565b806744036fc77deaed23605c1b1791825480612a1157508060209355815f5282527fc54dcaa67a8fd7b4a9aa6fd57351934c792613d5ec1acbd65274270e6de8f7e460405fa16001600160601b0360405191168152f35b8263c18b0e975f526020526040526044601cfd5b634e7f492b5f526020526024601cfd5b809192935015612a6d57808260405137604051206001600160a01b031683146001600160f81b031991358216909114169083806129a9565b634e487b7160e01b5f52603260045260245ffd5b346107d357602061091a612a943661343b565b6040515f516020615fa55f395f51905f5281523384820152336040820152612ae48260e0868201936080856060830137209260608201359361086f61086760016001605c1b038760a01c16614862565b6080612af260a084016137b4565b92013591336035615c31565b346107d357602061091a601760356116d736613249565b346107d357602061091a6035612b2a3661333c565b610140610d7d61133b61094d83850185613898565b346107d357602061091a6035612b5436613249565b612b686109b361094d610100840184613898565b90612b7660e0820135613c58565b610100612b866002361517613cdd565b926118da6137c8565b346107d3576080612b9f36613408565b612bba611fe460608301611fde84611fc6611fb4848361377f565b905f5b838110612bcf57602060405160018152f35b80612bf0612be060019387866138cd565b6020810135903586336034615c31565b5001612bbd565b346107d35760203660031901126107d357600435545f5260205ff35b346107d357602061091a6034611314366133d4565b346107d357602061091a60356120ed3661333c565b346107d357602061091a6035610fa336613215565b346107d357602061091a60176034612c6936613215565b612c7d610c536108ed610140840184613c23565b90612c8a3615838361532d565b90610140612c9c610120830135613c58565b91612caa6002361517613cdd565b936109146137c8565b346107d357602061091a603561180336613215565b346107d35760403660031901126107d357612d06612ce46131bd565b602435909190604051926014526341d0e04b5f526034526038601c2091604052565b546040518115154283116002030291600383101561158c5760409282526020820152f35b346107d357602061091a6035612d3f366132db565b610120611341604036151783615bc9565b346107d357602061091a6035610e48366133a0565b346107d357602061091a6034610b4336613215565b346107d35760203660031901126107d3576004356001600160401b0381116107d357612daa903690600401613370565b90612dbc612db733613ef9565b613fa8565b809160051b01905b818110612dd657602060405160018152f35b602090612de4338235613fcf565b01612dc4565b346107d357602061091a6034612b2a3661333c565b346107d3576101403660031901126107d357612e196131bd565b612e216131d3565b50612e2a6131e9565b50600860c43510156107d357600260e43510156107d35761010435906001600160a01b03821682036107d357610124356001600160401b0381116107d357602092612ead92612e80611c7493369060040161330f565b929091612ec3361594612e9560a48717613d1e565b94612e9f84613d53565b9b839c9a939991929a613db8565b6101008201526101406102008317921790613e72565b613eca565b346107d357602061091a6034612edd3661327d565b612ef16109536108ed610100840184613c23565b90610100612f013615848461532d565b91610aa76002361517613cdd565b346107d357602061091a6035612edd3661327d565b346107d357602061091a6034612d3f366132db565b346107d357602061091a603561093936613249565b612f57366132b1565b612f6f60016001605c1b038360a09594951c16614862565b9160018060a01b038116925f60208160a460405194828052601c8601948591631a808f91885233868901523360408901528a60608901528b60808901528960a08901525af15f5163e57f706f60e01b016107b85750505067edcaa89a8229394060205233601452835f5260405f208054808411610772578390039055601452825f5260405f208054908282019182106107655755335f52602052335f516020615f655f395f51905f5260405fa4602060405160018152f35b346107d357602061091a6035610d623661327d565b346107d3575f3660031901126107d357602080526b0b54686520436f6d70616374604b5260606020f35b346107d357602061091a60356117d63661327d565b346107d357602061091a6034612b5436613249565b346107d357602061091a60176035612c6936613215565b346107d35760203660031901126107d3576004356001600160e01b0319811681036107d35760209060e01c604051906301ffc9a7630f632fb3821491141715158152f35b346107d35760403660031901126107d3576131046131bd565b67edcaa89a822939406020526014526024355f52602060405f2054604051908152f35b346107d35760203660031901126107d357622b600360e21b815260048035908201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611581576112b4915f9161155f5750604051918291825b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036107d357565b608435906001600160a01b03821682036107d357565b60a435906001600160a01b03821682036107d357565b602435906001600160a01b03821682036107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101209082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101409082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024359060443590565b60206003198201126107d357600435906001600160401b0382116107d3576101a09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d357602083818601950101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101609082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460051b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d3576101009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101c09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760a09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760c09082900360031901126107d35760040190565b9181601f840112156107d3578235916001600160401b0383116107d3576020808501948460061b0101116107d357565b60206003198201126107d357600435906001600160401b0382116107d35760809082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576102009082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d3576101e09082900360031901126107d35760040190565b60206003198201126107d357600435906001600160401b0382116107d35760e09082900360031901126107d35760040190565b60609060031901126107d3576004356001600160a01b03811681036107d357906024356001600160a01b03811681036107d3579060443590565b90600882101561158c5752565b90600282101561158c5752565b60206040818301928281528451809452019201905f5b8181106135e35750505090565b82518452602093840193909201916001016135d6565b90601f801991011681019081106001600160401b038211176115a057604052565b6001600160401b0381116115a057601f01601f191660200190565b6020818303126107d3578051906001600160401b0382116107d3570181601f820112156107d3578051906136688261361a565b9261367660405194856135f9565b828452602083830101116107d357815f9260208093018386015e8301015290565b909291926136a36139d1565b6001600160a01b0384168061372457505f9081808538935af115613717575b67edcaa89a8229394060205280601452825f5260405f209182549283821161077257815f9403905533835260205260018060a01b03165f516020615f655f395f51905f52604083a4613712613baa565b600190565b63b12d13eb5f526004601cfd5b9091926137313083613b85565b9260145260345263a9059cbb60601b5f5260205f6044601082855af13d1560015f51141716156137725761376a905f6034523090613b85565b9003906136c2565b6390b8ec185f526004601cfd5b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160061b360383136107d357565b356001600160a01b03811681036107d35790565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046186138135790565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208201527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60408201524660608201523060808201522090565b903590601e19813603018212156107d357018035906001600160401b0382116107d357602001918160051b360383136107d357565b9190811015612a6d5760061b0190565b91906138e76139d1565b82359060018060a01b03821615916020850135341415831634158414178215176139c4578060016001605c1b03849260a01c1661392381613fa8565b936139b2575b505b81811061394157505050505061393f613baa565b565b61394c8183876138cd565b80359060016001605c1b038260a01c166001600160601b0386168103613991575b506001929161398b916020013590876001600160a01b03821661487c565b0161392b565b61398b919550916020836139a760019695613fa8565b96925050919261396d565b6139be9034908661437c565b5f613929565b63ca0fc08e5f526004601cfd5b7f000000000000000000000000000000000000000000000000000000000000000080600414613b595780600314613b475780600914613b105780600a14613ad357600814613a2d57634e487b7160e01b5f52605160045260245ffd5b613a43361568929eee149b4bd212686028615651565b805b613ac357507f000000000000000000000000000000000000000000000000000000000000000080600214613a9c57600114613a8e57634e487b7160e01b5f52605160045260245ffd5b3368929eee149b4bd212685d565b505f5460ff1615613ab5573368929eee149b4bd212685d565b3368929eee149b4bd2126855565b63f57c448b5f526020526024601cfd5b5060e0604036151768929eee149b4bd212680160c08101355f520135602052613b0a60405f2068929eee149b4bd212686031615651565b80613a45565b5068929eee149b4bd21328355f90815268929eee149b4bd213483560205260409020613b0a9068929eee149b4bd21268602f615651565b5068929eee149b4bd212685c80613a45565b505f5460ff1615613b755768929eee149b4bd212685c80613a45565b68929eee149b4bd2126854613b0a565b602460106020939284936014526370a0823160601b5f525afa601f3d11166020510290565b7f000000000000000000000000000000000000000000000000000000000000000080600614613bfc57600514613bee57634e487b7160e01b5f52605160045260245ffd5b5f68929eee149b4bd212685d565b505f5460ff1615613c15575f68929eee149b4bd212685d565b5f68929eee149b4bd2126855565b903590601e19813603018212156107d357018035906001600160401b0382116107d3576020019160608202360383136107d357565b60a090604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f5e6f7b4e1ac3d625bac418bc955510b3e054cb6cc23cc27885107f080180b29260208301527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d604083015260608201523060808201522090565b90604051915f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f5260405260051b5191604052565b60a0906080604051917fe055493563385cc588fffacbffe2dab023fef807baa449530431169b0eeb5b69835260208301372090565b90613d5c6139d1565b613d7c613d7460a43560c43560e435612082876148dc565b923090613b85565b906040519063137c29fe82526080600460208401373060a083015260243560c083015260843560e0830152610140610120830152610160820190565b60807f63697069656e7429546f6b656e5065726d697373696f6e73286164647265737391609681527f436f6d706163744465706f736974207769746e65737329436f6d70616374446560208201527f706f736974286164647265737320616c6c6f6361746f722c75696e743820726560408201527f736574506572696f642c75696e74382073636f70652c6164647265737320726560608201527520746f6b656e2c75696e7432353620616d6f756e742960968201520152565b9093805f9493601c92869582613e86614eaf565b9987015260408387018360208201520137016024019101826e22d473030f116ddee9f6b43ac78ba35af11615613eb857565b3d6107cb57637f28c61e5f526004601cfd5b613ed8909291923090613b85565b9283811015613eec5761393f93039161437c565b63426d8dcf5f526004601cfd5b6affffffffffffffffffffff6a7fffffffffffffffffffff8260491c16818360481c16178060021c178060041c178060081c178060101c178060201c176755555555555555558160011c169003673333333333333333808260021c169116018060041c01670f0f0f0f0f0f0f0f660f0f0f0f0f0f0f8260081c169116018060101c01911690690fedcba9876543210000600f60581b91607f600319918060201c0116604803161c60581b161790565b6744036fc77deaed23605c1b81175415613fbf5750565b63cf90c3a85f526020526024601cfd5b604051916020526303f37b1a600c5280604052603760282090600182549160ff161b9080821661400157179055604052565b63dbc205b160601b600c526044601cfd5b916140206040820135614f51565b803590601e19813603018212156107d35701918235926001600160401b0384116107d3576020019280360384136107d35761393f93614069916140616137c8565b918585614f6c565b336150bc565b90929183159161408185826038615aa0565b9161409561408e84614862565b8092613fcf565b946001600160601b0360019316905b8084106140c257505050506140b557565b633a03d3bb5f526004601cfd5b90919293600190836001600160601b036140df8886896038615b0a565b1614151794019291906140a4565b919093928415926140ff868284615aa0565b9261410c61408e85614862565b956001600160601b0360019416915b81851061412d5750505050506140b557565b9091929394600190846001600160601b0361414a8987878b615b0a565b1614151795019392919061411b565b91905f5b81811061416d5750505050600190565b8061418c8461417f60019486896138cd565b60208101359035336141b4565b0161415d565b9190811015612a6d5760051b81013590603e19813603018212156107d3570190565b91929092604051908360148301526368a30dd082526034820194855260548201526058601c8201208242019262278d00811182548510176142295750829055607401526001600160a01b0316907ff78a2f33ff80ef4391f7449c748dc2d577a62cd645108f4f4069f4a7e0635b6a90606090a2565b631f9a96f45f526020526024601cfd5b939195909497969286019586359560208801359760608101359861425d89876152bf565b89811061429c575091614299999a93916142939593604060018060a01b03910135169760016001605c1b038a60a01c1690614c4a565b90615c31565b90565b8990633078b2f65f526020526040526044601cfd5b90916142bc81613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b171790565b6142eb82613ef9565b6744036fc77deaed23605c1b81175490921861430f57600360fc1b9160a01b171790565b5063cf90c3a85f526020526024601cfd5b61432981613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b600360fc1b1790565b9261435581613ef9565b6744036fc77deaed23605c1b811754909118613fbf5760a01b9160fc1b9060ff1b17171790565b909167edcaa89a8229394060205281601452825f5260405f208054908282019182106107655755335f5260205260018060a01b03165f5f516020615f655f395f51905f52604082a4565b939194925f9160208601925f935f9515908161481f575b85156147ce575b505f92801561473a575b5f1981011561469b575b83156145e1575b8415614460575050508184959697823701946e75696e7432353620616d6f756e7429600e8701527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19870152600e81870301905280850390209303902090565b91985096935083919450600e925060051b936e75696e7432353620616d6f756e7429838201527f29546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c5f19820152030190526040519261456d575b83156144f9575b5f516020615fa55f395f51905f525f525f516020615fc55f395f51905f526020525f516020615f855f395f51905f526040525191604052565b7f45012d42fad8c9e937cff5a2d750ee18713dd45aadcd718660d5523056618d995f527fc2e16a823b8cdddfdf889991d7a461f0a19faf1f8e608f1c164495a52151cc3e6020527fd2f6ad391328936f118250f231e63c7e639f9756a9ebf972d81763870a772d87604052805193506144c0565b7f2bf981c42c7f423b06fa49ba996d2930887e2f1f53d9a26b8c7423ac1cf83e615f527fd14445d78213a5acddfa89171b0199de521c3b36738b835264cae18f5a53dbf36020527f329b3c527a3c74b8cabc51c304669d1866b87352cafdf440ef2becd6dc261d1e604052805193506144b9565b7f4d756c7469636861696e436f6d7061637420636f6d70616374294d756c74696387527f6861696e436f6d7061637428616464726573732073706f6e736f722c75696e7460208801527f323536206e6f6e63652c75696e7432353620657870697265732c5365676d656e60408801526f5d20696473416e64416d6f756e74732c60708801527f697465722c75696e7432353620636861696e49642c75696e743235365b325d5b6060880152601a87019660900193506143ff565b7f4261746368436f6d7061637420636f6d70616374294261746368436f6d70616387527f74286164647265737320617262697465722c616464726573732073706f6e736f60208801527a75696e743235365b325d5b5d20696473416e64416d6f756e74732c605b8801527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60408801526015870196607b0193506143f8565b7f436f6d7061637420636f6d7061637429436f6d7061637428616464726573732087527f617262697465722c616464726573732073706f6e736f722c75696e743235362060208801526f2c75696e7432353620616d6f756e742c60508801527f6e6f6e63652c75696e7432353620657870697265732c75696e743235362069646040880152601087019660700193506143ee565b7569766174696f6e2875696e743235365b5d206964732c60368a01527f426174636841637469766174696f6e207769746e65737329426174636841637490526056880195506038880194505f6143e4565b686e743235362069642c60298a01527f41637469766174696f6e207769746e6573732941637469766174696f6e28756981526049890196506033890195506143dd565b6744036fc77deaed23605c1b81175491908215613fbf5750565b91906148883084613b85565b9260405194606052306040523360601b602c526323b872dd60601b600c5260205f6064601c82855af13d1560015f51141716156148cf5761393f945f606052604052613eca565b637939f4245f526004601cfd5b8060601b156148e85790565b63961c9a4f6040526024605cfd5b908015155f52602052337fe27f5e0382cf5347965fc81d5c81cd141897fe9ce402d22c496b7c2ddc84e5fd60405fa3565b6001600160401b0381116115a05760051b60200190565b9061494882614927565b61495560405191826135f9565b8281528092614966601f1991614927565b0190602036910137565b8051821015612a6d5760209160051b010190565b919261498e6139d1565b6001600160a01b03833516159260208101353490811415851690158514178315176139c45783926149c660843560a43560c4356142b1565b956149d08261493e565b94614a6d575b50848103956149e48761493e565b925f925f5b898110614a0857505050506149fb5790565b630f2f1e515f526004601cfd5b80614a598a600193979596970194614a29614a2487878a6138cd565b6137b4565b90848060a01b0382166001600160601b0360a01b8a1617988911151797614a5181978d614970565b523090613b85565b614a638289614970565b52019291926149e9565b614a799087349161437c565b835115612a6d578560208501525f6149d6565b91604051918360061b8460071b9160061b6024350163fe8ec1a7855260c06020860152816101400160408601526004356060860152826101600160a0860152606060e0860152604435610100860152606435610120860152856101408601528160248201610160870137818501956101608701525f5b828110614b185750939450508301610180019150565b806040918801306101808201526101a06044838601013591015201614b02565b83515f96909594939290875b878110614b5f575050505050505050613eec5761393f613baa565b80614ba783600193019a614b818c614b7c614a2430928c8b6138cd565b613b85565b90614b9d614b8f858c614970565b519183831015179d89614970565b519103908a61437c565b01614b44565b90614bb78261361a565b614bc460405191826135f9565b8281528092614966601f199161361a565b9015612a6d5790565b9190811015612a6d576060020190565b8160061b82810460401483151715611efe57614c0990614bad565b915f5b818110614c20575050506020815191012090565b80614c2e6001928486614bde565b604060208360061b880192803582850152013591015201614c0c565b60408401356001600160a01b031697969095939486948994919387358801936020890135890192909183359190614c8460808c0135614f51565b614c8d90614862565b6060819b013590614c9d91613fcf565b86811502019181151587841415179081159b614cd49961393f9d614cf0575b505050614cda575b5050508582359260200191614f6c565b846150bc565b614ce8926020018c89614f6c565b5f8080614cc4565b614d1b9350605892601c926040519260148401526368a30dd083526034830152605482015201205490565b4210155f898e614cbc565b98979380959196614d6b939894890198893581019860208a81019a359b013597614d63614d538d8d614bd5565b3560a01c60016001605c1b031690565b9d8e91615e45565b90614d768686614bd5565b95614d9f6020614d93878a35809b6040810135948591013561535c565b83151798868686615c31565b506001600160601b0360019916985b818110614dc7575050505050505061371291925061536d565b614dd2818389614bde565b80359889918860408201359b8c926020013592614dee9361535c565b8c8360a01c60016001605c1b03161415171798614e0d91878787615c31565b50600101614dae565b9015612a6d57803590605e19813603018212156107d3570190565b9190811015612a6d5760051b81013590605e19813603018212156107d3570190565b8160061b82810460401483151715611efe57614e6e90614bad565b915f5b818110614e85575050506020815191012090565b80614e936001928486614e31565b604060208360061b880192803582850152013591015201614e71565b7f0000000000000000000000000000000000000000000000000000000000000000613712576e22d473030f116ddee9f6b43ac78ba33b151590565b60a092916040606092815194848601525f516020615f455f395f51905f5285528560208601933385524684880152608087208752820101358101803560051b80916020018537602001852060808601525f516020615f855f395f51905f5285520190372090565b42811115614f5c5750565b63f80dbaea5f526020526024601cfd5b604080516119015f9081526020979097529181526042601e20918152919390929091606483019083146001600160a01b0386166041851481614fc7575b5050505050505033141715614fba57565b638baa579f5f526004601cfd5b909192939495975060405192885f5261506c575b61502d575b60209495965f60605282604052630b135d3f60e11b83526004830152602482019586946040865281604485015260648401375afa9051630b135d3f60e11b1416905f808080808080614fa9565b60408401355f1a60205260408481376020600160805f825afa5181183d1517614fe0575094505050506001915f6060526040525f808080808080614fa9565b60208581013560ff81901c601b01825286356040526001600160ff1b0316606052600160805f825afa5182183d1517614fdb57505094505050506001915f6060526040525f808080808080614fa9565b5f91825233926001600160a01b03908116929116907f770c32a2314b700d6239ee35ba23a9690f2fceb93a55d8c753e953059b3b18d490602090a4565b6040519260608401525f516020615f455f395f51905f5283526020830191338352466040850152608084209082019060a082013583019060c0823560051b93013560051b5f905f5b85811061517857505050505091604060609260a09594602001852060808601525f516020615f855f395f51905f5285520190372090565b8089016020848301870101358152828214615197575b50602001615141565b602090810185905292508261518e565b949195849197966151d4948101358101988960200199359a6151cc614d538d8d614e16565b988991615e45565b8515956001600160601b035f9416935b8181106151fb57505050505050506137129061536d565b806152498761520d600194868c614e31565b80359b8c8a60016001605c1b036152248c846153b0565b9260a01c16141517179b87602061523e604085018561377f565b9190940135936153c6565b50016151e4565b614299906152756040361517829060e0910160c08101355f52013560205260405f2090565b906031615651565b9291905f5b818110615290575050505050565b806152b86152a160019385896138cd565b8560206152ad836137b4565b920135913389615c31565b5001615282565b8160ff1c15901517156152cf5750565b63a06356f55f526020526024601cfd5b95849061530e9399949692968a01998a3597889660408d013583019a60016001605c1b038960a01c1691615e45565b9561531f60209261429998946152bf565b0135928035906020016153c6565b60a0916040519382019160c0830135019081359384930135855260208501526020016040840137604001902090565b9261536791926153b0565b91101790565b6140b557565b60c09160408051925f516020615fc55f395f51905f5284523360208501523382850152602081013560608501520135608083015260a08201522090565b60ff1c600281101561158c576001149015151690565b91949290925f958415945f5b81811061540157505050505050828210176153ee575050600190565b633078b2f65f526020526040526044601cfd5b8061543460209a988761542d61541a600196888d6138cd565b9d8e0135928c84019c8d10179b9d6137b4565b8789615c31565b50016153d2565b906040519160c08101350191823580937f4d756c7469636861696e436f6d7061637428616464726573732073706f6e736f83527f722c75696e74323536206e6f6e63652c75696e7432353620657870697265732c60208401527f5365676d656e745b5d207365676d656e7473295365676d656e7428616464726560408401527535365b325d5b5d20696473416e64416d6f756e74732c60768401527f737320617262697465722c75696e7432353620636861696e49642c75696e74326060840152602001609683013782604301605382012092609601902090565b614299903615906028615651565b906142996155386040361517846028615651565b928336159161532d565b61556d906155676080361517829060e0910160c08101355f52013560205260405f2090565b90615b8a565b9091565b61556d906155966040361517829060e0910160c08101355f52013560205260405f2090565b90615b66565b906142996155386155c46080361517859060e0910160c08101355f52013560205260405f2090565b846032615651565b90614299615538610b6b6040361517859060e0910160c08101355f52013560205260405f2090565b61561f906156196080361517829060e0910160c08101355f52013560205260405f2090565b90615bd9565b9192909190565b61561f9061564b60c0361517829060e0910160c08101355f52013560205260405f2090565b90615c0a565b91909180603214615764578060311461575757806030146157475780602b146157165780602f1461570957806028146156c857806033146156b057602a146156a757634e487b7160e01b5f52605160045260245ffd5b61429991615373565b5060e0910160c08101355f52013560205260405f2090565b5060c060e092606060408051948301925f516020615fa55f395f51905f52865233602087015201604085013760a081013560a0840152013560c08201522090565b5061429991361590614eea565b509060c091606060408051935f516020615fc55f395f51905f52855233602086015201604084013760a08201522090565b5061429991604036151790614eea565b50614299913615906150f9565b50614299916040361517906150f9565b9061010060405160a060c085013585019460608635967f436f6d70616374286164647265737320617262697465722c6164647265737320855260208501977f73706f6e736f722c75696e74323536206e6f6e63652c75696e7432353620657889528060408701927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c845260200184880137820185209788865233905260408301903760e0810135828401528381013560c0840152013560e0820152209190565b60e09092919260a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b92919280602c146159df5760291461591d57634e487b7160e01b5f52605160045260245ffd5b6101009060a0604051918360c082013582019660608835987f436f6d70616374286164647265737320617262697465722c6164647265737320875260208701997f73706f6e736f722c75696e74323536206e6f6e63652c75696e743235362065788b528060408901927f70697265732c75696e743235362069642c75696e7432353620616d6f756e742c8452602001848a013782018720998a8852339052604085019037820160e081013584860152013560c0840152013560e0820152209190565b5060e09060a06040519160c081013581019560608735977f4261746368436f6d70616374286164647265737320617262697465722c616464865260208601987f726573732073706f6e736f722c75696e74323536206e6f6e63652c75696e74328a52656f756e74732c60468801528060408801927f353620657870697265732c75696e743235365b325d5b5d20696473416e64416d8452602001606689013760660186209889875233905260408401903782840152013560c0820152209190565b91909180603814615af45780603914615ad857600714615ace57634e487b7160e01b5f52605160045260245ffd5b614299915f615651565b505f615aec9160016001605c1b0393614192565b3560a01c1690565b5015612a6d573560a01c60016001605c1b031690565b80603814615b525780603914615b3e57600714615b3557634e487b7160e01b5f52605160045260245ffd5b61429992615651565b5091615aec9160016001605c1b0393614192565b5091615aec9160016001605c1b03936138cd565b9190615b8690615b758461543b565b94908591604036151790602d615ce7565b9190565b9190615b8690615b998461543b565b94908591604036151790602e615ce7565b91615bba615b869284602c6158f7565b9290938460403615179161532d565b91615bba615b86928460296158f7565b91615b86604093615c0093615bed8261543b565b959091863615936080851786602d615ce7565b958691179161532d565b91615b86604093615c0093615c1e8261543b565b959091863615936080851786602e615ce7565b939291909380603514615cdd5780603414615c6a57603714615c6157634e487b7160e01b5f52605160045260245ffd5b614299936140ed565b5090929167edcaa89a8229394060205282601452835f5260405f20805480831183151761077257829003905581601452835f5260405f208054908282019182106107655755335f5260205260018060a01b03169060018060a01b03165f516020615f655f395f51905f5260405fa4600190565b5061429993613697565b9594939190929580602d14615dce57602e14615d1157634e487b7160e01b5f52605160045260245ffd5b6040519360608501528584525f516020615f455f395f51905f526020850196338852466040870152141580615dbf575b60051b60800184209083019060a082013584019060c0823560051b93013560051b5f905f5b858110615d9057505050505060609260a09596926040926020018620608087015285520190372090565b8089016020848301870101358152828214615daf575b50602001615d66565b6020908101859052925082615da6565b60a08401356080860152615d41565b5060609260a095969286604093845197878901528588525f516020615f455f395f51905f52602089019633885246878b0152141580615e37575b60051b60800188208852830101358201803560051b809160200186376020018620608087015285520190372090565b8285013560808a0152615e08565b969594939291909680602714615f315780602414615f1c5780602114615f075780602314615ef75780601f14615ee25780602614615ecf5780602214615ec45780602514615eb157601714615ea857634e487b7160e01b5f52605160045260245ffd5b61429996614c4a565b50906017959493929187614299986152df565b508661429997614239565b5090601795949392918761429998614d26565b50916142999691601796959493361593614d26565b5090614299969291361593614239565b509161429996916017969594933615936151a7565b509161429996916017969594933615936152df565b50906017959493929187614299986151a756fe295feb095767cc67d7e74695da0adaddede54d7b7194a8a5426fe8f0351e03371b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288595ca9a66b8bbf0d2316e90dfa3df465f0790b277b25393a3ef4d67e1f50865057cdca950b17b5efc016b74b912d8527dfba5e404a688cbc3dab16cb943287fec25a7fee8000a237929ef9be08f2933c4b4f320b00b38809f3c7aa104d5421049fa164736f6c634300081c000a", - "sourceMap": "1085:8212:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8968:151;1085:8212;8968:151;;;1085:8212;;;;;7602:1659:68;1085:8212:36;7602:1659:68;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5321:14:68;1085:8212:36;5321:14:68;;;1085:8212:36;;;;;;;;;;;;;;;2310:667:59;1085:8212:36;2310:667:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8235:26:59;1085:8212:36;8235:26:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12498:568:27;1085:8212:36;12498:568:27;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5321:14:68;1085:8212:36;5321:14:68;;;1085:8212:36;;;;;;;;;;8235:26:59;1085:8212:36;8235:26:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4017:20:59;1085:8212:36;4017:20:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:667:59;1085:8212:36;2310:667:59;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4017:20:59;;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;;;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;:::-;1085:8212:36;;;;;;7602:1659:68;;1085:8212:36;;;;;;7602:1659:68;;;1085:8212:36;;7602:1659:68;;1085:8212:36;7602:1659:68;;;;;;;;;;;;;;;;;;;;1085:8212:36;7602:1659:68;;;;1085:8212:36;7602:1659:68;;;;1085:8212:36;7602:1659:68;;;;12790:117:60;7602:1659:68;;;;;1085:8212:36;7602:1659:68;-1:-1:-1;;;7602:1659:68;;;9531:2564:27;;;;;;;;7602:1659:68;9531:2564:27;;;1085:8212:36;9531:2564:27;;;;;1085:8212:36;9531:2564:27;;;1085:8212:36;9531:2564:27;;;;;;;;;;;;;;;;;;;1085:8212:36;9531:2564:27;;;;;;;;;;;;;;7602:1659:68;1085:8212:36;9531:2564:27;1085:8212:36;9531:2564:27;-1:-1:-1;;;;;;;;;;;1085:8212:36;;9531:2564:27;1085:8212:36;9531:2564:27;;1085:8212:36;;;;;;;9531:2564:27;;1085:8212:36;9531:2564:27;1085:8212:36;7602:1659:68;9531:2564:27;;;1085:8212:36;9531:2564:27;1085:8212:36;7602:1659:68;9531:2564:27;;;1085:8212:36;9531:2564:27;;1085:8212:36;9531:2564:27;;;1085:8212:36;9531:2564:27;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;9531:2564:27;1085:8212:36;7602:1659:68;9531:2564:27;7602:1659:68;;;;;;;;;;;;;;1085:8212:36;7602:1659:68;;;1085:8212:36;7602:1659:68;1085:8212:36;;;;;;;;;;;:::i;:::-;3669:19:59;;;1085:8212:36;;3669:19:59;;;;:::i;:::-;3877:13;1085:8212:36;3872:369:59;3892:19;;;;;;4261:1050;;;;;2244:19:47;5626:9:36;4261:1050:59;;1085:8212:36;2278:9:47;4261:1050:59;1085:8212:36;;4261:1050:59;-1:-1:-1;;;;;;;;;;;4261:1050:59;;;4017:20;4261:1050;;;;1085:8212:36;4261:1050:59;;;4017:20;4261:1050;;;;;;;;;;;;;;4086:11:68;4261:1050:59;4086:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;:::-;1085:8212:36;;;2062:9:69;:::i;:::-;1085:8212:36;:::i;:::-;2244:19:47;:::i;:::-;2278:9;;:::i;:::-;4017:20:59;1085:8212:36;;;;;;4261:1050:59;;1085:8212:36;4261:1050:59;;4017:20;4261:1050;;;;3913:3;4017:13;;;1085:8212:36;4017:13:59;:20;:13;;;;;:::i;:::-;:20;1085:8212:36;;;;4191:22:59;;;4175:51;3913:3;1085:8212:36;3877:13:59;;;;1085:8212:36;;;;;11806:170:45;11967:8;17305:9:43;1085:8212:36;;;:::i;:::-;19364:12:42;19230:225;19364:34;:12;;;;;;:::i;:::-;:34;;:::i;:::-;19230:225;;:::i;:::-;30600:29:46;;;;:58;:29;;;1085:8212:36;30600:58:46;:::i;:::-;30670:18;;;:::i;:::-;30401:308;11806:170:45;:::i;:::-;1085:8212:36;;;;;;;;;;;;;21628:250:46;18259:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;10999:39;:12;;;;;;:::i;:::-;:39;;:::i;:::-;20153:30;11040:45;20153:30;:::i;:::-;5067:83:55;10999:12:42;21469:68;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;21801:36:46;21809:1;1085:8212:36;5067:83:55;;21801:36:46;:::i;:::-;21839:18;;;:::i;:::-;21628:250;:57;:250;:::i;1085:8212:36:-;;;;;28390:289:46;14631:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;8453:34;:12;;;;;;:::i;:34::-;20153:30;8797:51;20153:30;:::i;:::-;28542:29:46;:58;1085:8212:36;28542:29:46;;1085:8212:36;28542:58:46;:::i;:::-;8453:12:42;28602:36:46;28610:1;1085:8212:36;5067:83:55;;28602:36:46;:::i;:::-;28640:18;;;:::i;:::-;28390:289;:52;:289;:::i;1085:8212:36:-;;;;;10457:191:46;5049:9:43;1085:8212:36;;;:::i;:::-;10601:5:46;25394:148:42;25489:4;5067:83:55;;;25394:148:42;;:::i;:::-;1085:8212:36;;;;10618:18:46;;:::i;:::-;10457:191;:52;:191;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;12605::43;1085:8212:36;;;:::i;:::-;13766:86:42;;;:::i;:::-;18060:18:46;18043:5;18060:18;;:::i;:::-;17935:155;1085:8212:36;5689:83:55;9882:170:45;;;:::i;1085:8212:36:-;;;;;11364:229:46;5689:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;9563:34;:12;1085:8212:36;9563:12:42;;;;:::i;:34::-;20153:30;9914:26;20153:30;:::i;:::-;5067:83:55;1085:8212:36;21469:68:42;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;11516:36:46;11524:1;1085:8212:36;5067:83:55;;11516:36:46;:::i;:::-;11554:18;;;:::i;:::-;11364:229;:52;:229;:::i;1085:8212:36:-;;;-1:-1:-1;;1085:8212:36;;;;;1853:80:53;1085:8212:36;;:::i;:::-;1853:80:53;:::i;:::-;2055:9;;2039:10;;2055:9;:::i;:::-;1085:8212:36;;;;;;;;;;;13776:175:45;13942:8;7463:9:43;1085:8212:36;;;:::i;:::-;13274:124:42;13358:39;:12;1085:8212:36;13358:12:42;;;;:::i;:39::-;13274:124;;:::i;:::-;13987:18:46;1085:8212:36;13987:18:46;;:::i;:::-;13863:154;1085:8212:36;5689:83:55;13776:175:45;;;:::i;1085:8212:36:-;;;;;15363:230:46;8903:9:43;1085:8212:36;;;:::i;:::-;;5067:83:55;15509:5:46;20153:30:42;22104:98;1085:8212:36;5067:83:55;;22104:98:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;22104:98:42;20153:30;11040:45;20153:30;:::i;:::-;21469:68;15516:36:46;15524:1;21469:68:42;;;;;:::i;:::-;1085:8212:36;5067:83:55;15516:36:46;:::i;:::-;15554:18;;;:::i;:::-;15363:230;:47;:230;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;301:99:58;1085:8212:36;301:99:58;1085:8212:36;;301:99:58;1085:8212:36;;;;;29732:257:46;16425:9:43;1085:8212:36;;;:::i;:::-;15198:185:42;15301:34;:12;;;;;;:::i;:34::-;15198:185;;:::i;:::-;29880:29:46;;15301:12:42;29880:58:46;:29;;;1085:8212:36;29880:58:46;:::i;:::-;29950:18;;;:::i;1085:8212:36:-;;;;;29732:257:46;16209:8:43;1085:8212:36;;;:::i;:::-;;;;;;9297:9:43;1085:8212:36;;;:::i;:::-;;5067:83:55;;20153:30:42;22563:107;22651:4;5067:83:55;;22563:107:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;22563:107:42;20153:30;11894:54;20153:30;:::i;:::-;21469:68;24111:5:46;21469:68:42;;;;;:::i;:::-;1085:8212:36;24178:36:46;24186:1;24118:58;:29;;;1085:8212:36;24118:58:46;:::i;24178:36::-;24216:18;;;:::i;:::-;23940:315;1085:8212:36;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::i;:::-;11812:6:53;6995:93;1085:8212:36;;:::i;:::-;6995:23:53;;;:::i;:::-;:93;:::i;:::-;11523:372;;;:::i;:::-;1085:8212:36;;;7221:10:53;;11812:6;;:::i;:::-;;;:::i;:::-;4473:27:63;4481:5;1085:8212:36;5067:83:55;;1085:8212:36;;;;7221:10:53;4473:27:63;:::i;1085:8212:36:-;;;;;;10681:8:43;1085:8212:36;;;:::i;:::-;25434:5:46;26926:304:42;27055:118;27154:4;1085:8212:36;5067:83:55;;27055:118:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;26926:304:42;26919:311;;;;25441:58:46;:29;;;1085:8212:36;25441:58:46;:::i;:::-;25511:18;;;:::i;1085:8212:36:-;;;;;14399:223:46;7659:8:43;1085:8212:36;;;:::i;:::-;17004:12:42;16907:181;17004:39;:12;;;;;;:::i;:39::-;16907:181;;:::i;:::-;14583:18:46;;;;;;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;2283:14:70;13542:488:60;;;11487:137;;;;;13542:488;;;1790:15:70;1085:8212:36;1981:10:70;;1962:34;1981:10;;;6656:622;;6777:495;;;;;;;;;;;;;;;;6656:622;1962:34;2006:168;2283:14;:::i;1085:8212:36:-;;;;;17355:240:46;12003:9:43;1085:8212:36;;;:::i;:::-;17511:5:46;10316:77:42;;;:::i;:::-;1085:8212:36;;;17518:36:46;17526:1;1085:8212:36;5067:83:55;;17518:36:46;:::i;:::-;17556:18;;;:::i;1085:8212:36:-;;;;;13314:239:46;6913:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;9873:39;:12;1085:8212:36;9873:12:42;;;;:::i;20153:30::-;5067:83:55;1085:8212:36;21469:68:42;5067:83:55;;21469:68:42;;;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;18675::43;1085:8212:36;;;:::i;:::-;20153:30:42;12246:39;:12;;;;;;:::i;20153:30::-;5067:83:55;21469:68:42;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;12246:12:42;31852:58:46;:29;;;1085:8212:36;31852:58:46;:::i;:::-;1085:8212:36;31912:36:46;31920:1;1085:8212:36;5067:83:55;;31912:36:46;:::i;:::-;31950:18;;;:::i;:::-;31654:335;13776:175:45;:::i;1085:8212:36:-;;;;;10457:191:46;4853:8:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;8021:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;20598:64;;32705:531:59;1085:8212:36;32705:531:59;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;20598:64:42;20153:30;20664:42;20153:30;:::i;:::-;1085:8212:36;;5067:83:55;14967:4:46;14973:36;14981:1;5067:83:55;;14973:36:46;:::i;:::-;15011:18;;;:::i;:::-;14865:176;15174:162:45;;:::i;1085:8212:36:-;;;;;25784:289:46;11625:9:43;1085:8212:36;;;:::i;:::-;;;;:::i;:::-;25936:29:46;:58;1085:8212:36;25936:29:46;;1085:8212:36;25936:58:46;:::i;:::-;25929:5;25996:36;26004:1;1085:8212:36;5067:83:55;;25996:36:46;:::i;:::-;26034:18;;;:::i;:::-;25784:289;:52;:289;:::i;1085:8212:36:-;;;;;15174:162:45;9475:8:43;1085:8212:36;;;:::i;:::-;16001:5:46;1085:8212:36;5067:83:55;23950:250:42;24052:100;1085:8212:36;5067:83:55;;24052:100:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24052:100:42;23950:250;;:::i;:::-;23943:257;;;16018:18:46;;:::i;1085:8212:36:-;;;;2310:667:59;3084:71:68;1085:8212:36;;;:::i;:::-;;2310:667:59;-1:-1:-1;;;;;;;;;;;2310:667:59;;;;;;;;1085:8212:36;2310:667:59;;;3010:8:68;2310:667:59;1085:8212:36;2310:667:59;;;;;;;;;;;2947:11:68;2310:667:59;2947:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;3010:8:68:-;2310:667:59;3106:18:68;12790:117:60;3106:18:68;;;:::i;:::-;3139:15;;1085:8212:36;2310:667:59;;5148:8:36;3084:71:68;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;692:938:58;;1085:8212:36;692:938:58;1085:8212:36;692:938:58;;;1085:8212:36;692:938:58;;;;;;;;;;1085:8212:36;692:938:58;1085:8212:36;692:938:58;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;692:938:58;;;;;1085:8212:36;692:938:58;;;;;;1085:8212:36;;;;;11364:229:46;5515:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;;:::i;:::-;4965:661:49;1085:8212:36;4965:661:49;;;;453:10;4965:661;;;1085:8212:36;4965:661:49;1085:8212:36;4965:661:49;;;;;;1085:8212:36;4965:661:49;;;;;1085:8212:36;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;13446:63:52;;;;;;;;:::i;:::-;13598:158;;;;;;;;;;;;;;1085:8212:36;13598:158:52;;13860:100;;;;;:::i;:::-;1085:8212:36;;;;;;6305:83:55;;1085:8212:36;6305:83:55;;7578:9012:51;;;;:::i;:::-;17315:570;;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;1085:8212:36;17315:570:51;1085:8212:36;17315:570:51;1085:8212:36;;17315:570:51;1085:8212:36;17315:570:51;;;1085:8212:36;17315:570:51;7205:121:52;;14478:559;1085:8212:36;14478:559:52;;;;;1085:8212:36;14478:559:52;;;;;;;;;;;;;;;;;;;5067:83:55;1085:8212:36;5067:83:55;15198:9:52;;;:::i;:::-;15398:28;;;;:::i;:::-;13542:488:60;;;;;;;3956:20:63;;;;:::i;:::-;1085:8212:36;;;;;;;:::i;:::-;;;;;;;;;13776:175:45;13942:8;20665:9:43;1085:8212:36;;;:::i;:::-;19807:12:42;19668:235;19807:39;:12;;;;;;:::i;19668:235::-;33257:29:46;;;;:58;:29;;;1085:8212:36;33257:58:46;:::i;:::-;33327:18;;;:::i;1085:8212:36:-;;;;;16430:191:46;10467:9:43;1085:8212:36;;;:::i;:::-;16574:5:46;26376:277:42;26496:109;26586:4;1085:8212:36;5067:83:55;;26496:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;26496:109:42;26376:277;;:::i;:::-;26369:284;;;;16591:18:46;;:::i;1085:8212:36:-;;;;;17355:240:46;11809:8:43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;7275::43;1085:8212:36;;;:::i;:::-;;;;;18482:223:46;13647:9:43;1085:8212:36;;;:::i;:::-;18649:5:46;17537:104:42;;;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;6573::43;1085:8212:36;;;:::i;:::-;20153:30:42;6898:39;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;6898:12:42;12924:36:46;12932:1;5067:83:55;;12924:36:46;:::i;:::-;12962:18;;;:::i;:::-;12806:186;13776:175:45;;:::i;1085:8212:36:-;;;;;23301:279:46;8545:9:43;1085:8212:36;;;:::i;:::-;7992:40:42;;;:::i;:::-;23443:29:46;:58;1085:8212:36;23443:29:46;;1085:8212:36;23443:58:46;:::i;:::-;23436:5;23503:36;23511:1;1085:8212:36;5067:83:55;;23503:36:46;:::i;:::-;23541:18;;;:::i;:::-;23301:279;:47;:279;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2251:90:55;;;1085:8212:36;;9307:42:60;1085:8212:36;12790:117:60;;;-1:-1:-1;;;;;12790:117:60;9307:42;:::i;:::-;1085:8212:36;;;11487:137:60;;;;;1085:8212:36;;;;;;;;11032:107:60;;;1085:8212:36;;;;;;;;;;;;-1:-1:-1;;;5394:39:48;;1085:8212:36;;-1:-1:-1;;;;;1085:8212:36;;;;5394:39:48;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;5394:39:48;1085:8212:36;5394:18:48;-1:-1:-1;;;;;1085:8212:36;5394:39:48;;;;;;1085:8212:36;5394:39:48;1085:8212:36;5394:39:48;;;1085:8212:36;;;;;;;;;:::i;5394:39:48:-;;;;;;1085:8212:36;5394:39:48;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;2639:9;1085:8212;;;;;;:::i;:::-;;;:::i;:::-;2639:9;;:::i;1085:8212::-;;;;;11806:170:45;11967:8;16003:9:43;1085:8212:36;;;:::i;:::-;14015:167:42;14109:34;:12;;;;;;:::i;:34::-;14015:167;;:::i;:::-;20187:18:46;14109:12:42;20187:18:46;;:::i;:::-;20062:155;1085:8212:36;5689:83:55;11806:170:45;;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;14447:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;7498:34;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;7498:12:42;19082:36:46;19090:1;5067:83:55;;19082:36:46;:::i;:::-;19120:18;;;:::i;:::-;18964:186;11806:170:45;;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;3827::43;1085:8212:36;;;:::i;:::-;6447:44:42;;;:::i;:::-;1085:8212:36;;5067:83:55;9026:4:46;9032:36;;;:::i;:::-;9070:18;;;:::i;:::-;8924:176;9882:170:45;;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;11071::43;1085:8212:36;;;:::i;:::-;20153:30:42;20598:64;;32705:531:59;1085:8212:36;32705:531:59;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;20153:30:42;1085:8212:36;;5067:83:55;16949:4:46;16955:36;16963:1;5067:83:55;;16955:36:46;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;6702:189:27;;1085:8212:36;6702:189:27;;;1085:8212:36;6702:189:27;1085:8212:36;6702:189:27;;;;1085:8212:36;;;;;;;;;;;;;15174:162:45;2675:9:43;1085:8212:36;;;:::i;:::-;;5067:83:55;20153:30:42;;;20382:26;20153:30;:::i;:::-;7202:36:46;;;;:::i;:::-;7240:18;;;:::i;:::-;7077:193;7182:4;5067:83:55;;15174:162:45;;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;5857::43;1085:8212:36;;;:::i;:::-;13002:114:42;13081:34;:12;1085:8212:36;13081:12:42;;;;:::i;13002:114::-;12007:18:46;1085:8212:36;12007:18:46;;:::i;1085:8212:36:-;;;;;9412:229:46;4147:8:43;1085:8212:36;;;:::i;:::-;;9269:57:42;;;:::i;:::-;1085:8212:36;;;9564:36:46;1085:8212:36;5067:83:55;9564:36:46;:::i;1085:8212:36:-;;;;;20609:223:46;16631:8:43;1085:8212:36;;;:::i;:::-;17952:12:42;17840:185;17952:34;:12;;;;;;:::i;17840:185::-;20793:18:46;;;;;;:::i;1085:8212:36:-;;;;;12409:191:46;6221:8:43;1085:8212:36;;;:::i;:::-;16634:12:42;16542:171;16634:34;:12;;;;;;:::i;1085:8212:36:-;;;;;12409:191:46;6417:9:43;1085:8212:36;;;:::i;:::-;;1853:80:53;4473:27:63;1085:8212:36;;;:::i;:::-;1853:80:53;;;;:::i;:::-;2055:9;;;2039:10;;2055:9;:::i;:::-;4481:5:63;1085:8212:36;5067:83:55;;2039:10:53;;4473:27:63;:::i;1085:8212:36:-;;;;;32359:267:46;19519:8:43;1085:8212:36;;;:::i;:::-;15560:195:42;15668:39;:12;;;;;;:::i;15560:195::-;32517:29:46;;15668:12:42;32517:58:46;:29;;;1085:8212:36;32517:58:46;:::i;:::-;32587:18;;;:::i;:::-;32359:267;:57;:267;:::i;1085:8212:36:-;;;;;27126:257:46;13009:8:43;1085:8212:36;;;:::i;:::-;14922:104:42;;;:::i;:::-;27274:29:46;;27267:5;27274:58;:29;;;1085:8212:36;27274:58:46;:::i;:::-;27344:18;;;:::i;1085:8212:36:-;;;;;;;:::i;:::-;3669:19:59;;;1085:8212:36;;3669:19:59;;;;:::i;:::-;3877:13;1085:8212:36;3872:369:59;3892:19;;;;;;4261:1050;;;;;2244:19:47;5465:8:36;4261:1050:59;;1085:8212:36;2278:9:47;4261:1050:59;1085:8212:36;;4261:1050:59;-1:-1:-1;;;;;;;;;;;4261:1050:59;;;4017:20;4261:1050;;;;1085:8212:36;4261:1050:59;;;4017:20;4261:1050;;;;;;;;;;;;;;4086:11:68;4261:1050:59;4086:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;3913:3:59:-;4017:13;;;1085:8212:36;4017:13:59;:20;:13;;;;;:::i;:::-;:20;1085:8212:36;;;;4191:22:59;;;4175:51;3913:3;1085:8212:36;3877:13:59;;;;1085:8212:36;;;;;11806:170:45;11967:8;14271::43;1085:8212:36;;;:::i;:::-;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;10704:9:52;1085:8212:36;10904:28:52;1085:8212:36;;;;;;:::i;:::-;9640:63:52;;;;;;;;:::i;:::-;1085:8212:36;;10117:55:52;1085:8212:36;;;;;;;5067:83:55;;9783:60:52;1085:8212:36;5067:83:55;;9783:60:52;:::i;:::-;9948:100;;;;:::i;:::-;10117:55;;;;:::i;:::-;1085:8212:36;10279:264:52;;;;;;;5067:83:55;;10704:9:52;;:::i;:::-;10904:28;;:::i;:::-;1085:8212:36;;;;;;;:::i;:::-;;;;;9882:170:45;10043:8;4489::43;1085:8212:36;;;:::i;:::-;12559:66:42;;;:::i;:::-;10055:18:46;1085:8212:36;10055:18:46;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;15805::43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;17481::43;1085:8212:36;;;:::i;:::-;20153:30:42;7774:39;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;7774:12:42;21198:36:46;21206:1;5067:83:55;;21198:36:46;:::i;1085:8212:36:-;;;;;24603:247:46;10065:9:43;1085:8212:36;;;:::i;:::-;24400:277:42;24511:109;24601:4;1085:8212:36;5067:83:55;;24511:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24400:277:42;24393:284;;24734:5:46;24741:58;:29;;;1085:8212:36;24741:58:46;:::i;:::-;24811:18;;;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;18897:9:43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;17667:9:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;2519:8:43;1085:8212:36;;;:::i;:::-;;;;;9882:170:45;10043:8;12417:9:43;1085:8212:36;;;:::i;:::-;11488:95:42;;;:::i;:::-;26631:29:46;;26624:5;26631:58;:29;;;1085:8212:36;26631:58:46;:::i;:::-;1085:8212:36;26691:36:46;26699:1;1085:8212:36;5067:83:55;;26691:36:46;:::i;:::-;26729:18;;;:::i;:::-;26443:325;9882:170:45;:::i;1085:8212:36:-;;;;;6995:93:53;11812:6;1085:8212:36;;;:::i;:::-;6995:23:53;;;;;;:::i;:93::-;11523:372;;;;:::i;:::-;7221:10;11812:6;;:::i;:::-;;;:::i;1085:8212:36:-;;;;;15174:162:45;8187:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;4635:9:35;4621:10;:23;4617:78;;4770:21;:39;;;;1085:8212:36;4766:101:35;;1085:8212:36;4960:18:35;;;;9738:2;9726:9;1085:8212:36;9691:55:35;1085:8212:36;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;4948:31:35;4944:89;;1085:8212:36;;;-1:-1:-1;;1085:8212:36;5097:4:35;1085:8212:36;;;;4944:89:35;5002:20;;;1085:8212:36;5002:20:35;1085:8212:36;;5002:20:35;1085:8212:36;;;4766:101:35;4832:24;;;1085:8212:36;4832:24:35;1085:8212:36;;4832:24:35;4770:39;1085:8212:36;;;;;4770:39:35;;4617:78;4667:17;;;1085:8212:36;4667:17:35;1085:8212:36;;4667:17:35;1085:8212:36;;;;;11806:170:45;11967:8;5351:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;6658:34;:12;;;;;;:::i;20153:30::-;1085:8212:36;;5067:83:55;6658:12:42;10984:36:46;10992:1;5067:83:55;;10984:36:46;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;3983:9:43;1085:8212:36;;;:::i;:::-;;;;;;;:::i;:::-;7189:18:59;;;;;;;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;7393:26:59;;;:::i;:::-;7481:19;1085:8212:36;7593:13:59;1085:8212:36;7608:12:59;;;;;;9381:470;;;;;1085:8212:36;9381:470:59;1085:8212:36;9381:470:59;8235:26;4546:18:47;9381:470:59;;8854:398;;9381:470;1085:8212:36;;:::i;:::-;;6633:32:68;6597:18;;;;:::i;:::-;8235:26:59;6617:14:68;;1085:8212:36;;;:::i;:::-;;;:::i;:::-;4546:18:47;:::i;:::-;1085:8212:36;4773:12:47;;;;;;8235:26:59;1085:8212:36;;;;;;4787:3:47;4920:12;5090:9;6109:8:36;4920:12:47;1085:8212:36;4920:12:47;;;;:::i;:::-;5056:18;8235:26:59;5056:18:47;;;;:::i;:::-;1085:8212:36;;;5090:9:47;;:::i;:::-;1085:8212:36;4758:13:47;;7622:3:59;7756:12;;;;;:::i;:::-;1085:8212:36;8235:26:59;;;;;;;:::i;:::-;8452:13;1085:8212:36;8447:389:59;8467:18;;;;;;8854:398;;;;1085:8212:36;8854:398:59;;1085:8212:36;8854:398:59;1085:8212:36;8854:398:59;;;1085:8212:36;;8235:26:59;8854:398;;;;;1085:8212:36;7593:13:59;;8487:3;8596:11;;;1085:8212:36;8596:11:59;8235:26;8596:11;;;;;:::i;:::-;:18;1085:8212:36;;;;8783:21:59;;;8767:50;8487:3;1085:8212:36;8452:13:59;;;;1085:8212:36;;;;;;;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;2865:34:70;2884:10;;6656:622;;6777:495;;;;;;;;;;;;;;;;6656:622;2865:34;2910:506;;;;;;1085:8212:36;3525:23:70;2910:506;;1085:8212:36;5067:83:55;3525:23:70;;:::i;2910:506::-;;;1085:8212:36;2910:506:70;2884:10;1085:8212:36;2910:506:70;1085:8212:36;2910:506:70;;;;1085:8212:36;;;;;;9095:8:43;1085:8212:36;;;:::i;:::-;;;;3200:18:47;1085:8212:36;;;:::i;:::-;3200:18:47;3081;5822::59;;;1085:8212:36;5822:18:59;6579:76;5822:18;;;;:::i;:::-;1085:8212:36;5947:541:59;;;;;;;;;6579:76;;:::i;:::-;5259:112:68;5301:18;;;;:::i;:::-;5321:14;;;1085:8212:36;5259:112:68;;:::i;1085:8212:36:-;3081:18:47;;:::i;:::-;3200;;;;;:::i;:::-;3365:13;1085:8212:36;3380:18:47;;;;;;5321:14:68;1085:8212:36;;;;;;3400:3:47;3532:12;3636:64;3532:12;1085:8212:36;3532:12:47;;;;:::i;:::-;5321:14:68;3683:16:47;;1085:8212:36;;;3646:10:47;;5943:9:36;3636:64:47;:::i;:::-;;1085:8212:36;3365:13:47;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;9865:71:53;11812:6;1085:8212:36;;;;;:::i;:::-;9865:23:53;;;;:::i;:::-;:71;:::i;:::-;11523:372;;;;:::i;:::-;1085:8212:36;;11812:6:53;;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;14105:9:43;1085:8212:36;;;:::i;:::-;27987:5:46;18900:122:42;;;:::i;:::-;27994:29:46;;;;:58;:29;;;1085:8212:36;27994:58:46;:::i;:::-;28064:18;;;:::i;1085:8212:36:-;;;;;7584:197:46;2829:8:43;1085:8212:36;;;:::i;:::-;;5067:83:55;1085:8212:36;20153:30:42;1085:8212:36;5067:83:55;;20153:30:42;21800:26;20153:30;:::i;:::-;21469:68;7713:36:46;21469:68:42;;;;;:::i;:::-;1085:8212:36;7713:36:46;:::i;1085:8212:36:-;;;;;13776:175:45;13942:8;19303:9:43;1085:8212:36;;;:::i;:::-;14350:177:42;14449:39;:12;;;;;;:::i;14350:177::-;22363:18:46;14449:12:42;22363:18:46;;:::i;1085:8212:36:-;;;;;24603:247:46;9859:8:43;1085:8212:36;;;:::i;:::-;;;;;32359:267:46;19745:9:43;1085:8212:36;;;:::i;:::-;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;2893:10;1085:8212;2423:56:64;1085:8212:36;;;;;;:::i;:::-;2893:10;;;;;;:::i;:::-;1085:8212;;2423:56:64;;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;4290:42:40;-1:-1:-1;;;;;12790:117:60;;;;4290:42:40;:::i;:::-;1085:8212:36;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;11487:137:60;;;;;;1085:8212:36;:::i;:::-;;;;11032:107:60;;;1085:8212:36;:::i;:::-;;;;;;;11806:170:45;11967:8;17071::43;1085:8212:36;;;:::i;:::-;;;;;;;:::i;:::-;6119:335:27;;;;;;;;1085:8212:36;6119:335:27;1085:8212:36;6119:335:27;1085:8212:36;6119:335:27;;1085:8212:36;6119:335:27;;1085:8212:36;;;;;;;;;;;11806:170:45;11967:8;5195::43;1085:8212:36;;;:::i;:::-;;;;;13776:175:45;13942:8;19095::43;1085:8212:36;;;:::i;:::-;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;;;;;;;;;;13373:554:27;1085:8212:36;13373:554:27;;;;1085:8212:36;13373:554:27;;;;;;1085:8212:36;13373:554:27;;;;;;;1085:8212:36;13373:554:27;;1085:8212:36;;;13943:4:27;1085:8212:36;;;;;;;;13776:175:45;13942:8;6739:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;:::i;:::-;6658:53:52;;;;;;:::i;:::-;1085:8212:36;;;;;;;;;6305:83:55;7578:9012:51;;;;;;:::i;:::-;17315:570;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;;1085:8212:36;17315:570:51;1085:8212:36;;17315:570:51;1085:8212:36;17315:570:51;;;1085:8212:36;17315:570:51;7205:121:52;;1085:8212:36;7205:121:52;;;;;;5067:83:55;1085:8212:36;5067:83:55;7488:9:52;;;:::i;:::-;7632:14;;;:::i;:::-;13542:488:60;;;;;;;3956:20:63;;;;:::i;:::-;7745:11:52;;:::i;:::-;1085:8212:36;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;8258:58:53;8422:9;8258:58;;;;:::i;:::-;8422:9;;;;;:::i;1085:8212:36:-;;;;;11806:170:45;11967:8;6035:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;5088:29:48;;1085:8212:36;;;5088:29:48;;;1085:8212:36;-1:-1:-1;1085:8212:36;5088:29:48;1085:8212:36;5088:18:48;-1:-1:-1;;;;;1085:8212:36;5088:29:48;;;;;;1085:8212:36;5088:29:48;1085:8212:36;5088:29:48;;;1085:8212:36;;;;;;;;:::i;:::-;;;;;9882:170:45;10043:8;13871::43;1085:8212:36;;;:::i;:::-;;;;;9882:170:45;10043:8;12205::43;1085:8212:36;;;:::i;:::-;;;;;9882:170:45;10043:8;4667:9:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;3151:8:43;1085:8212:36;;;:::i;:::-;12559:66:42;;;:::i;:::-;8175:18:46;1085:8212:36;8175:18:46;;:::i;:::-;8071:134;1085:8212:36;5689:83:55;15174:162:45;;;:::i;1085:8212:36:-;;;;;3053:53:64;1085:8212:36;;;:::i;:::-;3053:53:64;6411:531:63;6273:675;6411:531;6273:675;6411:531;;;;;;;;;;;;;;;;;;;;;6273:675;;3053:53:64;1085:8212:36;;7168:15;;7158:25;;1085:8212;;;;;;;;;;;:::i;:::-;12498:568:27;;;;;;;;;;;1085:8212:36;12498:568:27;;;1085:8212:36;12498:568:27;;1085:8212:36;12498:568:27;;;;;;;;1085:8212:36;12498:568:27;1085:8212:36;12498:568:27;;;1085:8212:36;;13082:4:27;1085:8212:36;;;;;;;;;10905:9:43;1085:8212:36;;;:::i;:::-;;;;;18482:223:46;13431:8:43;1085:8212:36;;;:::i;:::-;;;;;25784:289:46;11431:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;1317:8:64;1085:8212:36;;;;;;6849:10;1317:8:64;:::i;1085:8212:36:-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;4972:2:27;1085:8212:36;;;;;;;;9882:170:45;10043:8;12803:9:43;1085:8212:36;;;:::i;:::-;;;;;;;:::i;:::-;7189:18:59;;;;;;;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;7393:26:59;;;:::i;:::-;7481:19;1085:8212:36;7593:13:59;1085:8212:36;7608:12:59;;;;;;9381:470;;;;;1085:8212:36;9381:470:59;1085:8212:36;9381:470:59;8235:26;4546:18:47;9381:470:59;;8854:398;;9381:470;1085:8212:36;;:::i;4546:18:47:-;1085:8212:36;4773:12:47;;;;;;8235:26:59;1085:8212:36;;;;;;4787:3:47;4920:12;5090:9;6280::36;4920:12:47;1085:8212:36;4920:12:47;;;;:::i;5090:9::-;1085:8212:36;4758:13:47;;7622:3:59;7756:12;;;;;:::i;:::-;1085:8212:36;8235:26:59;;;;;;;:::i;:::-;8452:13;1085:8212:36;8447:389:59;8467:18;;;;;;8854:398;;;;1085:8212:36;8854:398:59;;1085:8212:36;8854:398:59;1085:8212:36;8854:398:59;;;1085:8212:36;;8235:26:59;8854:398;;;;;1085:8212:36;7593:13:59;;8487:3;8596:11;;;1085:8212:36;8596:11:59;8235:26;8596:11;;;;;:::i;:::-;:18;1085:8212:36;;;;8783:21:59;;;8767:50;8487:3;1085:8212:36;8452:13:59;;;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;8244:18;;:::i;1085:8212::-;;;;;27126:257:46;13225:9:43;1085:8212:36;;;:::i;:::-;;;;;23301:279:46;8361:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;2423:56:64;1085:8212:36;;;;;;;;:::i;:::-;;;2423:56:64;;:::i;1085:8212:36:-;;;;;15174:162:45;3319:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;;:::i;:::-;6777:495:70;;;4416:10;6777:495;;;;;;;;;;;;;;4442:510;;;;;;;;;5004:44;1085:8212:36;;;;;4416:10:70;;5004:44;:::i;4442:510::-;;;1085:8212:36;4442:510:70;1085:8212:36;4442:510:70;1085:8212:36;4442:510:70;;1085:8212:36;;;;;13776:175:45;13942:8;20421::43;1085:8212:36;;;:::i;:::-;;;;;28390:289:46;14825:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1085:8212:36;;;;8794:2:60;8778:18;;;8720:10;:23;;8748:21;;:25;;1422:62:55;;8778:18:60;:106;;1085:8212:36;1422:62:55;;;2730:33:40;2726:278;;2663:28:60;;;:::i;:::-;2702:1053;;;;;;;;;;;;;1085:8212:36;2702:1053:60;;;1085:8212:36;2702:1053:60;;;;1085:8212:36;;2702:1053:60;-1:-1:-1;;;;;1085:8212:36;;;;;;;2702:1053:60;;;1085:8212:36;2702:1053:60;1085:8212:36;2702:1053:60;1085:8212:36;2702:1053:60;;;;2726:278:40;2779:215;1085:8212:36;2779:215:40;1085:8212:36;2779:215:40;1085:8212:36;2779:215:40;;8778:106:60;1085:8212:36;;;;;;;;14773:133:28;;1085:8212:36;14773:133:28;;1085:8212:36;14773:133:28;;-1:-1:-1;;;;;1085:8212:36;8823:60:60;;-1:-1:-1;;;;;;8801:8:60;;1085:8212:36;;8801:16:60;;;905:63:55;;8778:106:60;;;;1085:8212:36;;;;;;;;;;;;;;;;2310:667:59;3084:71:68;1085:8212:36;;;:::i;:::-;;2310:667:59;-1:-1:-1;;;;;;;;;;;2310:667:59;;;;;;;;1085:8212:36;2310:667:59;;;3010:8:68;2310:667:59;1085:8212:36;2310:667:59;;;;;;;;;;;2947:11:68;2310:667:59;2947:11:68;;1085:8212:36;12790:117:60;2062:9:69;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;9307:42;:::i;3010:8:68:-;2310:667:59;3106:18:68;12790:117:60;3106:18:68;;;:::i;:::-;3139:15;;1085:8212:36;2310:667:59;;5309:9:36;3084:71:68;:::i;1085:8212:36:-;;;;;9882:170:45;10043:8;11247:9:43;1085:8212:36;;;:::i;:::-;;;;;22797:233:46;20187:9:43;1085:8212:36;;;:::i;:::-;18346:12:42;18229:195;18346:39;:12;;;;;;:::i;1085:8212:36:-;;;;;30973:299:46;18065:9:43;1085:8212:36;;;:::i;:::-;20153:30:42;8756:39;:12;;;;;;:::i;20153:30::-;31135:29:46;:58;1085:8212:36;31135:29:46;;1085:8212:36;31135:58:46;:::i;:::-;8756:12:42;31195:36:46;31203:1;1085:8212:36;5067:83:55;;31195:36:46;:::i;:::-;31233:18;;;:::i;1085:8212:36:-;;;;3200:18:47;1085:8212:36;;;:::i;:::-;3200:18:47;3081;5822::59;;;1085:8212:36;5822:18:59;6579:76;5822:18;;;;:::i;3200::47:-;3365:13;1085:8212:36;3380:18:47;;;;;;5321:14:68;1085:8212:36;;;;;;3400:3:47;3532:12;3636:64;3532:12;1085:8212:36;3532:12:47;;;;:::i;:::-;5321:14:68;3683:16:47;;1085:8212:36;;;3646:10:47;;5782:8:36;3636:64:47;:::i;:::-;;1085:8212:36;3365:13:47;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;;;486:99:58;1085:8212:36;486:99:58;1085:8212:36;;486:99:58;1085:8212:36;;;;;16430:191:46;10261:8:43;1085:8212:36;;;:::i;:::-;;;;;7584:197:46;2993:9:43;1085:8212:36;;;:::i;:::-;;;;;15174:162:45;9663:9:43;1085:8212:36;;;:::i;:::-;;;;;11806:170:45;11967:8;15405::43;1085:8212:36;;;:::i;:::-;20153:30:42;11858:34;:12;;;;;;:::i;20153:30::-;5067:83:55;21469:68:42;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;11858:12:42;29237:58:46;:29;;;1085:8212:36;29237:58:46;:::i;:::-;1085:8212:36;29297:36:46;29305:1;1085:8212:36;5067:83:55;;29297:36:46;:::i;:::-;29335:18;;;:::i;1085:8212:36:-;;;;;20609:223:46;16847:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;5874:31:70;1085:8212:36;;:::i;:::-;;;5874:31:70;6656:622;;6777:495;;;;;;;;;;;;;;;;6656:622;5874:31;5916:329;1085:8212:36;;5916:329:70;;;;;;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;8547:181:46;3681:9:43;1085:8212:36;;;:::i;:::-;8681:5:46;25394:148:42;1085:8212:36;;5067:83:55;;25394:148:42;;:::i;1085:8212:36:-;;;;;13314:239:46;7097:9:43;1085:8212:36;;;:::i;:::-;;;;;15363:230:46;8719:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;:::i;:::-;1457:10:40;:58;:29;:10;:29;:::i;:::-;:58;:::i;:::-;1576:75;1085:8212:36;1701:1:40;1085:8212:36;;1717:13:40;1751:7;;;;;;1085:8212:36;;;1978:4:40;1085:8212:36;;;1760:9:40;1085:8212:36;;1925:10:40;1457;1789:89;;1925:10;:::i;:::-;1085:8212:36;1744:207:40;;1085:8212:36;;;;;22797:233:46;19961:8:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;3855:55:52;1085:8212:36;;4365:14:52;1085:8212:36;;;;;;:::i;:::-;;;;4221:9:52;1085:8212:36;5067:83:55;;3486:60:52;1085:8212:36;5067:83:55;;3486:60:52;:::i;:::-;3733:53;;;;:::i;:::-;3855:55;;;;;;;;;;:::i;:::-;1085:8212:36;3973:79:52;;;1085:8212:36;4200:5:52;5067:83:55;;;;4221:9:52;;:::i;:::-;4365:14;:::i;1085:8212:36:-;;;;;19482:240:46;15009:8:43;1085:8212:36;;;:::i;:::-;20153:30:42;10650:34;:12;;;;;;:::i;20153:30::-;5067:83:55;10650:12:42;21469:68;5067:83:55;;21469:68:42;;;:::i;:::-;1085:8212:36;19645:36:46;19653:1;1085:8212:36;5067:83:55;;19645:36:46;:::i;1085:8212:36:-;;;;;19482:240:46;15203:9:43;1085:8212:36;;;:::i;:::-;;;;;8547:181:46;3495:8:43;1085:8212:36;;;:::i;:::-;;;;;21628:250:46;18463:9:43;1085:8212:36;;;:::i;:::-;;;;:::i;:::-;9307:42:60;-1:-1:-1;;;;;12790:117:60;;;;;;;9307:42;:::i;:::-;1085:8212:36;;;;;;7602:1659:68;;;1085:8212:36;7602:1659:68;;;1085:8212:36;7602:1659:68;;;;;;;;;;;;;;7255:10:27;7602:1659:68;;;;7255:10:27;1085:8212:36;7602:1659:68;;;;;;;;;;;;;;12790:117:60;7602:1659:68;;;;;1085:8212:36;7602:1659:68;-1:-1:-1;;;7602:1659:68;;;7335:1429:27;;;;7602:1659:68;7335:1429:27;7255:10;7335:1429;;;1085:8212:36;7335:1429:27;1085:8212:36;;7335:1429:27;;;;;;;;;;;;;;;;1085:8212:36;7335:1429:27;1085:8212:36;;7335:1429:27;;;;;;;;;;;;;7255:10;1085:8212:36;7335:1429:27;7602:1659:68;7335:1429:27;7255:10;-1:-1:-1;;;;;;;;;;;1085:8212:36;;7335:1429:27;7602:1659:68;1085:8212:36;;8837:4:27;1085:8212:36;;;;;;;;14399:223:46;7865:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;8968:151;;;;;;;;;1085:8212;;;;;9412:229:46;4321:9:43;1085:8212:36;;;:::i;:::-;;;;;30973:299:46;17861:8:43;1085:8212:36;;;:::i;:::-;;;;;11806:170:45;11967:8;15617:9:43;1085:8212:36;;;:::i;:::-;;;;;;-1:-1:-1;;1085:8212:36;;;;;;-1:-1:-1;;;;;;1085:8212:36;;;;;;;14196:182:27;1085:8212:36;14196:182:27;1085:8212:36;;14196:182:27;;;;;;;;1085:8212:36;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;:::i;:::-;5633:184:27;1085:8212:36;5633:184:27;;;1085:8212:36;;;5633:184:27;1085:8212:36;;;5633:184:27;;1085:8212:36;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;-1:-1:-1;;;4780:27:48;;1085:8212:36;;;4780:27:48;;;1085:8212:36;-1:-1:-1;4780:27:48;;;:18;-1:-1:-1;;;;;1085:8212:36;4780:27:48;;;;;;1085:8212:36;4780:27:48;1085:8212:36;4780:27:48;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;-1:-1:-1;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;1085:8212:36;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;7205:121:52;;1085:8212:36;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;:::o;:::-;-1:-1:-1;;;;;1085:8212:36;;;;;;-1:-1:-1;;1085:8212:36;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1085:8212:36;;;;;;;;;;;;;;:::o;4176:2284:65:-;;;;;4275:4;;:::i;:::-;-1:-1:-1;;;;;1085:8212:36;;4557:19:65;1085:8212:36;;4146:221:31;-1:-1:-1;4146:221:31;;;;;;;;;;;4553:627:65;5190:1169;;;;;;;-1:-1:-1;5190:1169:65;;-1:-1:-1;5190:1169:65;;;;;;;;;;;-1:-1:-1;5190:1169:65;;;;;;;;;1085:8212:36;;;;;5190:1169:65;-1:-1:-1;;;;;;;;;;;5190:1169:65;;;;;:::i;:::-;6449:4;4176:2284;:::o;4146:221:31:-;;-1:-1:-1;4146:221:31;;;;4553:627:65;4785:4;;;4761:30;4785:4;4761:30;;:::i;:::-;13593:806:31;;;;;;;;-1:-1:-1;13593:806:31;;-1:-1:-1;13593:806:31;;;;;;;;;-1:-1:-1;13593:806:31;;;;;;;5125:30:65;13593:806:31;-1:-1:-1;13593:806:31;;4785:4:65;5125:30;;:::i;:::-;1085:8212:36;;4553:627:65;;;13593:806:31;;-1:-1:-1;13593:806:31;;;;1085:8212:36;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1085:8212:36;;;;;;;:::o;4367:145:48:-;4452:25;4487:17;981:749:54;;;;4367:145:48;:::o;981:749:54:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4367:145:48;:::o;1085:8212:36:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;2947:3169:53:-;;;;;:::i;:::-;3405:1072;;1085:8212:36;;;;;;3405:1072:53;;;;;;;;;;;;;;;;;;;;;;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;;7277:40;;;:::i;:::-;4791:93:53;;;2947:3169;4974:52;5028:12;;;;;;6009:6;;;;;;;:::i;:::-;2947:3169::o;5042:3::-;5174:16;;;;;:::i;:::-;1085:8212:36;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;-1:-1:-1;;;;;1085:8212:36;;5559:36:53;;5555:300;;5042:3;-1:-1:-1;5322:1:53;;1085:8212:36;6009:6:53;;3405:1072;1085:8212:36;;;;-1:-1:-1;;;;;1085:8212:36;;6009:6:53;:::i;:::-;1085:8212:36;4974:52:53;;5555:300;6009:6;5681:43;;;;3405:1072;5681:43;;5322:1;5681:43;;;:::i;:::-;5555:300;;;;;;;;4791:93;4863:9;3405:1072;;4863:9;;;:::i;:::-;4791:93;;;3405:1072;;-1:-1:-1;3405:1072:53;;;;2950:460:48;3018:12;;1085:8212:36;3018:12:48;;;1085:8212:36;;;;;1409:20:48;1085:8212:36;1409:20:48;;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;20153:30:42;5067:83:55;;1409:20:48;20382:26:42;20153:30;:::i;:::-;1085:8212:36;;3065:283:48;;3358:12;;;1085:8212:36;3358:12:48;;;1085:8212:36;3065:283:48;;;1085:8212:36;;;;;;;;;;;;3065:283:48;1409:20;5514:59:35;2950:460:48:o;1085:8212:36:-;-1:-1:-1;6052:14:35;1085:8212:36;;;;;;3065:283:48;1409:20;6082:67:35;2950:460:48:o;6048:208:35:-;3065:283:48;1409:20;6179:67:35;2947:3169:53:o;3065:283:48:-;;;;;;;;;1085:8212:36;;32705:531:59;21015:4:42;5067:83:55;;;1409:20:48;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;20153:30:42;32705:531:59;-1:-1:-1;32705:531:59;1409:20:48;8797:51:42;20153:30;:::i;:::-;1085:8212:36;;;;-1:-1:-1;32705:531:59;;-1:-1:-1;32705:531:59;;;;;;;;;;20153:30:42;;1409:20:48;20664:42:42;20153:30;:::i;1085:8212:36:-;6699:60:35;1409:20:48;6699:60:35;1085:8212:36;;;;-1:-1:-1;;1085:8212:36;;;;;;1409:20:48;7298:68:35;1085:8212:36;;;7264:210:35;1409:20:48;7396:68:35;7264:210;;19260:739:31;19403:590;;;19260:739;;;;19403:590;;;;;;;;;;;;;;;;19260:739;:::o;3597:97:48:-;3649:14;;1085:8212:36;3649:14:48;;;1085:8212:36;8260:14:35;;;1085:8212:36;;;;;;;;;;;;7806:55:35;1409:20:48;7806:55:35;3597:97:48:o;1085:8212:36:-;-1:-1:-1;8260:14:35;1085:8212:36;;;;;;8260:14:35;1409:20:48;8290:63:35;3597:97:48:o;8256:200:35:-;8260:14;1409:20:48;8383:63:35;2947:3169:53:o;1085:8212:36:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;;;:::o;1742:710:54:-;1871:575;1742:710;1871:575;;;;;;;;;;;;;;;;;;;;;;;;;;1742:710;:::o;36947:606:59:-;;37029:518;;;-1:-1:-1;;;;;;;;;;;37029:518:59;;-1:-1:-1;;;;;;;;;;;37029:518:59;;-1:-1:-1;;;;;;;;;;;37029:518:59;;;;;;;;36947:606::o;18139:956:51:-;18258:831;18139:956;18258:831;;;;;;;;;;;;18139:956;:::o;19699:1824:52:-;;19834:32;;:::i;:::-;20564:30;20400:71;20142:166;;;;;;20400:23;;;:::i;:71::-;20588:4;;20564:30;;:::i;:::-;20605:912;;;;;;;;;;;;;20588:4;20605:912;;;;;;;;;;;;;;;;;;;;;;;;19699:1824;:::o;19362:712:51:-;19450:618;;19362:712;19450:618;;;;;;;;;;;;;;;;;;;;;;;;;19362:712::o;21931:1560:52:-;;;;22196:1289;21931:1560;;22196:1289;21931:1560;;;22165:20;;;:::i;:::-;22196:1289;;;;;;;;;;;;;;;;;;;;;;;;;;;;21931:1560::o;22196:1289::-;;;;;;;;;;1450:776:50;1665:30;1450:776;;;;1689:4;1665:30;;:::i;:::-;1757:237;;;;;;;2179:29;1085:8212:36;;2179:29:50;;:::i;1757:237::-;;;;;;;16149:279:60;14888:947;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16303:119;;;14888:947;13542:488;16303:119;;1085:8212:36;14888:947:60;1085:8212:36;;14888:947:60;;;;;;;;;;16303:119;;;;16149:279;:::o;7544:445::-;-1:-1:-1;;;7626:357:60;;;;;;7544:445;:::o;7626:357::-;;;;;;;;;898:148:49;3299:1046;;;;;453:10;3299:1046;;;;;;;;;;;;;;;;;;;;;;;;;;;898:148::o;3299:1046::-;-1:-1:-1;;;3299:1046:49;;;;;9633:516:68;;9844:29;:23;;;1085:8212:36;9844:29:68;:::i;:::-;1085:8212:36;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;;;;;;10132:9:68;10039:18;;;;;:::i;:::-;;;;;:::i;:::-;10098:10;10132:9;:::i;10716:1453::-;;;;11213:20;;11359:35;;;;5337:33;11359:35;:::i;:::-;1359::69;1434:9;1359:35;;;:::i;:::-;1434:9;;;:::i;:::-;11645:13:68;-1:-1:-1;;;;;11657:1:68;1085:8212:36;;11640:253:68;11660:19;;;;;;11960:203;;;;;;10716:1453::o;11960:203::-;;11232:1;11960:203;;;;11681:3;11815:35;;;;11657:1;11815:35;;-1:-1:-1;;;;;11815:35:68;;;;5337:33;11815:35;:::i;:::-;1085:8212:36;11815:50:68;;11799:79;11681:3;1085:8212:36;11645:13:68;;;;;10716:1453;;;;;11213:20;;11359:35;;;;;;:::i;:::-;1359::69;1434:9;1359:35;;;:::i;1434:9::-;11645:13:68;-1:-1:-1;;;;;11657:1:68;1085:8212:36;;11640:253:68;11660:19;;;;;;11960:203;;;;;;;10716:1453::o;11681:3::-;11815:35;;;;;11657:1;11815:35;;-1:-1:-1;;;;;11815:35:68;;;;;;:::i;:::-;1085:8212:36;11815:50:68;;11799:79;11681:3;1085:8212:36;11645:13:68;;;;;;4999:850:63;;;5399:1;5402:20;;;;;;5831:11;;;;5783:1;4999:850;:::o;5424:3::-;5561:27;5787:8;5561:27;;5783:1;5561:27;;;;:::i;:::-;1085:8212:36;;;;;;5690:10:63;5787:8;:::i;:::-;1085:8212:36;5387:13:63;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1651:1664:63:-;;;;;1787:1522;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1787:1522:63;;;;;;-1:-1:-1;;;;;1787:1522:63;;;;;;;1651:1664::o;1787:1522::-;;;;;;;;;6488:1750:45;;;;;;;;;7088:592;;;;;;;;;;;;;;;7822:2;;;;;:::i;:::-;5410:327:69;;;;;1085:8212:36;;8064:167:45;1085:8212:36;;;;8074:134:45;1085:8212:36;;7088:592:45;1085:8212:36;;;;;7088:592:45;;;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;8074:134:45;;:::i;:::-;8064:167;;:::i;:::-;6488:1750;:::o;5410:327:69:-;;;;;;7088:592:45;5410:327:69;7088:592:45;5410:327:69;;;;4509:499:60;;;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;4976:3;1085:8212:36;;4941:3:60;1085:8212:36;;;;4884:61:60;:96;4509:499;:::o;:::-;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;1085:8212:36;;;;4976:3:60;1085:8212:36;4884:116:60;;4509:499;:::o;6455:374::-;;;1085:8212:36;6455:374:60;;;;;;4509:499;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;4976:3;1085:8212:36;;;;4884:96:60;4509:499;:::o;:::-;;6416:28;;;:::i;:::-;-1:-1:-1;;;6455:374:60;;;2702:1053;;6455:374;;;4976:3;1085:8212:36;;4941:3:60;1085:8212:36;;;;4884:61:60;:96;:116;4509:499;:::o;2678:1277:50:-;;;2755:1194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;;;;2755:1194:50;;-1:-1:-1;;;;;;;;;;;2755:1194:50;;;2678:1277::o;7578:9012:51:-;;;;;;;;;;;-1:-1:-1;7578:9012:51;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;-1:-1:-1;;7578:9012:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;7578:9012:51;-1:-1:-1;;;;;;;;;;;7578:9012:51;;-1:-1:-1;;;;;;;;;;;7578:9012:51;;;;;;:::o;:::-;;-1:-1:-1;7578:9012:51;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;-1:-1:-1;7578:9012:51;;;;;;;;;;;;;;;;-1:-1:-1;7578:9012:51;;;;-1:-1:-1;7578:9012:51;;5295:557:60;-1:-1:-1;;;5398:448:60;;;;5295:557;5398:448;;;;5295:557;:::o;10557:505:53:-;;;10744:30;10768:4;10744:30;;:::i;:::-;9254:988:31;;;;;;10768:4:53;9254:988:31;;10865:10:53;9254:988:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;11040:14:53;9254:988:31;;;;;;11040:14:53;:::i;9254:988:31:-;;;;;;;4719:320:69;4801:209;;;;;;4719:320;:::o;4801:209::-;;;;;;;1932:568:57;;2035:459;;;;;;;;;;;;1932:568::o;1085:8212:36:-;-1:-1:-1;;;;;1085:8212:36;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;7205:121:52;1085:8212:36;7205:121:52;;1085:8212:36;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;16358:2747:52:-;;;16614:37;;:::i;:::-;-1:-1:-1;;;;;16956:1264:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;18295:58;16956:1264;;;;;;18295:58;:::i;:::-;18401:26;;;;:::i;:::-;18492:199;;;16358:2747;1085:8212:36;;;;18986:112:52;27026:43;;;:::i;:::-;27216:19;-1:-1:-1;27295:13:52;-1:-1:-1;27310:32:52;;;;;;28096:286;;;;;;16358:2747;:::o;28096:286::-;;-1:-1:-1;28096:286:52;;;;27344:3;1085:8212:36;28037:30:52;1085:8212:36;;;;;;;;27442:55:52;:61;:55;;;;;:::i;:::-;:61;:::i;:::-;1085:8212:36;;;;;;10621:113:60;;-1:-1:-1;;;;;10621:113:60;;;;;27698:17:52;;;;27682:46;27781:16;27864:54;27781:16;27864:54;;;:::i;:::-;1085:8212:36;28061:4:52;28037:30;;:::i;:::-;28018:49;;;;:::i;:::-;1085:8212:36;;27295:13:52;;;;;18492:199;18571:9;16956:1264;;;18571:9;;:::i;:::-;1085:8212:36;;;;;;16956:1264:52;1085:8212:36;;;18492:199:52;;;3614:3121:51;;3816:2913;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3816:2913:51;;-1:-1:-1;;3816:2913:51;;;;;-1:-1:-1;3614:3121:51:o;3816:2913::-;;;;;;;;;;;;;;;;;;;;;;;;24121:1723:52;1085:8212:36;;;;;;24121:1723:52;;;;1085:8212:36;24844:32:52;;;;;;25511:258;;;;;;;;;;;;:::i;24878:3::-;1085:8212:36;25446:29:52;1085:8212:36;;;;25064:4:52;24978:92;25064:4;24978:67;:61;25064:4;24978:61;;;;:::i;:67::-;:92;:::i;:::-;25105:23;25395:49;25105:23;;;;:::i;:::-;1085:8212:36;25273:30:52;;;;;25257:59;25395:49;;;:::i;:::-;1085:8212:36;;;25446:29:52;;;:::i;:::-;1085:8212:36;24829:13:52;;1085:8212:36;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;7205:121:52;1085:8212:36;7205:121:52;;1085:8212:36;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;:::o;33488:1350:59:-;1085:8212:36;;;;;;33842:4:59;1085:8212:36;;;;;;;33821:26:59;;;:::i;:::-;33933:13;-1:-1:-1;33948:12:59;;;;;;34627:205;;;34131:462;34627:205;;34131:462;;34627:205;33488:1350;:::o;33962:3::-;34103:9;;1085:8212:36;34103:9:59;;;;:::i;:::-;33842:4;34131:462;;1085:8212:36;34131:462:59;;;;;;;;;;;;;;;1085:8212:36;33933:13:59;;2568:2676:45;3056:1056;;;;-1:-1:-1;;;;;3056:1056:45;;2568:2676;;;;;;;3056:1056;;2568:2676;;3056:1056;;;;;;;;;;;;2568:2676;;3056:1056;;;2568:2676;4171:13;3056:1056;;;;4171:13;:::i;:::-;1359:35:69;;;:::i;:::-;3056:1056:45;;;;;1434:9:69;;;;:::i;:::-;4384:262:45;;;;;4805:28;;;;4759:41;;;;1422:62:55;4758:134:45;;;;5140:15;4758:134;5227:9;4758:134;;;2568:2676;4754:236;;;;;2568:2676;3056:1056;;;;;;;;;5140:15;;:::i;:::-;5227:9;;:::i;4754:236::-;4956:22;3056:1056;;;4956:22;;;:::i;:::-;4754:236;;;;;4758:134;7498:53:63;;;6411:531;6273:675;6411:531;6273:675;6411:531;;;;;;;;;;;;;;;;;;;;;6273:675;;7498:53;7555:15;-1:-1:-1;7498:72:63;4758:134:45;;;;;9841:2874:47;;;;;;;;11273:135;9841:2874;;;10515:537;;;;;;;;;;;;;;;;;11153:9;:28;:9;;;;:::i;:::-;1085:8212:36;12790:117:60;;-1:-1:-1;;;;;12790:117:60;;12702:211;11153:28:47;11273:135;;;;:::i;:::-;11710:9;;;;;:::i;:::-;11742:12;12034:40;10515:537;11851:100;1085:8212:36;;;11781:16:47;;;;;1085:8212:36;11851:25:47;;;;1085:8212:36;11851:100:47;:::i;:::-;11830:16;;1422:62:55;12034:40:47;;;;;:::i;:::-;;-1:-1:-1;;;;;12203:1:47;1085:8212:36;;12186:423:47;12206:15;;;;;;12664:11;;;;;;;;;;;;:::i;12223:3::-;12258:9;;;;;:::i;:::-;1085:8212:36;;12329:16:47;;;;11781;12329;;1085:8212:36;12422:25:47;;;10515:537;12422:25;1085:8212:36;12422:100:47;;;;:::i;:::-;12790:117:60;;;;-1:-1:-1;;;;;12790:117:60;12379:38:47;;1422:62:55;12363:172:47;12554:40;;;;;;;:::i;:::-;;12203:1;1085:8212:36;12191:13:47;;1085:8212:36;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;35089:1381:59:-;1085:8212:36;;;;;;35453:4:59;1085:8212:36;;;;;;;35432:26:59;;;:::i;:::-;35544:13;-1:-1:-1;35559:12:59;;;;;;36259:205;;;35747:478;36259:205;;35747:478;;36259:205;35089:1381;:::o;35573:3::-;35719:9;;1085:8212:36;35719:9:59;;;;:::i;:::-;35453:4;35747:478;;1085:8212:36;35747:478:59;;;;;;;;;;;;;;;1085:8212:36;35544:13:59;;3959:187:48;4032:27;4028:69;;5767:105;;;;3959:187;:::o;19512:2305:59:-;19760:2051;19512:2305;;19760:2051;;19512:2305;19760:2051;;;;;;;-1:-1:-1;;;;;;;;;;;19760:2051:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19760:2051:59;;;;;;19512:2305;:::o;2298:320:69:-;2354:258;;;;;;2298:320;:::o;2354:258::-;;;;;;;;;3290:686;2577:519:54;;;;-1:-1:-1;2577:519:54;;;;;;;;;;;;;;;;;3290:686:69;;2577:519:54;;3290:686:69;;6576:3996:32;;;;;;-1:-1:-1;;;;;6576:3996:32;;;;;;;;;3641:329:69;;;;;;;;;;;;;3290:686::o;3641:329::-;;-1:-1:-1;3641:329:69;6576:3996:32;3641:329:69;;6576:3996:32;;;;;;;;;2577:519:54;6576:3996:32;;;-1:-1:-1;6576:3996:32;;;;;;;2577:519:54;6576:3996:32;;;-1:-1:-1;6576:3996:32;;;2577:519:54;6576:3996:32;;;;;;;;;;;;;;;;2577:519:54;6576:3996:32;;;;;;;;;;;;;;;-1:-1:-1;;;6576:3996:32;;;;;;;;;;;;;2577:519:54;6576:3996:32;;;-1:-1:-1;6576:3996:32;2577:519:54;6576:3996:32;2577:519:54;6576:3996:32;;;2577:519:54;6576:3996:32;;-1:-1:-1;6576:3996:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;6576:3996:32;;2577:519:54;6576:3996:32;;;;;;;;;;;2577:519:54;6576:3996:32;;;;;;;;;;;;;;2577:519:54;6576:3996:32;-1:-1:-1;;;;;6576:3996:32;;;1085:8212:36;6576:3996:32;-1:-1:-1;1085:8212:36;6576:3996:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;6576:3996:32;;2577:519:54;6576:3996:32;;;;;;;;;;1099:568:57;1194:467;;;;;;-1:-1:-1;;;;;1194:467:57;;;;;;;;;;;;1099:568::o;22429:3319:59:-;22686:3056;;;;;;;-1:-1:-1;;;;;;;;;;;22686:3056:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22686:3056:59;;;;;;22429:3319;:::o;22686:3056::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22686:3056:59;;;14160:2308:47;;;;;;;;15357:135;14160:2308;14837:299;;;;;;;;;;;15237:9;:28;:9;;;;:::i;:28::-;15357:135;;;;:::i;:::-;15613:16;;15783:13;-1:-1:-1;;;;;;1085:8212:36;;15778:538:47;15798:15;;;;;;16417:11;;;;;;;;;;:::i;15815:3::-;15889:9;16190:111;15889:9;;1085:8212:36;15889:9:47;;;;:::i;:::-;1085:8212:36;;16015:45:47;;;-1:-1:-1;;;;;16015:45:47;;;;:::i;:::-;12790:117:60;;;;15972:38:47;;1422:62:55;15956:117:47;16190:23;;14837:299;16190:23;;;;;;:::i;:::-;16259:30;;;;1085:8212:36;16190:111:47;;:::i;:::-;;1085:8212:36;15783:13:47;;20720:384:42;20153:30;20720:384;20936:98;21015:4;5067:83:55;;;20936:98:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;20936:98:42;20862:235;8797:51;20153:30;:::i;19628:745:47:-;;;;20027:1;20030:15;;;;;;19628:745;;;;;:::o;20047:3::-;20176:13;20279:63;20176:13;1085:8212:36;20176:13:47;;;;:::i;:::-;20301:18;20325:16;20301:18;;;:::i;:::-;20325:16;;1085:8212:36;20289:10:47;;20279:63;;:::i;:::-;;1085:8212:36;20015:13:47;;6324:381:69;6418:281;;;;;;;;;;6324:381;:::o;6418:281::-;;;;;;;;;6454:1983:47;;;;7956:137;6454:1983;;;;;;7154:711;;;;;;;;;;;;;;12790:117:60;-1:-1:-1;;;;;12790:117:60;;;;7956:137:47;;:::i;:::-;;8236:2;7154:711;7956:137;8347:83;7956:137;8236:2;;:::i;:::-;7154:711;;;;;;;;8347:83;:::i;30933:1265:59:-;31095:1097;30933:1265;31095:1097;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30933:1265;:::o;8318:262:69:-;;8527:45;8318:262;;8527:45;:::i;:::-;8498:24;;1422:62:55;8318:262:69;:::o;20573:345:47:-;20709:203;;20573:345::o;14317:1060:59:-;14489:882;14317:1060;14489:882;;;;-1:-1:-1;;;;;;;;;;;14489:882:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14317:1060;:::o;7335:204:69:-;11032:107:60;;1085:8212:36;;;;;;7512:19:69;7496:35;7454:36;;;905:63:55;7335:204:69;:::o;17378:1707:47:-;;;;;;17782:1;17816:16;;;17984:13;17782:1;17999:15;;;;;;18689:29;;;;;;;;;18673:58;18741:316;;19067:11;;1085:8212:36;17378:1707:47;:::o;18741:316::-;;17782:1;18741:316;18122:16;18741:316;;;;;;18016:3;18075:12;18499:50;18122:16;18075:12;;;18518:18;18075:12;1085:8212:36;18075:12:47;;;;:::i;:::-;18122:16;;;1085:8212:36;;;;;18310:32:47;;;18294:61;18373:32;18518:18;;:::i;:::-;18499:50;;;:::i;:::-;;1085:8212:36;17984:13:47;;28999:1456:59;;29139:1310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28999:1456;:::o;1085:8212:36:-;20153:30:42;1085:8212:36;5067:83:55;;20153:30:42;20382:26;20153:30;:::i;1085:8212:36:-;;21469:68:42;20153:30;21780:4;5067:83:55;;;20153:30:42;21800:26;20153:30;:::i;:::-;5067:83:55;;;;21469:68:42;;:::i;1085:8212:36:-;24400:277:42;1085:8212:36;24511:109:42;24601:4;5067:83:55;;;24511:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24511:109:42;24400:277;;:::i;:::-;24393:284;;1085:8212:36:o;:::-;23950:250:42;1085:8212:36;24052:100:42;24133:4;5067:83:55;;;24052:100:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;24052:100:42;23950:250;;:::i;1085:8212:36:-;;21469:68:42;20153:30;22563:107;22651:4;5067:83:55;;;22563:107:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;22563:107:42;20153:30;11894:54;20153:30;:::i;1085:8212:36:-;;21469:68:42;20153:30;22104:98;22183:4;5067:83:55;;;22104:98:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;;26376:277:42;1085:8212:36;26496:109:42;26586:4;5067:83:55;;;26496:109:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;26496:109:42;26376:277;;:::i;:::-;26369:284;;;;;1085:8212:36:o;:::-;26926:304:42;1085:8212:36;27055:118:42;27154:4;5067:83:55;;;27055:118:42;1085:8212:36;32705:531:59;1085:8212:36;32705:531:59;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;;27055:118:42;26926:304;;:::i;1085:8212:36:-;;;;;;;;;28508:137:59;1085:8212:36;28508:137:59;;;27779:134;1085:8212:36;27779:134:59;;;27062:128;1085:8212:36;27062:128:59;;;15848:748;1085:8212:36;15848:748:59;;;26336:125;1085:8212:36;26336:125:59;;;10532:988;1085:8212:36;10532:988:59;;;1085:8212:36;32705:531:59;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;32705:531:59;;;;;;;;-1:-1:-1;32705:531:59;;;;;;-1:-1:-1;32705:531:59;1085:8212:36;:::o;:::-;10532:988:59;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10532:988:59;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;:::o;:::-;5067:83:55;26336:125:59;5067:83:55;;;26336:125:59;;:::i;1085:8212:36:-;15848:748:59;;;;;;;;;-1:-1:-1;;;;;;;;;;;15848:748:59;;;;;;;;;;;;;;;;;1085:8212:36;:::o;:::-;5067:83:55;27062:128:59;5067:83:55;27105:4:59;5067:83:55;;;27062:128:59;;:::i;1085:8212:36:-;5067:83:55;27779:134:59;5067:83:55;;;27779:134:59;;:::i;1085:8212:36:-;5067:83:55;28508:137:59;5067:83:55;28560:4:59;5067:83:55;;;28508:137:59;;:::i;1085:8212:36:-;;12113:1798:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;17159:1746:59;1085:8212:36;;;;17159:1746:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;12113:1798:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;17159:1746:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;;:::o;:::-;;;;;;;;;12790:117:60;1085:8212:36;12790:117:60;;;1085:8212:36;12790:117:60;;;1085:8212:36;;;11232:1:68;1085:8212:36;;;;;11232:1:68;1085:8212:36;;20153:30:42;;11232:1:68;20153:30:42;:::i;1085:8212:36:-;13584:17:68;11232:1;13584:17;;-1:-1:-1;;;;;13584:17:68;;:::i;:::-;1085:8212:36;12790:117:60;;;1085:8212:36;:::o;:::-;-1:-1:-1;1085:8212:36;;;;12790:117:60;;-1:-1:-1;;;;;12790:117:60;;1085:8212:36:o;:::-;;;;;;12790:117:60;1085:8212:36;12790:117:60;;;1085:8212:36;12790:117:60;;;1085:8212:36;;;;;;;;;;;;20153:30:42;;;:::i;1085:8212:36:-;13584:17:68;;;;-1:-1:-1;;;;;13584:17:68;;:::i;1085:8212:36:-;12846:17:68;;;;-1:-1:-1;;;;;12846:17:68;;:::i;1085:8212:36:-;;;23142:88:42;1085:8212:36;23094:30:42;;;:::i;:::-;5067:83:55;;;;23164:4:42;5067:83:55;;;23142:88:42;14490:36;23142:88;:::i;:::-;1085:8212:36;;:::o;:::-;;;23142:88:42;1085:8212:36;23094:30:42;;;:::i;:::-;5067:83:55;;;;23164:4:42;5067:83:55;;;23142:88:42;15709:45;23142:88;:::i;1085:8212:36:-;;25042:30:42;25103:73;1085:8212:36;25042:30:42;17045:42;25042:30;:::i;:::-;5067:83:55;;;;25157:4:42;5067:83:55;;;25103:73:42;;:::i;1085:8212:36:-;;25042:30:42;25103:73;1085:8212:36;25042:30:42;25509:32;25042:30;:::i;1085:8212:36:-;;26065:73:42;26119:4;1085:8212:36;23669:88:42;1085:8212:36;23621:30:42;;;:::i;:::-;5067:83:55;;;;;;;23691:4:42;5067:83:55;;23669:88:42;18387:36;23669:88;:::i;:::-;5067:83:55;;;;26065:73:42;;:::i;1085:8212:36:-;;26065:73:42;26119:4;1085:8212:36;23669:88:42;1085:8212:36;23621:30:42;;;:::i;:::-;5067:83:55;;;;;;;23691:4:42;5067:83:55;;23669:88:42;19848:45;23669:88;:::i;1085:8212:36:-;;;;;;;;;;;;;;;;;3463:4:65;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;1594:1852:65;;;;;;;;;;;-1:-1:-1;1594:1852:65;;-1:-1:-1;1594:1852:65;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1594:1852:65;;-1:-1:-1;1594:1852:65;;;;;;;;;;;;;;-1:-1:-1;1594:1852:65;;;1085:8212:36;;;;;1594:1852:65;1085:8212:36;;;;;;1594:1852:65;-1:-1:-1;;;;;;;;;;;1594:1852:65;-1:-1:-1;1594:1852:65;3463:4;1085:8212:36;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22686:3056:59;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22686:3056:59;;;;;;;;;;;;;;;;;1085:8212:36;22686:3056:59;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22686:3056:59;-1:-1:-1;22686:3056:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;:::o;22686:3056:59:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22686:3056:59;;;;;;;;;;;;;;1085:8212:36;;19760:2051:59;1085:8212:36;19760:2051:59;1085:8212:36;;;;19760:2051:59;1085:8212:36;19760:2051:59;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19760:2051:59;;;;;;;;;;;;;;;;;1085:8212:36;19760:2051:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:8212:36;:::o;19760:2051:59:-;;;;;;;;;;;1085:8212:36;;;;;;;;;;;;;;13942:8:45;1085:8212:36;13942:8:45;;;10043;1085:8212:36;10043:8:45;;;13942;1085:8212:36;13942:8:45;;;1085:8212:36;;;;;11967:8:45;1085:8212:36;11967:8:45;;;;1085:8212:36;11967:8:45;;;1085:8212:36;;;;;;10043:8:45;;;1085:8212:36;;;;;;;;;;;;;;;:::i;:::-;9882:170:45;;10043:8;9882:170;;;;;;;;;:::i;1085:8212:36:-;24406:152:45;;;;;:::i;1085:8212:36:-;11806:170:45;;11967:8;11806:170;;;;;;;;;:::i;1085:8212:36:-;5689:83:55;;11806:170:45;5689:83:55;;11967:8:45;5689:83:55;;;;;;11806:170:45;;:::i;1085:8212:36:-;5689:83:55;;25964:175:45;5689:83:55;;;;;25964:175:45;;:::i;1085:8212:36:-;5689:83:55;;13776:175:45;5689:83:55;;13942:8:45;5689:83:55;;;;;;13776:175:45;;:::i;1085:8212:36:-;5689:83:55;;9882:170:45;5689:83:55;;10043:8:45;5689:83:55;;;;;;9882:170:45;;:::i;1085:8212:36:-;13776:175:45;;13942:8;13776:175;;;;;;;;;:::i", - "linkReferences": {}, - "immutableReferences": { - "44928": [{ "start": 7386, "length": 32 }], - "44930": [{ "start": 7338, "length": 32 }], - "44938": [{ "start": 14924, "length": 32 }], - "44946": [{ "start": 14803, "length": 32 }], - "44952": [{ "start": 15276, "length": 32 }], - "61471": [{ "start": 14315, "length": 32 }], - "61473": [{ "start": 14282, "length": 32 }], - "61476": [ - { "start": 5399, "length": 32 }, - { "start": 9518, "length": 32 }, - { "start": 12624, "length": 32 } - ], - "61478": [{ "start": 20145, "length": 32 }] - } - }, - "methodIdentifiers": { - "DOMAIN_SEPARATOR()": "3644e515", - "__activateTstore()": "7423eb3c", - "__registerAllocator(address,bytes)": "2a9c4d0d", - "allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))": "7112406d", - "allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))": "200f0c4d", - "allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))": "a2394147", - "allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))": "dd589cfc", - "allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))": "393c33e2", - "allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))": "6a9a4c44", - "allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))": "fdc060e7", - "allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))": "27c777a9", - "allowance(address,address,uint256)": "598af9e7", - "approve(address,uint256,uint256)": "426a8493", - "balanceOf(address,uint256)": "00fdd58e", - "claim((bytes,bytes,address,uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "d204f11e", - "claim((bytes,bytes,address,uint256,uint256,(uint256,uint256,uint256)[],address))": "59202128", - "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))": "eaa67483", - "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,uint256)[],address))": "db04bc72", - "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "fb75fb69", - "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))": "107d4ee4", - "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))": "d350188c", - "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "ea14532e", - "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "176f405a", - "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))": "12f9d21e", - "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "4c102416", - "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "6af2791b", - "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,(address,uint256)[]))": "b4039fc2", - "claim((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,address,uint256))": "63f5b1ad", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,(address,uint256)[])[]))": "d34ddc82", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,uint256)[],address))": "b54baefd", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))": "eb431821", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,uint256)[],address))": "b24849b7", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "12a1e6ea", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))": "b3244389", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))": "414fd914", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "2c4bbd17", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "5ac2ccf1", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))": "1d474b14", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "4d585fbf", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "ebcbd7b5", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,(address,uint256)[]))": "e8672f93", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,address,uint256))": "0d57fec9", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "577cdc64", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,uint256)[],address))": "9730f4fd", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(address,uint256)[]))": "f745381c", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "aa41c87e", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "eed634ad", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,address,uint256))": "e0565c49", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "a4c7bd93", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "5e6c91ff", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,(address,uint256)[]))": "996d3aac", - "claim((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,address,uint256))": "44b97d78", - "claim((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "935ed2ba", - "claim((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,uint256)[],address))": "9be5f537", - "claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(address,uint256)[]))": "b7ace047", - "claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "06659b7f", - "claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "fa1c5500", - "claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,address,uint256))": "e6c5b654", - "claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "409b3a7e", - "claim((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "32e2a803", - "claim((bytes,bytes,address,uint256,uint256,uint256,uint256,(address,uint256)[]))": "b8a5bbad", - "claim((bytes,bytes,address,uint256,uint256,uint256,uint256,address,uint256))": "86785559", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "548439e1", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,(uint256,uint256,uint256)[],address))": "721f6292", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))": "13589bfe", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,(uint256,uint256,uint256)[],address))": "f44a3452", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "0a133cf2", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))": "0f5eeadf", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))": "eb196008", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "88da84d4", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "03417d72", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))": "f23d923d", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "843719f0", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "eea77a78", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,(address,uint256)[]))": "06e8cc18", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,bytes,uint256,uint256,address,uint256))": "1bb81a81", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,(address,uint256)[])[]))": "f2f0def1", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,(uint256,uint256,uint256)[],address))": "4e55a548", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,(address,uint256)[])[]))": "08e600ee", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,(uint256,uint256,uint256)[],address))": "b20abc48", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "25d7776b", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],(uint256,uint256,uint256)[],address))": "14865907", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(address,uint256)[]))": "d2a1805f", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "d921f36a", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "fcfe431a", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,address,uint256))": "d3917f3c", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "64870556", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "418a23f5", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,(address,uint256)[]))": "f95d3d16", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32,bytes,uint256,uint256,address,uint256))": "138cd819", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "62a420bb", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],(uint256,uint256,uint256)[],address))": "c4d195e8", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(address,uint256)[]))": "3f458a19", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "5d76a382", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "eed93572", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,address,uint256))": "1b98b63f", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "341056c5", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "89ce0661", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,(address,uint256)[]))": "4ad5205e", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32,string,uint256,uint256,address,uint256))": "2e4d55cc", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,(address,uint256)[])[]))": "88d247c4", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],(uint256,uint256,uint256)[],address))": "bc95bd7a", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(address,uint256)[]))": "2737edb9", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,(address,uint256)[])[]))": "206620a1", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,(uint256,uint256,uint256)[],address))": "2acd5dc3", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,address,uint256))": "76d531d4", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,(address,uint256)[]))": "e05c6e7d", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,bytes32[],uint256,uint256,uint256,uint256,address,uint256))": "ca6cc39f", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,uint256,uint256,(address,uint256)[]))": "71f50127", - "claimAndWithdraw((bytes,bytes,address,uint256,uint256,uint256,uint256,address,uint256))": "b602ae02", - "consume(uint256[])": "12d48885", - "decimals(uint256)": "3f47e662", - "deposit(address)": "f340fa01", - "deposit(address,(address,uint256)[],uint256,uint256,address,uint8,uint8,address,bytes)": "99cf8b9b", - "deposit(address,address,uint256)": "8340f549", - "deposit(address,address,uint8,uint8,uint256,address)": "671b3bd6", - "deposit(address,uint256,uint256,uint256,address,address,uint8,uint8,address,bytes)": "10d82672", - "deposit(address,uint8,uint8,address)": "507cb46f", - "deposit(uint256[2][],address)": "c8091041", - "depositAndRegister(address,(address,uint256)[],uint256,uint256,address,uint8,uint8,bytes32,uint8,string,bytes)": "da15ee7f", - "depositAndRegister(address,address,uint256,bytes32,bytes32)": "ecaca40e", - "depositAndRegister(address,bytes32,bytes32)": "aa8b845d", - "depositAndRegister(address,uint256,uint256,uint256,address,address,uint8,uint8,bytes32,uint8,string,bytes)": "53e50067", - "depositAndRegister(uint256[2][],bytes32[2][],uint256)": "5b6016ec", - "disableForcedWithdrawal(uint256)": "70030190", - "enableForcedWithdrawal(uint256)": "eb35a6d2", - "extsload(bytes32)": "1e2eaeaf", - "extsload(bytes32[])": "dbd035ff", - "exttload(bytes32)": "f135baaa", - "forcedWithdrawal(uint256,address,uint256)": "2e3ff2f7", - "getForcedWithdrawalStatus(address,uint256)": "144bd5b5", - "getLockDetails(uint256)": "5b15bfd9", - "getRegistrationStatus(address,bytes32,bytes32)": "440a0ec3", - "hasConsumedAllocatorNonce(uint256,address)": "da2f268b", - "isOperator(address,address)": "b6363cf2", - "name()": "06fdde03", - "name(uint256)": "00ad800c", - "register(bytes32,bytes32,uint256)": "4073c0cc", - "register(bytes32[2][],uint256)": "31bbae3e", - "setOperator(address,bool)": "558a7297", - "supportsInterface(bytes4)": "01ffc9a7", - "symbol(uint256)": "4e41a1fb", - "tokenURI(uint256)": "c87b56dd", - "transfer(address,uint256,uint256)": "095bcdb6", - "transferFrom(address,address,uint256,uint256)": "fe99049a" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"providedAmount\",\"type\":\"uint256\"}],\"name\":\"AllocatedAmountExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceOverflow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"Expired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ForcedWithdrawalAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientPermission\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchDepositStructure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDepositBalanceChange\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDepositTokenOrdering\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"InvalidRegistrationDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"InvalidRegistrationProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"InvalidScope\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"InvalidToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyDirectCalls\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Permit2CallFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"PrematureWithdrawal\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"existingCaller\",\"type\":\"address\"}],\"name\":\"ReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TStoreAlreadyActivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TStoreNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TloadTestContractDeploymentFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UnallocatedTransfer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"allocatorId\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"AllocatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"arbiter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"}],\"name\":\"CompactRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"activating\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawableAt\",\"type\":\"uint256\"}],\"name\":\"ForcedWithdrawalStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"OperatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__activateTstore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"__registerAllocator\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TransferComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BatchTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitByIdComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"recipients\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BasicTransfer\",\"name\":\"transfer\",\"type\":\"tuple\"}],\"name\":\"allocatedTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BasicTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitByIdComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct TransferComponent[]\",\"name\":\"transfers\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BatchTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"recipients\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitTransfer\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"allocatedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BasicClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BasicClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct BatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct ExogenousSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ExogenousQualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct QualifiedMultichainClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"portions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SplitBatchClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct QualifiedBatchClaim\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct SplitComponent[]\",\"name\":\"claimants\",\"type\":\"tuple[]\"}],\"internalType\":\"struct QualifiedSplitClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"allocatorSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sponsorSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witness\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"witnessTypestring\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"qualificationTypehash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"qualificationPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"additionalChains\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"chainIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"notarizedChainId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct BatchClaimComponent[]\",\"name\":\"claims\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"internalType\":\"struct ExogenousQualifiedBatchMultichainClaimWithWitness\",\"name\":\"claimPayload\",\"type\":\"tuple\"}],\"name\":\"claimAndWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nonces\",\"type\":\"uint256[]\"}],\"name\":\"consume\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"scope\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"scope\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.TokenPermissions[]\",\"name\":\"permitted\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[2][]\",\"name\":\"idsAndAmounts\",\"type\":\"uint256[2][]\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum CompactCategory\",\"name\":\"compactCategory\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"witness\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[2][]\",\"name\":\"idsAndAmounts\",\"type\":\"uint256[2][]\"},{\"internalType\":\"bytes32[2][]\",\"name\":\"claimHashesAndTypehashes\",\"type\":\"bytes32[2][]\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.TokenPermissions[]\",\"name\":\"permitted\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"resetPeriod\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum CompactCategory\",\"name\":\"compactCategory\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"witness\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"}],\"name\":\"depositAndRegister\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"disableForcedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"enableForcedWithdrawal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"extsload\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"slots\",\"type\":\"bytes32[]\"}],\"name\":\"extsload\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"exttload\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"forcedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getForcedWithdrawalStatus\",\"outputs\":[{\"internalType\":\"enum ForcedWithdrawalStatus\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getLockDetails\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"enum ResetPeriod\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"enum Scope\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"}],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"hasConsumedAllocatorNonce\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[2][]\",\"name\":\"claimHashesAndTypehashes\",\"type\":\"bytes32[2][]\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"typehash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"0age (0age.eth)\",\"custom:version\":\"0 (early-stage proof-of-concept)\",\"errors\":{\"BalanceOverflow()\":[{\"details\":\"The balance has overflowed.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InsufficientPermission()\":[{\"details\":\"Insufficient permission to perform the action.\"}]},\"events\":{\"AllocatorRegistered(uint96,address)\":{\"params\":{\"allocator\":\"The address of the registered allocator.\",\"allocatorId\":\"The unique identifier assigned to the allocator.\"}},\"Approval(address,address,uint256,uint256)\":{\"details\":\"Emitted when `owner` approves `spender` to use `amount` of `id` token.\"},\"Claim(address,address,address,bytes32)\":{\"params\":{\"allocator\":\"The account mediating the resource locks utilized by the claim.\",\"arbiter\":\"The account verifying and initiating the settlement of the claim.\",\"claimHash\":\"A bytes32 hash derived from the details of the claimed compact.\",\"sponsor\":\"The account sponsoring the claimed compact.\"}},\"CompactRegistered(address,bytes32,bytes32,uint256)\":{\"params\":{\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"expires\":\"The timestamp at which the compact can no longer be claimed.\",\"sponsor\":\"The address registering the compact in question.\",\"typehash\":\"The EIP-712 typehash associated with the registered compact.\"}},\"ForcedWithdrawalStatusUpdated(address,uint256,bool,uint256)\":{\"params\":{\"account\":\"The account for which the withdrawal status has changed.\",\"activating\":\"Whether the forced withdrawal is being activated or has been deactivated.\",\"id\":\"The ERC6909 token identifier of the associated resource lock.\",\"withdrawableAt\":\"The timestamp when tokens become withdrawable if it is being activated.\"}},\"OperatorSet(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables `operator` to manage all of their tokens.\"},\"Transfer(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `by` transfers `amount` of token `id` from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"returns\":{\"_0\":\"A bytes32 representing the domain separator for the contract.\"}},\"__activateTstore()\":{\"details\":\"External function to activate TSTORE usage. Does not need to be called if TSTORE is supported from deployment, and only needs to be called once. Reverts if TSTORE has already been activated or if the opcode is not available. Note that this must be called directly from an externally-owned account to avoid potential reentrancy issues.\"},\"__registerAllocator(address,bytes)\":{\"params\":{\"allocator\":\"The address to register as an allocator.\",\"proof\":\"An 85-byte value containing create2 address derivation parameters (0xff ++ factory ++ salt ++ initcode hash).\"},\"returns\":{\"_0\":\"A unique identifier assigned to the registered allocator.\"}},\"allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"params\":{\"transfer\":\"A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"params\":{\"transfer\":\"A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive all tokens.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"params\":{\"transfer\":\"A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))\":{\"params\":{\"transfer\":\"A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive the tokens.\"},\"returns\":{\"_0\":\"Whether the transfer was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"params\":{\"withdrawal\":\"A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"params\":{\"withdrawal\":\"A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive all tokens.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"params\":{\"withdrawal\":\"A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))\":{\"params\":{\"withdrawal\":\"A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive the tokens.\"},\"returns\":{\"_0\":\"Whether the withdrawal was successful.\"}},\"allowance(address,address,uint256)\":{\"details\":\"Returns the amount of token `id` that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` for the caller for token `id`. Emits a {Approval} event.\"},\"balanceOf(address,uint256)\":{\"details\":\"Returns the amount of token `id` owned by `owner`.\"},\"consume(uint256[])\":{\"params\":{\"nonces\":\"Array of nonces to be consumed.\"},\"returns\":{\"_0\":\"Whether all nonces were successfully consumed.\"}},\"decimals(uint256)\":{\"details\":\"Returns the number of decimals for token `id`. Returns 18 by default. Please override this function if you need to return a custom value.\"},\"deposit(address)\":{\"params\":{\"allocator\":\"The address of the allocator.\"},\"returns\":{\"_0\":\"The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(address,address,uint256)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"amount\":\"The amount of tokens to deposit.\",\"token\":\"The address of the ERC20 token to deposit.\"},\"returns\":{\"_0\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(address,address,uint8,uint8,uint256,address)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"amount\":\"The amount of tokens to deposit.\",\"recipient\":\"The address that will receive the corresponding ERC6909 tokens.\",\"resetPeriod\":\"The duration after which the resource lock can be reset once a forced withdrawal is initiated.\",\"scope\":\"The scope of the resource lock (multichain or single chain).\",\"token\":\"The address of the ERC20 token to deposit.\"},\"returns\":{\"_0\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(address,uint8,uint8,address)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"recipient\":\"The address that will receive the corresponding ERC6909 tokens.\",\"resetPeriod\":\"The duration after which the resource lock can be reset once a forced withdrawal is initiated.\",\"scope\":\"The scope of the resource lock (multichain or single chain).\"},\"returns\":{\"_0\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"deposit(uint256[2][],address)\":{\"params\":{\"idsAndAmounts\":\"Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit.\",\"recipient\":\"The address that will receive the corresponding ERC6909 tokens.\"},\"returns\":{\"_0\":\"Whether the batch deposit was successfully completed.\"}},\"depositAndRegister(address,address,uint256,bytes32,bytes32)\":{\"params\":{\"allocator\":\"The address of the allocator mediating the resource lock.\",\"amount\":\"The amount of tokens to deposit.\",\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"token\":\"The address of the ERC20 token to deposit.\",\"typehash\":\"The EIP-712 typehash associated with the registered compact.\"},\"returns\":{\"id\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"depositAndRegister(address,bytes32,bytes32)\":{\"params\":{\"allocator\":\"The address of the allocator.\",\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"typehash\":\"The EIP-712 typehash associated with the registered compact.\"},\"returns\":{\"id\":\" The ERC6909 token identifier of the associated resource lock.\"}},\"depositAndRegister(uint256[2][],bytes32[2][],uint256)\":{\"params\":{\"claimHashesAndTypehashes\":\"Array of [claimHash, typehash] pairs for registration.\",\"duration\":\"The duration for which the claim hashes remain valid.\",\"idsAndAmounts\":\"Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit.\"},\"returns\":{\"_0\":\"Whether the batch deposit and claim hash registration was successfully completed.\"}},\"disableForcedWithdrawal(uint256)\":{\"params\":{\"id\":\"The ERC6909 token identifier for the resource lock.\"},\"returns\":{\"_0\":\"Whether the forced withdrawal was successfully disabled.\"}},\"enableForcedWithdrawal(uint256)\":{\"params\":{\"id\":\"The ERC6909 token identifier for the resource lock.\"},\"returns\":{\"_0\":\"The timestamp at which tokens become withdrawable.\"}},\"forcedWithdrawal(uint256,address,uint256)\":{\"params\":{\"amount\":\"The amount of tokens to withdraw.\",\"id\":\"The ERC6909 token identifier for the resource lock.\",\"recipient\":\"The account that will receive the withdrawn tokens.\"},\"returns\":{\"_0\":\"Whether the forced withdrawal was successfully executed.\"}},\"getForcedWithdrawalStatus(address,uint256)\":{\"params\":{\"account\":\"The account to get the forced withdrawal status for.\",\"id\":\"The ERC6909 token identifier of the resource lock.\"},\"returns\":{\"_0\":\" The current ForcedWithdrawalStatus (disabled, pending, or enabled).\",\"_1\":\"The timestamp at which tokens become withdrawable if status is pending.\"}},\"getLockDetails(uint256)\":{\"params\":{\"id\":\"The ERC6909 token identifier of the resource lock.\"},\"returns\":{\"_0\":\" The address of the underlying token (or address(0) for native tokens).\",\"_1\":\" The account of the allocator mediating the resource lock.\",\"_2\":\"The duration after which the resource lock can be reset once a forced withdrawal is initiated.\",\"_3\":\" The scope of the resource lock (multichain or single chain).\"}},\"getRegistrationStatus(address,bytes32,bytes32)\":{\"params\":{\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"sponsor\":\"The account that registered the compact.\",\"typehash\":\"The EIP-712 typehash associated with the registered claim hash.\"},\"returns\":{\"expires\":\" The timestamp at which the compact registration expires.\",\"isActive\":\"Whether the compact registration is currently active.\"}},\"hasConsumedAllocatorNonce(uint256,address)\":{\"params\":{\"allocator\":\"The account of the allocator.\",\"nonce\":\"The nonce to check.\"},\"returns\":{\"_0\":\"Whether the nonce has been consumed.\"}},\"isOperator(address,address)\":{\"details\":\"Checks if a `spender` is approved by `owner` to manage all of their tokens.\"},\"name()\":{\"details\":\"Returns the name for the contract.\"},\"name(uint256)\":{\"details\":\"Returns the symbol for token `id`.\"},\"register(bytes32,bytes32,uint256)\":{\"params\":{\"claimHash\":\"A bytes32 hash derived from the details of the compact.\",\"duration\":\"The duration for which the claim hash remains valid.\",\"typehash\":\"The EIP-712 typehash associated with the registered claim hash.\"},\"returns\":{\"_0\":\"Whether the claim hash was successfully registered.\"}},\"register(bytes32[2][],uint256)\":{\"params\":{\"claimHashesAndTypehashes\":\"Array of [claimHash, typehash] pairs for registration.\",\"duration\":\"The duration for which the claim hashes remain valid.\"},\"returns\":{\"_0\":\"Whether all claim hashes were successfully registered.\"}},\"setOperator(address,bool)\":{\"details\":\"Sets whether `operator` is approved to manage the tokens of the caller. Emits {OperatorSet} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`.\"},\"symbol(uint256)\":{\"details\":\"Returns the symbol for token `id`.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for token `id`.\"},\"transfer(address,uint256,uint256)\":{\"details\":\"Transfers `amount` of token `id` from the caller to `to`. Requirements: - caller must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256,uint256)\":{\"details\":\"Transfers `amount` of token `id` from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount` of token `id`. - The caller must have at least `amount` of allowance to transfer the tokens of `from` or approved as an operator. Emits a {Transfer} event.\"}},\"title\":\"The Compact\",\"version\":1},\"userdoc\":{\"events\":{\"AllocatorRegistered(uint96,address)\":{\"notice\":\"Event indicating an allocator has been registered.\"},\"Claim(address,address,address,bytes32)\":{\"notice\":\"Event indicating that a claim has been processed for a given compact.\"},\"CompactRegistered(address,bytes32,bytes32,uint256)\":{\"notice\":\"Event indicating that a compact has been registered directly.\"},\"ForcedWithdrawalStatusUpdated(address,uint256,bool,uint256)\":{\"notice\":\"Event indicating a change in forced withdrawal status.\"}},\"kind\":\"user\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"notice\":\"External pure function for returning the domain separator of the contract.\"},\"__registerAllocator(address,bytes)\":{\"notice\":\"External function for registering an allocator. Can be called by anyone if one of three conditions is met: the caller is the allocator address being registered, the allocator address contains code, or a proof is supplied representing valid create2 deployment parameters that resolve to the supplied allocator address.\"},\"allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"notice\":\"Transfers ERC6909 tokens from multiple resource locks to multiple recipients with allocator approval.\"},\"allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"notice\":\"Transfers ERC6909 tokens from multiple resource locks to a single recipient with allocator approval.\"},\"allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"notice\":\"Transfers ERC6909 tokens to multiple recipients with allocator approval.\"},\"allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))\":{\"notice\":\"Transfers ERC6909 tokens to a single recipient with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))\":{\"notice\":\"Withdraws underlying tokens from multiple resource locks to multiple recipients with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))\":{\"notice\":\"Withdraws underlying tokens from multiple resource locks to a single recipient with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))\":{\"notice\":\"Withdraws underlying tokens to multiple recipients with allocator approval.\"},\"allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))\":{\"notice\":\"Withdraws underlying tokens to a single recipient with allocator approval.\"},\"consume(uint256[])\":{\"notice\":\"External function for consuming allocator nonces. Only callable by a registered allocator. Once consumed, any compact payloads that utilize those nonces cannot be claimed.\"},\"deposit(address)\":{\"notice\":\"External payable function for depositing native tokens into a resource lock and receiving back ERC6909 tokens representing the underlying locked balance controlled by the depositor. The allocator mediating the lock is provided as an argument, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction.\"},\"deposit(address,address,uint256)\":{\"notice\":\"External function for depositing ERC20 tokens into a resource lock. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token.\"},\"deposit(address,address,uint8,uint8,uint256,address)\":{\"notice\":\"External function for depositing ERC20 tokens into a resource lock with custom reset period and scope parameters. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received by the recipient is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token.\"},\"deposit(address,uint8,uint8,address)\":{\"notice\":\"External payable function for depositing native tokens into a resource lock with custom reset period and scope parameters. The ERC6909 token amount received by the recipient will match the amount of native tokens sent with the transaction.\"},\"deposit(uint256[2][],address)\":{\"notice\":\"External payable function for depositing multiple tokens in a single transaction. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens.\"},\"depositAndRegister(address,address,uint256,bytes32,bytes32)\":{\"notice\":\"External function for depositing ERC20 tokens and simultaneously registering a compact. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token.\"},\"depositAndRegister(address,bytes32,bytes32)\":{\"notice\":\"External payable function for depositing native tokens into a resource lock and simultaneously registering a compact. The allocator, the claim hash, and the typehash used for the claim hash are provided as additional arguments, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction.\"},\"depositAndRegister(uint256[2][],bytes32[2][],uint256)\":{\"notice\":\"External payable function for depositing multiple tokens in a single transaction and registering a set of claim hashes. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens. Note that resource lock ids must be supplied in alphanumeric order.\"},\"disableForcedWithdrawal(uint256)\":{\"notice\":\"External function to disable a previously enabled forced withdrawal for a resource lock.\"},\"enableForcedWithdrawal(uint256)\":{\"notice\":\"External function to initiate a forced withdrawal for a resource lock. Once enabled, forced withdrawals can be executed after the reset period has elapsed. The withdrawableAt timestamp returned will be the current timestamp plus the reset period associated with the resource lock.\"},\"forcedWithdrawal(uint256,address,uint256)\":{\"notice\":\"External function to execute a forced withdrawal from a resource lock after the reset period has elapsed. The tokens will be withdrawn to the specified recipient in the amount requested. The ERC6909 token balance of the caller will be reduced by the difference in the balance held by the resource lock before and after the withdrawal, which may differ from the provided amount depending on the underlying token in question.\"},\"getForcedWithdrawalStatus(address,uint256)\":{\"notice\":\"External view function for checking the forced withdrawal status of a resource lock for a given account. Returns both the current status (disabled, pending, or enabled) and the timestamp at which forced withdrawals will be enabled (if status is pending) or became enabled (if status is enabled).\"},\"getLockDetails(uint256)\":{\"notice\":\"External view function for retrieving the details of a resource lock. Returns the underlying token, the mediating allocator, the reset period, and the scope.\"},\"getRegistrationStatus(address,bytes32,bytes32)\":{\"notice\":\"External view function for checking the registration status of a compact. Returns both whether the claim hash is currently active and when it expires (if it is active).\"},\"hasConsumedAllocatorNonce(uint256,address)\":{\"notice\":\"External view function for checking whether a specific nonce has been consumed by an allocator. Once consumed, a nonce cannot be reused for claims mediated by that allocator.\"},\"register(bytes32,bytes32,uint256)\":{\"notice\":\"External function to register a claim hash and its associated EIP-712 typehash. The registered claim hash will remain valid for the specified duration. Once expired, the claim hash can no longer be used to initiate claims.\"},\"register(bytes32[2][],uint256)\":{\"notice\":\"External function to register multiple claim hashes and their associated EIP-712 typehashes in a single call. All registered claim hashes will remain valid for the specified duration. Once expired, the claim hashes can no longer be used to initiate claims.\"}},\"notice\":\"The Compact is an ownerless ERC6909 contract that facilitates the voluntary formation and mediation of reusable \\\"resource locks.\\\" This contract has not yet been properly tested, audited, or reviewed.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/TheCompact.sol\":\"TheCompact\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/permit2/lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solady/=lib/solady/src/\",\":soledge/=lib/soledge/src/\",\":solmate/=lib/permit2/lib/solmate/\",\":tstorish/=lib/tstorish/src/\"],\"viaIR\":true},\"sources\":{\"lib/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"lib/permit2/src/interfaces/ISignatureTransfer.sol\":{\"keccak256\":\"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317\",\"dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d\"]},\"lib/solady/src/tokens/ERC6909.sol\":{\"keccak256\":\"0x03975a3d9680a1bfe53a678685c81ed4d70b6e0f046ccf1905539caa5376eea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827a2f6b69fcb700909635203a9453310ea89c0bb904943cf3cc732e35d81398\",\"dweb:/ipfs/QmZha3DSrunz1NR3jXHRXrLT6uvAKTt3AEV6PcbGWRLu4q\"]},\"lib/solady/src/utils/EfficientHashLib.sol\":{\"keccak256\":\"0x32032578683dc18c5f95c8dd4c1422d212f230d96d5425cc491f3350157e6fe1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82c89ef25e537766bbfc8ebba4138eee4fa1b64527c39add8240bce2ea99c661\",\"dweb:/ipfs/QmZVciQDtnXs3nDVUaH7mMLC6vFKe8zeKLK969bqJetKCj\"]},\"lib/solady/src/utils/LibString.sol\":{\"keccak256\":\"0xa0b70980612eeedd30cc65c44c37a286c8527cb41c7454db55b1a435beb2276f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93950259301ac435f1d8756cb80f99eafe9da4dc68b05e148a4b16042a69cc9b\",\"dweb:/ipfs/QmUpyP9AD7AqmRNEmrjLSQivXXdbZmFZKaLJwW9UP2wWCN\"]},\"lib/solady/src/utils/MetadataReaderLib.sol\":{\"keccak256\":\"0x671f4b38462335f3500b91eeff2fd25fc447cc201901524959c05b934ad0b100\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa64b44dc13b25c1aa713cb5724fade1dc093c95581efc5ccb85cbcc616c02c5\",\"dweb:/ipfs/QmRvXqBw8GqpShA8cXAwA6ha14Q2bfajNmYq1mYNYAaMiv\"]},\"lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"lib/solady/src/utils/SignatureCheckerLib.sol\":{\"keccak256\":\"0x472ad43dd67dcc0d548efbbc8779f34e56a7eb99d7a8b1c29af33fb03bbe9ffc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://733da5015058b9540927c63c316665e9ac8d9676d23f722bddf9376c2a03d4cb\",\"dweb:/ipfs/QmPhXj1qpjnwVjrZUgFdkinMK9XSuoLN3cxbSmqADYSZry\"]},\"lib/tstorish/src/Tstorish.sol\":{\"keccak256\":\"0xad3697d9fd6e7c1fb6faa8d474af00bb2a7afd51e8818165fd30bcc7ead53973\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8b62000145be27440c913238fbe9b97ecfc709eacac14b498f18980418d6ab6\",\"dweb:/ipfs/QmRMXHdYUDmajWzwUjs7CQZ5i1T739MhiMmimd3do8qJNk\"]},\"src/TheCompact.sol\":{\"keccak256\":\"0x2949a8d172180ba623c85dfc22eda0ba1f59c4d70d8ee8ade62b5876ff6cd935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c6a3fdaa5319cc8a272422e8af551bee8e1467f78aa8b65a1290fddf0453a90\",\"dweb:/ipfs/QmafPX5TCncQbuhFtztQVL81hmU9wmdxfNZCYj9t5X6QqM\"]},\"src/interfaces/ITheCompact.sol\":{\"keccak256\":\"0xe75d130ab9ead7ef7866f4ce8fcbe5e8de49450abf5f8c6b5878c4e54e480103\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b7694d1b97b350c41e668e72d25d3df10c230b9dd21219827d7d2cc0dc39b6\",\"dweb:/ipfs/QmTDJAFcTYfU7DyfuYMJHK3YMYRkXQvm9MoUhywaqeUsZ6\"]},\"src/interfaces/ITheCompactClaims.sol\":{\"keccak256\":\"0x5691d5127ccff51eea74ce4f6dd01a5f121fd2a1b7bdad41aca39c4d236e27bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca686c6911319d151dc1f658767545823d750c3fb54cb8f75e46b544df3a217a\",\"dweb:/ipfs/QmT2a1twcvzHxjWwcLqMebo9rat5x5CVy2KJfawj9qXS5a\"]},\"src/lib/AllocatorLogic.sol\":{\"keccak256\":\"0xadfa16ae7d02777e129d31639f110be46093ef109c1287896598ee792de34d5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11a258ef5e43b6d85c99b330beaf4c3750f0d41c3b862b677551eca3626a2071\",\"dweb:/ipfs/QmfViBPCWeKqgdVKfA7KQUz2JntZEdGfbpgAwCGWwLGQ9Y\"]},\"src/lib/ClaimHashFunctionCastLib.sol\":{\"keccak256\":\"0xcfa2f7fb4e3df789ae504ebc13e31cadb6c05282e07d46a4b807d5d23a5ef530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51e642f4676ec4e0ecc1fb716cd051bd6d12dac2d39e997e516af5bd141b3178\",\"dweb:/ipfs/QmeQ8vHdg8vsCZ9XPc3af82ktXHHicY3QQbAoghHfvkVK4\"]},\"src/lib/ClaimHashLib.sol\":{\"keccak256\":\"0x2bc3fb604115697562a4770f98020efd578b02d6376b56ca52c64d0df46f6e87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aeddaee5ec0f8512fc13af7b0bfc07e93250a1bc34b6095c6a5bd6624a73990d\",\"dweb:/ipfs/QmVeVSBNoJeMndTQpvB2Kr9BzWWG8crjeBPjZZxciGYXMx\"]},\"src/lib/ClaimProcessor.sol\":{\"keccak256\":\"0x58872af76a73fd131a85635150545978bbe09ae83ec4ed2fae19d75c038a482c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d782488fcbded4ef2781031940611599b6ec41e92d813800912e2c86afd7979\",\"dweb:/ipfs/QmaCuq52gwjc1LfZrURPpyrjmGZZCtzhXRqg4dMhXP1NKa\"]},\"src/lib/ClaimProcessorFunctionCastLib.sol\":{\"keccak256\":\"0xb69ec41dc657f93f6f6a1901d39e48a791907d4debc0eb8104f9fe016b6a59ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6a54cebc498c4181ddc25fd4c6162449ae12d407fc1b45c0e6c4b365da1543e\",\"dweb:/ipfs/QmRdZp5fraYJRB7QXwDqE5jbpmerWaCV3DqMPxi9aCk4ZQ\"]},\"src/lib/ClaimProcessorLib.sol\":{\"keccak256\":\"0xf150692ad2915d0c4df63ea44e62f6e3d5736f2c91de7cea48a1301cf4034e51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c2f21638d2a613e912cf73dd049b0bb2e4abbea54a3f58a5439f6396c59d9ee\",\"dweb:/ipfs/QmRQpwnhhNfvWyTXHRy982awBnHA4fjK7GpHzSgqC3pPT6\"]},\"src/lib/ClaimProcessorLogic.sol\":{\"keccak256\":\"0x737780590a48e67dc0f64bd3bb7248eafb7630f579d8aa44befb197d9ac66ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea7c69e2cbf316fe182fad296b8d65a76ade84923edb0572c339f880e21fc7bc\",\"dweb:/ipfs/QmWuZ9UJA4nsdPjgCa6rsCBvoWBjcUhWRuCnLqPNbM8687\"]},\"src/lib/ComponentLib.sol\":{\"keccak256\":\"0x3e1ad4bff9cd12162f9b849078839b802f4783b474588fa93be8ba1e61263dd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faa70f41d0679e1fa2aa827f863c03bf8a3962703a26ae724b7ca2a8d5f9f96b\",\"dweb:/ipfs/QmXWyv8ATKeSKwiXCPFZBLkrRuV1NhNDS5yH5rDyrm6GLs\"]},\"src/lib/ConstructorLogic.sol\":{\"keccak256\":\"0xca9b0d52a562351978aafcc06f79f5c555ea948eaad28983812a7892f02b1245\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f2e41013c0ef8ef9bee844494185b7a09c8680ea3d931a2683f968cdaa154a9\",\"dweb:/ipfs/QmX8CoLP6VGRkxhx6VonrRf2YqPZ1hg1LagKvkNBaQtNaR\"]},\"src/lib/ConsumerLib.sol\":{\"keccak256\":\"0x582badfccdb57ee9518e39676fab7ba2abc6b527c854d524b8f417126fa6d192\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96d6dde54bdad2fc2203620d5f75e96cc9267cb340e1284d311bf6f8c77d16d2\",\"dweb:/ipfs/Qmbq8XuUiAoEsmYVa2NCHSdi6gu4ZYzeyr1iPNGaFwwhxu\"]},\"src/lib/DepositLogic.sol\":{\"keccak256\":\"0xb2a199980ca4025c1784ebc79ec5d73cbe849ff26d446b2ca58bdb7066475fcf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73e9defc19c10bb6b63d7571a1e097ed09accdf7cf123b91c8a9bea02c9ca87f\",\"dweb:/ipfs/QmVWt9Ssb6CuFpYKTDYc31FH9TFZfYqs4WGsqf2ksiPtpx\"]},\"src/lib/DepositViaPermit2Lib.sol\":{\"keccak256\":\"0x3d45834b9be7e0af8aadd4c3afb2b5d7a9c1a47156e30780499852b1e503b1c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e16d1aa8eb93fefd956455fbb157a58cb9fb3824a276f54a33a52c17924c30b\",\"dweb:/ipfs/QmUmsqU9p8J7r7hk5jxNYXUnaPoCaMruFKtxFo12zV7XJQ\"]},\"src/lib/DepositViaPermit2Logic.sol\":{\"keccak256\":\"0xb8813f63d4a3c05dc99e36b6a900cbd7c6c6bfc8cccdb5b9052894400b4925a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://463fa79ef23b7f6d56a9bc8f6139917374a06f860c12fbfe6e76d794e690b9e0\",\"dweb:/ipfs/QmXGqm3wZqRSDAvy7mykMvezMBVPPT79pJYsASwkxXFitq\"]},\"src/lib/DirectDepositLogic.sol\":{\"keccak256\":\"0xa1b9f042c5ecf3edcde3733bd12cde49633dcce9336622ea7c5eabd0ce2bafa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0eeaa505727c2b42780bd4e3e3dbede2ce51480c46ff90ad401d7328fc5e42d8\",\"dweb:/ipfs/QmZ8MDQjSi2yczScSgKyd6Ge3ir4xJA2o8pX1j15ryyzVp\"]},\"src/lib/DomainLib.sol\":{\"keccak256\":\"0x0a69b112fabd7d4e13fbf4c796a4a163f522c84b4b6a981c913a6c7342f5cc6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a3d3fd2d8ab66c6dd0f2674efcf2bca87899decd42e949631be80a60f74d6a2\",\"dweb:/ipfs/QmP38CpNz5GjycQZwpe7CxXrRsugraQDtr6rsiA5ue2iK6\"]},\"src/lib/EfficiencyLib.sol\":{\"keccak256\":\"0xd8fd182c728a98a3ac5c64cbc7011bc34dc1ee06e377a1a5e670c3cd8375eff9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f565cad687dc0bd3438a8b8b08ecc973f5ad5a1aebd332baa402e45cd56ae83\",\"dweb:/ipfs/QmayoEFEv6zMhRw6kqqoqdmNE1jGbwgRQ6VA5wj2XAb7Du\"]},\"src/lib/EventLib.sol\":{\"keccak256\":\"0x0d9bc84e78628d9ff42689b8cd33353c86f9de7220002d74c5d485275f328946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb8bf826a89bb1cc62e8af269f34453c13df6ffe473e0dff8aeddaf1797afa0f\",\"dweb:/ipfs/QmX7TFZACuGBhCVMjAPve7JKz6PWZjYTMr7JQ9WbFatKcu\"]},\"src/lib/Extsload.sol\":{\"keccak256\":\"0x72075add7c7d734c46922f2f56cb490d48711a0cc6af439619ff39e60df75924\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://283cc72cb88802327c60fc9bc75f840ff639d791c1d19056bbadf7e7e5f3c99f\",\"dweb:/ipfs/QmWoCebx1axDW8uuUEPv6QRzGWFD5bRGnvw2VD7KJufokB\"]},\"src/lib/HashLib.sol\":{\"keccak256\":\"0x50bc064b796b92d6199cf09cf8ea34a808653a8c668f695ce89cd3614956cb4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6bd96eb47fd50bb4f15540e3f8c903d5cf83d8e0e975d615abb9e2dfe7329af0\",\"dweb:/ipfs/QmVPs5HWJEbUtKQn69jSYdA7U92jU7nkWwGfsmD6sUCWsR\"]},\"src/lib/IdLib.sol\":{\"keccak256\":\"0x14a04b7bdfcd5e7cc783a7202cb0429fb225f0a960908f06028f39f78b01373b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c465efd13c8fd3ddfd701357f8f6e64443d69c5ab835c7bb35b8934261c2313e\",\"dweb:/ipfs/QmP15v2Qrp1hg7BvkfzE4zqcjwhDH2NBHkzJ8rRShCwU8S\"]},\"src/lib/MetadataLib.sol\":{\"keccak256\":\"0x1d7f67de567fccba29393048a15373c9ad6cc903409b52b94a8baf1747204340\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f15f66c2420d6f5a527ee12945bc000e7687586727845015d60e229ca5009d4\",\"dweb:/ipfs/QmY27xFEKUBW3U7K18gQNNbmR3pZbp1Gz3ecQVkZQUBzek\"]},\"src/lib/MetadataRenderer.sol\":{\"keccak256\":\"0xdef8b8a92120470f9d290b5d6ab3fc69145300741ca066b152ddc71cd719982e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6946d4d9d525fd21e3b4d310aaa5160de531bda7574bb5ad8c6a10616c340fe8\",\"dweb:/ipfs/QmdB6Kwipo2MXCLPexXqjNP2xQhkG8BRx7KBWKMyqCRNHk\"]},\"src/lib/RegistrationLib.sol\":{\"keccak256\":\"0xa6be3d3f74e30fa04157f369964afe818f562c82369bb0823ffc4a06297364a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f73aa296543d4c3757a9b104278cfa9c07838ae9a9b82a3e77ed6df7bbe8ef20\",\"dweb:/ipfs/QmWDCBxnz3quqhDtAN7zqetaQmCE8ULM1dAYEBrguHP5DQ\"]},\"src/lib/RegistrationLogic.sol\":{\"keccak256\":\"0x40850751ea4a77f6bd9df09a3a9f565994dfd03b29a15dcc31e03da3be317b7f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16f07cb5ab8e5adfe74cdd700f5c9e448b28fab0b120058b25d4d1bcf2338a9a\",\"dweb:/ipfs/QmULZACcDPswptXRxKnA8dBChU63k8CkvY5Q7YG7SJoSs6\"]},\"src/lib/SharedLogic.sol\":{\"keccak256\":\"0xcc76a01f9dc24f1afc4fd21dbdb423ec7a6cccb454c9b725fa3b135d4d851365\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f9fe59a2d0c467832d42c60acabd4c599868024c09b5aa89e9e91b38e9f8eba\",\"dweb:/ipfs/Qmbsu2BLJT32Qc77RR3ZHhVTMkyh1sLJueLiTuYHCQwxVf\"]},\"src/lib/TheCompactLogic.sol\":{\"keccak256\":\"0xc6106d8b4a9f2bf6c9006181a3e6acc95c8524628b5096478c76716a7e2cc5c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18056a737da3fddaac4cb50dd598b57e0bcc5d1889669831bbb4d09bc48c5cf6\",\"dweb:/ipfs/QmPvQs8THzQPfpxuB5MKNKsFGiPjbR9B5QVAKa4NTkpSbd\"]},\"src/lib/TransferFunctionCastLib.sol\":{\"keccak256\":\"0x1b2b8d48503f85dee96cb0d915d1f506ab872aac6fb29a1adbb894de93a534e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a2eb941a4a3e4633c88420ae3eab750ffdb32e431c71927a10feb6562b6e9a9\",\"dweb:/ipfs/QmeYJbeupvqjyrMV43Z41mz52E9Bwqhmm4mSx7K8F26Vmb\"]},\"src/lib/TransferLogic.sol\":{\"keccak256\":\"0x08ae66f9d642e8caabcd200d8574e5487cc11181c23acc18f2076e4f5e9ca086\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f4ec47106727e1fd5197f9fa7e86552469a198dd62dd24ad3dc1db9fb6d4327\",\"dweb:/ipfs/QmR3bC1fmUVYTarsZMRU3u3RV1GcbNsF3NghvxND4B7J46\"]},\"src/lib/ValidityLib.sol\":{\"keccak256\":\"0xfdecefc1bd9b9ba92fb471af7d09dc30255cb16154cec436b27fc06630fc7106\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b36c79e57192514bcf3aace66e38568708e066f24db93832f0a7f530754c5a7\",\"dweb:/ipfs/QmUSRsBpZz7VEPN1ubX5mB71uKRdQ17Tf5jbkUNkyiMGhu\"]},\"src/lib/WithdrawalLogic.sol\":{\"keccak256\":\"0x438c41cb28048ee067e8f64e2faaf7339a3324f0ce81ec96c94e5692074ee650\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f811218032733e0fd0eb937a036b04e37dfcd46ed64bcbac22ecbb5d2a5993b4\",\"dweb:/ipfs/QmdD2bN9Be2dDBEmuYBKGJKgW5FsayuojBqjYuz2ZvWcEb\"]},\"src/types/BatchClaims.sol\":{\"keccak256\":\"0x368860cb48d9cf8b7ee86e226fc203307c8559ee5bbd987299c14580c61039b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edd6eccb18ee3f7dc1e4fdeaa00d007b8cd6f506ab76366f74e530a66211ba8d\",\"dweb:/ipfs/Qmf68iLL8CVZEvkjnQb6GdPumsP5V8dFfSubXCSx1Vgu4Z\"]},\"src/types/BatchMultichainClaims.sol\":{\"keccak256\":\"0xe493995e946bf63d2970e5668e426f6c3d84f9ae5b03f86f7c493ae02ca8b96c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91370d328607589fa1ff37f3c0ef66a5b90ff63de20c8ccee3b009a6aedb2620\",\"dweb:/ipfs/QmY5Ja2XfxRFbh4dtViqiepaSfNr1rWrMYSnSGjeMPxxNw\"]},\"src/types/Claims.sol\":{\"keccak256\":\"0x6ae4ad79a64e0edd6169e87f8c3e35abd5f592ac23dc8eae7b92dfc190fa3ae2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4434f16be0877209b2aaa51c9f27b9374fab6acbfc3b6241ba00907d6de7a96\",\"dweb:/ipfs/QmTTcNwtekjwMZkrNKAcKAprWG47pSVEn2GETX6tZu746C\"]},\"src/types/CompactCategory.sol\":{\"keccak256\":\"0xc3ab3758e88fc8591d79352d3d49140433bbf4176c3caa1bfce1903e2bfadf06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16960ee62b98c5cbbedcfe22ce4b521205d2bcc4fe9dfa57a9d68ec90efeb5a1\",\"dweb:/ipfs/Qmc3FciGTRrDZjRSb9waUYkZsELRvVWkJKNVqS1u8vEDNG\"]},\"src/types/Components.sol\":{\"keccak256\":\"0xd5027c0eb603a4604e050e97930fa436db33755b3e8097894320916cd7163ff0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b414c4a0e0d543f8de309bbb005f62d63a5c67ae6cf78d5d5b5fd076dd7b0a51\",\"dweb:/ipfs/QmX8Z9Fp2QJVgE9hwbPjrXUYc4RVAE8qTyfN8DKBpV5iPB\"]},\"src/types/EIP712Types.sol\":{\"keccak256\":\"0x386ff8e0aff7d437b8b49117ed158554e608d0cc18a0b4f561510e9584cafb91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e49d199dd3caab0210a2648a1b9d2a8965b5706f602fffee8e1815bbacddbe5e\",\"dweb:/ipfs/QmYUzWFC4GK1rjoqnZEt2ghL5GMPCiaF5xaPzSr4Rm99PK\"]},\"src/types/ForcedWithdrawalStatus.sol\":{\"keccak256\":\"0xdf352a2439e57ea9e1b7d54997fe904e4ea41ab9d2d8221d7d753dce94e76dc7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6faadb6857eda66cbef8fe1bf36d85d16f534b899a737a9464e69dc505eb9e89\",\"dweb:/ipfs/QmdC9beQhPRYv5sAFx7TyWvzGPjm6XY3bCYNKzuZH1Pesd\"]},\"src/types/Lock.sol\":{\"keccak256\":\"0x21a490258b933f8d5db759a91d07f7d9d2b2435d366334a8bcfbce4379a85011\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d1cfcb02c3b0a70d82b2d9bd9c55ffcf654a226774711ca727eab8b0cdf456ea\",\"dweb:/ipfs/QmRFN3dvespK1mUcUuXm4rnPd3ZGNRdba8MZgub1zu24Qw\"]},\"src/types/MultichainClaims.sol\":{\"keccak256\":\"0x596b71d675b7b5e13b29f6b7fb92d23722d2792fadc82ad764467fdf9c693cb9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://974d9d906e06ad29e875c2556d32c1f631a70539e43b018815e3fc68ede01e53\",\"dweb:/ipfs/QmPbqsU21jDGhLQ9x9No2xDUimaLueGGF7eAkNxJfhc3fx\"]},\"src/types/ResetPeriod.sol\":{\"keccak256\":\"0xfd32523d563b926c72fdc693aa8b7f6db24f4720decee16710cdfc662a8d8f16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c510cde0fc28cde51aad2df6bac8eeef5e0fb67be754a3d8c655a8556db32c6\",\"dweb:/ipfs/QmWjVZJdfxVK5EiprmWi9iGNMqXAkVZjECnzeXvjfTsDZX\"]},\"src/types/Scope.sol\":{\"keccak256\":\"0x3e63be015c24bde88698efc20b00690d1e683a5cabf2122dc91ab0ecad4ae8ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5160d46460204dc6268a963e9d0c117fab903318f74d3b5903693fe2dfcc2462\",\"dweb:/ipfs/QmRsc4VSWvvSxi3VfyFgjTELj5DB5MpZ7UPJ3mzgPMyD9v\"]}},\"version\":1}", - "metadata": { - "compiler": { "version": "0.8.28+commit.7893614a" }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "providedAmount", - "type": "uint256" - } - ], - "type": "error", - "name": "AllocatedAmountExceeded" - }, - { "inputs": [], "type": "error", "name": "BalanceOverflow" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "expiration", - "type": "uint256" - } - ], - "type": "error", - "name": "Expired" - }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "id", "type": "uint256" } - ], - "type": "error", - "name": "ForcedWithdrawalAlreadyDisabled" - }, - { "inputs": [], "type": "error", "name": "InsufficientBalance" }, - { "inputs": [], "type": "error", "name": "InsufficientPermission" }, - { "inputs": [], "type": "error", "name": "InvalidBatchAllocation" }, - { - "inputs": [], - "type": "error", - "name": "InvalidBatchDepositStructure" - }, - { - "inputs": [], - "type": "error", - "name": "InvalidDepositBalanceChange" - }, - { - "inputs": [], - "type": "error", - "name": "InvalidDepositTokenOrdering" - }, - { - "inputs": [ - { "internalType": "uint256", "name": "duration", "type": "uint256" } - ], - "type": "error", - "name": "InvalidRegistrationDuration" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocator", - "type": "address" - } - ], - "type": "error", - "name": "InvalidRegistrationProof" - }, - { - "inputs": [ - { "internalType": "uint256", "name": "id", "type": "uint256" } - ], - "type": "error", - "name": "InvalidScope" - }, - { "inputs": [], "type": "error", "name": "InvalidSignature" }, - { - "inputs": [ - { "internalType": "address", "name": "token", "type": "address" } - ], - "type": "error", - "name": "InvalidToken" - }, - { "inputs": [], "type": "error", "name": "OnlyDirectCalls" }, - { "inputs": [], "type": "error", "name": "Permit2CallFailed" }, - { - "inputs": [ - { "internalType": "uint256", "name": "id", "type": "uint256" } - ], - "type": "error", - "name": "PrematureWithdrawal" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "existingCaller", - "type": "address" - } - ], - "type": "error", - "name": "ReentrantCall" - }, - { "inputs": [], "type": "error", "name": "TStoreAlreadyActivated" }, - { "inputs": [], "type": "error", "name": "TStoreNotSupported" }, - { - "inputs": [], - "type": "error", - "name": "TloadTestContractDeploymentFailed" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { "internalType": "address", "name": "from", "type": "address" }, - { "internalType": "address", "name": "to", "type": "address" }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "type": "error", - "name": "UnallocatedTransfer" - }, - { - "inputs": [ - { - "internalType": "uint96", - "name": "allocatorId", - "type": "uint96", - "indexed": false - }, - { - "internalType": "address", - "name": "allocator", - "type": "address", - "indexed": false - } - ], - "type": "event", - "name": "AllocatorRegistered", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "spender", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256", - "indexed": true - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "Approval", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sponsor", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "allocator", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "arbiter", - "type": "address", - "indexed": true - }, - { - "internalType": "bytes32", - "name": "claimHash", - "type": "bytes32", - "indexed": false - } - ], - "type": "event", - "name": "Claim", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sponsor", - "type": "address", - "indexed": true - }, - { - "internalType": "bytes32", - "name": "claimHash", - "type": "bytes32", - "indexed": false - }, - { - "internalType": "bytes32", - "name": "typehash", - "type": "bytes32", - "indexed": false - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "CompactRegistered", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256", - "indexed": true - }, - { - "internalType": "bool", - "name": "activating", - "type": "bool", - "indexed": false - }, - { - "internalType": "uint256", - "name": "withdrawableAt", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "ForcedWithdrawalStatusUpdated", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "operator", - "type": "address", - "indexed": true - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool", - "indexed": false - } - ], - "type": "event", - "name": "OperatorSet", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "by", - "type": "address", - "indexed": false - }, - { - "internalType": "address", - "name": "from", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "to", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256", - "indexed": true - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "Transfer", - "anonymous": false - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ] - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "__activateTstore" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocator", - "type": "address" - }, - { "internalType": "bytes", "name": "proof", "type": "bytes" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "__registerAllocator", - "outputs": [ - { "internalType": "uint96", "name": "", "type": "uint96" } - ] - }, - { - "inputs": [ - { - "internalType": "struct BatchTransfer", - "name": "transfer", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "struct TransferComponent[]", - "name": "transfers", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "allocatedTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitBatchTransfer", - "name": "transfer", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "struct SplitByIdComponent[]", - "name": "transfers", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "allocatedTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitTransfer", - "name": "transfer", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "struct SplitComponent[]", - "name": "recipients", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "allocatedTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct BasicTransfer", - "name": "transfer", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "allocatedTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct BasicTransfer", - "name": "withdrawal", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "allocatedWithdrawal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitBatchTransfer", - "name": "withdrawal", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "struct SplitByIdComponent[]", - "name": "transfers", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "allocatedWithdrawal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct BatchTransfer", - "name": "withdrawal", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "struct TransferComponent[]", - "name": "transfers", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "allocatedWithdrawal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitTransfer", - "name": "withdrawal", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "struct SplitComponent[]", - "name": "recipients", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "allocatedWithdrawal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "id", "type": "uint256" } - ], - "stateMutability": "view", - "type": "function", - "name": "allowance", - "outputs": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ] - }, - { - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "stateMutability": "payable", - "type": "function", - "name": "approve", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "uint256", "name": "id", "type": "uint256" } - ], - "stateMutability": "view", - "type": "function", - "name": "balanceOf", - "outputs": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousSplitBatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedBatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitBatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedBatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousSplitMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedSplitMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedSplitMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitBatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct BatchClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedBatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct BasicClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitBatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct BatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct BatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousSplitMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousSplitBatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedBatchClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedBatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct BatchClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitBatchClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitBatchClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedBatchClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct MultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct MultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitBatchClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitBatchClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousBatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousBatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitBatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claim", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedBatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitBatchClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitBatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedBatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitBatchClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedBatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct MultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousSplitBatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitBatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousBatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousSplitMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct BatchClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitBatchClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousSplitBatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitBatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedSplitMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct BatchClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct MultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedSplitMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitBatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedBatchClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct BasicClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct BatchMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct BatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedSplitBatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousSplitMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousBatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedMultichainClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct SplitBatchClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "struct SplitBatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "portions", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedBatchClaim", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct QualifiedSplitClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "struct SplitComponent[]", - "name": "claimants", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "claimant", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "struct ExogenousQualifiedBatchMultichainClaimWithWitness", - "name": "claimPayload", - "type": "tuple", - "components": [ - { - "internalType": "bytes", - "name": "allocatorSignature", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "sponsorSignature", - "type": "bytes" - }, - { - "internalType": "address", - "name": "sponsor", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expires", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "witness", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "witnessTypestring", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "qualificationTypehash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "qualificationPayload", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "additionalChains", - "type": "bytes32[]" - }, - { - "internalType": "uint256", - "name": "chainIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "notarizedChainId", - "type": "uint256" - }, - { - "internalType": "struct BatchClaimComponent[]", - "name": "claims", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "allocatedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { - "internalType": "address", - "name": "claimant", - "type": "address" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimAndWithdraw", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "uint256[]", - "name": "nonces", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "consume", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { "internalType": "uint256", "name": "id", "type": "uint256" } - ], - "stateMutability": "view", - "type": "function", - "name": "decimals", - "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "token", "type": "address" }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "enum ResetPeriod", "name": "", "type": "uint8" }, - { "internalType": "enum Scope", "name": "", "type": "uint8" }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { "internalType": "bytes", "name": "signature", "type": "bytes" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "deposit", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocator", - "type": "address" - }, - { - "internalType": "enum ResetPeriod", - "name": "resetPeriod", - "type": "uint8" - }, - { "internalType": "enum Scope", "name": "scope", "type": "uint8" }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "deposit", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" } - ] - }, - { - "inputs": [ - { "internalType": "address", "name": "token", "type": "address" }, - { - "internalType": "address", - "name": "allocator", - "type": "address" - }, - { - "internalType": "enum ResetPeriod", - "name": "resetPeriod", - "type": "uint8" - }, - { "internalType": "enum Scope", "name": "scope", "type": "uint8" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "deposit", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" } - ] - }, - { - "inputs": [ - { "internalType": "address", "name": "token", "type": "address" }, - { - "internalType": "address", - "name": "allocator", - "type": "address" - }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "deposit", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" } - ] - }, - { - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { - "internalType": "struct ISignatureTransfer.TokenPermissions[]", - "name": "permitted", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "enum ResetPeriod", "name": "", "type": "uint8" }, - { "internalType": "enum Scope", "name": "", "type": "uint8" }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { "internalType": "bytes", "name": "signature", "type": "bytes" } - ], - "stateMutability": "payable", - "type": "function", - "name": "deposit", - "outputs": [ - { "internalType": "uint256[]", "name": "", "type": "uint256[]" } - ] - }, - { - "inputs": [ - { - "internalType": "uint256[2][]", - "name": "idsAndAmounts", - "type": "uint256[2][]" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "deposit", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocator", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "deposit", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" } - ] - }, - { - "inputs": [ - { "internalType": "address", "name": "token", "type": "address" }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { - "internalType": "address", - "name": "depositor", - "type": "address" - }, - { "internalType": "address", "name": "", "type": "address" }, - { - "internalType": "enum ResetPeriod", - "name": "resetPeriod", - "type": "uint8" - }, - { "internalType": "enum Scope", "name": "", "type": "uint8" }, - { - "internalType": "bytes32", - "name": "claimHash", - "type": "bytes32" - }, - { - "internalType": "enum CompactCategory", - "name": "compactCategory", - "type": "uint8" - }, - { "internalType": "string", "name": "witness", "type": "string" }, - { "internalType": "bytes", "name": "signature", "type": "bytes" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "depositAndRegister", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" } - ] - }, - { - "inputs": [ - { - "internalType": "uint256[2][]", - "name": "idsAndAmounts", - "type": "uint256[2][]" - }, - { - "internalType": "bytes32[2][]", - "name": "claimHashesAndTypehashes", - "type": "bytes32[2][]" - }, - { "internalType": "uint256", "name": "duration", "type": "uint256" } - ], - "stateMutability": "payable", - "type": "function", - "name": "depositAndRegister", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocator", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "claimHash", - "type": "bytes32" - }, - { "internalType": "bytes32", "name": "typehash", "type": "bytes32" } - ], - "stateMutability": "payable", - "type": "function", - "name": "depositAndRegister", - "outputs": [ - { "internalType": "uint256", "name": "id", "type": "uint256" } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "depositor", - "type": "address" - }, - { - "internalType": "struct ISignatureTransfer.TokenPermissions[]", - "name": "permitted", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ] - }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "address", "name": "", "type": "address" }, - { - "internalType": "enum ResetPeriod", - "name": "resetPeriod", - "type": "uint8" - }, - { "internalType": "enum Scope", "name": "", "type": "uint8" }, - { - "internalType": "bytes32", - "name": "claimHash", - "type": "bytes32" - }, - { - "internalType": "enum CompactCategory", - "name": "compactCategory", - "type": "uint8" - }, - { "internalType": "string", "name": "witness", "type": "string" }, - { "internalType": "bytes", "name": "signature", "type": "bytes" } - ], - "stateMutability": "payable", - "type": "function", - "name": "depositAndRegister", - "outputs": [ - { "internalType": "uint256[]", "name": "", "type": "uint256[]" } - ] - }, - { - "inputs": [ - { "internalType": "address", "name": "token", "type": "address" }, - { - "internalType": "address", - "name": "allocator", - "type": "address" - }, - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { - "internalType": "bytes32", - "name": "claimHash", - "type": "bytes32" - }, - { "internalType": "bytes32", "name": "typehash", "type": "bytes32" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "depositAndRegister", - "outputs": [ - { "internalType": "uint256", "name": "id", "type": "uint256" } - ] - }, - { - "inputs": [ - { "internalType": "uint256", "name": "id", "type": "uint256" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "disableForcedWithdrawal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { "internalType": "uint256", "name": "id", "type": "uint256" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "enableForcedWithdrawal", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" } - ] - }, - { - "inputs": [ - { "internalType": "bytes32", "name": "slot", "type": "bytes32" } - ], - "stateMutability": "view", - "type": "function", - "name": "extsload", - "outputs": [ - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32[]", - "name": "slots", - "type": "bytes32[]" - } - ], - "stateMutability": "view", - "type": "function", - "name": "extsload", - "outputs": [ - { "internalType": "bytes32[]", "name": "", "type": "bytes32[]" } - ] - }, - { - "inputs": [ - { "internalType": "bytes32", "name": "slot", "type": "bytes32" } - ], - "stateMutability": "view", - "type": "function", - "name": "exttload", - "outputs": [ - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ] - }, - { - "inputs": [ - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "forcedWithdrawal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "id", "type": "uint256" } - ], - "stateMutability": "view", - "type": "function", - "name": "getForcedWithdrawalStatus", - "outputs": [ - { - "internalType": "enum ForcedWithdrawalStatus", - "name": "", - "type": "uint8" - }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ] - }, - { - "inputs": [ - { "internalType": "uint256", "name": "id", "type": "uint256" } - ], - "stateMutability": "view", - "type": "function", - "name": "getLockDetails", - "outputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "enum ResetPeriod", "name": "", "type": "uint8" }, - { "internalType": "enum Scope", "name": "", "type": "uint8" } - ] - }, - { - "inputs": [ - { "internalType": "address", "name": "sponsor", "type": "address" }, - { - "internalType": "bytes32", - "name": "claimHash", - "type": "bytes32" - }, - { "internalType": "bytes32", "name": "typehash", "type": "bytes32" } - ], - "stateMutability": "view", - "type": "function", - "name": "getRegistrationStatus", - "outputs": [ - { "internalType": "bool", "name": "isActive", "type": "bool" }, - { "internalType": "uint256", "name": "expires", "type": "uint256" } - ] - }, - { - "inputs": [ - { "internalType": "uint256", "name": "nonce", "type": "uint256" }, - { - "internalType": "address", - "name": "allocator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "hasConsumedAllocatorNonce", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "address", "name": "spender", "type": "address" } - ], - "stateMutability": "view", - "type": "function", - "name": "isOperator", - "outputs": [ - { "internalType": "bool", "name": "status", "type": "bool" } - ] - }, - { - "inputs": [ - { "internalType": "uint256", "name": "id", "type": "uint256" } - ], - "stateMutability": "view", - "type": "function", - "name": "name", - "outputs": [ - { "internalType": "string", "name": "", "type": "string" } - ] - }, - { - "inputs": [], - "stateMutability": "pure", - "type": "function", - "name": "name", - "outputs": [ - { "internalType": "string", "name": "", "type": "string" } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32[2][]", - "name": "claimHashesAndTypehashes", - "type": "bytes32[2][]" - }, - { "internalType": "uint256", "name": "duration", "type": "uint256" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "register", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "claimHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "typehash", - "type": "bytes32" - }, - { "internalType": "uint256", "name": "duration", "type": "uint256" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "register", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { "internalType": "bool", "name": "approved", "type": "bool" } - ], - "stateMutability": "payable", - "type": "function", - "name": "setOperator", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function", - "name": "supportsInterface", - "outputs": [ - { "internalType": "bool", "name": "result", "type": "bool" } - ] - }, - { - "inputs": [ - { "internalType": "uint256", "name": "id", "type": "uint256" } - ], - "stateMutability": "view", - "type": "function", - "name": "symbol", - "outputs": [ - { "internalType": "string", "name": "", "type": "string" } - ] - }, - { - "inputs": [ - { "internalType": "uint256", "name": "id", "type": "uint256" } - ], - "stateMutability": "view", - "type": "function", - "name": "tokenURI", - "outputs": [ - { "internalType": "string", "name": "", "type": "string" } - ] - }, - { - "inputs": [ - { "internalType": "address", "name": "to", "type": "address" }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "stateMutability": "payable", - "type": "function", - "name": "transfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - }, - { - "inputs": [ - { "internalType": "address", "name": "from", "type": "address" }, - { "internalType": "address", "name": "to", "type": "address" }, - { "internalType": "uint256", "name": "id", "type": "uint256" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "stateMutability": "payable", - "type": "function", - "name": "transferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "DOMAIN_SEPARATOR()": { - "returns": { - "_0": "A bytes32 representing the domain separator for the contract." - } - }, - "__activateTstore()": { - "details": "External function to activate TSTORE usage. Does not need to be called if TSTORE is supported from deployment, and only needs to be called once. Reverts if TSTORE has already been activated or if the opcode is not available. Note that this must be called directly from an externally-owned account to avoid potential reentrancy issues." - }, - "__registerAllocator(address,bytes)": { - "params": { - "allocator": "The address to register as an allocator.", - "proof": "An 85-byte value containing create2 address derivation parameters (0xff ++ factory ++ salt ++ initcode hash)." - }, - "returns": { - "_0": "A unique identifier assigned to the registered allocator." - } - }, - "allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))": { - "params": { - "transfer": "A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive." - }, - "returns": { "_0": "Whether the transfer was successful." } - }, - "allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))": { - "params": { - "transfer": "A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive all tokens." - }, - "returns": { "_0": "Whether the transfer was successful." } - }, - "allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))": { - "params": { - "transfer": "A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive." - }, - "returns": { "_0": "Whether the transfer was successful." } - }, - "allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))": { - "params": { - "transfer": "A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the transfer cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to transfer. - recipient The account that will receive the tokens." - }, - "returns": { "_0": "Whether the transfer was successful." } - }, - "allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))": { - "params": { - "withdrawal": "A SplitBatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of SplitByIdComponents, each containing: - id The ERC6909 token identifier of the resource lock. - portions Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive." - }, - "returns": { "_0": "Whether the withdrawal was successful." } - }, - "allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))": { - "params": { - "withdrawal": "A BatchTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - transfers Array of TransferComponents, each containing: - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive all tokens." - }, - "returns": { "_0": "Whether the withdrawal was successful." } - }, - "allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))": { - "params": { - "withdrawal": "A SplitTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - recipients Array of SplitComponents, each containing: - claimant The account that will receive tokens. - amount The amount of tokens the claimant will receive." - }, - "returns": { "_0": "Whether the withdrawal was successful." } - }, - "allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))": { - "params": { - "withdrawal": "A BasicTransfer struct containing the following: - allocatorSignature Authorization signature from the allocator. - nonce Parameter enforcing replay protection, scoped to the allocator. - expires Timestamp after which the withdrawal cannot be executed. - id The ERC6909 token identifier of the resource lock. - amount The amount of tokens to withdraw. - recipient The account that will receive the tokens." - }, - "returns": { "_0": "Whether the withdrawal was successful." } - }, - "allowance(address,address,uint256)": { - "details": "Returns the amount of token `id` that `spender` can spend on behalf of `owner`." - }, - "approve(address,uint256,uint256)": { - "details": "Sets `amount` as the allowance of `spender` for the caller for token `id`. Emits a {Approval} event." - }, - "balanceOf(address,uint256)": { - "details": "Returns the amount of token `id` owned by `owner`." - }, - "consume(uint256[])": { - "params": { "nonces": "Array of nonces to be consumed." }, - "returns": { - "_0": "Whether all nonces were successfully consumed." - } - }, - "decimals(uint256)": { - "details": "Returns the number of decimals for token `id`. Returns 18 by default. Please override this function if you need to return a custom value." - }, - "deposit(address)": { - "params": { "allocator": "The address of the allocator." }, - "returns": { - "_0": "The ERC6909 token identifier of the associated resource lock." - } - }, - "deposit(address,address,uint256)": { - "params": { - "allocator": "The address of the allocator mediating the resource lock.", - "amount": "The amount of tokens to deposit.", - "token": "The address of the ERC20 token to deposit." - }, - "returns": { - "_0": " The ERC6909 token identifier of the associated resource lock." - } - }, - "deposit(address,address,uint8,uint8,uint256,address)": { - "params": { - "allocator": "The address of the allocator mediating the resource lock.", - "amount": "The amount of tokens to deposit.", - "recipient": "The address that will receive the corresponding ERC6909 tokens.", - "resetPeriod": "The duration after which the resource lock can be reset once a forced withdrawal is initiated.", - "scope": "The scope of the resource lock (multichain or single chain).", - "token": "The address of the ERC20 token to deposit." - }, - "returns": { - "_0": " The ERC6909 token identifier of the associated resource lock." - } - }, - "deposit(address,uint8,uint8,address)": { - "params": { - "allocator": "The address of the allocator mediating the resource lock.", - "recipient": "The address that will receive the corresponding ERC6909 tokens.", - "resetPeriod": "The duration after which the resource lock can be reset once a forced withdrawal is initiated.", - "scope": "The scope of the resource lock (multichain or single chain)." - }, - "returns": { - "_0": " The ERC6909 token identifier of the associated resource lock." - } - }, - "deposit(uint256[2][],address)": { - "params": { - "idsAndAmounts": "Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit.", - "recipient": "The address that will receive the corresponding ERC6909 tokens." - }, - "returns": { - "_0": "Whether the batch deposit was successfully completed." - } - }, - "depositAndRegister(address,address,uint256,bytes32,bytes32)": { - "params": { - "allocator": "The address of the allocator mediating the resource lock.", - "amount": "The amount of tokens to deposit.", - "claimHash": "A bytes32 hash derived from the details of the compact.", - "token": "The address of the ERC20 token to deposit.", - "typehash": "The EIP-712 typehash associated with the registered compact." - }, - "returns": { - "id": " The ERC6909 token identifier of the associated resource lock." - } - }, - "depositAndRegister(address,bytes32,bytes32)": { - "params": { - "allocator": "The address of the allocator.", - "claimHash": "A bytes32 hash derived from the details of the compact.", - "typehash": "The EIP-712 typehash associated with the registered compact." - }, - "returns": { - "id": " The ERC6909 token identifier of the associated resource lock." - } - }, - "depositAndRegister(uint256[2][],bytes32[2][],uint256)": { - "params": { - "claimHashesAndTypehashes": "Array of [claimHash, typehash] pairs for registration.", - "duration": "The duration for which the claim hashes remain valid.", - "idsAndAmounts": "Array of [id, amount] pairs with each pair indicating the resource lock and amount to deposit." - }, - "returns": { - "_0": "Whether the batch deposit and claim hash registration was successfully completed." - } - }, - "disableForcedWithdrawal(uint256)": { - "params": { - "id": "The ERC6909 token identifier for the resource lock." - }, - "returns": { - "_0": "Whether the forced withdrawal was successfully disabled." - } - }, - "enableForcedWithdrawal(uint256)": { - "params": { - "id": "The ERC6909 token identifier for the resource lock." - }, - "returns": { - "_0": "The timestamp at which tokens become withdrawable." - } - }, - "forcedWithdrawal(uint256,address,uint256)": { - "params": { - "amount": "The amount of tokens to withdraw.", - "id": "The ERC6909 token identifier for the resource lock.", - "recipient": "The account that will receive the withdrawn tokens." - }, - "returns": { - "_0": "Whether the forced withdrawal was successfully executed." - } - }, - "getForcedWithdrawalStatus(address,uint256)": { - "params": { - "account": "The account to get the forced withdrawal status for.", - "id": "The ERC6909 token identifier of the resource lock." - }, - "returns": { - "_0": " The current ForcedWithdrawalStatus (disabled, pending, or enabled).", - "_1": "The timestamp at which tokens become withdrawable if status is pending." - } - }, - "getLockDetails(uint256)": { - "params": { - "id": "The ERC6909 token identifier of the resource lock." - }, - "returns": { - "_0": " The address of the underlying token (or address(0) for native tokens).", - "_1": " The account of the allocator mediating the resource lock.", - "_2": "The duration after which the resource lock can be reset once a forced withdrawal is initiated.", - "_3": " The scope of the resource lock (multichain or single chain)." - } - }, - "getRegistrationStatus(address,bytes32,bytes32)": { - "params": { - "claimHash": "A bytes32 hash derived from the details of the compact.", - "sponsor": "The account that registered the compact.", - "typehash": "The EIP-712 typehash associated with the registered claim hash." - }, - "returns": { - "expires": " The timestamp at which the compact registration expires.", - "isActive": "Whether the compact registration is currently active." - } - }, - "hasConsumedAllocatorNonce(uint256,address)": { - "params": { - "allocator": "The account of the allocator.", - "nonce": "The nonce to check." - }, - "returns": { "_0": "Whether the nonce has been consumed." } - }, - "isOperator(address,address)": { - "details": "Checks if a `spender` is approved by `owner` to manage all of their tokens." - }, - "name()": { "details": "Returns the name for the contract." }, - "name(uint256)": { "details": "Returns the symbol for token `id`." }, - "register(bytes32,bytes32,uint256)": { - "params": { - "claimHash": "A bytes32 hash derived from the details of the compact.", - "duration": "The duration for which the claim hash remains valid.", - "typehash": "The EIP-712 typehash associated with the registered claim hash." - }, - "returns": { - "_0": "Whether the claim hash was successfully registered." - } - }, - "register(bytes32[2][],uint256)": { - "params": { - "claimHashesAndTypehashes": "Array of [claimHash, typehash] pairs for registration.", - "duration": "The duration for which the claim hashes remain valid." - }, - "returns": { - "_0": "Whether all claim hashes were successfully registered." - } - }, - "setOperator(address,bool)": { - "details": "Sets whether `operator` is approved to manage the tokens of the caller. Emits {OperatorSet} event." - }, - "supportsInterface(bytes4)": { - "details": "Returns true if this contract implements the interface defined by `interfaceId`." - }, - "symbol(uint256)": { - "details": "Returns the symbol for token `id`." - }, - "tokenURI(uint256)": { - "details": "Returns the Uniform Resource Identifier (URI) for token `id`." - }, - "transfer(address,uint256,uint256)": { - "details": "Transfers `amount` of token `id` from the caller to `to`. Requirements: - caller must at least have `amount`. Emits a {Transfer} event." - }, - "transferFrom(address,address,uint256,uint256)": { - "details": "Transfers `amount` of token `id` from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount` of token `id`. - The caller must have at least `amount` of allowance to transfer the tokens of `from` or approved as an operator. Emits a {Transfer} event." - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "DOMAIN_SEPARATOR()": { - "notice": "External pure function for returning the domain separator of the contract." - }, - "__registerAllocator(address,bytes)": { - "notice": "External function for registering an allocator. Can be called by anyone if one of three conditions is met: the caller is the allocator address being registered, the allocator address contains code, or a proof is supplied representing valid create2 deployment parameters that resolve to the supplied allocator address." - }, - "allocatedTransfer((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))": { - "notice": "Transfers ERC6909 tokens from multiple resource locks to multiple recipients with allocator approval." - }, - "allocatedTransfer((bytes,uint256,uint256,(uint256,uint256)[],address))": { - "notice": "Transfers ERC6909 tokens from multiple resource locks to a single recipient with allocator approval." - }, - "allocatedTransfer((bytes,uint256,uint256,uint256,(address,uint256)[]))": { - "notice": "Transfers ERC6909 tokens to multiple recipients with allocator approval." - }, - "allocatedTransfer((bytes,uint256,uint256,uint256,uint256,address))": { - "notice": "Transfers ERC6909 tokens to a single recipient with allocator approval." - }, - "allocatedWithdrawal((bytes,uint256,uint256,(uint256,(address,uint256)[])[]))": { - "notice": "Withdraws underlying tokens from multiple resource locks to multiple recipients with allocator approval." - }, - "allocatedWithdrawal((bytes,uint256,uint256,(uint256,uint256)[],address))": { - "notice": "Withdraws underlying tokens from multiple resource locks to a single recipient with allocator approval." - }, - "allocatedWithdrawal((bytes,uint256,uint256,uint256,(address,uint256)[]))": { - "notice": "Withdraws underlying tokens to multiple recipients with allocator approval." - }, - "allocatedWithdrawal((bytes,uint256,uint256,uint256,uint256,address))": { - "notice": "Withdraws underlying tokens to a single recipient with allocator approval." - }, - "consume(uint256[])": { - "notice": "External function for consuming allocator nonces. Only callable by a registered allocator. Once consumed, any compact payloads that utilize those nonces cannot be claimed." - }, - "deposit(address)": { - "notice": "External payable function for depositing native tokens into a resource lock and receiving back ERC6909 tokens representing the underlying locked balance controlled by the depositor. The allocator mediating the lock is provided as an argument, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction." - }, - "deposit(address,address,uint256)": { - "notice": "External function for depositing ERC20 tokens into a resource lock. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token." - }, - "deposit(address,address,uint8,uint8,uint256,address)": { - "notice": "External function for depositing ERC20 tokens into a resource lock with custom reset period and scope parameters. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received by the recipient is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token." - }, - "deposit(address,uint8,uint8,address)": { - "notice": "External payable function for depositing native tokens into a resource lock with custom reset period and scope parameters. The ERC6909 token amount received by the recipient will match the amount of native tokens sent with the transaction." - }, - "deposit(uint256[2][],address)": { - "notice": "External payable function for depositing multiple tokens in a single transaction. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens." - }, - "depositAndRegister(address,address,uint256,bytes32,bytes32)": { - "notice": "External function for depositing ERC20 tokens and simultaneously registering a compact. The default reset period (ten minutes) and scope (multichain) will be used. The caller must directly approve The Compact to transfer a sufficient amount of the ERC20 token on its behalf. The ERC6909 token amount received back by the caller is derived from the difference between the starting and ending balance held in the resource lock, which may differ from the amount transferred depending on the implementation details of the respective token." - }, - "depositAndRegister(address,bytes32,bytes32)": { - "notice": "External payable function for depositing native tokens into a resource lock and simultaneously registering a compact. The allocator, the claim hash, and the typehash used for the claim hash are provided as additional arguments, and the default reset period (ten minutes) and scope (multichain) will be used for the resource lock. The ERC6909 token amount received by the caller will match the amount of native tokens sent with the transaction." - }, - "depositAndRegister(uint256[2][],bytes32[2][],uint256)": { - "notice": "External payable function for depositing multiple tokens in a single transaction and registering a set of claim hashes. The first entry in idsAndAmounts can optionally represent native tokens by providing the null address and an amount matching msg.value. For ERC20 tokens, the caller must directly approve The Compact to transfer sufficient amounts on its behalf. The ERC6909 token amounts received by the recipient are derived from the differences between starting and ending balances held in the resource locks, which may differ from the amounts transferred depending on the implementation details of the respective tokens. Note that resource lock ids must be supplied in alphanumeric order." - }, - "disableForcedWithdrawal(uint256)": { - "notice": "External function to disable a previously enabled forced withdrawal for a resource lock." - }, - "enableForcedWithdrawal(uint256)": { - "notice": "External function to initiate a forced withdrawal for a resource lock. Once enabled, forced withdrawals can be executed after the reset period has elapsed. The withdrawableAt timestamp returned will be the current timestamp plus the reset period associated with the resource lock." - }, - "forcedWithdrawal(uint256,address,uint256)": { - "notice": "External function to execute a forced withdrawal from a resource lock after the reset period has elapsed. The tokens will be withdrawn to the specified recipient in the amount requested. The ERC6909 token balance of the caller will be reduced by the difference in the balance held by the resource lock before and after the withdrawal, which may differ from the provided amount depending on the underlying token in question." - }, - "getForcedWithdrawalStatus(address,uint256)": { - "notice": "External view function for checking the forced withdrawal status of a resource lock for a given account. Returns both the current status (disabled, pending, or enabled) and the timestamp at which forced withdrawals will be enabled (if status is pending) or became enabled (if status is enabled)." - }, - "getLockDetails(uint256)": { - "notice": "External view function for retrieving the details of a resource lock. Returns the underlying token, the mediating allocator, the reset period, and the scope." - }, - "getRegistrationStatus(address,bytes32,bytes32)": { - "notice": "External view function for checking the registration status of a compact. Returns both whether the claim hash is currently active and when it expires (if it is active)." - }, - "hasConsumedAllocatorNonce(uint256,address)": { - "notice": "External view function for checking whether a specific nonce has been consumed by an allocator. Once consumed, a nonce cannot be reused for claims mediated by that allocator." - }, - "register(bytes32,bytes32,uint256)": { - "notice": "External function to register a claim hash and its associated EIP-712 typehash. The registered claim hash will remain valid for the specified duration. Once expired, the claim hash can no longer be used to initiate claims." - }, - "register(bytes32[2][],uint256)": { - "notice": "External function to register multiple claim hashes and their associated EIP-712 typehashes in a single call. All registered claim hashes will remain valid for the specified duration. Once expired, the claim hashes can no longer be used to initiate claims." - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - "ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/", - "forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/", - "forge-std/=lib/forge-std/src/", - "openzeppelin-contracts/=lib/permit2/lib/openzeppelin-contracts/", - "permit2/=lib/permit2/", - "solady/=lib/solady/src/", - "soledge/=lib/soledge/src/", - "solmate/=lib/permit2/lib/solmate/", - "tstorish/=lib/tstorish/src/" - ], - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { "bytecodeHash": "none" }, - "compilationTarget": { "src/TheCompact.sol": "TheCompact" }, - "evmVersion": "cancun", - "libraries": {}, - "viaIR": true - }, - "sources": { - "lib/permit2/src/interfaces/IEIP712.sol": { - "keccak256": "0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138", - "urls": [ - "bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72", - "dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk" - ], - "license": "MIT" - }, - "lib/permit2/src/interfaces/ISignatureTransfer.sol": { - "keccak256": "0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e", - "urls": [ - "bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317", - "dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d" - ], - "license": "MIT" - }, - "lib/solady/src/tokens/ERC6909.sol": { - "keccak256": "0x03975a3d9680a1bfe53a678685c81ed4d70b6e0f046ccf1905539caa5376eea2", - "urls": [ - "bzz-raw://827a2f6b69fcb700909635203a9453310ea89c0bb904943cf3cc732e35d81398", - "dweb:/ipfs/QmZha3DSrunz1NR3jXHRXrLT6uvAKTt3AEV6PcbGWRLu4q" - ], - "license": "MIT" - }, - "lib/solady/src/utils/EfficientHashLib.sol": { - "keccak256": "0x32032578683dc18c5f95c8dd4c1422d212f230d96d5425cc491f3350157e6fe1", - "urls": [ - "bzz-raw://82c89ef25e537766bbfc8ebba4138eee4fa1b64527c39add8240bce2ea99c661", - "dweb:/ipfs/QmZVciQDtnXs3nDVUaH7mMLC6vFKe8zeKLK969bqJetKCj" - ], - "license": "MIT" - }, - "lib/solady/src/utils/LibString.sol": { - "keccak256": "0xa0b70980612eeedd30cc65c44c37a286c8527cb41c7454db55b1a435beb2276f", - "urls": [ - "bzz-raw://93950259301ac435f1d8756cb80f99eafe9da4dc68b05e148a4b16042a69cc9b", - "dweb:/ipfs/QmUpyP9AD7AqmRNEmrjLSQivXXdbZmFZKaLJwW9UP2wWCN" - ], - "license": "MIT" - }, - "lib/solady/src/utils/MetadataReaderLib.sol": { - "keccak256": "0x671f4b38462335f3500b91eeff2fd25fc447cc201901524959c05b934ad0b100", - "urls": [ - "bzz-raw://aa64b44dc13b25c1aa713cb5724fade1dc093c95581efc5ccb85cbcc616c02c5", - "dweb:/ipfs/QmRvXqBw8GqpShA8cXAwA6ha14Q2bfajNmYq1mYNYAaMiv" - ], - "license": "MIT" - }, - "lib/solady/src/utils/SafeTransferLib.sol": { - "keccak256": "0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a", - "urls": [ - "bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c", - "dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J" - ], - "license": "MIT" - }, - "lib/solady/src/utils/SignatureCheckerLib.sol": { - "keccak256": "0x472ad43dd67dcc0d548efbbc8779f34e56a7eb99d7a8b1c29af33fb03bbe9ffc", - "urls": [ - "bzz-raw://733da5015058b9540927c63c316665e9ac8d9676d23f722bddf9376c2a03d4cb", - "dweb:/ipfs/QmPhXj1qpjnwVjrZUgFdkinMK9XSuoLN3cxbSmqADYSZry" - ], - "license": "MIT" - }, - "lib/tstorish/src/Tstorish.sol": { - "keccak256": "0xad3697d9fd6e7c1fb6faa8d474af00bb2a7afd51e8818165fd30bcc7ead53973", - "urls": [ - "bzz-raw://a8b62000145be27440c913238fbe9b97ecfc709eacac14b498f18980418d6ab6", - "dweb:/ipfs/QmRMXHdYUDmajWzwUjs7CQZ5i1T739MhiMmimd3do8qJNk" - ], - "license": "MIT" - }, - "src/TheCompact.sol": { - "keccak256": "0x2949a8d172180ba623c85dfc22eda0ba1f59c4d70d8ee8ade62b5876ff6cd935", - "urls": [ - "bzz-raw://4c6a3fdaa5319cc8a272422e8af551bee8e1467f78aa8b65a1290fddf0453a90", - "dweb:/ipfs/QmafPX5TCncQbuhFtztQVL81hmU9wmdxfNZCYj9t5X6QqM" - ], - "license": "MIT" - }, - "src/interfaces/ITheCompact.sol": { - "keccak256": "0xe75d130ab9ead7ef7866f4ce8fcbe5e8de49450abf5f8c6b5878c4e54e480103", - "urls": [ - "bzz-raw://63b7694d1b97b350c41e668e72d25d3df10c230b9dd21219827d7d2cc0dc39b6", - "dweb:/ipfs/QmTDJAFcTYfU7DyfuYMJHK3YMYRkXQvm9MoUhywaqeUsZ6" - ], - "license": "MIT" - }, - "src/interfaces/ITheCompactClaims.sol": { - "keccak256": "0x5691d5127ccff51eea74ce4f6dd01a5f121fd2a1b7bdad41aca39c4d236e27bb", - "urls": [ - "bzz-raw://ca686c6911319d151dc1f658767545823d750c3fb54cb8f75e46b544df3a217a", - "dweb:/ipfs/QmT2a1twcvzHxjWwcLqMebo9rat5x5CVy2KJfawj9qXS5a" - ], - "license": "MIT" - }, - "src/lib/AllocatorLogic.sol": { - "keccak256": "0xadfa16ae7d02777e129d31639f110be46093ef109c1287896598ee792de34d5c", - "urls": [ - "bzz-raw://11a258ef5e43b6d85c99b330beaf4c3750f0d41c3b862b677551eca3626a2071", - "dweb:/ipfs/QmfViBPCWeKqgdVKfA7KQUz2JntZEdGfbpgAwCGWwLGQ9Y" - ], - "license": "MIT" - }, - "src/lib/ClaimHashFunctionCastLib.sol": { - "keccak256": "0xcfa2f7fb4e3df789ae504ebc13e31cadb6c05282e07d46a4b807d5d23a5ef530", - "urls": [ - "bzz-raw://51e642f4676ec4e0ecc1fb716cd051bd6d12dac2d39e997e516af5bd141b3178", - "dweb:/ipfs/QmeQ8vHdg8vsCZ9XPc3af82ktXHHicY3QQbAoghHfvkVK4" - ], - "license": "MIT" - }, - "src/lib/ClaimHashLib.sol": { - "keccak256": "0x2bc3fb604115697562a4770f98020efd578b02d6376b56ca52c64d0df46f6e87", - "urls": [ - "bzz-raw://aeddaee5ec0f8512fc13af7b0bfc07e93250a1bc34b6095c6a5bd6624a73990d", - "dweb:/ipfs/QmVeVSBNoJeMndTQpvB2Kr9BzWWG8crjeBPjZZxciGYXMx" - ], - "license": "MIT" - }, - "src/lib/ClaimProcessor.sol": { - "keccak256": "0x58872af76a73fd131a85635150545978bbe09ae83ec4ed2fae19d75c038a482c", - "urls": [ - "bzz-raw://8d782488fcbded4ef2781031940611599b6ec41e92d813800912e2c86afd7979", - "dweb:/ipfs/QmaCuq52gwjc1LfZrURPpyrjmGZZCtzhXRqg4dMhXP1NKa" - ], - "license": "MIT" - }, - "src/lib/ClaimProcessorFunctionCastLib.sol": { - "keccak256": "0xb69ec41dc657f93f6f6a1901d39e48a791907d4debc0eb8104f9fe016b6a59ba", - "urls": [ - "bzz-raw://b6a54cebc498c4181ddc25fd4c6162449ae12d407fc1b45c0e6c4b365da1543e", - "dweb:/ipfs/QmRdZp5fraYJRB7QXwDqE5jbpmerWaCV3DqMPxi9aCk4ZQ" - ], - "license": "MIT" - }, - "src/lib/ClaimProcessorLib.sol": { - "keccak256": "0xf150692ad2915d0c4df63ea44e62f6e3d5736f2c91de7cea48a1301cf4034e51", - "urls": [ - "bzz-raw://1c2f21638d2a613e912cf73dd049b0bb2e4abbea54a3f58a5439f6396c59d9ee", - "dweb:/ipfs/QmRQpwnhhNfvWyTXHRy982awBnHA4fjK7GpHzSgqC3pPT6" - ], - "license": "MIT" - }, - "src/lib/ClaimProcessorLogic.sol": { - "keccak256": "0x737780590a48e67dc0f64bd3bb7248eafb7630f579d8aa44befb197d9ac66ce8", - "urls": [ - "bzz-raw://ea7c69e2cbf316fe182fad296b8d65a76ade84923edb0572c339f880e21fc7bc", - "dweb:/ipfs/QmWuZ9UJA4nsdPjgCa6rsCBvoWBjcUhWRuCnLqPNbM8687" - ], - "license": "MIT" - }, - "src/lib/ComponentLib.sol": { - "keccak256": "0x3e1ad4bff9cd12162f9b849078839b802f4783b474588fa93be8ba1e61263dd6", - "urls": [ - "bzz-raw://faa70f41d0679e1fa2aa827f863c03bf8a3962703a26ae724b7ca2a8d5f9f96b", - "dweb:/ipfs/QmXWyv8ATKeSKwiXCPFZBLkrRuV1NhNDS5yH5rDyrm6GLs" - ], - "license": "MIT" - }, - "src/lib/ConstructorLogic.sol": { - "keccak256": "0xca9b0d52a562351978aafcc06f79f5c555ea948eaad28983812a7892f02b1245", - "urls": [ - "bzz-raw://1f2e41013c0ef8ef9bee844494185b7a09c8680ea3d931a2683f968cdaa154a9", - "dweb:/ipfs/QmX8CoLP6VGRkxhx6VonrRf2YqPZ1hg1LagKvkNBaQtNaR" - ], - "license": "MIT" - }, - "src/lib/ConsumerLib.sol": { - "keccak256": "0x582badfccdb57ee9518e39676fab7ba2abc6b527c854d524b8f417126fa6d192", - "urls": [ - "bzz-raw://96d6dde54bdad2fc2203620d5f75e96cc9267cb340e1284d311bf6f8c77d16d2", - "dweb:/ipfs/Qmbq8XuUiAoEsmYVa2NCHSdi6gu4ZYzeyr1iPNGaFwwhxu" - ], - "license": "MIT" - }, - "src/lib/DepositLogic.sol": { - "keccak256": "0xb2a199980ca4025c1784ebc79ec5d73cbe849ff26d446b2ca58bdb7066475fcf", - "urls": [ - "bzz-raw://73e9defc19c10bb6b63d7571a1e097ed09accdf7cf123b91c8a9bea02c9ca87f", - "dweb:/ipfs/QmVWt9Ssb6CuFpYKTDYc31FH9TFZfYqs4WGsqf2ksiPtpx" - ], - "license": "MIT" - }, - "src/lib/DepositViaPermit2Lib.sol": { - "keccak256": "0x3d45834b9be7e0af8aadd4c3afb2b5d7a9c1a47156e30780499852b1e503b1c4", - "urls": [ - "bzz-raw://1e16d1aa8eb93fefd956455fbb157a58cb9fb3824a276f54a33a52c17924c30b", - "dweb:/ipfs/QmUmsqU9p8J7r7hk5jxNYXUnaPoCaMruFKtxFo12zV7XJQ" - ], - "license": "MIT" - }, - "src/lib/DepositViaPermit2Logic.sol": { - "keccak256": "0xb8813f63d4a3c05dc99e36b6a900cbd7c6c6bfc8cccdb5b9052894400b4925a9", - "urls": [ - "bzz-raw://463fa79ef23b7f6d56a9bc8f6139917374a06f860c12fbfe6e76d794e690b9e0", - "dweb:/ipfs/QmXGqm3wZqRSDAvy7mykMvezMBVPPT79pJYsASwkxXFitq" - ], - "license": "MIT" - }, - "src/lib/DirectDepositLogic.sol": { - "keccak256": "0xa1b9f042c5ecf3edcde3733bd12cde49633dcce9336622ea7c5eabd0ce2bafa1", - "urls": [ - "bzz-raw://0eeaa505727c2b42780bd4e3e3dbede2ce51480c46ff90ad401d7328fc5e42d8", - "dweb:/ipfs/QmZ8MDQjSi2yczScSgKyd6Ge3ir4xJA2o8pX1j15ryyzVp" - ], - "license": "MIT" - }, - "src/lib/DomainLib.sol": { - "keccak256": "0x0a69b112fabd7d4e13fbf4c796a4a163f522c84b4b6a981c913a6c7342f5cc6a", - "urls": [ - "bzz-raw://4a3d3fd2d8ab66c6dd0f2674efcf2bca87899decd42e949631be80a60f74d6a2", - "dweb:/ipfs/QmP38CpNz5GjycQZwpe7CxXrRsugraQDtr6rsiA5ue2iK6" - ], - "license": "MIT" - }, - "src/lib/EfficiencyLib.sol": { - "keccak256": "0xd8fd182c728a98a3ac5c64cbc7011bc34dc1ee06e377a1a5e670c3cd8375eff9", - "urls": [ - "bzz-raw://1f565cad687dc0bd3438a8b8b08ecc973f5ad5a1aebd332baa402e45cd56ae83", - "dweb:/ipfs/QmayoEFEv6zMhRw6kqqoqdmNE1jGbwgRQ6VA5wj2XAb7Du" - ], - "license": "MIT" - }, - "src/lib/EventLib.sol": { - "keccak256": "0x0d9bc84e78628d9ff42689b8cd33353c86f9de7220002d74c5d485275f328946", - "urls": [ - "bzz-raw://eb8bf826a89bb1cc62e8af269f34453c13df6ffe473e0dff8aeddaf1797afa0f", - "dweb:/ipfs/QmX7TFZACuGBhCVMjAPve7JKz6PWZjYTMr7JQ9WbFatKcu" - ], - "license": "MIT" - }, - "src/lib/Extsload.sol": { - "keccak256": "0x72075add7c7d734c46922f2f56cb490d48711a0cc6af439619ff39e60df75924", - "urls": [ - "bzz-raw://283cc72cb88802327c60fc9bc75f840ff639d791c1d19056bbadf7e7e5f3c99f", - "dweb:/ipfs/QmWoCebx1axDW8uuUEPv6QRzGWFD5bRGnvw2VD7KJufokB" - ], - "license": "MIT" - }, - "src/lib/HashLib.sol": { - "keccak256": "0x50bc064b796b92d6199cf09cf8ea34a808653a8c668f695ce89cd3614956cb4e", - "urls": [ - "bzz-raw://6bd96eb47fd50bb4f15540e3f8c903d5cf83d8e0e975d615abb9e2dfe7329af0", - "dweb:/ipfs/QmVPs5HWJEbUtKQn69jSYdA7U92jU7nkWwGfsmD6sUCWsR" - ], - "license": "MIT" - }, - "src/lib/IdLib.sol": { - "keccak256": "0x14a04b7bdfcd5e7cc783a7202cb0429fb225f0a960908f06028f39f78b01373b", - "urls": [ - "bzz-raw://c465efd13c8fd3ddfd701357f8f6e64443d69c5ab835c7bb35b8934261c2313e", - "dweb:/ipfs/QmP15v2Qrp1hg7BvkfzE4zqcjwhDH2NBHkzJ8rRShCwU8S" - ], - "license": "MIT" - }, - "src/lib/MetadataLib.sol": { - "keccak256": "0x1d7f67de567fccba29393048a15373c9ad6cc903409b52b94a8baf1747204340", - "urls": [ - "bzz-raw://1f15f66c2420d6f5a527ee12945bc000e7687586727845015d60e229ca5009d4", - "dweb:/ipfs/QmY27xFEKUBW3U7K18gQNNbmR3pZbp1Gz3ecQVkZQUBzek" - ], - "license": "MIT" - }, - "src/lib/MetadataRenderer.sol": { - "keccak256": "0xdef8b8a92120470f9d290b5d6ab3fc69145300741ca066b152ddc71cd719982e", - "urls": [ - "bzz-raw://6946d4d9d525fd21e3b4d310aaa5160de531bda7574bb5ad8c6a10616c340fe8", - "dweb:/ipfs/QmdB6Kwipo2MXCLPexXqjNP2xQhkG8BRx7KBWKMyqCRNHk" - ], - "license": "MIT" - }, - "src/lib/RegistrationLib.sol": { - "keccak256": "0xa6be3d3f74e30fa04157f369964afe818f562c82369bb0823ffc4a06297364a8", - "urls": [ - "bzz-raw://f73aa296543d4c3757a9b104278cfa9c07838ae9a9b82a3e77ed6df7bbe8ef20", - "dweb:/ipfs/QmWDCBxnz3quqhDtAN7zqetaQmCE8ULM1dAYEBrguHP5DQ" - ], - "license": "MIT" - }, - "src/lib/RegistrationLogic.sol": { - "keccak256": "0x40850751ea4a77f6bd9df09a3a9f565994dfd03b29a15dcc31e03da3be317b7f", - "urls": [ - "bzz-raw://16f07cb5ab8e5adfe74cdd700f5c9e448b28fab0b120058b25d4d1bcf2338a9a", - "dweb:/ipfs/QmULZACcDPswptXRxKnA8dBChU63k8CkvY5Q7YG7SJoSs6" - ], - "license": "MIT" - }, - "src/lib/SharedLogic.sol": { - "keccak256": "0xcc76a01f9dc24f1afc4fd21dbdb423ec7a6cccb454c9b725fa3b135d4d851365", - "urls": [ - "bzz-raw://1f9fe59a2d0c467832d42c60acabd4c599868024c09b5aa89e9e91b38e9f8eba", - "dweb:/ipfs/Qmbsu2BLJT32Qc77RR3ZHhVTMkyh1sLJueLiTuYHCQwxVf" - ], - "license": "MIT" - }, - "src/lib/TheCompactLogic.sol": { - "keccak256": "0xc6106d8b4a9f2bf6c9006181a3e6acc95c8524628b5096478c76716a7e2cc5c4", - "urls": [ - "bzz-raw://18056a737da3fddaac4cb50dd598b57e0bcc5d1889669831bbb4d09bc48c5cf6", - "dweb:/ipfs/QmPvQs8THzQPfpxuB5MKNKsFGiPjbR9B5QVAKa4NTkpSbd" - ], - "license": "MIT" - }, - "src/lib/TransferFunctionCastLib.sol": { - "keccak256": "0x1b2b8d48503f85dee96cb0d915d1f506ab872aac6fb29a1adbb894de93a534e7", - "urls": [ - "bzz-raw://6a2eb941a4a3e4633c88420ae3eab750ffdb32e431c71927a10feb6562b6e9a9", - "dweb:/ipfs/QmeYJbeupvqjyrMV43Z41mz52E9Bwqhmm4mSx7K8F26Vmb" - ], - "license": "MIT" - }, - "src/lib/TransferLogic.sol": { - "keccak256": "0x08ae66f9d642e8caabcd200d8574e5487cc11181c23acc18f2076e4f5e9ca086", - "urls": [ - "bzz-raw://2f4ec47106727e1fd5197f9fa7e86552469a198dd62dd24ad3dc1db9fb6d4327", - "dweb:/ipfs/QmR3bC1fmUVYTarsZMRU3u3RV1GcbNsF3NghvxND4B7J46" - ], - "license": "MIT" - }, - "src/lib/ValidityLib.sol": { - "keccak256": "0xfdecefc1bd9b9ba92fb471af7d09dc30255cb16154cec436b27fc06630fc7106", - "urls": [ - "bzz-raw://3b36c79e57192514bcf3aace66e38568708e066f24db93832f0a7f530754c5a7", - "dweb:/ipfs/QmUSRsBpZz7VEPN1ubX5mB71uKRdQ17Tf5jbkUNkyiMGhu" - ], - "license": "MIT" - }, - "src/lib/WithdrawalLogic.sol": { - "keccak256": "0x438c41cb28048ee067e8f64e2faaf7339a3324f0ce81ec96c94e5692074ee650", - "urls": [ - "bzz-raw://f811218032733e0fd0eb937a036b04e37dfcd46ed64bcbac22ecbb5d2a5993b4", - "dweb:/ipfs/QmdD2bN9Be2dDBEmuYBKGJKgW5FsayuojBqjYuz2ZvWcEb" - ], - "license": "MIT" - }, - "src/types/BatchClaims.sol": { - "keccak256": "0x368860cb48d9cf8b7ee86e226fc203307c8559ee5bbd987299c14580c61039b5", - "urls": [ - "bzz-raw://edd6eccb18ee3f7dc1e4fdeaa00d007b8cd6f506ab76366f74e530a66211ba8d", - "dweb:/ipfs/Qmf68iLL8CVZEvkjnQb6GdPumsP5V8dFfSubXCSx1Vgu4Z" - ], - "license": "MIT" - }, - "src/types/BatchMultichainClaims.sol": { - "keccak256": "0xe493995e946bf63d2970e5668e426f6c3d84f9ae5b03f86f7c493ae02ca8b96c", - "urls": [ - "bzz-raw://91370d328607589fa1ff37f3c0ef66a5b90ff63de20c8ccee3b009a6aedb2620", - "dweb:/ipfs/QmY5Ja2XfxRFbh4dtViqiepaSfNr1rWrMYSnSGjeMPxxNw" - ], - "license": "MIT" - }, - "src/types/Claims.sol": { - "keccak256": "0x6ae4ad79a64e0edd6169e87f8c3e35abd5f592ac23dc8eae7b92dfc190fa3ae2", - "urls": [ - "bzz-raw://d4434f16be0877209b2aaa51c9f27b9374fab6acbfc3b6241ba00907d6de7a96", - "dweb:/ipfs/QmTTcNwtekjwMZkrNKAcKAprWG47pSVEn2GETX6tZu746C" - ], - "license": "MIT" - }, - "src/types/CompactCategory.sol": { - "keccak256": "0xc3ab3758e88fc8591d79352d3d49140433bbf4176c3caa1bfce1903e2bfadf06", - "urls": [ - "bzz-raw://16960ee62b98c5cbbedcfe22ce4b521205d2bcc4fe9dfa57a9d68ec90efeb5a1", - "dweb:/ipfs/Qmc3FciGTRrDZjRSb9waUYkZsELRvVWkJKNVqS1u8vEDNG" - ], - "license": "MIT" - }, - "src/types/Components.sol": { - "keccak256": "0xd5027c0eb603a4604e050e97930fa436db33755b3e8097894320916cd7163ff0", - "urls": [ - "bzz-raw://b414c4a0e0d543f8de309bbb005f62d63a5c67ae6cf78d5d5b5fd076dd7b0a51", - "dweb:/ipfs/QmX8Z9Fp2QJVgE9hwbPjrXUYc4RVAE8qTyfN8DKBpV5iPB" - ], - "license": "MIT" - }, - "src/types/EIP712Types.sol": { - "keccak256": "0x386ff8e0aff7d437b8b49117ed158554e608d0cc18a0b4f561510e9584cafb91", - "urls": [ - "bzz-raw://e49d199dd3caab0210a2648a1b9d2a8965b5706f602fffee8e1815bbacddbe5e", - "dweb:/ipfs/QmYUzWFC4GK1rjoqnZEt2ghL5GMPCiaF5xaPzSr4Rm99PK" - ], - "license": "MIT" - }, - "src/types/ForcedWithdrawalStatus.sol": { - "keccak256": "0xdf352a2439e57ea9e1b7d54997fe904e4ea41ab9d2d8221d7d753dce94e76dc7", - "urls": [ - "bzz-raw://6faadb6857eda66cbef8fe1bf36d85d16f534b899a737a9464e69dc505eb9e89", - "dweb:/ipfs/QmdC9beQhPRYv5sAFx7TyWvzGPjm6XY3bCYNKzuZH1Pesd" - ], - "license": "MIT" - }, - "src/types/Lock.sol": { - "keccak256": "0x21a490258b933f8d5db759a91d07f7d9d2b2435d366334a8bcfbce4379a85011", - "urls": [ - "bzz-raw://d1cfcb02c3b0a70d82b2d9bd9c55ffcf654a226774711ca727eab8b0cdf456ea", - "dweb:/ipfs/QmRFN3dvespK1mUcUuXm4rnPd3ZGNRdba8MZgub1zu24Qw" - ], - "license": "MIT" - }, - "src/types/MultichainClaims.sol": { - "keccak256": "0x596b71d675b7b5e13b29f6b7fb92d23722d2792fadc82ad764467fdf9c693cb9", - "urls": [ - "bzz-raw://974d9d906e06ad29e875c2556d32c1f631a70539e43b018815e3fc68ede01e53", - "dweb:/ipfs/QmPbqsU21jDGhLQ9x9No2xDUimaLueGGF7eAkNxJfhc3fx" - ], - "license": "MIT" - }, - "src/types/ResetPeriod.sol": { - "keccak256": "0xfd32523d563b926c72fdc693aa8b7f6db24f4720decee16710cdfc662a8d8f16", - "urls": [ - "bzz-raw://4c510cde0fc28cde51aad2df6bac8eeef5e0fb67be754a3d8c655a8556db32c6", - "dweb:/ipfs/QmWjVZJdfxVK5EiprmWi9iGNMqXAkVZjECnzeXvjfTsDZX" - ], - "license": "MIT" - }, - "src/types/Scope.sol": { - "keccak256": "0x3e63be015c24bde88698efc20b00690d1e683a5cabf2122dc91ab0ecad4ae8ed", - "urls": [ - "bzz-raw://5160d46460204dc6268a963e9d0c117fab903318f74d3b5903693fe2dfcc2462", - "dweb:/ipfs/QmRsc4VSWvvSxi3VfyFgjTELj5DB5MpZ7UPJ3mzgPMyD9v" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "id": 36 + "stateMutability": "view" + } + ], + "methodIdentifiers": { + "getForcedWithdrawalStatus(address,uint256)": "144bd5b5", + "getRegistrationStatus(address,bytes32,bytes32)": "440a0ec3", + "hasConsumedAllocatorNonce(uint256,address)": "da2f268b" + } } From f0ad3b0f0b117affd1de75ac7da0c1c86f7d9fa9 Mon Sep 17 00:00:00 2001 From: fernandomg Date: Fri, 21 Mar 2025 12:39:45 +0100 Subject: [PATCH 40/41] chore: reduce noise --- typescript/solver/scripts/solver-add.ts | 4 +--- typescript/solver/scripts/solver-remove.ts | 21 ++++++++----------- .../templates/config/allowBlockLists.ts | 2 +- .../solver/scripts/templates/config/index.ts | 2 +- .../scripts/templates/config/metadata.ts | 6 +----- typescript/solver/scripts/templates/index.ts | 12 +++++------ .../solver/scripts/templates/rules/index.ts | 2 +- 7 files changed, 20 insertions(+), 29 deletions(-) diff --git a/typescript/solver/scripts/solver-add.ts b/typescript/solver/scripts/solver-add.ts index 36cacc89..ef4f72b3 100644 --- a/typescript/solver/scripts/solver-add.ts +++ b/typescript/solver/scripts/solver-add.ts @@ -28,9 +28,7 @@ async function getSolverName(cliName?: string): Promise { const solverPath = path.join(PATHS.solversDir, cliName); if (existsSync(solverPath)) { - throw new Error( - `Solver "${cliName}" already exists. Please choose a different name.`, - ); + throw new Error(`Solver "${cliName}" already exists. Please choose a different name.`); } return cliName; diff --git a/typescript/solver/scripts/solver-remove.ts b/typescript/solver/scripts/solver-remove.ts index 9a08a84b..45fd7e9d 100644 --- a/typescript/solver/scripts/solver-remove.ts +++ b/typescript/solver/scripts/solver-remove.ts @@ -11,13 +11,13 @@ import { } from "./utils.js"; function cancelOp() { - console.log("\nOperation cancelled."); + console.log('\nOperation cancelled.'); process.exit(0); } async function removeSolver() { - process.stdin.on("keypress", (_, key) => { - if (key.name === "q") { + process.stdin.on('keypress', (_, key) => { + if (key.name === 'q') { cancelOp(); } }); @@ -30,16 +30,15 @@ async function removeSolver() { } while (true) { - const choices = existingSolvers.map((solver) => ({ + const choices = existingSolvers.map(solver => ({ name: solver, value: solver, - description: `Remove solver "${solver}" and all related files`, + description: `Remove solver "${solver}" and all related files` })); try { const selectedSolvers = await checkbox({ - message: - "Select solvers to remove (space to select, enter to confirm, q to quit):", + message: "Select solvers to remove (space to select, enter to confirm, q to quit):", choices, pageSize: Math.min(choices.length, 10), loop: true, @@ -52,7 +51,7 @@ async function removeSolver() { const solverList = selectedSolvers.join(", "); const shouldProceed = await confirm({ message: `Are you sure you want to remove the following solvers: ${solverList}?`, - default: false, + default: false }); if (!shouldProceed) { @@ -63,9 +62,7 @@ async function removeSolver() { for (const name of selectedSolvers) { // Remove solver directory await fs.rm(path.join(PATHS.solversDir, name), { recursive: true }); - console.log( - `✓ Removed solver directory: ${path.join(PATHS.solversDir, name)}`, - ); + console.log(`✓ Removed solver directory: ${path.join(PATHS.solversDir, name)}`); // Update main solvers index.ts await updateSolversIndex(name, true); @@ -89,7 +86,7 @@ async function removeSolver() { return; } } catch (error) { - if (error.message?.includes("User force closed")) { + if (error.message?.includes('User force closed')) { cancelOp(); } diff --git a/typescript/solver/scripts/templates/config/allowBlockLists.ts b/typescript/solver/scripts/templates/config/allowBlockLists.ts index b3eda70a..439549a9 100644 --- a/typescript/solver/scripts/templates/config/allowBlockLists.ts +++ b/typescript/solver/scripts/templates/config/allowBlockLists.ts @@ -31,4 +31,4 @@ const allowBlockLists: AllowBlockLists = { AllowBlockListsSchema.parse(allowBlockLists); export default allowBlockLists; -`; +`; \ No newline at end of file diff --git a/typescript/solver/scripts/templates/config/index.ts b/typescript/solver/scripts/templates/config/index.ts index b3075a46..6c47d681 100644 --- a/typescript/solver/scripts/templates/config/index.ts +++ b/typescript/solver/scripts/templates/config/index.ts @@ -3,4 +3,4 @@ import allowBlockLists from "./allowBlockLists.js"; import metadata from "./metadata.js"; export { allowBlockLists, metadata }; -`; +`; \ No newline at end of file diff --git a/typescript/solver/scripts/templates/config/metadata.ts b/typescript/solver/scripts/templates/config/metadata.ts index 4d9c7872..78422647 100644 --- a/typescript/solver/scripts/templates/config/metadata.ts +++ b/typescript/solver/scripts/templates/config/metadata.ts @@ -1,8 +1,4 @@ -export const metadataTemplate = ( - name: string, - contractAddress: string, - chainName: string, -) => ` +export const metadataTemplate = (name: string, contractAddress: string, chainName: string) => ` import { BaseMetadataSchema } from '../../types.js'; // TODO: Update with actual contract address and chain name before using in production diff --git a/typescript/solver/scripts/templates/index.ts b/typescript/solver/scripts/templates/index.ts index bda09bca..a221ad5e 100644 --- a/typescript/solver/scripts/templates/index.ts +++ b/typescript/solver/scripts/templates/index.ts @@ -1,6 +1,6 @@ -export * from "./types.js"; -export * from "./listener.js"; -export * from "./filler.js"; -export * from "./config/index.js"; -export * from "./config/allowBlockLists.js"; -export * from "./config/metadata.js"; +export * from './types.js'; +export * from './listener.js'; +export * from './filler.js'; +export * from './config/index.js'; +export * from './config/allowBlockLists.js'; +export * from './config/metadata.js'; diff --git a/typescript/solver/scripts/templates/rules/index.ts b/typescript/solver/scripts/templates/rules/index.ts index 88045197..f858abfe 100644 --- a/typescript/solver/scripts/templates/rules/index.ts +++ b/typescript/solver/scripts/templates/rules/index.ts @@ -14,4 +14,4 @@ import { type RulesMap } from "../../types.js"; */ export const rules: RulesMap = {}; -`; +`; \ No newline at end of file From 745e2b68ee0359d63834f426f73b2457c6aab2ee Mon Sep 17 00:00:00 2001 From: fernandomg Date: Fri, 21 Mar 2025 12:54:04 +0100 Subject: [PATCH 41/41] reenable all solvers --- typescript/solver/config/solvers.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/typescript/solver/config/solvers.json b/typescript/solver/config/solvers.json index c11bde19..93b26091 100644 --- a/typescript/solver/config/solvers.json +++ b/typescript/solver/config/solvers.json @@ -1,9 +1,9 @@ { "eco": { - "enabled": false + "enabled": true }, "hyperlane7683": { - "enabled": false + "enabled": true }, "compactX": { "enabled": true