@across-protocol/contracts 5.0.11-alpha.3 → 5.0.11

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 (70) hide show
  1. package/contracts/handlers/MulticallHandler.sol +7 -1
  2. package/contracts/libraries/SafeTransferERC20.sol +21 -0
  3. package/contracts/libraries/TronTransferLib.sol +42 -0
  4. package/contracts/periphery/SpokePoolPeriphery.sol +4 -0
  5. package/contracts/periphery/counterfactual/CounterfactualDepositSpokePool.sol +7 -3
  6. package/contracts/periphery/counterfactual/CounterfactualDepositSpokePoolTr.sol +36 -0
  7. package/contracts/periphery/counterfactual/WithdrawImplementation.sol +3 -6
  8. package/contracts/periphery/counterfactual/WithdrawImplementationTron.sol +22 -0
  9. package/contracts/sp1-helios/SP1AutoVerifier.sol +1 -1
  10. package/contracts/spoke-pools/SpokePool.sol +11 -6
  11. package/contracts/spoke-pools/Tron_SpokePool.sol +65 -0
  12. package/contracts/test/MockTronUSDT.sol +36 -0
  13. package/contracts/tron/TronCounterfactualImports.sol +4 -3
  14. package/contracts/tron/TronImports.sol +2 -2
  15. package/contracts/tron/TronPeripheryImports.sol +1 -1
  16. package/dist/broadcast/deployed-addresses.json +23 -23
  17. package/dist/evm/artifacts/AcrossMessageHandlerMock.sol/AcrossMessageHandlerMock.json +1 -1
  18. package/dist/evm/artifacts/AdminWithdrawManager.sol/AdminWithdrawManager.json +1 -1
  19. package/dist/evm/artifacts/Arbitrum_SpokePool.sol/Arbitrum_SpokePool.json +1 -1
  20. package/dist/evm/artifacts/Blast_SpokePool.sol/Blast_SpokePool.json +1 -1
  21. package/dist/evm/artifacts/Boba_SpokePool.sol/Boba_SpokePool.json +1 -1
  22. package/dist/evm/artifacts/Cher_SpokePool.sol/Cher_SpokePool.json +1 -1
  23. package/dist/evm/artifacts/CounterfactualDepositSpokePool.sol/CounterfactualDepositSpokePool.json +1 -1
  24. package/dist/evm/artifacts/CounterfactualDepositSpokePoolTr.sol/CounterfactualDepositSpokePoolTr.json +1 -0
  25. package/dist/evm/artifacts/DstOFTHandler.sol/DstOFTHandler.json +1 -1
  26. package/dist/evm/artifacts/Ethereum_SpokePool.sol/Ethereum_SpokePool.json +1 -1
  27. package/dist/evm/artifacts/HubPoolTestBase.sol/MockAddressWhitelist.json +1 -1
  28. package/dist/evm/artifacts/HubPoolTestBase.sol/MockFinder.json +1 -1
  29. package/dist/evm/artifacts/HubPoolTestBase.sol/MockIdentifierWhitelist.json +1 -1
  30. package/dist/evm/artifacts/HubPoolTestBase.sol/MockLpTokenFactory.json +1 -1
  31. package/dist/evm/artifacts/HubPoolTestBase.sol/MockOptimisticOracle.json +1 -1
  32. package/dist/evm/artifacts/HubPoolTestBase.sol/MockStore.json +1 -1
  33. package/dist/evm/artifacts/Ink_SpokePool.sol/Ink_SpokePool.json +1 -1
  34. package/dist/evm/artifacts/Lens_SpokePool.sol/Lens_SpokePool.json +1 -1
  35. package/dist/evm/artifacts/Linea_SpokePool.sol/Linea_SpokePool.json +1 -1
  36. package/dist/evm/artifacts/Lisk_SpokePool.sol/Lisk_SpokePool.json +1 -1
  37. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockCrossDomainMessenger.json +1 -1
  38. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL1StandardBridge.json +1 -1
  39. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL2StandardBridge.json +1 -1
  40. package/dist/evm/artifacts/MockOptimism_SpokePool.sol/MockOptimism_SpokePool.json +1 -1
  41. package/dist/evm/artifacts/MockSpokePool.sol/MockSpokePool.json +1 -1
  42. package/dist/evm/artifacts/MockSpokePoolV2.sol/MockSpokePoolV2.json +1 -1
  43. package/dist/evm/artifacts/MockTronUSDT.sol/MockTronUSDT.json +1 -0
  44. package/dist/evm/artifacts/MulticallHandler.sol/MulticallHandler.json +1 -1
  45. package/dist/evm/artifacts/OP_SpokePool.sol/OP_SpokePool.json +1 -1
  46. package/dist/evm/artifacts/Optimism_SpokePool.sol/Optimism_SpokePool.json +1 -1
  47. package/dist/evm/artifacts/Ovm_SpokePool.sol/Ovm_SpokePool.json +1 -1
  48. package/dist/evm/artifacts/Ovm_WithdrawalHelper.sol/Ovm_WithdrawalHelper.json +1 -1
  49. package/dist/evm/artifacts/PermissionedMulticallHandler.sol/PermissionedMulticallHandler.json +1 -1
  50. package/dist/evm/artifacts/PolygonZkEVM_SpokePool.sol/PolygonZkEVM_SpokePool.json +1 -1
  51. package/dist/evm/artifacts/Polygon_SpokePool.sol/Polygon_SpokePool.json +1 -1
  52. package/dist/evm/artifacts/SP1AutoVerifier.sol/SP1AutoVerifier.json +1 -1
  53. package/dist/evm/artifacts/Scroll_SpokePool.sol/Scroll_SpokePool.json +1 -1
  54. package/dist/evm/artifacts/SpokePool.sol/SpokePool.json +1 -1
  55. package/dist/evm/artifacts/SpokePoolPeriphery.sol/SpokePoolPeriphery.json +1 -1
  56. package/dist/evm/artifacts/SpokePoolPeriphery.sol/SwapProxy.json +1 -1
  57. package/dist/evm/artifacts/SponsoredCCTPDstPeriphery.sol/SponsoredCCTPDstPeriphery.json +1 -1
  58. package/dist/evm/artifacts/SponsoredCCTPSrcPeriphery.sol/SponsoredCCTPSrcPeriphery.json +1 -1
  59. package/dist/evm/artifacts/SponsoredOFTSrcPeriphery.sol/SponsoredOFTSrcPeriphery.json +1 -1
  60. package/dist/evm/artifacts/TronTransferLib.sol/TronTransferLib.json +1 -0
  61. package/dist/evm/artifacts/Tron_SpokePool.sol/Tron_SpokePool.json +1 -0
  62. package/dist/evm/artifacts/Universal_SpokePool.sol/Universal_SpokePool.json +1 -1
  63. package/dist/evm/artifacts/WithdrawImplementation.sol/WithdrawImplementation.json +1 -1
  64. package/dist/evm/artifacts/WithdrawImplementationTron.sol/WithdrawImplementationTron.json +1 -0
  65. package/dist/evm/artifacts/WorldChain_SpokePool.sol/WorldChain_SpokePool.json +1 -1
  66. package/dist/evm/artifacts/ZkSync_SpokePool.sol/ZkSync_SpokePool.json +1 -1
  67. package/dist/evm/artifacts/eraVM_EIP7702.sol/SimpleContract.json +1 -1
  68. package/dist/evm/artifacts/eraVM_EIP7702.sol/SpokePoolEIP7702Test.json +1 -1
  69. package/dist/evm/artifacts/eraVM_EIP7702.sol/TestableMockSpokePool.json +1 -1
  70. package/package.json +3 -3
