From 766b0d5d467fea6e5629b1a31953aff833b36310 Mon Sep 17 00:00:00 2001 From: zeroknots Date: Fri, 7 Jun 2024 08:35:58 +0700 Subject: [PATCH 1/2] fix: update safe_op_typehash to newest version --- src/Safe7579.sol | 10 ++++---- src/interfaces/ISafeOp.sol | 50 ++++++++++++++++++++++++++++++++++---- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/src/Safe7579.sol b/src/Safe7579.sol index 7cad04a..33136e1 100644 --- a/src/Safe7579.sol +++ b/src/Safe7579.sol @@ -565,15 +565,15 @@ contract Safe7579 is ISafe7579, ISafeOp, AccessControl, Initializer { // result of `abi.encode`-ing the individual fields. EncodedSafeOpStruct memory encodedSafeOp = EncodedSafeOpStruct({ typeHash: SAFE_OP_TYPEHASH, - safe: msg.sender, + safe: userOp.sender, nonce: userOp.nonce, initCodeHash: keccak256(userOp.initCode), callDataHash: keccak256(userOp.callData), - callGasLimit: userOp.unpackCallGasLimit(), - verificationGasLimit: userOp.unpackVerificationGasLimit(), + verificationGasLimit: uint128(userOp.unpackVerificationGasLimit()), + callGasLimit: uint128(userOp.unpackCallGasLimit()), preVerificationGas: userOp.preVerificationGas, - maxFeePerGas: userOp.unpackMaxFeePerGas(), - maxPriorityFeePerGas: userOp.unpackMaxPriorityFeePerGas(), + maxPriorityFeePerGas: uint128(userOp.unpackMaxPriorityFeePerGas()), + maxFeePerGas: uint128(userOp.unpackMaxFeePerGas()), paymasterAndDataHash: keccak256(userOp.paymasterAndData), validAfter: validAfter, validUntil: validUntil, diff --git a/src/interfaces/ISafeOp.sol b/src/interfaces/ISafeOp.sol index 54be7ab..78f14b0 100644 --- a/src/interfaces/ISafeOp.sol +++ b/src/interfaces/ISafeOp.sol @@ -2,20 +2,60 @@ pragma solidity ^0.8.23; bytes32 constant SAFE_OP_TYPEHASH = - 0x84aa190356f56b8c87825f54884392a9907c23ee0f8e1ea86336b763faf021bd; + 0xc03dfc11d8b10bf9cf703d558958c8c42777f785d998c62060d85a4f0ef6ea7f; interface ISafeOp { + /** + * @notice The EIP-712 type-hash for a SafeOp, representing the structure of a User Operation + * for + * the Safe. + * {address} safe - The address of the safe on which the operation is performed. + * {uint256} nonce - A unique number associated with the user operation, preventing replay + * attacks + * by ensuring each operation is unique. + * {bytes} initCode - The packed encoding of a factory address and its factory-specific data + * for + * creating a new Safe account. + * {bytes} callData - The bytes representing the data of the function call to be executed. + * {uint128} verificationGasLimit - The maximum amount of gas allowed for the verification + * process. + * {uint128} callGasLimit - The maximum amount of gas allowed for executing the function call. + * {uint256} preVerificationGas - The amount of gas allocated for pre-verification steps before + * executing the main operation. + * {uint128} maxPriorityFeePerGas - The maximum priority fee per gas that the user is willing + * to + * pay for the transaction. + * {uint128} maxFeePerGas - The maximum fee per gas that the user is willing to pay for the + * transaction. + * {bytes} paymasterAndData - The packed encoding of a paymaster address and its + * paymaster-specific + * data for sponsoring the user operation. + * {uint48} validAfter - A timestamp representing from when the user operation is valid. + * {uint48} validUntil - A timestamp representing until when the user operation is valid, or 0 + * to + * indicated "forever". + * {address} entryPoint - The address of the entry point that will execute the user operation. + * @dev When validating the user operation, the signature timestamps are pre-pended to the + * signature + * bytes. Equal to: + * keccak256( + * "SafeOp(address safe,uint256 nonce,bytes initCode,bytes callData,uint128 + * verificationGasLimit,uint128 callGasLimit,uint256 preVerificationGas,uint128 + * maxPriorityFeePerGas,uint128 maxFeePerGas,bytes paymasterAndData,uint48 validAfter,uint48 + * validUntil,address entryPoint)" + * ) = 0xc03dfc11d8b10bf9cf703d558958c8c42777f785d998c62060d85a4f0ef6ea7f + */ struct EncodedSafeOpStruct { bytes32 typeHash; address safe; uint256 nonce; bytes32 initCodeHash; bytes32 callDataHash; - uint256 callGasLimit; - uint256 verificationGasLimit; + uint128 verificationGasLimit; + uint128 callGasLimit; uint256 preVerificationGas; - uint256 maxFeePerGas; - uint256 maxPriorityFeePerGas; + uint128 maxPriorityFeePerGas; + uint128 maxFeePerGas; bytes32 paymasterAndDataHash; uint48 validAfter; uint48 validUntil; From c94810b8d054906ee7298aaa5c42434a323f5715 Mon Sep 17 00:00:00 2001 From: kopy-kat Date: Wed, 26 Jun 2024 12:07:15 +0100 Subject: [PATCH 2/2] chore: add native safe test --- .../Deploy.s.sol/11155111/run-1719353024.json | 91 +++++++++++++ .../Deploy.s.sol/11155111/run-latest.json | 60 ++++----- broadcast/Deploy.s.sol/84532/run-latest.json | 61 +++++++++ test/NativeSafe.sol | 126 ++++++++++++++++++ 4 files changed, 308 insertions(+), 30 deletions(-) create mode 100644 broadcast/Deploy.s.sol/11155111/run-1719353024.json create mode 100644 broadcast/Deploy.s.sol/84532/run-latest.json create mode 100644 test/NativeSafe.sol diff --git a/broadcast/Deploy.s.sol/11155111/run-1719353024.json b/broadcast/Deploy.s.sol/11155111/run-1719353024.json new file mode 100644 index 0000000..c4cd613 --- /dev/null +++ b/broadcast/Deploy.s.sol/11155111/run-1719353024.json @@ -0,0 +1,91 @@ +{ + "transactions": [ + { + "hash": "0x88f06c801b59d6a7cb9ea31d74fbd1d3cd29722268b71c985fa2a316803d8039", + "transactionType": "CREATE2", + "contractName": "Safe7579", + "contractAddress": "0x50da3861d482116c5f2ea6d673a58cedb786dc1c", + "function": null, + "arguments": null, + "transaction": { + "from": "0x8749313f626b100b822d573c71dfffdaca383032", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x6af6fd", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060a0604052348015600f57600080fd5b50604051601a906046565b604051809103906000f0801580156035573d6000803e3d6000fd5b506001600160a01b03166080526053565b6109f080614bc483390190565b608051614b2c61009860003960008181610d0101528181610f1c0152818161178e01528181612cae01528181612d66015281816136cb01526137f70152614b2c6000f3fe6080604052600436106101235760003560e01c8063b0d691fe116100a0578063e9ae5c5311610064578063e9ae5c531461040f578063ea5f61d014610422578063eab77e1714610442578063f2dc691d14610462578063f698da25146104825761012a565b8063b0d691fe14610340578063b875d5d814610363578063d03c7914146103af578063d691c964146103cf578063d828435d146103ef5761012a565b80636a5e1515116100e75780636a5e1515146102b757806385571368146102ca5780639517e29f146102f85780639cfd7cff1461030b578063a71763a81461032d5761012a565b80630a664dba146101d4578063112d3a7d146102185780631626ba7e1461024857806319822f7c14610281578063540fb4f9146102a25761012a565b3661012a57005b600036606060003560e01c63bc197c81811463f23a6e6182141763150b7a028214171561015b57806020526020603cf35b5033600090815260046020908152604080832054600583528184206001600160e01b031985351680865293529083205491926001600160a01b039182169290911690806101a88484610497565b915091506101b68888610555565b95506101c484848484610669565b5050505050915050805190602001f35b3480156101e057600080fd5b50336000908152600460205260409020546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b50610238610233366004613aa8565b6106ec565b604051901515815260200161020f565b34801561025457600080fd5b50610268610263366004613b03565b610749565b6040516001600160e01b0319909116815260200161020f565b61029461028f366004613b4e565b6109de565b60405190815260200161020f565b6102b56102b0366004613bfd565b610af2565b005b6102b56102c5366004613cf9565b610b3f565b3480156102d657600080fd5b506102ea6102e5366004613d3a565b610ba0565b60405161020f929190613d66565b6102b5610306366004613aa8565b610bbc565b34801561031757600080fd5b50610320610d71565b60405161020f9190613e19565b6102b561033b366004613aa8565b610e03565b34801561034c57600080fd5b506f71727de22e5e9d8baf0edac6f37da0326101fb565b34801561036f57600080fd5b506101fb61037e366004613e42565b3360009081526005602090815260408083206001600160e01b0319909416835292905220546001600160a01b031690565b3480156103bb57600080fd5b506102386103ca366004613e5f565b610f7f565b6103e26103dd366004613b03565b611027565b60405161020f9190613e78565b3480156103fb57600080fd5b5061029461040a366004613edd565b6110f3565b6102b561041d366004613b03565b611193565b34801561042e57600080fd5b506102ea61043d366004613d3a565b611538565b34801561044e57600080fd5b506102b561045d366004613f27565b611562565b34801561046e57600080fd5b5061023861047d366004613e5f565b6115d1565b34801561048e57600080fd5b50610294611620565b6060806001600160a01b03841615610517576104fe338560006104b8611679565b346000366040516024016104cf9493929190613fb6565b60408051601f198184030181529190526020810180516001600160e01b031663d68f602560e01b179052611685565b91508180602001905181019061051491906140aa565b91505b6001600160a01b0383161561054e57610535338460006104b8611679565b90508080602001905181019061054b91906140aa565b90505b9250929050565b3360009081526003602090815260408083206001600160e01b0319843516845290915290208054606091906001600160a01b03811690600160a01b900460f81b816105c657604051632464e76d60e11b81526001600160e01b03196000351660048201526024015b60405180910390fd5b6105d481607f60f91b61172e565b156106185761060e338388886105e8611679565b6040516020016105fa939291906140de565b604051602081830303815290604052611740565b9350505050610663565b61062381600061172e565b1561065f5761060e338360008989610639611679565b60405160200161064b939291906140de565b604051602081830303815290604052611685565b5050505b92915050565b6001600160a01b038416156106bf576106bf33856000856040516024016106909190613e19565b60408051601f198184030181529190526020810180516001600160e01b0316630b9dfbed60e11b179052611815565b6001600160a01b038316156106e6576106e633846000846040516024016106909190613e19565b50505050565b600060018503610706576106ff846118b4565b9050610741565b60028503610717576106ff846118c2565b6003850361072a576106ff8484846118db565b6004850361073d576106ff848484611928565b5060005b949350505050565b600033821580156107c15750604051635ae6bd3760e01b8152600481018690526001600160a01b03821690635ae6bd3790602401602060405180830381865afa15801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107be9190614104565b15155b156107d65750630b135d3f60e11b90506109d7565b60006107e5601482868861411d565b6107ee91614147565b60601c90508015806108065750610804816118b4565b155b1561095c5760006108d1836001600160a01b031663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108729190614104565b60408051602081018b90527f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca910160408051601f1981840301815282825280516020918201209083015201604051602081830303815290604052611963565b805160208201209091506001600160a01b03841663934f3a1182846108f98a6014818e61411d565b6040518563ffffffff1660e01b81526004016109189493929190614194565b60006040518083038186803b15801561093057600080fd5b505afa158015610944573d6000803e3d6000fd5b50630b135d3f60e11b97506109d79650505050505050565b60006109bb338361096b611679565b8a6109798a6014818e61411d565b60405160240161098c9493929190613fb6565b60408051601f198184030181529190526020810180516001600160e01b0316637aa8f17760e11b179052611740565b9050808060200190518101906109d191906141cb565b93505050505b9392505050565b60006f71727de22e5e9d8baf0edac6f37da0326109f9611679565b6001600160a01b031614610a2057604051635629665f60e11b815260040160405180910390fd5b6020840135606081901c90811580610a3e5750610a3c826118b4565b155b15610a5357610a4c866119dd565b9250610ab8565b6000610a9e338460008a8a604051602401610a6f92919061422d565b60408051601f198184030181529190526020810180516001600160e01b0316639700320360e01b179052611685565b905080806020019051810190610ab49190614104565b9350505b8315610ae957610ae9336f71727de22e5e9d8baf0edac6f37da0328660405180602001604052806000815250611815565b50509392505050565b610b24610b026020830183614331565b610b0f602084018461434e565b610b1f6060860160408701614397565b611a83565b610b348989898989898989611b31565b505050505050505050565b610b4a600133611d74565b8060005b818110156106e65736848483818110610b6957610b696143b2565b9050602002810190610b7b91906143c8565b9050610b9733610b8e6020840184614331565b60019190611def565b50600101610b4e565b60606000610bb16001338686611ee4565b915091509250929050565b3360009081526004602090815260408083205460058352818420639517e29f60e01b80865293529083205491926001600160a01b03918216929091169080610c048484610497565b91509150610c1f6f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b0316610c30611679565b6001600160a01b03161480610c5d5750610c48611679565b6001600160a01b0316336001600160a01b0316145b610c7a57604051635629665f60e11b815260040160405180910390fd5b606060018a03610c9657610c8f8989896120a8565b9050610cfb565b60028a03610ca957610c8f898989612104565b60038a03610cbc57610c8f89898961216e565b60048a03610ccf57610c8f8989896122af565b89610cdf57610c8f89898961242e565b60405163041c38b360e41b8152600481018b90526024016105bd565b610d64337f00000000000000000000000000000000000000000000000000000000000000008c8c85604051602401610d35939291906143e8565b60408051601f198184030181529190526020810180516001600160e01b0316639517e29f60e01b1790526125b6565b50610b3484848484610669565b60606000336001600160a01b031663ffa1ad746040518163ffffffff1660e01b8152600401600060405180830381865afa158015610db3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ddb9190810190614412565b905080604051602001610dee919061445a565b60405160208183030381529060405291505090565b33600090815260046020908152604080832054600583528184206314e2ec7560e31b80865293529083205491926001600160a01b03918216929091169080610e4b8484610497565b91509150610e666f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b0316610e77611679565b6001600160a01b03161480610ea45750610e8f611679565b6001600160a01b0316336001600160a01b0316145b610ec157604051635629665f60e11b815260040160405180910390fd5b606060018a03610edd57610ed689898961264f565b9050610f16565b60028a03610ef057610ed6898989612678565b60038a03610f0357610ed68989896126a5565b60048a03610cdf57610ed68989896126f3565b610d64337f00000000000000000000000000000000000000000000000000000000000000008c8c85604051602401610f50939291906143e8565b60408051601f198184030181529190526020810180516001600160e01b0316637827252560e01b1790526127ab565b600081600881901b610f9582600160f81b61172e565b15610fa35760019250610fe6565b610fae82600061172e565b15610fbc5760019250610fe6565b610fce826001600160f81b031961172e565b15610fdc5760019250610fe6565b5060009392505050565b828015610ff95750610ff981600061172e565b15611005575050919050565b82801561101b575061101b81600160f81b61172e565b15610fdc575050919050565b6060611039611034611679565b6118c2565b61106a57611045611679565b604051635c93ff2f60e11b81526001600160a01b0390911660048201526024016105bd565b33600090815260046020908152604080832054600583528184206335a4725960e21b80865293529083205491926001600160a01b039182169290911690806110b28484610497565b915091503360026110c38282612861565b8a600881901b6110d581838e8e6128ec565b9950505050506110e784848484610669565b50505050509392505050565b6000602082901b640100000000600160c01b03166f71727de22e5e9d8baf0edac6f37da032604051631aab3f0d60e11b81526001600160a01b0386811660048301526001600160c01b038416602483015291909116906335567e1a90604401602060405180830381865afa15801561116f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107419190614104565b336000908152600460209081526040808320546005835281842063e9ae5c5360e01b80865293529083205491926001600160a01b039182169290911690806111db8484610497565b915091506111f66f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b0316611207611679565b6001600160a01b03161480611234575061121f611679565b6001600160a01b0316336001600160a01b0316145b61125157604051635629665f60e11b815260040160405180910390fd5b87600881901b3361126382600061172e565b156113c65761127683600160f81b61172e565b156112975789358a01602081019035611290838383612ca8565b505061151f565b6112a283600061172e565b1561130a576000803660006112b78e8e612d0f565b935093509350935061130185858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061181592505050565b5050505061151f565b61131c836001600160f81b031961172e565b156113a15760006113306014828c8e61411d565b61133991614147565b60601c90503660008c8c60149080926113549392919061411d565b91509150611399848484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506125b692505050565b50505061151f565b604051632e5bf3f960e21b81526001600160f81b0319841660048201526024016105bd565b6113d482600160f81b61172e565b156114fa576113e783600160f81b61172e565b156114015789358a01602081019035611290838383612d60565b61140c83600061172e565b1561146b576000803660006114218e8e612d0f565b935093509350935061130185858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612dc792505050565b61147d836001600160f81b031961172e565b156113a15760006114916014828c8e61411d565b61149a91614147565b60601c90503660008c8c60149080926114b59392919061411d565b91509150611399848484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127ab92505050565b6040516308c3ee0360e11b81526001600160f81b0319831660048201526024016105bd565b50505061152e84848484610669565b5050505050505050565b33600090815260026020526040812060609190611556818686612e7d565b92509250509250929050565b6f71727de22e5e9d8baf0edac6f37da03261157b611679565b6001600160a01b031614806115a85750611593611679565b6001600160a01b0316336001600160a01b0316145b6115c557604051635629665f60e11b815260040160405180910390fd5b6106e684848484611a83565b6000600182036115e357506001919050565b600282036115f357506001919050565b6003820361160357506001919050565b6004820361161357506001919050565b506000919050565b919050565b604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b60131936013560601c90565b60606000856001600160a01b0316635229073f86868660006040518563ffffffff1660e01b81526004016116bc94939291906144a0565b6000604051808303816000875af11580156116db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261170391908101906144eb565b925090508061172557604051632b3f6d1160e21b815260040160405180910390fd5b50949350505050565b6001600160f81b031990811691161490565b606060008383604051602401611757929190614538565b60408051601f198184030181529181526020820180516001600160e01b0316636a22165760e01b179052519091506000906117b8907f0000000000000000000000000000000000000000000000000000000000000000908490602401614538565b60408051601f19818403018152919052602080820180516001600160e01b031663b4faba0960e01b17815282519293509091600091895afa5060203d036040519350808401604052806020853e50600051610ae957825160208401fd5b60405163468721a760e01b81526000906001600160a01b0386169063468721a79061184a9087908790879087906004016144a0565b6020604051808303816000875af1158015611869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188d919061455c565b9050806118ad57604051632b3f6d1160e21b815260040160405180910390fd5b5050505050565b600061066360013384613029565b3360009081526002602052604081206109d7818461306d565b6000806118ea83850185613e42565b3360009081526003602090815260408083206001600160e01b0319909416835292905220546001600160a01b03908116908616149150509392505050565b6000808061193884860186614586565b91509150600061194883836130a7565b6001600160a01b039081169088161493505050509392505050565b6060601960f81b600160f81b8585856040516020016119839291906145b2565b60408051808303601f190181529082905280516020918201206001600160f81b0319958616918301919091529290931660218401526022830152604282015260620160405160208183030381529060405290509392505050565b6000806000803660006119ef8761313f565b8451602086012060405163934f3a1160e01b8152959a5093985091965094509250339163934f3a1191611a2a91899087908790600401614194565b60006040518083038186803b158015611a4257600080fd5b505afa925050508015611a53575060015b611a6a57611a636001848661338a565b9550611a79565b611a766000848661338a565b95505b5050505050919050565b3360008181526020819052604080822080546001600160a01b0319166001600160a01b03891617905551611af592918791611ac6908690899089906024016145d8565b60408051601f198184030181529190526020810180516001600160e01b031663f05c04e160e01b179052611815565b6040516001600160a01b0385169033907f9452c8fb077c3ea8f28a77c87488af657b1e44d010ad9a5992d73870da040e9490600090a350505050565b3360009081527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f602052604090205487906001600160a01b0316611bde57611b7a600133611d74565b60005b81811015611bd857368a8a83818110611b9857611b986143b2565b9050602002810190611baa91906143c8565b9050611bce611bbc6020830183614331565b611bc96020840184614630565b6120a8565b5050600101611b7d565b50611bff565b8015611bff5760405163d8e3ed1b60e01b81523360048201526024016105bd565b336000908152600260205260409020611c17816133c2565b86915060005b82811015611c785736898983818110611c3857611c386143b2565b9050602002810190611c4a91906143c8565b9050611c6e611c5c6020830183614331565b611c696020840184614630565b612104565b5050600101611c1d565b5084915060005b82811015611cda5736878783818110611c9a57611c9a6143b2565b9050602002810190611cac91906143c8565b9050611cd0611cbe6020830183614331565b611ccb6020840184614630565b61216e565b5050600101611c7f565b5082915060005b82811015611d3c5736858583818110611cfc57611cfc6143b2565b9050602002810190611d0e91906143c8565b9050611d32611d206020830183614331565b611d2d6020840184614630565b6122af565b5050600101611ce1565b5060405133907ff48581d8a62b775b74f2fb67f1d5806a9a356fbcc598040ab3071d3e37af40c290600090a250505050505050505050565b60016000908152602083815260408083206001600160a01b0380861685529252909120541615611db7576040516329e42f3360e11b815260040160405180910390fd5b60016000818152602093845260408082206001600160a01b0394909416825292909352912080546001600160a01b0319169091179055565b6001600160a01b0381161580611e0e57506001600160a01b0381166001145b15611e3757604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b0381811660009081526020858152604080832086851684529091529020541615611e8657604051631034f46960e21b81526001600160a01b03821660048201526024016105bd565b60016000908152602084815260408083206001600160a01b039586168085528184528285208054968816808752988552838620918652908452919093208054949095166001600160a01b031994851617909455528154169091179055565b606060006001600160a01b038416600114801590611f0a5750611f08868686613029565b155b15611f3357604051637c84ecfb60e01b81526001600160a01b03851660048201526024016105bd565b82600003611f545760405163f725081760e01b815260040160405180910390fd5b826001600160401b03811115611f6c57611f6c613fe8565b604051908082528060200260200182016040528015611f95578160200160208202803683370190505b506001600160a01b038086166000908152602089815260408083208a85168452909152812054929450911691505b6001600160a01b03821615801590611fe557506001600160a01b038216600114155b8015611ff057508381105b156120555781838281518110612008576120086143b2565b6001600160a01b039283166020918202929092018101919091529281166000908152888452604080822089841683529094529290922054909116908061204d8161468c565b915050611fc3565b6001600160a01b03821660011480159061206f5750600081115b1561209b57826120806001836146a5565b81518110612090576120906143b2565b602002602001015191505b8083525094509492505050565b60608360016120b78282612861565b6120c360013388611def565b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b60608360026121138282612861565b33600090815260026020526040902061212c818861341f565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929a9950505050505050505050565b606083600361217d8282612861565b6000808061218d87890189614709565b919450925090506001600160e01b031983166306d61fe760e41b14806121c357506001600160e01b03198316638a91b0e360e01b145b156121ed576040516379bd117b60e01b81526001600160e01b0319841660048201526024016105bd565b3360009081526003602090815260408083206001600160e01b0319871684529091529020546001600160a01b031615612245576040516374420d1560e01b81526001600160e01b0319841660048201526024016105bd565b3360009081526003602090815260408083206001600160e01b031990961683529490529290922080546001600160a01b038a166001600160a01b031960f89490941c600160a01b02939093166001600160a81b031990911617919091179055925050509392505050565b60608360046122be8282612861565b600080806122ce87890189614777565b919450925090506000808460018111156122ea576122ea6147a5565b1480156122ff57506001600160e01b03198316155b156123755750336000908152600460205260409020546001600160a01b031680156123485760405163741cbe0360e01b81526001600160a01b03821660048201526024016105bd565b33600090815260046020526040902080546001600160a01b0319166001600160a01b038c16179055612421565b6001846001811115612389576123896147a5565b03612408576001600160a01b038116156123c15760405163741cbe0360e01b81526001600160a01b03821660048201526024016105bd565b503360009081526005602090815260408083206001600160e01b031986168452909152902080546001600160a01b038b81166001600160a01b031983161790925516612421565b604051635691922f60e01b815260040160405180910390fd5b5098975050505050505050565b606082358301602081810191359085810135860180820191903590604088013588019081019035848381146124765760405163b4fa3fb360e01b815260040160405180910390fd5b60005b8181101561256f576000888883818110612495576124956143b2565b905060200201359050600181036124d4576124ce8d8888858181106124bc576124bc6143b2565b9050602002810190611bc99190614630565b50612566565b60028103612504576124ce8d8888858181106124f2576124f26143b2565b9050602002810190611c699190614630565b60038103612534576124ce8d888885818110612522576125226143b2565b9050602002810190611ccb9190614630565b60048103612566576125648d888885818110612552576125526143b2565b9050602002810190611d2d9190614630565b505b50600101612479565b5082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929e9d5050505050505050505050505050565b60405163468721a760e01b81526000906001600160a01b0385169063468721a7906125ec908690859087906001906004016144a0565b6020604051808303816000875af115801561260b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262f919061455c565b9050806106e657604051632b3f6d1160e21b815260040160405180910390fd5b6060600061265f838501856147bb565b9250905061267060013383886134f5565b509392505050565b336000908152600260205260408120606091612696848601866147bb565b93509050610ae98282886135ec565b606060006126b583850185614800565b3360009081526003602090815260408083206001600160e01b031990951683529390529190912080546001600160a01b031916905595945050505050565b606060008061270484860186614777565b94509092509050600082600181111561271f5761271f6147a5565b14801561273457506001600160e01b03198116155b1561275b5733600090815260046020526040902080546001600160a01b0319169055610ae9565b600182600181111561276f5761276f6147a5565b03612408573360009081526005602090815260408083206001600160e01b031985168452909152902080546001600160a01b0319169055610ae9565b60405163468721a760e01b81526000906001600160a01b0385169063468721a7906127e1908690859087906001906004016144a0565b6020604051808303816000875af1158015612800573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612824919061455c565b9050806106e657604080516001600160a01b038616815260006020820152600080516020614ad7833981519152910160405180910390a150505050565b336000908152602081905260409020546001600160a01b031680156128e75760405163529562a160e01b81523360048201526001600160a01b0384811660248301526044820184905282169063529562a19060640160006040518083038186803b1580156128ce57600080fd5b505afa1580156128e2573d6000803e3d6000fd5b505050505b505050565b60606128f985600061172e565b15612aef5761290c84600160f81b61172e565b1561292f57823583016020810190356129263383836136c1565b92505050610741565b61293a84600061172e565b156129ee5760008036600061294f8787612d0f565b6040805160018082528183019092529498509296509094509250816020015b606081526020019060019003908161296e5790505094506129c733858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061168592505050565b856000815181106129da576129da6143b2565b602002602001018190525050505050610741565b612a00846001600160f81b031961172e565b15612aca576000612a14601482858761411d565b612a1d91614147565b60601c9050366000612a32856014818961411d565b604080516001808252818301909252929450909250816020015b6060815260200190600190039081612a4c579050509350612aa4338484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061374b92505050565b84600081518110612ab757612ab76143b2565b6020026020010181905250505050610741565b604051632e5bf3f960e21b81526001600160f81b0319851660048201526024016105bd565b612afd85600160f81b61172e565b15612c8357612b1084600160f81b61172e565b15612b355782358301602081019035612b2a3383836137ec565b935061074192505050565b612b4084600061172e565b15612bcd57600080366000612b558787612d0f565b6040805160018082528183019092529498509296509094509250816020015b6060815260200190600190039081612b745790505094506129c733858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061387b92505050565b612bdf846001600160f81b031961172e565b15612aca576000612bf3601482858761411d565b612bfc91614147565b60601c9050366000612c11856014818961411d565b604080516001808252818301909252929450909250816020015b6060815260200190600190039081612c2b579050509350612aa4338484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061393b92505050565b6040516308c3ee0360e11b81526001600160f81b0319861660048201526024016105bd565b6128e7837f00000000000000000000000000000000000000000000000000000000000000008484604051602401612ce092919061481e565b60408051601f198184030181529190526020810180516001600160e01b0316633f707e6b60e01b1790526125b6565b6000803681612d21601482878961411d565b612d2a91614147565b60601c9350612d3d60346014878961411d565b612d46916148d0565b9250612d55856034818961411d565b949793965094505050565b6128e7837f00000000000000000000000000000000000000000000000000000000000000008484604051602401612d9892919061481e565b60408051601f198184030181529190526020810180516001600160e01b0316632864481160e11b1790526127ab565b60405163468721a760e01b81526000906001600160a01b0386169063468721a790612dfc9087908790879087906004016144a0565b6020604051808303816000875af1158015612e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3f919061455c565b9050806118ad57604080516001600160a01b038716815260006020820152600080516020614ad7833981519152910160405180910390a15050505050565b606060006001600160a01b038416600114801590612ea25750612ea0858561306d565b155b15612ecb57604051637c84ecfb60e01b81526001600160a01b03851660048201526024016105bd565b82600003612eec5760405163f725081760e01b815260040160405180910390fd5b826001600160401b03811115612f0457612f04613fe8565b604051908082528060200260200182016040528015612f2d578160200160208202803683370190505b506001600160a01b03808616600090815260208890526040812054929450911691505b6001600160a01b03821615801590612f7257506001600160a01b038216600114155b8015612f7d57508381105b15612fd75781838281518110612f9557612f956143b2565b6001600160a01b039283166020918202929092018101919091529281166000908152928790526040909220549091169080612fcf8161468c565b915050612f50565b6001600160a01b038216600114801590612ff15750600081115b1561301d57826130026001836146a5565b81518110613012576130126143b2565b602002602001015191505b80835250935093915050565b600060016001600160a01b038316148015906107415750506001600160a01b0390811660009081526020938452604080822093831682529290935291205416151590565b600060016001600160a01b038316148015906109d75750506001600160a01b03908116600090815260209290925260409091205416151590565b6000808360018111156130bc576130bc6147a5565b1480156130d157506001600160e01b03198216155b156130f15750336000908152600460205260409020546001600160a01b03165b6001836001811115613105576131056147a5565b0361066357503360009081526005602090815260408083206001600160e01b0319851684529091529020546001600160a01b031692915050565b606060008036818181613156610100890189614630565b909250905061316960066000838561411d565b613172916148ee565b60d01c9550613185600c6006838561411d565b61318e916148ee565b60d01c94506131a081600c818561411d565b9350935050506000604051806101c001604052807fc03dfc11d8b10bf9cf703d558958c8c42777f785d998c62060d85a4f0ef6ea7f60001b81526020018860000160208101906131f09190614331565b6001600160a01b03168152602001886020013581526020018880604001906132189190614630565b604051613226929190614924565b604051908190039020815260200161324160608a018a614630565b60405161324f929190614924565b60405180910390208152602001613265896139fb565b6001600160801b0316815260200161327c89613a0b565b6001600160801b031681526020018860a00135815260200161329d89613a20565b6001600160801b031681526020016132b489613a2f565b6001600160801b031681526020016132cf60e08a018a614630565b6040516132dd929190614924565b604051809103902081526020018665ffffffffffff1681526020018565ffffffffffff16815260200161331d6f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b031690526101c08120909150601960f81b600160f81b613342611620565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529650505091939590929450565b600060d08265ffffffffffff16901b60a08465ffffffffffff16901b856133b25760006133b5565b60015b60ff161717949350505050565b60016000908152602082905260409020546001600160a01b0316156133fa576040516329e42f3360e11b815260040160405180910390fd5b60016000818152602092909252604090912080546001600160a01b0319169091179055565b6001600160a01b038116158061343e57506001600160a01b0381166001145b1561346757604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b0381811660009081526020849052604090205416156134ab57604051631034f46960e21b81526001600160a01b03821660048201526024016105bd565b60016000818152602093909352604080842080546001600160a01b039485168087529286208054959091166001600160a01b03199586161790559190935280549091169091179055565b6001600160a01b038116158061351457506001600160a01b0381166001145b1561353d57604051637c84ecfb60e01b81526001600160a01b03831660048201526024016105bd565b6001600160a01b03828116600090815260208681526040808320878516845290915290205481169082161461359057604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b039081166000908152602085815260408083209584168084528683528184208054968616855297835281842090845282529091208054939092166001600160a01b031993841617909155919091528154169055565b6001600160a01b038116158061360b57506001600160a01b0381166001145b1561363457604051637c84ecfb60e01b81526001600160a01b03831660048201526024016105bd565b6001600160a01b0382811660009081526020859052604090205481169082161461367c57604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b0390811660008181526020949094526040808520805494841686529085208054949093166001600160a01b0319948516179092559092528154169055565b6060600061372c857f000000000000000000000000000000000000000000000000000000000000000086866040516024016136fd92919061481e565b60408051601f198184030181529190526020810180516001600160e01b0316636108557360e01b17905261374b565b90508080602001905181019061374291906149e3565b95945050505050565b60606000846001600160a01b0316635229073f8560008660016040518563ffffffff1660e01b815260040161378394939291906144a0565b6000604051808303816000875af11580156137a2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526137ca91908101906144eb565b925090508061267057604051632b3f6d1160e21b815260040160405180910390fd5b6060806000613858867f0000000000000000000000000000000000000000000000000000000000000000878760405160240161382992919061481e565b60408051601f198184030181529190526020810180516001600160e01b0316639abb6e1760e01b17905261393b565b90508080602001905181019061386e9190614a17565b9097909650945050505050565b60606000856001600160a01b0316635229073f86868660006040518563ffffffff1660e01b81526004016138b294939291906144a0565b6000604051808303816000875af11580156138d1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138f991908101906144eb565b925090508061172557604080516001600160a01b038816815260006020820152600080516020614ad7833981519152910160405180910390a150949350505050565b60606000846001600160a01b0316635229073f8560008660016040518563ffffffff1660e01b815260040161397394939291906144a0565b6000604051808303816000875af1158015613992573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526139ba91908101906144eb565b925090508061267057604080516001600160a01b038716815260006020820152600080516020614ad7833981519152910160405180910390a1509392505050565b6000610663826080013560801c90565b60006001600160801b03608083013516610663565b600060c082013560801c610663565b60006001600160801b0360c083013516610663565b6001600160a01b0381168114613a5957600080fd5b50565b803561161b81613a44565b60008083601f840112613a7957600080fd5b5081356001600160401b03811115613a9057600080fd5b60208301915083602082850101111561054e57600080fd5b60008060008060608587031215613abe57600080fd5b843593506020850135613ad081613a44565b925060408501356001600160401b03811115613aeb57600080fd5b613af787828801613a67565b95989497509550505050565b600080600060408486031215613b1857600080fd5b8335925060208401356001600160401b03811115613b3557600080fd5b613b4186828701613a67565b9497909650939450505050565b600080600060608486031215613b6357600080fd5b83356001600160401b03811115613b7957600080fd5b84016101208187031215613b8c57600080fd5b95602085013595506040909401359392505050565b60008083601f840112613bb357600080fd5b5081356001600160401b03811115613bca57600080fd5b6020830191508360208260051b850101111561054e57600080fd5b600060608284031215613bf757600080fd5b50919050565b600080600080600080600080600060a08a8c031215613c1b57600080fd5b89356001600160401b03811115613c3157600080fd5b613c3d8c828d01613ba1565b909a5098505060208a01356001600160401b03811115613c5c57600080fd5b613c688c828d01613ba1565b90985096505060408a01356001600160401b03811115613c8757600080fd5b613c938c828d01613ba1565b90965094505060608a01356001600160401b03811115613cb257600080fd5b613cbe8c828d01613ba1565b90945092505060808a01356001600160401b03811115613cdd57600080fd5b613ce98c828d01613be5565b9150509295985092959850929598565b60008060208385031215613d0c57600080fd5b82356001600160401b03811115613d2257600080fd5b613d2e85828601613ba1565b90969095509350505050565b60008060408385031215613d4d57600080fd5b8235613d5881613a44565b946020939093013593505050565b6040808252835190820181905260009060208501906060840190835b81811015613da95783516001600160a01b0316835260209384019390920191600101613d82565b50506001600160a01b039490941660209390930192909252509092915050565b60005b83811015613de4578181015183820152602001613dcc565b50506000910152565b60008151808452613e05816020860160208601613dc9565b601f01601f19169290920160200192915050565b6020815260006109d76020830184613ded565b6001600160e01b031981168114613a5957600080fd5b600060208284031215613e5457600080fd5b81356109d781613e2c565b600060208284031215613e7157600080fd5b5035919050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015613ed157603f19878603018452613ebc858351613ded565b94506020938401939190910190600101613ea0565b50929695505050505050565b60008060408385031215613ef057600080fd5b8235613efb81613a44565b91506020830135613f0b81613a44565b809150509250929050565b803560ff8116811461161b57600080fd5b60008060008060608587031215613f3d57600080fd5b8435613f4881613a44565b935060208501356001600160401b03811115613f6357600080fd5b613f6f87828801613ba1565b9094509250613f82905060408601613f16565b905092959194509250565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b0385168152836020820152606060408201526000613fde606083018486613f8d565b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561402657614026613fe8565b604052919050565b60006001600160401b0382111561404757614047613fe8565b50601f01601f191660200190565b60006140686140638461402e565b613ffe565b905082815283838301111561407c57600080fd5b6109d7836020830184613dc9565b600082601f83011261409b57600080fd5b6109d783835160208501614055565b6000602082840312156140bc57600080fd5b81516001600160401b038111156140d257600080fd5b6107418482850161408a565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60006020828403121561411657600080fd5b5051919050565b6000808585111561412d57600080fd5b8386111561413a57600080fd5b5050820193919092039150565b80356bffffffffffffffffffffffff19811690601484101561418d576bffffffffffffffffffffffff196bffffffffffffffffffffffff198560140360031b1b82161691505b5092915050565b8481526060602082015260006141ad6060830186613ded565b82810360408401526141c0818587613f8d565b979650505050505050565b6000602082840312156141dd57600080fd5b81516109d781613e2c565b6000808335601e198436030181126141ff57600080fd5b83016020810192503590506001600160401b0381111561421e57600080fd5b80360382131561054e57600080fd5b6040815261424e6040820161424185613a5c565b6001600160a01b03169052565b60208301356060820152600061426760408501856141e8565b610120608085015261427e61016085018284613f8d565b91505061428e60608601866141e8565b848303603f190160a08601526142a5838284613f8d565b608088013560c08781019190915260a089013560e080890191909152908901356101008801529093506142dd925087019050866141e8565b848303603f19016101208601526142f5838284613f8d565b925050506143076101008601866141e8565b848303603f190161014086015261431f838284613f8d565b93505050508260208301529392505050565b60006020828403121561434357600080fd5b81356109d781613a44565b6000808335601e1984360301811261436557600080fd5b8301803591506001600160401b0382111561437f57600080fd5b6020019150600581901b360382131561054e57600080fd5b6000602082840312156143a957600080fd5b6109d782613f16565b634e487b7160e01b600052603260045260246000fd5b60008235603e198336030181126143de57600080fd5b9190910192915050565b8381526001600160a01b038316602082015260606040820181905260009061374290830184613ded565b60006020828403121561442457600080fd5b81516001600160401b0381111561443a57600080fd5b8201601f8101841361444b57600080fd5b61074184825160208401614055565b64736166652d60d81b81526000825161447a816005850160208701613dc9565b6e2e657263373537392e76302e302e3160881b6005939091019283015250601401919050565b60018060a01b03851681528360208201526080604082015260006144c76080830185613ded565b905060ff8316606083015295945050505050565b8051801515811461161b57600080fd5b600080604083850312156144fe57600080fd5b614507836144db565b915060208301516001600160401b0381111561452257600080fd5b61452e8582860161408a565b9150509250929050565b6001600160a01b038316815260406020820181905260009061074190830184613ded565b60006020828403121561456e57600080fd5b6109d7826144db565b80356002811061161b57600080fd5b6000806040838503121561459957600080fd5b6145a283614577565b91506020830135613f0b81613e2c565b828152600082516145ca816020850160208701613dc9565b919091016020019392505050565b60ff84168152604060208201819052810182905260008360608301825b8581101561462557823561460881613a44565b6001600160a01b03168252602092830192909101906001016145f5565b509695505050505050565b6000808335601e1984360301811261464757600080fd5b8301803591506001600160401b0382111561466157600080fd5b60200191503681900382131561054e57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161469e5761469e614676565b5060010190565b8181038181111561066357610663614676565b600082601f8301126146c957600080fd5b81356146d76140638261402e565b8181528460208386010111156146ec57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561471e57600080fd5b833561472981613e2c565b925060208401356001600160f81b03198116811461474657600080fd5b915060408401356001600160401b0381111561476157600080fd5b61476d868287016146b8565b9150509250925092565b60008060006060848603121561478c57600080fd5b61479584614577565b9250602084013561474681613e2c565b634e487b7160e01b600052602160045260246000fd5b600080604083850312156147ce57600080fd5b82356147d981613a44565b915060208301356001600160401b038111156147f457600080fd5b61452e858286016146b8565b6000806040838503121561481357600080fd5b82356147d981613e2c565b6020808252810182905260006040600584901b830181019083018583605e1936839003015b878210156148c357868503603f19018452823581811261486257600080fd5b8901803561486f81613a44565b6001600160a01b031686526020818101359087015261489160408201826141e8565b9150606060408801526148a8606088018383613f8d565b96505050602083019250602084019350600182019150614843565b5092979650505050505050565b8035602083101561066357600019602084900360031b1b1692915050565b80356001600160d01b0319811690600684101561418d576001600160d01b031960069490940360031b84901b1690921692915050565b8183823760009101908152919050565b60006001600160401b0382111561494d5761494d613fe8565b5060051b60200190565b600082601f83011261496857600080fd5b815161497661406382614934565b8082825260208201915060208360051b86010192508583111561499857600080fd5b602085015b838110156149d95780516001600160401b038111156149bb57600080fd5b6149ca886020838a010161408a565b8452506020928301920161499d565b5095945050505050565b6000602082840312156149f557600080fd5b81516001600160401b03811115614a0b57600080fd5b61074184828501614957565b60008060408385031215614a2a57600080fd5b82516001600160401b03811115614a4057600080fd5b8301601f81018513614a5157600080fd5b8051614a5f61406382614934565b8082825260208201915060208360051b850101925087831115614a8157600080fd5b6020840193505b82841015614aaa57614a99846144db565b825260209384019390910190614a88565b8095505050505060208301516001600160401b03811115614aca57600080fd5b61452e8582860161495756feb8bc84bd77f5eb08210b8eb20fd63b3ec6a7992d277ab94663bae0e066f792aca2646970667358221220ea61ad763284881149748ddd79675cc8013f934a2a4db1bb658c0c975b908ebb64736f6c634300081a00336080604052348015600f57600080fd5b506109d18061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636a2216571161005b5780636a221657146100df57806378272525146100f25780639517e29f146101055780639abb6e171461011857600080fd5b80633f707e6b1461008257806350c890221461009757806361085573146100bf575b600080fd5b6100956100903660046105c9565b610139565b005b6100aa6100a53660046105c9565b6101a3565b60405190151581526020015b60405180910390f35b6100d26100cd3660046105c9565b610212565b6040516100b691906106d3565b6100956100ed36600461071f565b6102cc565b6100956101003660046107e9565b6102ef565b6100956101133660046107e9565b610398565b61012b6101263660046105c9565b610437565b6040516100b6929190610873565b8060005b8181101561019d5736848483818110610158576101586108cd565b905060200281019061016a91906108e3565b905061019361017c6020830183610903565b602083013561018e604085018561091e565b610561565b505060010161013d565b50505050565b600081815b8181101561020a57368585838181106101c3576101c36108cd565b90506020028101906101d591906108e3565b90506101fe6101e76020830183610903565b60208301356101f9604085018561091e565b610597565b509350506001016101a8565b505092915050565b6060818067ffffffffffffffff81111561022e5761022e610709565b60405190808252806020026020018201604052801561026157816020015b606081526020019060019003908161024c5790505b50915060005b8181101561020a5736858583818110610282576102826108cd565b905060200281019061029491906108e3565b90506102a661017c6020830183610903565b8483815181106102b8576102b86108cd565b602090810291909101015250600101610267565b604051600080835160208501865afa3d6000833e80156102ea573d82f35b503d81fd5b604051638a91b0e360e01b81526001600160a01b03841690638a91b0e39061031d908590859060040161096c565b600060405180830381600087803b15801561033757600080fd5b505af115801561034b573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527f341347516a9de374859dfda710fa4828b2d48cb57d4fbe4c1149612b8e02276e93500190505b60405180910390a150505050565b6040516306d61fe760e41b81526001600160a01b03841690636d61fe70906103c6908590859060040161096c565b600060405180830381600087803b1580156103e057600080fd5b505af11580156103f4573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905061038a565b606080828067ffffffffffffffff81111561045457610454610709565b60405190808252806020026020018201604052801561048757816020015b60608152602001906001900390816104725790505b5091508067ffffffffffffffff8111156104a3576104a3610709565b6040519080825280602002602001820160405280156104cc578160200160208202803683370190505b50925060005b8181101561055857368686838181106104ed576104ed6108cd565b90506020028101906104ff91906108e3565b90506105116101e76020830183610903565b868481518110610523576105236108cd565b6020026020010186858151811061053c5761053c6108cd565b60209081029190910101919091529015159052506001016104d2565b50509250929050565b60405181838237600038838387895af161057e573d6000823e3d81fd5b3d8152602081013d6000823e3d01604052949350505050565b604051600090828482376000388483888a5af11591503d8152602081013d6000823e3d81016040525094509492505050565b600080602083850312156105dc57600080fd5b823567ffffffffffffffff8111156105f357600080fd5b8301601f8101851361060457600080fd5b803567ffffffffffffffff81111561061b57600080fd5b8560208260051b840101111561063057600080fd5b6020919091019590945092505050565b600082825180855260208501945060208160051b8301016020850160005b838110156106c757848303601f190188528151805180855260005b8181101561069557602081840181015187830182015201610679565b506000602082870101526020601f19601f8301168601019450505060208201915060208801975060018101905061065e565b50909695505050505050565b6020815260006106e66020830184610640565b9392505050565b80356001600160a01b038116811461070457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561073257600080fd5b61073b836106ed565b9150602083013567ffffffffffffffff81111561075757600080fd5b8301601f8101851361076857600080fd5b803567ffffffffffffffff81111561078257610782610709565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156107b1576107b1610709565b6040528181528282016020018710156107c957600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080606085870312156107ff57600080fd5b8435935061080f602086016106ed565b9250604085013567ffffffffffffffff81111561082b57600080fd5b8501601f8101871361083c57600080fd5b803567ffffffffffffffff81111561085357600080fd5b87602082840101111561086557600080fd5b949793965060200194505050565b6040808252835190820181905260009060208501906060840190835b818110156108af578351151583526020938401939092019160010161088f565b505083810360208501526108c38186610640565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60008235605e198336030181126108f957600080fd5b9190910192915050565b60006020828403121561091557600080fd5b6106e6826106ed565b6000808335601e1984360301811261093557600080fd5b83018035915067ffffffffffffffff82111561095057600080fd5b60200191503681900382131561096557600080fd5b9250929050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f1916010191905056fea2646970667358221220720ef7861d004c898c5584226bd363229b671686bc710cd9ba8dec323c2a769164736f6c634300081a0033", + "nonce": "0x4d", + "chainId": "0xaa36a7" + }, + "additionalContracts": [ + { + "transactionType": "CREATE", + "address": "0x78aefdbd752a61167461f51da5eb328330e0f1c6", + "initCode": "0x6080604052348015600f57600080fd5b506109d18061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636a2216571161005b5780636a221657146100df57806378272525146100f25780639517e29f146101055780639abb6e171461011857600080fd5b80633f707e6b1461008257806350c890221461009757806361085573146100bf575b600080fd5b6100956100903660046105c9565b610139565b005b6100aa6100a53660046105c9565b6101a3565b60405190151581526020015b60405180910390f35b6100d26100cd3660046105c9565b610212565b6040516100b691906106d3565b6100956100ed36600461071f565b6102cc565b6100956101003660046107e9565b6102ef565b6100956101133660046107e9565b610398565b61012b6101263660046105c9565b610437565b6040516100b6929190610873565b8060005b8181101561019d5736848483818110610158576101586108cd565b905060200281019061016a91906108e3565b905061019361017c6020830183610903565b602083013561018e604085018561091e565b610561565b505060010161013d565b50505050565b600081815b8181101561020a57368585838181106101c3576101c36108cd565b90506020028101906101d591906108e3565b90506101fe6101e76020830183610903565b60208301356101f9604085018561091e565b610597565b509350506001016101a8565b505092915050565b6060818067ffffffffffffffff81111561022e5761022e610709565b60405190808252806020026020018201604052801561026157816020015b606081526020019060019003908161024c5790505b50915060005b8181101561020a5736858583818110610282576102826108cd565b905060200281019061029491906108e3565b90506102a661017c6020830183610903565b8483815181106102b8576102b86108cd565b602090810291909101015250600101610267565b604051600080835160208501865afa3d6000833e80156102ea573d82f35b503d81fd5b604051638a91b0e360e01b81526001600160a01b03841690638a91b0e39061031d908590859060040161096c565b600060405180830381600087803b15801561033757600080fd5b505af115801561034b573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527f341347516a9de374859dfda710fa4828b2d48cb57d4fbe4c1149612b8e02276e93500190505b60405180910390a150505050565b6040516306d61fe760e41b81526001600160a01b03841690636d61fe70906103c6908590859060040161096c565b600060405180830381600087803b1580156103e057600080fd5b505af11580156103f4573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905061038a565b606080828067ffffffffffffffff81111561045457610454610709565b60405190808252806020026020018201604052801561048757816020015b60608152602001906001900390816104725790505b5091508067ffffffffffffffff8111156104a3576104a3610709565b6040519080825280602002602001820160405280156104cc578160200160208202803683370190505b50925060005b8181101561055857368686838181106104ed576104ed6108cd565b90506020028101906104ff91906108e3565b90506105116101e76020830183610903565b868481518110610523576105236108cd565b6020026020010186858151811061053c5761053c6108cd565b60209081029190910101919091529015159052506001016104d2565b50509250929050565b60405181838237600038838387895af161057e573d6000823e3d81fd5b3d8152602081013d6000823e3d01604052949350505050565b604051600090828482376000388483888a5af11591503d8152602081013d6000823e3d81016040525094509492505050565b600080602083850312156105dc57600080fd5b823567ffffffffffffffff8111156105f357600080fd5b8301601f8101851361060457600080fd5b803567ffffffffffffffff81111561061b57600080fd5b8560208260051b840101111561063057600080fd5b6020919091019590945092505050565b600082825180855260208501945060208160051b8301016020850160005b838110156106c757848303601f190188528151805180855260005b8181101561069557602081840181015187830182015201610679565b506000602082870101526020601f19601f8301168601019450505060208201915060208801975060018101905061065e565b50909695505050505050565b6020815260006106e66020830184610640565b9392505050565b80356001600160a01b038116811461070457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561073257600080fd5b61073b836106ed565b9150602083013567ffffffffffffffff81111561075757600080fd5b8301601f8101851361076857600080fd5b803567ffffffffffffffff81111561078257610782610709565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156107b1576107b1610709565b6040528181528282016020018710156107c957600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080606085870312156107ff57600080fd5b8435935061080f602086016106ed565b9250604085013567ffffffffffffffff81111561082b57600080fd5b8501601f8101871361083c57600080fd5b803567ffffffffffffffff81111561085357600080fd5b87602082840101111561086557600080fd5b949793965060200194505050565b6040808252835190820181905260009060208501906060840190835b818110156108af578351151583526020938401939092019160010161088f565b505083810360208501526108c38186610640565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60008235605e198336030181126108f957600080fd5b9190910192915050565b60006020828403121561091557600080fd5b6106e6826106ed565b6000808335601e1984360301811261093557600080fd5b83018035915067ffffffffffffffff82111561095057600080fd5b60200191503681900382131561096557600080fd5b9250929050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f1916010191905056fea2646970667358221220720ef7861d004c898c5584226bd363229b671686bc710cd9ba8dec323c2a769164736f6c634300081a0033" + } + ], + "isFixedGasLimit": false + }, + { + "hash": "0x1bbfb6556b104b95a47925c35f0433619514af54fb20d5fbe2a4e0635c7e387e", + "transactionType": "CREATE2", + "contractName": "Safe7579Launchpad", + "contractAddress": "0x026d0f3e4e547d319aba75c91a1d5ed7760f46e7", + "function": null, + "arguments": [ + "0x0000000071727De22E5E9d8BAf0edAc6f37da032", + "0xe0cde9239d16bEf05e62Bbf7aA93e420f464c826" + ], + "transaction": { + "from": "0x8749313f626b100b822d573c71dfffdaca383032", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x1ea410", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060e060405234801561001057600080fd5b50604051611a4d380380611a4d83398101604081905261002f91610089565b6001600160a01b03821661005657604051632039d3c960e01b815260040160405180910390fd5b306080526001600160a01b0391821660a0521660c0526100c3565b6001600160a01b038116811461008657600080fd5b50565b6000806040838503121561009c57600080fd5b82516100a781610071565b60208401519092506100b881610071565b809150509250929050565b60805160a05160c05161194161010c6000396000818160a801526102e901526000818160f90152818161041701526109850152600081816103c2015261075401526119416000f3fe60806040526004361061008a5760003560e01c80634fff40e1116100595780634fff40e11461016b578063663c87d81461018b578063928107f9146101ab578063c67e2d2a146101cb578063d9ed0e8f146101ed57600080fd5b806306433b1b14610096578063137e051e146100e757806315cca6381461011b57806319822f7c1461013d57600080fd5b3661009157005b600080fd5b3480156100a257600080fd5b506100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f357600080fd5b506100ca7f000000000000000000000000000000000000000000000000000000000000000081565b34801561012757600080fd5b5061013b610136366004610bdc565b61020d565b005b34801561014957600080fd5b5061015d610158366004610cd0565b6103bc565b6040519081526020016100de565b34801561017757600080fd5b5061013b610186366004610d23565b61074f565b34801561019757600080fd5b506100ca6101a6366004610ead565b610849565b3480156101b757600080fd5b5061015d6101c63660046110b2565b610928565b3480156101d757600080fd5b506000805160206118ec8339815191525461015d565b3480156101f957600080fd5b5061013b6102083660046111e0565b61097a565b33301461022d57604051630a57d61d60e01b815260040160405180910390fd5b60405163610b592560e01b81526001600160a01b038b166004820152309063610b592590602401600060405180830381600087803b15801561026e57600080fd5b505af1158015610282573d6000803e3d6000fd5b5050604080516000808252602082019092526001600160a01b038e16935063540fb4f99250906102d5565b6040805180820190915260008152606060208201528152602001906001900390816102ad5790505b508b8b8b8b8b8b60405180606001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020018d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060ff8c166020909101526040516001600160e01b031960e08b901b16815261037e98979695949392919060040161142d565b600060405180830381600087803b15801561039857600080fd5b505af11580156103ac573d6000803e3d6000fd5b5050505050505050505050505050565b600080547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161461040c576040516308e3edd160e41b815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461045557604051632039d3c960e01b815260040160405180910390fd5b61046260608501856114cd565b61047191600491600091611513565b61047a9161153d565b6001600160e01b03191663d9ed0e8f60e01b146104aa5760405163c3d40f7760e01b815260040160405180910390fd5b60006104b960608601866114cd565b6104c7916004908290611513565b8101906104d491906110b2565b90506104ec6000805160206118ec8339815191525490565b6104f582610928565b146105135760405163278328b160e21b815260040160405180910390fd5b60a081015160c0820151604051636a5e151560e01b81526020880135606081901c9390926001600160a01b0390911691636a5e15159161055591600401611575565b600060405180830381600087803b15801561056f57600080fd5b505af1158015610583573d6000803e3d6000fd5b50505060c08401515160009150815b818110156106a95760008660c0015182815181106105b2576105b2611588565b6020026020010151600001519050806001600160a01b0316636d61fe708860c0015184815181106105e5576105e5611588565b6020026020010151602001516040518263ffffffff1660e01b815260040161060d919061159e565b600060405180830381600087803b15801561062757600080fd5b505af115801561063b573d6000803e3d6000fd5b505060408051600181526001600160a01b03851660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905060405180910390a1856001600160a01b0316816001600160a01b0316036106a057600193505b50600101610592565b50816106bd57600195505050505050610748565b604051639700320360e01b81526001600160a01b038516906397003203906106eb908c908c906004016115b1565b6020604051808303816000875af115801561070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072e91906116b5565b95508615610742576000806000808a335af1505b50505050505b9392505050565b6000547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161461079e576040516308e3edd160e41b815260040160405180910390fd5b6107b4846000805160206118ec83398151915255565b6001600160a01b03831615610843576000836001600160a01b031683836040516107df9291906116ce565b600060405180830381855af49150503d806000811461081a576040519150601f19603f3d011682016040523d82523d6000602084013e61081f565b606091505b505090508061084157604051631f57fed560e31b815260040160405180910390fd5b505b50505050565b600081805190602001208360405160200161086e929190918252602082015260400190565b60405160208183030381529060405280519060200120925060ff60f81b858486896001600160a01b03166040516020016108a99291906116de565b6040516020818303038152906040528051906020012060405160200161090694939291906001600160f81b031994909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b80516020808301516040808501516060860151608087015160a088015160c0890151945160009861095d989097969101611700565b604051602081830303815290604052805190602001209050919050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109c357604051632039d3c960e01b815260040160405180910390fd5b6109d0602082018261177d565b600080546001600160a01b0319166001600160a01b03929092169190911790553063b63e800d610a03602084018461179a565b6040850135610a18608087016060880161177d565b610a2560808801886114cd565b610a3560c08a0160a08b0161177d565b60008060006040518b63ffffffff1660e01b8152600401610a5f9a999897969594939291906117e3565b600060405180830381600087803b158015610a7957600080fd5b505af1158015610a8d573d6000803e3d6000fd5b505060006000805160206118ec8339815191525550610aa99050565b600080610abc60c0840160a0850161177d565b6001600160a01b0316610ad260e08501856114cd565b30604051602001610ae5939291906118a9565b60408051601f1981840301815290829052610aff916118cf565b6000604051808303816000865af19150503d8060008114610b3c576040519150601f19603f3d011682016040523d82523d6000602084013e610b41565b606091505b509150915081610b5357805160208201fd5b505050565b6001600160a01b0381168114610b6d57600080fd5b50565b8035610b7b81610b58565b919050565b60008083601f840112610b9257600080fd5b5081356001600160401b03811115610ba957600080fd5b6020830191508360208260051b8501011115610bc457600080fd5b9250929050565b803560ff81168114610b7b57600080fd5b60008060008060008060008060008060c08b8d031215610bfb57600080fd5b610c048b610b70565b995060208b01356001600160401b03811115610c1f57600080fd5b610c2b8d828e01610b80565b909a5098505060408b01356001600160401b03811115610c4a57600080fd5b610c568d828e01610b80565b90985096505060608b01356001600160401b03811115610c7557600080fd5b610c818d828e01610b80565b90965094505060808b01356001600160401b03811115610ca057600080fd5b610cac8d828e01610b80565b9094509250610cbf905060a08c01610bcb565b90509295989b9194979a5092959850565b600080600060608486031215610ce557600080fd5b83356001600160401b03811115610cfb57600080fd5b84016101208187031215610d0e57600080fd5b95602085013595506040909401359392505050565b60008060008060608587031215610d3957600080fd5b843593506020850135610d4b81610b58565b925060408501356001600160401b03811115610d6657600080fd5b8501601f81018713610d7757600080fd5b80356001600160401b03811115610d8d57600080fd5b876020828401011115610d9f57600080fd5b949793965060200194505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610de557610de5610dad565b60405290565b60405161010081016001600160401b0381118282101715610de557610de5610dad565b604051601f8201601f191681016001600160401b0381118282101715610e3657610e36610dad565b604052919050565b600082601f830112610e4f57600080fd5b81356001600160401b03811115610e6857610e68610dad565b610e7b601f8201601f1916602001610e0e565b818152846020838601011115610e9057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215610ec557600080fd5b8535610ed081610b58565b94506020860135610ee081610b58565b935060408601356001600160401b03811115610efb57600080fd5b610f0788828901610e3e565b9350506060860135915060808601356001600160401b03811115610f2a57600080fd5b610f3688828901610e3e565b9150509295509295909350565b60006001600160401b03821115610f5c57610f5c610dad565b5060051b60200190565b600082601f830112610f7757600080fd5b8135610f8a610f8582610f43565b610e0e565b8082825260208201915060208360051b860101925085831115610fac57600080fd5b602085015b83811015610fd2578035610fc481610b58565b835260209283019201610fb1565b5095945050505050565b600082601f830112610fed57600080fd5b8135610ffb610f8582610f43565b8082825260208201915060208360051b86010192508583111561101d57600080fd5b602085015b83811015610fd25780356001600160401b0381111561104057600080fd5b86016040818903601f1901121561105657600080fd5b61105e610dc3565b602082013561106c81610b58565b815260408201356001600160401b0381111561108757600080fd5b6110968a602083860101610e3e565b6020830152508085525050602083019250602081019050611022565b6000602082840312156110c457600080fd5b81356001600160401b038111156110da57600080fd5b820161010081850312156110ed57600080fd5b6110f5610deb565b6110fe82610b70565b815260208201356001600160401b0381111561111957600080fd5b61112586828501610f66565b6020830152506040828101359082015261114160608301610b70565b606082015260808201356001600160401b0381111561115f57600080fd5b61116b86828501610e3e565b60808301525061117d60a08301610b70565b60a082015260c08201356001600160401b0381111561119b57600080fd5b6111a786828501610fdc565b60c08301525060e08201356001600160401b038111156111c657600080fd5b6111d286828501610e3e565b60e083015250949350505050565b6000602082840312156111f257600080fd5b81356001600160401b0381111561120857600080fd5b8201610100818503121561074857600080fd5b60005b8381101561123657818101518382015260200161121e565b50506000910152565b6000815180845261125781602086016020860161121b565b601f01601f19169290920160200192915050565b600082825180855260208501945060208160051b8301016020850160005b838110156112db57848303601f19018852815180516001600160a01b031684526020908101516040918501829052906112c49085018261123f565b6020998a0199909450929092019150600101611289565b50909695505050505050565b6000808335601e198436030181126112fe57600080fd5b83016020810192503590506001600160401b0381111561131d57600080fd5b803603821315610bc457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008383855260208501945060208460051b8201018360005b868110156112db57838303601f19018852813536879003603e1901811261139457600080fd5b860180356113a181610b58565b6001600160a01b031684526113b960208201826112e7565b9150604060208601526113d060408601838361132c565b60209a8b019a9095509390930192505060010161136e565b600081518084526020840193506020830160005b828110156114235781516001600160a01b03168652602095860195909101906001016113fc565b5093949350505050565b60a08152600061144060a083018b61126b565b8281036020840152611453818a8c611355565b9050828103604084015261146881888a611355565b9050828103606084015261147d818688611355565b9050828103608084015260018060a01b0384511681526020840151606060208301526114ac60608301826113e8565b905060ff604086015116604083015280925050509998505050505050505050565b6000808335601e198436030181126114e457600080fd5b8301803591506001600160401b038211156114fe57600080fd5b602001915036819003821315610bc457600080fd5b6000808585111561152357600080fd5b8386111561153057600080fd5b5050820193919092039150565b80356001600160e01b0319811690600484101561156e576001600160e01b0319600485900360031b81901b82161691505b5092915050565b602081526000610748602083018461126b565b634e487b7160e01b600052603260045260246000fd5b602081526000610748602083018461123f565b604081526115d2604082016115c585610b70565b6001600160a01b03169052565b6020830135606082015260006115eb60408501856112e7565b61012060808501526116026101608501828461132c565b91505061161260608601866112e7565b848303603f190160a086015261162983828461132c565b608088013560c08781019190915260a089013560e08089019190915290890135610100880152909350611661925087019050866112e7565b848303603f190161012086015261167983828461132c565b9250505061168b6101008601866112e7565b848303603f19016101408601526116a383828461132c565b93505050508260208301529392505050565b6000602082840312156116c757600080fd5b5051919050565b8183823760009101908152919050565b600083516116f081846020880161121b565b9190910191825250602001919050565b6001600160a01b038816815260e060208201819052600090611724908301896113e8565b604083018890526001600160a01b0387166060840152828103608084015261174c818761123f565b6001600160a01b03861660a085015283810360c0850152905061176f818561126b565b9a9950505050505050505050565b60006020828403121561178f57600080fd5b813561074881610b58565b6000808335601e198436030181126117b157600080fd5b8301803591506001600160401b038211156117cb57600080fd5b6020019150600581901b3603821315610bc457600080fd5b61010080825281018a905260008b6101208301825b8d81101561182857823561180b81610b58565b6001600160a01b03168252602092830192909101906001016117f8565b508b6020850152611844604085018c6001600160a01b03169052565b8381036060850152611857818a8c61132c565b9250505061187060808301876001600160a01b03169052565b6001600160a01b03851660a08301528360c083015261189a60e08301846001600160a01b03169052565b9b9a5050505050505050505050565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600082516118e181846020870161121b565b919091019291505056fe982e06ee6a56dfc0f1ac189a5d23506361ca0a3ce45a9c7b8d33d65d43746a24a2646970667358221220cad03d772573536087657e4411cb1ae11c010e7514c3b5f5fc8fdd32ab22c59e64736f6c634300081a00330000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032000000000000000000000000e0cde9239d16bef05e62bbf7aa93e420f464c826", + "nonce": "0x4e", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xf5e37b", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x88f06c801b59d6a7cb9ea31d74fbd1d3cd29722268b71c985fa2a316803d8039", + "transactionIndex": "0x48", + "blockHash": "0xdd227d0f2c23a0937fe9ee508bb647106df6f1a53985e01b335cf08ababeceb5", + "blockNumber": "0x5e657f", + "gasUsed": "0x492966", + "effectiveGasPrice": "0x33620eb2", + "from": "0x8749313f626b100b822d573c71dfffdaca383032", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0x50da3861d482116c5f2ea6d673a58cedb786dc1c" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x10c141b", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x1bbfb6556b104b95a47925c35f0433619514af54fb20d5fbe2a4e0635c7e387e", + "transactionIndex": "0x49", + "blockHash": "0xdd227d0f2c23a0937fe9ee508bb647106df6f1a53985e01b335cf08ababeceb5", + "blockNumber": "0x5e657f", + "gasUsed": "0x1630a0", + "effectiveGasPrice": "0x33620eb2", + "from": "0x8749313f626b100b822d573c71dfffdaca383032", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0x026d0f3e4e547d319aba75c91a1d5ed7760f46e7" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1719353024, + "chain": 11155111, + "commit": "766b0d5" +} \ No newline at end of file diff --git a/broadcast/Deploy.s.sol/11155111/run-latest.json b/broadcast/Deploy.s.sol/11155111/run-latest.json index a78370b..c4cd613 100644 --- a/broadcast/Deploy.s.sol/11155111/run-latest.json +++ b/broadcast/Deploy.s.sol/11155111/run-latest.json @@ -1,35 +1,35 @@ { "transactions": [ { - "hash": "0xadee694915caabe82504b2d1afe5144199b8e1dca581228940b9fdf8966bdd53", + "hash": "0x88f06c801b59d6a7cb9ea31d74fbd1d3cd29722268b71c985fa2a316803d8039", "transactionType": "CREATE2", "contractName": "Safe7579", - "contractAddress": "0xbaca6f74a5549368568f387fd989c279f940f1a5", + "contractAddress": "0x50da3861d482116c5f2ea6d673a58cedb786dc1c", "function": null, "arguments": null, "transaction": { "from": "0x8749313f626b100b822d573c71dfffdaca383032", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "gas": "0x64306b", + "gas": "0x6af6fd", "value": "0x0", - "input": "0x00000000000000000000000000000000000000000000000000000000000000006080604052348015600f57600080fd5b50604051601a90605a565b604051809103906000f0801580156035573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b03929092169190911790556067565b6109d880614a9483390190565b614a1e806100766000396000f3fe6080604052600436106101235760003560e01c8063b0d691fe116100a0578063e9ae5c5311610064578063e9ae5c531461040f578063ea5f61d014610422578063eab77e1714610442578063f2dc691d14610462578063f698da25146104825761012a565b8063b0d691fe14610340578063b875d5d814610363578063d03c7914146103af578063d691c964146103cf578063d828435d146103ef5761012a565b80636a5e1515116100e75780636a5e1515146102b757806385571368146102ca5780639517e29f146102f85780639cfd7cff1461030b578063a71763a81461032d5761012a565b80630a664dba146101d4578063112d3a7d146102185780631626ba7e1461024857806319822f7c14610281578063540fb4f9146102a25761012a565b3661012a57005b600036606060003560e01c63bc197c81811463f23a6e6182141763150b7a028214171561015b57806020526020603cf35b5033600090815260056020908152604080832054600683528184206001600160e01b031985351680865293529083205491926001600160a01b039182169290911690806101a88484610497565b915091506101b68888610555565b95506101c484848484610669565b5050505050915050805190602001f35b3480156101e057600080fd5b50336000908152600560205260409020546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b506102386102333660046139e3565b6106ec565b604051901515815260200161020f565b34801561025457600080fd5b50610268610263366004613a3e565b610749565b6040516001600160e01b0319909116815260200161020f565b61029461028f366004613a89565b6109de565b60405190815260200161020f565b6102b56102b0366004613b38565b610af2565b005b6102b56102c5366004613c1e565b610b3f565b3480156102d657600080fd5b506102ea6102e5366004613c5f565b610ba0565b60405161020f929190613c8b565b6102b56103063660046139e3565b610bbc565b34801561031757600080fd5b50610320610d61565b60405161020f9190613d3e565b6102b561033b3660046139e3565b610df3565b34801561034c57600080fd5b506f71727de22e5e9d8baf0edac6f37da0326101fb565b34801561036f57600080fd5b506101fb61037e366004613d67565b3360009081526006602090815260408083206001600160e01b0319909416835292905220546001600160a01b031690565b3480156103bb57600080fd5b506102386103ca366004613d84565b610f5f565b6103e26103dd366004613a3e565b611007565b60405161020f9190613d9d565b3480156103fb57600080fd5b5061029461040a366004613e01565b6110d3565b6102b561041d366004613a3e565b611173565b34801561042e57600080fd5b506102ea61043d366004613c5f565b611518565b34801561044e57600080fd5b506102b561045d366004613e4b565b611542565b34801561046e57600080fd5b5061023861047d366004613d84565b6115b1565b34801561048e57600080fd5b50610294611600565b6060806001600160a01b03841615610517576104fe338560006104b8611659565b346000366040516024016104cf9493929190613eda565b60408051601f198184030181529190526020810180516001600160e01b031663d68f602560e01b179052611665565b9150818060200190518101906105149190613fce565b91505b6001600160a01b0383161561054e57610535338460006104b8611659565b90508080602001905181019061054b9190613fce565b90505b9250929050565b3360009081526004602090815260408083206001600160e01b0319843516845290915290208054606091906001600160a01b03811690600160a01b900460f81b816105c657604051632464e76d60e11b81526001600160e01b03196000351660048201526024015b60405180910390fd5b6105d481607f60f91b61170e565b156106185761060e338388886105e8611659565b6040516020016105fa93929190614002565b604051602081830303815290604052611720565b9350505050610663565b61062381600061170e565b1561065f5761060e338360008989610639611659565b60405160200161064b93929190614002565b604051602081830303815290604052611665565b5050505b92915050565b6001600160a01b038416156106bf576106bf33856000856040516024016106909190613d3e565b60408051601f198184030181529190526020810180516001600160e01b0316630b9dfbed60e11b1790526117e0565b6001600160a01b038316156106e6576106e633846000846040516024016106909190613d3e565b50505050565b600060018503610706576106ff8461187f565b9050610741565b60028503610717576106ff8461188d565b6003850361072a576106ff8484846118a6565b6004850361073d576106ff8484846118f3565b5060005b949350505050565b600033821580156107c15750604051635ae6bd3760e01b8152600481018690526001600160a01b03821690635ae6bd3790602401602060405180830381865afa15801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107be9190614028565b15155b156107d65750630b135d3f60e11b90506109d7565b60006107e56014828688614041565b6107ee9161406b565b60601c905080158061080657506108048161187f565b155b1561095c5760006108d1836001600160a01b031663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108729190614028565b60408051602081018b90527f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca910160408051601f198184030181528282528051602091820120908301520160405160208183030381529060405261192e565b805160208201209091506001600160a01b03841663934f3a1182846108f98a6014818e614041565b6040518563ffffffff1660e01b815260040161091894939291906140a0565b60006040518083038186803b15801561093057600080fd5b505afa158015610944573d6000803e3d6000fd5b50630b135d3f60e11b97506109d79650505050505050565b60006109bb338361096b611659565b8a6109798a6014818e614041565b60405160240161098c9493929190613eda565b60408051601f198184030181529190526020810180516001600160e01b0316637aa8f17760e11b179052611720565b9050808060200190518101906109d191906140d7565b93505050505b9392505050565b60006f71727de22e5e9d8baf0edac6f37da0326109f9611659565b6001600160a01b031614610a2057604051635629665f60e11b815260040160405180910390fd5b6020840135606081901c90811580610a3e5750610a3c8261187f565b155b15610a5357610a4c866119a8565b9250610ab8565b6000610a9e338460008a8a604051602401610a6f929190614139565b60408051601f198184030181529190526020810180516001600160e01b0316639700320360e01b179052611665565b905080806020019051810190610ab49190614028565b9350505b8315610ae957610ae9336f71727de22e5e9d8baf0edac6f37da03286604051806020016040528060008152506117e0565b50509392505050565b610b24610b026020830183614238565b610b0f6020840184614255565b610b1f606086016040870161429e565b611a4e565b610b348989898989898989611afc565b505050505050505050565b610b4a600233611d3f565b8060005b818110156106e65736848483818110610b6957610b696142b9565b9050602002810190610b7b91906142cf565b9050610b9733610b8e6020840184614238565b60029190611dba565b50600101610b4e565b60606000610bb16002338686611eaf565b915091509250929050565b3360009081526005602090815260408083205460068352818420639517e29f60e01b80865293529083205491926001600160a01b03918216929091169080610c048484610497565b91509150610c1f6f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b0316610c30611659565b6001600160a01b03161480610c5d5750610c48611659565b6001600160a01b0316336001600160a01b0316145b610c7a57604051635629665f60e11b815260040160405180910390fd5b606060018a03610c9657610c8f898989612065565b9050610cfb565b60028a03610ca957610c8f8989896120c1565b60038a03610cbc57610c8f89898961212b565b60048a03610ccf57610c8f89898961226c565b89610cdf57610c8f8989896123eb565b60405163041c38b360e41b8152600481018b90526024016105bd565b600054604051610d549133916001600160a01b0390911690610d25908e908e9087906024016142ef565b60408051601f198184030181529190526020810180516001600160e01b0316639517e29f60e01b179052612573565b50610b3484848484610669565b60606000336001600160a01b031663ffa1ad746040518163ffffffff1660e01b8152600401600060405180830381865afa158015610da3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dcb9190810190614319565b905080604051602001610dde9190614361565b60405160208183030381529060405291505090565b33600090815260056020908152604080832054600683528184206314e2ec7560e31b80865293529083205491926001600160a01b03918216929091169080610e3b8484610497565b91509150610e566f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b0316610e67611659565b6001600160a01b03161480610e945750610e7f611659565b6001600160a01b0316336001600160a01b0316145b610eb157604051635629665f60e11b815260040160405180910390fd5b606060018a03610ecd57610ec689898961260c565b9050610f06565b60028a03610ee057610ec6898989612635565b60038a03610ef357610ec6898989612662565b60048a03610cdf57610ec68989896126b0565b600054604051610d549133916001600160a01b0390911690610f30908e908e9087906024016142ef565b60408051601f198184030181529190526020810180516001600160e01b0316637827252560e01b179052612768565b600081600881901b610f7582600160f81b61170e565b15610f835760019250610fc6565b610f8e82600061170e565b15610f9c5760019250610fc6565b610fae826001600160f81b031961170e565b15610fbc5760019250610fc6565b5060009392505050565b828015610fd95750610fd981600061170e565b15610fe5575050919050565b828015610ffb5750610ffb81600160f81b61170e565b15610fbc575050919050565b6060611019611014611659565b61188d565b61104a57611025611659565b604051635c93ff2f60e11b81526001600160a01b0390911660048201526024016105bd565b33600090815260056020908152604080832054600683528184206335a4725960e21b80865293529083205491926001600160a01b039182169290911690806110928484610497565b915091503360026110a3828261281e565b8a600881901b6110b581838e8e6128a9565b9950505050506110c784848484610669565b50505050509392505050565b6000602082901b640100000000600160c01b03166f71727de22e5e9d8baf0edac6f37da032604051631aab3f0d60e11b81526001600160a01b0386811660048301526001600160c01b038416602483015291909116906335567e1a90604401602060405180830381865afa15801561114f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107419190614028565b336000908152600560209081526040808320546006835281842063e9ae5c5360e01b80865293529083205491926001600160a01b039182169290911690806111bb8484610497565b915091506111d66f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b03166111e7611659565b6001600160a01b0316148061121457506111ff611659565b6001600160a01b0316336001600160a01b0316145b61123157604051635629665f60e11b815260040160405180910390fd5b87600881901b3361124382600061170e565b156113a65761125683600160f81b61170e565b156112775789358a01602081019035611270838383612c65565b50506114ff565b61128283600061170e565b156112ea576000803660006112978e8e612cbc565b93509350935093506112e185858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506117e092505050565b505050506114ff565b6112fc836001600160f81b031961170e565b156113815760006113106014828c8e614041565b6113199161406b565b60601c90503660008c8c601490809261133493929190614041565b91509150611379848484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061257392505050565b5050506114ff565b604051632e5bf3f960e21b81526001600160f81b0319841660048201526024016105bd565b6113b482600160f81b61170e565b156114da576113c783600160f81b61170e565b156113e15789358a01602081019035611270838383612d0d565b6113ec83600061170e565b1561144b576000803660006114018e8e612cbc565b93509350935093506112e185858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d6492505050565b61145d836001600160f81b031961170e565b156113815760006114716014828c8e614041565b61147a9161406b565b60601c90503660008c8c601490809261149593929190614041565b91509150611379848484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061276892505050565b6040516308c3ee0360e11b81526001600160f81b0319831660048201526024016105bd565b50505061150e84848484610669565b5050505050505050565b33600090815260036020526040812060609190611536818686612e1a565b92509250509250929050565b6f71727de22e5e9d8baf0edac6f37da03261155b611659565b6001600160a01b031614806115885750611573611659565b6001600160a01b0316336001600160a01b0316145b6115a557604051635629665f60e11b815260040160405180910390fd5b6106e684848484611a4e565b6000600182036115c357506001919050565b600282036115d357506001919050565b600382036115e357506001919050565b600482036115f357506001919050565b506000919050565b919050565b604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b60131936013560601c90565b60606000856001600160a01b0316635229073f86868660006040518563ffffffff1660e01b815260040161169c94939291906143a7565b6000604051808303816000875af11580156116bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116e391908101906143f2565b925090508061170557604051632b3f6d1160e21b815260040160405180910390fd5b50949350505050565b6001600160f81b031990811691161490565b60606000838360405160240161173792919061443f565b60408051601f198184030181529181526020820180516001600160e01b0316636a22165760e01b17905260008054915192935091611783916001600160a01b031690849060240161443f565b60408051601f19818403018152919052602080820180516001600160e01b031663b4faba0960e01b17815282519293509091600091895afa5060203d036040519350808401604052806020853e50600051610ae957825160208401fd5b60405163468721a760e01b81526000906001600160a01b0386169063468721a7906118159087908790879087906004016143a7565b6020604051808303816000875af1158015611834573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118589190614463565b90508061187857604051632b3f6d1160e21b815260040160405180910390fd5b5050505050565b600061066360023384612fb8565b3360009081526003602052604081206109d78184612ffc565b6000806118b583850185613d67565b3360009081526004602090815260408083206001600160e01b0319909416835292905220546001600160a01b03908116908616149150509392505050565b600080806119038486018661448d565b9150915060006119138383613036565b6001600160a01b039081169088161493505050509392505050565b6060601960f81b600160f81b85858560405160200161194e9291906144b9565b60408051808303601f190181529082905280516020918201206001600160f81b0319958616918301919091529290931660218401526022830152604282015260620160405160208183030381529060405290509392505050565b6000806000803660006119ba876130ce565b8451602086012060405163934f3a1160e01b8152959a5093985091965094509250339163934f3a11916119f5918990879087906004016140a0565b60006040518083038186803b158015611a0d57600080fd5b505afa925050508015611a1e575060015b611a3557611a2e600184866132e3565b9550611a44565b611a41600084866132e3565b95505b5050505050919050565b3360008181526001602052604080822080546001600160a01b0319166001600160a01b03891617905551611ac092918791611a91908690899089906024016144df565b60408051601f198184030181529190526020810180516001600160e01b031663f05c04e160e01b1790526117e0565b6040516001600160a01b0385169033907f9452c8fb077c3ea8f28a77c87488af657b1e44d010ad9a5992d73870da040e9490600090a350505050565b3360009081527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0602052604090205487906001600160a01b0316611ba957611b45600233611d3f565b60005b81811015611ba357368a8a83818110611b6357611b636142b9565b9050602002810190611b7591906142cf565b9050611b99611b876020830183614238565b611b94602084018461453a565b612065565b5050600101611b48565b50611bca565b8015611bca5760405163d8e3ed1b60e01b81523360048201526024016105bd565b336000908152600360205260409020611be28161331b565b86915060005b82811015611c435736898983818110611c0357611c036142b9565b9050602002810190611c1591906142cf565b9050611c39611c276020830183614238565b611c34602084018461453a565b6120c1565b5050600101611be8565b5084915060005b82811015611ca55736878783818110611c6557611c656142b9565b9050602002810190611c7791906142cf565b9050611c9b611c896020830183614238565b611c96602084018461453a565b61212b565b5050600101611c4a565b5082915060005b82811015611d075736858583818110611cc757611cc76142b9565b9050602002810190611cd991906142cf565b9050611cfd611ceb6020830183614238565b611cf8602084018461453a565b61226c565b5050600101611cac565b5060405133907ff48581d8a62b775b74f2fb67f1d5806a9a356fbcc598040ab3071d3e37af40c290600090a250505050505050505050565b60016000908152602083815260408083206001600160a01b0380861685529252909120541615611d82576040516329e42f3360e11b815260040160405180910390fd5b60016000818152602093845260408082206001600160a01b0394909416825292909352912080546001600160a01b0319169091179055565b6001600160a01b0381161580611dd957506001600160a01b0381166001145b15611e0257604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b0381811660009081526020858152604080832086851684529091529020541615611e5157604051631034f46960e21b81526001600160a01b03821660048201526024016105bd565b60016000908152602084815260408083206001600160a01b039586168085528184528285208054968816808752988552838620918652908452919093208054949095166001600160a01b031994851617909455528154169091179055565b606060006001600160a01b038416600114801590611ed55750611ed3868686612fb8565b155b15611efe57604051637c84ecfb60e01b81526001600160a01b03851660048201526024016105bd565b82600003611f1f5760405163f725081760e01b815260040160405180910390fd5b826001600160401b03811115611f3757611f37613f0c565b604051908082528060200260200182016040528015611f60578160200160208202803683370190505b506001600160a01b038086166000908152602089815260408083208a85168452909152812054929450911691505b6001600160a01b03821615801590611fb057506001600160a01b038216600114155b8015611fbb57508381105b156120205781838281518110611fd357611fd36142b9565b6001600160a01b039283166020918202929092018101919091529281166000908152888452604080822089841683529094529290922054909116908061201881614596565b915050611f8e565b6001600160a01b038216600114612058578261203d6001836145af565b8151811061204d5761204d6142b9565b602002602001015191505b8083525094509492505050565b6060836001612074828261281e565b61208060023388611dba565b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b60608360026120d0828261281e565b3360009081526003602052604090206120e98188613378565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929a9950505050505050505050565b606083600361213a828261281e565b6000808061214a87890189614613565b919450925090506001600160e01b031983166306d61fe760e41b148061218057506001600160e01b03198316638a91b0e360e01b145b156121aa576040516379bd117b60e01b81526001600160e01b0319841660048201526024016105bd565b3360009081526004602090815260408083206001600160e01b0319871684529091529020546001600160a01b031615612202576040516374420d1560e01b81526001600160e01b0319841660048201526024016105bd565b3360009081526004602090815260408083206001600160e01b031990961683529490529290922080546001600160a01b038a166001600160a01b031960f89490941c600160a01b02939093166001600160a81b031990911617919091179055925050509392505050565b606083600461227b828261281e565b6000808061228b87890189614681565b919450925090506000808460018111156122a7576122a76146af565b1480156122bc57506001600160e01b03198316155b156123325750336000908152600560205260409020546001600160a01b031680156123055760405163741cbe0360e01b81526001600160a01b03821660048201526024016105bd565b33600090815260056020526040902080546001600160a01b0319166001600160a01b038c161790556123de565b6001846001811115612346576123466146af565b036123c5576001600160a01b0381161561237e5760405163741cbe0360e01b81526001600160a01b03821660048201526024016105bd565b503360009081526006602090815260408083206001600160e01b031986168452909152902080546001600160a01b038b81166001600160a01b0319831617909255166123de565b604051635691922f60e01b815260040160405180910390fd5b5098975050505050505050565b606082358301602081810191359085810135860180820191903590604088013588019081019035848381146124335760405163b4fa3fb360e01b815260040160405180910390fd5b60005b8181101561252c576000888883818110612452576124526142b9565b905060200201359050600181036124915761248b8d888885818110612479576124796142b9565b9050602002810190611b94919061453a565b50612523565b600281036124c15761248b8d8888858181106124af576124af6142b9565b9050602002810190611c34919061453a565b600381036124f15761248b8d8888858181106124df576124df6142b9565b9050602002810190611c96919061453a565b60048103612523576125218d88888581811061250f5761250f6142b9565b9050602002810190611cf8919061453a565b505b50600101612436565b5082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929e9d5050505050505050505050505050565b60405163468721a760e01b81526000906001600160a01b0385169063468721a7906125a9908690859087906001906004016143a7565b6020604051808303816000875af11580156125c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ec9190614463565b9050806106e657604051632b3f6d1160e21b815260040160405180910390fd5b6060600061261c838501856146c5565b9250905061262d600233838861344e565b509392505050565b336000908152600360205260408120606091612653848601866146c5565b93509050610ae9828288613545565b606060006126728385018561470a565b3360009081526004602090815260408083206001600160e01b031990951683529390529190912080546001600160a01b031916905595945050505050565b60606000806126c184860186614681565b9450909250905060008260018111156126dc576126dc6146af565b1480156126f157506001600160e01b03198116155b156127185733600090815260056020526040902080546001600160a01b0319169055610ae9565b600182600181111561272c5761272c6146af565b036123c5573360009081526006602090815260408083206001600160e01b031985168452909152902080546001600160a01b0319169055610ae9565b60405163468721a760e01b81526000906001600160a01b0385169063468721a79061279e908690859087906001906004016143a7565b6020604051808303816000875af11580156127bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e19190614463565b9050806106e657604080516001600160a01b0386168152600060208201526000805160206149c9833981519152910160405180910390a150505050565b336000908152600160205260409020546001600160a01b031680156128a45760405163529562a160e01b81523360048201526001600160a01b0384811660248301526044820184905282169063529562a19060640160006040518083038186803b15801561288b57600080fd5b505afa15801561289f573d6000803e3d6000fd5b505050505b505050565b60606128b685600061170e565b15612aac576128c984600160f81b61170e565b156128ec57823583016020810190356128e333838361361a565b92505050610741565b6128f784600061170e565b156129ab5760008036600061290c8787612cbc565b6040805160018082528183019092529498509296509094509250816020015b606081526020019060019003908161292b57905050945061298433858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061166592505050565b85600081518110612997576129976142b9565b602002602001018190525050505050610741565b6129bd846001600160f81b031961170e565b15612a875760006129d16014828587614041565b6129da9161406b565b60601c90503660006129ef8560148189614041565b604080516001808252818301909252929450909250816020015b6060815260200190600190039081612a09579050509350612a61338484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061369392505050565b84600081518110612a7457612a746142b9565b6020026020010181905250505050610741565b604051632e5bf3f960e21b81526001600160f81b0319851660048201526024016105bd565b612aba85600160f81b61170e565b15612c4057612acd84600160f81b61170e565b15612af25782358301602081019035612ae7338383613734565b935061074192505050565b612afd84600061170e565b15612b8a57600080366000612b128787612cbc565b6040805160018082528183019092529498509296509094509250816020015b6060815260200190600190039081612b3157905050945061298433858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506137b692505050565b612b9c846001600160f81b031961170e565b15612a87576000612bb06014828587614041565b612bb99161406b565b60601c9050366000612bce8560148189614041565b604080516001808252818301909252929450909250816020015b6060815260200190600190039081612be8579050509350612a61338484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061387692505050565b6040516308c3ee0360e11b81526001600160f81b0319861660048201526024016105bd565b6000546040516128a49185916001600160a01b0390911690612c8d9086908690602401614728565b60408051601f198184030181529190526020810180516001600160e01b0316633f707e6b60e01b179052612573565b6000803681612cce6014828789614041565b612cd79161406b565b60601c9350612cea603460148789614041565b612cf3916147d3565b9250612d028560348189614041565b949793965094505050565b6000546040516128a49185916001600160a01b0390911690612d359086908690602401614728565b60408051601f198184030181529190526020810180516001600160e01b0316632864481160e11b179052612768565b60405163468721a760e01b81526000906001600160a01b0386169063468721a790612d999087908790879087906004016143a7565b6020604051808303816000875af1158015612db8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ddc9190614463565b90508061187857604080516001600160a01b0387168152600060208201526000805160206149c9833981519152910160405180910390a15050505050565b606060006001600160a01b038416600114801590612e3f5750612e3d8585612ffc565b155b15612e6857604051637c84ecfb60e01b81526001600160a01b03851660048201526024016105bd565b82600003612e895760405163f725081760e01b815260040160405180910390fd5b826001600160401b03811115612ea157612ea1613f0c565b604051908082528060200260200182016040528015612eca578160200160208202803683370190505b506001600160a01b03808616600090815260208890526040812054929450911691505b6001600160a01b03821615801590612f0f57506001600160a01b038216600114155b8015612f1a57508381105b15612f745781838281518110612f3257612f326142b9565b6001600160a01b039283166020918202929092018101919091529281166000908152928790526040909220549091169080612f6c81614596565b915050612eed565b6001600160a01b038216600114612fac5782612f916001836145af565b81518110612fa157612fa16142b9565b602002602001015191505b80835250935093915050565b600060016001600160a01b038316148015906107415750506001600160a01b0390811660009081526020938452604080822093831682529290935291205416151590565b600060016001600160a01b038316148015906109d75750506001600160a01b03908116600090815260209290925260409091205416151590565b60008083600181111561304b5761304b6146af565b14801561306057506001600160e01b03198216155b156130805750336000908152600560205260409020546001600160a01b03165b6001836001811115613094576130946146af565b0361066357503360009081526006602090815260408083206001600160e01b0319851684529091529020546001600160a01b031692915050565b6060600080368181816130e561010089018961453a565b90925090506130f8600660008385614041565b613101916147f1565b60d01c9550613114600c60068385614041565b61311d916147f1565b60d01c945061312f81600c8185614041565b9350935050506000604051806101c001604052807f84aa190356f56b8c87825f54884392a9907c23ee0f8e1ea86336b763faf021bd60001b8152602001336001600160a01b0316815260200188602001358152602001888060400190613195919061453a565b6040516131a392919061481f565b60405190819003902081526020016131be60608a018a61453a565b6040516131cc92919061481f565b604051809103902081526020016131e289613936565b81526020016131f08961394b565b81526020018860a0013581526020016132088961395b565b815260200161321689613970565b815260200161322860e08a018a61453a565b60405161323692919061481f565b604051809103902081526020018665ffffffffffff1681526020018565ffffffffffff1681526020016132766f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b031690526101c08120909150601960f81b600160f81b61329b611600565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529650505091939590929450565b600060d08265ffffffffffff16901b60a08465ffffffffffff16901b8561330b57600061330e565b60015b60ff161717949350505050565b60016000908152602082905260409020546001600160a01b031615613353576040516329e42f3360e11b815260040160405180910390fd5b60016000818152602092909252604090912080546001600160a01b0319169091179055565b6001600160a01b038116158061339757506001600160a01b0381166001145b156133c057604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b03818116600090815260208490526040902054161561340457604051631034f46960e21b81526001600160a01b03821660048201526024016105bd565b60016000818152602093909352604080842080546001600160a01b039485168087529286208054959091166001600160a01b03199586161790559190935280549091169091179055565b6001600160a01b038116158061346d57506001600160a01b0381166001145b1561349657604051637c84ecfb60e01b81526001600160a01b03831660048201526024016105bd565b6001600160a01b0382811660009081526020868152604080832087851684529091529020548116908216146134e957604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b039081166000908152602085815260408083209584168084528683528184208054968616855297835281842090845282529091208054939092166001600160a01b031993841617909155919091528154169055565b6001600160a01b038116158061356457506001600160a01b0381166001145b1561358d57604051637c84ecfb60e01b81526001600160a01b03831660048201526024016105bd565b6001600160a01b038281166000908152602085905260409020548116908216146135d557604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b0390811660008181526020949094526040808520805494841686529085208054949093166001600160a01b0319948516179092559092528154169055565b60008054604051606092916136749187916001600160a01b0316906136459088908890602401614728565b60408051601f198184030181529190526020810180516001600160e01b0316636108557360e01b179052613693565b90508080602001905181019061368a91906148dc565b95945050505050565b60606000846001600160a01b0316635229073f8560008660016040518563ffffffff1660e01b81526004016136cb94939291906143a7565b6000604051808303816000875af11580156136ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261371291908101906143f2565b925090508061262d57604051632b3f6d1160e21b815260040160405180910390fd5b60608060006137938660008054906101000a90046001600160a01b03168787604051602401613764929190614728565b60408051601f198184030181529190526020810180516001600160e01b0316639abb6e1760e01b179052613876565b9050808060200190518101906137a99190614910565b9097909650945050505050565b60606000856001600160a01b0316635229073f86868660006040518563ffffffff1660e01b81526004016137ed94939291906143a7565b6000604051808303816000875af115801561380c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261383491908101906143f2565b925090508061170557604080516001600160a01b0388168152600060208201526000805160206149c9833981519152910160405180910390a150949350505050565b60606000846001600160a01b0316635229073f8560008660016040518563ffffffff1660e01b81526004016138ae94939291906143a7565b6000604051808303816000875af11580156138cd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138f591908101906143f2565b925090508061262d57604080516001600160a01b0387168152600060208201526000805160206149c9833981519152910160405180910390a1509392505050565b60006001600160801b03608083013516610663565b6000610663826080013560801c90565b60006001600160801b0360c083013516610663565b600060c082013560801c610663565b6001600160a01b038116811461399457600080fd5b50565b80356115fb8161397f565b60008083601f8401126139b457600080fd5b5081356001600160401b038111156139cb57600080fd5b60208301915083602082850101111561054e57600080fd5b600080600080606085870312156139f957600080fd5b843593506020850135613a0b8161397f565b925060408501356001600160401b03811115613a2657600080fd5b613a32878288016139a2565b95989497509550505050565b600080600060408486031215613a5357600080fd5b8335925060208401356001600160401b03811115613a7057600080fd5b613a7c868287016139a2565b9497909650939450505050565b600080600060608486031215613a9e57600080fd5b83356001600160401b03811115613ab457600080fd5b84016101208187031215613ac757600080fd5b95602085013595506040909401359392505050565b60008083601f840112613aee57600080fd5b5081356001600160401b03811115613b0557600080fd5b6020830191508360208260051b850101111561054e57600080fd5b600060608284031215613b3257600080fd5b50919050565b600080600080600080600080600060a08a8c031215613b5657600080fd5b89356001600160401b0380821115613b6d57600080fd5b613b798d838e01613adc565b909b50995060208c0135915080821115613b9257600080fd5b613b9e8d838e01613adc565b909950975060408c0135915080821115613bb757600080fd5b613bc38d838e01613adc565b909750955060608c0135915080821115613bdc57600080fd5b613be88d838e01613adc565b909550935060808c0135915080821115613c0157600080fd5b50613c0e8c828d01613b20565b9150509295985092959850929598565b60008060208385031215613c3157600080fd5b82356001600160401b03811115613c4757600080fd5b613c5385828601613adc565b90969095509350505050565b60008060408385031215613c7257600080fd5b8235613c7d8161397f565b946020939093013593505050565b604080825283519082018190526000906020906060840190828701845b82811015613ccd5781516001600160a01b031684529284019290840190600101613ca8565b5050506001600160a01b039490941660209390930192909252509092915050565b60005b83811015613d09578181015183820152602001613cf1565b50506000910152565b60008151808452613d2a816020860160208601613cee565b601f01601f19169290920160200192915050565b6020815260006109d76020830184613d12565b6001600160e01b03198116811461399457600080fd5b600060208284031215613d7957600080fd5b81356109d781613d51565b600060208284031215613d9657600080fd5b5035919050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015613df457603f19888603018452613de2858351613d12565b94509285019290850190600101613dc6565b5092979650505050505050565b60008060408385031215613e1457600080fd5b8235613e1f8161397f565b91506020830135613e2f8161397f565b809150509250929050565b803560ff811681146115fb57600080fd5b60008060008060608587031215613e6157600080fd5b8435613e6c8161397f565b935060208501356001600160401b03811115613e8757600080fd5b613e9387828801613adc565b9094509250613ea6905060408601613e3a565b905092959194509250565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b0385168152836020820152606060408201526000613f02606083018486613eb1565b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613f4a57613f4a613f0c565b604052919050565b60006001600160401b03821115613f6b57613f6b613f0c565b50601f01601f191660200190565b6000613f8c613f8784613f52565b613f22565b9050828152838383011115613fa057600080fd5b6109d7836020830184613cee565b600082601f830112613fbf57600080fd5b6109d783835160208501613f79565b600060208284031215613fe057600080fd5b81516001600160401b03811115613ff657600080fd5b61074184828501613fae565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60006020828403121561403a57600080fd5b5051919050565b6000808585111561405157600080fd5b8386111561405e57600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156140985780818660140360031b1b83161692505b505092915050565b8481526060602082015260006140b96060830186613d12565b82810360408401526140cc818587613eb1565b979650505050505050565b6000602082840312156140e957600080fd5b81516109d781613d51565b6000808335601e1984360301811261410b57600080fd5b83016020810192503590506001600160401b0381111561412a57600080fd5b80360382131561054e57600080fd5b6040815261415a6040820161414d85613997565b6001600160a01b03169052565b60208301356060820152600061417360408501856140f4565b61012080608086015261418b61016086018385613eb1565b925061419a60608801886140f4565b9250603f19808786030160a08801526141b4858584613eb1565b9450608089013560c088015260a089013560e0880152610100935060c0890135848801526141e560e08a018a6140f4565b92508188870301848901526141fb868483613eb1565b95505061420a848a018a6140f4565b9450925080878603016101408801525050614226838383613eb1565b93505050508260208301529392505050565b60006020828403121561424a57600080fd5b81356109d78161397f565b6000808335601e1984360301811261426c57600080fd5b8301803591506001600160401b0382111561428657600080fd5b6020019150600581901b360382131561054e57600080fd5b6000602082840312156142b057600080fd5b6109d782613e3a565b634e487b7160e01b600052603260045260246000fd5b60008235603e198336030181126142e557600080fd5b9190910192915050565b8381526001600160a01b038316602082015260606040820181905260009061368a90830184613d12565b60006020828403121561432b57600080fd5b81516001600160401b0381111561434157600080fd5b8201601f8101841361435257600080fd5b61074184825160208401613f79565b64736166652d60d81b815260008251614381816005850160208701613cee565b6e2e657263373537392e76302e302e3160881b6005939091019283015250601401919050565b60018060a01b03851681528360208201526080604082015260006143ce6080830185613d12565b905060ff8316606083015295945050505050565b805180151581146115fb57600080fd5b6000806040838503121561440557600080fd5b61440e836143e2565b915060208301516001600160401b0381111561442957600080fd5b61443585828601613fae565b9150509250929050565b6001600160a01b038316815260406020820181905260009061074190830184613d12565b60006020828403121561447557600080fd5b6109d7826143e2565b8035600281106115fb57600080fd5b600080604083850312156144a057600080fd5b6144a98361447e565b91506020830135613e2f81613d51565b828152600082516144d1816020850160208701613cee565b919091016020019392505050565b60ff8416815260406020808301829052908201839052600090849060608401835b8681101561452e5783356145138161397f565b6001600160a01b031682529282019290820190600101614500565b50979650505050505050565b6000808335601e1984360301811261455157600080fd5b8301803591506001600160401b0382111561456b57600080fd5b60200191503681900382131561054e57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016145a8576145a8614580565b5060010190565b8181038181111561066357610663614580565b600082601f8301126145d357600080fd5b81356145e1613f8782613f52565b8181528460208386010111156145f657600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561462857600080fd5b833561463381613d51565b925060208401356001600160f81b03198116811461465057600080fd5b915060408401356001600160401b0381111561466b57600080fd5b614677868287016145c2565b9150509250925092565b60008060006060848603121561469657600080fd5b61469f8461447e565b9250602084013561465081613d51565b634e487b7160e01b600052602160045260246000fd5b600080604083850312156146d857600080fd5b82356146e38161397f565b915060208301356001600160401b038111156146fe57600080fd5b614435858286016145c2565b6000806040838503121561471d57600080fd5b82356146e381613d51565b60208082528181018390526000906040808401600586901b850182018785805b898110156147c457888403603f190185528235368c9003605e1901811261476d578283fd5b8b016060813561477c8161397f565b6001600160a01b03168652818901358987015261479b888301836140f4565b925081898801526147af8288018483613eb1565b978a0197965050509287019250600101614748565b50919998505050505050505050565b8035602083101561066357600019602084900360031b1b1692915050565b6001600160d01b031981358181169160068510156140985760069490940360031b84901b1690921692915050565b8183823760009101908152919050565b60006001600160401b0382111561484857614848613f0c565b5060051b60200190565b600082601f83011261486357600080fd5b81516020614873613f878361482f565b82815260059290921b8401810191818101908684111561489257600080fd5b8286015b848110156148d15780516001600160401b038111156148b55760008081fd5b6148c38986838b0101613fae565b845250918301918301614896565b509695505050505050565b6000602082840312156148ee57600080fd5b81516001600160401b0381111561490457600080fd5b61074184828501614852565b6000806040838503121561492357600080fd5b82516001600160401b038082111561493a57600080fd5b818501915085601f83011261494e57600080fd5b8151602061495e613f878361482f565b82815260059290921b8401810191818101908984111561497d57600080fd5b948201945b838610156149a257614993866143e2565b82529482019490820190614982565b918801519196509093505050808211156149bb57600080fd5b506144358582860161485256feb8bc84bd77f5eb08210b8eb20fd63b3ec6a7992d277ab94663bae0e066f792aca26469706673582212204c1b68f6eb53965f3e290e9e6a21e9c80395a1ac0fce6394aa58289d799e181864736f6c634300081900336080604052348015600f57600080fd5b506109b98061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636a2216571161005b5780636a221657146100df57806378272525146100f25780639517e29f146101055780639abb6e171461011857600080fd5b80633f707e6b1461008257806350c890221461009757806361085573146100bf575b600080fd5b6100956100903660046105c9565b610139565b005b6100aa6100a53660046105c9565b6101a3565b60405190151581526020015b60405180910390f35b6100d26100cd3660046105c9565b610212565b6040516100b691906106c6565b6100956100ed366004610712565b6102cc565b6100956101003660046107d4565b6102ef565b6100956101133660046107d4565b610398565b61012b6101263660046105c9565b610437565b6040516100b692919061085b565b8060005b8181101561019d5736848483818110610158576101586108b5565b905060200281019061016a91906108cb565b905061019361017c60208301836108eb565b602083013561018e6040850185610906565b610561565b505060010161013d565b50505050565b600081815b8181101561020a57368585838181106101c3576101c36108b5565b90506020028101906101d591906108cb565b90506101fe6101e760208301836108eb565b60208301356101f96040850185610906565b610597565b509350506001016101a8565b505092915050565b6060818067ffffffffffffffff81111561022e5761022e6106fc565b60405190808252806020026020018201604052801561026157816020015b606081526020019060019003908161024c5790505b50915060005b8181101561020a5736858583818110610282576102826108b5565b905060200281019061029491906108cb565b90506102a661017c60208301836108eb565b8483815181106102b8576102b86108b5565b602090810291909101015250600101610267565b604051600080835160208501865afa3d6000833e80156102ea573d82f35b503d81fd5b604051638a91b0e360e01b81526001600160a01b03841690638a91b0e39061031d9085908590600401610954565b600060405180830381600087803b15801561033757600080fd5b505af115801561034b573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527f341347516a9de374859dfda710fa4828b2d48cb57d4fbe4c1149612b8e02276e93500190505b60405180910390a150505050565b6040516306d61fe760e41b81526001600160a01b03841690636d61fe70906103c69085908590600401610954565b600060405180830381600087803b1580156103e057600080fd5b505af11580156103f4573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905061038a565b606080828067ffffffffffffffff811115610454576104546106fc565b60405190808252806020026020018201604052801561048757816020015b60608152602001906001900390816104725790505b5091508067ffffffffffffffff8111156104a3576104a36106fc565b6040519080825280602002602001820160405280156104cc578160200160208202803683370190505b50925060005b8181101561055857368686838181106104ed576104ed6108b5565b90506020028101906104ff91906108cb565b90506105116101e760208301836108eb565b868481518110610523576105236108b5565b6020026020010186858151811061053c5761053c6108b5565b60209081029190910101919091529015159052506001016104d2565b50509250929050565b60405181838237600038838387895af161057e573d6000823e3d81fd5b3d8152602081013d6000823e3d01604052949350505050565b604051600090828482376000388483888a5af11591503d8152602081013d6000823e3d81016040525094509492505050565b600080602083850312156105dc57600080fd5b823567ffffffffffffffff808211156105f457600080fd5b818501915085601f83011261060857600080fd5b81358181111561061757600080fd5b8660208260051b850101111561062c57600080fd5b60209290920196919550909350505050565b600082825180855260208086019550808260051b8401018186016000805b858110156106b857601f1980888603018b5283518051808752845b81811015610692578281018901518882018a01528801610677565b5086810188018590529b87019b601f01909116909401850193509184019160010161065c565b509198975050505050505050565b6020815260006106d9602083018461063e565b9392505050565b80356001600160a01b03811681146106f757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561072557600080fd5b61072e836106e0565b9150602083013567ffffffffffffffff8082111561074b57600080fd5b818501915085601f83011261075f57600080fd5b813581811115610771576107716106fc565b604051601f8201601f19908116603f01168101908382118183101715610799576107996106fc565b816040528281528860208487010111156107b257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600080606085870312156107ea57600080fd5b843593506107fa602086016106e0565b9250604085013567ffffffffffffffff8082111561081757600080fd5b818701915087601f83011261082b57600080fd5b81358181111561083a57600080fd5b88602082850101111561084c57600080fd5b95989497505060200194505050565b604080825283519082018190526000906020906060840190828701845b82811015610896578151151584529284019290840190600101610878565b50505083810360208501526108ab818661063e565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60008235605e198336030181126108e157600080fd5b9190910192915050565b6000602082840312156108fd57600080fd5b6106d9826106e0565b6000808335601e1984360301811261091d57600080fd5b83018035915067ffffffffffffffff82111561093857600080fd5b60200191503681900382131561094d57600080fd5b9250929050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f1916010191905056fea2646970667358221220c249fc39b8532ba357c2c2ee22298a8dea37b717dd88be3754b2eeaaa5e1252664736f6c63430008190033", - "nonce": "0x42", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060a0604052348015600f57600080fd5b50604051601a906046565b604051809103906000f0801580156035573d6000803e3d6000fd5b506001600160a01b03166080526053565b6109f080614bc483390190565b608051614b2c61009860003960008181610d0101528181610f1c0152818161178e01528181612cae01528181612d66015281816136cb01526137f70152614b2c6000f3fe6080604052600436106101235760003560e01c8063b0d691fe116100a0578063e9ae5c5311610064578063e9ae5c531461040f578063ea5f61d014610422578063eab77e1714610442578063f2dc691d14610462578063f698da25146104825761012a565b8063b0d691fe14610340578063b875d5d814610363578063d03c7914146103af578063d691c964146103cf578063d828435d146103ef5761012a565b80636a5e1515116100e75780636a5e1515146102b757806385571368146102ca5780639517e29f146102f85780639cfd7cff1461030b578063a71763a81461032d5761012a565b80630a664dba146101d4578063112d3a7d146102185780631626ba7e1461024857806319822f7c14610281578063540fb4f9146102a25761012a565b3661012a57005b600036606060003560e01c63bc197c81811463f23a6e6182141763150b7a028214171561015b57806020526020603cf35b5033600090815260046020908152604080832054600583528184206001600160e01b031985351680865293529083205491926001600160a01b039182169290911690806101a88484610497565b915091506101b68888610555565b95506101c484848484610669565b5050505050915050805190602001f35b3480156101e057600080fd5b50336000908152600460205260409020546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b50610238610233366004613aa8565b6106ec565b604051901515815260200161020f565b34801561025457600080fd5b50610268610263366004613b03565b610749565b6040516001600160e01b0319909116815260200161020f565b61029461028f366004613b4e565b6109de565b60405190815260200161020f565b6102b56102b0366004613bfd565b610af2565b005b6102b56102c5366004613cf9565b610b3f565b3480156102d657600080fd5b506102ea6102e5366004613d3a565b610ba0565b60405161020f929190613d66565b6102b5610306366004613aa8565b610bbc565b34801561031757600080fd5b50610320610d71565b60405161020f9190613e19565b6102b561033b366004613aa8565b610e03565b34801561034c57600080fd5b506f71727de22e5e9d8baf0edac6f37da0326101fb565b34801561036f57600080fd5b506101fb61037e366004613e42565b3360009081526005602090815260408083206001600160e01b0319909416835292905220546001600160a01b031690565b3480156103bb57600080fd5b506102386103ca366004613e5f565b610f7f565b6103e26103dd366004613b03565b611027565b60405161020f9190613e78565b3480156103fb57600080fd5b5061029461040a366004613edd565b6110f3565b6102b561041d366004613b03565b611193565b34801561042e57600080fd5b506102ea61043d366004613d3a565b611538565b34801561044e57600080fd5b506102b561045d366004613f27565b611562565b34801561046e57600080fd5b5061023861047d366004613e5f565b6115d1565b34801561048e57600080fd5b50610294611620565b6060806001600160a01b03841615610517576104fe338560006104b8611679565b346000366040516024016104cf9493929190613fb6565b60408051601f198184030181529190526020810180516001600160e01b031663d68f602560e01b179052611685565b91508180602001905181019061051491906140aa565b91505b6001600160a01b0383161561054e57610535338460006104b8611679565b90508080602001905181019061054b91906140aa565b90505b9250929050565b3360009081526003602090815260408083206001600160e01b0319843516845290915290208054606091906001600160a01b03811690600160a01b900460f81b816105c657604051632464e76d60e11b81526001600160e01b03196000351660048201526024015b60405180910390fd5b6105d481607f60f91b61172e565b156106185761060e338388886105e8611679565b6040516020016105fa939291906140de565b604051602081830303815290604052611740565b9350505050610663565b61062381600061172e565b1561065f5761060e338360008989610639611679565b60405160200161064b939291906140de565b604051602081830303815290604052611685565b5050505b92915050565b6001600160a01b038416156106bf576106bf33856000856040516024016106909190613e19565b60408051601f198184030181529190526020810180516001600160e01b0316630b9dfbed60e11b179052611815565b6001600160a01b038316156106e6576106e633846000846040516024016106909190613e19565b50505050565b600060018503610706576106ff846118b4565b9050610741565b60028503610717576106ff846118c2565b6003850361072a576106ff8484846118db565b6004850361073d576106ff848484611928565b5060005b949350505050565b600033821580156107c15750604051635ae6bd3760e01b8152600481018690526001600160a01b03821690635ae6bd3790602401602060405180830381865afa15801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107be9190614104565b15155b156107d65750630b135d3f60e11b90506109d7565b60006107e5601482868861411d565b6107ee91614147565b60601c90508015806108065750610804816118b4565b155b1561095c5760006108d1836001600160a01b031663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108729190614104565b60408051602081018b90527f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca910160408051601f1981840301815282825280516020918201209083015201604051602081830303815290604052611963565b805160208201209091506001600160a01b03841663934f3a1182846108f98a6014818e61411d565b6040518563ffffffff1660e01b81526004016109189493929190614194565b60006040518083038186803b15801561093057600080fd5b505afa158015610944573d6000803e3d6000fd5b50630b135d3f60e11b97506109d79650505050505050565b60006109bb338361096b611679565b8a6109798a6014818e61411d565b60405160240161098c9493929190613fb6565b60408051601f198184030181529190526020810180516001600160e01b0316637aa8f17760e11b179052611740565b9050808060200190518101906109d191906141cb565b93505050505b9392505050565b60006f71727de22e5e9d8baf0edac6f37da0326109f9611679565b6001600160a01b031614610a2057604051635629665f60e11b815260040160405180910390fd5b6020840135606081901c90811580610a3e5750610a3c826118b4565b155b15610a5357610a4c866119dd565b9250610ab8565b6000610a9e338460008a8a604051602401610a6f92919061422d565b60408051601f198184030181529190526020810180516001600160e01b0316639700320360e01b179052611685565b905080806020019051810190610ab49190614104565b9350505b8315610ae957610ae9336f71727de22e5e9d8baf0edac6f37da0328660405180602001604052806000815250611815565b50509392505050565b610b24610b026020830183614331565b610b0f602084018461434e565b610b1f6060860160408701614397565b611a83565b610b348989898989898989611b31565b505050505050505050565b610b4a600133611d74565b8060005b818110156106e65736848483818110610b6957610b696143b2565b9050602002810190610b7b91906143c8565b9050610b9733610b8e6020840184614331565b60019190611def565b50600101610b4e565b60606000610bb16001338686611ee4565b915091509250929050565b3360009081526004602090815260408083205460058352818420639517e29f60e01b80865293529083205491926001600160a01b03918216929091169080610c048484610497565b91509150610c1f6f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b0316610c30611679565b6001600160a01b03161480610c5d5750610c48611679565b6001600160a01b0316336001600160a01b0316145b610c7a57604051635629665f60e11b815260040160405180910390fd5b606060018a03610c9657610c8f8989896120a8565b9050610cfb565b60028a03610ca957610c8f898989612104565b60038a03610cbc57610c8f89898961216e565b60048a03610ccf57610c8f8989896122af565b89610cdf57610c8f89898961242e565b60405163041c38b360e41b8152600481018b90526024016105bd565b610d64337f00000000000000000000000000000000000000000000000000000000000000008c8c85604051602401610d35939291906143e8565b60408051601f198184030181529190526020810180516001600160e01b0316639517e29f60e01b1790526125b6565b50610b3484848484610669565b60606000336001600160a01b031663ffa1ad746040518163ffffffff1660e01b8152600401600060405180830381865afa158015610db3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ddb9190810190614412565b905080604051602001610dee919061445a565b60405160208183030381529060405291505090565b33600090815260046020908152604080832054600583528184206314e2ec7560e31b80865293529083205491926001600160a01b03918216929091169080610e4b8484610497565b91509150610e666f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b0316610e77611679565b6001600160a01b03161480610ea45750610e8f611679565b6001600160a01b0316336001600160a01b0316145b610ec157604051635629665f60e11b815260040160405180910390fd5b606060018a03610edd57610ed689898961264f565b9050610f16565b60028a03610ef057610ed6898989612678565b60038a03610f0357610ed68989896126a5565b60048a03610cdf57610ed68989896126f3565b610d64337f00000000000000000000000000000000000000000000000000000000000000008c8c85604051602401610f50939291906143e8565b60408051601f198184030181529190526020810180516001600160e01b0316637827252560e01b1790526127ab565b600081600881901b610f9582600160f81b61172e565b15610fa35760019250610fe6565b610fae82600061172e565b15610fbc5760019250610fe6565b610fce826001600160f81b031961172e565b15610fdc5760019250610fe6565b5060009392505050565b828015610ff95750610ff981600061172e565b15611005575050919050565b82801561101b575061101b81600160f81b61172e565b15610fdc575050919050565b6060611039611034611679565b6118c2565b61106a57611045611679565b604051635c93ff2f60e11b81526001600160a01b0390911660048201526024016105bd565b33600090815260046020908152604080832054600583528184206335a4725960e21b80865293529083205491926001600160a01b039182169290911690806110b28484610497565b915091503360026110c38282612861565b8a600881901b6110d581838e8e6128ec565b9950505050506110e784848484610669565b50505050509392505050565b6000602082901b640100000000600160c01b03166f71727de22e5e9d8baf0edac6f37da032604051631aab3f0d60e11b81526001600160a01b0386811660048301526001600160c01b038416602483015291909116906335567e1a90604401602060405180830381865afa15801561116f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107419190614104565b336000908152600460209081526040808320546005835281842063e9ae5c5360e01b80865293529083205491926001600160a01b039182169290911690806111db8484610497565b915091506111f66f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b0316611207611679565b6001600160a01b03161480611234575061121f611679565b6001600160a01b0316336001600160a01b0316145b61125157604051635629665f60e11b815260040160405180910390fd5b87600881901b3361126382600061172e565b156113c65761127683600160f81b61172e565b156112975789358a01602081019035611290838383612ca8565b505061151f565b6112a283600061172e565b1561130a576000803660006112b78e8e612d0f565b935093509350935061130185858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061181592505050565b5050505061151f565b61131c836001600160f81b031961172e565b156113a15760006113306014828c8e61411d565b61133991614147565b60601c90503660008c8c60149080926113549392919061411d565b91509150611399848484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506125b692505050565b50505061151f565b604051632e5bf3f960e21b81526001600160f81b0319841660048201526024016105bd565b6113d482600160f81b61172e565b156114fa576113e783600160f81b61172e565b156114015789358a01602081019035611290838383612d60565b61140c83600061172e565b1561146b576000803660006114218e8e612d0f565b935093509350935061130185858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612dc792505050565b61147d836001600160f81b031961172e565b156113a15760006114916014828c8e61411d565b61149a91614147565b60601c90503660008c8c60149080926114b59392919061411d565b91509150611399848484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127ab92505050565b6040516308c3ee0360e11b81526001600160f81b0319831660048201526024016105bd565b50505061152e84848484610669565b5050505050505050565b33600090815260026020526040812060609190611556818686612e7d565b92509250509250929050565b6f71727de22e5e9d8baf0edac6f37da03261157b611679565b6001600160a01b031614806115a85750611593611679565b6001600160a01b0316336001600160a01b0316145b6115c557604051635629665f60e11b815260040160405180910390fd5b6106e684848484611a83565b6000600182036115e357506001919050565b600282036115f357506001919050565b6003820361160357506001919050565b6004820361161357506001919050565b506000919050565b919050565b604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b60131936013560601c90565b60606000856001600160a01b0316635229073f86868660006040518563ffffffff1660e01b81526004016116bc94939291906144a0565b6000604051808303816000875af11580156116db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261170391908101906144eb565b925090508061172557604051632b3f6d1160e21b815260040160405180910390fd5b50949350505050565b6001600160f81b031990811691161490565b606060008383604051602401611757929190614538565b60408051601f198184030181529181526020820180516001600160e01b0316636a22165760e01b179052519091506000906117b8907f0000000000000000000000000000000000000000000000000000000000000000908490602401614538565b60408051601f19818403018152919052602080820180516001600160e01b031663b4faba0960e01b17815282519293509091600091895afa5060203d036040519350808401604052806020853e50600051610ae957825160208401fd5b60405163468721a760e01b81526000906001600160a01b0386169063468721a79061184a9087908790879087906004016144a0565b6020604051808303816000875af1158015611869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188d919061455c565b9050806118ad57604051632b3f6d1160e21b815260040160405180910390fd5b5050505050565b600061066360013384613029565b3360009081526002602052604081206109d7818461306d565b6000806118ea83850185613e42565b3360009081526003602090815260408083206001600160e01b0319909416835292905220546001600160a01b03908116908616149150509392505050565b6000808061193884860186614586565b91509150600061194883836130a7565b6001600160a01b039081169088161493505050509392505050565b6060601960f81b600160f81b8585856040516020016119839291906145b2565b60408051808303601f190181529082905280516020918201206001600160f81b0319958616918301919091529290931660218401526022830152604282015260620160405160208183030381529060405290509392505050565b6000806000803660006119ef8761313f565b8451602086012060405163934f3a1160e01b8152959a5093985091965094509250339163934f3a1191611a2a91899087908790600401614194565b60006040518083038186803b158015611a4257600080fd5b505afa925050508015611a53575060015b611a6a57611a636001848661338a565b9550611a79565b611a766000848661338a565b95505b5050505050919050565b3360008181526020819052604080822080546001600160a01b0319166001600160a01b03891617905551611af592918791611ac6908690899089906024016145d8565b60408051601f198184030181529190526020810180516001600160e01b031663f05c04e160e01b179052611815565b6040516001600160a01b0385169033907f9452c8fb077c3ea8f28a77c87488af657b1e44d010ad9a5992d73870da040e9490600090a350505050565b3360009081527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f602052604090205487906001600160a01b0316611bde57611b7a600133611d74565b60005b81811015611bd857368a8a83818110611b9857611b986143b2565b9050602002810190611baa91906143c8565b9050611bce611bbc6020830183614331565b611bc96020840184614630565b6120a8565b5050600101611b7d565b50611bff565b8015611bff5760405163d8e3ed1b60e01b81523360048201526024016105bd565b336000908152600260205260409020611c17816133c2565b86915060005b82811015611c785736898983818110611c3857611c386143b2565b9050602002810190611c4a91906143c8565b9050611c6e611c5c6020830183614331565b611c696020840184614630565b612104565b5050600101611c1d565b5084915060005b82811015611cda5736878783818110611c9a57611c9a6143b2565b9050602002810190611cac91906143c8565b9050611cd0611cbe6020830183614331565b611ccb6020840184614630565b61216e565b5050600101611c7f565b5082915060005b82811015611d3c5736858583818110611cfc57611cfc6143b2565b9050602002810190611d0e91906143c8565b9050611d32611d206020830183614331565b611d2d6020840184614630565b6122af565b5050600101611ce1565b5060405133907ff48581d8a62b775b74f2fb67f1d5806a9a356fbcc598040ab3071d3e37af40c290600090a250505050505050505050565b60016000908152602083815260408083206001600160a01b0380861685529252909120541615611db7576040516329e42f3360e11b815260040160405180910390fd5b60016000818152602093845260408082206001600160a01b0394909416825292909352912080546001600160a01b0319169091179055565b6001600160a01b0381161580611e0e57506001600160a01b0381166001145b15611e3757604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b0381811660009081526020858152604080832086851684529091529020541615611e8657604051631034f46960e21b81526001600160a01b03821660048201526024016105bd565b60016000908152602084815260408083206001600160a01b039586168085528184528285208054968816808752988552838620918652908452919093208054949095166001600160a01b031994851617909455528154169091179055565b606060006001600160a01b038416600114801590611f0a5750611f08868686613029565b155b15611f3357604051637c84ecfb60e01b81526001600160a01b03851660048201526024016105bd565b82600003611f545760405163f725081760e01b815260040160405180910390fd5b826001600160401b03811115611f6c57611f6c613fe8565b604051908082528060200260200182016040528015611f95578160200160208202803683370190505b506001600160a01b038086166000908152602089815260408083208a85168452909152812054929450911691505b6001600160a01b03821615801590611fe557506001600160a01b038216600114155b8015611ff057508381105b156120555781838281518110612008576120086143b2565b6001600160a01b039283166020918202929092018101919091529281166000908152888452604080822089841683529094529290922054909116908061204d8161468c565b915050611fc3565b6001600160a01b03821660011480159061206f5750600081115b1561209b57826120806001836146a5565b81518110612090576120906143b2565b602002602001015191505b8083525094509492505050565b60608360016120b78282612861565b6120c360013388611def565b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b60608360026121138282612861565b33600090815260026020526040902061212c818861341f565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929a9950505050505050505050565b606083600361217d8282612861565b6000808061218d87890189614709565b919450925090506001600160e01b031983166306d61fe760e41b14806121c357506001600160e01b03198316638a91b0e360e01b145b156121ed576040516379bd117b60e01b81526001600160e01b0319841660048201526024016105bd565b3360009081526003602090815260408083206001600160e01b0319871684529091529020546001600160a01b031615612245576040516374420d1560e01b81526001600160e01b0319841660048201526024016105bd565b3360009081526003602090815260408083206001600160e01b031990961683529490529290922080546001600160a01b038a166001600160a01b031960f89490941c600160a01b02939093166001600160a81b031990911617919091179055925050509392505050565b60608360046122be8282612861565b600080806122ce87890189614777565b919450925090506000808460018111156122ea576122ea6147a5565b1480156122ff57506001600160e01b03198316155b156123755750336000908152600460205260409020546001600160a01b031680156123485760405163741cbe0360e01b81526001600160a01b03821660048201526024016105bd565b33600090815260046020526040902080546001600160a01b0319166001600160a01b038c16179055612421565b6001846001811115612389576123896147a5565b03612408576001600160a01b038116156123c15760405163741cbe0360e01b81526001600160a01b03821660048201526024016105bd565b503360009081526005602090815260408083206001600160e01b031986168452909152902080546001600160a01b038b81166001600160a01b031983161790925516612421565b604051635691922f60e01b815260040160405180910390fd5b5098975050505050505050565b606082358301602081810191359085810135860180820191903590604088013588019081019035848381146124765760405163b4fa3fb360e01b815260040160405180910390fd5b60005b8181101561256f576000888883818110612495576124956143b2565b905060200201359050600181036124d4576124ce8d8888858181106124bc576124bc6143b2565b9050602002810190611bc99190614630565b50612566565b60028103612504576124ce8d8888858181106124f2576124f26143b2565b9050602002810190611c699190614630565b60038103612534576124ce8d888885818110612522576125226143b2565b9050602002810190611ccb9190614630565b60048103612566576125648d888885818110612552576125526143b2565b9050602002810190611d2d9190614630565b505b50600101612479565b5082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929e9d5050505050505050505050505050565b60405163468721a760e01b81526000906001600160a01b0385169063468721a7906125ec908690859087906001906004016144a0565b6020604051808303816000875af115801561260b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262f919061455c565b9050806106e657604051632b3f6d1160e21b815260040160405180910390fd5b6060600061265f838501856147bb565b9250905061267060013383886134f5565b509392505050565b336000908152600260205260408120606091612696848601866147bb565b93509050610ae98282886135ec565b606060006126b583850185614800565b3360009081526003602090815260408083206001600160e01b031990951683529390529190912080546001600160a01b031916905595945050505050565b606060008061270484860186614777565b94509092509050600082600181111561271f5761271f6147a5565b14801561273457506001600160e01b03198116155b1561275b5733600090815260046020526040902080546001600160a01b0319169055610ae9565b600182600181111561276f5761276f6147a5565b03612408573360009081526005602090815260408083206001600160e01b031985168452909152902080546001600160a01b0319169055610ae9565b60405163468721a760e01b81526000906001600160a01b0385169063468721a7906127e1908690859087906001906004016144a0565b6020604051808303816000875af1158015612800573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612824919061455c565b9050806106e657604080516001600160a01b038616815260006020820152600080516020614ad7833981519152910160405180910390a150505050565b336000908152602081905260409020546001600160a01b031680156128e75760405163529562a160e01b81523360048201526001600160a01b0384811660248301526044820184905282169063529562a19060640160006040518083038186803b1580156128ce57600080fd5b505afa1580156128e2573d6000803e3d6000fd5b505050505b505050565b60606128f985600061172e565b15612aef5761290c84600160f81b61172e565b1561292f57823583016020810190356129263383836136c1565b92505050610741565b61293a84600061172e565b156129ee5760008036600061294f8787612d0f565b6040805160018082528183019092529498509296509094509250816020015b606081526020019060019003908161296e5790505094506129c733858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061168592505050565b856000815181106129da576129da6143b2565b602002602001018190525050505050610741565b612a00846001600160f81b031961172e565b15612aca576000612a14601482858761411d565b612a1d91614147565b60601c9050366000612a32856014818961411d565b604080516001808252818301909252929450909250816020015b6060815260200190600190039081612a4c579050509350612aa4338484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061374b92505050565b84600081518110612ab757612ab76143b2565b6020026020010181905250505050610741565b604051632e5bf3f960e21b81526001600160f81b0319851660048201526024016105bd565b612afd85600160f81b61172e565b15612c8357612b1084600160f81b61172e565b15612b355782358301602081019035612b2a3383836137ec565b935061074192505050565b612b4084600061172e565b15612bcd57600080366000612b558787612d0f565b6040805160018082528183019092529498509296509094509250816020015b6060815260200190600190039081612b745790505094506129c733858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061387b92505050565b612bdf846001600160f81b031961172e565b15612aca576000612bf3601482858761411d565b612bfc91614147565b60601c9050366000612c11856014818961411d565b604080516001808252818301909252929450909250816020015b6060815260200190600190039081612c2b579050509350612aa4338484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061393b92505050565b6040516308c3ee0360e11b81526001600160f81b0319861660048201526024016105bd565b6128e7837f00000000000000000000000000000000000000000000000000000000000000008484604051602401612ce092919061481e565b60408051601f198184030181529190526020810180516001600160e01b0316633f707e6b60e01b1790526125b6565b6000803681612d21601482878961411d565b612d2a91614147565b60601c9350612d3d60346014878961411d565b612d46916148d0565b9250612d55856034818961411d565b949793965094505050565b6128e7837f00000000000000000000000000000000000000000000000000000000000000008484604051602401612d9892919061481e565b60408051601f198184030181529190526020810180516001600160e01b0316632864481160e11b1790526127ab565b60405163468721a760e01b81526000906001600160a01b0386169063468721a790612dfc9087908790879087906004016144a0565b6020604051808303816000875af1158015612e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3f919061455c565b9050806118ad57604080516001600160a01b038716815260006020820152600080516020614ad7833981519152910160405180910390a15050505050565b606060006001600160a01b038416600114801590612ea25750612ea0858561306d565b155b15612ecb57604051637c84ecfb60e01b81526001600160a01b03851660048201526024016105bd565b82600003612eec5760405163f725081760e01b815260040160405180910390fd5b826001600160401b03811115612f0457612f04613fe8565b604051908082528060200260200182016040528015612f2d578160200160208202803683370190505b506001600160a01b03808616600090815260208890526040812054929450911691505b6001600160a01b03821615801590612f7257506001600160a01b038216600114155b8015612f7d57508381105b15612fd75781838281518110612f9557612f956143b2565b6001600160a01b039283166020918202929092018101919091529281166000908152928790526040909220549091169080612fcf8161468c565b915050612f50565b6001600160a01b038216600114801590612ff15750600081115b1561301d57826130026001836146a5565b81518110613012576130126143b2565b602002602001015191505b80835250935093915050565b600060016001600160a01b038316148015906107415750506001600160a01b0390811660009081526020938452604080822093831682529290935291205416151590565b600060016001600160a01b038316148015906109d75750506001600160a01b03908116600090815260209290925260409091205416151590565b6000808360018111156130bc576130bc6147a5565b1480156130d157506001600160e01b03198216155b156130f15750336000908152600460205260409020546001600160a01b03165b6001836001811115613105576131056147a5565b0361066357503360009081526005602090815260408083206001600160e01b0319851684529091529020546001600160a01b031692915050565b606060008036818181613156610100890189614630565b909250905061316960066000838561411d565b613172916148ee565b60d01c9550613185600c6006838561411d565b61318e916148ee565b60d01c94506131a081600c818561411d565b9350935050506000604051806101c001604052807fc03dfc11d8b10bf9cf703d558958c8c42777f785d998c62060d85a4f0ef6ea7f60001b81526020018860000160208101906131f09190614331565b6001600160a01b03168152602001886020013581526020018880604001906132189190614630565b604051613226929190614924565b604051908190039020815260200161324160608a018a614630565b60405161324f929190614924565b60405180910390208152602001613265896139fb565b6001600160801b0316815260200161327c89613a0b565b6001600160801b031681526020018860a00135815260200161329d89613a20565b6001600160801b031681526020016132b489613a2f565b6001600160801b031681526020016132cf60e08a018a614630565b6040516132dd929190614924565b604051809103902081526020018665ffffffffffff1681526020018565ffffffffffff16815260200161331d6f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b031690526101c08120909150601960f81b600160f81b613342611620565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529650505091939590929450565b600060d08265ffffffffffff16901b60a08465ffffffffffff16901b856133b25760006133b5565b60015b60ff161717949350505050565b60016000908152602082905260409020546001600160a01b0316156133fa576040516329e42f3360e11b815260040160405180910390fd5b60016000818152602092909252604090912080546001600160a01b0319169091179055565b6001600160a01b038116158061343e57506001600160a01b0381166001145b1561346757604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b0381811660009081526020849052604090205416156134ab57604051631034f46960e21b81526001600160a01b03821660048201526024016105bd565b60016000818152602093909352604080842080546001600160a01b039485168087529286208054959091166001600160a01b03199586161790559190935280549091169091179055565b6001600160a01b038116158061351457506001600160a01b0381166001145b1561353d57604051637c84ecfb60e01b81526001600160a01b03831660048201526024016105bd565b6001600160a01b03828116600090815260208681526040808320878516845290915290205481169082161461359057604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b039081166000908152602085815260408083209584168084528683528184208054968616855297835281842090845282529091208054939092166001600160a01b031993841617909155919091528154169055565b6001600160a01b038116158061360b57506001600160a01b0381166001145b1561363457604051637c84ecfb60e01b81526001600160a01b03831660048201526024016105bd565b6001600160a01b0382811660009081526020859052604090205481169082161461367c57604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b0390811660008181526020949094526040808520805494841686529085208054949093166001600160a01b0319948516179092559092528154169055565b6060600061372c857f000000000000000000000000000000000000000000000000000000000000000086866040516024016136fd92919061481e565b60408051601f198184030181529190526020810180516001600160e01b0316636108557360e01b17905261374b565b90508080602001905181019061374291906149e3565b95945050505050565b60606000846001600160a01b0316635229073f8560008660016040518563ffffffff1660e01b815260040161378394939291906144a0565b6000604051808303816000875af11580156137a2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526137ca91908101906144eb565b925090508061267057604051632b3f6d1160e21b815260040160405180910390fd5b6060806000613858867f0000000000000000000000000000000000000000000000000000000000000000878760405160240161382992919061481e565b60408051601f198184030181529190526020810180516001600160e01b0316639abb6e1760e01b17905261393b565b90508080602001905181019061386e9190614a17565b9097909650945050505050565b60606000856001600160a01b0316635229073f86868660006040518563ffffffff1660e01b81526004016138b294939291906144a0565b6000604051808303816000875af11580156138d1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138f991908101906144eb565b925090508061172557604080516001600160a01b038816815260006020820152600080516020614ad7833981519152910160405180910390a150949350505050565b60606000846001600160a01b0316635229073f8560008660016040518563ffffffff1660e01b815260040161397394939291906144a0565b6000604051808303816000875af1158015613992573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526139ba91908101906144eb565b925090508061267057604080516001600160a01b038716815260006020820152600080516020614ad7833981519152910160405180910390a1509392505050565b6000610663826080013560801c90565b60006001600160801b03608083013516610663565b600060c082013560801c610663565b60006001600160801b0360c083013516610663565b6001600160a01b0381168114613a5957600080fd5b50565b803561161b81613a44565b60008083601f840112613a7957600080fd5b5081356001600160401b03811115613a9057600080fd5b60208301915083602082850101111561054e57600080fd5b60008060008060608587031215613abe57600080fd5b843593506020850135613ad081613a44565b925060408501356001600160401b03811115613aeb57600080fd5b613af787828801613a67565b95989497509550505050565b600080600060408486031215613b1857600080fd5b8335925060208401356001600160401b03811115613b3557600080fd5b613b4186828701613a67565b9497909650939450505050565b600080600060608486031215613b6357600080fd5b83356001600160401b03811115613b7957600080fd5b84016101208187031215613b8c57600080fd5b95602085013595506040909401359392505050565b60008083601f840112613bb357600080fd5b5081356001600160401b03811115613bca57600080fd5b6020830191508360208260051b850101111561054e57600080fd5b600060608284031215613bf757600080fd5b50919050565b600080600080600080600080600060a08a8c031215613c1b57600080fd5b89356001600160401b03811115613c3157600080fd5b613c3d8c828d01613ba1565b909a5098505060208a01356001600160401b03811115613c5c57600080fd5b613c688c828d01613ba1565b90985096505060408a01356001600160401b03811115613c8757600080fd5b613c938c828d01613ba1565b90965094505060608a01356001600160401b03811115613cb257600080fd5b613cbe8c828d01613ba1565b90945092505060808a01356001600160401b03811115613cdd57600080fd5b613ce98c828d01613be5565b9150509295985092959850929598565b60008060208385031215613d0c57600080fd5b82356001600160401b03811115613d2257600080fd5b613d2e85828601613ba1565b90969095509350505050565b60008060408385031215613d4d57600080fd5b8235613d5881613a44565b946020939093013593505050565b6040808252835190820181905260009060208501906060840190835b81811015613da95783516001600160a01b0316835260209384019390920191600101613d82565b50506001600160a01b039490941660209390930192909252509092915050565b60005b83811015613de4578181015183820152602001613dcc565b50506000910152565b60008151808452613e05816020860160208601613dc9565b601f01601f19169290920160200192915050565b6020815260006109d76020830184613ded565b6001600160e01b031981168114613a5957600080fd5b600060208284031215613e5457600080fd5b81356109d781613e2c565b600060208284031215613e7157600080fd5b5035919050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015613ed157603f19878603018452613ebc858351613ded565b94506020938401939190910190600101613ea0565b50929695505050505050565b60008060408385031215613ef057600080fd5b8235613efb81613a44565b91506020830135613f0b81613a44565b809150509250929050565b803560ff8116811461161b57600080fd5b60008060008060608587031215613f3d57600080fd5b8435613f4881613a44565b935060208501356001600160401b03811115613f6357600080fd5b613f6f87828801613ba1565b9094509250613f82905060408601613f16565b905092959194509250565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b0385168152836020820152606060408201526000613fde606083018486613f8d565b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561402657614026613fe8565b604052919050565b60006001600160401b0382111561404757614047613fe8565b50601f01601f191660200190565b60006140686140638461402e565b613ffe565b905082815283838301111561407c57600080fd5b6109d7836020830184613dc9565b600082601f83011261409b57600080fd5b6109d783835160208501614055565b6000602082840312156140bc57600080fd5b81516001600160401b038111156140d257600080fd5b6107418482850161408a565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60006020828403121561411657600080fd5b5051919050565b6000808585111561412d57600080fd5b8386111561413a57600080fd5b5050820193919092039150565b80356bffffffffffffffffffffffff19811690601484101561418d576bffffffffffffffffffffffff196bffffffffffffffffffffffff198560140360031b1b82161691505b5092915050565b8481526060602082015260006141ad6060830186613ded565b82810360408401526141c0818587613f8d565b979650505050505050565b6000602082840312156141dd57600080fd5b81516109d781613e2c565b6000808335601e198436030181126141ff57600080fd5b83016020810192503590506001600160401b0381111561421e57600080fd5b80360382131561054e57600080fd5b6040815261424e6040820161424185613a5c565b6001600160a01b03169052565b60208301356060820152600061426760408501856141e8565b610120608085015261427e61016085018284613f8d565b91505061428e60608601866141e8565b848303603f190160a08601526142a5838284613f8d565b608088013560c08781019190915260a089013560e080890191909152908901356101008801529093506142dd925087019050866141e8565b848303603f19016101208601526142f5838284613f8d565b925050506143076101008601866141e8565b848303603f190161014086015261431f838284613f8d565b93505050508260208301529392505050565b60006020828403121561434357600080fd5b81356109d781613a44565b6000808335601e1984360301811261436557600080fd5b8301803591506001600160401b0382111561437f57600080fd5b6020019150600581901b360382131561054e57600080fd5b6000602082840312156143a957600080fd5b6109d782613f16565b634e487b7160e01b600052603260045260246000fd5b60008235603e198336030181126143de57600080fd5b9190910192915050565b8381526001600160a01b038316602082015260606040820181905260009061374290830184613ded565b60006020828403121561442457600080fd5b81516001600160401b0381111561443a57600080fd5b8201601f8101841361444b57600080fd5b61074184825160208401614055565b64736166652d60d81b81526000825161447a816005850160208701613dc9565b6e2e657263373537392e76302e302e3160881b6005939091019283015250601401919050565b60018060a01b03851681528360208201526080604082015260006144c76080830185613ded565b905060ff8316606083015295945050505050565b8051801515811461161b57600080fd5b600080604083850312156144fe57600080fd5b614507836144db565b915060208301516001600160401b0381111561452257600080fd5b61452e8582860161408a565b9150509250929050565b6001600160a01b038316815260406020820181905260009061074190830184613ded565b60006020828403121561456e57600080fd5b6109d7826144db565b80356002811061161b57600080fd5b6000806040838503121561459957600080fd5b6145a283614577565b91506020830135613f0b81613e2c565b828152600082516145ca816020850160208701613dc9565b919091016020019392505050565b60ff84168152604060208201819052810182905260008360608301825b8581101561462557823561460881613a44565b6001600160a01b03168252602092830192909101906001016145f5565b509695505050505050565b6000808335601e1984360301811261464757600080fd5b8301803591506001600160401b0382111561466157600080fd5b60200191503681900382131561054e57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161469e5761469e614676565b5060010190565b8181038181111561066357610663614676565b600082601f8301126146c957600080fd5b81356146d76140638261402e565b8181528460208386010111156146ec57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561471e57600080fd5b833561472981613e2c565b925060208401356001600160f81b03198116811461474657600080fd5b915060408401356001600160401b0381111561476157600080fd5b61476d868287016146b8565b9150509250925092565b60008060006060848603121561478c57600080fd5b61479584614577565b9250602084013561474681613e2c565b634e487b7160e01b600052602160045260246000fd5b600080604083850312156147ce57600080fd5b82356147d981613a44565b915060208301356001600160401b038111156147f457600080fd5b61452e858286016146b8565b6000806040838503121561481357600080fd5b82356147d981613e2c565b6020808252810182905260006040600584901b830181019083018583605e1936839003015b878210156148c357868503603f19018452823581811261486257600080fd5b8901803561486f81613a44565b6001600160a01b031686526020818101359087015261489160408201826141e8565b9150606060408801526148a8606088018383613f8d565b96505050602083019250602084019350600182019150614843565b5092979650505050505050565b8035602083101561066357600019602084900360031b1b1692915050565b80356001600160d01b0319811690600684101561418d576001600160d01b031960069490940360031b84901b1690921692915050565b8183823760009101908152919050565b60006001600160401b0382111561494d5761494d613fe8565b5060051b60200190565b600082601f83011261496857600080fd5b815161497661406382614934565b8082825260208201915060208360051b86010192508583111561499857600080fd5b602085015b838110156149d95780516001600160401b038111156149bb57600080fd5b6149ca886020838a010161408a565b8452506020928301920161499d565b5095945050505050565b6000602082840312156149f557600080fd5b81516001600160401b03811115614a0b57600080fd5b61074184828501614957565b60008060408385031215614a2a57600080fd5b82516001600160401b03811115614a4057600080fd5b8301601f81018513614a5157600080fd5b8051614a5f61406382614934565b8082825260208201915060208360051b850101925087831115614a8157600080fd5b6020840193505b82841015614aaa57614a99846144db565b825260209384019390910190614a88565b8095505050505060208301516001600160401b03811115614aca57600080fd5b61452e8582860161495756feb8bc84bd77f5eb08210b8eb20fd63b3ec6a7992d277ab94663bae0e066f792aca2646970667358221220ea61ad763284881149748ddd79675cc8013f934a2a4db1bb658c0c975b908ebb64736f6c634300081a00336080604052348015600f57600080fd5b506109d18061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636a2216571161005b5780636a221657146100df57806378272525146100f25780639517e29f146101055780639abb6e171461011857600080fd5b80633f707e6b1461008257806350c890221461009757806361085573146100bf575b600080fd5b6100956100903660046105c9565b610139565b005b6100aa6100a53660046105c9565b6101a3565b60405190151581526020015b60405180910390f35b6100d26100cd3660046105c9565b610212565b6040516100b691906106d3565b6100956100ed36600461071f565b6102cc565b6100956101003660046107e9565b6102ef565b6100956101133660046107e9565b610398565b61012b6101263660046105c9565b610437565b6040516100b6929190610873565b8060005b8181101561019d5736848483818110610158576101586108cd565b905060200281019061016a91906108e3565b905061019361017c6020830183610903565b602083013561018e604085018561091e565b610561565b505060010161013d565b50505050565b600081815b8181101561020a57368585838181106101c3576101c36108cd565b90506020028101906101d591906108e3565b90506101fe6101e76020830183610903565b60208301356101f9604085018561091e565b610597565b509350506001016101a8565b505092915050565b6060818067ffffffffffffffff81111561022e5761022e610709565b60405190808252806020026020018201604052801561026157816020015b606081526020019060019003908161024c5790505b50915060005b8181101561020a5736858583818110610282576102826108cd565b905060200281019061029491906108e3565b90506102a661017c6020830183610903565b8483815181106102b8576102b86108cd565b602090810291909101015250600101610267565b604051600080835160208501865afa3d6000833e80156102ea573d82f35b503d81fd5b604051638a91b0e360e01b81526001600160a01b03841690638a91b0e39061031d908590859060040161096c565b600060405180830381600087803b15801561033757600080fd5b505af115801561034b573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527f341347516a9de374859dfda710fa4828b2d48cb57d4fbe4c1149612b8e02276e93500190505b60405180910390a150505050565b6040516306d61fe760e41b81526001600160a01b03841690636d61fe70906103c6908590859060040161096c565b600060405180830381600087803b1580156103e057600080fd5b505af11580156103f4573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905061038a565b606080828067ffffffffffffffff81111561045457610454610709565b60405190808252806020026020018201604052801561048757816020015b60608152602001906001900390816104725790505b5091508067ffffffffffffffff8111156104a3576104a3610709565b6040519080825280602002602001820160405280156104cc578160200160208202803683370190505b50925060005b8181101561055857368686838181106104ed576104ed6108cd565b90506020028101906104ff91906108e3565b90506105116101e76020830183610903565b868481518110610523576105236108cd565b6020026020010186858151811061053c5761053c6108cd565b60209081029190910101919091529015159052506001016104d2565b50509250929050565b60405181838237600038838387895af161057e573d6000823e3d81fd5b3d8152602081013d6000823e3d01604052949350505050565b604051600090828482376000388483888a5af11591503d8152602081013d6000823e3d81016040525094509492505050565b600080602083850312156105dc57600080fd5b823567ffffffffffffffff8111156105f357600080fd5b8301601f8101851361060457600080fd5b803567ffffffffffffffff81111561061b57600080fd5b8560208260051b840101111561063057600080fd5b6020919091019590945092505050565b600082825180855260208501945060208160051b8301016020850160005b838110156106c757848303601f190188528151805180855260005b8181101561069557602081840181015187830182015201610679565b506000602082870101526020601f19601f8301168601019450505060208201915060208801975060018101905061065e565b50909695505050505050565b6020815260006106e66020830184610640565b9392505050565b80356001600160a01b038116811461070457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561073257600080fd5b61073b836106ed565b9150602083013567ffffffffffffffff81111561075757600080fd5b8301601f8101851361076857600080fd5b803567ffffffffffffffff81111561078257610782610709565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156107b1576107b1610709565b6040528181528282016020018710156107c957600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080606085870312156107ff57600080fd5b8435935061080f602086016106ed565b9250604085013567ffffffffffffffff81111561082b57600080fd5b8501601f8101871361083c57600080fd5b803567ffffffffffffffff81111561085357600080fd5b87602082840101111561086557600080fd5b949793965060200194505050565b6040808252835190820181905260009060208501906060840190835b818110156108af578351151583526020938401939092019160010161088f565b505083810360208501526108c38186610640565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60008235605e198336030181126108f957600080fd5b9190910192915050565b60006020828403121561091557600080fd5b6106e6826106ed565b6000808335601e1984360301811261093557600080fd5b83018035915067ffffffffffffffff82111561095057600080fd5b60200191503681900382131561096557600080fd5b9250929050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f1916010191905056fea2646970667358221220720ef7861d004c898c5584226bd363229b671686bc710cd9ba8dec323c2a769164736f6c634300081a0033", + "nonce": "0x4d", "chainId": "0xaa36a7" }, "additionalContracts": [ { "transactionType": "CREATE", - "address": "0x8f942a2377822f6164ea110959f3abb511222b6a", - "initCode": "0x6080604052348015600f57600080fd5b506109b98061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636a2216571161005b5780636a221657146100df57806378272525146100f25780639517e29f146101055780639abb6e171461011857600080fd5b80633f707e6b1461008257806350c890221461009757806361085573146100bf575b600080fd5b6100956100903660046105c9565b610139565b005b6100aa6100a53660046105c9565b6101a3565b60405190151581526020015b60405180910390f35b6100d26100cd3660046105c9565b610212565b6040516100b691906106c6565b6100956100ed366004610712565b6102cc565b6100956101003660046107d4565b6102ef565b6100956101133660046107d4565b610398565b61012b6101263660046105c9565b610437565b6040516100b692919061085b565b8060005b8181101561019d5736848483818110610158576101586108b5565b905060200281019061016a91906108cb565b905061019361017c60208301836108eb565b602083013561018e6040850185610906565b610561565b505060010161013d565b50505050565b600081815b8181101561020a57368585838181106101c3576101c36108b5565b90506020028101906101d591906108cb565b90506101fe6101e760208301836108eb565b60208301356101f96040850185610906565b610597565b509350506001016101a8565b505092915050565b6060818067ffffffffffffffff81111561022e5761022e6106fc565b60405190808252806020026020018201604052801561026157816020015b606081526020019060019003908161024c5790505b50915060005b8181101561020a5736858583818110610282576102826108b5565b905060200281019061029491906108cb565b90506102a661017c60208301836108eb565b8483815181106102b8576102b86108b5565b602090810291909101015250600101610267565b604051600080835160208501865afa3d6000833e80156102ea573d82f35b503d81fd5b604051638a91b0e360e01b81526001600160a01b03841690638a91b0e39061031d9085908590600401610954565b600060405180830381600087803b15801561033757600080fd5b505af115801561034b573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527f341347516a9de374859dfda710fa4828b2d48cb57d4fbe4c1149612b8e02276e93500190505b60405180910390a150505050565b6040516306d61fe760e41b81526001600160a01b03841690636d61fe70906103c69085908590600401610954565b600060405180830381600087803b1580156103e057600080fd5b505af11580156103f4573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905061038a565b606080828067ffffffffffffffff811115610454576104546106fc565b60405190808252806020026020018201604052801561048757816020015b60608152602001906001900390816104725790505b5091508067ffffffffffffffff8111156104a3576104a36106fc565b6040519080825280602002602001820160405280156104cc578160200160208202803683370190505b50925060005b8181101561055857368686838181106104ed576104ed6108b5565b90506020028101906104ff91906108cb565b90506105116101e760208301836108eb565b868481518110610523576105236108b5565b6020026020010186858151811061053c5761053c6108b5565b60209081029190910101919091529015159052506001016104d2565b50509250929050565b60405181838237600038838387895af161057e573d6000823e3d81fd5b3d8152602081013d6000823e3d01604052949350505050565b604051600090828482376000388483888a5af11591503d8152602081013d6000823e3d81016040525094509492505050565b600080602083850312156105dc57600080fd5b823567ffffffffffffffff808211156105f457600080fd5b818501915085601f83011261060857600080fd5b81358181111561061757600080fd5b8660208260051b850101111561062c57600080fd5b60209290920196919550909350505050565b600082825180855260208086019550808260051b8401018186016000805b858110156106b857601f1980888603018b5283518051808752845b81811015610692578281018901518882018a01528801610677565b5086810188018590529b87019b601f01909116909401850193509184019160010161065c565b509198975050505050505050565b6020815260006106d9602083018461063e565b9392505050565b80356001600160a01b03811681146106f757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561072557600080fd5b61072e836106e0565b9150602083013567ffffffffffffffff8082111561074b57600080fd5b818501915085601f83011261075f57600080fd5b813581811115610771576107716106fc565b604051601f8201601f19908116603f01168101908382118183101715610799576107996106fc565b816040528281528860208487010111156107b257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600080606085870312156107ea57600080fd5b843593506107fa602086016106e0565b9250604085013567ffffffffffffffff8082111561081757600080fd5b818701915087601f83011261082b57600080fd5b81358181111561083a57600080fd5b88602082850101111561084c57600080fd5b95989497505060200194505050565b604080825283519082018190526000906020906060840190828701845b82811015610896578151151584529284019290840190600101610878565b50505083810360208501526108ab818661063e565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60008235605e198336030181126108e157600080fd5b9190910192915050565b6000602082840312156108fd57600080fd5b6106d9826106e0565b6000808335601e1984360301811261091d57600080fd5b83018035915067ffffffffffffffff82111561093857600080fd5b60200191503681900382131561094d57600080fd5b9250929050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f1916010191905056fea2646970667358221220c249fc39b8532ba357c2c2ee22298a8dea37b717dd88be3754b2eeaaa5e1252664736f6c63430008190033" + "address": "0x78aefdbd752a61167461f51da5eb328330e0f1c6", + "initCode": "0x6080604052348015600f57600080fd5b506109d18061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636a2216571161005b5780636a221657146100df57806378272525146100f25780639517e29f146101055780639abb6e171461011857600080fd5b80633f707e6b1461008257806350c890221461009757806361085573146100bf575b600080fd5b6100956100903660046105c9565b610139565b005b6100aa6100a53660046105c9565b6101a3565b60405190151581526020015b60405180910390f35b6100d26100cd3660046105c9565b610212565b6040516100b691906106d3565b6100956100ed36600461071f565b6102cc565b6100956101003660046107e9565b6102ef565b6100956101133660046107e9565b610398565b61012b6101263660046105c9565b610437565b6040516100b6929190610873565b8060005b8181101561019d5736848483818110610158576101586108cd565b905060200281019061016a91906108e3565b905061019361017c6020830183610903565b602083013561018e604085018561091e565b610561565b505060010161013d565b50505050565b600081815b8181101561020a57368585838181106101c3576101c36108cd565b90506020028101906101d591906108e3565b90506101fe6101e76020830183610903565b60208301356101f9604085018561091e565b610597565b509350506001016101a8565b505092915050565b6060818067ffffffffffffffff81111561022e5761022e610709565b60405190808252806020026020018201604052801561026157816020015b606081526020019060019003908161024c5790505b50915060005b8181101561020a5736858583818110610282576102826108cd565b905060200281019061029491906108e3565b90506102a661017c6020830183610903565b8483815181106102b8576102b86108cd565b602090810291909101015250600101610267565b604051600080835160208501865afa3d6000833e80156102ea573d82f35b503d81fd5b604051638a91b0e360e01b81526001600160a01b03841690638a91b0e39061031d908590859060040161096c565b600060405180830381600087803b15801561033757600080fd5b505af115801561034b573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527f341347516a9de374859dfda710fa4828b2d48cb57d4fbe4c1149612b8e02276e93500190505b60405180910390a150505050565b6040516306d61fe760e41b81526001600160a01b03841690636d61fe70906103c6908590859060040161096c565b600060405180830381600087803b1580156103e057600080fd5b505af11580156103f4573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905061038a565b606080828067ffffffffffffffff81111561045457610454610709565b60405190808252806020026020018201604052801561048757816020015b60608152602001906001900390816104725790505b5091508067ffffffffffffffff8111156104a3576104a3610709565b6040519080825280602002602001820160405280156104cc578160200160208202803683370190505b50925060005b8181101561055857368686838181106104ed576104ed6108cd565b90506020028101906104ff91906108e3565b90506105116101e76020830183610903565b868481518110610523576105236108cd565b6020026020010186858151811061053c5761053c6108cd565b60209081029190910101919091529015159052506001016104d2565b50509250929050565b60405181838237600038838387895af161057e573d6000823e3d81fd5b3d8152602081013d6000823e3d01604052949350505050565b604051600090828482376000388483888a5af11591503d8152602081013d6000823e3d81016040525094509492505050565b600080602083850312156105dc57600080fd5b823567ffffffffffffffff8111156105f357600080fd5b8301601f8101851361060457600080fd5b803567ffffffffffffffff81111561061b57600080fd5b8560208260051b840101111561063057600080fd5b6020919091019590945092505050565b600082825180855260208501945060208160051b8301016020850160005b838110156106c757848303601f190188528151805180855260005b8181101561069557602081840181015187830182015201610679565b506000602082870101526020601f19601f8301168601019450505060208201915060208801975060018101905061065e565b50909695505050505050565b6020815260006106e66020830184610640565b9392505050565b80356001600160a01b038116811461070457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561073257600080fd5b61073b836106ed565b9150602083013567ffffffffffffffff81111561075757600080fd5b8301601f8101851361076857600080fd5b803567ffffffffffffffff81111561078257610782610709565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156107b1576107b1610709565b6040528181528282016020018710156107c957600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080606085870312156107ff57600080fd5b8435935061080f602086016106ed565b9250604085013567ffffffffffffffff81111561082b57600080fd5b8501601f8101871361083c57600080fd5b803567ffffffffffffffff81111561085357600080fd5b87602082840101111561086557600080fd5b949793965060200194505050565b6040808252835190820181905260009060208501906060840190835b818110156108af578351151583526020938401939092019160010161088f565b505083810360208501526108c38186610640565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60008235605e198336030181126108f957600080fd5b9190910192915050565b60006020828403121561091557600080fd5b6106e6826106ed565b6000808335601e1984360301811261093557600080fd5b83018035915067ffffffffffffffff82111561095057600080fd5b60200191503681900382131561096557600080fd5b9250929050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f1916010191905056fea2646970667358221220720ef7861d004c898c5584226bd363229b671686bc710cd9ba8dec323c2a769164736f6c634300081a0033" } ], "isFixedGasLimit": false }, { - "hash": "0x712bc66f8e220d2e1b66ab411af1b28676a89a25c271448467b8aaa10cee0110", + "hash": "0x1bbfb6556b104b95a47925c35f0433619514af54fb20d5fbe2a4e0635c7e387e", "transactionType": "CREATE2", "contractName": "Safe7579Launchpad", - "contractAddress": "0xbd3b9ba8162b23bcb0373e265cb07127e5b1b644", + "contractAddress": "0x026d0f3e4e547d319aba75c91a1d5ed7760f46e7", "function": null, "arguments": [ "0x0000000071727De22E5E9d8BAf0edAc6f37da032", @@ -38,10 +38,10 @@ "transaction": { "from": "0x8749313f626b100b822d573c71dfffdaca383032", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "gas": "0x1ff99e", + "gas": "0x1ea410", "value": "0x0", - "input": "0x000000000000000000000000000000000000000000000000000000000000000060e060405234801561001057600080fd5b506040516119ec3803806119ec83398101604081905261002f91610089565b6001600160a01b03821661005657604051632039d3c960e01b815260040160405180910390fd5b306080526001600160a01b0391821660a0521660c0526100c3565b6001600160a01b038116811461008657600080fd5b50565b6000806040838503121561009c57600080fd5b82516100a781610071565b60208401519092506100b881610071565b809150509250929050565b60805160a05160c0516118e061010c6000396000818160a801526102e901526000818160f90152818161041701526109850152600081816103c2015261075401526118e06000f3fe60806040526004361061008a5760003560e01c80634fff40e1116100595780634fff40e11461016b578063663c87d81461018b578063928107f9146101ab578063c67e2d2a146101cb578063d9ed0e8f146101ed57600080fd5b806306433b1b14610096578063137e051e146100e757806315cca6381461011b57806319822f7c1461013d57600080fd5b3661009157005b600080fd5b3480156100a257600080fd5b506100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f357600080fd5b506100ca7f000000000000000000000000000000000000000000000000000000000000000081565b34801561012757600080fd5b5061013b610136366004610bdc565b61020d565b005b34801561014957600080fd5b5061015d610158366004610cc0565b6103bc565b6040519081526020016100de565b34801561017757600080fd5b5061013b610186366004610d13565b61074f565b34801561019757600080fd5b506100ca6101a6366004610e9b565b610849565b3480156101b757600080fd5b5061015d6101c6366004611092565b610928565b3480156101d757600080fd5b5060008051602061188b8339815191525461015d565b3480156101f957600080fd5b5061013b6102083660046111a8565b61097a565b33301461022d57604051630a57d61d60e01b815260040160405180910390fd5b60405163610b592560e01b81526001600160a01b038b166004820152309063610b592590602401600060405180830381600087803b15801561026e57600080fd5b505af1158015610282573d6000803e3d6000fd5b5050604080516000808252602082019092526001600160a01b038e16935063540fb4f99250906102d5565b6040805180820190915260008152606060208201528152602001906001900390816102ad5790505b508b8b8b8b8b8b60405180606001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020018d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060ff8c166020909101526040516001600160e01b031960e08b901b16815261037e9897969594939291906004016113f7565b600060405180830381600087803b15801561039857600080fd5b505af11580156103ac573d6000803e3d6000fd5b5050505050505050505050505050565b600080547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161461040c576040516308e3edd160e41b815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461045557604051632039d3c960e01b815260040160405180910390fd5b6104626060850185611497565b610471916004916000916114dd565b61047a91611507565b6001600160e01b03191663d9ed0e8f60e01b146104aa5760405163c3d40f7760e01b815260040160405180910390fd5b60006104b96060860186611497565b6104c79160049082906114dd565b8101906104d49190611092565b90506104ec60008051602061188b8339815191525490565b6104f582610928565b146105135760405163278328b160e21b815260040160405180910390fd5b60a081015160c0820151604051636a5e151560e01b81526020880135606081901c9390926001600160a01b0390911691636a5e15159161055591600401611537565b600060405180830381600087803b15801561056f57600080fd5b505af1158015610583573d6000803e3d6000fd5b50505060c08401515160009150815b818110156106a95760008660c0015182815181106105b2576105b261154a565b6020026020010151600001519050806001600160a01b0316636d61fe708860c0015184815181106105e5576105e561154a565b6020026020010151602001516040518263ffffffff1660e01b815260040161060d9190611560565b600060405180830381600087803b15801561062757600080fd5b505af115801561063b573d6000803e3d6000fd5b505060408051600181526001600160a01b03851660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905060405180910390a1856001600160a01b0316816001600160a01b0316036106a057600193505b50600101610592565b50816106bd57600195505050505050610748565b604051639700320360e01b81526001600160a01b038516906397003203906106eb908c908c90600401611573565b6020604051808303816000875af115801561070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072e9190611672565b95508615610742576000806000808a335af1505b50505050505b9392505050565b6000547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161461079e576040516308e3edd160e41b815260040160405180910390fd5b6107b48460008051602061188b83398151915255565b6001600160a01b03831615610843576000836001600160a01b031683836040516107df92919061168b565b600060405180830381855af49150503d806000811461081a576040519150601f19603f3d011682016040523d82523d6000602084013e61081f565b606091505b505090508061084157604051631f57fed560e31b815260040160405180910390fd5b505b50505050565b600081805190602001208360405160200161086e929190918252602082015260400190565b60405160208183030381529060405280519060200120925060ff60f81b858486896001600160a01b03166040516020016108a992919061169b565b6040516020818303038152906040528051906020012060405160200161090694939291906001600160f81b031994909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b80516020808301516040808501516060860151608087015160a088015160c0890151945160009861095d9890979691016116bd565b604051602081830303815290604052805190602001209050919050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109c357604051632039d3c960e01b815260040160405180910390fd5b6109d0602082018261172a565b600080546001600160a01b0319166001600160a01b03929092169190911790553063b63e800d610a036020840184611747565b6040850135610a18608087016060880161172a565b610a256080880188611497565b610a3560c08a0160a08b0161172a565b60008060006040518b63ffffffff1660e01b8152600401610a5f9a99989796959493929190611790565b600060405180830381600087803b158015610a7957600080fd5b505af1158015610a8d573d6000803e3d6000fd5b5050600060008051602061188b8339815191525550610aa99050565b600080610abc60c0840160a0850161172a565b6001600160a01b0316610ad260e0850185611497565b30604051602001610ae593929190611848565b60408051601f1981840301815290829052610aff9161186e565b6000604051808303816000865af19150503d8060008114610b3c576040519150601f19603f3d011682016040523d82523d6000602084013e610b41565b606091505b509150915081610b5357805160208201fd5b505050565b6001600160a01b0381168114610b6d57600080fd5b50565b8035610b7b81610b58565b919050565b60008083601f840112610b9257600080fd5b5081356001600160401b03811115610ba957600080fd5b6020830191508360208260051b8501011115610bc457600080fd5b9250929050565b803560ff81168114610b7b57600080fd5b60008060008060008060008060008060c08b8d031215610bfb57600080fd5b610c048b610b70565b995060208b01356001600160401b0380821115610c2057600080fd5b610c2c8e838f01610b80565b909b50995060408d0135915080821115610c4557600080fd5b610c518e838f01610b80565b909950975060608d0135915080821115610c6a57600080fd5b610c768e838f01610b80565b909750955060808d0135915080821115610c8f57600080fd5b50610c9c8d828e01610b80565b9094509250610caf905060a08c01610bcb565b90509295989b9194979a5092959850565b600080600060608486031215610cd557600080fd5b83356001600160401b03811115610ceb57600080fd5b84016101208187031215610cfe57600080fd5b95602085013595506040909401359392505050565b60008060008060608587031215610d2957600080fd5b843593506020850135610d3b81610b58565b925060408501356001600160401b0380821115610d5757600080fd5b818701915087601f830112610d6b57600080fd5b813581811115610d7a57600080fd5b886020828501011115610d8c57600080fd5b95989497505060200194505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610dd357610dd3610d9b565b60405290565b60405161010081016001600160401b0381118282101715610dd357610dd3610d9b565b604051601f8201601f191681016001600160401b0381118282101715610e2457610e24610d9b565b604052919050565b600082601f830112610e3d57600080fd5b81356001600160401b03811115610e5657610e56610d9b565b610e69601f8201601f1916602001610dfc565b818152846020838601011115610e7e57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215610eb357600080fd5b8535610ebe81610b58565b94506020860135610ece81610b58565b935060408601356001600160401b0380821115610eea57600080fd5b610ef689838a01610e2c565b9450606088013593506080880135915080821115610f1357600080fd5b50610f2088828901610e2c565b9150509295509295909350565b60006001600160401b03821115610f4657610f46610d9b565b5060051b60200190565b600082601f830112610f6157600080fd5b81356020610f76610f7183610f2d565b610dfc565b8083825260208201915060208460051b870101935086841115610f9857600080fd5b602086015b84811015610fbd578035610fb081610b58565b8352918301918301610f9d565b509695505050505050565b600082601f830112610fd957600080fd5b81356020610fe9610f7183610f2d565b82815260059290921b8401810191818101908684111561100857600080fd5b8286015b84811015610fbd5780356001600160401b038082111561102c5760008081fd5b908801906040828b03601f19018113156110465760008081fd5b61104e610db1565b8784013561105b81610b58565b81529083013590828211156110705760008081fd5b61107e8c8984870101610e2c565b81890152865250505091830191830161100c565b6000602082840312156110a457600080fd5b81356001600160401b03808211156110bb57600080fd5b9083019061010082860312156110d057600080fd5b6110d8610dd9565b6110e183610b70565b81526020830135828111156110f557600080fd5b61110187828601610f50565b6020830152506040830135604082015261111d60608401610b70565b606082015260808301358281111561113457600080fd5b61114087828601610e2c565b60808301525061115260a08401610b70565b60a082015260c08301358281111561116957600080fd5b61117587828601610fc8565b60c08301525060e08301358281111561118d57600080fd5b61119987828601610e2c565b60e08301525095945050505050565b6000602082840312156111ba57600080fd5b81356001600160401b038111156111d057600080fd5b8201610100818503121561074857600080fd5b60005b838110156111fe5781810151838201526020016111e6565b50506000910152565b6000815180845261121f8160208601602086016111e3565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b8481101561129b57858303601f19018952815180516001600160a01b03168452840151604085850181905261128781860183611207565b9a86019a9450505090830190600101611250565b5090979650505050505050565b6000808335601e198436030181126112bf57600080fd5b83016020810192503590506001600160401b038111156112de57600080fd5b803603821315610bc457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008383855260208086019550808560051b830101846000805b888110156113a457858403601f19018a52823536899003603e19018112611355578283fd5b88016040813561136481610b58565b6001600160a01b0316865261137b828801836112a8565b9250818888015261138f82880184836112ed565b9c88019c965050509285019250600101611330565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156113ec5781516001600160a01b0316875295820195908201906001016113c7565b509495945050505050565b60a08152600061140a60a083018b611233565b828103602084015261141d818a8c611316565b9050828103604084015261143281888a611316565b90508281036060840152611447818688611316565b9050828103608084015260018060a01b03845116815260208401516060602083015261147660608301826113b2565b905060ff604086015116604083015280925050509998505050505050505050565b6000808335601e198436030181126114ae57600080fd5b8301803591506001600160401b038211156114c857600080fd5b602001915036819003821315610bc457600080fd5b600080858511156114ed57600080fd5b838611156114fa57600080fd5b5050820193919092039150565b6001600160e01b0319813581811691600485101561152f5780818660040360031b1b83161692505b505092915050565b6020815260006107486020830184611233565b634e487b7160e01b600052603260045260246000fd5b6020815260006107486020830184611207565b604081526115946040820161158785610b70565b6001600160a01b03169052565b6020830135606082015260006115ad60408501856112a8565b6101208060808601526115c5610160860183856112ed565b92506115d460608801886112a8565b9250603f19808786030160a08801526115ee8585846112ed565b9450608089013560c088015260a089013560e0880152610100935060c08901358488015261161f60e08a018a6112a8565b92508188870301848901526116358684836112ed565b955050611644848a018a6112a8565b94509250808786030161014088015250506116608383836112ed565b93505050508260208301529392505050565b60006020828403121561168457600080fd5b5051919050565b8183823760009101908152919050565b600083516116ad8184602088016111e3565b9190910191825250602001919050565b600060018060a01b03808a16835260e060208401526116df60e084018a6113b2565b886040850152818816606085015283810360808501526116ff8188611207565b905081861660a085015283810360c085015261171b8186611233565b9b9a5050505050505050505050565b60006020828403121561173c57600080fd5b813561074881610b58565b6000808335601e1984360301811261175e57600080fd5b8301803591506001600160401b0382111561177857600080fd5b6020019150600581901b3603821315610bc457600080fd5b61010080825281018a9052600061012082018c825b8d8110156117d65781356117b881610b58565b6001600160a01b0316835260209283019291909101906001016117a5565b50508a60208401526117f3604084018b6001600160a01b03169052565b828103606084015261180681898b6112ed565b91505061181e60808301876001600160a01b03169052565b6001600160a01b03851660a08301528360c083015261171b60e08301846001600160a01b03169052565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600082516118808184602087016111e3565b919091019291505056fe982e06ee6a56dfc0f1ac189a5d23506361ca0a3ce45a9c7b8d33d65d43746a24a2646970667358221220c1919b1e1e9acac581cfa9d50a4228c3505e3042d626f6d2d2bd2e35aba05bb664736f6c634300081900330000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032000000000000000000000000e0cde9239d16bef05e62bbf7aa93e420f464c826", - "nonce": "0x43", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060e060405234801561001057600080fd5b50604051611a4d380380611a4d83398101604081905261002f91610089565b6001600160a01b03821661005657604051632039d3c960e01b815260040160405180910390fd5b306080526001600160a01b0391821660a0521660c0526100c3565b6001600160a01b038116811461008657600080fd5b50565b6000806040838503121561009c57600080fd5b82516100a781610071565b60208401519092506100b881610071565b809150509250929050565b60805160a05160c05161194161010c6000396000818160a801526102e901526000818160f90152818161041701526109850152600081816103c2015261075401526119416000f3fe60806040526004361061008a5760003560e01c80634fff40e1116100595780634fff40e11461016b578063663c87d81461018b578063928107f9146101ab578063c67e2d2a146101cb578063d9ed0e8f146101ed57600080fd5b806306433b1b14610096578063137e051e146100e757806315cca6381461011b57806319822f7c1461013d57600080fd5b3661009157005b600080fd5b3480156100a257600080fd5b506100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f357600080fd5b506100ca7f000000000000000000000000000000000000000000000000000000000000000081565b34801561012757600080fd5b5061013b610136366004610bdc565b61020d565b005b34801561014957600080fd5b5061015d610158366004610cd0565b6103bc565b6040519081526020016100de565b34801561017757600080fd5b5061013b610186366004610d23565b61074f565b34801561019757600080fd5b506100ca6101a6366004610ead565b610849565b3480156101b757600080fd5b5061015d6101c63660046110b2565b610928565b3480156101d757600080fd5b506000805160206118ec8339815191525461015d565b3480156101f957600080fd5b5061013b6102083660046111e0565b61097a565b33301461022d57604051630a57d61d60e01b815260040160405180910390fd5b60405163610b592560e01b81526001600160a01b038b166004820152309063610b592590602401600060405180830381600087803b15801561026e57600080fd5b505af1158015610282573d6000803e3d6000fd5b5050604080516000808252602082019092526001600160a01b038e16935063540fb4f99250906102d5565b6040805180820190915260008152606060208201528152602001906001900390816102ad5790505b508b8b8b8b8b8b60405180606001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020018d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060ff8c166020909101526040516001600160e01b031960e08b901b16815261037e98979695949392919060040161142d565b600060405180830381600087803b15801561039857600080fd5b505af11580156103ac573d6000803e3d6000fd5b5050505050505050505050505050565b600080547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161461040c576040516308e3edd160e41b815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461045557604051632039d3c960e01b815260040160405180910390fd5b61046260608501856114cd565b61047191600491600091611513565b61047a9161153d565b6001600160e01b03191663d9ed0e8f60e01b146104aa5760405163c3d40f7760e01b815260040160405180910390fd5b60006104b960608601866114cd565b6104c7916004908290611513565b8101906104d491906110b2565b90506104ec6000805160206118ec8339815191525490565b6104f582610928565b146105135760405163278328b160e21b815260040160405180910390fd5b60a081015160c0820151604051636a5e151560e01b81526020880135606081901c9390926001600160a01b0390911691636a5e15159161055591600401611575565b600060405180830381600087803b15801561056f57600080fd5b505af1158015610583573d6000803e3d6000fd5b50505060c08401515160009150815b818110156106a95760008660c0015182815181106105b2576105b2611588565b6020026020010151600001519050806001600160a01b0316636d61fe708860c0015184815181106105e5576105e5611588565b6020026020010151602001516040518263ffffffff1660e01b815260040161060d919061159e565b600060405180830381600087803b15801561062757600080fd5b505af115801561063b573d6000803e3d6000fd5b505060408051600181526001600160a01b03851660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905060405180910390a1856001600160a01b0316816001600160a01b0316036106a057600193505b50600101610592565b50816106bd57600195505050505050610748565b604051639700320360e01b81526001600160a01b038516906397003203906106eb908c908c906004016115b1565b6020604051808303816000875af115801561070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072e91906116b5565b95508615610742576000806000808a335af1505b50505050505b9392505050565b6000547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161461079e576040516308e3edd160e41b815260040160405180910390fd5b6107b4846000805160206118ec83398151915255565b6001600160a01b03831615610843576000836001600160a01b031683836040516107df9291906116ce565b600060405180830381855af49150503d806000811461081a576040519150601f19603f3d011682016040523d82523d6000602084013e61081f565b606091505b505090508061084157604051631f57fed560e31b815260040160405180910390fd5b505b50505050565b600081805190602001208360405160200161086e929190918252602082015260400190565b60405160208183030381529060405280519060200120925060ff60f81b858486896001600160a01b03166040516020016108a99291906116de565b6040516020818303038152906040528051906020012060405160200161090694939291906001600160f81b031994909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b80516020808301516040808501516060860151608087015160a088015160c0890151945160009861095d989097969101611700565b604051602081830303815290604052805190602001209050919050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109c357604051632039d3c960e01b815260040160405180910390fd5b6109d0602082018261177d565b600080546001600160a01b0319166001600160a01b03929092169190911790553063b63e800d610a03602084018461179a565b6040850135610a18608087016060880161177d565b610a2560808801886114cd565b610a3560c08a0160a08b0161177d565b60008060006040518b63ffffffff1660e01b8152600401610a5f9a999897969594939291906117e3565b600060405180830381600087803b158015610a7957600080fd5b505af1158015610a8d573d6000803e3d6000fd5b505060006000805160206118ec8339815191525550610aa99050565b600080610abc60c0840160a0850161177d565b6001600160a01b0316610ad260e08501856114cd565b30604051602001610ae5939291906118a9565b60408051601f1981840301815290829052610aff916118cf565b6000604051808303816000865af19150503d8060008114610b3c576040519150601f19603f3d011682016040523d82523d6000602084013e610b41565b606091505b509150915081610b5357805160208201fd5b505050565b6001600160a01b0381168114610b6d57600080fd5b50565b8035610b7b81610b58565b919050565b60008083601f840112610b9257600080fd5b5081356001600160401b03811115610ba957600080fd5b6020830191508360208260051b8501011115610bc457600080fd5b9250929050565b803560ff81168114610b7b57600080fd5b60008060008060008060008060008060c08b8d031215610bfb57600080fd5b610c048b610b70565b995060208b01356001600160401b03811115610c1f57600080fd5b610c2b8d828e01610b80565b909a5098505060408b01356001600160401b03811115610c4a57600080fd5b610c568d828e01610b80565b90985096505060608b01356001600160401b03811115610c7557600080fd5b610c818d828e01610b80565b90965094505060808b01356001600160401b03811115610ca057600080fd5b610cac8d828e01610b80565b9094509250610cbf905060a08c01610bcb565b90509295989b9194979a5092959850565b600080600060608486031215610ce557600080fd5b83356001600160401b03811115610cfb57600080fd5b84016101208187031215610d0e57600080fd5b95602085013595506040909401359392505050565b60008060008060608587031215610d3957600080fd5b843593506020850135610d4b81610b58565b925060408501356001600160401b03811115610d6657600080fd5b8501601f81018713610d7757600080fd5b80356001600160401b03811115610d8d57600080fd5b876020828401011115610d9f57600080fd5b949793965060200194505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610de557610de5610dad565b60405290565b60405161010081016001600160401b0381118282101715610de557610de5610dad565b604051601f8201601f191681016001600160401b0381118282101715610e3657610e36610dad565b604052919050565b600082601f830112610e4f57600080fd5b81356001600160401b03811115610e6857610e68610dad565b610e7b601f8201601f1916602001610e0e565b818152846020838601011115610e9057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215610ec557600080fd5b8535610ed081610b58565b94506020860135610ee081610b58565b935060408601356001600160401b03811115610efb57600080fd5b610f0788828901610e3e565b9350506060860135915060808601356001600160401b03811115610f2a57600080fd5b610f3688828901610e3e565b9150509295509295909350565b60006001600160401b03821115610f5c57610f5c610dad565b5060051b60200190565b600082601f830112610f7757600080fd5b8135610f8a610f8582610f43565b610e0e565b8082825260208201915060208360051b860101925085831115610fac57600080fd5b602085015b83811015610fd2578035610fc481610b58565b835260209283019201610fb1565b5095945050505050565b600082601f830112610fed57600080fd5b8135610ffb610f8582610f43565b8082825260208201915060208360051b86010192508583111561101d57600080fd5b602085015b83811015610fd25780356001600160401b0381111561104057600080fd5b86016040818903601f1901121561105657600080fd5b61105e610dc3565b602082013561106c81610b58565b815260408201356001600160401b0381111561108757600080fd5b6110968a602083860101610e3e565b6020830152508085525050602083019250602081019050611022565b6000602082840312156110c457600080fd5b81356001600160401b038111156110da57600080fd5b820161010081850312156110ed57600080fd5b6110f5610deb565b6110fe82610b70565b815260208201356001600160401b0381111561111957600080fd5b61112586828501610f66565b6020830152506040828101359082015261114160608301610b70565b606082015260808201356001600160401b0381111561115f57600080fd5b61116b86828501610e3e565b60808301525061117d60a08301610b70565b60a082015260c08201356001600160401b0381111561119b57600080fd5b6111a786828501610fdc565b60c08301525060e08201356001600160401b038111156111c657600080fd5b6111d286828501610e3e565b60e083015250949350505050565b6000602082840312156111f257600080fd5b81356001600160401b0381111561120857600080fd5b8201610100818503121561074857600080fd5b60005b8381101561123657818101518382015260200161121e565b50506000910152565b6000815180845261125781602086016020860161121b565b601f01601f19169290920160200192915050565b600082825180855260208501945060208160051b8301016020850160005b838110156112db57848303601f19018852815180516001600160a01b031684526020908101516040918501829052906112c49085018261123f565b6020998a0199909450929092019150600101611289565b50909695505050505050565b6000808335601e198436030181126112fe57600080fd5b83016020810192503590506001600160401b0381111561131d57600080fd5b803603821315610bc457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008383855260208501945060208460051b8201018360005b868110156112db57838303601f19018852813536879003603e1901811261139457600080fd5b860180356113a181610b58565b6001600160a01b031684526113b960208201826112e7565b9150604060208601526113d060408601838361132c565b60209a8b019a9095509390930192505060010161136e565b600081518084526020840193506020830160005b828110156114235781516001600160a01b03168652602095860195909101906001016113fc565b5093949350505050565b60a08152600061144060a083018b61126b565b8281036020840152611453818a8c611355565b9050828103604084015261146881888a611355565b9050828103606084015261147d818688611355565b9050828103608084015260018060a01b0384511681526020840151606060208301526114ac60608301826113e8565b905060ff604086015116604083015280925050509998505050505050505050565b6000808335601e198436030181126114e457600080fd5b8301803591506001600160401b038211156114fe57600080fd5b602001915036819003821315610bc457600080fd5b6000808585111561152357600080fd5b8386111561153057600080fd5b5050820193919092039150565b80356001600160e01b0319811690600484101561156e576001600160e01b0319600485900360031b81901b82161691505b5092915050565b602081526000610748602083018461126b565b634e487b7160e01b600052603260045260246000fd5b602081526000610748602083018461123f565b604081526115d2604082016115c585610b70565b6001600160a01b03169052565b6020830135606082015260006115eb60408501856112e7565b61012060808501526116026101608501828461132c565b91505061161260608601866112e7565b848303603f190160a086015261162983828461132c565b608088013560c08781019190915260a089013560e08089019190915290890135610100880152909350611661925087019050866112e7565b848303603f190161012086015261167983828461132c565b9250505061168b6101008601866112e7565b848303603f19016101408601526116a383828461132c565b93505050508260208301529392505050565b6000602082840312156116c757600080fd5b5051919050565b8183823760009101908152919050565b600083516116f081846020880161121b565b9190910191825250602001919050565b6001600160a01b038816815260e060208201819052600090611724908301896113e8565b604083018890526001600160a01b0387166060840152828103608084015261174c818761123f565b6001600160a01b03861660a085015283810360c0850152905061176f818561126b565b9a9950505050505050505050565b60006020828403121561178f57600080fd5b813561074881610b58565b6000808335601e198436030181126117b157600080fd5b8301803591506001600160401b038211156117cb57600080fd5b6020019150600581901b3603821315610bc457600080fd5b61010080825281018a905260008b6101208301825b8d81101561182857823561180b81610b58565b6001600160a01b03168252602092830192909101906001016117f8565b508b6020850152611844604085018c6001600160a01b03169052565b8381036060850152611857818a8c61132c565b9250505061187060808301876001600160a01b03169052565b6001600160a01b03851660a08301528360c083015261189a60e08301846001600160a01b03169052565b9b9a5050505050505050505050565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600082516118e181846020870161121b565b919091019291505056fe982e06ee6a56dfc0f1ac189a5d23506361ca0a3ce45a9c7b8d33d65d43746a24a2646970667358221220cad03d772573536087657e4411cb1ae11c010e7514c3b5f5fc8fdd32ab22c59e64736f6c634300081a00330000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032000000000000000000000000e0cde9239d16bef05e62bbf7aa93e420f464c826", + "nonce": "0x4e", "chainId": "0xaa36a7" }, "additionalContracts": [], @@ -51,41 +51,41 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x13a07ae", + "cumulativeGasUsed": "0xf5e37b", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0xadee694915caabe82504b2d1afe5144199b8e1dca581228940b9fdf8966bdd53", - "transactionIndex": "0x3c", - "blockHash": "0x592afb04c687353a664e12162c0469af8fa126363396d4f43113de3b057ea2a1", - "blockNumber": "0x598d1b", - "gasUsed": "0x488ee5", - "effectiveGasPrice": "0x138fe5ea5", + "transactionHash": "0x88f06c801b59d6a7cb9ea31d74fbd1d3cd29722268b71c985fa2a316803d8039", + "transactionIndex": "0x48", + "blockHash": "0xdd227d0f2c23a0937fe9ee508bb647106df6f1a53985e01b335cf08ababeceb5", + "blockNumber": "0x5e657f", + "gasUsed": "0x492966", + "effectiveGasPrice": "0x33620eb2", "from": "0x8749313f626b100b822d573c71dfffdaca383032", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "contractAddress": "0xbaca6f74a5549368568f387fd989c279f940f1a5" + "contractAddress": "0x50da3861d482116c5f2ea6d673a58cedb786dc1c" }, { "status": "0x1", - "cumulativeGasUsed": "0x15361eb", + "cumulativeGasUsed": "0x10c141b", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x712bc66f8e220d2e1b66ab411af1b28676a89a25c271448467b8aaa10cee0110", - "transactionIndex": "0x3e", - "blockHash": "0x592afb04c687353a664e12162c0469af8fa126363396d4f43113de3b057ea2a1", - "blockNumber": "0x598d1b", - "gasUsed": "0x15dea5", - "effectiveGasPrice": "0x138fe5ea5", + "transactionHash": "0x1bbfb6556b104b95a47925c35f0433619514af54fb20d5fbe2a4e0635c7e387e", + "transactionIndex": "0x49", + "blockHash": "0xdd227d0f2c23a0937fe9ee508bb647106df6f1a53985e01b335cf08ababeceb5", + "blockNumber": "0x5e657f", + "gasUsed": "0x1630a0", + "effectiveGasPrice": "0x33620eb2", "from": "0x8749313f626b100b822d573c71dfffdaca383032", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "contractAddress": "0xbd3b9ba8162b23bcb0373e265cb07127e5b1b644" + "contractAddress": "0x026d0f3e4e547d319aba75c91a1d5ed7760f46e7" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1715275639, + "timestamp": 1719353024, "chain": 11155111, - "commit": "7ac113c" + "commit": "766b0d5" } \ No newline at end of file diff --git a/broadcast/Deploy.s.sol/84532/run-latest.json b/broadcast/Deploy.s.sol/84532/run-latest.json new file mode 100644 index 0000000..d8ad084 --- /dev/null +++ b/broadcast/Deploy.s.sol/84532/run-latest.json @@ -0,0 +1,61 @@ +{ + "transactions": [ + { + "hash": "0xae4e576888db7e6205a3efeb754388f35307c708a47b44d272a0c65f3fab29c4", + "transactionType": "CREATE2", + "contractName": "Safe7579", + "contractAddress": "0x50da3861d482116c5f2ea6d673a58cedb786dc1c", + "function": null, + "arguments": null, + "transaction": { + "from": "0x8749313f626b100b822d573c71dfffdaca383032", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x6af6fd", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060a0604052348015600f57600080fd5b50604051601a906046565b604051809103906000f0801580156035573d6000803e3d6000fd5b506001600160a01b03166080526053565b6109f080614bc483390190565b608051614b2c61009860003960008181610d0101528181610f1c0152818161178e01528181612cae01528181612d66015281816136cb01526137f70152614b2c6000f3fe6080604052600436106101235760003560e01c8063b0d691fe116100a0578063e9ae5c5311610064578063e9ae5c531461040f578063ea5f61d014610422578063eab77e1714610442578063f2dc691d14610462578063f698da25146104825761012a565b8063b0d691fe14610340578063b875d5d814610363578063d03c7914146103af578063d691c964146103cf578063d828435d146103ef5761012a565b80636a5e1515116100e75780636a5e1515146102b757806385571368146102ca5780639517e29f146102f85780639cfd7cff1461030b578063a71763a81461032d5761012a565b80630a664dba146101d4578063112d3a7d146102185780631626ba7e1461024857806319822f7c14610281578063540fb4f9146102a25761012a565b3661012a57005b600036606060003560e01c63bc197c81811463f23a6e6182141763150b7a028214171561015b57806020526020603cf35b5033600090815260046020908152604080832054600583528184206001600160e01b031985351680865293529083205491926001600160a01b039182169290911690806101a88484610497565b915091506101b68888610555565b95506101c484848484610669565b5050505050915050805190602001f35b3480156101e057600080fd5b50336000908152600460205260409020546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b50610238610233366004613aa8565b6106ec565b604051901515815260200161020f565b34801561025457600080fd5b50610268610263366004613b03565b610749565b6040516001600160e01b0319909116815260200161020f565b61029461028f366004613b4e565b6109de565b60405190815260200161020f565b6102b56102b0366004613bfd565b610af2565b005b6102b56102c5366004613cf9565b610b3f565b3480156102d657600080fd5b506102ea6102e5366004613d3a565b610ba0565b60405161020f929190613d66565b6102b5610306366004613aa8565b610bbc565b34801561031757600080fd5b50610320610d71565b60405161020f9190613e19565b6102b561033b366004613aa8565b610e03565b34801561034c57600080fd5b506f71727de22e5e9d8baf0edac6f37da0326101fb565b34801561036f57600080fd5b506101fb61037e366004613e42565b3360009081526005602090815260408083206001600160e01b0319909416835292905220546001600160a01b031690565b3480156103bb57600080fd5b506102386103ca366004613e5f565b610f7f565b6103e26103dd366004613b03565b611027565b60405161020f9190613e78565b3480156103fb57600080fd5b5061029461040a366004613edd565b6110f3565b6102b561041d366004613b03565b611193565b34801561042e57600080fd5b506102ea61043d366004613d3a565b611538565b34801561044e57600080fd5b506102b561045d366004613f27565b611562565b34801561046e57600080fd5b5061023861047d366004613e5f565b6115d1565b34801561048e57600080fd5b50610294611620565b6060806001600160a01b03841615610517576104fe338560006104b8611679565b346000366040516024016104cf9493929190613fb6565b60408051601f198184030181529190526020810180516001600160e01b031663d68f602560e01b179052611685565b91508180602001905181019061051491906140aa565b91505b6001600160a01b0383161561054e57610535338460006104b8611679565b90508080602001905181019061054b91906140aa565b90505b9250929050565b3360009081526003602090815260408083206001600160e01b0319843516845290915290208054606091906001600160a01b03811690600160a01b900460f81b816105c657604051632464e76d60e11b81526001600160e01b03196000351660048201526024015b60405180910390fd5b6105d481607f60f91b61172e565b156106185761060e338388886105e8611679565b6040516020016105fa939291906140de565b604051602081830303815290604052611740565b9350505050610663565b61062381600061172e565b1561065f5761060e338360008989610639611679565b60405160200161064b939291906140de565b604051602081830303815290604052611685565b5050505b92915050565b6001600160a01b038416156106bf576106bf33856000856040516024016106909190613e19565b60408051601f198184030181529190526020810180516001600160e01b0316630b9dfbed60e11b179052611815565b6001600160a01b038316156106e6576106e633846000846040516024016106909190613e19565b50505050565b600060018503610706576106ff846118b4565b9050610741565b60028503610717576106ff846118c2565b6003850361072a576106ff8484846118db565b6004850361073d576106ff848484611928565b5060005b949350505050565b600033821580156107c15750604051635ae6bd3760e01b8152600481018690526001600160a01b03821690635ae6bd3790602401602060405180830381865afa15801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107be9190614104565b15155b156107d65750630b135d3f60e11b90506109d7565b60006107e5601482868861411d565b6107ee91614147565b60601c90508015806108065750610804816118b4565b155b1561095c5760006108d1836001600160a01b031663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108729190614104565b60408051602081018b90527f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca910160408051601f1981840301815282825280516020918201209083015201604051602081830303815290604052611963565b805160208201209091506001600160a01b03841663934f3a1182846108f98a6014818e61411d565b6040518563ffffffff1660e01b81526004016109189493929190614194565b60006040518083038186803b15801561093057600080fd5b505afa158015610944573d6000803e3d6000fd5b50630b135d3f60e11b97506109d79650505050505050565b60006109bb338361096b611679565b8a6109798a6014818e61411d565b60405160240161098c9493929190613fb6565b60408051601f198184030181529190526020810180516001600160e01b0316637aa8f17760e11b179052611740565b9050808060200190518101906109d191906141cb565b93505050505b9392505050565b60006f71727de22e5e9d8baf0edac6f37da0326109f9611679565b6001600160a01b031614610a2057604051635629665f60e11b815260040160405180910390fd5b6020840135606081901c90811580610a3e5750610a3c826118b4565b155b15610a5357610a4c866119dd565b9250610ab8565b6000610a9e338460008a8a604051602401610a6f92919061422d565b60408051601f198184030181529190526020810180516001600160e01b0316639700320360e01b179052611685565b905080806020019051810190610ab49190614104565b9350505b8315610ae957610ae9336f71727de22e5e9d8baf0edac6f37da0328660405180602001604052806000815250611815565b50509392505050565b610b24610b026020830183614331565b610b0f602084018461434e565b610b1f6060860160408701614397565b611a83565b610b348989898989898989611b31565b505050505050505050565b610b4a600133611d74565b8060005b818110156106e65736848483818110610b6957610b696143b2565b9050602002810190610b7b91906143c8565b9050610b9733610b8e6020840184614331565b60019190611def565b50600101610b4e565b60606000610bb16001338686611ee4565b915091509250929050565b3360009081526004602090815260408083205460058352818420639517e29f60e01b80865293529083205491926001600160a01b03918216929091169080610c048484610497565b91509150610c1f6f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b0316610c30611679565b6001600160a01b03161480610c5d5750610c48611679565b6001600160a01b0316336001600160a01b0316145b610c7a57604051635629665f60e11b815260040160405180910390fd5b606060018a03610c9657610c8f8989896120a8565b9050610cfb565b60028a03610ca957610c8f898989612104565b60038a03610cbc57610c8f89898961216e565b60048a03610ccf57610c8f8989896122af565b89610cdf57610c8f89898961242e565b60405163041c38b360e41b8152600481018b90526024016105bd565b610d64337f00000000000000000000000000000000000000000000000000000000000000008c8c85604051602401610d35939291906143e8565b60408051601f198184030181529190526020810180516001600160e01b0316639517e29f60e01b1790526125b6565b50610b3484848484610669565b60606000336001600160a01b031663ffa1ad746040518163ffffffff1660e01b8152600401600060405180830381865afa158015610db3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ddb9190810190614412565b905080604051602001610dee919061445a565b60405160208183030381529060405291505090565b33600090815260046020908152604080832054600583528184206314e2ec7560e31b80865293529083205491926001600160a01b03918216929091169080610e4b8484610497565b91509150610e666f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b0316610e77611679565b6001600160a01b03161480610ea45750610e8f611679565b6001600160a01b0316336001600160a01b0316145b610ec157604051635629665f60e11b815260040160405180910390fd5b606060018a03610edd57610ed689898961264f565b9050610f16565b60028a03610ef057610ed6898989612678565b60038a03610f0357610ed68989896126a5565b60048a03610cdf57610ed68989896126f3565b610d64337f00000000000000000000000000000000000000000000000000000000000000008c8c85604051602401610f50939291906143e8565b60408051601f198184030181529190526020810180516001600160e01b0316637827252560e01b1790526127ab565b600081600881901b610f9582600160f81b61172e565b15610fa35760019250610fe6565b610fae82600061172e565b15610fbc5760019250610fe6565b610fce826001600160f81b031961172e565b15610fdc5760019250610fe6565b5060009392505050565b828015610ff95750610ff981600061172e565b15611005575050919050565b82801561101b575061101b81600160f81b61172e565b15610fdc575050919050565b6060611039611034611679565b6118c2565b61106a57611045611679565b604051635c93ff2f60e11b81526001600160a01b0390911660048201526024016105bd565b33600090815260046020908152604080832054600583528184206335a4725960e21b80865293529083205491926001600160a01b039182169290911690806110b28484610497565b915091503360026110c38282612861565b8a600881901b6110d581838e8e6128ec565b9950505050506110e784848484610669565b50505050509392505050565b6000602082901b640100000000600160c01b03166f71727de22e5e9d8baf0edac6f37da032604051631aab3f0d60e11b81526001600160a01b0386811660048301526001600160c01b038416602483015291909116906335567e1a90604401602060405180830381865afa15801561116f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107419190614104565b336000908152600460209081526040808320546005835281842063e9ae5c5360e01b80865293529083205491926001600160a01b039182169290911690806111db8484610497565b915091506111f66f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b0316611207611679565b6001600160a01b03161480611234575061121f611679565b6001600160a01b0316336001600160a01b0316145b61125157604051635629665f60e11b815260040160405180910390fd5b87600881901b3361126382600061172e565b156113c65761127683600160f81b61172e565b156112975789358a01602081019035611290838383612ca8565b505061151f565b6112a283600061172e565b1561130a576000803660006112b78e8e612d0f565b935093509350935061130185858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061181592505050565b5050505061151f565b61131c836001600160f81b031961172e565b156113a15760006113306014828c8e61411d565b61133991614147565b60601c90503660008c8c60149080926113549392919061411d565b91509150611399848484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506125b692505050565b50505061151f565b604051632e5bf3f960e21b81526001600160f81b0319841660048201526024016105bd565b6113d482600160f81b61172e565b156114fa576113e783600160f81b61172e565b156114015789358a01602081019035611290838383612d60565b61140c83600061172e565b1561146b576000803660006114218e8e612d0f565b935093509350935061130185858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612dc792505050565b61147d836001600160f81b031961172e565b156113a15760006114916014828c8e61411d565b61149a91614147565b60601c90503660008c8c60149080926114b59392919061411d565b91509150611399848484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127ab92505050565b6040516308c3ee0360e11b81526001600160f81b0319831660048201526024016105bd565b50505061152e84848484610669565b5050505050505050565b33600090815260026020526040812060609190611556818686612e7d565b92509250509250929050565b6f71727de22e5e9d8baf0edac6f37da03261157b611679565b6001600160a01b031614806115a85750611593611679565b6001600160a01b0316336001600160a01b0316145b6115c557604051635629665f60e11b815260040160405180910390fd5b6106e684848484611a83565b6000600182036115e357506001919050565b600282036115f357506001919050565b6003820361160357506001919050565b6004820361161357506001919050565b506000919050565b919050565b604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b60131936013560601c90565b60606000856001600160a01b0316635229073f86868660006040518563ffffffff1660e01b81526004016116bc94939291906144a0565b6000604051808303816000875af11580156116db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261170391908101906144eb565b925090508061172557604051632b3f6d1160e21b815260040160405180910390fd5b50949350505050565b6001600160f81b031990811691161490565b606060008383604051602401611757929190614538565b60408051601f198184030181529181526020820180516001600160e01b0316636a22165760e01b179052519091506000906117b8907f0000000000000000000000000000000000000000000000000000000000000000908490602401614538565b60408051601f19818403018152919052602080820180516001600160e01b031663b4faba0960e01b17815282519293509091600091895afa5060203d036040519350808401604052806020853e50600051610ae957825160208401fd5b60405163468721a760e01b81526000906001600160a01b0386169063468721a79061184a9087908790879087906004016144a0565b6020604051808303816000875af1158015611869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188d919061455c565b9050806118ad57604051632b3f6d1160e21b815260040160405180910390fd5b5050505050565b600061066360013384613029565b3360009081526002602052604081206109d7818461306d565b6000806118ea83850185613e42565b3360009081526003602090815260408083206001600160e01b0319909416835292905220546001600160a01b03908116908616149150509392505050565b6000808061193884860186614586565b91509150600061194883836130a7565b6001600160a01b039081169088161493505050509392505050565b6060601960f81b600160f81b8585856040516020016119839291906145b2565b60408051808303601f190181529082905280516020918201206001600160f81b0319958616918301919091529290931660218401526022830152604282015260620160405160208183030381529060405290509392505050565b6000806000803660006119ef8761313f565b8451602086012060405163934f3a1160e01b8152959a5093985091965094509250339163934f3a1191611a2a91899087908790600401614194565b60006040518083038186803b158015611a4257600080fd5b505afa925050508015611a53575060015b611a6a57611a636001848661338a565b9550611a79565b611a766000848661338a565b95505b5050505050919050565b3360008181526020819052604080822080546001600160a01b0319166001600160a01b03891617905551611af592918791611ac6908690899089906024016145d8565b60408051601f198184030181529190526020810180516001600160e01b031663f05c04e160e01b179052611815565b6040516001600160a01b0385169033907f9452c8fb077c3ea8f28a77c87488af657b1e44d010ad9a5992d73870da040e9490600090a350505050565b3360009081527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f602052604090205487906001600160a01b0316611bde57611b7a600133611d74565b60005b81811015611bd857368a8a83818110611b9857611b986143b2565b9050602002810190611baa91906143c8565b9050611bce611bbc6020830183614331565b611bc96020840184614630565b6120a8565b5050600101611b7d565b50611bff565b8015611bff5760405163d8e3ed1b60e01b81523360048201526024016105bd565b336000908152600260205260409020611c17816133c2565b86915060005b82811015611c785736898983818110611c3857611c386143b2565b9050602002810190611c4a91906143c8565b9050611c6e611c5c6020830183614331565b611c696020840184614630565b612104565b5050600101611c1d565b5084915060005b82811015611cda5736878783818110611c9a57611c9a6143b2565b9050602002810190611cac91906143c8565b9050611cd0611cbe6020830183614331565b611ccb6020840184614630565b61216e565b5050600101611c7f565b5082915060005b82811015611d3c5736858583818110611cfc57611cfc6143b2565b9050602002810190611d0e91906143c8565b9050611d32611d206020830183614331565b611d2d6020840184614630565b6122af565b5050600101611ce1565b5060405133907ff48581d8a62b775b74f2fb67f1d5806a9a356fbcc598040ab3071d3e37af40c290600090a250505050505050505050565b60016000908152602083815260408083206001600160a01b0380861685529252909120541615611db7576040516329e42f3360e11b815260040160405180910390fd5b60016000818152602093845260408082206001600160a01b0394909416825292909352912080546001600160a01b0319169091179055565b6001600160a01b0381161580611e0e57506001600160a01b0381166001145b15611e3757604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b0381811660009081526020858152604080832086851684529091529020541615611e8657604051631034f46960e21b81526001600160a01b03821660048201526024016105bd565b60016000908152602084815260408083206001600160a01b039586168085528184528285208054968816808752988552838620918652908452919093208054949095166001600160a01b031994851617909455528154169091179055565b606060006001600160a01b038416600114801590611f0a5750611f08868686613029565b155b15611f3357604051637c84ecfb60e01b81526001600160a01b03851660048201526024016105bd565b82600003611f545760405163f725081760e01b815260040160405180910390fd5b826001600160401b03811115611f6c57611f6c613fe8565b604051908082528060200260200182016040528015611f95578160200160208202803683370190505b506001600160a01b038086166000908152602089815260408083208a85168452909152812054929450911691505b6001600160a01b03821615801590611fe557506001600160a01b038216600114155b8015611ff057508381105b156120555781838281518110612008576120086143b2565b6001600160a01b039283166020918202929092018101919091529281166000908152888452604080822089841683529094529290922054909116908061204d8161468c565b915050611fc3565b6001600160a01b03821660011480159061206f5750600081115b1561209b57826120806001836146a5565b81518110612090576120906143b2565b602002602001015191505b8083525094509492505050565b60608360016120b78282612861565b6120c360013388611def565b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b60608360026121138282612861565b33600090815260026020526040902061212c818861341f565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929a9950505050505050505050565b606083600361217d8282612861565b6000808061218d87890189614709565b919450925090506001600160e01b031983166306d61fe760e41b14806121c357506001600160e01b03198316638a91b0e360e01b145b156121ed576040516379bd117b60e01b81526001600160e01b0319841660048201526024016105bd565b3360009081526003602090815260408083206001600160e01b0319871684529091529020546001600160a01b031615612245576040516374420d1560e01b81526001600160e01b0319841660048201526024016105bd565b3360009081526003602090815260408083206001600160e01b031990961683529490529290922080546001600160a01b038a166001600160a01b031960f89490941c600160a01b02939093166001600160a81b031990911617919091179055925050509392505050565b60608360046122be8282612861565b600080806122ce87890189614777565b919450925090506000808460018111156122ea576122ea6147a5565b1480156122ff57506001600160e01b03198316155b156123755750336000908152600460205260409020546001600160a01b031680156123485760405163741cbe0360e01b81526001600160a01b03821660048201526024016105bd565b33600090815260046020526040902080546001600160a01b0319166001600160a01b038c16179055612421565b6001846001811115612389576123896147a5565b03612408576001600160a01b038116156123c15760405163741cbe0360e01b81526001600160a01b03821660048201526024016105bd565b503360009081526005602090815260408083206001600160e01b031986168452909152902080546001600160a01b038b81166001600160a01b031983161790925516612421565b604051635691922f60e01b815260040160405180910390fd5b5098975050505050505050565b606082358301602081810191359085810135860180820191903590604088013588019081019035848381146124765760405163b4fa3fb360e01b815260040160405180910390fd5b60005b8181101561256f576000888883818110612495576124956143b2565b905060200201359050600181036124d4576124ce8d8888858181106124bc576124bc6143b2565b9050602002810190611bc99190614630565b50612566565b60028103612504576124ce8d8888858181106124f2576124f26143b2565b9050602002810190611c699190614630565b60038103612534576124ce8d888885818110612522576125226143b2565b9050602002810190611ccb9190614630565b60048103612566576125648d888885818110612552576125526143b2565b9050602002810190611d2d9190614630565b505b50600101612479565b5082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929e9d5050505050505050505050505050565b60405163468721a760e01b81526000906001600160a01b0385169063468721a7906125ec908690859087906001906004016144a0565b6020604051808303816000875af115801561260b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262f919061455c565b9050806106e657604051632b3f6d1160e21b815260040160405180910390fd5b6060600061265f838501856147bb565b9250905061267060013383886134f5565b509392505050565b336000908152600260205260408120606091612696848601866147bb565b93509050610ae98282886135ec565b606060006126b583850185614800565b3360009081526003602090815260408083206001600160e01b031990951683529390529190912080546001600160a01b031916905595945050505050565b606060008061270484860186614777565b94509092509050600082600181111561271f5761271f6147a5565b14801561273457506001600160e01b03198116155b1561275b5733600090815260046020526040902080546001600160a01b0319169055610ae9565b600182600181111561276f5761276f6147a5565b03612408573360009081526005602090815260408083206001600160e01b031985168452909152902080546001600160a01b0319169055610ae9565b60405163468721a760e01b81526000906001600160a01b0385169063468721a7906127e1908690859087906001906004016144a0565b6020604051808303816000875af1158015612800573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612824919061455c565b9050806106e657604080516001600160a01b038616815260006020820152600080516020614ad7833981519152910160405180910390a150505050565b336000908152602081905260409020546001600160a01b031680156128e75760405163529562a160e01b81523360048201526001600160a01b0384811660248301526044820184905282169063529562a19060640160006040518083038186803b1580156128ce57600080fd5b505afa1580156128e2573d6000803e3d6000fd5b505050505b505050565b60606128f985600061172e565b15612aef5761290c84600160f81b61172e565b1561292f57823583016020810190356129263383836136c1565b92505050610741565b61293a84600061172e565b156129ee5760008036600061294f8787612d0f565b6040805160018082528183019092529498509296509094509250816020015b606081526020019060019003908161296e5790505094506129c733858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061168592505050565b856000815181106129da576129da6143b2565b602002602001018190525050505050610741565b612a00846001600160f81b031961172e565b15612aca576000612a14601482858761411d565b612a1d91614147565b60601c9050366000612a32856014818961411d565b604080516001808252818301909252929450909250816020015b6060815260200190600190039081612a4c579050509350612aa4338484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061374b92505050565b84600081518110612ab757612ab76143b2565b6020026020010181905250505050610741565b604051632e5bf3f960e21b81526001600160f81b0319851660048201526024016105bd565b612afd85600160f81b61172e565b15612c8357612b1084600160f81b61172e565b15612b355782358301602081019035612b2a3383836137ec565b935061074192505050565b612b4084600061172e565b15612bcd57600080366000612b558787612d0f565b6040805160018082528183019092529498509296509094509250816020015b6060815260200190600190039081612b745790505094506129c733858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061387b92505050565b612bdf846001600160f81b031961172e565b15612aca576000612bf3601482858761411d565b612bfc91614147565b60601c9050366000612c11856014818961411d565b604080516001808252818301909252929450909250816020015b6060815260200190600190039081612c2b579050509350612aa4338484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061393b92505050565b6040516308c3ee0360e11b81526001600160f81b0319861660048201526024016105bd565b6128e7837f00000000000000000000000000000000000000000000000000000000000000008484604051602401612ce092919061481e565b60408051601f198184030181529190526020810180516001600160e01b0316633f707e6b60e01b1790526125b6565b6000803681612d21601482878961411d565b612d2a91614147565b60601c9350612d3d60346014878961411d565b612d46916148d0565b9250612d55856034818961411d565b949793965094505050565b6128e7837f00000000000000000000000000000000000000000000000000000000000000008484604051602401612d9892919061481e565b60408051601f198184030181529190526020810180516001600160e01b0316632864481160e11b1790526127ab565b60405163468721a760e01b81526000906001600160a01b0386169063468721a790612dfc9087908790879087906004016144a0565b6020604051808303816000875af1158015612e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3f919061455c565b9050806118ad57604080516001600160a01b038716815260006020820152600080516020614ad7833981519152910160405180910390a15050505050565b606060006001600160a01b038416600114801590612ea25750612ea0858561306d565b155b15612ecb57604051637c84ecfb60e01b81526001600160a01b03851660048201526024016105bd565b82600003612eec5760405163f725081760e01b815260040160405180910390fd5b826001600160401b03811115612f0457612f04613fe8565b604051908082528060200260200182016040528015612f2d578160200160208202803683370190505b506001600160a01b03808616600090815260208890526040812054929450911691505b6001600160a01b03821615801590612f7257506001600160a01b038216600114155b8015612f7d57508381105b15612fd75781838281518110612f9557612f956143b2565b6001600160a01b039283166020918202929092018101919091529281166000908152928790526040909220549091169080612fcf8161468c565b915050612f50565b6001600160a01b038216600114801590612ff15750600081115b1561301d57826130026001836146a5565b81518110613012576130126143b2565b602002602001015191505b80835250935093915050565b600060016001600160a01b038316148015906107415750506001600160a01b0390811660009081526020938452604080822093831682529290935291205416151590565b600060016001600160a01b038316148015906109d75750506001600160a01b03908116600090815260209290925260409091205416151590565b6000808360018111156130bc576130bc6147a5565b1480156130d157506001600160e01b03198216155b156130f15750336000908152600460205260409020546001600160a01b03165b6001836001811115613105576131056147a5565b0361066357503360009081526005602090815260408083206001600160e01b0319851684529091529020546001600160a01b031692915050565b606060008036818181613156610100890189614630565b909250905061316960066000838561411d565b613172916148ee565b60d01c9550613185600c6006838561411d565b61318e916148ee565b60d01c94506131a081600c818561411d565b9350935050506000604051806101c001604052807fc03dfc11d8b10bf9cf703d558958c8c42777f785d998c62060d85a4f0ef6ea7f60001b81526020018860000160208101906131f09190614331565b6001600160a01b03168152602001886020013581526020018880604001906132189190614630565b604051613226929190614924565b604051908190039020815260200161324160608a018a614630565b60405161324f929190614924565b60405180910390208152602001613265896139fb565b6001600160801b0316815260200161327c89613a0b565b6001600160801b031681526020018860a00135815260200161329d89613a20565b6001600160801b031681526020016132b489613a2f565b6001600160801b031681526020016132cf60e08a018a614630565b6040516132dd929190614924565b604051809103902081526020018665ffffffffffff1681526020018565ffffffffffff16815260200161331d6f71727de22e5e9d8baf0edac6f37da03290565b6001600160a01b031690526101c08120909150601960f81b600160f81b613342611620565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529650505091939590929450565b600060d08265ffffffffffff16901b60a08465ffffffffffff16901b856133b25760006133b5565b60015b60ff161717949350505050565b60016000908152602082905260409020546001600160a01b0316156133fa576040516329e42f3360e11b815260040160405180910390fd5b60016000818152602092909252604090912080546001600160a01b0319169091179055565b6001600160a01b038116158061343e57506001600160a01b0381166001145b1561346757604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b0381811660009081526020849052604090205416156134ab57604051631034f46960e21b81526001600160a01b03821660048201526024016105bd565b60016000818152602093909352604080842080546001600160a01b039485168087529286208054959091166001600160a01b03199586161790559190935280549091169091179055565b6001600160a01b038116158061351457506001600160a01b0381166001145b1561353d57604051637c84ecfb60e01b81526001600160a01b03831660048201526024016105bd565b6001600160a01b03828116600090815260208681526040808320878516845290915290205481169082161461359057604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b039081166000908152602085815260408083209584168084528683528184208054968616855297835281842090845282529091208054939092166001600160a01b031993841617909155919091528154169055565b6001600160a01b038116158061360b57506001600160a01b0381166001145b1561363457604051637c84ecfb60e01b81526001600160a01b03831660048201526024016105bd565b6001600160a01b0382811660009081526020859052604090205481169082161461367c57604051637c84ecfb60e01b81526001600160a01b03821660048201526024016105bd565b6001600160a01b0390811660008181526020949094526040808520805494841686529085208054949093166001600160a01b0319948516179092559092528154169055565b6060600061372c857f000000000000000000000000000000000000000000000000000000000000000086866040516024016136fd92919061481e565b60408051601f198184030181529190526020810180516001600160e01b0316636108557360e01b17905261374b565b90508080602001905181019061374291906149e3565b95945050505050565b60606000846001600160a01b0316635229073f8560008660016040518563ffffffff1660e01b815260040161378394939291906144a0565b6000604051808303816000875af11580156137a2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526137ca91908101906144eb565b925090508061267057604051632b3f6d1160e21b815260040160405180910390fd5b6060806000613858867f0000000000000000000000000000000000000000000000000000000000000000878760405160240161382992919061481e565b60408051601f198184030181529190526020810180516001600160e01b0316639abb6e1760e01b17905261393b565b90508080602001905181019061386e9190614a17565b9097909650945050505050565b60606000856001600160a01b0316635229073f86868660006040518563ffffffff1660e01b81526004016138b294939291906144a0565b6000604051808303816000875af11580156138d1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138f991908101906144eb565b925090508061172557604080516001600160a01b038816815260006020820152600080516020614ad7833981519152910160405180910390a150949350505050565b60606000846001600160a01b0316635229073f8560008660016040518563ffffffff1660e01b815260040161397394939291906144a0565b6000604051808303816000875af1158015613992573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526139ba91908101906144eb565b925090508061267057604080516001600160a01b038716815260006020820152600080516020614ad7833981519152910160405180910390a1509392505050565b6000610663826080013560801c90565b60006001600160801b03608083013516610663565b600060c082013560801c610663565b60006001600160801b0360c083013516610663565b6001600160a01b0381168114613a5957600080fd5b50565b803561161b81613a44565b60008083601f840112613a7957600080fd5b5081356001600160401b03811115613a9057600080fd5b60208301915083602082850101111561054e57600080fd5b60008060008060608587031215613abe57600080fd5b843593506020850135613ad081613a44565b925060408501356001600160401b03811115613aeb57600080fd5b613af787828801613a67565b95989497509550505050565b600080600060408486031215613b1857600080fd5b8335925060208401356001600160401b03811115613b3557600080fd5b613b4186828701613a67565b9497909650939450505050565b600080600060608486031215613b6357600080fd5b83356001600160401b03811115613b7957600080fd5b84016101208187031215613b8c57600080fd5b95602085013595506040909401359392505050565b60008083601f840112613bb357600080fd5b5081356001600160401b03811115613bca57600080fd5b6020830191508360208260051b850101111561054e57600080fd5b600060608284031215613bf757600080fd5b50919050565b600080600080600080600080600060a08a8c031215613c1b57600080fd5b89356001600160401b03811115613c3157600080fd5b613c3d8c828d01613ba1565b909a5098505060208a01356001600160401b03811115613c5c57600080fd5b613c688c828d01613ba1565b90985096505060408a01356001600160401b03811115613c8757600080fd5b613c938c828d01613ba1565b90965094505060608a01356001600160401b03811115613cb257600080fd5b613cbe8c828d01613ba1565b90945092505060808a01356001600160401b03811115613cdd57600080fd5b613ce98c828d01613be5565b9150509295985092959850929598565b60008060208385031215613d0c57600080fd5b82356001600160401b03811115613d2257600080fd5b613d2e85828601613ba1565b90969095509350505050565b60008060408385031215613d4d57600080fd5b8235613d5881613a44565b946020939093013593505050565b6040808252835190820181905260009060208501906060840190835b81811015613da95783516001600160a01b0316835260209384019390920191600101613d82565b50506001600160a01b039490941660209390930192909252509092915050565b60005b83811015613de4578181015183820152602001613dcc565b50506000910152565b60008151808452613e05816020860160208601613dc9565b601f01601f19169290920160200192915050565b6020815260006109d76020830184613ded565b6001600160e01b031981168114613a5957600080fd5b600060208284031215613e5457600080fd5b81356109d781613e2c565b600060208284031215613e7157600080fd5b5035919050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015613ed157603f19878603018452613ebc858351613ded565b94506020938401939190910190600101613ea0565b50929695505050505050565b60008060408385031215613ef057600080fd5b8235613efb81613a44565b91506020830135613f0b81613a44565b809150509250929050565b803560ff8116811461161b57600080fd5b60008060008060608587031215613f3d57600080fd5b8435613f4881613a44565b935060208501356001600160401b03811115613f6357600080fd5b613f6f87828801613ba1565b9094509250613f82905060408601613f16565b905092959194509250565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b0385168152836020820152606060408201526000613fde606083018486613f8d565b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561402657614026613fe8565b604052919050565b60006001600160401b0382111561404757614047613fe8565b50601f01601f191660200190565b60006140686140638461402e565b613ffe565b905082815283838301111561407c57600080fd5b6109d7836020830184613dc9565b600082601f83011261409b57600080fd5b6109d783835160208501614055565b6000602082840312156140bc57600080fd5b81516001600160401b038111156140d257600080fd5b6107418482850161408a565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60006020828403121561411657600080fd5b5051919050565b6000808585111561412d57600080fd5b8386111561413a57600080fd5b5050820193919092039150565b80356bffffffffffffffffffffffff19811690601484101561418d576bffffffffffffffffffffffff196bffffffffffffffffffffffff198560140360031b1b82161691505b5092915050565b8481526060602082015260006141ad6060830186613ded565b82810360408401526141c0818587613f8d565b979650505050505050565b6000602082840312156141dd57600080fd5b81516109d781613e2c565b6000808335601e198436030181126141ff57600080fd5b83016020810192503590506001600160401b0381111561421e57600080fd5b80360382131561054e57600080fd5b6040815261424e6040820161424185613a5c565b6001600160a01b03169052565b60208301356060820152600061426760408501856141e8565b610120608085015261427e61016085018284613f8d565b91505061428e60608601866141e8565b848303603f190160a08601526142a5838284613f8d565b608088013560c08781019190915260a089013560e080890191909152908901356101008801529093506142dd925087019050866141e8565b848303603f19016101208601526142f5838284613f8d565b925050506143076101008601866141e8565b848303603f190161014086015261431f838284613f8d565b93505050508260208301529392505050565b60006020828403121561434357600080fd5b81356109d781613a44565b6000808335601e1984360301811261436557600080fd5b8301803591506001600160401b0382111561437f57600080fd5b6020019150600581901b360382131561054e57600080fd5b6000602082840312156143a957600080fd5b6109d782613f16565b634e487b7160e01b600052603260045260246000fd5b60008235603e198336030181126143de57600080fd5b9190910192915050565b8381526001600160a01b038316602082015260606040820181905260009061374290830184613ded565b60006020828403121561442457600080fd5b81516001600160401b0381111561443a57600080fd5b8201601f8101841361444b57600080fd5b61074184825160208401614055565b64736166652d60d81b81526000825161447a816005850160208701613dc9565b6e2e657263373537392e76302e302e3160881b6005939091019283015250601401919050565b60018060a01b03851681528360208201526080604082015260006144c76080830185613ded565b905060ff8316606083015295945050505050565b8051801515811461161b57600080fd5b600080604083850312156144fe57600080fd5b614507836144db565b915060208301516001600160401b0381111561452257600080fd5b61452e8582860161408a565b9150509250929050565b6001600160a01b038316815260406020820181905260009061074190830184613ded565b60006020828403121561456e57600080fd5b6109d7826144db565b80356002811061161b57600080fd5b6000806040838503121561459957600080fd5b6145a283614577565b91506020830135613f0b81613e2c565b828152600082516145ca816020850160208701613dc9565b919091016020019392505050565b60ff84168152604060208201819052810182905260008360608301825b8581101561462557823561460881613a44565b6001600160a01b03168252602092830192909101906001016145f5565b509695505050505050565b6000808335601e1984360301811261464757600080fd5b8301803591506001600160401b0382111561466157600080fd5b60200191503681900382131561054e57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161469e5761469e614676565b5060010190565b8181038181111561066357610663614676565b600082601f8301126146c957600080fd5b81356146d76140638261402e565b8181528460208386010111156146ec57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561471e57600080fd5b833561472981613e2c565b925060208401356001600160f81b03198116811461474657600080fd5b915060408401356001600160401b0381111561476157600080fd5b61476d868287016146b8565b9150509250925092565b60008060006060848603121561478c57600080fd5b61479584614577565b9250602084013561474681613e2c565b634e487b7160e01b600052602160045260246000fd5b600080604083850312156147ce57600080fd5b82356147d981613a44565b915060208301356001600160401b038111156147f457600080fd5b61452e858286016146b8565b6000806040838503121561481357600080fd5b82356147d981613e2c565b6020808252810182905260006040600584901b830181019083018583605e1936839003015b878210156148c357868503603f19018452823581811261486257600080fd5b8901803561486f81613a44565b6001600160a01b031686526020818101359087015261489160408201826141e8565b9150606060408801526148a8606088018383613f8d565b96505050602083019250602084019350600182019150614843565b5092979650505050505050565b8035602083101561066357600019602084900360031b1b1692915050565b80356001600160d01b0319811690600684101561418d576001600160d01b031960069490940360031b84901b1690921692915050565b8183823760009101908152919050565b60006001600160401b0382111561494d5761494d613fe8565b5060051b60200190565b600082601f83011261496857600080fd5b815161497661406382614934565b8082825260208201915060208360051b86010192508583111561499857600080fd5b602085015b838110156149d95780516001600160401b038111156149bb57600080fd5b6149ca886020838a010161408a565b8452506020928301920161499d565b5095945050505050565b6000602082840312156149f557600080fd5b81516001600160401b03811115614a0b57600080fd5b61074184828501614957565b60008060408385031215614a2a57600080fd5b82516001600160401b03811115614a4057600080fd5b8301601f81018513614a5157600080fd5b8051614a5f61406382614934565b8082825260208201915060208360051b850101925087831115614a8157600080fd5b6020840193505b82841015614aaa57614a99846144db565b825260209384019390910190614a88565b8095505050505060208301516001600160401b03811115614aca57600080fd5b61452e8582860161495756feb8bc84bd77f5eb08210b8eb20fd63b3ec6a7992d277ab94663bae0e066f792aca2646970667358221220ea61ad763284881149748ddd79675cc8013f934a2a4db1bb658c0c975b908ebb64736f6c634300081a00336080604052348015600f57600080fd5b506109d18061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636a2216571161005b5780636a221657146100df57806378272525146100f25780639517e29f146101055780639abb6e171461011857600080fd5b80633f707e6b1461008257806350c890221461009757806361085573146100bf575b600080fd5b6100956100903660046105c9565b610139565b005b6100aa6100a53660046105c9565b6101a3565b60405190151581526020015b60405180910390f35b6100d26100cd3660046105c9565b610212565b6040516100b691906106d3565b6100956100ed36600461071f565b6102cc565b6100956101003660046107e9565b6102ef565b6100956101133660046107e9565b610398565b61012b6101263660046105c9565b610437565b6040516100b6929190610873565b8060005b8181101561019d5736848483818110610158576101586108cd565b905060200281019061016a91906108e3565b905061019361017c6020830183610903565b602083013561018e604085018561091e565b610561565b505060010161013d565b50505050565b600081815b8181101561020a57368585838181106101c3576101c36108cd565b90506020028101906101d591906108e3565b90506101fe6101e76020830183610903565b60208301356101f9604085018561091e565b610597565b509350506001016101a8565b505092915050565b6060818067ffffffffffffffff81111561022e5761022e610709565b60405190808252806020026020018201604052801561026157816020015b606081526020019060019003908161024c5790505b50915060005b8181101561020a5736858583818110610282576102826108cd565b905060200281019061029491906108e3565b90506102a661017c6020830183610903565b8483815181106102b8576102b86108cd565b602090810291909101015250600101610267565b604051600080835160208501865afa3d6000833e80156102ea573d82f35b503d81fd5b604051638a91b0e360e01b81526001600160a01b03841690638a91b0e39061031d908590859060040161096c565b600060405180830381600087803b15801561033757600080fd5b505af115801561034b573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527f341347516a9de374859dfda710fa4828b2d48cb57d4fbe4c1149612b8e02276e93500190505b60405180910390a150505050565b6040516306d61fe760e41b81526001600160a01b03841690636d61fe70906103c6908590859060040161096c565b600060405180830381600087803b1580156103e057600080fd5b505af11580156103f4573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905061038a565b606080828067ffffffffffffffff81111561045457610454610709565b60405190808252806020026020018201604052801561048757816020015b60608152602001906001900390816104725790505b5091508067ffffffffffffffff8111156104a3576104a3610709565b6040519080825280602002602001820160405280156104cc578160200160208202803683370190505b50925060005b8181101561055857368686838181106104ed576104ed6108cd565b90506020028101906104ff91906108e3565b90506105116101e76020830183610903565b868481518110610523576105236108cd565b6020026020010186858151811061053c5761053c6108cd565b60209081029190910101919091529015159052506001016104d2565b50509250929050565b60405181838237600038838387895af161057e573d6000823e3d81fd5b3d8152602081013d6000823e3d01604052949350505050565b604051600090828482376000388483888a5af11591503d8152602081013d6000823e3d81016040525094509492505050565b600080602083850312156105dc57600080fd5b823567ffffffffffffffff8111156105f357600080fd5b8301601f8101851361060457600080fd5b803567ffffffffffffffff81111561061b57600080fd5b8560208260051b840101111561063057600080fd5b6020919091019590945092505050565b600082825180855260208501945060208160051b8301016020850160005b838110156106c757848303601f190188528151805180855260005b8181101561069557602081840181015187830182015201610679565b506000602082870101526020601f19601f8301168601019450505060208201915060208801975060018101905061065e565b50909695505050505050565b6020815260006106e66020830184610640565b9392505050565b80356001600160a01b038116811461070457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561073257600080fd5b61073b836106ed565b9150602083013567ffffffffffffffff81111561075757600080fd5b8301601f8101851361076857600080fd5b803567ffffffffffffffff81111561078257610782610709565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156107b1576107b1610709565b6040528181528282016020018710156107c957600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080606085870312156107ff57600080fd5b8435935061080f602086016106ed565b9250604085013567ffffffffffffffff81111561082b57600080fd5b8501601f8101871361083c57600080fd5b803567ffffffffffffffff81111561085357600080fd5b87602082840101111561086557600080fd5b949793965060200194505050565b6040808252835190820181905260009060208501906060840190835b818110156108af578351151583526020938401939092019160010161088f565b505083810360208501526108c38186610640565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60008235605e198336030181126108f957600080fd5b9190910192915050565b60006020828403121561091557600080fd5b6106e6826106ed565b6000808335601e1984360301811261093557600080fd5b83018035915067ffffffffffffffff82111561095057600080fd5b60200191503681900382131561096557600080fd5b9250929050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f1916010191905056fea2646970667358221220720ef7861d004c898c5584226bd363229b671686bc710cd9ba8dec323c2a769164736f6c634300081a0033", + "nonce": "0x15", + "chainId": "0x14a34" + }, + "additionalContracts": [ + { + "transactionType": "CREATE", + "address": "0x78aefdbd752a61167461f51da5eb328330e0f1c6", + "initCode": "0x6080604052348015600f57600080fd5b506109d18061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636a2216571161005b5780636a221657146100df57806378272525146100f25780639517e29f146101055780639abb6e171461011857600080fd5b80633f707e6b1461008257806350c890221461009757806361085573146100bf575b600080fd5b6100956100903660046105c9565b610139565b005b6100aa6100a53660046105c9565b6101a3565b60405190151581526020015b60405180910390f35b6100d26100cd3660046105c9565b610212565b6040516100b691906106d3565b6100956100ed36600461071f565b6102cc565b6100956101003660046107e9565b6102ef565b6100956101133660046107e9565b610398565b61012b6101263660046105c9565b610437565b6040516100b6929190610873565b8060005b8181101561019d5736848483818110610158576101586108cd565b905060200281019061016a91906108e3565b905061019361017c6020830183610903565b602083013561018e604085018561091e565b610561565b505060010161013d565b50505050565b600081815b8181101561020a57368585838181106101c3576101c36108cd565b90506020028101906101d591906108e3565b90506101fe6101e76020830183610903565b60208301356101f9604085018561091e565b610597565b509350506001016101a8565b505092915050565b6060818067ffffffffffffffff81111561022e5761022e610709565b60405190808252806020026020018201604052801561026157816020015b606081526020019060019003908161024c5790505b50915060005b8181101561020a5736858583818110610282576102826108cd565b905060200281019061029491906108e3565b90506102a661017c6020830183610903565b8483815181106102b8576102b86108cd565b602090810291909101015250600101610267565b604051600080835160208501865afa3d6000833e80156102ea573d82f35b503d81fd5b604051638a91b0e360e01b81526001600160a01b03841690638a91b0e39061031d908590859060040161096c565b600060405180830381600087803b15801561033757600080fd5b505af115801561034b573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527f341347516a9de374859dfda710fa4828b2d48cb57d4fbe4c1149612b8e02276e93500190505b60405180910390a150505050565b6040516306d61fe760e41b81526001600160a01b03841690636d61fe70906103c6908590859060040161096c565b600060405180830381600087803b1580156103e057600080fd5b505af11580156103f4573d6000803e3d6000fd5b5050604080518781526001600160a01b03871660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905061038a565b606080828067ffffffffffffffff81111561045457610454610709565b60405190808252806020026020018201604052801561048757816020015b60608152602001906001900390816104725790505b5091508067ffffffffffffffff8111156104a3576104a3610709565b6040519080825280602002602001820160405280156104cc578160200160208202803683370190505b50925060005b8181101561055857368686838181106104ed576104ed6108cd565b90506020028101906104ff91906108e3565b90506105116101e76020830183610903565b868481518110610523576105236108cd565b6020026020010186858151811061053c5761053c6108cd565b60209081029190910101919091529015159052506001016104d2565b50509250929050565b60405181838237600038838387895af161057e573d6000823e3d81fd5b3d8152602081013d6000823e3d01604052949350505050565b604051600090828482376000388483888a5af11591503d8152602081013d6000823e3d81016040525094509492505050565b600080602083850312156105dc57600080fd5b823567ffffffffffffffff8111156105f357600080fd5b8301601f8101851361060457600080fd5b803567ffffffffffffffff81111561061b57600080fd5b8560208260051b840101111561063057600080fd5b6020919091019590945092505050565b600082825180855260208501945060208160051b8301016020850160005b838110156106c757848303601f190188528151805180855260005b8181101561069557602081840181015187830182015201610679565b506000602082870101526020601f19601f8301168601019450505060208201915060208801975060018101905061065e565b50909695505050505050565b6020815260006106e66020830184610640565b9392505050565b80356001600160a01b038116811461070457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561073257600080fd5b61073b836106ed565b9150602083013567ffffffffffffffff81111561075757600080fd5b8301601f8101851361076857600080fd5b803567ffffffffffffffff81111561078257610782610709565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156107b1576107b1610709565b6040528181528282016020018710156107c957600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080606085870312156107ff57600080fd5b8435935061080f602086016106ed565b9250604085013567ffffffffffffffff81111561082b57600080fd5b8501601f8101871361083c57600080fd5b803567ffffffffffffffff81111561085357600080fd5b87602082840101111561086557600080fd5b949793965060200194505050565b6040808252835190820181905260009060208501906060840190835b818110156108af578351151583526020938401939092019160010161088f565b505083810360208501526108c38186610640565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60008235605e198336030181126108f957600080fd5b9190910192915050565b60006020828403121561091557600080fd5b6106e6826106ed565b6000808335601e1984360301811261093557600080fd5b83018035915067ffffffffffffffff82111561095057600080fd5b60200191503681900382131561096557600080fd5b9250929050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f1916010191905056fea2646970667358221220720ef7861d004c898c5584226bd363229b671686bc710cd9ba8dec323c2a769164736f6c634300081a0033" + } + ], + "isFixedGasLimit": false + }, + { + "hash": "0x3d977c1978ac7102ff8ca486054cf4fcba3838468420b998e7f8bad24c89f6fd", + "transactionType": "CREATE2", + "contractName": "Safe7579Launchpad", + "contractAddress": "0x026d0f3e4e547d319aba75c91a1d5ed7760f46e7", + "function": null, + "arguments": [ + "0x0000000071727De22E5E9d8BAf0edAc6f37da032", + "0xe0cde9239d16bEf05e62Bbf7aA93e420f464c826" + ], + "transaction": { + "from": "0x8749313f626b100b822d573c71dfffdaca383032", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x1ea410", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060e060405234801561001057600080fd5b50604051611a4d380380611a4d83398101604081905261002f91610089565b6001600160a01b03821661005657604051632039d3c960e01b815260040160405180910390fd5b306080526001600160a01b0391821660a0521660c0526100c3565b6001600160a01b038116811461008657600080fd5b50565b6000806040838503121561009c57600080fd5b82516100a781610071565b60208401519092506100b881610071565b809150509250929050565b60805160a05160c05161194161010c6000396000818160a801526102e901526000818160f90152818161041701526109850152600081816103c2015261075401526119416000f3fe60806040526004361061008a5760003560e01c80634fff40e1116100595780634fff40e11461016b578063663c87d81461018b578063928107f9146101ab578063c67e2d2a146101cb578063d9ed0e8f146101ed57600080fd5b806306433b1b14610096578063137e051e146100e757806315cca6381461011b57806319822f7c1461013d57600080fd5b3661009157005b600080fd5b3480156100a257600080fd5b506100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f357600080fd5b506100ca7f000000000000000000000000000000000000000000000000000000000000000081565b34801561012757600080fd5b5061013b610136366004610bdc565b61020d565b005b34801561014957600080fd5b5061015d610158366004610cd0565b6103bc565b6040519081526020016100de565b34801561017757600080fd5b5061013b610186366004610d23565b61074f565b34801561019757600080fd5b506100ca6101a6366004610ead565b610849565b3480156101b757600080fd5b5061015d6101c63660046110b2565b610928565b3480156101d757600080fd5b506000805160206118ec8339815191525461015d565b3480156101f957600080fd5b5061013b6102083660046111e0565b61097a565b33301461022d57604051630a57d61d60e01b815260040160405180910390fd5b60405163610b592560e01b81526001600160a01b038b166004820152309063610b592590602401600060405180830381600087803b15801561026e57600080fd5b505af1158015610282573d6000803e3d6000fd5b5050604080516000808252602082019092526001600160a01b038e16935063540fb4f99250906102d5565b6040805180820190915260008152606060208201528152602001906001900390816102ad5790505b508b8b8b8b8b8b60405180606001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020018d8d8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509082525060ff8c166020909101526040516001600160e01b031960e08b901b16815261037e98979695949392919060040161142d565b600060405180830381600087803b15801561039857600080fd5b505af11580156103ac573d6000803e3d6000fd5b5050505050505050505050505050565b600080547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161461040c576040516308e3edd160e41b815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461045557604051632039d3c960e01b815260040160405180910390fd5b61046260608501856114cd565b61047191600491600091611513565b61047a9161153d565b6001600160e01b03191663d9ed0e8f60e01b146104aa5760405163c3d40f7760e01b815260040160405180910390fd5b60006104b960608601866114cd565b6104c7916004908290611513565b8101906104d491906110b2565b90506104ec6000805160206118ec8339815191525490565b6104f582610928565b146105135760405163278328b160e21b815260040160405180910390fd5b60a081015160c0820151604051636a5e151560e01b81526020880135606081901c9390926001600160a01b0390911691636a5e15159161055591600401611575565b600060405180830381600087803b15801561056f57600080fd5b505af1158015610583573d6000803e3d6000fd5b50505060c08401515160009150815b818110156106a95760008660c0015182815181106105b2576105b2611588565b6020026020010151600001519050806001600160a01b0316636d61fe708860c0015184815181106105e5576105e5611588565b6020026020010151602001516040518263ffffffff1660e01b815260040161060d919061159e565b600060405180830381600087803b15801561062757600080fd5b505af115801561063b573d6000803e3d6000fd5b505060408051600181526001600160a01b03851660208201527fd21d0b289f126c4b473ea641963e766833c2f13866e4ff480abd787c100ef123935001905060405180910390a1856001600160a01b0316816001600160a01b0316036106a057600193505b50600101610592565b50816106bd57600195505050505050610748565b604051639700320360e01b81526001600160a01b038516906397003203906106eb908c908c906004016115b1565b6020604051808303816000875af115801561070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072e91906116b5565b95508615610742576000806000808a335af1505b50505050505b9392505050565b6000547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161461079e576040516308e3edd160e41b815260040160405180910390fd5b6107b4846000805160206118ec83398151915255565b6001600160a01b03831615610843576000836001600160a01b031683836040516107df9291906116ce565b600060405180830381855af49150503d806000811461081a576040519150601f19603f3d011682016040523d82523d6000602084013e61081f565b606091505b505090508061084157604051631f57fed560e31b815260040160405180910390fd5b505b50505050565b600081805190602001208360405160200161086e929190918252602082015260400190565b60405160208183030381529060405280519060200120925060ff60f81b858486896001600160a01b03166040516020016108a99291906116de565b6040516020818303038152906040528051906020012060405160200161090694939291906001600160f81b031994909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b80516020808301516040808501516060860151608087015160a088015160c0890151945160009861095d989097969101611700565b604051602081830303815290604052805190602001209050919050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109c357604051632039d3c960e01b815260040160405180910390fd5b6109d0602082018261177d565b600080546001600160a01b0319166001600160a01b03929092169190911790553063b63e800d610a03602084018461179a565b6040850135610a18608087016060880161177d565b610a2560808801886114cd565b610a3560c08a0160a08b0161177d565b60008060006040518b63ffffffff1660e01b8152600401610a5f9a999897969594939291906117e3565b600060405180830381600087803b158015610a7957600080fd5b505af1158015610a8d573d6000803e3d6000fd5b505060006000805160206118ec8339815191525550610aa99050565b600080610abc60c0840160a0850161177d565b6001600160a01b0316610ad260e08501856114cd565b30604051602001610ae5939291906118a9565b60408051601f1981840301815290829052610aff916118cf565b6000604051808303816000865af19150503d8060008114610b3c576040519150601f19603f3d011682016040523d82523d6000602084013e610b41565b606091505b509150915081610b5357805160208201fd5b505050565b6001600160a01b0381168114610b6d57600080fd5b50565b8035610b7b81610b58565b919050565b60008083601f840112610b9257600080fd5b5081356001600160401b03811115610ba957600080fd5b6020830191508360208260051b8501011115610bc457600080fd5b9250929050565b803560ff81168114610b7b57600080fd5b60008060008060008060008060008060c08b8d031215610bfb57600080fd5b610c048b610b70565b995060208b01356001600160401b03811115610c1f57600080fd5b610c2b8d828e01610b80565b909a5098505060408b01356001600160401b03811115610c4a57600080fd5b610c568d828e01610b80565b90985096505060608b01356001600160401b03811115610c7557600080fd5b610c818d828e01610b80565b90965094505060808b01356001600160401b03811115610ca057600080fd5b610cac8d828e01610b80565b9094509250610cbf905060a08c01610bcb565b90509295989b9194979a5092959850565b600080600060608486031215610ce557600080fd5b83356001600160401b03811115610cfb57600080fd5b84016101208187031215610d0e57600080fd5b95602085013595506040909401359392505050565b60008060008060608587031215610d3957600080fd5b843593506020850135610d4b81610b58565b925060408501356001600160401b03811115610d6657600080fd5b8501601f81018713610d7757600080fd5b80356001600160401b03811115610d8d57600080fd5b876020828401011115610d9f57600080fd5b949793965060200194505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610de557610de5610dad565b60405290565b60405161010081016001600160401b0381118282101715610de557610de5610dad565b604051601f8201601f191681016001600160401b0381118282101715610e3657610e36610dad565b604052919050565b600082601f830112610e4f57600080fd5b81356001600160401b03811115610e6857610e68610dad565b610e7b601f8201601f1916602001610e0e565b818152846020838601011115610e9057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215610ec557600080fd5b8535610ed081610b58565b94506020860135610ee081610b58565b935060408601356001600160401b03811115610efb57600080fd5b610f0788828901610e3e565b9350506060860135915060808601356001600160401b03811115610f2a57600080fd5b610f3688828901610e3e565b9150509295509295909350565b60006001600160401b03821115610f5c57610f5c610dad565b5060051b60200190565b600082601f830112610f7757600080fd5b8135610f8a610f8582610f43565b610e0e565b8082825260208201915060208360051b860101925085831115610fac57600080fd5b602085015b83811015610fd2578035610fc481610b58565b835260209283019201610fb1565b5095945050505050565b600082601f830112610fed57600080fd5b8135610ffb610f8582610f43565b8082825260208201915060208360051b86010192508583111561101d57600080fd5b602085015b83811015610fd25780356001600160401b0381111561104057600080fd5b86016040818903601f1901121561105657600080fd5b61105e610dc3565b602082013561106c81610b58565b815260408201356001600160401b0381111561108757600080fd5b6110968a602083860101610e3e565b6020830152508085525050602083019250602081019050611022565b6000602082840312156110c457600080fd5b81356001600160401b038111156110da57600080fd5b820161010081850312156110ed57600080fd5b6110f5610deb565b6110fe82610b70565b815260208201356001600160401b0381111561111957600080fd5b61112586828501610f66565b6020830152506040828101359082015261114160608301610b70565b606082015260808201356001600160401b0381111561115f57600080fd5b61116b86828501610e3e565b60808301525061117d60a08301610b70565b60a082015260c08201356001600160401b0381111561119b57600080fd5b6111a786828501610fdc565b60c08301525060e08201356001600160401b038111156111c657600080fd5b6111d286828501610e3e565b60e083015250949350505050565b6000602082840312156111f257600080fd5b81356001600160401b0381111561120857600080fd5b8201610100818503121561074857600080fd5b60005b8381101561123657818101518382015260200161121e565b50506000910152565b6000815180845261125781602086016020860161121b565b601f01601f19169290920160200192915050565b600082825180855260208501945060208160051b8301016020850160005b838110156112db57848303601f19018852815180516001600160a01b031684526020908101516040918501829052906112c49085018261123f565b6020998a0199909450929092019150600101611289565b50909695505050505050565b6000808335601e198436030181126112fe57600080fd5b83016020810192503590506001600160401b0381111561131d57600080fd5b803603821315610bc457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008383855260208501945060208460051b8201018360005b868110156112db57838303601f19018852813536879003603e1901811261139457600080fd5b860180356113a181610b58565b6001600160a01b031684526113b960208201826112e7565b9150604060208601526113d060408601838361132c565b60209a8b019a9095509390930192505060010161136e565b600081518084526020840193506020830160005b828110156114235781516001600160a01b03168652602095860195909101906001016113fc565b5093949350505050565b60a08152600061144060a083018b61126b565b8281036020840152611453818a8c611355565b9050828103604084015261146881888a611355565b9050828103606084015261147d818688611355565b9050828103608084015260018060a01b0384511681526020840151606060208301526114ac60608301826113e8565b905060ff604086015116604083015280925050509998505050505050505050565b6000808335601e198436030181126114e457600080fd5b8301803591506001600160401b038211156114fe57600080fd5b602001915036819003821315610bc457600080fd5b6000808585111561152357600080fd5b8386111561153057600080fd5b5050820193919092039150565b80356001600160e01b0319811690600484101561156e576001600160e01b0319600485900360031b81901b82161691505b5092915050565b602081526000610748602083018461126b565b634e487b7160e01b600052603260045260246000fd5b602081526000610748602083018461123f565b604081526115d2604082016115c585610b70565b6001600160a01b03169052565b6020830135606082015260006115eb60408501856112e7565b61012060808501526116026101608501828461132c565b91505061161260608601866112e7565b848303603f190160a086015261162983828461132c565b608088013560c08781019190915260a089013560e08089019190915290890135610100880152909350611661925087019050866112e7565b848303603f190161012086015261167983828461132c565b9250505061168b6101008601866112e7565b848303603f19016101408601526116a383828461132c565b93505050508260208301529392505050565b6000602082840312156116c757600080fd5b5051919050565b8183823760009101908152919050565b600083516116f081846020880161121b565b9190910191825250602001919050565b6001600160a01b038816815260e060208201819052600090611724908301896113e8565b604083018890526001600160a01b0387166060840152828103608084015261174c818761123f565b6001600160a01b03861660a085015283810360c0850152905061176f818561126b565b9a9950505050505050505050565b60006020828403121561178f57600080fd5b813561074881610b58565b6000808335601e198436030181126117b157600080fd5b8301803591506001600160401b038211156117cb57600080fd5b6020019150600581901b3603821315610bc457600080fd5b61010080825281018a905260008b6101208301825b8d81101561182857823561180b81610b58565b6001600160a01b03168252602092830192909101906001016117f8565b508b6020850152611844604085018c6001600160a01b03169052565b8381036060850152611857818a8c61132c565b9250505061187060808301876001600160a01b03169052565b6001600160a01b03851660a08301528360c083015261189a60e08301846001600160a01b03169052565b9b9a5050505050505050505050565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600082516118e181846020870161121b565b919091019291505056fe982e06ee6a56dfc0f1ac189a5d23506361ca0a3ce45a9c7b8d33d65d43746a24a2646970667358221220cad03d772573536087657e4411cb1ae11c010e7514c3b5f5fc8fdd32ab22c59e64736f6c634300081a00330000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032000000000000000000000000e0cde9239d16bef05e62bbf7aa93e420f464c826", + "nonce": "0x16", + "chainId": "0x14a34" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [ + "0xae4e576888db7e6205a3efeb754388f35307c708a47b44d272a0c65f3fab29c4", + "0x3d977c1978ac7102ff8ca486054cf4fcba3838468420b998e7f8bad24c89f6fd" + ], + "returns": {}, + "timestamp": 1719352924, + "chain": 84532, + "commit": "766b0d5" +} \ No newline at end of file diff --git a/test/NativeSafe.sol b/test/NativeSafe.sol new file mode 100644 index 0000000..793a322 --- /dev/null +++ b/test/NativeSafe.sol @@ -0,0 +1,126 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.23; + +// import "erc7579/lib/ModeLib.sol"; +// import "erc7579/lib/ExecutionLib.sol"; +import "./Launchpad.t.sol"; +import { ModeLib } from "erc7579/lib/ModeLib.sol"; +import { ECDSA } from "solady/utils/ECDSA.sol"; +import { ISafeOp, SAFE_OP_TYPEHASH } from "src/interfaces/ISafeOp.sol"; +import { + UserOperationLib, + PackedUserOperation +} from "@ERC4337/account-abstraction/contracts/core/UserOperationLib.sol"; + +import "forge-std/console2.sol"; + +contract NativeSafe is LaunchpadBase { + using UserOperationLib for *; + + function setUp() public override { + super.setUp(); + target = new MockTarget(); + } + + function signHash(uint256 privKey, bytes32 digest) internal returns (bytes memory) { + (uint8 v, bytes32 r, bytes32 s) = vm.sign(privKey, digest); + + // Sanity checks + address signer = ecrecover(digest, v, r, s); + require(signer == vm.addr(privKey), "Invalid signature"); + + return abi.encodePacked(r, s, v); + } + + function getSafeOp( + PackedUserOperation calldata userOp, + uint48 validAfter, + uint48 validUntil + ) + external + returns (bytes memory operationData) + { + ISafeOp.EncodedSafeOpStruct memory encodedSafeOp = ISafeOp.EncodedSafeOpStruct({ + typeHash: SAFE_OP_TYPEHASH, + safe: userOp.sender, + nonce: userOp.nonce, + initCodeHash: keccak256(userOp.initCode), + callDataHash: keccak256(userOp.callData), + verificationGasLimit: uint128(userOp.unpackVerificationGasLimit()), + callGasLimit: uint128(userOp.unpackCallGasLimit()), + preVerificationGas: userOp.preVerificationGas, + maxPriorityFeePerGas: uint128(userOp.unpackMaxPriorityFeePerGas()), + maxFeePerGas: uint128(userOp.unpackMaxFeePerGas()), + paymasterAndDataHash: keccak256(userOp.paymasterAndData), + validAfter: validAfter, + validUntil: validUntil, + entryPoint: 0x0000000071727De22E5E9d8BAf0edAc6f37da032 + }); + + bytes32 safeOpStructHash; + // solhint-disable-next-line no-inline-assembly + assembly ("memory-safe") { + // Since the `encodedSafeOp` value's memory layout is identical to the result of + // `abi.encode`-ing the + // individual `SafeOp` fields, we can pass it directly to `keccak256`. Additionally, + // there are 14 + // 32-byte fields to hash, for a length of `14 * 32 = 448` bytes. + safeOpStructHash := keccak256(encodedSafeOp, 448) + } + + operationData = abi.encodePacked( + bytes1(0x19), + bytes1(0x01), + keccak256( + abi.encode( + 0x47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a79469218, + block.chainid, + address(safe7579) + ) + ), + safeOpStructHash + ); + } + + function test_execSingle() public { + // Create calldata for the account to execute + bytes memory setValueOnTarget = abi.encodeCall(MockTarget.set, 1337); + + // Encode the call into the calldata for the userOp + bytes memory userOpCalldata = abi.encodeCall( + IERC7579Account.execute, + ( + ModeLib.encodeSimpleSingle(), + ExecutionLib.encodeSingle(address(target), uint256(0), setValueOnTarget) + ) + ); + + PackedUserOperation memory userOp = getDefaultUserOp(address(safe), address(0)); + userOp.initCode = userOpInitCode; + userOp.callData = userOpCalldata; + + uint48 validAfter = 0; + uint48 validUntil = type(uint48).max; + + bytes memory operationData = this.getSafeOp(userOp, validAfter, validUntil); + assertEq( + keccak256(operationData), + 0xed2cdca1652243b7efad1777f8250e9d2c7e7d865dc7ed8dd61eea60cbd2a61d + ); + bytes32 opHash = keccak256(operationData); + + bytes memory sig = signHash(signer1.key, opHash); + + userOp.signature = abi.encodePacked(validAfter, validUntil, sig); + + // Create userOps array + PackedUserOperation[] memory userOps = new PackedUserOperation[](1); + userOps[0] = userOp; + + // Send the userOp to the entrypoint + entrypoint.handleOps(userOps, payable(address(0x69))); + + // Assert that the value was set ie that execution was successful + assertTrue(target.value() == 1337); + } +}