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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/contracts/external/interfaces/CCTPInterfaces.sol +18 -0
  2. package/contracts/interfaces/SponsoredCCTPInterface.sol +11 -0
  3. package/contracts/libraries/SponsoredCCTPQuoteLib.sol +22 -0
  4. package/contracts/periphery/mintburn/ArbitraryEVMFlowExecutor.sol +38 -15
  5. package/contracts/periphery/mintburn/sponsored-cctp/SponsoredCCTPDstPeriphery.sol +41 -12
  6. package/contracts/test/MockCCTP.sol +10 -0
  7. package/dist/broadcast/deployed-addresses.json +172 -102
  8. package/dist/evm/artifacts/Arbitrum_Adapter.sol/Arbitrum_Adapter.json +1 -1
  9. package/dist/evm/artifacts/Arbitrum_CustomGasToken_Adapter.sol/Arbitrum_CustomGasToken_Adapter.json +1 -1
  10. package/dist/evm/artifacts/Arbitrum_RescueAdapter.sol/Arbitrum_RescueAdapter.json +1 -1
  11. package/dist/evm/artifacts/Arbitrum_SendTokensAdapter.sol/Arbitrum_SendTokensAdapter.json +1 -1
  12. package/dist/evm/artifacts/Arbitrum_SpokePool.sol/Arbitrum_SpokePool.json +1 -1
  13. package/dist/evm/artifacts/Arbitrum_WithdrawalHelper.sol/Arbitrum_WithdrawalHelper.json +1 -1
  14. package/dist/evm/artifacts/Base_Adapter.sol/Base_Adapter.json +1 -1
  15. package/dist/evm/artifacts/Blast_Adapter.sol/Blast_Adapter.json +1 -1
  16. package/dist/evm/artifacts/Blast_SpokePool.sol/Blast_SpokePool.json +1 -1
  17. package/dist/evm/artifacts/Boba_SpokePool.sol/Boba_SpokePool.json +1 -1
  18. package/dist/evm/artifacts/CCTPInterfaces.sol/ITokenMessengerV2.json +1 -1
  19. package/dist/evm/artifacts/CCTPInterfaces.sol/ITokenMinter.json +1 -1
  20. package/dist/evm/artifacts/Cher_SpokePool.sol/Cher_SpokePool.json +1 -1
  21. package/dist/evm/artifacts/CircleCCTPAdapter.sol/CircleDomainIds.json +1 -1
  22. package/dist/evm/artifacts/CounterfactualDepositCCTP.sol/CounterfactualDepositCCTP.json +1 -1
  23. package/dist/evm/artifacts/DoctorWho_Adapter.sol/DoctorWho_Adapter.json +1 -1
  24. package/dist/evm/artifacts/DstOFTHandler.sol/DstOFTHandler.json +1 -1
  25. package/dist/evm/artifacts/Ink_SpokePool.sol/Ink_SpokePool.json +1 -1
  26. package/dist/evm/artifacts/Lens_SpokePool.sol/Lens_SpokePool.json +1 -1
  27. package/dist/evm/artifacts/Linea_Adapter.sol/Linea_Adapter.json +1 -1
  28. package/dist/evm/artifacts/Linea_SpokePool.sol/Linea_SpokePool.json +1 -1
  29. package/dist/evm/artifacts/Lisk_Adapter.sol/Lisk_Adapter.json +1 -1
  30. package/dist/evm/artifacts/Lisk_SpokePool.sol/Lisk_SpokePool.json +1 -1
  31. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockCrossDomainMessenger.json +1 -1
  32. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL1StandardBridge.json +1 -1
  33. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL2StandardBridge.json +1 -1
  34. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessageTransmitter.json +1 -1
  35. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessenger.json +1 -1
  36. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessengerV2.json +1 -1
  37. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMinter.json +1 -1
  38. package/dist/evm/artifacts/MockOptimism_SpokePool.sol/MockOptimism_SpokePool.json +1 -1
  39. package/dist/evm/artifacts/Mode_Adapter.sol/Mode_Adapter.json +1 -1
  40. package/dist/evm/artifacts/OP_Adapter.sol/OP_Adapter.json +1 -1
  41. package/dist/evm/artifacts/OP_SpokePool.sol/OP_SpokePool.json +1 -1
  42. package/dist/evm/artifacts/Optimism_Adapter.sol/Optimism_Adapter.json +1 -1
  43. package/dist/evm/artifacts/Optimism_SpokePool.sol/Optimism_SpokePool.json +1 -1
  44. package/dist/evm/artifacts/Ovm_SpokePool.sol/Ovm_SpokePool.json +1 -1
  45. package/dist/evm/artifacts/Ovm_WithdrawalHelper.sol/Ovm_WithdrawalHelper.json +1 -1
  46. package/dist/evm/artifacts/Polygon_Adapter.sol/Polygon_Adapter.json +1 -1
  47. package/dist/evm/artifacts/Polygon_SpokePool.sol/Polygon_SpokePool.json +1 -1
  48. package/dist/evm/artifacts/Solana_Adapter.sol/Solana_Adapter.json +1 -1
  49. package/dist/evm/artifacts/SponsoredCCTPDstPeriphery.sol/SponsoredCCTPDstPeriphery.json +1 -1
  50. package/dist/evm/artifacts/SponsoredCCTPInterface.sol/SponsoredCCTPInterface.json +1 -1
  51. package/dist/evm/artifacts/SponsoredCCTPSrcPeriphery.sol/SponsoredCCTPSrcPeriphery.json +1 -1
  52. package/dist/evm/artifacts/SponsoredOFTSrcPeriphery.sol/SponsoredOFTSrcPeriphery.json +1 -1
  53. package/dist/evm/artifacts/Tron_SpokePool.sol/Tron_SpokePool.json +1 -1
  54. package/dist/evm/artifacts/Universal_Adapter.sol/Universal_Adapter.json +1 -1
  55. package/dist/evm/artifacts/Universal_SpokePool.sol/Universal_SpokePool.json +1 -1
  56. package/dist/evm/artifacts/WorldChain_SpokePool.sol/WorldChain_SpokePool.json +1 -1
  57. package/dist/evm/artifacts/ZkStack_Adapter.sol/ZkStack_Adapter.json +1 -1
  58. package/dist/evm/artifacts/ZkStack_CustomGasToken_Adapter.sol/ZkStack_CustomGasToken_Adapter.json +1 -1
  59. package/dist/evm/artifacts/ZkSync_SpokePool.sol/ZkSync_SpokePool.json +1 -1
  60. package/dist/evm/artifacts/Zora_Adapter.sol/Zora_Adapter.json +1 -1
  61. package/dist/evm/artifacts/eraVM_EIP7702.sol/SimpleContract.json +1 -1
  62. package/dist/evm/artifacts/eraVM_EIP7702.sol/SpokePoolEIP7702Test.json +1 -1
  63. package/dist/evm/artifacts/eraVM_EIP7702.sol/TestableMockSpokePool.json +1 -1
  64. package/package.json +1 -1
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[{"name":"_l1Weth","type":"address","internalType":"contract WETH9Interface"},{"name":"_crossDomainMessenger","type":"address","internalType":"address"},{"name":"_l1StandardBridge","type":"address","internalType":"contract IL1StandardBridge"},{"name":"_l1Usdc","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"L1_STANDARD_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"L1_WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"function","name":"L2_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"relayTokens","inputs":[{"name":"l1Token","type":"address","internalType":"address"},{"name":"l2Token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"event","name":"MessageRelayed","inputs":[{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"TokensRelayed","inputs":[{"name":"l1Token","type":"address","indexed":false,"internalType":"address"},{"name":"l2Token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":"0x61016080604052346101f957608081610e49803803809161002082856101fd565b8339810103126101f95780516001600160a01b03811681036101f95760208201516001600160a01b03811681036101f9576040830151926001600160a01b03841684036101f95760600151906001600160a01b03821682036101f95760805260c0525f60e05263ffffffff60a0525f80604051602081019063011a412160e61b8252600481526100b16024826101fd565b5190825afa3d156101f2573d6001600160401b0381116101de57604051906100e3601f8201601f1916602001836101fd565b81523d5f602083013e5b816101d2575b8161019c575b50610100526101205261014052604051610c289081610221823960805181818160ef0152610240015260a0518181816102be015281816105ed015261069b015260c0518181816104d3015281816108e001526109aa015260e0518181816101fc01526104a301526101005181818161027c015261056201526101205181818161034f01526109690152610140518181816103b6015281816107db01526109260152f35b90506020815191015190602081106101c1575b506001600160a01b031615155f6100f9565b5f199060200360031b1b165f6101af565b805160201491506100f3565b634e487b7160e01b5f52604160045260245ffd5b60606100ed565b5f80fd5b601f909101601f19168101906001600160401b038211908210176101de5760405256fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816311eac8551461098d575080631efd482a1461094a57806335a2db6a1461090757806352c8c75c146103005780635e743ef7146102e25780636e400983146102a1578063775c0d0314610264578063927ede2d146102205780639748cf7c146101dc5763e6eb8ade1461008c575f80fd5b60403660031901126101d9576100a06109ce565b6024359067ffffffffffffffff82116101d757366023830112156101d75781600401359067ffffffffffffffff82116101c457602483019260248336920101116101c457836001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b156101d357816001600160a01b0391604051928391633dbb202b60e01b8352169485600483015260606024830152818381610151606482018b8d610a1a565b62030d40604483015203925af180156101c8576101af575b50506101a97f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac4936040519384938452604060208501526040840191610a1a565b0390a180f35b816101b9916109e4565b6101c457835f610169565b8380fd5b6040513d84823e3d90fd5b5080fd5b825b80fd5b50346101d957806003193601126101d95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d95760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b50346101d957806003193601126101d957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d957602060405162030d408152f35b50608036600319011261076e576103156109ce565b602435906001600160a01b03821680920361076e5760443591606435906001600160a01b03821680920361076e57846001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169416938085145f1461049357803b156101d357818091602460405180948193632e1a7d4d60e01b83528b60048401525af180156101c85761047e575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156101d357818691608460405180948193639a2ac6d560e01b835289600484015262030d406024840152606060448401528560648401525af180156101c85761045f575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93608093925b604051938452602084015260408301526060820152a180f35b8161046d91959493956109e4565b61047a579091845f61041c565b8480fd5b81610488916109e4565b61047a57845f6103ab565b50506001600160a01b03939192937f000000000000000000000000000000000000000000000000000000000000000016801515806108d5575b156107d0577f0000000000000000000000000000000000000000000000000000000000000000906104fe848284610a3a565b6040516332dd704760e21b815291602083600481855afa92831561077a578893610785575b509060206001600160a01b03809316936024604051809581936352b7631960e11b8352886004840152165afa91821561077a578892610742575b5090917f0000000000000000000000000000000000000000000000000000000000000000919085805b6105bb575050505050917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610446565b8481111561073c57845b841561068557833b15610681578a604051634701287760e11b815282600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528a60448201528460648201528160848201528160a48201526107d060c4820152818160e481838a5af180156101c85761066c575b50505b81039081116106585780610586565b634e487b7160e01b8a52601160045260248afd5b81610676916109e4565b610681578a5f610646565b8a80fd5b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018a9052606481018490526020816084818f895af18015610731576106ee575b50610649565b6020813d8211610729575b81610706602093836109e4565b81010312610725575167ffffffffffffffff811603610681575f6106e8565b8b80fd5b3d91506106f9565b6040513d8e823e3d90fd5b806105c5565b9091506020813d602011610772575b8161075e602093836109e4565b8101031261076e5751905f61055d565b5f80fd5b3d9150610751565b6040513d8a823e3d90fd5b9092506020813d6020116107c8575b816107a1602093836109e4565b810103126107c45751906001600160a01b03821682036107c45790916020610523565b8780fd5b3d9150610794565b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610806838287610a3a565b803b1561076e575f809160e46040518094819363041c592960e51b83528a600484015287602484015289604484015288606484015262030d40608484015260c060a48401528160c48401525af180156108ca5761088b575b50917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610446565b608093919550916108be5f7fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b96946109e4565b5f95919350919361085e565b6040513d5f823e3d90fd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685146104cc565b3461076e575f36600319011261076e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461076e575f36600319011261076e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461076e575f36600319011261076e576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b038216820361076e57565b90601f8019910116810190811067ffffffffffffffff821117610a0657604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b6001600160a01b0316916001600160a01b0360405192636eb1769f60e11b84523060048501521690816024840152602083604481875afa9283156108ca575f93610b93575b508201809211610b7f575f809160405193602085019163095ea7b360e01b83526024860152604485015260448452610ab86064856109e4565b60405193610ac76040866109e4565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082865af13d15610b72573d9067ffffffffffffffff8211610a0657604051610b39949092610b2b601f8201601f1916602001856109e4565b83523d5f602085013e610bc7565b8051908115918215610b4f575b50501561076e57565b819250906020918101031261076e5760200151801515810361076e575f80610b46565b91610b3992606091610bc7565b634e487b7160e01b5f52601160045260245ffd5b9092506020813d602011610bbf575b81610baf602093836109e4565b8101031261076e5751915f610a7f565b3d9150610ba2565b91925015610be357815115610bda575090565b3b1561076e5790565b50805190811561076e57602001fdfea2646970667358221220d5c69241fd39e1603fc91f6e6bc4be109493aac521fc370a63244d0c4767490d64736f6c634300081e0033"}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_l1Weth","type":"address","internalType":"contract WETH9Interface"},{"name":"_crossDomainMessenger","type":"address","internalType":"address"},{"name":"_l1StandardBridge","type":"address","internalType":"contract IL1StandardBridge"},{"name":"_l1Usdc","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"L1_STANDARD_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"L1_WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"function","name":"L2_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"relayTokens","inputs":[{"name":"l1Token","type":"address","internalType":"address"},{"name":"l2Token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"event","name":"MessageRelayed","inputs":[{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"TokensRelayed","inputs":[{"name":"l1Token","type":"address","indexed":false,"internalType":"address"},{"name":"l2Token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":"0x61016080604052346101f957608081610e49803803809161002082856101fd565b8339810103126101f95780516001600160a01b03811681036101f95760208201516001600160a01b03811681036101f9576040830151926001600160a01b03841684036101f95760600151906001600160a01b03821682036101f95760805260c0525f60e05263ffffffff60a0525f80604051602081019063011a412160e61b8252600481526100b16024826101fd565b5190825afa3d156101f2573d6001600160401b0381116101de57604051906100e3601f8201601f1916602001836101fd565b81523d5f602083013e5b816101d2575b8161019c575b50610100526101205261014052604051610c289081610221823960805181818160ef0152610240015260a0518181816102be015281816105ed015261069b015260c0518181816104d3015281816108e001526109aa015260e0518181816101fc01526104a301526101005181818161027c015261056201526101205181818161034f01526109690152610140518181816103b6015281816107db01526109260152f35b90506020815191015190602081106101c1575b506001600160a01b031615155f6100f9565b5f199060200360031b1b165f6101af565b805160201491506100f3565b634e487b7160e01b5f52604160045260245ffd5b60606100ed565b5f80fd5b601f909101601f19168101906001600160401b038211908210176101de5760405256fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816311eac8551461098d575080631efd482a1461094a57806335a2db6a1461090757806352c8c75c146103005780635e743ef7146102e25780636e400983146102a1578063775c0d0314610264578063927ede2d146102205780639748cf7c146101dc5763e6eb8ade1461008c575f80fd5b60403660031901126101d9576100a06109ce565b6024359067ffffffffffffffff82116101d757366023830112156101d75781600401359067ffffffffffffffff82116101c457602483019260248336920101116101c457836001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b156101d357816001600160a01b0391604051928391633dbb202b60e01b8352169485600483015260606024830152818381610151606482018b8d610a1a565b62030d40604483015203925af180156101c8576101af575b50506101a97f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac4936040519384938452604060208501526040840191610a1a565b0390a180f35b816101b9916109e4565b6101c457835f610169565b8380fd5b6040513d84823e3d90fd5b5080fd5b825b80fd5b50346101d957806003193601126101d95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d95760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b50346101d957806003193601126101d957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d957602060405162030d408152f35b50608036600319011261076e576103156109ce565b602435906001600160a01b03821680920361076e5760443591606435906001600160a01b03821680920361076e57846001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169416938085145f1461049357803b156101d357818091602460405180948193632e1a7d4d60e01b83528b60048401525af180156101c85761047e575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156101d357818691608460405180948193639a2ac6d560e01b835289600484015262030d406024840152606060448401528560648401525af180156101c85761045f575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93608093925b604051938452602084015260408301526060820152a180f35b8161046d91959493956109e4565b61047a579091845f61041c565b8480fd5b81610488916109e4565b61047a57845f6103ab565b50506001600160a01b03939192937f000000000000000000000000000000000000000000000000000000000000000016801515806108d5575b156107d0577f0000000000000000000000000000000000000000000000000000000000000000906104fe848284610a3a565b6040516332dd704760e21b815291602083600481855afa92831561077a578893610785575b509060206001600160a01b03809316936024604051809581936352b7631960e11b8352886004840152165afa91821561077a578892610742575b5090917f0000000000000000000000000000000000000000000000000000000000000000919085805b6105bb575050505050917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610446565b8481111561073c57845b841561068557833b15610681578a604051634701287760e11b815282600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528a60448201528460648201528160848201528160a48201526107d060c4820152818160e481838a5af180156101c85761066c575b50505b81039081116106585780610586565b634e487b7160e01b8a52601160045260248afd5b81610676916109e4565b610681578a5f610646565b8a80fd5b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018a9052606481018490526020816084818f895af18015610731576106ee575b50610649565b6020813d8211610729575b81610706602093836109e4565b81010312610725575167ffffffffffffffff811603610681575f6106e8565b8b80fd5b3d91506106f9565b6040513d8e823e3d90fd5b806105c5565b9091506020813d602011610772575b8161075e602093836109e4565b8101031261076e5751905f61055d565b5f80fd5b3d9150610751565b6040513d8a823e3d90fd5b9092506020813d6020116107c8575b816107a1602093836109e4565b810103126107c45751906001600160a01b03821682036107c45790916020610523565b8780fd5b3d9150610794565b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610806838287610a3a565b803b1561076e575f809160e46040518094819363041c592960e51b83528a600484015287602484015289604484015288606484015262030d40608484015260c060a48401528160c48401525af180156108ca5761088b575b50917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610446565b608093919550916108be5f7fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b96946109e4565b5f95919350919361085e565b6040513d5f823e3d90fd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685146104cc565b3461076e575f36600319011261076e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461076e575f36600319011261076e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461076e575f36600319011261076e576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b038216820361076e57565b90601f8019910116810190811067ffffffffffffffff821117610a0657604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b6001600160a01b0316916001600160a01b0360405192636eb1769f60e11b84523060048501521690816024840152602083604481875afa9283156108ca575f93610b93575b508201809211610b7f575f809160405193602085019163095ea7b360e01b83526024860152604485015260448452610ab86064856109e4565b60405193610ac76040866109e4565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082865af13d15610b72573d9067ffffffffffffffff8211610a0657604051610b39949092610b2b601f8201601f1916602001856109e4565b83523d5f602085013e610bc7565b8051908115918215610b4f575b50501561076e57565b819250906020918101031261076e5760200151801515810361076e575f80610b46565b91610b3992606091610bc7565b634e487b7160e01b5f52601160045260245ffd5b9092506020813d602011610bbf575b81610baf602093836109e4565b8101031261076e5751915f610a7f565b3d9150610ba2565b91925015610be357815115610bda575090565b3b1561076e5790565b50805190811561076e57602001fdfea26469706673582212206ca003c5522a2658fec8849913c7acecb1464eddc34334c9aa52ca20ebcf731a64736f6c634300081e0033"}