@@ -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":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"USDC_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"__OvmSpokePool_init","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"},{"name":"_l2Eth","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l1Gas","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"l2Eth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"remoteL1Tokens","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"setL1GasLimit","inputs":[{"name":"newl1Gas","type":"uint32","internalType":"uint32"}],"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":"setRemoteL1Token","inputs":[{"name":"l2Token","type":"address","internalType":"address"},{"name":"l1Token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTokenBridge","inputs":[{"name":"l2Token","type":"address","internalType":"address"},{"name":"tokenBridge","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":"tokenBridges","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"SetL1Gas","inputs":[{"name":"newL1Gas","type":"uint32","indexed":true,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"SetL2TokenBridge","inputs":[{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"tokenBridge","type":"address","indexed":true,"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":"SetRemoteL1Token","inputs":[{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"l1Token","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":"NotCrossChainCall","inputs":[]},{"type":"error","name":"NotCrossDomainAdmin","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":"WrongERC7683OrderId","inputs":[]},{"type":"error","name":"ZeroAddressTarget","inputs":[]}],"bytecode":"0x6101c080604052346102be5760a0816157e9803803809161002082856102c2565b8339810103126102be5780516001600160a01b038116908190036102be5761004a602083016102e5565b90610057604084016102e5565b6060840151936001600160a01b03851685036102be5760800151926001600160a01b038416928385036102be57306080525f60c0525f60a05260e05261010052610120525f549160ff8360081c166102be575f938360ff8087961603610284575b5061016052610180528161014052604051602081019063011a412160e61b8252600481526100e76024826102c2565b51915afa3d1561027d573d6001600160401b0381116102695760405190610118601f8201601f1916602001836102c2565b81523d5f602083013e5b8161025d575b81610227575b506101a0526040516154f290816102f7823960805181818161111101528181611617015261176e015260a05181611948015260c05181611b18015260e05181818161089a015281816138c901528181613fac015281816146af01528181614aac01528181614fc8015261504b0152610100518181816118e7015261418b0152610120518181816104be0152613f58015261014051818181611ad8015281816151a4015261524c01526101605181818161083d015281816143a101528181614e38015261508b0152610180518181816121280152818161449e01528181614be501526150b401526101a051818181611d4f015261514a0152f35b905060208151910151906020811061024c575b506001600160a01b031615155f61012e565b5f199060200360031b1b165f61023a565b80516020149150610128565b634e487b7160e01b5f52604160045260245ffd5b6060610122565b60ff908119161784557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6100b8565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761026957604052565b519063ffffffff821682036102be5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461048f5780630c5d5f731461048a5780630cb84d9a146104855780630eaac9f0146104805780631186ec331461047b57806311eac8551461047657806315348e441461040357806317fcb39b1461047157806319c1648c1461046c5780631b3d5559146104675780631fab657c1461046257806329cb924d1461045d5780632e378115146104585780632e63e59a146104535780633659cfe61461044e578063431023b814610449578063437b911614610444578063490e49ef1461043f578063493a4f841461043a5780634f1ef286146104355780635285e0581461043057806352d1902d1461042b578063541f4f1414610426578063577f51f81461042157806357f6dcb81461041c5780636068d6cb1461041757806361a04d3014610412578063647c576c1461040d578063670fa8ac146104085780636bbbcd2e146104035780636e400983146103fe5780636fd5c10e146103f9578063738b62e5146103f45780637659f9e0146103ef578063766e0703146103ea578063775c0d03146103e55780637aef642c146103e05780637b939232146103db5780637ef413e1146103d657806382e2c43f146103d15780638a7860ce146103cc5780638b15788e146103c7578063927ede2d146103c25780639748cf7c146103bd57806397943aa9146103b8578063979f2bc2146103b357806399cc2968146103ae5780639a8a0592146103a9578063a1244c67146103a4578063a18a096e1461039f578063ac9650d81461039a578063ad5425c614610395578063adb5a6a614610340578063b27a430014610390578063b370b7f51461038b578063b4c0d7ab14610386578063babb6aac14610381578063bf10268d1461037c578063c35c83fc14610377578063c7b0637014610372578063ceb4c9871461036d578063d7e1583a14610368578063dda5211314610363578063ddd224f11461035e578063de7eba7814610359578063deff4b2414610354578063e32292111461034f578063ea86bd461461034a578063ee2a53f814610345578063f79f29ed14610340578063fbbba9ac1461033b5763fc8a584f0361000e57612cc3565b612c3f565b6125ce565b612c01565b612b5d565b612b34565b612a42565b612a0b565b6129e2565b6129bc565b612986565b612888565b61285a565b61282f565b6127ab565b6126cc565b61269d565b61265b565b612615565b61255d565b6124be565b612366565b61233f565b612325565b61228f565b6121da565b61214c565b612109565b6120db565b61206a565b611ff2565b611ed4565b611e9e565b611e06565b611d74565b611d38565b611d14565b611bed565b611b46565b611afc565b611abc565b610861565b611a82565b61199d565b611931565b61190b565b6118cb565b61184e565b6117be565b611754565b61172d565b6115d4565b61154c565b61152e565b611461565b611243565b6110ea565b610ef1565b610d9e565b610d75565b610c6d565b610b4b565b6108e3565b61087b565b61081e565b6107b7565b6105ea565b610553565b61050d565b6104a2565b5f91031261049e57565b5f80fd5b3461049e575f36600319011261049e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361049e57565b60e43590610500826104e2565b565b3590610500826104e2565b3461049e57602036600319011261049e576001600160a01b03600435610532816104e2565b165f52610c5d60205260206001600160a01b0360405f205416604051908152f35b3461049e57602036600319011261049e576001600160a01b03600435610578816104e2565b165f5261087460205260206001600160a01b0360405f205416604051908152f35b63ffffffff81160361049e57565b610104359061050082610599565b610124359061050082610599565b610144359061050082610599565b610164359061050082610599565b359061050082610599565b3461049e57602036600319011261049e5763ffffffff60043561060c81610599565b6106146137d6565b61061c61388e565b168063ffffffff19610c5a541617610c5a557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b608435908160070b820361049e57565b60a435908160070b820361049e57565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176106a957604052565b610679565b6101a0810190811067ffffffffffffffff8211176106a957604052565b6060810190811067ffffffffffffffff8211176106a957604052565b90601f8019910116810190811067ffffffffffffffff8211176106a957604052565b6040519061050060c0836106e7565b60405190610500610180836106e7565b604051906105006101a0836106e7565b604051906105006080836106e7565b67ffffffffffffffff81116106a957601f01601f191660200190565b92919261076f82610747565b9161077d60405193846106e7565b82948184528183011161049e578281602093845f960137010152565b9080601f8301121561049e578160206107b493359101610763565b90565b61010036600319011261049e576107cf6004356104e2565b6107da6024356104e2565b6107e2610659565b506107ee60a435610599565b60c43567ffffffffffffffff811161049e5761080e903690600401610799565b506332ed1ba560e21b5f5260045ffd5b3461049e575f36600319011261049e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461049e575f36600319011261049e5760206040515f8152f35b3461049e575f36600319011261049e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261049e576004356108d6816104e2565b906024356107b4816104e2565b3461049e576108f1366108be565b6108f96137d6565b61090161388e565b6001600160a01b038116918215158061099a575b61098b5761095c6001600160a01b0392610941836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa908115610a03575f916109d4575b506001600160a01b0380831691161415610915565b6109f6915060203d6020116109fc575b6109ee81836106e7565b81019061389f565b5f6109bf565b503d6109e4565b6138b4565b67ffffffffffffffff81116106a95760051b60200190565b9080601f8301121561049e578135610a3781610a08565b92610a4560405194856106e7565b81845260208085019260051b82010192831161049e57602001905b828210610a6d5750505090565b8135815260209182019101610a60565b9080601f8301121561049e578135610a9481610a08565b92610aa260405194856106e7565b81845260208085019260051b82010192831161049e57602001905b828210610aca5750505090565b602080918335610ad9816104e2565b815201910190610abd565b929190610af081610a08565b93610afe60405195866106e7565b602085838152019160051b810192831161049e57905b828210610b2057505050565b8135815260209182019101610b14565b9080601f8301121561049e578160206107b493359101610ae4565b606036600319011261049e57600435610b6381610599565b6024359067ffffffffffffffff821161049e5760c0600319833603011261049e57610b8c610709565b918060040135835260248101356020840152604481013567ffffffffffffffff811161049e57610bc29060043691840101610a20565b6040840152610bd3606482016105df565b6060840152610be460848201610502565b608084015260a48101359067ffffffffffffffff821161049e576004610c0d9236920101610a7d565b60a08301526044359167ffffffffffffffff831161049e57610c36610018933690600401610b30565b91612cf3565b9181601f8401121561049e5782359167ffffffffffffffff831161049e576020808501948460051b01011161049e57565b3461049e57606036600319011261049e5760043567ffffffffffffffff811161049e5780360390606060031983011261049e57602435610cac81610599565b60443567ffffffffffffffff811161049e57610ccc903690600401610c3c565b919093610cd761388e565b600484013590610182190181121561049e57610d6b94610d6693610d026004610d5f94880101612ee1565b95610d18610d136080890151613c02565b6138bf565b6044610d2388613714565b91013560208801519061016089015192610d3b610709565b998a5260208a01526040890152606088015260808701525f60a08701523691610ae4565b9083613c18565b613c9a565b6100186001606555565b3461049e575f36600319011261049e576020604051428152f35b908161018091031261049e5790565b3461049e57604036600319011261049e5760043567ffffffffffffffff811161049e57610dcf903690600401610d8f565b602435610ddb82612eec565b6001600160a01b031691610df160208201612eec565b6001600160a01b031690610e0760408201612eec565b6001600160a01b031690610e1d60608201612eec565b6001600160a01b0316610e3260808301612eec565b6001600160a01b031660e083013560c084013560a0850135610e576101008701612ef6565b93610e656101208801612ef6565b95610e736101408901612ef6565b976101608101610e8291612f00565b99909a610e8d610718565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff166101408501523690610edf92610763565b61016083015261001891339190613745565b3461049e57602036600319011261049e5760043567ffffffffffffffff811161049e57610f22903690600401610d8f565b610f2a61388e565b60ff61086b5460e01c166110db5763ffffffff421690610140810190610f6283610f5384612ef6565b63ffffffff9182169116101590565b6110cc5761012081019263ffffffff610f7a85612ef6565b16106110bd57610f92610f8d36836128a6565b613714565b90610fa6825f5261087260205260405f2090565b546110af57610fe8610fe27f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f5261087260205260405f2090565b60019055565b60608101356110a260808301359260a08101359060c081013560e08201359761101f6110196101008501359b612ef6565b91612ef6565b60408401359184359361104e611049611042602089013598610160810190612f00565b3691610763565b613d9c565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b3461049e57602036600319011261049e57600435611107816104e2565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461049e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361049e576111706137d6565b611178612682565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156111ac575061001890614877565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f9281611212575b506111dd575f80fd5b6100189261120d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f9414612f56565b6147a6565b61123591935060203d60201161123c575b61122d81836106e7565b810190613a13565b915f6111d4565b503d611223565b3461049e57608036600319011261049e5760043561126081610599565b6024359061126d826104e2565b604435611279816104e2565b60643591611286836104e2565b60ff5f5460081c161561049e576112ce90624c4b4063ffffffff19610c5a541617610c5a5563ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6040908151916112de81846106e7565b600983526020808401916820a1a927a9a996ab1960b91b8352611303815191826106e7565b600581520194640312e302e360dc1b865260ff5f5460081c161561049e57610018956005611352936113579651902091209061047f55610480556113456141c0565b61134d6141cf565b6141e3565b61423b565b77ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff00000000610c5a549260201b16911617610c5a55565b602060031982011261049e576004359067ffffffffffffffff821161049e576113c791600401610c3c565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061142157505050505090565b9091929394602080611452600193603f198682030187526040838b51805115158452015191818582015201906113cb565b97019301930191939290611412565b3461049e5761146f3661139c565b61147881610a08565b9161148660405193846106e7565b818352601f1961149583610a08565b015f5b81811061150a5750505f5b8281106114bc57604051806114b886826113ef565b0390f35b806115046114cc60019387612f5d565b515f806114da858989612f71565b906114ea60405180938193612f88565b0390305af4906114f8612f95565b60208201529015159052565b016114a3565b6020906040516115198161068d565b5f815260608382015282828801015201611498565b3461049e575f36600319011261049e5760206040516301e133808152f35b3461049e57604036600319011261049e5760243560043561156b6137d6565b61157361388e565b61086c54680100000000000000008110156106a95780600163ffffffff920161086c55836115a082612bde565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261049e576004356115ec816104e2565b60243567ffffffffffffffff811161049e5761160c903690600401610799565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461049e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361049e576116766137d6565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116aa576100189150614877565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f918161170c575b506116da575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361049e57610018916001916147a6565b61172691925060203d60201161123c5761122d81836106e7565b905f6116d1565b3461049e575f36600319011261049e5760206001600160a01b036108695416604051908152f35b3461049e575f36600319011261049e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361049e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261049e576117d66004356104e2565b6117e16024356104e2565b6117ec6044356104e2565b6117f4610669565b5061180060c435610599565b60e43567ffffffffffffffff811161049e5761080e903690600401610799565b9181601f8401121561049e5782359167ffffffffffffffff831161049e576020838186019501011161049e57565b3461049e5760c036600319011261049e5760043561186b816104e2565b6024356044359160643561187e816104e2565b60843567ffffffffffffffff811161049e5761189e903690600401611820565b9160a4359567ffffffffffffffff871161049e576118c3610018973690600401611820565b969095613017565b3461049e575f36600319011261049e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461049e575f36600319011261049e57602060ff61086b5460e81c166040519015158152f35b3461049e575f36600319011261049e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261049e5760043561198381610599565b90602435611990816104e2565b906044356107b4816104e2565b3461049e576119fa6119ae3661196b565b5f5493929091906119e060ff600887901c16156119ca565b1590565b80968197611a74575b8115611a54575b50612f56565b846119f1600160ff195f5416175f55565b611a3d57613086565b611a0057005b611a0e61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611a4f61010061ff00195f5416175f55565b613086565b303b15915081611a66575b505f6119da565b60ff1660011490505f611a5f565b600160ff82161091506119d3565b3461049e575f36600319011261049e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461049e575f36600319011261049e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461049e575f36600319011261049e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361049e57565b3461049e57602036600319011261049e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611b8681611b3c565b611b8e6137d6565b611b9661388e565b151561086b547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b1691161761086b55604051908152a16001606555005b9060206107b49281815201906113cb565b3461049e57602036600319011261049e5760043567ffffffffffffffff811161049e57611c1e903690600401611820565b611c266137d6565b611c2e61388e565b810160408282031261049e57813591611c46836104e2565b60208101359167ffffffffffffffff831161049e576001600160a01b0392611c6e9201610799565b91168015611d05576004825110611cf6575f8083516020850182855af190611c94612f95565b9115611ce7577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611cce6114b89460405191829182611bdc565b0390a2611cdb6001606555565b60405191829182611bdc565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b3461049e575f36600319011261049e57602063ffffffff610c5a5416604051908152f35b3461049e575f36600319011261049e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261049e57600435611d8d816104e2565b602435611d99816104e2565b60443591611da6836104e2565b606435611db2816104e2565b60843560e43560c43560a435611dc7836104e2565b611dcf6105a7565b93611dd86105b5565b95610144359967ffffffffffffffff8b1161049e57611dfe6100189b3690600401611820565b9a90996131b7565b61018036600319011261049e57600435611e1f816104e2565b602435611e2b816104e2565b60443591611e38836104e2565b606435611e44816104e2565b60843560a43560c435611e556104f3565b90611e5e6105a7565b92611e676105b5565b94611e706105c3565b96610164359a67ffffffffffffffff8c1161049e57611e966100189c3690600401611820565b9b909a6131d9565b3461049e57606036600319011261049e576020611ecc600435611ec0816104e2565b602435604435916132ff565b604051908152f35b3461049e57606036600319011261049e5760043560243567ffffffffffffffff811161049e57611f08903690600401611820565b9060443567ffffffffffffffff811161049e57611f29903690600401611820565b9190936040516020810190611f5281611f444689888761333d565b03601f1981018352826106e7565b51902003611fe3575f93611f6d828695611f76940190612960565b9281019061335a565b51611fad611f8b335b6001600160a01b031690565b91611f4460405193849260208401966337bfd2c960e21b885260248501613425565b5190305af4611fba612f95565b9015611fc257005b60405163b8fe37a760e01b8152908190611fdf9060048301611bdc565b0390fd5b630f0c8f4760e11b5f5260045ffd5b3461049e57602036600319011261049e5760043561200e6137d6565b61201661388e565b61201f81612bde565b612057576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261049e5760443560243560043560643560843560a4356101043560e43560c43561209b6105b5565b936120a46105c3565b956120ad6105d1565b97610184359b67ffffffffffffffff8d1161049e576120d36100189d3690600401611820565b9c909b613447565b3461049e575f36600319011261049e5760206040517342000000000000000000000000000000000000078152f35b3461049e575f36600319011261049e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461049e5760e036600319011261049e5760043567ffffffffffffffff811161049e5761217d903690600401610d8f565b602435604435916064356084359060a43567ffffffffffffffff811161049e576121ab903690600401611820565b92909160c4359667ffffffffffffffff881161049e576121d2610018983690600401611820565b9790966134bf565b3461049e576121e83661196b565b909160ff5f5460081c161561049e5761221e9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b604080519261222d82856106e7565b600984526020808501926820a1a927a9a996ab1960b91b8452612252815191826106e7565b6005815201640312e302e360dc1b815260ff5f5460081c161561049e576005611352936100189651902091209061047f55610480556113456141c0565b3461049e57602036600319011261049e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e60206004356122cf81611b3c565b6122d76137d6565b6122df61388e565b151561086b547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b1691161761086b55604051908152a16001606555005b3461049e575f36600319011261049e576020604051468152f35b3461049e575f36600319011261049e57602063ffffffff61086b5460c01c16604051908152f35b3461049e57604036600319011261049e57600435602435612386826144c4565b6001600160a01b03821691825f526108736020526123b760405f20336001600160a01b03165f5260205260405f2090565b54928315612450576124005f916123cd846144c4565b6123ea33916001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561242083612411611f7f84613c02565b61241a85613c02565b90614293565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061249157505050505090565b90919293946020806124af600193603f1986820301875289516113cb565b97019301930191939290612482565b3461049e576124cc3661139c565b906124d6826135ad565b915f5b8181106124ee57604051806114b8868261245f565b5f806124fb838587612f71565b9061250b60405180938193612f88565b0390305af4612518612f95565b901561253e579060019161252c8287612f5d565b526125378186612f5d565b50016124d9565b604481511061049e5780602480600461049e94015183010191016135f6565b61018036600319011261049e576044356024356004356064356084356101043560e43560c43560a43561258f84610599565b6125976105b5565b946125a06105c3565b96610164359a67ffffffffffffffff8c1161049e576125c66100189c3690600401611820565b9b909a613659565b3461049e57602061260c6001600160a01b036125e9366108be565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461049e57602036600319011261049e576001600160a01b0360043561263a816104e2565b165f52610c5c60205260206001600160a01b0360405f205416604051908152f35b3461049e575f36600319011261049e5760206001600160a01b0361086a5416604051908152f35b604051906126916020836106e7565b5f808352366020840137565b3461049e575f36600319011261049e576114b86126b8612682565b6040519182916020835260208301906113cb565b3461049e5760c036600319011261049e5760043560243560443560643560843567ffffffffffffffff811161049e57612709903690600401611820565b60a4939193359067ffffffffffffffff821161049e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946127526127a1933690600401611820565b92909161275d61388e565b6127668a6144c4565b612795898b8989612778368888610763565b92612784368b8b610763565b946001600160a01b03469216613db1565b60405196879687612fe4565b0390a36001606555005b3461049e576001600160a01b03806127c2366108be565b92906127cc6137d6565b6127d461388e565b1691825f52610c5d6020526128028160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461049e57602036600319011261049e576004355f52610872602052602060405f2054604051908152f35b3461049e575f36600319011261049e576020604051733b1ac69368eb6447f5db2d4e1641380fa9e40d298152f35b3461049e575f36600319011261049e57602060405163ffffffff8152f35b9190916101808184031261049e576128bc610718565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e085015261010082013561010085015261292061012083016105df565b61012085015261293361014083016105df565b61014085015261016082013567ffffffffffffffff811161049e576129589201610799565b610160830152565b9060208282031261049e57813567ffffffffffffffff811161049e576107b492016128a6565b3461049e57602036600319011261049e5760043567ffffffffffffffff811161049e57611ecc610f8d60209236906004016128a6565b3461049e575f36600319011261049e57602060ff61086b5460e01c166040519015158152f35b3461049e575f36600319011261049e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461049e57602036600319011261049e57612a3b600435612a2b816104e2565b612a336137d6565b61134d61388e565b6001606555005b3461049e57606036600319011261049e5760043567ffffffffffffffff811161049e57612a739036906004016128a6565b6024359060443590612a8361388e565b60ff61086b5460e01c166110db5761014081015163ffffffff16612ab24263ffffffff165b9163ffffffff1690565b101580612b15575b612b0657610d6b92612acb82613714565b60c083015160208401519061016085015192612ae5610709565b958652602086015260408501526060840152608083015260a0820152613d13565b630c3a9b9d60e41b5f5260045ffd5b50612b236040820151613c02565b6001600160a01b0316331415612aba565b3461049e575f36600319011261049e5760206001600160a01b03610c5a54821c16604051908152f35b61016036600319011261049e576044356024356004356064356101043560e43560c43560a435608435612b8f85610599565b6101243595612b9d87610599565b610144359967ffffffffffffffff8b1161049e57612bc26100189b3690600401611820565b9a90996137b1565b634e487b7160e01b5f52603260045260245ffd5b61086c54811015612bfc5761086c5f52600360205f20910201905f90565b612bca565b3461049e57602036600319011261049e5760043561086c5481101561049e57612c2b604091612bde565b506001815491015482519182526020820152f35b3461049e576001600160a01b0380612c56366108be565b9290612c606137d6565b612c6861388e565b1691825f52610c5c602052612c968160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461049e57602036600319011261049e57612a3b600435612ce3816104e2565b612ceb6137d6565b61135261388e565b9190612cfd61388e565b60808101612d15610d1382516001600160a01b031690565b602082019283514603612e15576119c6612d3d91846001612d3589612bde565b500154613933565b612e065763ffffffff7ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e91612df96060850195612d87612d81885163ffffffff1690565b896139b7565b8051958051612de3612dd5612dc4604085019a8c612dab8d51915163ffffffff1690565b8a516001600160a01b03169160a0890197885194613a2f565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612e93565b0390a46105006001606555565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612e415750505090565b8251845260209384019390920191600101612e34565b90602080835192838152019201905f5b818110612e745750505090565b82516001600160a01b0316845260209384019390920191600101612e67565b949695919260a0946001600160a01b03612ebf8196612ed3958a5260c060208b015260c08a0190612e24565b921660408801528682036060880152612e57565b951515608085015216910152565b6107b49036906128a6565b356107b4816104e2565b356107b481610599565b903590601e198136030182121561049e570180359067ffffffffffffffff821161049e5760200191813603831361049e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612f5157565b612f33565b1561049e57565b8051821015612bfc5760209160051b010190565b90821015612bfc576113c79160051b810190612f00565b908092918237015f815290565b3d15612fbf573d90612fa682610747565b91612fb460405193846106e7565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093613009926107b4979587526020870152608060408701526080860191612fc4565b926060818503910152612fc4565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b039586613081959a9499166130738a8c8361305e368888610763565b9161306a368b8b610763565b9346908d613db1565b604051978897169a87612fe4565b0390a3565b91909160ff5f5460081c161561049e576130d190624c4b4063ffffffff19610c5a541617610c5a5563ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b60408051926130e082856106e7565b600984526020808501926820a1a927a9a996ab1960b91b8452613105815191826106e7565b6005815201640312e302e360dc1b815260ff5f5460081c161561049e576005611352936131429651902091209061047f55610480556113456141c0565b61050077deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019610c5a541617610c5a55565b634e487b7160e01b5f52601160045260245ffd5b9063ffffffff8091169116019063ffffffff82116131b257565b613184565b96949290916105009b9a99989694926131d763ffffffff42169889613198565b985b9593919b999897969492909b6131ed61388e565b61086b5460ff8160e81c166132f05760c01c63ffffffff169661320f886136fd565b6132369063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b61323e610728565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff166101008701526101208601906132b4919063ffffffff169052565b63ffffffff1661014085015263ffffffff1661016084015236906132d792610763565b6101808201526132e690613ef3565b6105006001606555565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b16845260348301526054820152605481526133376074826106e7565b51902090565b93929160209161335591604087526040870191612fc4565b930152565b9081602091031261049e57604051906020820182811067ffffffffffffffff8211176106a95760405235815290565b906101806101606107b493805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e085015261010081015161010085015261340361012082015161012086019063ffffffff169052565b6101408181015163ffffffff16908501520151918161016082015201906113cb565b61343d60409295949395606083526060830190613389565b9460208201520152565b9c9a999897969594939291909661345c61388e565b60ff61086b5460e81c166132f057613475908e336132ff565b96604051809e613484826106ae565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132b4565b9792909596949391966134d061388e565b60ff61086b5460e01c166110db576134eb6101408a01612ef6565b6134fa4263ffffffff16612aa8565b10158061358e575b612b06576132e6986135836135899761351e610f8d36856128a6565b99613527610709565b9a61353236866128a6565b8c5260208c01528560408c01528660608c015261355036868b610763565b60808c015260a08b015261357b6135678435613c02565b9860e0610100860135950135953691610763565b963691610763565b95613db1565b613d13565b5061359c60408a0135613c02565b6001600160a01b0316331415613502565b906135b782610a08565b6135c460405191826106e7565b82815280926135d5601f1991610a08565b01905f5b8281106135e557505050565b8060606020809385010152016135d9565b60208183031261049e5780519067ffffffffffffffff821161049e570181601f8201121561049e5780519061362a82610747565b9261363860405194856106e7565b8284526020838301011161049e57815f9260208093018386015e8301015290565b9b9998979694929095939161366c61388e565b61086b5460ff8160e81c166132f05760c01c63ffffffff169661368e886136fd565b6136b59063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6136bd610728565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff908116610100880152166101208601526132b4565b63ffffffff1663ffffffff81146131b25760010190565b604051613337816137316020820194604086526060830190613389565b46604083015203601f1981018352826106e7565b91909161375061388e565b60ff61086b5460e01c166110db5761014081015163ffffffff166137794263ffffffff16612aa8565b101580613792575b612b06576132e692612acb82613714565b506137a06040820151613c02565b6001600160a01b0316331415613781565b9a989795929693909491966137cd63ffffffff42169788613198565b9761366c61388e565b734200000000000000000000000000000000000007330361387f57604051636e296e4560e01b81526020816004817342000000000000000000000000000000000000075afa908115610a03575f91613860575b506001600160a01b03613848611f7f610869546001600160a01b031690565b91160361385157565b6336a816d960e01b5f5260045ffd5b613879915060203d6020116109fc576109ee81836106e7565b5f613829565b63253a6fc960e11b5f5260045ffd5b60026065541461049e576002606555565b9081602091031261049e57516107b4816104e2565b6040513d5f823e3d90fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911681146138f6575b50565b476138fe5750565b4790803b1561049e575f90600460405180948193630d0e30db60e41b83525af18015610a0357156138f3575f610500916106e7565b6107b492916040516139ae81611f44602082019460208652805160408401526020810151606084015260a0613978604083015160c06080870152610100860190612e24565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612e57565b519020916142db565b6139c2600291612bde565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b8080921614613a0457825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b9081602091031261049e575190565b919082018092116131b257565b91959495939092935f9681519081815103613bf35781613aae575b50505082613a59575b50505050565b63ffffffff613a90611f7f83611f7f7ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb357958861439e565b6040805195865233602087015290959190911693a45f808080613a53565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa908115610a03575f91613bd4575b505f5f5b848110613af457505050613a4a565b613afe8187612f5d565b51613b0c575b600101613ae5565b90613b2290613b1b8388612f5d565b5190613a22565b90828211613bc557613b5c6119c6613b4a613b3d8488612f5d565b516001600160a01b031690565b613b54848a612f5d565b51908a61432c565b15613b04579a50613b6d8b86612f5d565b51613bbb613bb38d613b9e613b3d613b978c6001600160a01b03165f5261087360205260405f2090565b9289612f5d565b6001600160a01b03165f5260205260405f2090565b918254613a22565b905560019a613b04565b632ddaa83160e11b5f5260045ffd5b613bed915060203d60201161123c5761122d81836106e7565b5f613ae1565b6319a5316760e31b5f5260045ffd5b6001600160a01b0390613c14816144c4565b1690565b916119c691613c9493604081519101519160405191613c36836106cb565b82526139ae613c52602084019246845260408501958652612bde565b505493604051928391613c79602084019660208852516060604086015260a0850190613389565b9151606084015251608083015203601f1981018352826106e7565b612e0657565b805163ffffffff6101208201511663ffffffff429116106110bd576020820151906002613cd0835f5261087260205260405f2090565b5414613d0457610500926002613cf16001945f5261087260205260405f2090565b55613cff60025f8484614571565b614673565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff429116106110bd576020830151926001613d4a855f5261087260205260405f2090565b5403613d95576001935b6002613d69825f5261087260205260405f2090565b5414613d0457610500945f946002613d8d613cff945f5261087260205260405f2090565b558484614571565b5f93613d54565b80519081613daa5750505f90565b6020012090565b9392604293610500979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613e1860e0826106e7565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613e7060a0826106e7565b519020906040519161190160f01b83526002830152602282015220906148d8565b919082039182116131b257565b9692610140989563ffffffff9586949285936107b49e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e08301526101008201528161012082015201906113cb565b613efd81516144c4565b60608101908151156141b257610120810190613f29613f20835163ffffffff1690565b63ffffffff1690565b804210908115614179575b5061416a57610140810192613f4d845163ffffffff1690565b63ffffffff613f7e817f00000000000000000000000000000000000000000000000000000000000000001642613a22565b91161161415b5761016082015163ffffffff16918280614118575b5060408101918251926001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168094148061410f575b156140bf57608083015134036140b057833b1561049e575f60049460405195868092630d0e30db60e41b825234905af1908115610a03577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39461409192614096575b505b5191519260808101519060a081015160c0820151976140706140656101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613e9e565b0390a4565b806140a45f6140aa936106e7565b80610494565b5f614037565b636452a35d60e01b5f5260045ffd5b9250346140b0576140918361410a6140fb611f7f7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39751613c02565b608086015190309033906149c4565b614039565b50341515613fd5565b6301e133801015614143575b60e081015115614134575f613f99565b63495d907f60e01b5f5260045ffd5b916141559063ffffffff421690613198565b91614124565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b614184915042613e91565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613f34565b6231010160e51b5f5260045ffd5b60ff5f5460081c161561049e57565b60ff5f5460081c161561049e576001606555565b6001600160a01b0316801561422c57806001600160a01b0319610869541617610869557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b0316801561428457806001600160a01b031961086a54161761086a557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b60405163a9059cbb60e01b60208201526001600160a01b0390921660248301526044820192909252610500916142d682606481015b03601f1981018452836106e7565b614a05565b929091905f915b8451831015614324576142f58386612f5d565b519081811015614313575f52602052600160405f205b9201916142e2565b905f52602052600160405f2061430b565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f916143688160648101611f44565b519082855af1903d5f51908361437f575b50505090565b9192509061439457503b15155b5f8080614379565b600191501461438c565b907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b0382166001600160a01b0382161480614493575b156144885750816143ec91614e5f565b61086a546001600160a01b0316610c5a5463ffffffff1691733b1ac69368eb6447f5db2d4e1641380fa9e40d293b1561049e5760405163262cc5ab60e11b81526001600160a01b03929092166004830152602482015263ffffffff9190911660448201525f8160648183733b1ac69368eb6447f5db2d4e1641380fa9e40d295af18015610a035761447a5750565b806140a45f610500936106e7565b905061050091614a96565b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016156143dc565b60a01c6144cd57565b6379ec0ed760e11b5f5260045ffd5b6144e582612f47565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a0830152606001519061456a82612f47565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720890939293606083015161409160808501519260a08601519660c08701519660a08301519860e0820151986101008301519a6145d561012085015163ffffffff1690565b61014085015163ffffffff169160408601519386519561463961460161016060208b01519a0151613d9c565b9960608c01519b60406146176080830151613d9c565b910151906020614625610738565b9e8f528e015260408d015260608c016144dc565b6040519c8d9c8d6144e8565b906107b494936080936001600160a01b038093168452602084015216604082015281606082015201906113cb565b906080614681910151613c02565b9160806040830151926146976060820151613c02565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f14614788575015614774575b6146f291506001600160a01b038516614fa3565b015190815115158061476a575b6147095750505050565b6001600160a01b0316803b1561049e5761473f935f809460405196879586948593633a5be8cb60e01b8552339160048601614645565b03925af18015610a0357614756575b808080613a53565b806140a45f614764936106e7565b5f61474e565b50803b15156146ff565b61478191309033906149c4565b5f846146de565b9061479d576147989233906149c4565b6146f2565b61479892614293565b916147b083614877565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28151159081159161486f575b506147f3575050565b6138f3915f80604051936148086060866106e7565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af4614869612f95565b91615416565b90505f6147ea565b803b1561049e576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b9190916148e582846153c5565b9390926005851015612f515761490e941593846149ae575b508315614923575b50505015151590565b61491457565b63938a182160e01b5f5260045ffd5b5f935090611f4461495b8594936040519283916020830195630b135d3f60e11b875260248401526040604484015260648301906113cb565b51915afa614967612f95565b816149a0575b8161497c575b505f8080614905565b9050614999630b135d3f60e11b9160208082518301019101613a13565b145f614973565b90506020815110159061496d565b6001600160a01b0384811691161493505f6148fd565b9091926001600160a01b036105009481604051956323b872dd60e01b60208801521660248601521660448401526064830152606482526142d66084836106e7565b906001600160a01b03614a6092165f8060405193614a246040866106e7565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af1614869612f95565b80518015918215614a75575b50501561049e57565b60208181019350918101031261049e5751614a8f81611b3c565b5f80614a6c565b906001600160a01b038116906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682145f14614be25750803b1561049e57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610a0357614bce575b50610c5a54602081901c6001600160a01b031691614b3d614b3361086a546001600160a01b031690565b9263ffffffff1690565b927342000000000000000000000000000000000000103b1561049e57604051631474f2a960e31b81526001600160a01b039182166004820152921660248301526044820181905263ffffffff92909216606482015260a060848201525f60a482018190529091829060c49082907342000000000000000000000000000000000000105af18015610a035761447a5750565b806140a45f614bdc936106e7565b5f614b09565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316151580614e2d575b15614c3857505061050090614c3361086a546001600160a01b031690565b61507f565b6001600160a01b03614c6c614c5f846001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16614e01576001600160a01b037342000000000000000000000000000000000000105b1690614cb3611f7f614c5f856001600160a01b03165f52610c5d60205260405f2090565b15614d7b578382614cc392614f1d565b614ce2614c5f836001600160a01b03165f52610c5d60205260405f2090565b90614cf661086a546001600160a01b031690565b91614d07610c5a5463ffffffff1690565b823b1561049e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015610a035761447a5750565b5091614d9061086a546001600160a01b031690565b92614da1610c5a5463ffffffff1690565b93813b1561049e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614d6a565b6001600160a01b03614e28614c5f846001600160a01b03165f52610c5c60205260405f2090565b614c8f565b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168114614c15565b604051636eb1769f60e11b8152306004820152733b1ac69368eb6447f5db2d4e1641380fa9e40d29602482015291906020836044816001600160a01b0385165afa8015610a0357614ec26142c8936142d692610500965f91614efe575b50613a22565b60405163095ea7b360e01b6020820152733b1ac69368eb6447f5db2d4e1641380fa9e40d29602482015260448101919091529283906064820190565b614f17915060203d60201161123c5761122d81836106e7565b5f614ebc565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa908115610a0357610500946142d692614f74925f91614efe5750613a22565b60405163095ea7b360e01b60208201526001600160a01b039094166024850152604484015282606481016142c8565b906001600160a01b038216803b158015615070575b1561503c57506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561049e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a035761050093615028575b5061539d565b806140a45f615036936106e7565b5f615022565b61050092506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016614293565b5061507a8161532b565b614fb8565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926150e0838584614f1d565b6040516332dd704760e21b815291602083600481885afa928315610a03575f93615301575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa928315610a03575f936152e0575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b61517757505050505050565b838111156152da57835b851561523657863b1561049e57604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af1928315610a035761521c93615222575b50613e91565b8061516b565b806140a45f615230936106e7565b5f615216565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af1928315610a035761521c936152ac5750613e91565b6152cc9060203d81116152d3575b6152c481836106e7565b8101906153f6565b505f615216565b503d6152ba565b80615181565b6152fa91935060203d60201161123c5761122d81836106e7565b915f615145565b6001600160a01b039193506153249060203d6020116109fc576109ee81836106e7565b9290615105565b803b61533681610747565b9061534460405192836106e7565b8082525f6020830180943c5190516001600160e81b0319811691906003821061537e575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f80615368565b81471061049e575f8080936001600160a01b038294165af16153bd612f95565b501561049e57565b9060418151145f146153ed576113c791602082015190606060408401519301515f1a90615441565b50505f90600290565b9081602091031261049e575167ffffffffffffffff8116810361049e5790565b9192501561543257815115615429575090565b3b1561049e5790565b50805190811561049e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116154b1576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a03575f516001600160a01b038116156154a957905f90565b505f90600190565b505050505f9060039056fea2646970667358221220f840bb3d2b138efe2f438f762774700bc6af03b77210ecf067a6279e44de530f64736f6c634300081e0033"}
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":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"USDC_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"__OvmSpokePool_init","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"},{"name":"_l2Eth","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l1Gas","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"l2Eth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"remoteL1Tokens","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"setL1GasLimit","inputs":[{"name":"newl1Gas","type":"uint32","internalType":"uint32"}],"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":"setRemoteL1Token","inputs":[{"name":"l2Token","type":"address","internalType":"address"},{"name":"l1Token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTokenBridge","inputs":[{"name":"l2Token","type":"address","internalType":"address"},{"name":"tokenBridge","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":"tokenBridges","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"SetL1Gas","inputs":[{"name":"newL1Gas","type":"uint32","indexed":true,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"SetL2TokenBridge","inputs":[{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"tokenBridge","type":"address","indexed":true,"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":"SetRemoteL1Token","inputs":[{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"l1Token","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":"NotCrossChainCall","inputs":[]},{"type":"error","name":"NotCrossDomainAdmin","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":"0x6101c080604052346102be5760a08161586f803803809161002082856102c2565b8339810103126102be5780516001600160a01b038116908190036102be5761004a602083016102e5565b90610057604084016102e5565b6060840151936001600160a01b03851685036102be5760800151926001600160a01b038416928385036102be57306080525f60c0525f60a05260e05261010052610120525f549160ff8360081c166102be575f938360ff8087961603610284575b5061016052610180528161014052604051602081019063011a412160e61b8252600481526100e76024826102c2565b51915afa3d1561027d573d6001600160401b0381116102695760405190610118601f8201601f1916602001836102c2565b81523d5f602083013e5b8161025d575b81610227575b506101a05260405161557890816102f7823960805181818161111101528181611617015261176e015260a05181611948015260c05181611b18015260e05181818161089a015281816138c601528181613fa9015281816146ea01528181614aa401528181614fd301526150560152610100518181816118e701526141880152610120518181816104be0152613f55015261014051818181611ad8015281816151ff01526152a701526101605181818161083d015281816143dc01528181614e3001526150e6015261018051818181612128015281816144d901528181614bdd015261510f01526101a051818181611d4f01526151a50152f35b905060208151910151906020811061024c575b506001600160a01b031615155f61012e565b5f199060200360031b1b165f61023a565b80516020149150610128565b634e487b7160e01b5f52604160045260245ffd5b6060610122565b60ff908119161784557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6100b8565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761026957604052565b519063ffffffff821682036102be5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461048f5780630c5d5f731461048a5780630cb84d9a146104855780630eaac9f0146104805780631186ec331461047b57806311eac8551461047657806315348e441461040357806317fcb39b1461047157806319c1648c1461046c5780631b3d5559146104675780631fab657c1461046257806329cb924d1461045d5780632e378115146104585780632e63e59a146104535780633659cfe61461044e578063431023b814610449578063437b911614610444578063490e49ef1461043f578063493a4f841461043a5780634f1ef286146104355780635285e0581461043057806352d1902d1461042b578063541f4f1414610426578063577f51f81461042157806357f6dcb81461041c5780636068d6cb1461041757806361a04d3014610412578063647c576c1461040d578063670fa8ac146104085780636bbbcd2e146104035780636e400983146103fe5780636fd5c10e146103f9578063738b62e5146103f45780637659f9e0146103ef578063766e0703146103ea578063775c0d03146103e55780637aef642c146103e05780637b939232146103db5780637ef413e1146103d657806382e2c43f146103d15780638a7860ce146103cc5780638b15788e146103c7578063927ede2d146103c25780639748cf7c146103bd57806397943aa9146103b8578063979f2bc2146103b357806399cc2968146103ae5780639a8a0592146103a9578063a1244c67146103a4578063a18a096e1461039f578063ac9650d81461039a578063ad5425c614610395578063adb5a6a614610340578063b27a430014610390578063b370b7f51461038b578063b4c0d7ab14610386578063babb6aac14610381578063bf10268d1461037c578063c35c83fc14610377578063c7b0637014610372578063ceb4c9871461036d578063d7e1583a14610368578063dda5211314610363578063ddd224f11461035e578063de7eba7814610359578063deff4b2414610354578063e32292111461034f578063ea86bd461461034a578063ee2a53f814610345578063f79f29ed14610340578063fbbba9ac1461033b5763fc8a584f0361000e57612cc0565b612c3c565b6125cb565b612bfe565b612b5a565b612b31565b612a3f565b612a08565b6129df565b6129b9565b612983565b612885565b612857565b61282c565b6127a8565b6126c9565b61269a565b612658565b612612565b61255a565b6124bb565b612366565b61233f565b612325565b61228f565b6121da565b61214c565b612109565b6120db565b61206a565b611ff2565b611ed4565b611e9e565b611e06565b611d74565b611d38565b611d14565b611bed565b611b46565b611afc565b611abc565b610861565b611a82565b61199d565b611931565b61190b565b6118cb565b61184e565b6117be565b611754565b61172d565b6115d4565b61154c565b61152e565b611461565b611243565b6110ea565b610ef1565b610d9e565b610d75565b610c6d565b610b4b565b6108e3565b61087b565b61081e565b6107b7565b6105ea565b610553565b61050d565b6104a2565b5f91031261049e57565b5f80fd5b3461049e575f36600319011261049e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361049e57565b60e43590610500826104e2565b565b3590610500826104e2565b3461049e57602036600319011261049e576001600160a01b03600435610532816104e2565b165f52610c5d60205260206001600160a01b0360405f205416604051908152f35b3461049e57602036600319011261049e576001600160a01b03600435610578816104e2565b165f5261087460205260206001600160a01b0360405f205416604051908152f35b63ffffffff81160361049e57565b610104359061050082610599565b610124359061050082610599565b610144359061050082610599565b610164359061050082610599565b359061050082610599565b3461049e57602036600319011261049e5763ffffffff60043561060c81610599565b6106146137d3565b61061c61388b565b168063ffffffff19610c5a541617610c5a557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b608435908160070b820361049e57565b60a435908160070b820361049e57565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176106a957604052565b610679565b6101a0810190811067ffffffffffffffff8211176106a957604052565b6060810190811067ffffffffffffffff8211176106a957604052565b90601f8019910116810190811067ffffffffffffffff8211176106a957604052565b6040519061050060c0836106e7565b60405190610500610180836106e7565b604051906105006101a0836106e7565b604051906105006080836106e7565b67ffffffffffffffff81116106a957601f01601f191660200190565b92919261076f82610747565b9161077d60405193846106e7565b82948184528183011161049e578281602093845f960137010152565b9080601f8301121561049e578160206107b493359101610763565b90565b61010036600319011261049e576107cf6004356104e2565b6107da6024356104e2565b6107e2610659565b506107ee60a435610599565b60c43567ffffffffffffffff811161049e5761080e903690600401610799565b506332ed1ba560e21b5f5260045ffd5b3461049e575f36600319011261049e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461049e575f36600319011261049e5760206040515f8152f35b3461049e575f36600319011261049e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261049e576004356108d6816104e2565b906024356107b4816104e2565b3461049e576108f1366108be565b6108f96137d3565b61090161388b565b6001600160a01b038116918215158061099a575b61098b5761095c6001600160a01b0392610941836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa908115610a03575f916109d4575b506001600160a01b0380831691161415610915565b6109f6915060203d6020116109fc575b6109ee81836106e7565b81019061389c565b5f6109bf565b503d6109e4565b6138b1565b67ffffffffffffffff81116106a95760051b60200190565b9080601f8301121561049e578135610a3781610a08565b92610a4560405194856106e7565b81845260208085019260051b82010192831161049e57602001905b828210610a6d5750505090565b8135815260209182019101610a60565b9080601f8301121561049e578135610a9481610a08565b92610aa260405194856106e7565b81845260208085019260051b82010192831161049e57602001905b828210610aca5750505090565b602080918335610ad9816104e2565b815201910190610abd565b929190610af081610a08565b93610afe60405195866106e7565b602085838152019160051b810192831161049e57905b828210610b2057505050565b8135815260209182019101610b14565b9080601f8301121561049e578160206107b493359101610ae4565b606036600319011261049e57600435610b6381610599565b6024359067ffffffffffffffff821161049e5760c0600319833603011261049e57610b8c610709565b918060040135835260248101356020840152604481013567ffffffffffffffff811161049e57610bc29060043691840101610a20565b6040840152610bd3606482016105df565b6060840152610be460848201610502565b608084015260a48101359067ffffffffffffffff821161049e576004610c0d9236920101610a7d565b60a08301526044359167ffffffffffffffff831161049e57610c36610018933690600401610b30565b91612cf0565b9181601f8401121561049e5782359167ffffffffffffffff831161049e576020808501948460051b01011161049e57565b3461049e57606036600319011261049e5760043567ffffffffffffffff811161049e5780360390606060031983011261049e57602435610cac81610599565b60443567ffffffffffffffff811161049e57610ccc903690600401610c3c565b919093610cd761388b565b600484013590610182190181121561049e57610d6b94610d6693610d026004610d5f94880101612ede565b95610d18610d136080890151613bff565b6138bc565b6044610d2388613711565b91013560208801519061016089015192610d3b610709565b998a5260208a01526040890152606088015260808701525f60a08701523691610ae4565b9083613c15565b613c97565b6100186001606555565b3461049e575f36600319011261049e576020604051428152f35b908161018091031261049e5790565b3461049e57604036600319011261049e5760043567ffffffffffffffff811161049e57610dcf903690600401610d8f565b602435610ddb82612ee9565b6001600160a01b031691610df160208201612ee9565b6001600160a01b031690610e0760408201612ee9565b6001600160a01b031690610e1d60608201612ee9565b6001600160a01b0316610e3260808301612ee9565b6001600160a01b031660e083013560c084013560a0850135610e576101008701612ef3565b93610e656101208801612ef3565b95610e736101408901612ef3565b976101608101610e8291612efd565b99909a610e8d610718565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff166101408501523690610edf92610763565b61016083015261001891339190613742565b3461049e57602036600319011261049e5760043567ffffffffffffffff811161049e57610f22903690600401610d8f565b610f2a61388b565b60ff61086b5460e01c166110db5763ffffffff421690610140810190610f6283610f5384612ef3565b63ffffffff9182169116101590565b6110cc5761012081019263ffffffff610f7a85612ef3565b16106110bd57610f92610f8d36836128a3565b613711565b90610fa6825f5261087260205260405f2090565b546110af57610fe8610fe27f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f5261087260205260405f2090565b60019055565b60608101356110a260808301359260a08101359060c081013560e08201359761101f6110196101008501359b612ef3565b91612ef3565b60408401359184359361104e611049611042602089013598610160810190612efd565b3691610763565b613d99565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b3461049e57602036600319011261049e57600435611107816104e2565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461049e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361049e576111706137d3565b61117861267f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156111ac5750610018906148b4565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f9281611212575b506111dd575f80fd5b6100189261120d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f9414612f53565b6147e3565b61123591935060203d60201161123c575b61122d81836106e7565b810190613a10565b915f6111d4565b503d611223565b3461049e57608036600319011261049e5760043561126081610599565b6024359061126d826104e2565b604435611279816104e2565b60643591611286836104e2565b60ff5f5460081c161561049e576112ce90624c4b4063ffffffff19610c5a541617610c5a5563ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6040908151916112de81846106e7565b600983526020808401916820a1a927a9a996ab1960b91b8352611303815191826106e7565b600581520194640312e302e360dc1b865260ff5f5460081c161561049e57610018956005611352936113579651902091209061047f55610480556113456141bd565b61134d6141cc565b6141e0565b614238565b77ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff00000000610c5a549260201b16911617610c5a55565b602060031982011261049e576004359067ffffffffffffffff821161049e576113c791600401610c3c565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061142157505050505090565b9091929394602080611452600193603f198682030187526040838b51805115158452015191818582015201906113cb565b97019301930191939290611412565b3461049e5761146f3661139c565b61147881610a08565b9161148660405193846106e7565b818352601f1961149583610a08565b015f5b81811061150a5750505f5b8281106114bc57604051806114b886826113ef565b0390f35b806115046114cc60019387612f5a565b515f806114da858989612f6e565b906114ea60405180938193612f85565b0390305af4906114f8612f92565b60208201529015159052565b016114a3565b6020906040516115198161068d565b5f815260608382015282828801015201611498565b3461049e575f36600319011261049e5760206040516301e133808152f35b3461049e57604036600319011261049e5760243560043561156b6137d3565b61157361388b565b61086c54680100000000000000008110156106a95780600163ffffffff920161086c55836115a082612bdb565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261049e576004356115ec816104e2565b60243567ffffffffffffffff811161049e5761160c903690600401610799565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461049e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361049e576116766137d3565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116aa5761001891506148b4565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f918161170c575b506116da575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361049e57610018916001916147e3565b61172691925060203d60201161123c5761122d81836106e7565b905f6116d1565b3461049e575f36600319011261049e5760206001600160a01b036108695416604051908152f35b3461049e575f36600319011261049e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361049e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261049e576117d66004356104e2565b6117e16024356104e2565b6117ec6044356104e2565b6117f4610669565b5061180060c435610599565b60e43567ffffffffffffffff811161049e5761080e903690600401610799565b9181601f8401121561049e5782359167ffffffffffffffff831161049e576020838186019501011161049e57565b3461049e5760c036600319011261049e5760043561186b816104e2565b6024356044359160643561187e816104e2565b60843567ffffffffffffffff811161049e5761189e903690600401611820565b9160a4359567ffffffffffffffff871161049e576118c3610018973690600401611820565b969095613014565b3461049e575f36600319011261049e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461049e575f36600319011261049e57602060ff61086b5460e81c166040519015158152f35b3461049e575f36600319011261049e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261049e5760043561198381610599565b90602435611990816104e2565b906044356107b4816104e2565b3461049e576119fa6119ae3661196b565b5f5493929091906119e060ff600887901c16156119ca565b1590565b80968197611a74575b8115611a54575b50612f53565b846119f1600160ff195f5416175f55565b611a3d57613083565b611a0057005b611a0e61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611a4f61010061ff00195f5416175f55565b613083565b303b15915081611a66575b505f6119da565b60ff1660011490505f611a5f565b600160ff82161091506119d3565b3461049e575f36600319011261049e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461049e575f36600319011261049e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461049e575f36600319011261049e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361049e57565b3461049e57602036600319011261049e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611b8681611b3c565b611b8e6137d3565b611b9661388b565b151561086b547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b1691161761086b55604051908152a16001606555005b9060206107b49281815201906113cb565b3461049e57602036600319011261049e5760043567ffffffffffffffff811161049e57611c1e903690600401611820565b611c266137d3565b611c2e61388b565b810160408282031261049e57813591611c46836104e2565b60208101359167ffffffffffffffff831161049e576001600160a01b0392611c6e9201610799565b91168015611d05576004825110611cf6575f8083516020850182855af190611c94612f92565b9115611ce7577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611cce6114b89460405191829182611bdc565b0390a2611cdb6001606555565b60405191829182611bdc565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b3461049e575f36600319011261049e57602063ffffffff610c5a5416604051908152f35b3461049e575f36600319011261049e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261049e57600435611d8d816104e2565b602435611d99816104e2565b60443591611da6836104e2565b606435611db2816104e2565b60843560e43560c43560a435611dc7836104e2565b611dcf6105a7565b93611dd86105b5565b95610144359967ffffffffffffffff8b1161049e57611dfe6100189b3690600401611820565b9a90996131b4565b61018036600319011261049e57600435611e1f816104e2565b602435611e2b816104e2565b60443591611e38836104e2565b606435611e44816104e2565b60843560a43560c435611e556104f3565b90611e5e6105a7565b92611e676105b5565b94611e706105c3565b96610164359a67ffffffffffffffff8c1161049e57611e966100189c3690600401611820565b9b909a6131d6565b3461049e57606036600319011261049e576020611ecc600435611ec0816104e2565b602435604435916132fc565b604051908152f35b3461049e57606036600319011261049e5760043560243567ffffffffffffffff811161049e57611f08903690600401611820565b9060443567ffffffffffffffff811161049e57611f29903690600401611820565b9190936040516020810190611f5281611f444689888761333a565b03601f1981018352826106e7565b51902003611fe3575f93611f6d828695611f7694019061295d565b92810190613357565b51611fad611f8b335b6001600160a01b031690565b91611f4460405193849260208401966337bfd2c960e21b885260248501613422565b5190305af4611fba612f92565b9015611fc257005b60405163b8fe37a760e01b8152908190611fdf9060048301611bdc565b0390fd5b630f0c8f4760e11b5f5260045ffd5b3461049e57602036600319011261049e5760043561200e6137d3565b61201661388b565b61201f81612bdb565b612057576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261049e5760443560243560043560643560843560a4356101043560e43560c43561209b6105b5565b936120a46105c3565b956120ad6105d1565b97610184359b67ffffffffffffffff8d1161049e576120d36100189d3690600401611820565b9c909b613444565b3461049e575f36600319011261049e5760206040517342000000000000000000000000000000000000078152f35b3461049e575f36600319011261049e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461049e5760e036600319011261049e5760043567ffffffffffffffff811161049e5761217d903690600401610d8f565b602435604435916064356084359060a43567ffffffffffffffff811161049e576121ab903690600401611820565b92909160c4359667ffffffffffffffff881161049e576121d2610018983690600401611820565b9790966134bc565b3461049e576121e83661196b565b909160ff5f5460081c161561049e5761221e9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b604080519261222d82856106e7565b600984526020808501926820a1a927a9a996ab1960b91b8452612252815191826106e7565b6005815201640312e302e360dc1b815260ff5f5460081c161561049e576005611352936100189651902091209061047f55610480556113456141bd565b3461049e57602036600319011261049e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e60206004356122cf81611b3c565b6122d76137d3565b6122df61388b565b151561086b547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b1691161761086b55604051908152a16001606555005b3461049e575f36600319011261049e576020604051468152f35b3461049e575f36600319011261049e57602063ffffffff61086b5460c01c16604051908152f35b3461049e57604036600319011261049e57600435602435612386826144ff565b6001600160a01b03821691825f526108736020526123b760405f20336001600160a01b03165f5260205260405f2090565b5492831561244d576124005f916123cd846144ff565b6123ea33916001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561241d8361240e83613bff565b61241785613bff565b90614290565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061248e57505050505090565b90919293946020806124ac600193603f1986820301875289516113cb565b9701930193019193929061247f565b3461049e576124c93661139c565b906124d3826135aa565b915f5b8181106124eb57604051806114b8868261245c565b5f806124f8838587612f6e565b9061250860405180938193612f85565b0390305af4612515612f92565b901561253b57906001916125298287612f5a565b526125348186612f5a565b50016124d6565b604481511061049e5780602480600461049e94015183010191016135f3565b61018036600319011261049e576044356024356004356064356084356101043560e43560c43560a43561258c84610599565b6125946105b5565b9461259d6105c3565b96610164359a67ffffffffffffffff8c1161049e576125c36100189c3690600401611820565b9b909a613656565b3461049e5760206126096001600160a01b036125e6366108be565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461049e57602036600319011261049e576001600160a01b03600435612637816104e2565b165f52610c5c60205260206001600160a01b0360405f205416604051908152f35b3461049e575f36600319011261049e5760206001600160a01b0361086a5416604051908152f35b6040519061268e6020836106e7565b5f808352366020840137565b3461049e575f36600319011261049e576114b86126b561267f565b6040519182916020835260208301906113cb565b3461049e5760c036600319011261049e5760043560243560443560643560843567ffffffffffffffff811161049e57612706903690600401611820565b60a4939193359067ffffffffffffffff821161049e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461274f61279e933690600401611820565b92909161275a61388b565b6127638a6144ff565b612792898b8989612775368888610763565b92612781368b8b610763565b946001600160a01b03469216613dae565b60405196879687612fe1565b0390a36001606555005b3461049e576001600160a01b03806127bf366108be565b92906127c96137d3565b6127d161388b565b1691825f52610c5d6020526127ff8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461049e57602036600319011261049e576004355f52610872602052602060405f2054604051908152f35b3461049e575f36600319011261049e576020604051733b1ac69368eb6447f5db2d4e1641380fa9e40d298152f35b3461049e575f36600319011261049e57602060405163ffffffff8152f35b9190916101808184031261049e576128b9610718565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e085015261010082013561010085015261291d61012083016105df565b61012085015261293061014083016105df565b61014085015261016082013567ffffffffffffffff811161049e576129559201610799565b610160830152565b9060208282031261049e57813567ffffffffffffffff811161049e576107b492016128a3565b3461049e57602036600319011261049e5760043567ffffffffffffffff811161049e57611ecc610f8d60209236906004016128a3565b3461049e575f36600319011261049e57602060ff61086b5460e01c166040519015158152f35b3461049e575f36600319011261049e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461049e57602036600319011261049e57612a38600435612a28816104e2565b612a306137d3565b61134d61388b565b6001606555005b3461049e57606036600319011261049e5760043567ffffffffffffffff811161049e57612a709036906004016128a3565b6024359060443590612a8061388b565b60ff61086b5460e01c166110db5761014081015163ffffffff16612aaf4263ffffffff165b9163ffffffff1690565b101580612b12575b612b0357610d6b92612ac882613711565b60c083015160208401519061016085015192612ae2610709565b958652602086015260408501526060840152608083015260a0820152613d10565b630c3a9b9d60e41b5f5260045ffd5b50612b206040820151613bff565b6001600160a01b0316331415612ab7565b3461049e575f36600319011261049e5760206001600160a01b03610c5a54821c16604051908152f35b61016036600319011261049e576044356024356004356064356101043560e43560c43560a435608435612b8c85610599565b6101243595612b9a87610599565b610144359967ffffffffffffffff8b1161049e57612bbf6100189b3690600401611820565b9a90996137ae565b634e487b7160e01b5f52603260045260245ffd5b61086c54811015612bf95761086c5f52600360205f20910201905f90565b612bc7565b3461049e57602036600319011261049e5760043561086c5481101561049e57612c28604091612bdb565b506001815491015482519182526020820152f35b3461049e576001600160a01b0380612c53366108be565b9290612c5d6137d3565b612c6561388b565b1691825f52610c5c602052612c938160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461049e57602036600319011261049e57612a38600435612ce0816104e2565b612ce86137d3565b61135261388b565b9190612cfa61388b565b60808101612d12610d1382516001600160a01b031690565b602082019283514603612e12576119c6612d3a91846001612d3289612bdb565b500154613930565b612e035763ffffffff7ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e91612df66060850195612d84612d7e885163ffffffff1690565b896139b4565b8051958051612de0612dd2612dc1604085019a8c612da88d51915163ffffffff1690565b8a516001600160a01b03169160a0890197885194613a2c565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612e90565b0390a46105006001606555565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612e3e5750505090565b8251845260209384019390920191600101612e31565b90602080835192838152019201905f5b818110612e715750505090565b82516001600160a01b0316845260209384019390920191600101612e64565b949695919260a0946001600160a01b03612ebc8196612ed0958a5260c060208b015260c08a0190612e21565b921660408801528682036060880152612e54565b951515608085015216910152565b6107b49036906128a3565b356107b4816104e2565b356107b481610599565b903590601e198136030182121561049e570180359067ffffffffffffffff821161049e5760200191813603831361049e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612f4e57565b612f30565b1561049e57565b8051821015612bf95760209160051b010190565b90821015612bf9576113c79160051b810190612efd565b908092918237015f815290565b3d15612fbc573d90612fa382610747565b91612fb160405193846106e7565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093613006926107b4979587526020870152608060408701526080860191612fc1565b926060818503910152612fc1565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b03958661307e959a9499166130708a8c8361305b368888610763565b91613067368b8b610763565b9346908d613dae565b604051978897169a87612fe1565b0390a3565b91909160ff5f5460081c161561049e576130ce90624c4b4063ffffffff19610c5a541617610c5a5563ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b60408051926130dd82856106e7565b600984526020808501926820a1a927a9a996ab1960b91b8452613102815191826106e7565b6005815201640312e302e360dc1b815260ff5f5460081c161561049e5760056113529361313f9651902091209061047f55610480556113456141bd565b61050077deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019610c5a541617610c5a55565b634e487b7160e01b5f52601160045260245ffd5b9063ffffffff8091169116019063ffffffff82116131af57565b613181565b96949290916105009b9a99989694926131d463ffffffff42169889613195565b985b9593919b999897969492909b6131ea61388b565b61086b5460ff8160e81c166132ed5760c01c63ffffffff169661320c886136fa565b6132339063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b61323b610728565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff166101008701526101208601906132b1919063ffffffff169052565b63ffffffff1661014085015263ffffffff1661016084015236906132d492610763565b6101808201526132e390613ef0565b6105006001606555565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b16845260348301526054820152605481526133346074826106e7565b51902090565b93929160209161335291604087526040870191612fc1565b930152565b9081602091031261049e57604051906020820182811067ffffffffffffffff8211176106a95760405235815290565b906101806101606107b493805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e085015261010081015161010085015261340061012082015161012086019063ffffffff169052565b6101408181015163ffffffff16908501520151918161016082015201906113cb565b61343a60409295949395606083526060830190613386565b9460208201520152565b9c9a999897969594939291909661345961388b565b60ff61086b5460e81c166132ed57613472908e336132fc565b96604051809e613481826106ae565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132b1565b9792909596949391966134cd61388b565b60ff61086b5460e01c166110db576134e86101408a01612ef3565b6134f74263ffffffff16612aa5565b10158061358b575b612b03576132e3986135806135869761351b610f8d36856128a3565b99613524610709565b9a61352f36866128a3565b8c5260208c01528560408c01528660608c015261354d36868b610763565b60808c015260a08b01526135786135648435613bff565b9860e0610100860135950135953691610763565b963691610763565b95613dae565b613d10565b5061359960408a0135613bff565b6001600160a01b03163314156134ff565b906135b482610a08565b6135c160405191826106e7565b82815280926135d2601f1991610a08565b01905f5b8281106135e257505050565b8060606020809385010152016135d6565b60208183031261049e5780519067ffffffffffffffff821161049e570181601f8201121561049e5780519061362782610747565b9261363560405194856106e7565b8284526020838301011161049e57815f9260208093018386015e8301015290565b9b9998979694929095939161366961388b565b61086b5460ff8160e81c166132ed5760c01c63ffffffff169661368b886136fa565b6136b29063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6136ba610728565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff908116610100880152166101208601526132b1565b63ffffffff1663ffffffff81146131af5760010190565b6040516133348161372e6020820194604086526060830190613386565b46604083015203601f1981018352826106e7565b91909161374d61388b565b60ff61086b5460e01c166110db5761014081015163ffffffff166137764263ffffffff16612aa5565b10158061378f575b612b03576132e392612ac882613711565b5061379d6040820151613bff565b6001600160a01b031633141561377e565b9a989795929693909491966137ca63ffffffff42169788613195565b9761366961388b565b734200000000000000000000000000000000000007330361387c57604051636e296e4560e01b81526020816004817342000000000000000000000000000000000000075afa908115610a03575f9161385d575b506001600160a01b03613845611f7f610869546001600160a01b031690565b91160361384e57565b6336a816d960e01b5f5260045ffd5b613876915060203d6020116109fc576109ee81836106e7565b5f613826565b63253a6fc960e11b5f5260045ffd5b60026065541461049e576002606555565b9081602091031261049e57516107b4816104e2565b6040513d5f823e3d90fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911681146138f3575b50565b476138fb5750565b4790803b1561049e575f90600460405180948193630d0e30db60e41b83525af18015610a0357156138f0575f610500916106e7565b6107b492916040516139ab81611f44602082019460208652805160408401526020810151606084015260a0613975604083015160c06080870152610100860190612e21565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612e54565b51902091614316565b6139bf600291612bdb565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b8080921614613a0157825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b9081602091031261049e575190565b919082018092116131af57565b91959495939092935f9681519081815103613bf05781613aab575b50505082613a56575b50505050565b63ffffffff613a8d611f7f83611f7f7ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb35795886143d9565b6040805195865233602087015290959190911693a45f808080613a50565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa908115610a03575f91613bd1575b505f5f5b848110613af157505050613a47565b613afb8187612f5a565b51613b09575b600101613ae2565b90613b1f90613b188388612f5a565b5190613a1f565b90828211613bc257613b596119c6613b47613b3a8488612f5a565b516001600160a01b031690565b613b51848a612f5a565b51908a614367565b15613b01579a50613b6a8b86612f5a565b51613bb8613bb08d613b9b613b3a613b948c6001600160a01b03165f5261087360205260405f2090565b9289612f5a565b6001600160a01b03165f5260205260405f2090565b918254613a1f565b905560019a613b01565b632ddaa83160e11b5f5260045ffd5b613bea915060203d60201161123c5761122d81836106e7565b5f613ade565b6319a5316760e31b5f5260045ffd5b6001600160a01b0390613c11816144ff565b1690565b916119c691613c9193604081519101519160405191613c33836106cb565b82526139ab613c4f602084019246845260408501958652612bdb565b505493604051928391613c76602084019660208852516060604086015260a0850190613386565b9151606084015251608083015203601f1981018352826106e7565b612e0357565b805163ffffffff6101208201511663ffffffff429116106110bd576020820151906002613ccd835f5261087260205260405f2090565b5414613d0157610500926002613cee6001945f5261087260205260405f2090565b55613cfc60025f84846145ac565b6146ae565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff429116106110bd576020830151926001613d47855f5261087260205260405f2090565b5403613d92576001935b6002613d66825f5261087260205260405f2090565b5414613d0157610500945f946002613d8a613cfc945f5261087260205260405f2090565b5584846145ac565b5f93613d51565b80519081613da75750505f90565b6020012090565b9392604293610500979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613e1560e0826106e7565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613e6d60a0826106e7565b519020906040519161190160f01b8352600283015260228201522090614915565b919082039182116131af57565b9692610140989563ffffffff9586949285936107b49e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e08301526101008201528161012082015201906113cb565b613efa81516144ff565b60608101908151156141af57610120810190613f26613f1d835163ffffffff1690565b63ffffffff1690565b804210908115614176575b5061416757610140810192613f4a845163ffffffff1690565b63ffffffff613f7b817f00000000000000000000000000000000000000000000000000000000000000001642613a1f565b9116116141585761016082015163ffffffff16918280614115575b5060408101918251926001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168094148061410c575b156140bc57608083015134036140ad57833b1561049e575f60049460405195868092630d0e30db60e41b825234905af1908115610a03577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39461408e92614093575b505b5191519260808101519060a081015160c08201519761406d6140626101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613e9b565b0390a4565b806140a15f6140a7936106e7565b80610494565b5f614034565b636452a35d60e01b5f5260045ffd5b9250346140ad5761408e836141076140f8611f7f7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39751613bff565b60808601519030903390614a01565b614036565b50341515613fd2565b6301e133801015614140575b60e081015115614131575f613f96565b63495d907f60e01b5f5260045ffd5b916141529063ffffffff421690613195565b91614121565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b614181915042613e8e565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613f31565b6231010160e51b5f5260045ffd5b60ff5f5460081c161561049e57565b60ff5f5460081c161561049e576001606555565b6001600160a01b0316801561422957806001600160a01b0319610869541617610869557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b0316801561428157806001600160a01b031961086a54161761086a557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b6001600160a01b0316916001600160a01b036040519263a9059cbb60e01b5f521660045260245260205f60448180865af160015f51148116156142f7575b604091909152156142dc5750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b600181151661430d573d15833b151516166142ce565b503d5f823e3d90fd5b929091905f915b845183101561435f576143308386612f5a565b51908181101561434e575f52602052600160405f205b92019161431d565b905f52602052600160405f20614346565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f916143a38160648101611f44565b519082855af1903d5f5190836143ba575b50505090565b919250906143cf57503b15155b5f80806143b4565b60019150146143c7565b907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b0382166001600160a01b03821614806144ce575b156144c357508161442791614e57565b61086a546001600160a01b0316610c5a5463ffffffff1691733b1ac69368eb6447f5db2d4e1641380fa9e40d293b1561049e5760405163262cc5ab60e11b81526001600160a01b03929092166004830152602482015263ffffffff9190911660448201525f8160648183733b1ac69368eb6447f5db2d4e1641380fa9e40d295af18015610a03576144b55750565b806140a15f610500936106e7565b905061050091614a8e565b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001615614417565b60a01c61450857565b6379ec0ed760e11b5f5260045ffd5b61452082612f44565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a083015260600151906145a582612f44565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720890939293606083015161408e60808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61461061012085015163ffffffff1690565b61014085015163ffffffff169160408601519386519561467461463c61016060208b01519a0151613d99565b9960608c01519b60406146526080830151613d99565b910151906020614660610738565b9e8f528e015260408d015260608c01614517565b6040519c8d9c8d614523565b906107b494936080936001600160a01b038093168452602084015216604082015281606082015201906113cb565b9060806146bc910151613bff565b9160806040830151926146d26060820151613bff565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f146147c35750156147af575b61472d91506001600160a01b038516614fae565b01519081511515806147a5575b6147445750505050565b6001600160a01b0316803b1561049e5761477a935f809460405196879586948593633a5be8cb60e01b8552339160048601614680565b03925af18015610a0357614791575b808080613a50565b806140a15f61479f936106e7565b5f614789565b50803b151561473a565b6147bc9130903390614a01565b5f84614719565b906147d8576147d3923390614a01565b61472d565b6147d3925087614290565b916147ed836148b4565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115908115916148ac575b50614830575050565b6138f0915f80604051936148456060866106e7565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46148a6612f92565b9161549c565b90505f614827565b803b1561049e576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b919091614922828461544b565b9390926005851015612f4e5761494b941593846149eb575b508315614960575b50505015151590565b61495157565b63938a182160e01b5f5260045ffd5b5f935090611f446149988594936040519283916020830195630b135d3f60e11b875260248401526040604484015260648301906113cb565b51915afa6149a4612f92565b816149dd575b816149b9575b505f8080614942565b90506149d6630b135d3f60e11b9160208082518301019101613a10565b145f6149b0565b9050602081511015906149aa565b6001600160a01b0384811691161493505f61493a565b5f6001600160a01b038192614a5e9682604051978160208a01986323b872dd60e01b8a521660248a0152166044880152606487015260648652614a456084876106e7565b1692614a4f61508a565b94519082855af16148a6612f92565b8051908115918215614a74575b50501561049e57565b614a8792506020809183010191016150c5565b5f80614a6b565b906001600160a01b038116906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682145f14614bda5750803b1561049e57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610a0357614bc6575b50610c5a54602081901c6001600160a01b031691614b35614b2b61086a546001600160a01b031690565b9263ffffffff1690565b927342000000000000000000000000000000000000103b1561049e57604051631474f2a960e31b81526001600160a01b039182166004820152921660248301526044820181905263ffffffff92909216606482015260a060848201525f60a482018190529091829060c49082907342000000000000000000000000000000000000105af18015610a03576144b55750565b806140a15f614bd4936106e7565b5f614b01565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316151580614e25575b15614c3057505061050090614c2b61086a546001600160a01b031690565b6150da565b6001600160a01b03614c64614c57846001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16614df9576001600160a01b037342000000000000000000000000000000000000105b1690614cab611f7f614c57856001600160a01b03165f52610c5d60205260405f2090565b15614d73578382614cbb92614f28565b614cda614c57836001600160a01b03165f52610c5d60205260405f2090565b90614cee61086a546001600160a01b031690565b91614cff610c5a5463ffffffff1690565b823b1561049e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015610a03576144b55750565b5091614d8861086a546001600160a01b031690565b92614d99610c5a5463ffffffff1690565b93813b1561049e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614d62565b6001600160a01b03614e20614c57846001600160a01b03165f52610c5c60205260405f2090565b614c87565b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168114614c0d565b604051636eb1769f60e11b8152306004820152733b1ac69368eb6447f5db2d4e1641380fa9e40d29602482015291906020836044816001600160a01b0385165afa8015610a0357614eba614ef693614f0492610500965f91614f09575b50613a1f565b60405163095ea7b360e01b6020820152733b1ac69368eb6447f5db2d4e1641380fa9e40d29602482015260448101919091529283906064820190565b03601f1981018452836106e7565b615386565b614f22915060203d60201161123c5761122d81836106e7565b5f614eb4565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa908115610a035761050094614f0492614f7f925f91614f095750613a1f565b60405163095ea7b360e01b60208201526001600160a01b03909416602485015260448401528260648101614ef6565b906001600160a01b038216803b15801561507b575b1561504757506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561049e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a035761050093615033575b50615423565b806140a15f615041936106e7565b5f61502d565b61050092506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016614290565b50615085816153b1565b614fc3565b604051906150996040836106e7565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020830152565b9081602091031261049e57516107b481611b3c565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169261513b838584614f28565b6040516332dd704760e21b815291602083600481885afa928315610a03575f9361535c575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa928315610a03575f9361533b575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b6151d257505050505050565b8381111561533557835b851561529157863b1561049e57604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af1928315610a03576152779361527d575b50613e8e565b806151c6565b806140a15f61528b936106e7565b5f615271565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af1928315610a0357615277936153075750613e8e565b6153279060203d811161532e575b61531f81836106e7565b81019061547c565b505f615271565b503d615315565b806151dc565b61535591935060203d60201161123c5761122d81836106e7565b915f6151a0565b6001600160a01b0391935061537f9060203d6020116109fc576109ee81836106e7565b9290615160565b906001600160a01b03614a5e92165f8061539e61508a565b9360208151910182855af16148a6612f92565b803b6153bc81610747565b906153ca60405192836106e7565b8082525f6020830180943c5190516001600160e81b03198116919060038210615404575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f806153ee565b81471061049e575f8080936001600160a01b038294165af1615443612f92565b501561049e57565b9060418151145f14615473576113c791602082015190606060408401519301515f1a906154c7565b50505f90600290565b9081602091031261049e575167ffffffffffffffff8116810361049e5790565b919250156154b8578151156154af575090565b3b1561049e5790565b50805190811561049e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615537576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a03575f516001600160a01b0381161561552f57905f90565b505f90600190565b505050505f9060039056fea26469706673582212208bf1b1234b46421e4a5e125736c35bd602cca203ccf2d8c7f4a53c24fd3c3b0264736f6c634300081e0033"}