@across-protocol/contracts 5.0.11 → 5.0.12-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/contracts/external/interfaces/CCTPInterfaces.sol +18 -0
  2. package/contracts/interfaces/SponsoredCCTPInterface.sol +11 -0
  3. package/contracts/libraries/SponsoredCCTPQuoteLib.sol +22 -0
  4. package/contracts/periphery/mintburn/ArbitraryEVMFlowExecutor.sol +38 -15
  5. package/contracts/periphery/mintburn/sponsored-cctp/SponsoredCCTPDstPeriphery.sol +41 -12
  6. package/contracts/test/MockCCTP.sol +10 -0
  7. package/dist/broadcast/deployed-addresses.json +172 -102
  8. package/dist/evm/artifacts/Arbitrum_Adapter.sol/Arbitrum_Adapter.json +1 -1
  9. package/dist/evm/artifacts/Arbitrum_CustomGasToken_Adapter.sol/Arbitrum_CustomGasToken_Adapter.json +1 -1
  10. package/dist/evm/artifacts/Arbitrum_RescueAdapter.sol/Arbitrum_RescueAdapter.json +1 -1
  11. package/dist/evm/artifacts/Arbitrum_SendTokensAdapter.sol/Arbitrum_SendTokensAdapter.json +1 -1
  12. package/dist/evm/artifacts/Arbitrum_SpokePool.sol/Arbitrum_SpokePool.json +1 -1
  13. package/dist/evm/artifacts/Arbitrum_WithdrawalHelper.sol/Arbitrum_WithdrawalHelper.json +1 -1
  14. package/dist/evm/artifacts/Base_Adapter.sol/Base_Adapter.json +1 -1
  15. package/dist/evm/artifacts/Blast_Adapter.sol/Blast_Adapter.json +1 -1
  16. package/dist/evm/artifacts/Blast_SpokePool.sol/Blast_SpokePool.json +1 -1
  17. package/dist/evm/artifacts/Boba_SpokePool.sol/Boba_SpokePool.json +1 -1
  18. package/dist/evm/artifacts/CCTPInterfaces.sol/ITokenMessengerV2.json +1 -1
  19. package/dist/evm/artifacts/CCTPInterfaces.sol/ITokenMinter.json +1 -1
  20. package/dist/evm/artifacts/Cher_SpokePool.sol/Cher_SpokePool.json +1 -1
  21. package/dist/evm/artifacts/CircleCCTPAdapter.sol/CircleDomainIds.json +1 -1
  22. package/dist/evm/artifacts/CounterfactualDepositCCTP.sol/CounterfactualDepositCCTP.json +1 -1
  23. package/dist/evm/artifacts/DoctorWho_Adapter.sol/DoctorWho_Adapter.json +1 -1
  24. package/dist/evm/artifacts/DstOFTHandler.sol/DstOFTHandler.json +1 -1
  25. package/dist/evm/artifacts/Ink_SpokePool.sol/Ink_SpokePool.json +1 -1
  26. package/dist/evm/artifacts/Lens_SpokePool.sol/Lens_SpokePool.json +1 -1
  27. package/dist/evm/artifacts/Linea_Adapter.sol/Linea_Adapter.json +1 -1
  28. package/dist/evm/artifacts/Linea_SpokePool.sol/Linea_SpokePool.json +1 -1
  29. package/dist/evm/artifacts/Lisk_Adapter.sol/Lisk_Adapter.json +1 -1
  30. package/dist/evm/artifacts/Lisk_SpokePool.sol/Lisk_SpokePool.json +1 -1
  31. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockCrossDomainMessenger.json +1 -1
  32. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL1StandardBridge.json +1 -1
  33. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL2StandardBridge.json +1 -1
  34. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessageTransmitter.json +1 -1
  35. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessenger.json +1 -1
  36. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessengerV2.json +1 -1
  37. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMinter.json +1 -1
  38. package/dist/evm/artifacts/MockOptimism_SpokePool.sol/MockOptimism_SpokePool.json +1 -1
  39. package/dist/evm/artifacts/Mode_Adapter.sol/Mode_Adapter.json +1 -1
  40. package/dist/evm/artifacts/OP_Adapter.sol/OP_Adapter.json +1 -1
  41. package/dist/evm/artifacts/OP_SpokePool.sol/OP_SpokePool.json +1 -1
  42. package/dist/evm/artifacts/Optimism_Adapter.sol/Optimism_Adapter.json +1 -1
  43. package/dist/evm/artifacts/Optimism_SpokePool.sol/Optimism_SpokePool.json +1 -1
  44. package/dist/evm/artifacts/Ovm_SpokePool.sol/Ovm_SpokePool.json +1 -1
  45. package/dist/evm/artifacts/Ovm_WithdrawalHelper.sol/Ovm_WithdrawalHelper.json +1 -1
  46. package/dist/evm/artifacts/Polygon_Adapter.sol/Polygon_Adapter.json +1 -1
  47. package/dist/evm/artifacts/Polygon_SpokePool.sol/Polygon_SpokePool.json +1 -1
  48. package/dist/evm/artifacts/Solana_Adapter.sol/Solana_Adapter.json +1 -1
  49. package/dist/evm/artifacts/SponsoredCCTPDstPeriphery.sol/SponsoredCCTPDstPeriphery.json +1 -1
  50. package/dist/evm/artifacts/SponsoredCCTPInterface.sol/SponsoredCCTPInterface.json +1 -1
  51. package/dist/evm/artifacts/SponsoredCCTPSrcPeriphery.sol/SponsoredCCTPSrcPeriphery.json +1 -1
  52. package/dist/evm/artifacts/SponsoredOFTSrcPeriphery.sol/SponsoredOFTSrcPeriphery.json +1 -1
  53. package/dist/evm/artifacts/Tron_SpokePool.sol/Tron_SpokePool.json +1 -1
  54. package/dist/evm/artifacts/Universal_Adapter.sol/Universal_Adapter.json +1 -1
  55. package/dist/evm/artifacts/Universal_SpokePool.sol/Universal_SpokePool.json +1 -1
  56. package/dist/evm/artifacts/WorldChain_SpokePool.sol/WorldChain_SpokePool.json +1 -1
  57. package/dist/evm/artifacts/ZkStack_Adapter.sol/ZkStack_Adapter.json +1 -1
  58. package/dist/evm/artifacts/ZkStack_CustomGasToken_Adapter.sol/ZkStack_CustomGasToken_Adapter.json +1 -1
  59. package/dist/evm/artifacts/ZkSync_SpokePool.sol/ZkSync_SpokePool.json +1 -1
  60. package/dist/evm/artifacts/Zora_Adapter.sol/Zora_Adapter.json +1 -1
  61. package/dist/evm/artifacts/eraVM_EIP7702.sol/SimpleContract.json +1 -1
  62. package/dist/evm/artifacts/eraVM_EIP7702.sol/SpokePoolEIP7702Test.json +1 -1
  63. package/dist/evm/artifacts/eraVM_EIP7702.sol/TestableMockSpokePool.json +1 -1
  64. package/package.json +1 -1
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[{"name":"_wrappedNativeTokenAddress","type":"address","internalType":"address"},{"name":"_depositQuoteTimeBuffer","type":"uint32","internalType":"uint32"},{"name":"_fillDeadlineBuffer","type":"uint32","internalType":"uint32"},{"name":"_l2Usdc","type":"address","internalType":"contract IERC20"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"EMPTY_MSG_BYTES","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_RELAYER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_REPAYMENT_CHAIN_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"INFINITE_FILL_DEADLINE","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MAX_EXCLUSIVITY_PERIOD_SECONDS","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MAX_TRANSFER_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"OFT_DST_EID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"OFT_FEE_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"__SpokePool_init","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cctpTokenMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITokenMessenger"}],"stateMutability":"view"},{"type":"function","name":"cctpV2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"chainId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claimRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"bytes32","internalType":"bytes32"},{"name":"refundAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"crossDomainAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositDeprecated_5947912356","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"int64","internalType":"int64"},{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositFor","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"int64","internalType":"int64"},{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositNow","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"fillDeadlineOffset","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositQuoteTimeBuffer","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"depositV3","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositV3Now","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"fillDeadlineOffset","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"emergencyDeleteRootBundle","inputs":[{"name":"rootBundleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeExternalCall","inputs":[{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"returnData","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeRelayerRefundLeaf","inputs":[{"name":"rootBundleId","type":"uint32","internalType":"uint32"},{"name":"relayerRefundLeaf","type":"tuple","internalType":"struct SpokePoolInterface.RelayerRefundLeaf","components":[{"name":"amountToReturn","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"refundAmounts","type":"uint256[]","internalType":"uint256[]"},{"name":"leafId","type":"uint32","internalType":"uint32"},{"name":"l2TokenAddress","type":"address","internalType":"address"},{"name":"refundAddresses","type":"address[]","internalType":"address[]"}]},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"executeSlowRelayLeaf","inputs":[{"name":"slowFillLeaf","type":"tuple","internalType":"struct V3SpokePoolInterface.V3SlowFill","components":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"}]},{"name":"rootBundleId","type":"uint32","internalType":"uint32"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fill","inputs":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"originData","type":"bytes","internalType":"bytes"},{"name":"fillerData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillDeadlineBuffer","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"fillRelay","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"},{"name":"repaymentAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillRelayWithUpdatedDeposit","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"},{"name":"repaymentAddress","type":"bytes32","internalType":"bytes32"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillStatuses","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fillV3Relay","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayDataLegacy","components":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCurrentTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"address","internalType":"address"},{"name":"refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUnsafeDepositId","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"depositNonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getV3RelayHash","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_l2MessageService","type":"address","internalType":"contract IMessageService"},{"name":"_l2TokenBridge","type":"address","internalType":"contract ITokenBridge"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l2MessageService","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IMessageService"}],"stateMutability":"view"},{"type":"function","name":"l2TokenBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITokenBridge"}],"stateMutability":"view"},{"type":"function","name":"minimumFeeInWei","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"multicall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"numberOfDeposits","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"oftMessengers","inputs":[{"name":"l2TokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"l2OftMessenger","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pauseDeposits","inputs":[{"name":"pause","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseFills","inputs":[{"name":"pause","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pausedDeposits","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"pausedFills","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relayRootBundle","inputs":[{"name":"relayerRefundRoot","type":"bytes32","internalType":"bytes32"},{"name":"slowRelayRoot","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"relayerRefund","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestSlowFill","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rootBundles","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"slowRelayRoot","type":"bytes32","internalType":"bytes32"},{"name":"relayerRefundRoot","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setCrossDomainAdmin","inputs":[{"name":"newCrossDomainAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setL2MessageService","inputs":[{"name":"_l2MessageService","type":"address","internalType":"contract IMessageService"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setL2TokenBridge","inputs":[{"name":"_l2TokenBridge","type":"address","internalType":"contract ITokenBridge"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOftMessenger","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"messenger","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWithdrawalRecipient","inputs":[{"name":"newWithdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpDeposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpV3Deposit","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"address","internalType":"address"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tryMulticall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"tuple[]","internalType":"struct MultiCallerUpgradeable.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"unsafeDeposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"depositNonce","type":"uint256","internalType":"uint256"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"withdrawalRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"wrappedNativeToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdminExternalCallExecuted","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ClaimedRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"refundAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"caller","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EmergencyDeletedRootBundle","inputs":[{"name":"rootBundleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EnabledDepositRoute","inputs":[{"name":"originToken","type":"address","indexed":true,"internalType":"address"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"enabled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ExecutedRelayerRefundRoot","inputs":[{"name":"amountToReturn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"chainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"refundAmounts","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"rootBundleId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"leafId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"l2TokenAddress","type":"address","indexed":false,"internalType":"address"},{"name":"refundAddresses","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"deferredRefunds","type":"bool","indexed":false,"internalType":"bool"},{"name":"caller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FilledRelay","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"repaymentChainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"relayer","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"depositor","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"messageHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"relayExecutionInfo","type":"tuple","indexed":false,"internalType":"struct V3SpokePoolInterface.V3RelayExecutionEventInfo","components":[{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessageHash","type":"bytes32","internalType":"bytes32"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"fillType","type":"uint8","internalType":"enum V3SpokePoolInterface.FillType"}]}],"anonymous":false},{"type":"event","name":"FilledV3Relay","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"repaymentChainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"relayer","type":"address","indexed":true,"internalType":"address"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"relayExecutionInfo","type":"tuple","indexed":false,"internalType":"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo","components":[{"name":"updatedRecipient","type":"address","internalType":"address"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"fillType","type":"uint8","internalType":"enum V3SpokePoolInterface.FillType"}]}],"anonymous":false},{"type":"event","name":"FundsDeposited","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"quoteTimestamp","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"depositor","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"PausedDeposits","inputs":[{"name":"isPaused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"PausedFills","inputs":[{"name":"isPaused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RelayedRootBundle","inputs":[{"name":"rootBundleId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"relayerRefundRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"slowRelayRoot","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSlowFill","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"depositor","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"messageHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpDeposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositor","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"updatedRecipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpV3Deposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"updatedRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedV3SlowFill","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SetL2MessageService","inputs":[{"name":"newMessageService","type":"address","indexed":true,"internalType":"address"},{"name":"oldMessageService","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetL2TokenBridge","inputs":[{"name":"newTokenBridge","type":"address","indexed":true,"internalType":"address"},{"name":"oldTokenBridge","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetOFTMessenger","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"messenger","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetWithdrawalRecipient","inputs":[{"name":"newWithdrawalRecipient","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetXDomainAdmin","inputs":[{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokensBridged","inputs":[{"name":"amountToReturn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"chainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"leafId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"l2TokenAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"caller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"V3FundsDeposited","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"quoteTimestamp","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"ClaimedMerkleLeaf","inputs":[]},{"type":"error","name":"DepositsArePaused","inputs":[]},{"type":"error","name":"DisabledRoute","inputs":[]},{"type":"error","name":"ExpiredFillDeadline","inputs":[]},{"type":"error","name":"ExternalCallExecutionFailed","inputs":[]},{"type":"error","name":"FillsArePaused","inputs":[]},{"type":"error","name":"InsufficientSpokePoolBalanceToExecuteLeaf","inputs":[]},{"type":"error","name":"InvalidBytes32","inputs":[]},{"type":"error","name":"InvalidChainId","inputs":[]},{"type":"error","name":"InvalidCrossDomainAdmin","inputs":[]},{"type":"error","name":"InvalidDepositorSignature","inputs":[]},{"type":"error","name":"InvalidExclusiveRelayer","inputs":[]},{"type":"error","name":"InvalidFillDeadline","inputs":[]},{"type":"error","name":"InvalidMerkleLeaf","inputs":[]},{"type":"error","name":"InvalidMerkleProof","inputs":[]},{"type":"error","name":"InvalidOutputToken","inputs":[]},{"type":"error","name":"InvalidPayoutAdjustmentPct","inputs":[]},{"type":"error","name":"InvalidQuoteTimestamp","inputs":[]},{"type":"error","name":"InvalidSlowFillRequest","inputs":[]},{"type":"error","name":"InvalidWithdrawalRecipient","inputs":[]},{"type":"error","name":"LowLevelCallFailed","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"MessageTooShort","inputs":[]},{"type":"error","name":"MsgValueDoesNotMatchInputAmount","inputs":[]},{"type":"error","name":"NoRelayerRefundToClaim","inputs":[]},{"type":"error","name":"NoSlowFillsInExclusivityWindow","inputs":[]},{"type":"error","name":"NotEOA","inputs":[]},{"type":"error","name":"NotExclusiveRelayer","inputs":[]},{"type":"error","name":"OFTFeeUnderpaid","inputs":[]},{"type":"error","name":"OFTTokenMismatch","inputs":[]},{"type":"error","name":"OftFeeCapExceeded","inputs":[]},{"type":"error","name":"OftIncorrectAmountReceivedLD","inputs":[]},{"type":"error","name":"OftIncorrectAmountSentLD","inputs":[]},{"type":"error","name":"OftInsufficientBalanceForFee","inputs":[]},{"type":"error","name":"OftLzFeeNotZero","inputs":[]},{"type":"error","name":"RelayFilled","inputs":[]},{"type":"error","name":"RemovedFunction","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"WrongERC7683OrderId","inputs":[]},{"type":"error","name":"ZeroAddressTarget","inputs":[]}],"bytecode":"0x6101c080604052346102b05760a08161526c803803809161002082856102b4565b8339810103126102b05780516001600160a01b038116908190036102b05761004a602083016102d7565b90610057604084016102d7565b6060840151936001600160a01b03851685036102b05760800151926001600160a01b038416928385036102b057306080525f60c0525f60a05260e05261010052610120525f549160ff8360081c166102b0575f938360ff8087961603610276575b5061016052610180528161014052604051602081019063011a412160e61b8252600481526100e76024826102b4565b51915afa3d1561026f573d6001600160401b03811161025b5760405190610118601f8201601f1916602001836102b4565b81523d5f602083013e5b8161024f575b81610219575b506101a052604051614f8390816102e9823960805181818161100c015281816113b90152611510015260a05181611711015260c051816117ca015260e0518181816107950152818161356801528181613c3c015281816141340152818161456501528181614c8a0152614d0d0152610100518181816116890152613e1b01526101205181818161046e0152613be801526101405181818161178a01528181614ade0152614b860152610160518181816107380152818161425f01526149c5015261018051818181611dc90152818161434b01526149ee01526101a0518181816119dd0152614a840152f35b905060208151910151906020811061023e575b506001600160a01b031615155f61012e565b5f199060200360031b1b165f61022c565b80516020149150610128565b634e487b7160e01b5f52604160045260245ffd5b6060610122565b60ff908119161784557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6100b8565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761025b57604052565b519063ffffffff821682036102b05756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461043f5780630cb84d9a1461043a5780631186ec331461043557806311eac8551461043057806315348e44146103c257806317fcb39b1461042b57806319c1648c146104265780631b3d5559146104215780631fab657c1461041c57806329cb924d146104175780632e378115146104125780632e63e59a1461040d5780633659cfe614610408578063437b911614610403578063490e49ef146103fe578063493a4f84146103f95780634f1ef286146103f45780635285e058146103ef57806352d1902d146103ea578063541f4f14146103e5578063577f51f8146103e057806357f6dcb8146103db5780635d467759146103d65780636068d6cb146103d157806361a04d30146103cc578063670fa8ac146103c75780636bbbcd2e146103c25780636e400983146103bd5780636fd5c10e146103b8578063738b62e5146103b35780637659f9e0146103ae578063775c0d03146103a95780637aef642c146103a45780637b9392321461039f5780637ef413e11461039a57806382e2c43f1461039557806389945883146103905780638a7860ce1461038b5780638b15788e1461038657806391c49bf8146103815780639748cf7c1461037c57806397943aa914610377578063979f2bc21461037257806399cc29681461036d5780639a2e0820146103685780639a8a059214610363578063a1244c671461035e578063a18a096e14610359578063ac9650d814610354578063ad5425c61461034f578063adb5a6a614610304578063b370b7f51461034a578063b4c0d7ab14610345578063babb6aac14610340578063c35c83fc1461033b578063ceb4c98714610336578063d7e1583a14610331578063dda521131461032c578063ddd224f114610327578063de7eba7814610322578063deff4b241461031d578063ea86bd4614610318578063ee2a53f814610313578063f1429b5a1461030e578063f2c2092414610309578063f79f29ed146103045763fc8a584f0361000e57612981565b6122e1565b61285f565b61282a565b6127ec565b612748565b612656565b612626565b6125fd565b6125d7565b6125a1565b6124a3565b612478565b612399565b61236a565b612328565b612270565b6121d1565b61207c565b612055565b61203b565b611fff565b611f69565b611e7b565b611ded565b611daa565b611d83565b611d12565b611c9a565b611c80565b611b62565b611b2c565b611a94565b611a02565b6119c6565b61189f565b6117f8565b6117ae565b61176e565b61075c565b611734565b6116fa565b6116d4565b6116ad565b61166d565b6115f0565b611560565b6114f6565b6114cf565b611376565b6112ee565b6112d0565b611203565b610fe5565b610dec565b610c99565b610c70565b610b68565b610a46565b6107de565b610776565b610719565b6106b2565b6104bd565b610452565b5f91031261044e57565b5f80fd5b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361044e57565b60e435906104b082610492565b565b35906104b082610492565b3461044e57602036600319011261044e576001600160a01b036004356104e281610492565b165f5261087460205260206001600160a01b0360405f205416604051908152f35b608435908160070b820361044e57565b60a435908160070b820361044e57565b63ffffffff81160361044e57565b61010435906104b082610523565b61012435906104b082610523565b61014435906104b082610523565b61016435906104b082610523565b35906104b082610523565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176105a457604052565b610574565b6101a0810190811067ffffffffffffffff8211176105a457604052565b6060810190811067ffffffffffffffff8211176105a457604052565b90601f8019910116810190811067ffffffffffffffff8211176105a457604052565b604051906104b060c0836105e2565b604051906104b0610180836105e2565b604051906104b06101a0836105e2565b604051906104b06080836105e2565b67ffffffffffffffff81116105a457601f01601f191660200190565b92919261066a82610642565b9161067860405193846105e2565b82948184528183011161044e578281602093845f960137010152565b9080601f8301121561044e578160206106af9335910161065e565b90565b61010036600319011261044e576106ca600435610492565b6106d5602435610492565b6106dd610503565b506106e960a435610523565b60c43567ffffffffffffffff811161044e57610709903690600401610694565b506332ed1ba560e21b5f5260045ffd5b3461044e575f36600319011261044e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e575f36600319011261044e5760206040515f8152f35b3461044e575f36600319011261044e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261044e576004356107d181610492565b906024356106af81610492565b3461044e576107ec366107b9565b6107f46134c7565b6107fc61354d565b6001600160a01b0381169182151580610895575b610886576108576001600160a01b039261083c836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa9081156108fe575f916108cf575b506001600160a01b0380831691161415610810565b6108f1915060203d6020116108f7575b6108e981836105e2565b8101906134b2565b5f6108ba565b503d6108df565b613016565b67ffffffffffffffff81116105a45760051b60200190565b9080601f8301121561044e57813561093281610903565b9261094060405194856105e2565b81845260208085019260051b82010192831161044e57602001905b8282106109685750505090565b813581526020918201910161095b565b9080601f8301121561044e57813561098f81610903565b9261099d60405194856105e2565b81845260208085019260051b82010192831161044e57602001905b8282106109c55750505090565b6020809183356109d481610492565b8152019101906109b8565b9291906109eb81610903565b936109f960405195866105e2565b602085838152019160051b810192831161044e57905b828210610a1b57505050565b8135815260209182019101610a0f565b9080601f8301121561044e578160206106af933591016109df565b606036600319011261044e57600435610a5e81610523565b6024359067ffffffffffffffff821161044e5760c0600319833603011261044e57610a87610604565b918060040135835260248101356020840152604481013567ffffffffffffffff811161044e57610abd906004369184010161091b565b6040840152610ace60648201610569565b6060840152610adf608482016104b2565b608084015260a48101359067ffffffffffffffff821161044e576004610b089236920101610978565b60a08301526044359167ffffffffffffffff831161044e57610b31610018933690600401610a2b565b916129b1565b9181601f8401121561044e5782359167ffffffffffffffff831161044e576020808501948460051b01011161044e57565b3461044e57606036600319011261044e5760043567ffffffffffffffff811161044e5780360390606060031983011261044e57602435610ba781610523565b60443567ffffffffffffffff811161044e57610bc7903690600401610b37565b919093610bd261354d565b600484013590610182190181121561044e57610c6694610c6193610bfd6004610c5a94880101612b9f565b95610c13610c0e6080890151613892565b61355e565b6044610c1e8861333c565b91013560208801519061016089015192610c36610604565b998a5260208a01526040890152606088015260808701525f60a087015236916109df565b90836138a8565b61392a565b6100186001606555565b3461044e575f36600319011261044e576020604051428152f35b908161018091031261044e5790565b3461044e57604036600319011261044e5760043567ffffffffffffffff811161044e57610cca903690600401610c8a565b602435610cd682612baa565b6001600160a01b031691610cec60208201612baa565b6001600160a01b031690610d0260408201612baa565b6001600160a01b031690610d1860608201612baa565b6001600160a01b0316610d2d60808301612baa565b6001600160a01b031660e083013560c084013560a0850135610d526101008701612bb4565b93610d606101208801612bb4565b95610d6e6101408901612bb4565b976101608101610d7d91612bbe565b99909a610d88610613565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff166101408501523690610dda9261065e565b6101608301526100189133919061336d565b3461044e57602036600319011261044e5760043567ffffffffffffffff811161044e57610e1d903690600401610c8a565b610e2561354d565b60ff61086b5460e01c16610fd65763ffffffff421690610140810190610e5d83610e4e84612bb4565b63ffffffff9182169116101590565b610fc75761012081019263ffffffff610e7585612bb4565b1610610fb857610e8d610e8836836124c1565b61333c565b90610ea1825f5261087260205260405f2090565b54610faa57610ee3610edd7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f5261087260205260405f2090565b60019055565b6060810135610f9d60808301359260a08101359060c081013560e082013597610f1a610f146101008501359b612bb4565b91612bb4565b604084013591843593610f49610f44610f3d602089013598610160810190612bbe565b369161065e565b613a2c565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b3461044e57602036600319011261044e5760043561100281610492565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461044e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361044e5761106b6134c7565b61107361234f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110a757506100189061472f565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f928161110d575b506110d8575f80fd5b610018926111087f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f9414612c14565b61465e565b61113091935060203d602011611137575b61112881836105e2565b810190613007565b915f6110cf565b503d61111e565b602060031982011261044e576004359067ffffffffffffffff821161044e5761116991600401610b37565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106111c357505050505090565b90919293946020806111f4600193603f198682030187526040838b518051151584520151918185820152019061116d565b970193019301919392906111b4565b3461044e576112113661113e565b61121a81610903565b9161122860405193846105e2565b818352601f1961123783610903565b015f5b8181106112ac5750505f5b82811061125e576040518061125a8682611191565b0390f35b806112a661126e60019387612c1b565b515f8061127c858989612c2f565b9061128c60405180938193612c46565b0390305af49061129a612c53565b60208201529015159052565b01611245565b6020906040516112bb81610588565b5f81526060838201528282880101520161123a565b3461044e575f36600319011261044e5760206040516301e133808152f35b3461044e57604036600319011261044e5760243560043561130d6134c7565b61131561354d565b61086c54680100000000000000008110156105a45780600163ffffffff920161086c5583611342826127c9565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261044e5760043561138e81610492565b60243567ffffffffffffffff811161044e576113ae903690600401610694565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461044e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361044e576114186134c7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561144c57610018915061472f565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f91816114ae575b5061147c575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361044e576100189160019161465e565b6114c891925060203d6020116111375761112881836105e2565b905f611473565b3461044e575f36600319011261044e5760206001600160a01b036108695416604051908152f35b3461044e575f36600319011261044e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361044e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261044e57611578600435610492565b611583602435610492565b61158e604435610492565b611596610513565b506115a260c435610523565b60e43567ffffffffffffffff811161044e57610709903690600401610694565b9181601f8401121561044e5782359167ffffffffffffffff831161044e576020838186019501011161044e57565b3461044e5760c036600319011261044e5760043561160d81610492565b6024356044359160643561162081610492565b60843567ffffffffffffffff811161044e576116409036906004016115c2565b9160a4359567ffffffffffffffff871161044e576116656100189736906004016115c2565b969095612cd5565b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e575f36600319011261044e5760206001600160a01b03610c5a5416604051908152f35b3461044e575f36600319011261044e57602060ff61086b5460e81c166040519015158152f35b3461044e575f36600319011261044e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461044e575f36600319011261044e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361044e57565b3461044e57602036600319011261044e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611838816117ee565b6118406134c7565b61184861354d565b151561086b547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b1691161761086b55604051908152a16001606555005b9060206106af92818152019061116d565b3461044e57602036600319011261044e5760043567ffffffffffffffff811161044e576118d09036906004016115c2565b6118d86134c7565b6118e061354d565b810160408282031261044e578135916118f883610492565b60208101359167ffffffffffffffff831161044e576001600160a01b03926119209201610694565b911680156119b75760048251106119a8575f8083516020850182855af190611946612c53565b9115611999577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d61198061125a946040519182918261188e565b0390a261198d6001606555565b6040519182918261188e565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b3461044e575f36600319011261044e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261044e57600435611a1b81610492565b602435611a2781610492565b60443591611a3483610492565b606435611a4081610492565b60843560e43560c43560a435611a5583610492565b611a5d610531565b93611a6661053f565b95610144359967ffffffffffffffff8b1161044e57611a8c6100189b36906004016115c2565b9a9099612d77565b61018036600319011261044e57600435611aad81610492565b602435611ab981610492565b60443591611ac683610492565b606435611ad281610492565b60843560a43560c435611ae36104a3565b90611aec610531565b92611af561053f565b94611afe61054d565b96610164359a67ffffffffffffffff8c1161044e57611b246100189c36906004016115c2565b9b909a612d99565b3461044e57606036600319011261044e576020611b5a600435611b4e81610492565b60243560443591612ebf565b604051908152f35b3461044e57606036600319011261044e5760043560243567ffffffffffffffff811161044e57611b969036906004016115c2565b9060443567ffffffffffffffff811161044e57611bb79036906004016115c2565b9190936040516020810190611be081611bd246898887612efd565b03601f1981018352826105e2565b51902003611c71575f93611bfb828695611c0494019061257b565b92810190612f1a565b51611c3b611c19335b6001600160a01b031690565b91611bd260405193849260208401966337bfd2c960e21b885260248501612fe5565b5190305af4611c48612c53565b9015611c5057005b60405163b8fe37a760e01b8152908190611c6d906004830161188e565b0390fd5b630f0c8f4760e11b5f5260045ffd5b3461044e575f36600319011261044e576020611b5a613021565b3461044e57602036600319011261044e57600435611cb66134c7565b611cbe61354d565b611cc7816127c9565b611cff576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261044e5760443560243560043560643560843560a4356101043560e43560c435611d4361053f565b93611d4c61054d565b95611d5561055b565b97610184359b67ffffffffffffffff8d1161044e57611d7b6100189d36906004016115c2565b9c909b61306f565b3461044e575f36600319011261044e5760206001600160a01b03610c5b5416604051908152f35b3461044e575f36600319011261044e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e5760e036600319011261044e5760043567ffffffffffffffff811161044e57611e1e903690600401610c8a565b602435604435916064356084359060a43567ffffffffffffffff811161044e57611e4c9036906004016115c2565b92909160c4359667ffffffffffffffff881161044e57611e736100189836906004016115c2565b9790966130e7565b3461044e57606036600319011261044e57600435611e9881610523565b60243590611ea582610492565b60443590611eb282610492565b60ff5f5460081c161561044e57611ee69063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6040805192611ef582856105e2565b600984526020808501926820a1a927a9a996ab1960b91b8452611f1a815191826105e2565b6005815201640312e302e360dc1b815260ff5f5460081c161561044e576005611f64936100189651902091209061047f5561048055611f57613e50565b611f5f613e5f565b613e73565b613ecb565b3461044e57602036600319011261044e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e6020600435611fa9816117ee565b611fb16134c7565b611fb961354d565b151561086b547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b1691161761086b55604051908152a16001606555005b3461044e57602036600319011261044e5761203460043561201f81610492565b6120276134c7565b61202f61354d565b613f23565b6001606555005b3461044e575f36600319011261044e576020604051468152f35b3461044e575f36600319011261044e57602063ffffffff61086b5460c01c16604051908152f35b3461044e57604036600319011261044e5760043560243561209c8261437a565b6001600160a01b03821691825f526108736020526120cd60405f20336001600160a01b03165f5260205260405f2090565b54928315612163576121165f916120e38461437a565b61210033916001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556121338361212483613892565b61212d85613892565b90613f78565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106121a457505050505090565b90919293946020806121c2600193603f19868203018752895161116d565b97019301930191939290612195565b3461044e576121df3661113e565b906121e9826131d5565b915f5b818110612201576040518061125a8682612172565b5f8061220e838587612c2f565b9061221e60405180938193612c46565b0390305af461222b612c53565b9015612251579060019161223f8287612c1b565b5261224a8186612c1b565b50016121ec565b604481511061044e5780602480600461044e940151830101910161321e565b61018036600319011261044e576044356024356004356064356084356101043560e43560c43560a4356122a284610523565b6122aa61053f565b946122b361054d565b96610164359a67ffffffffffffffff8c1161044e576122d96100189c36906004016115c2565b9b909a613281565b3461044e57602061231f6001600160a01b036122fc366107b9565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461044e575f36600319011261044e5760206001600160a01b0361086a5416604051908152f35b6040519061235e6020836105e2565b5f808352366020840137565b3461044e575f36600319011261044e5761125a61238561234f565b60405191829160208352602083019061116d565b3461044e5760c036600319011261044e5760043560243560443560643560843567ffffffffffffffff811161044e576123d69036906004016115c2565b60a4939193359067ffffffffffffffff821161044e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461241f61246e9336906004016115c2565b92909161242a61354d565b6124338a61437a565b612462898b898961244536888861065e565b92612451368b8b61065e565b946001600160a01b03469216613a41565b60405196879687612ca2565b0390a36001606555005b3461044e57602036600319011261044e576004355f52610872602052602060405f2054604051908152f35b3461044e575f36600319011261044e57602060405163ffffffff8152f35b9190916101808184031261044e576124d7610613565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e085015261010082013561010085015261253b6101208301610569565b61012085015261254e6101408301610569565b61014085015261016082013567ffffffffffffffff811161044e576125739201610694565b610160830152565b9060208282031261044e57813567ffffffffffffffff811161044e576106af92016124c1565b3461044e57602036600319011261044e5760043567ffffffffffffffff811161044e57611b5a610e8860209236906004016124c1565b3461044e575f36600319011261044e57602060ff61086b5460e01c166040519015158152f35b3461044e575f36600319011261044e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461044e57602036600319011261044e5761203460043561264681610492565b61264e6134c7565b611f5f61354d565b3461044e57606036600319011261044e5760043567ffffffffffffffff811161044e576126879036906004016124c1565b602435906044359061269761354d565b60ff61086b5460e01c16610fd65761014081015163ffffffff166126c64263ffffffff165b9163ffffffff1690565b101580612729575b61271a57610c66926126df8261333c565b60c0830151602084015190610160850151926126f9610604565b958652602086015260408501526060840152608083015260a08201526139a3565b630c3a9b9d60e41b5f5260045ffd5b506127376040820151613892565b6001600160a01b03163314156126ce565b61016036600319011261044e576044356024356004356064356101043560e43560c43560a43560843561277a85610523565b610124359561278887610523565b610144359967ffffffffffffffff8b1161044e576127ad6100189b36906004016115c2565b9a90996133d9565b634e487b7160e01b5f52603260045260245ffd5b61086c548110156127e75761086c5f52600360205f20910201905f90565b6127b5565b3461044e57602036600319011261044e5760043561086c5481101561044e576128166040916127c9565b506001815491015482519182526020820152f35b3461044e57602036600319011261044e5761203460043561284a81610492565b6128526134c7565b61285a61354d565b613ffe565b3461044e5760a036600319011261044e5760043561287c81610523565b6128f960243561288b81610492565b60443561289781610492565b606435906128a482610492565b608435926128b184610492565b5f54956128df60ff600889901c16156128c9565b1590565b80988199612973575b8115612953575b50612c14565b866128f0600160ff195f5416175f55565b61293c576133fe565b6128ff57005b61290d61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61294e61010061ff00195f5416175f55565b6133fe565b303b15915081612965575b505f6128d9565b60ff1660011490505f61295e565b600160ff82161091506128d2565b3461044e57602036600319011261044e576120346004356129a181610492565b6129a96134c7565b611f6461354d565b91906129bb61354d565b608081016129d3610c0e82516001600160a01b031690565b602082019283514603612ad3576128c56129fb918460016129f3896127c9565b5001546135d2565b612ac45763ffffffff7ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e91612ab76060850195612a45612a3f885163ffffffff1690565b89613656565b8051958051612aa1612a93612a82604085019a8c612a698d51915163ffffffff1690565b8a516001600160a01b03169160a08901978851946136bf565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612b51565b0390a46104b06001606555565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612aff5750505090565b8251845260209384019390920191600101612af2565b90602080835192838152019201905f5b818110612b325750505090565b82516001600160a01b0316845260209384019390920191600101612b25565b949695919260a0946001600160a01b03612b7d8196612b91958a5260c060208b015260c08a0190612ae2565b921660408801528682036060880152612b15565b951515608085015216910152565b6106af9036906124c1565b356106af81610492565b356106af81610523565b903590601e198136030182121561044e570180359067ffffffffffffffff821161044e5760200191813603831361044e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612c0f57565b612bf1565b1561044e57565b80518210156127e75760209160051b010190565b908210156127e7576111699160051b810190612bbe565b908092918237015f815290565b3d15612c7d573d90612c6482610642565b91612c7260405193846105e2565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612cc7926106af979587526020870152608060408701526080860191612c82565b926060818503910152612c82565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b039586612d3f959a949916612d318a8c83612d1c36888861065e565b91612d28368b8b61065e565b9346908d613a41565b604051978897169a87612ca2565b0390a3565b634e487b7160e01b5f52601160045260245ffd5b9063ffffffff8091169116019063ffffffff8211612d7257565b612d44565b96949290916104b09b9a9998969492612d9763ffffffff42169889612d58565b985b9593919b999897969492909b612dad61354d565b61086b5460ff8160e81c16612eb05760c01c63ffffffff1696612dcf88613325565b612df69063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b612dfe610623565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff16610100870152610120860190612e74919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612e979261065e565b610180820152612ea690613b83565b6104b06001606555565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612ef76074826105e2565b51902090565b939291602091612f1591604087526040870191612c82565b930152565b9081602091031261044e57604051906020820182811067ffffffffffffffff8211176105a45760405235815290565b906101806101606106af93805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e0850152610100810151610100850152612fc361012082015161012086019063ffffffff169052565b6101408181015163ffffffff169085015201519181610160820152019061116d565b612ffd60409295949395606083526060830190612f49565b9460208201520152565b9081602091031261044e575190565b6040513d5f823e3d90fd5b600460206001600160a01b03610c5a541660405192838092638994588360e01b82525afa9081156108fe575f91613056575090565b6106af915060203d6020116111375761112881836105e2565b9c9a999897969594939291909661308461354d565b60ff61086b5460e81c16612eb05761309d908e33612ebf565b96604051809e6130ac826105a9565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612e74565b9792909596949391966130f861354d565b60ff61086b5460e01c16610fd6576131136101408a01612bb4565b6131224263ffffffff166126bc565b1015806131b6575b61271a57612ea6986131ab6131b197613146610e8836856124c1565b9961314f610604565b9a61315a36866124c1565b8c5260208c01528560408c01528660608c015261317836868b61065e565b60808c015260a08b01526131a361318f8435613892565b9860e061010086013595013595369161065e565b96369161065e565b95613a41565b6139a3565b506131c460408a0135613892565b6001600160a01b031633141561312a565b906131df82610903565b6131ec60405191826105e2565b82815280926131fd601f1991610903565b01905f5b82811061320d57505050565b806060602080938501015201613201565b60208183031261044e5780519067ffffffffffffffff821161044e570181601f8201121561044e5780519061325282610642565b9261326060405194856105e2565b8284526020838301011161044e57815f9260208093018386015e8301015290565b9b9998979694929095939161329461354d565b61086b5460ff8160e81c16612eb05760c01c63ffffffff16966132b688613325565b6132dd9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6132e5610623565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff90811661010088015216610120860152612e74565b63ffffffff1663ffffffff8114612d725760010190565b604051612ef7816133596020820194604086526060830190612f49565b46604083015203601f1981018352826105e2565b91909161337861354d565b60ff61086b5460e01c16610fd65761014081015163ffffffff166133a14263ffffffff166126bc565b1015806133ba575b61271a57612ea6926126df8261333c565b506133c86040820151613892565b6001600160a01b03163314156133a9565b9a989795929693909491966133f563ffffffff42169788612d58565b9761329461354d565b939190929360ff5f5460081c161561044e576134379063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b60409182519061344784836105e2565b600982526020808301946820a1a927a9a996ab1960b91b865261346c815191826105e2565b600581520193640312e302e360dc1b855260ff5f5460081c161561044e576104b09661202f956005611f649361285a9651902091209061047f5561048055611f57613e50565b9081602091031261044e57516106af81610492565b610c5a546040516333f2026760e11b8152906001600160a01b0316602082600481845afa80156108fe576104b0925f9161352e575b50610869546001600160a01b03908116911614908161351b5750612c14565b6001600160a01b0316905033145f6128d9565b613547915060203d6020116108f7576108e981836105e2565b5f6134fc565b60026065541461044e576002606555565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613595575b50565b4761359d5750565b4790803b1561044e575f90600460405180948193630d0e30db60e41b83525af180156108fe5715613592575f6104b0916105e2565b6106af929160405161364d81611bd2602082019460208652805160408401526020810151606084015260a0613617604083015160c06080870152610100860190612ae2565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612b15565b51902091614053565b6136616002916127c9565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b80809216146136a357825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b91908201809211612d7257565b91959495939092935f9681519081815103613883578161373e575b505050826136e9575b50505050565b63ffffffff613720611c0d83611c0d7ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579588614116565b6040805195865233602087015290959190911693a45f8080806136e3565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa9081156108fe575f91613864575b505f5f5b848110613784575050506136da565b61378e8187612c1b565b5161379c575b600101613775565b906137b2906137ab8388612c1b565b51906136b2565b90828211613855576137ec6128c56137da6137cd8488612c1b565b516001600160a01b031690565b6137e4848a612c1b565b51908a6140a4565b15613794579a506137fd8b86612c1b565b5161384b6138438d61382e6137cd6138278c6001600160a01b03165f5261087360205260405f2090565b9289612c1b565b6001600160a01b03165f5260205260405f2090565b9182546136b2565b905560019a613794565b632ddaa83160e11b5f5260045ffd5b61387d915060203d6020116111375761112881836105e2565b5f613771565b6319a5316760e31b5f5260045ffd5b6001600160a01b03906138a48161437a565b1690565b916128c591613924936040815191015191604051916138c6836105c6565b825261364d6138e26020840192468452604085019586526127c9565b505493604051928391613909602084019660208852516060604086015260a0850190612f49565b9151606084015251608083015203601f1981018352826105e2565b612ac457565b805163ffffffff6101208201511663ffffffff42911610610fb8576020820151906002613960835f5261087260205260405f2090565b5414613994576104b09260026139816001945f5261087260205260405f2090565b5561398f60025f8484614427565b614529565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff42911610610fb85760208301519260016139da855f5261087260205260405f2090565b5403613a25576001935b60026139f9825f5261087260205260405f2090565b5414613994576104b0945f946002613a1d61398f945f5261087260205260405f2090565b558484614427565b5f936139e4565b80519081613a3a5750505f90565b6020012090565b93926042936104b0979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613aa860e0826105e2565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613b0060a0826105e2565b519020906040519161190160f01b8352600283015260228201522090614790565b91908203918211612d7257565b9692610140989563ffffffff9586949285936106af9e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e083015261010082015281610120820152019061116d565b613b8d815161437a565b6060810190815115613e4257610120810190613bb9613bb0835163ffffffff1690565b63ffffffff1690565b804210908115613e09575b50613dfa57610140810192613bdd845163ffffffff1690565b63ffffffff613c0e817f000000000000000000000000000000000000000000000000000000000000000016426136b2565b911611613deb5761016082015163ffffffff16918280613da8575b5060408101918251926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680941480613d9f575b15613d4f5760808301513403613d4057833b1561044e575f60049460405195868092630d0e30db60e41b825234905af19081156108fe577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad394613d2192613d26575b505b5191519260808101519060a081015160c082015197613d00613cf56101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613b2e565b0390a4565b80613d345f613d3a936105e2565b80610444565b5f613cc7565b636452a35d60e01b5f5260045ffd5b925034613d4057613d2183613d9a613d8b611c0d7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39751613892565b6080860151903090339061487c565b613cc9565b50341515613c65565b6301e133801015613dd3575b60e081015115613dc4575f613c29565b63495d907f60e01b5f5260045ffd5b91613de59063ffffffff421690612d58565b91613db4565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b613e14915042613b21565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613bc4565b6231010160e51b5f5260045ffd5b60ff5f5460081c161561044e57565b60ff5f5460081c161561044e576001606555565b6001600160a01b03168015613ebc57806001600160a01b0319610869541617610869557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b03168015613f1457806001600160a01b031961086a54161761086a557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b7ff4afd54e7ed26702d892bb2e04050d1414c6eb040dde0e9ca2d919f423f3608760206001600160a01b03610c5a54931692836001600160a01b0319821617610c5a556001600160a01b0360405191168152a2565b6001600160a01b0316916001600160a01b036040519263a9059cbb60e01b5f521660045260245260205f60448180865af160015f5114811615613fdf575b60409190915215613fc45750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6001811516613ff5573d15833b15151616613fb6565b503d5f823e3d90fd5b7ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d67060206001600160a01b03610c5b54931692836001600160a01b0319821617610c5b556001600160a01b0360405191168152a2565b929091905f915b845183101561409c5761406d8386612c1b565b51908181101561408b575f52602052600160405f205b92019161405a565b905f52602052600160405f20614083565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f916140e08160648101611bd2565b519082855af1903d5f5190836140f7575b50505090565b9192509061410c57503b15155b5f80806140f1565b6001915014614104565b9061411f613021565b6001600160a01b038216906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682145f14614255576141699192503414612c14565b61417334836136b2565b90803b1561044e57604051632e1a7d4d60e01b815260048101929092525f908290602490829084905af180156108fe57614241575b506141ca6141c2611c0d610c5a546001600160a01b031690565b9134906136b2565b906141de61086a546001600160a01b031690565b813b1561044e57604051634f9e72ad60e11b81526001600160a01b03919091166004820152346024820152606060448201525f606482018190529092909183916084918391905af180156108fe576142335750565b80613d345f6104b0936105e2565b80613d345f61424f936105e2565b5f6141a8565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016821480614348575b156142ab575050506104b0906142a661086a546001600160a01b031690565b6149b9565b6142d7916142bb85923414612c14565b6142d1611c0d610c5b546001600160a01b031690565b90614909565b6142ed611c0d610c5b546001600160a01b031690565b61086a546001600160a01b031690803b1561044e57604051632917540d60e11b81526001600160a01b0393841660048201526024810194909452911660448301525f908290606490829034905af180156108fe576142335750565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515614287565b60a01c61438357565b6379ec0ed760e11b5f5260045ffd5b61439b82612c05565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a0830152606001519061442082612c05565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208909392936060830151613d2160808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61448b61012085015163ffffffff1690565b61014085015163ffffffff16916040860151938651956144ef6144b761016060208b01519a0151613a2c565b9960608c01519b60406144cd6080830151613a2c565b9101519060206144db610633565b9e8f528e015260408d015260608c01614392565b6040519c8d9c8d61439e565b906106af94936080936001600160a01b0380931684526020840152166040820152816060820152019061116d565b906080614537910151613892565b91608060408301519261454d6060820151613892565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f1461463e57501561462a575b6145a891506001600160a01b038516614c65565b0151908151151580614620575b6145bf5750505050565b6001600160a01b0316803b1561044e576145f5935f809460405196879586948593633a5be8cb60e01b85523391600486016144fb565b03925af180156108fe5761460c575b8080806136e3565b80613d345f61461a936105e2565b5f614604565b50803b15156145b5565b614637913090339061487c565b5f84614594565b906146535761464e92339061487c565b6145a8565b61464e925087613f78565b916146688361472f565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511590811591614727575b506146ab575050565b613592915f80604051936146c06060866105e2565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af4614721612c53565b91614ea7565b90505f6146a2565b803b1561044e576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b91909161479d8284614e76565b9390926005851015612c0f576147c694159384614866575b5083156147db575b50505015151590565b6147cc57565b63938a182160e01b5f5260045ffd5b5f935090611bd26148138594936040519283916020830195630b135d3f60e11b8752602484015260406044840152606483019061116d565b51915afa61481f612c53565b81614858575b81614834575b505f80806147bd565b9050614851630b135d3f60e11b9160208082518301019101613007565b145f61482b565b905060208151101590614825565b6001600160a01b0384811691161493505f6147b5565b5f6001600160a01b0381926148d99682604051978160208a01986323b872dd60e01b8a521660248a01521660448801526064870152606486526148c06084876105e2565b16926148ca614d41565b94519082855af1614721612c53565b80519081159182156148ef575b50501561044e57565b6149029250602080918301019101614d7c565b5f806148e6565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa9081156108fe576104b09461499592614961925f9161499a575b506136b2565b60405163095ea7b360e01b60208201526001600160a01b0394909416602485015260448085019190915283526064836105e2565b614d91565b6149b3915060203d6020116111375761112881836105e2565b5f61495b565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692614a1a838584614909565b6040516332dd704760e21b815291602083600481885afa9283156108fe575f93614c3b575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa9283156108fe575f93614c1a575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b614ab157505050505050565b83811115614c1457835b8515614b7057863b1561044e57604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af19283156108fe57614b5693614b5c575b50613b21565b80614aa5565b80613d345f614b6a936105e2565b5f614b50565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af19283156108fe57614b5693614be65750613b21565b614c069060203d8111614c0d575b614bfe81836105e2565b810190614dbc565b505f614b50565b503d614bf4565b80614abb565b614c3491935060203d6020116111375761112881836105e2565b915f614a7f565b6001600160a01b03919350614c5e9060203d6020116108f7576108e981836105e2565b9290614a3f565b906001600160a01b038216803b158015614d32575b15614cfe57506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561044e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156108fe576104b093614cea575b50614e4e565b80613d345f614cf8936105e2565b5f614ce4565b6104b092506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016613f78565b50614d3c81614ddc565b614c7a565b60405190614d506040836105e2565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020830152565b9081602091031261044e57516106af816117ee565b906001600160a01b036148d992165f80614da9614d41565b9360208151910182855af1614721612c53565b9081602091031261044e575167ffffffffffffffff8116810361044e5790565b803b614de781610642565b90614df560405192836105e2565b8082525f6020830180943c5190516001600160e81b03198116919060038210614e2f575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f80614e19565b81471061044e575f8080936001600160a01b038294165af1614e6e612c53565b501561044e57565b9060418151145f14614e9e5761116991602082015190606060408401519301515f1a90614ed2565b50505f90600290565b91925015614ec357815115614eba575090565b3b1561044e5790565b50805190811561044e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614f42576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa156108fe575f516001600160a01b03811615614f3a57905f90565b505f90600190565b505050505f9060039056fea2646970667358221220e74c43db859ed3a9163bb33b1d87a869db9da51238b11524ac74b563c5e0c81164736f6c634300081e0033"}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_wrappedNativeTokenAddress","type":"address","internalType":"address"},{"name":"_depositQuoteTimeBuffer","type":"uint32","internalType":"uint32"},{"name":"_fillDeadlineBuffer","type":"uint32","internalType":"uint32"},{"name":"_l2Usdc","type":"address","internalType":"contract IERC20"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"EMPTY_MSG_BYTES","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_RELAYER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_REPAYMENT_CHAIN_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"INFINITE_FILL_DEADLINE","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MAX_EXCLUSIVITY_PERIOD_SECONDS","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MAX_TRANSFER_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"OFT_DST_EID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"OFT_FEE_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"__SpokePool_init","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cctpTokenMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITokenMessenger"}],"stateMutability":"view"},{"type":"function","name":"cctpV2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"chainId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claimRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"bytes32","internalType":"bytes32"},{"name":"refundAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"crossDomainAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositDeprecated_5947912356","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"int64","internalType":"int64"},{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositFor","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"int64","internalType":"int64"},{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositNow","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"fillDeadlineOffset","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositQuoteTimeBuffer","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"depositV3","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositV3Now","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"fillDeadlineOffset","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"emergencyDeleteRootBundle","inputs":[{"name":"rootBundleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeExternalCall","inputs":[{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"returnData","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeRelayerRefundLeaf","inputs":[{"name":"rootBundleId","type":"uint32","internalType":"uint32"},{"name":"relayerRefundLeaf","type":"tuple","internalType":"struct SpokePoolInterface.RelayerRefundLeaf","components":[{"name":"amountToReturn","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"refundAmounts","type":"uint256[]","internalType":"uint256[]"},{"name":"leafId","type":"uint32","internalType":"uint32"},{"name":"l2TokenAddress","type":"address","internalType":"address"},{"name":"refundAddresses","type":"address[]","internalType":"address[]"}]},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"executeSlowRelayLeaf","inputs":[{"name":"slowFillLeaf","type":"tuple","internalType":"struct V3SpokePoolInterface.V3SlowFill","components":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"}]},{"name":"rootBundleId","type":"uint32","internalType":"uint32"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fill","inputs":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"originData","type":"bytes","internalType":"bytes"},{"name":"fillerData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillDeadlineBuffer","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"fillRelay","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"},{"name":"repaymentAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillRelayWithUpdatedDeposit","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"},{"name":"repaymentAddress","type":"bytes32","internalType":"bytes32"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillStatuses","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fillV3Relay","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayDataLegacy","components":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCurrentTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"address","internalType":"address"},{"name":"refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUnsafeDepositId","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"depositNonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getV3RelayHash","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_l2MessageService","type":"address","internalType":"contract IMessageService"},{"name":"_l2TokenBridge","type":"address","internalType":"contract ITokenBridge"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l2MessageService","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IMessageService"}],"stateMutability":"view"},{"type":"function","name":"l2TokenBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITokenBridge"}],"stateMutability":"view"},{"type":"function","name":"minimumFeeInWei","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"multicall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"numberOfDeposits","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"oftMessengers","inputs":[{"name":"l2TokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"l2OftMessenger","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pauseDeposits","inputs":[{"name":"pause","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseFills","inputs":[{"name":"pause","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pausedDeposits","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"pausedFills","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relayRootBundle","inputs":[{"name":"relayerRefundRoot","type":"bytes32","internalType":"bytes32"},{"name":"slowRelayRoot","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"relayerRefund","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestSlowFill","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rootBundles","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"slowRelayRoot","type":"bytes32","internalType":"bytes32"},{"name":"relayerRefundRoot","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setCrossDomainAdmin","inputs":[{"name":"newCrossDomainAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setL2MessageService","inputs":[{"name":"_l2MessageService","type":"address","internalType":"contract IMessageService"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setL2TokenBridge","inputs":[{"name":"_l2TokenBridge","type":"address","internalType":"contract ITokenBridge"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOftMessenger","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"messenger","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWithdrawalRecipient","inputs":[{"name":"newWithdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpDeposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpV3Deposit","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"address","internalType":"address"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tryMulticall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"tuple[]","internalType":"struct MultiCallerUpgradeable.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"unsafeDeposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"depositNonce","type":"uint256","internalType":"uint256"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"withdrawalRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"wrappedNativeToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdminExternalCallExecuted","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ClaimedRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"refundAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"caller","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EmergencyDeletedRootBundle","inputs":[{"name":"rootBundleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EnabledDepositRoute","inputs":[{"name":"originToken","type":"address","indexed":true,"internalType":"address"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"enabled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ExecutedRelayerRefundRoot","inputs":[{"name":"amountToReturn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"chainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"refundAmounts","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"rootBundleId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"leafId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"l2TokenAddress","type":"address","indexed":false,"internalType":"address"},{"name":"refundAddresses","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"deferredRefunds","type":"bool","indexed":false,"internalType":"bool"},{"name":"caller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FilledRelay","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"repaymentChainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"relayer","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"depositor","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"messageHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"relayExecutionInfo","type":"tuple","indexed":false,"internalType":"struct V3SpokePoolInterface.V3RelayExecutionEventInfo","components":[{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessageHash","type":"bytes32","internalType":"bytes32"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"fillType","type":"uint8","internalType":"enum V3SpokePoolInterface.FillType"}]}],"anonymous":false},{"type":"event","name":"FilledV3Relay","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"repaymentChainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"relayer","type":"address","indexed":true,"internalType":"address"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"relayExecutionInfo","type":"tuple","indexed":false,"internalType":"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo","components":[{"name":"updatedRecipient","type":"address","internalType":"address"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"fillType","type":"uint8","internalType":"enum V3SpokePoolInterface.FillType"}]}],"anonymous":false},{"type":"event","name":"FundsDeposited","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"quoteTimestamp","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"depositor","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"PausedDeposits","inputs":[{"name":"isPaused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"PausedFills","inputs":[{"name":"isPaused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RelayedRootBundle","inputs":[{"name":"rootBundleId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"relayerRefundRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"slowRelayRoot","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSlowFill","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"depositor","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"messageHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpDeposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositor","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"updatedRecipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpV3Deposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"updatedRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedV3SlowFill","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SetL2MessageService","inputs":[{"name":"newMessageService","type":"address","indexed":true,"internalType":"address"},{"name":"oldMessageService","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetL2TokenBridge","inputs":[{"name":"newTokenBridge","type":"address","indexed":true,"internalType":"address"},{"name":"oldTokenBridge","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetOFTMessenger","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"messenger","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetWithdrawalRecipient","inputs":[{"name":"newWithdrawalRecipient","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetXDomainAdmin","inputs":[{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokensBridged","inputs":[{"name":"amountToReturn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"chainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"leafId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"l2TokenAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"caller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"V3FundsDeposited","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"quoteTimestamp","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"ClaimedMerkleLeaf","inputs":[]},{"type":"error","name":"DepositsArePaused","inputs":[]},{"type":"error","name":"DisabledRoute","inputs":[]},{"type":"error","name":"ExpiredFillDeadline","inputs":[]},{"type":"error","name":"ExternalCallExecutionFailed","inputs":[]},{"type":"error","name":"FillsArePaused","inputs":[]},{"type":"error","name":"InsufficientSpokePoolBalanceToExecuteLeaf","inputs":[]},{"type":"error","name":"InvalidBytes32","inputs":[]},{"type":"error","name":"InvalidChainId","inputs":[]},{"type":"error","name":"InvalidCrossDomainAdmin","inputs":[]},{"type":"error","name":"InvalidDepositorSignature","inputs":[]},{"type":"error","name":"InvalidExclusiveRelayer","inputs":[]},{"type":"error","name":"InvalidFillDeadline","inputs":[]},{"type":"error","name":"InvalidMerkleLeaf","inputs":[]},{"type":"error","name":"InvalidMerkleProof","inputs":[]},{"type":"error","name":"InvalidOutputToken","inputs":[]},{"type":"error","name":"InvalidPayoutAdjustmentPct","inputs":[]},{"type":"error","name":"InvalidQuoteTimestamp","inputs":[]},{"type":"error","name":"InvalidSlowFillRequest","inputs":[]},{"type":"error","name":"InvalidWithdrawalRecipient","inputs":[]},{"type":"error","name":"LowLevelCallFailed","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"MessageTooShort","inputs":[]},{"type":"error","name":"MsgValueDoesNotMatchInputAmount","inputs":[]},{"type":"error","name":"NoRelayerRefundToClaim","inputs":[]},{"type":"error","name":"NoSlowFillsInExclusivityWindow","inputs":[]},{"type":"error","name":"NotEOA","inputs":[]},{"type":"error","name":"NotExclusiveRelayer","inputs":[]},{"type":"error","name":"OFTFeeUnderpaid","inputs":[]},{"type":"error","name":"OFTTokenMismatch","inputs":[]},{"type":"error","name":"OftFeeCapExceeded","inputs":[]},{"type":"error","name":"OftIncorrectAmountReceivedLD","inputs":[]},{"type":"error","name":"OftIncorrectAmountSentLD","inputs":[]},{"type":"error","name":"OftInsufficientBalanceForFee","inputs":[]},{"type":"error","name":"OftLzFeeNotZero","inputs":[]},{"type":"error","name":"RelayFilled","inputs":[]},{"type":"error","name":"RemovedFunction","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"WrongERC7683OrderId","inputs":[]},{"type":"error","name":"ZeroAddressTarget","inputs":[]}],"bytecode":"0x6101c080604052346102b05760a08161526c803803809161002082856102b4565b8339810103126102b05780516001600160a01b038116908190036102b05761004a602083016102d7565b90610057604084016102d7565b6060840151936001600160a01b03851685036102b05760800151926001600160a01b038416928385036102b057306080525f60c0525f60a05260e05261010052610120525f549160ff8360081c166102b0575f938360ff8087961603610276575b5061016052610180528161014052604051602081019063011a412160e61b8252600481526100e76024826102b4565b51915afa3d1561026f573d6001600160401b03811161025b5760405190610118601f8201601f1916602001836102b4565b81523d5f602083013e5b8161024f575b81610219575b506101a052604051614f8390816102e9823960805181818161100c015281816113b90152611510015260a05181611711015260c051816117ca015260e0518181816107950152818161356801528181613c3c015281816141340152818161456501528181614c8a0152614d0d0152610100518181816116890152613e1b01526101205181818161046e0152613be801526101405181818161178a01528181614ade0152614b860152610160518181816107380152818161425f01526149c5015261018051818181611dc90152818161434b01526149ee01526101a0518181816119dd0152614a840152f35b905060208151910151906020811061023e575b506001600160a01b031615155f61012e565b5f199060200360031b1b165f61022c565b80516020149150610128565b634e487b7160e01b5f52604160045260245ffd5b6060610122565b60ff908119161784557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6100b8565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761025b57604052565b519063ffffffff821682036102b05756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461043f5780630cb84d9a1461043a5780631186ec331461043557806311eac8551461043057806315348e44146103c257806317fcb39b1461042b57806319c1648c146104265780631b3d5559146104215780631fab657c1461041c57806329cb924d146104175780632e378115146104125780632e63e59a1461040d5780633659cfe614610408578063437b911614610403578063490e49ef146103fe578063493a4f84146103f95780634f1ef286146103f45780635285e058146103ef57806352d1902d146103ea578063541f4f14146103e5578063577f51f8146103e057806357f6dcb8146103db5780635d467759146103d65780636068d6cb146103d157806361a04d30146103cc578063670fa8ac146103c75780636bbbcd2e146103c25780636e400983146103bd5780636fd5c10e146103b8578063738b62e5146103b35780637659f9e0146103ae578063775c0d03146103a95780637aef642c146103a45780637b9392321461039f5780637ef413e11461039a57806382e2c43f1461039557806389945883146103905780638a7860ce1461038b5780638b15788e1461038657806391c49bf8146103815780639748cf7c1461037c57806397943aa914610377578063979f2bc21461037257806399cc29681461036d5780639a2e0820146103685780639a8a059214610363578063a1244c671461035e578063a18a096e14610359578063ac9650d814610354578063ad5425c61461034f578063adb5a6a614610304578063b370b7f51461034a578063b4c0d7ab14610345578063babb6aac14610340578063c35c83fc1461033b578063ceb4c98714610336578063d7e1583a14610331578063dda521131461032c578063ddd224f114610327578063de7eba7814610322578063deff4b241461031d578063ea86bd4614610318578063ee2a53f814610313578063f1429b5a1461030e578063f2c2092414610309578063f79f29ed146103045763fc8a584f0361000e57612981565b6122e1565b61285f565b61282a565b6127ec565b612748565b612656565b612626565b6125fd565b6125d7565b6125a1565b6124a3565b612478565b612399565b61236a565b612328565b612270565b6121d1565b61207c565b612055565b61203b565b611fff565b611f69565b611e7b565b611ded565b611daa565b611d83565b611d12565b611c9a565b611c80565b611b62565b611b2c565b611a94565b611a02565b6119c6565b61189f565b6117f8565b6117ae565b61176e565b61075c565b611734565b6116fa565b6116d4565b6116ad565b61166d565b6115f0565b611560565b6114f6565b6114cf565b611376565b6112ee565b6112d0565b611203565b610fe5565b610dec565b610c99565b610c70565b610b68565b610a46565b6107de565b610776565b610719565b6106b2565b6104bd565b610452565b5f91031261044e57565b5f80fd5b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361044e57565b60e435906104b082610492565b565b35906104b082610492565b3461044e57602036600319011261044e576001600160a01b036004356104e281610492565b165f5261087460205260206001600160a01b0360405f205416604051908152f35b608435908160070b820361044e57565b60a435908160070b820361044e57565b63ffffffff81160361044e57565b61010435906104b082610523565b61012435906104b082610523565b61014435906104b082610523565b61016435906104b082610523565b35906104b082610523565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176105a457604052565b610574565b6101a0810190811067ffffffffffffffff8211176105a457604052565b6060810190811067ffffffffffffffff8211176105a457604052565b90601f8019910116810190811067ffffffffffffffff8211176105a457604052565b604051906104b060c0836105e2565b604051906104b0610180836105e2565b604051906104b06101a0836105e2565b604051906104b06080836105e2565b67ffffffffffffffff81116105a457601f01601f191660200190565b92919261066a82610642565b9161067860405193846105e2565b82948184528183011161044e578281602093845f960137010152565b9080601f8301121561044e578160206106af9335910161065e565b90565b61010036600319011261044e576106ca600435610492565b6106d5602435610492565b6106dd610503565b506106e960a435610523565b60c43567ffffffffffffffff811161044e57610709903690600401610694565b506332ed1ba560e21b5f5260045ffd5b3461044e575f36600319011261044e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e575f36600319011261044e5760206040515f8152f35b3461044e575f36600319011261044e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261044e576004356107d181610492565b906024356106af81610492565b3461044e576107ec366107b9565b6107f46134c7565b6107fc61354d565b6001600160a01b0381169182151580610895575b610886576108576001600160a01b039261083c836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa9081156108fe575f916108cf575b506001600160a01b0380831691161415610810565b6108f1915060203d6020116108f7575b6108e981836105e2565b8101906134b2565b5f6108ba565b503d6108df565b613016565b67ffffffffffffffff81116105a45760051b60200190565b9080601f8301121561044e57813561093281610903565b9261094060405194856105e2565b81845260208085019260051b82010192831161044e57602001905b8282106109685750505090565b813581526020918201910161095b565b9080601f8301121561044e57813561098f81610903565b9261099d60405194856105e2565b81845260208085019260051b82010192831161044e57602001905b8282106109c55750505090565b6020809183356109d481610492565b8152019101906109b8565b9291906109eb81610903565b936109f960405195866105e2565b602085838152019160051b810192831161044e57905b828210610a1b57505050565b8135815260209182019101610a0f565b9080601f8301121561044e578160206106af933591016109df565b606036600319011261044e57600435610a5e81610523565b6024359067ffffffffffffffff821161044e5760c0600319833603011261044e57610a87610604565b918060040135835260248101356020840152604481013567ffffffffffffffff811161044e57610abd906004369184010161091b565b6040840152610ace60648201610569565b6060840152610adf608482016104b2565b608084015260a48101359067ffffffffffffffff821161044e576004610b089236920101610978565b60a08301526044359167ffffffffffffffff831161044e57610b31610018933690600401610a2b565b916129b1565b9181601f8401121561044e5782359167ffffffffffffffff831161044e576020808501948460051b01011161044e57565b3461044e57606036600319011261044e5760043567ffffffffffffffff811161044e5780360390606060031983011261044e57602435610ba781610523565b60443567ffffffffffffffff811161044e57610bc7903690600401610b37565b919093610bd261354d565b600484013590610182190181121561044e57610c6694610c6193610bfd6004610c5a94880101612b9f565b95610c13610c0e6080890151613892565b61355e565b6044610c1e8861333c565b91013560208801519061016089015192610c36610604565b998a5260208a01526040890152606088015260808701525f60a087015236916109df565b90836138a8565b61392a565b6100186001606555565b3461044e575f36600319011261044e576020604051428152f35b908161018091031261044e5790565b3461044e57604036600319011261044e5760043567ffffffffffffffff811161044e57610cca903690600401610c8a565b602435610cd682612baa565b6001600160a01b031691610cec60208201612baa565b6001600160a01b031690610d0260408201612baa565b6001600160a01b031690610d1860608201612baa565b6001600160a01b0316610d2d60808301612baa565b6001600160a01b031660e083013560c084013560a0850135610d526101008701612bb4565b93610d606101208801612bb4565b95610d6e6101408901612bb4565b976101608101610d7d91612bbe565b99909a610d88610613565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff166101408501523690610dda9261065e565b6101608301526100189133919061336d565b3461044e57602036600319011261044e5760043567ffffffffffffffff811161044e57610e1d903690600401610c8a565b610e2561354d565b60ff61086b5460e01c16610fd65763ffffffff421690610140810190610e5d83610e4e84612bb4565b63ffffffff9182169116101590565b610fc75761012081019263ffffffff610e7585612bb4565b1610610fb857610e8d610e8836836124c1565b61333c565b90610ea1825f5261087260205260405f2090565b54610faa57610ee3610edd7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f5261087260205260405f2090565b60019055565b6060810135610f9d60808301359260a08101359060c081013560e082013597610f1a610f146101008501359b612bb4565b91612bb4565b604084013591843593610f49610f44610f3d602089013598610160810190612bbe565b369161065e565b613a2c565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b3461044e57602036600319011261044e5760043561100281610492565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461044e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361044e5761106b6134c7565b61107361234f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110a757506100189061472f565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f928161110d575b506110d8575f80fd5b610018926111087f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f9414612c14565b61465e565b61113091935060203d602011611137575b61112881836105e2565b810190613007565b915f6110cf565b503d61111e565b602060031982011261044e576004359067ffffffffffffffff821161044e5761116991600401610b37565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106111c357505050505090565b90919293946020806111f4600193603f198682030187526040838b518051151584520151918185820152019061116d565b970193019301919392906111b4565b3461044e576112113661113e565b61121a81610903565b9161122860405193846105e2565b818352601f1961123783610903565b015f5b8181106112ac5750505f5b82811061125e576040518061125a8682611191565b0390f35b806112a661126e60019387612c1b565b515f8061127c858989612c2f565b9061128c60405180938193612c46565b0390305af49061129a612c53565b60208201529015159052565b01611245565b6020906040516112bb81610588565b5f81526060838201528282880101520161123a565b3461044e575f36600319011261044e5760206040516301e133808152f35b3461044e57604036600319011261044e5760243560043561130d6134c7565b61131561354d565b61086c54680100000000000000008110156105a45780600163ffffffff920161086c5583611342826127c9565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261044e5760043561138e81610492565b60243567ffffffffffffffff811161044e576113ae903690600401610694565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461044e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361044e576114186134c7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561144c57610018915061472f565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f91816114ae575b5061147c575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361044e576100189160019161465e565b6114c891925060203d6020116111375761112881836105e2565b905f611473565b3461044e575f36600319011261044e5760206001600160a01b036108695416604051908152f35b3461044e575f36600319011261044e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361044e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261044e57611578600435610492565b611583602435610492565b61158e604435610492565b611596610513565b506115a260c435610523565b60e43567ffffffffffffffff811161044e57610709903690600401610694565b9181601f8401121561044e5782359167ffffffffffffffff831161044e576020838186019501011161044e57565b3461044e5760c036600319011261044e5760043561160d81610492565b6024356044359160643561162081610492565b60843567ffffffffffffffff811161044e576116409036906004016115c2565b9160a4359567ffffffffffffffff871161044e576116656100189736906004016115c2565b969095612cd5565b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e575f36600319011261044e5760206001600160a01b03610c5a5416604051908152f35b3461044e575f36600319011261044e57602060ff61086b5460e81c166040519015158152f35b3461044e575f36600319011261044e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461044e575f36600319011261044e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e575f36600319011261044e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361044e57565b3461044e57602036600319011261044e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611838816117ee565b6118406134c7565b61184861354d565b151561086b547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b1691161761086b55604051908152a16001606555005b9060206106af92818152019061116d565b3461044e57602036600319011261044e5760043567ffffffffffffffff811161044e576118d09036906004016115c2565b6118d86134c7565b6118e061354d565b810160408282031261044e578135916118f883610492565b60208101359167ffffffffffffffff831161044e576001600160a01b03926119209201610694565b911680156119b75760048251106119a8575f8083516020850182855af190611946612c53565b9115611999577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d61198061125a946040519182918261188e565b0390a261198d6001606555565b6040519182918261188e565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b3461044e575f36600319011261044e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261044e57600435611a1b81610492565b602435611a2781610492565b60443591611a3483610492565b606435611a4081610492565b60843560e43560c43560a435611a5583610492565b611a5d610531565b93611a6661053f565b95610144359967ffffffffffffffff8b1161044e57611a8c6100189b36906004016115c2565b9a9099612d77565b61018036600319011261044e57600435611aad81610492565b602435611ab981610492565b60443591611ac683610492565b606435611ad281610492565b60843560a43560c435611ae36104a3565b90611aec610531565b92611af561053f565b94611afe61054d565b96610164359a67ffffffffffffffff8c1161044e57611b246100189c36906004016115c2565b9b909a612d99565b3461044e57606036600319011261044e576020611b5a600435611b4e81610492565b60243560443591612ebf565b604051908152f35b3461044e57606036600319011261044e5760043560243567ffffffffffffffff811161044e57611b969036906004016115c2565b9060443567ffffffffffffffff811161044e57611bb79036906004016115c2565b9190936040516020810190611be081611bd246898887612efd565b03601f1981018352826105e2565b51902003611c71575f93611bfb828695611c0494019061257b565b92810190612f1a565b51611c3b611c19335b6001600160a01b031690565b91611bd260405193849260208401966337bfd2c960e21b885260248501612fe5565b5190305af4611c48612c53565b9015611c5057005b60405163b8fe37a760e01b8152908190611c6d906004830161188e565b0390fd5b630f0c8f4760e11b5f5260045ffd5b3461044e575f36600319011261044e576020611b5a613021565b3461044e57602036600319011261044e57600435611cb66134c7565b611cbe61354d565b611cc7816127c9565b611cff576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261044e5760443560243560043560643560843560a4356101043560e43560c435611d4361053f565b93611d4c61054d565b95611d5561055b565b97610184359b67ffffffffffffffff8d1161044e57611d7b6100189d36906004016115c2565b9c909b61306f565b3461044e575f36600319011261044e5760206001600160a01b03610c5b5416604051908152f35b3461044e575f36600319011261044e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461044e5760e036600319011261044e5760043567ffffffffffffffff811161044e57611e1e903690600401610c8a565b602435604435916064356084359060a43567ffffffffffffffff811161044e57611e4c9036906004016115c2565b92909160c4359667ffffffffffffffff881161044e57611e736100189836906004016115c2565b9790966130e7565b3461044e57606036600319011261044e57600435611e9881610523565b60243590611ea582610492565b60443590611eb282610492565b60ff5f5460081c161561044e57611ee69063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6040805192611ef582856105e2565b600984526020808501926820a1a927a9a996ab1960b91b8452611f1a815191826105e2565b6005815201640312e302e360dc1b815260ff5f5460081c161561044e576005611f64936100189651902091209061047f5561048055611f57613e50565b611f5f613e5f565b613e73565b613ecb565b3461044e57602036600319011261044e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e6020600435611fa9816117ee565b611fb16134c7565b611fb961354d565b151561086b547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b1691161761086b55604051908152a16001606555005b3461044e57602036600319011261044e5761203460043561201f81610492565b6120276134c7565b61202f61354d565b613f23565b6001606555005b3461044e575f36600319011261044e576020604051468152f35b3461044e575f36600319011261044e57602063ffffffff61086b5460c01c16604051908152f35b3461044e57604036600319011261044e5760043560243561209c8261437a565b6001600160a01b03821691825f526108736020526120cd60405f20336001600160a01b03165f5260205260405f2090565b54928315612163576121165f916120e38461437a565b61210033916001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556121338361212483613892565b61212d85613892565b90613f78565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106121a457505050505090565b90919293946020806121c2600193603f19868203018752895161116d565b97019301930191939290612195565b3461044e576121df3661113e565b906121e9826131d5565b915f5b818110612201576040518061125a8682612172565b5f8061220e838587612c2f565b9061221e60405180938193612c46565b0390305af461222b612c53565b9015612251579060019161223f8287612c1b565b5261224a8186612c1b565b50016121ec565b604481511061044e5780602480600461044e940151830101910161321e565b61018036600319011261044e576044356024356004356064356084356101043560e43560c43560a4356122a284610523565b6122aa61053f565b946122b361054d565b96610164359a67ffffffffffffffff8c1161044e576122d96100189c36906004016115c2565b9b909a613281565b3461044e57602061231f6001600160a01b036122fc366107b9565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461044e575f36600319011261044e5760206001600160a01b0361086a5416604051908152f35b6040519061235e6020836105e2565b5f808352366020840137565b3461044e575f36600319011261044e5761125a61238561234f565b60405191829160208352602083019061116d565b3461044e5760c036600319011261044e5760043560243560443560643560843567ffffffffffffffff811161044e576123d69036906004016115c2565b60a4939193359067ffffffffffffffff821161044e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461241f61246e9336906004016115c2565b92909161242a61354d565b6124338a61437a565b612462898b898961244536888861065e565b92612451368b8b61065e565b946001600160a01b03469216613a41565b60405196879687612ca2565b0390a36001606555005b3461044e57602036600319011261044e576004355f52610872602052602060405f2054604051908152f35b3461044e575f36600319011261044e57602060405163ffffffff8152f35b9190916101808184031261044e576124d7610613565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e085015261010082013561010085015261253b6101208301610569565b61012085015261254e6101408301610569565b61014085015261016082013567ffffffffffffffff811161044e576125739201610694565b610160830152565b9060208282031261044e57813567ffffffffffffffff811161044e576106af92016124c1565b3461044e57602036600319011261044e5760043567ffffffffffffffff811161044e57611b5a610e8860209236906004016124c1565b3461044e575f36600319011261044e57602060ff61086b5460e01c166040519015158152f35b3461044e575f36600319011261044e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461044e57602036600319011261044e5761203460043561264681610492565b61264e6134c7565b611f5f61354d565b3461044e57606036600319011261044e5760043567ffffffffffffffff811161044e576126879036906004016124c1565b602435906044359061269761354d565b60ff61086b5460e01c16610fd65761014081015163ffffffff166126c64263ffffffff165b9163ffffffff1690565b101580612729575b61271a57610c66926126df8261333c565b60c0830151602084015190610160850151926126f9610604565b958652602086015260408501526060840152608083015260a08201526139a3565b630c3a9b9d60e41b5f5260045ffd5b506127376040820151613892565b6001600160a01b03163314156126ce565b61016036600319011261044e576044356024356004356064356101043560e43560c43560a43560843561277a85610523565b610124359561278887610523565b610144359967ffffffffffffffff8b1161044e576127ad6100189b36906004016115c2565b9a90996133d9565b634e487b7160e01b5f52603260045260245ffd5b61086c548110156127e75761086c5f52600360205f20910201905f90565b6127b5565b3461044e57602036600319011261044e5760043561086c5481101561044e576128166040916127c9565b506001815491015482519182526020820152f35b3461044e57602036600319011261044e5761203460043561284a81610492565b6128526134c7565b61285a61354d565b613ffe565b3461044e5760a036600319011261044e5760043561287c81610523565b6128f960243561288b81610492565b60443561289781610492565b606435906128a482610492565b608435926128b184610492565b5f54956128df60ff600889901c16156128c9565b1590565b80988199612973575b8115612953575b50612c14565b866128f0600160ff195f5416175f55565b61293c576133fe565b6128ff57005b61290d61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61294e61010061ff00195f5416175f55565b6133fe565b303b15915081612965575b505f6128d9565b60ff1660011490505f61295e565b600160ff82161091506128d2565b3461044e57602036600319011261044e576120346004356129a181610492565b6129a96134c7565b611f6461354d565b91906129bb61354d565b608081016129d3610c0e82516001600160a01b031690565b602082019283514603612ad3576128c56129fb918460016129f3896127c9565b5001546135d2565b612ac45763ffffffff7ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e91612ab76060850195612a45612a3f885163ffffffff1690565b89613656565b8051958051612aa1612a93612a82604085019a8c612a698d51915163ffffffff1690565b8a516001600160a01b03169160a08901978851946136bf565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612b51565b0390a46104b06001606555565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612aff5750505090565b8251845260209384019390920191600101612af2565b90602080835192838152019201905f5b818110612b325750505090565b82516001600160a01b0316845260209384019390920191600101612b25565b949695919260a0946001600160a01b03612b7d8196612b91958a5260c060208b015260c08a0190612ae2565b921660408801528682036060880152612b15565b951515608085015216910152565b6106af9036906124c1565b356106af81610492565b356106af81610523565b903590601e198136030182121561044e570180359067ffffffffffffffff821161044e5760200191813603831361044e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612c0f57565b612bf1565b1561044e57565b80518210156127e75760209160051b010190565b908210156127e7576111699160051b810190612bbe565b908092918237015f815290565b3d15612c7d573d90612c6482610642565b91612c7260405193846105e2565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612cc7926106af979587526020870152608060408701526080860191612c82565b926060818503910152612c82565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b039586612d3f959a949916612d318a8c83612d1c36888861065e565b91612d28368b8b61065e565b9346908d613a41565b604051978897169a87612ca2565b0390a3565b634e487b7160e01b5f52601160045260245ffd5b9063ffffffff8091169116019063ffffffff8211612d7257565b612d44565b96949290916104b09b9a9998969492612d9763ffffffff42169889612d58565b985b9593919b999897969492909b612dad61354d565b61086b5460ff8160e81c16612eb05760c01c63ffffffff1696612dcf88613325565b612df69063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b612dfe610623565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff16610100870152610120860190612e74919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612e979261065e565b610180820152612ea690613b83565b6104b06001606555565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612ef76074826105e2565b51902090565b939291602091612f1591604087526040870191612c82565b930152565b9081602091031261044e57604051906020820182811067ffffffffffffffff8211176105a45760405235815290565b906101806101606106af93805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e0850152610100810151610100850152612fc361012082015161012086019063ffffffff169052565b6101408181015163ffffffff169085015201519181610160820152019061116d565b612ffd60409295949395606083526060830190612f49565b9460208201520152565b9081602091031261044e575190565b6040513d5f823e3d90fd5b600460206001600160a01b03610c5a541660405192838092638994588360e01b82525afa9081156108fe575f91613056575090565b6106af915060203d6020116111375761112881836105e2565b9c9a999897969594939291909661308461354d565b60ff61086b5460e81c16612eb05761309d908e33612ebf565b96604051809e6130ac826105a9565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612e74565b9792909596949391966130f861354d565b60ff61086b5460e01c16610fd6576131136101408a01612bb4565b6131224263ffffffff166126bc565b1015806131b6575b61271a57612ea6986131ab6131b197613146610e8836856124c1565b9961314f610604565b9a61315a36866124c1565b8c5260208c01528560408c01528660608c015261317836868b61065e565b60808c015260a08b01526131a361318f8435613892565b9860e061010086013595013595369161065e565b96369161065e565b95613a41565b6139a3565b506131c460408a0135613892565b6001600160a01b031633141561312a565b906131df82610903565b6131ec60405191826105e2565b82815280926131fd601f1991610903565b01905f5b82811061320d57505050565b806060602080938501015201613201565b60208183031261044e5780519067ffffffffffffffff821161044e570181601f8201121561044e5780519061325282610642565b9261326060405194856105e2565b8284526020838301011161044e57815f9260208093018386015e8301015290565b9b9998979694929095939161329461354d565b61086b5460ff8160e81c16612eb05760c01c63ffffffff16966132b688613325565b6132dd9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6132e5610623565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff90811661010088015216610120860152612e74565b63ffffffff1663ffffffff8114612d725760010190565b604051612ef7816133596020820194604086526060830190612f49565b46604083015203601f1981018352826105e2565b91909161337861354d565b60ff61086b5460e01c16610fd65761014081015163ffffffff166133a14263ffffffff166126bc565b1015806133ba575b61271a57612ea6926126df8261333c565b506133c86040820151613892565b6001600160a01b03163314156133a9565b9a989795929693909491966133f563ffffffff42169788612d58565b9761329461354d565b939190929360ff5f5460081c161561044e576134379063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b60409182519061344784836105e2565b600982526020808301946820a1a927a9a996ab1960b91b865261346c815191826105e2565b600581520193640312e302e360dc1b855260ff5f5460081c161561044e576104b09661202f956005611f649361285a9651902091209061047f5561048055611f57613e50565b9081602091031261044e57516106af81610492565b610c5a546040516333f2026760e11b8152906001600160a01b0316602082600481845afa80156108fe576104b0925f9161352e575b50610869546001600160a01b03908116911614908161351b5750612c14565b6001600160a01b0316905033145f6128d9565b613547915060203d6020116108f7576108e981836105e2565b5f6134fc565b60026065541461044e576002606555565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613595575b50565b4761359d5750565b4790803b1561044e575f90600460405180948193630d0e30db60e41b83525af180156108fe5715613592575f6104b0916105e2565b6106af929160405161364d81611bd2602082019460208652805160408401526020810151606084015260a0613617604083015160c06080870152610100860190612ae2565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612b15565b51902091614053565b6136616002916127c9565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b80809216146136a357825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b91908201809211612d7257565b91959495939092935f9681519081815103613883578161373e575b505050826136e9575b50505050565b63ffffffff613720611c0d83611c0d7ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579588614116565b6040805195865233602087015290959190911693a45f8080806136e3565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa9081156108fe575f91613864575b505f5f5b848110613784575050506136da565b61378e8187612c1b565b5161379c575b600101613775565b906137b2906137ab8388612c1b565b51906136b2565b90828211613855576137ec6128c56137da6137cd8488612c1b565b516001600160a01b031690565b6137e4848a612c1b565b51908a6140a4565b15613794579a506137fd8b86612c1b565b5161384b6138438d61382e6137cd6138278c6001600160a01b03165f5261087360205260405f2090565b9289612c1b565b6001600160a01b03165f5260205260405f2090565b9182546136b2565b905560019a613794565b632ddaa83160e11b5f5260045ffd5b61387d915060203d6020116111375761112881836105e2565b5f613771565b6319a5316760e31b5f5260045ffd5b6001600160a01b03906138a48161437a565b1690565b916128c591613924936040815191015191604051916138c6836105c6565b825261364d6138e26020840192468452604085019586526127c9565b505493604051928391613909602084019660208852516060604086015260a0850190612f49565b9151606084015251608083015203601f1981018352826105e2565b612ac457565b805163ffffffff6101208201511663ffffffff42911610610fb8576020820151906002613960835f5261087260205260405f2090565b5414613994576104b09260026139816001945f5261087260205260405f2090565b5561398f60025f8484614427565b614529565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff42911610610fb85760208301519260016139da855f5261087260205260405f2090565b5403613a25576001935b60026139f9825f5261087260205260405f2090565b5414613994576104b0945f946002613a1d61398f945f5261087260205260405f2090565b558484614427565b5f936139e4565b80519081613a3a5750505f90565b6020012090565b93926042936104b0979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613aa860e0826105e2565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613b0060a0826105e2565b519020906040519161190160f01b8352600283015260228201522090614790565b91908203918211612d7257565b9692610140989563ffffffff9586949285936106af9e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e083015261010082015281610120820152019061116d565b613b8d815161437a565b6060810190815115613e4257610120810190613bb9613bb0835163ffffffff1690565b63ffffffff1690565b804210908115613e09575b50613dfa57610140810192613bdd845163ffffffff1690565b63ffffffff613c0e817f000000000000000000000000000000000000000000000000000000000000000016426136b2565b911611613deb5761016082015163ffffffff16918280613da8575b5060408101918251926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680941480613d9f575b15613d4f5760808301513403613d4057833b1561044e575f60049460405195868092630d0e30db60e41b825234905af19081156108fe577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad394613d2192613d26575b505b5191519260808101519060a081015160c082015197613d00613cf56101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613b2e565b0390a4565b80613d345f613d3a936105e2565b80610444565b5f613cc7565b636452a35d60e01b5f5260045ffd5b925034613d4057613d2183613d9a613d8b611c0d7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39751613892565b6080860151903090339061487c565b613cc9565b50341515613c65565b6301e133801015613dd3575b60e081015115613dc4575f613c29565b63495d907f60e01b5f5260045ffd5b91613de59063ffffffff421690612d58565b91613db4565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b613e14915042613b21565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613bc4565b6231010160e51b5f5260045ffd5b60ff5f5460081c161561044e57565b60ff5f5460081c161561044e576001606555565b6001600160a01b03168015613ebc57806001600160a01b0319610869541617610869557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b03168015613f1457806001600160a01b031961086a54161761086a557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b7ff4afd54e7ed26702d892bb2e04050d1414c6eb040dde0e9ca2d919f423f3608760206001600160a01b03610c5a54931692836001600160a01b0319821617610c5a556001600160a01b0360405191168152a2565b6001600160a01b0316916001600160a01b036040519263a9059cbb60e01b5f521660045260245260205f60448180865af160015f5114811615613fdf575b60409190915215613fc45750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6001811516613ff5573d15833b15151616613fb6565b503d5f823e3d90fd5b7ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d67060206001600160a01b03610c5b54931692836001600160a01b0319821617610c5b556001600160a01b0360405191168152a2565b929091905f915b845183101561409c5761406d8386612c1b565b51908181101561408b575f52602052600160405f205b92019161405a565b905f52602052600160405f20614083565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f916140e08160648101611bd2565b519082855af1903d5f5190836140f7575b50505090565b9192509061410c57503b15155b5f80806140f1565b6001915014614104565b9061411f613021565b6001600160a01b038216906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682145f14614255576141699192503414612c14565b61417334836136b2565b90803b1561044e57604051632e1a7d4d60e01b815260048101929092525f908290602490829084905af180156108fe57614241575b506141ca6141c2611c0d610c5a546001600160a01b031690565b9134906136b2565b906141de61086a546001600160a01b031690565b813b1561044e57604051634f9e72ad60e11b81526001600160a01b03919091166004820152346024820152606060448201525f606482018190529092909183916084918391905af180156108fe576142335750565b80613d345f6104b0936105e2565b80613d345f61424f936105e2565b5f6141a8565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016821480614348575b156142ab575050506104b0906142a661086a546001600160a01b031690565b6149b9565b6142d7916142bb85923414612c14565b6142d1611c0d610c5b546001600160a01b031690565b90614909565b6142ed611c0d610c5b546001600160a01b031690565b61086a546001600160a01b031690803b1561044e57604051632917540d60e11b81526001600160a01b0393841660048201526024810194909452911660448301525f908290606490829034905af180156108fe576142335750565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515614287565b60a01c61438357565b6379ec0ed760e11b5f5260045ffd5b61439b82612c05565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a0830152606001519061442082612c05565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208909392936060830151613d2160808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61448b61012085015163ffffffff1690565b61014085015163ffffffff16916040860151938651956144ef6144b761016060208b01519a0151613a2c565b9960608c01519b60406144cd6080830151613a2c565b9101519060206144db610633565b9e8f528e015260408d015260608c01614392565b6040519c8d9c8d61439e565b906106af94936080936001600160a01b0380931684526020840152166040820152816060820152019061116d565b906080614537910151613892565b91608060408301519261454d6060820151613892565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f1461463e57501561462a575b6145a891506001600160a01b038516614c65565b0151908151151580614620575b6145bf5750505050565b6001600160a01b0316803b1561044e576145f5935f809460405196879586948593633a5be8cb60e01b85523391600486016144fb565b03925af180156108fe5761460c575b8080806136e3565b80613d345f61461a936105e2565b5f614604565b50803b15156145b5565b614637913090339061487c565b5f84614594565b906146535761464e92339061487c565b6145a8565b61464e925087613f78565b916146688361472f565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511590811591614727575b506146ab575050565b613592915f80604051936146c06060866105e2565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af4614721612c53565b91614ea7565b90505f6146a2565b803b1561044e576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b91909161479d8284614e76565b9390926005851015612c0f576147c694159384614866575b5083156147db575b50505015151590565b6147cc57565b63938a182160e01b5f5260045ffd5b5f935090611bd26148138594936040519283916020830195630b135d3f60e11b8752602484015260406044840152606483019061116d565b51915afa61481f612c53565b81614858575b81614834575b505f80806147bd565b9050614851630b135d3f60e11b9160208082518301019101613007565b145f61482b565b905060208151101590614825565b6001600160a01b0384811691161493505f6147b5565b5f6001600160a01b0381926148d99682604051978160208a01986323b872dd60e01b8a521660248a01521660448801526064870152606486526148c06084876105e2565b16926148ca614d41565b94519082855af1614721612c53565b80519081159182156148ef575b50501561044e57565b6149029250602080918301019101614d7c565b5f806148e6565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa9081156108fe576104b09461499592614961925f9161499a575b506136b2565b60405163095ea7b360e01b60208201526001600160a01b0394909416602485015260448085019190915283526064836105e2565b614d91565b6149b3915060203d6020116111375761112881836105e2565b5f61495b565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692614a1a838584614909565b6040516332dd704760e21b815291602083600481885afa9283156108fe575f93614c3b575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa9283156108fe575f93614c1a575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b614ab157505050505050565b83811115614c1457835b8515614b7057863b1561044e57604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af19283156108fe57614b5693614b5c575b50613b21565b80614aa5565b80613d345f614b6a936105e2565b5f614b50565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af19283156108fe57614b5693614be65750613b21565b614c069060203d8111614c0d575b614bfe81836105e2565b810190614dbc565b505f614b50565b503d614bf4565b80614abb565b614c3491935060203d6020116111375761112881836105e2565b915f614a7f565b6001600160a01b03919350614c5e9060203d6020116108f7576108e981836105e2565b9290614a3f565b906001600160a01b038216803b158015614d32575b15614cfe57506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561044e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156108fe576104b093614cea575b50614e4e565b80613d345f614cf8936105e2565b5f614ce4565b6104b092506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016613f78565b50614d3c81614ddc565b614c7a565b60405190614d506040836105e2565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020830152565b9081602091031261044e57516106af816117ee565b906001600160a01b036148d992165f80614da9614d41565b9360208151910182855af1614721612c53565b9081602091031261044e575167ffffffffffffffff8116810361044e5790565b803b614de781610642565b90614df560405192836105e2565b8082525f6020830180943c5190516001600160e81b03198116919060038210614e2f575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f80614e19565b81471061044e575f8080936001600160a01b038294165af1614e6e612c53565b501561044e57565b9060418151145f14614e9e5761116991602082015190606060408401519301515f1a90614ed2565b50505f90600290565b91925015614ec357815115614eba575090565b3b1561044e5790565b50805190811561044e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614f42576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa156108fe575f516001600160a01b03811615614f3a57905f90565b505f90600190565b505050505f9060039056fea2646970667358221220ea7d26ba011047db10285d4374679ef211a7799ac0de8c9035aa6533e505568d64736f6c634300081e0033"}