diff --git a/broadcast/DeployECDSA.s.sol/11155111/run-1714676307.json b/broadcast/DeployECDSA.s.sol/11155111/run-1714676307.json new file mode 100644 index 00000000..5fc16ace --- /dev/null +++ b/broadcast/DeployECDSA.s.sol/11155111/run-1714676307.json @@ -0,0 +1,47 @@ +{ + "transactions": [ + { + "hash": "0x9803b4ddc4b3ef54acc03d828a762ab711f0c1764134b5692f66dd22bb249b9f", + "transactionType": "CREATE2", + "contractName": "ECDSAValidator", + "contractAddress": "0x845adb2c711129d4f3966735ed98a9f09fc4ce57", + "function": null, + "arguments": null, + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x9fafe", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006080806040523460155761071b908161001b8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600090813560e01c908163173bf7da1461043a57816320709efc14610403575080636d61fe701461034a5780638a91b0e3146102d4578063970032031461028e578063d60b347f14610240578063d68f602514610124578063ecd05961146100e55763f551e2ee1461008757600080fd5b346100e25760603660031901126100e2576100a061049e565b506044359067ffffffffffffffff82116100e257506100c76020936100d09236910161046b565b906024356105e5565b90516001600160e01b03199091168152f35b80fd5b50919034610120576020366003190112610120576020925081359160018314928315610116575b5050519015158152f35b149150388061010c565b8280fd5b509160603660031901126101205761013a61049e565b9267ffffffffffffffff6044358181116101205761015b903690850161046b565b505033825260208281528483205490956001600160a01b039182169116036101f157835192858401918211848310176101de575083949291945283815282519382859384528251928382860152825b8481106101c857505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016101aa565b634e487b7160e01b835260419052602482fd5b835162461bcd60e51b8152808401869052602360248201527f454344534156616c696461746f723a2073656e646572206973206e6f74206f776044820152623732b960e91b6064820152608490fd5b50903461028a57602036600319011261028a5760209061028161026161049e565b6001600160a01b0390811660009081526020819052604090205416151590565b90519015158152f35b5080fd5b506003199082823601126100e25783359167ffffffffffffffff831161028a576101209083360301126100e257506020926102cd91602435910161051d565b9051908152f35b5091602036600319011261012057803567ffffffffffffffff811161034657610300903690830161046b565b5050336000908152602081905260409020546001600160a01b031615610330575081903382528160205281205580f35b602491519063f91bd6f160e01b82523390820152fd5b8380fd5b5091602036600319011261012057803567ffffffffffffffff811161034657610376903690830161046b565b33600090815260208190526040902054919290916001600160a01b03166103ec5750601411610120573560601c90338352826020528220816bffffffffffffffffffffffff60a01b825416179055337fa5e1f8b4009110f5525798d04ae2125421a12d0590aa52c13682ff1bd3c492ca8380a380f35b6024908451906393360fbf60e01b82523390820152fd5b90508234610120576020366003190112610120576020926001600160a01b0391908261042d61049e565b1681528085522054168152f35b8285602036600319011261028a5780359067ffffffffffffffff8211610120576104669136910161046b565b505080f35b9181601f840112156104995782359167ffffffffffffffff8311610499576020838186019501011161049957565b600080fd5b600435906001600160a01b038216820361049957565b92919267ffffffffffffffff918281116105075760405192601f8201601f19908116603f011684019081118482101761050757604052829481845281830111610499578281602093846000960137010152565b634e487b7160e01b600052604160045260246000fd5b3360009081526020819052604081205490926001600160a01b03918216926101008101359036819003601e19018212156105e1570180359067ffffffffffffffff82116105e1576020019181360383136105e157836105866105803685876104b4565b8361067d565b1685146105d9576105ca926105c4916020527b19457468657265756d205369676e6564204d6573736167653a0a33328752603c6004209236916104b4565b9061067d565b16036105d35790565b50600190565b505050505090565b8580fd5b919033600052600060205260018060a01b0391826040600020541693836106106105803685876104b4565b16851461066c5761064f926105c4916020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c6004209236916104b4565b160361066057630b135d3f60e11b90565b6001600160e01b031990565b50630b135d3f60e11b949350505050565b919091602060016080600082948390604080998151986106bb575b5050505afa51923d156106ad57600060605252565b638baa579f6000526004601cfd5b8492835287808201518352828251146106fb5760418251146106e4575050509050388881610698565b60609384830151901a905201519052388881610698565b9250015190601b8260ff1c019052848060ff1b031660605238888161069856", + "nonce": "0x45", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xb578d9", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x9803b4ddc4b3ef54acc03d828a762ab711f0c1764134b5692f66dd22bb249b9f", + "transactionIndex": "0x51", + "blockHash": "0xb4650a875f62666e5c1d1525cbb634af43376ea7ed4a8cf9994547f472ea1e4c", + "blockNumber": "0x58db5c", + "gasUsed": "0x6d375", + "effectiveGasPrice": "0x836fb6b6f", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0x845adb2c711129d4f3966735ed98a9f09fc4ce57" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714676307, + "chain": 11155111, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployECDSA.s.sol/80008/run-1714675930.json b/broadcast/DeployECDSA.s.sol/80008/run-1714675930.json new file mode 100644 index 00000000..7881a0c4 --- /dev/null +++ b/broadcast/DeployECDSA.s.sol/80008/run-1714675930.json @@ -0,0 +1,51 @@ +{ + "transactions": [ + { + "hash": "0x426046d7ec8addc099befc6f19266ae9acc511bfbaef54c31fcb8d03a10cd5b5", + "transactionType": "CREATE2", + "contractName": "ECDSAValidator", + "contractAddress": "0xd6d8369145120b397f362cb18f930756fb70c627", + "function": null, + "arguments": null, + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0xbdacc", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006080604052348015600f57600080fd5b506109328061001f6000396000f3fe6080604052600436106100865760003560e01c806397003203116100595780639700320314610118578063d60b347f14610139578063d68f602514610169578063ecd0596114610189578063f551e2ee146101a957600080fd5b8063173bf7da1461008b57806320709efc1461009f5780636d61fe70146100f25780638a91b0e314610105575b600080fd5b61009d6100993660046106ff565b5050565b005b3480156100ab57600080fd5b506100d56100ba36600461075d565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61009d6101003660046106ff565b6101e2565b61009d6101133660046106ff565b61028e565b61012b61012636600461077f565b6102e7565b6040519081526020016100e9565b34801561014557600080fd5b5061015961015436600461075d565b610426565b60405190151581526020016100e9565b61017c6101773660046107ca565b61044a565b6040516100e99190610824565b34801561019557600080fd5b506101596101a4366004610873565b6104dc565b3480156101b557600080fd5b506101c96101c43660046107ca565b6104ef565b6040516001600160e01b031990911681526020016100e9565b336000908152602081905260409020546001600160a01b031615610220576040516393360fbf60e01b81523360048201526024015b60405180910390fd5b600061022f601482848661088c565b610238916108b6565b3360008181526020819052604080822080546001600160a01b03191660609590951c94851790555192935083927fa5e1f8b4009110f5525798d04ae2125421a12d0590aa52c13682ff1bd3c492ca9190a3505050565b336000908152602081905260409020546001600160a01b03166102c65760405163f91bd6f160e01b8152336004820152602401610217565b505033600090815260208190526040902080546001600160a01b0319169055565b336000908152602081905260408120546001600160a01b031636826103106101008701876108eb565b915091506103548583838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061062592505050565b6001600160a01b0316836001600160a01b0316036103785760009350505050610420565b60006103a9866020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b905060006103ed8285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061062592505050565b9050806001600160a01b0316856001600160a01b03161461041657600195505050505050610420565b6000955050505050505b92915050565b6001600160a01b038082166000908152602081905260408120549091161515610420565b336000908152602081905260409020546060906001600160a01b038681169116146104c35760405162461bcd60e51b815260206004820152602360248201527f454344534156616c696461746f723a2073656e646572206973206e6f74206f776044820152623732b960e91b6064820152608401610217565b506040805160208101909152600081525b949350505050565b6000600182148061042057505060041490565b33600090815260208181526040808320548151601f86018490048402810184019092528482526001600160a01b031691610545918791879087908190840183828082843760009201919091525061062592505050565b6001600160a01b0316816001600160a01b03160361056d5750630b135d3f60e11b90506104d4565b600061059e866020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b905060006105e28287878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061062592505050565b9050806001600160a01b0316836001600160a01b03161461061157506001600160e01b031992506104d4915050565b50630b135d3f60e11b979650505050505050565b604051600190836000526020830151604052604083510361066157604083015160ff81901c601b016020526001600160ff1b0316606052610687565b604183510361068257606083015160001a6020526040830151606052610687565b600091505b6020600160806000855afa5191503d6106a857638baa579f6000526004601cfd5b600060605260405292915050565b60008083601f8401126106c857600080fd5b50813567ffffffffffffffff8111156106e057600080fd5b6020830191508360208285010111156106f857600080fd5b9250929050565b6000806020838503121561071257600080fd5b823567ffffffffffffffff81111561072957600080fd5b610735858286016106b6565b90969095509350505050565b80356001600160a01b038116811461075857600080fd5b919050565b60006020828403121561076f57600080fd5b61077882610741565b9392505050565b6000806040838503121561079257600080fd5b823567ffffffffffffffff8111156107a957600080fd5b830161012081860312156107bc57600080fd5b946020939093013593505050565b600080600080606085870312156107e057600080fd5b6107e985610741565b935060208501359250604085013567ffffffffffffffff81111561080c57600080fd5b610818878288016106b6565b95989497509550505050565b60006020808352835180602085015260005b8181101561085257858101830151858201604001528201610836565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561088557600080fd5b5035919050565b6000808585111561089c57600080fd5b838611156108a957600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156108e35780818660140360031b1b83161692505b505092915050565b6000808335601e1984360301811261090257600080fd5b83018035915067ffffffffffffffff82111561091d57600080fd5b6020019150368190038213156106f857600080fd", + "nonce": "0xd", + "chainId": "0x13888" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x94cef", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x426046d7ec8addc099befc6f19266ae9acc511bfbaef54c31fcb8d03a10cd5b5", + "transactionIndex": "0x1", + "blockHash": "0x12d046d39dec83067ae6bf64fc96fa6f7514165519146b424a4dc3356c18314e", + "blockNumber": "0x1d1abf", + "gasUsed": "0x895ba", + "effectiveGasPrice": "0xf433c", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null, + "l1Fee": "0x1624d6e954fa4", + "l1FeeScalar": "0.684", + "l1GasPrice": "0x364d33a88", + "l1GasUsed": "0x98a0" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714675930, + "chain": 80008, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployECDSA.s.sol/80008/run-latest.json b/broadcast/DeployECDSA.s.sol/80008/run-latest.json new file mode 100644 index 00000000..7881a0c4 --- /dev/null +++ b/broadcast/DeployECDSA.s.sol/80008/run-latest.json @@ -0,0 +1,51 @@ +{ + "transactions": [ + { + "hash": "0x426046d7ec8addc099befc6f19266ae9acc511bfbaef54c31fcb8d03a10cd5b5", + "transactionType": "CREATE2", + "contractName": "ECDSAValidator", + "contractAddress": "0xd6d8369145120b397f362cb18f930756fb70c627", + "function": null, + "arguments": null, + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0xbdacc", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006080604052348015600f57600080fd5b506109328061001f6000396000f3fe6080604052600436106100865760003560e01c806397003203116100595780639700320314610118578063d60b347f14610139578063d68f602514610169578063ecd0596114610189578063f551e2ee146101a957600080fd5b8063173bf7da1461008b57806320709efc1461009f5780636d61fe70146100f25780638a91b0e314610105575b600080fd5b61009d6100993660046106ff565b5050565b005b3480156100ab57600080fd5b506100d56100ba36600461075d565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61009d6101003660046106ff565b6101e2565b61009d6101133660046106ff565b61028e565b61012b61012636600461077f565b6102e7565b6040519081526020016100e9565b34801561014557600080fd5b5061015961015436600461075d565b610426565b60405190151581526020016100e9565b61017c6101773660046107ca565b61044a565b6040516100e99190610824565b34801561019557600080fd5b506101596101a4366004610873565b6104dc565b3480156101b557600080fd5b506101c96101c43660046107ca565b6104ef565b6040516001600160e01b031990911681526020016100e9565b336000908152602081905260409020546001600160a01b031615610220576040516393360fbf60e01b81523360048201526024015b60405180910390fd5b600061022f601482848661088c565b610238916108b6565b3360008181526020819052604080822080546001600160a01b03191660609590951c94851790555192935083927fa5e1f8b4009110f5525798d04ae2125421a12d0590aa52c13682ff1bd3c492ca9190a3505050565b336000908152602081905260409020546001600160a01b03166102c65760405163f91bd6f160e01b8152336004820152602401610217565b505033600090815260208190526040902080546001600160a01b0319169055565b336000908152602081905260408120546001600160a01b031636826103106101008701876108eb565b915091506103548583838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061062592505050565b6001600160a01b0316836001600160a01b0316036103785760009350505050610420565b60006103a9866020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b905060006103ed8285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061062592505050565b9050806001600160a01b0316856001600160a01b03161461041657600195505050505050610420565b6000955050505050505b92915050565b6001600160a01b038082166000908152602081905260408120549091161515610420565b336000908152602081905260409020546060906001600160a01b038681169116146104c35760405162461bcd60e51b815260206004820152602360248201527f454344534156616c696461746f723a2073656e646572206973206e6f74206f776044820152623732b960e91b6064820152608401610217565b506040805160208101909152600081525b949350505050565b6000600182148061042057505060041490565b33600090815260208181526040808320548151601f86018490048402810184019092528482526001600160a01b031691610545918791879087908190840183828082843760009201919091525061062592505050565b6001600160a01b0316816001600160a01b03160361056d5750630b135d3f60e11b90506104d4565b600061059e866020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b905060006105e28287878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061062592505050565b9050806001600160a01b0316836001600160a01b03161461061157506001600160e01b031992506104d4915050565b50630b135d3f60e11b979650505050505050565b604051600190836000526020830151604052604083510361066157604083015160ff81901c601b016020526001600160ff1b0316606052610687565b604183510361068257606083015160001a6020526040830151606052610687565b600091505b6020600160806000855afa5191503d6106a857638baa579f6000526004601cfd5b600060605260405292915050565b60008083601f8401126106c857600080fd5b50813567ffffffffffffffff8111156106e057600080fd5b6020830191508360208285010111156106f857600080fd5b9250929050565b6000806020838503121561071257600080fd5b823567ffffffffffffffff81111561072957600080fd5b610735858286016106b6565b90969095509350505050565b80356001600160a01b038116811461075857600080fd5b919050565b60006020828403121561076f57600080fd5b61077882610741565b9392505050565b6000806040838503121561079257600080fd5b823567ffffffffffffffff8111156107a957600080fd5b830161012081860312156107bc57600080fd5b946020939093013593505050565b600080600080606085870312156107e057600080fd5b6107e985610741565b935060208501359250604085013567ffffffffffffffff81111561080c57600080fd5b610818878288016106b6565b95989497509550505050565b60006020808352835180602085015260005b8181101561085257858101830151858201604001528201610836565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561088557600080fd5b5035919050565b6000808585111561089c57600080fd5b838611156108a957600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156108e35780818660140360031b1b83161692505b505092915050565b6000808335601e1984360301811261090257600080fd5b83018035915067ffffffffffffffff82111561091d57600080fd5b6020019150368190038213156106f857600080fd", + "nonce": "0xd", + "chainId": "0x13888" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x94cef", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x426046d7ec8addc099befc6f19266ae9acc511bfbaef54c31fcb8d03a10cd5b5", + "transactionIndex": "0x1", + "blockHash": "0x12d046d39dec83067ae6bf64fc96fa6f7514165519146b424a4dc3356c18314e", + "blockNumber": "0x1d1abf", + "gasUsed": "0x895ba", + "effectiveGasPrice": "0xf433c", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null, + "l1Fee": "0x1624d6e954fa4", + "l1FeeScalar": "0.684", + "l1GasPrice": "0x364d33a88", + "l1GasUsed": "0x98a0" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714675930, + "chain": 80008, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployKernel.s.sol/11155111/run-1714675886.json b/broadcast/DeployKernel.s.sol/11155111/run-1714675886.json new file mode 100644 index 00000000..9623d7f8 --- /dev/null +++ b/broadcast/DeployKernel.s.sol/11155111/run-1714675886.json @@ -0,0 +1,124 @@ +{ + "transactions": [ + { + "hash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionType": "CREATE2", + "contractName": "Kernel", + "contractAddress": "0xcb0441b80fcc3b0f92fd56646df2af318abccec4", + "function": null, + "arguments": [ + "0x0000000071727De22E5E9d8BAf0edAc6f37da032" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x60ce26", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006101403461020257601f6153a738819003918201601f191683019291906001600160401b0384118385101761020757816020928492604096875283398101031261020257516001600160a01b038116810361020257306080524660a05260a082516100698161021d565b60068152600a602082016512d95c9b995b60d21b81526020865161008c8161021d565b838152019269302e332e312d6265746160b01b845251902091208160c0528060e0528451917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260208301528482015246606082015230608082015220916101009283526101209182528051602081019063deadbeef60e01b8252600481526101158161021d565b5190516001600160581b0319918282169190601581106101ed575b505090507f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f9060581c60018060a81b0319825416179055519061516e928361023984396080518361429b015260a051836142be015260c05183614330015260e051836143560152518261427a01525181818161050301528181610827015281816109dd01528181610d74015281816110d901528181611241015281816112a1015281816117c901528181611938015281816121d70152612a880152f35b8391925060150360031b1b1616803880610130565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102075760405256fe6080604052600436101561001d575b366129485761001b612917565b005b60003560e01c8063112d3a7d146101ed57806312af322c146101e8578063150b7a02146101e35780631626ba7e146101de57806319822f7c146101d95780631f1b92e3146101d45780633659cfe6146101cf57806357b3a5f4146101ca5780636e6fa0c6146101c5578063721e67f4146101c057806384b0196e146101bb5780638dd7712f146101b657806390ef8862146101b15780639198bdf5146101ac5780639517e29f146101a75780639cfd7cff146101a2578063a65d69d41461019d578063a71763a814610198578063adb610a314610193578063b8afe17d1461018e578063bc197c8114610189578063c3e5897814610184578063d03c79141461017f578063d691c9641461017a578063e6f3d50a14610175578063e9ae5c5314610170578063f1f7f0f91461016b578063f23a6e61146101665763f2dc691d0361000e57611ac5565b611a6b565b611a33565b611907565b61174e565b61166a565b61161d565b611541565b61143a565b6113d0565b61139c565b611270565b61122b565b6111d4565b6110a8565b610fa1565b610e50565b610d3f565b610c9d565b610bf1565b610b94565b610ae6565b61099d565b6107e5565b6104c5565b610465565b61040b565b6102b9565b610281565b6001600160a01b0381160361020357565b600080fd5b3590610213826101f2565b565b9181601f84011215610203578235916001600160401b038311610203576020838186019501011161020357565b6060600319820112610203576004359160243561025e816101f2565b91604435906001600160401b0382116102035761027d91600401610215565b9091565b3461020357602061029d61029436610242565b92919091611cc5565b6040519015158152f35b6001600160581b031981160361020357565b34610203576080366003190112610203576004356102d6816102a7565b6024356102e2816101f2565b6001600160401b039060443582811161020357610303903690600401610215565b90926064359081116102035761031d903690600401610215565b9390926001600160581b031961035d8161035661034960008051602061514e8339815191525460581b90565b6001600160581b03191690565b1615611d8f565b8616156103f9576001600160f81b03198616600160f81b81141590816103ea575b506103d8578561039061001b97612af1565b6103b061039b610f70565b60018152926001600160a01b03166020840152565b60008051602061514e833981519152805463ffffffff60a81b1916600160a81b179055612b4c565b6040516361c4e91b60e11b8152600490fd5b600160f91b141590503861037e565b604051631a0a9b9f60e21b8152600490fd5b34610203576080366003190112610203576104276004356101f2565b6104326024356101f2565b6064356001600160401b03811161020357610451903690600401610215565b5050604051630a85bd0160e11b8152602090f35b34610203576040366003190112610203576024356001600160401b038111610203576104a361049a6020923690600401610215565b90600435611eaa565b6040516001600160e01b03199091168152f35b90816101209103126102035790565b606036600319011261020357600480356001600160401b038111610203576104f090369083016104b6565b60243590604435906001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036107b05780849261053a6020830135612eb8565b6001600160f81b031990911615959093909186610786575b908461055e939261309d565b9561057061056b84611c53565b611fd7565b9415948580610744575b61073357602001516001600160a01b0316918216908115610722576001926105af6105ce926000526000602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b036106815782610623575b5050610612576105fc9250805b610600575b506040519081529081906020820190565b0390f35b3490349034903490335af150386105eb565b604051631a0a9b9f60e21b81528390fd5b61067a92506106769161065861065261064c61064161066f95611c8c565b936060810190612003565b90611af4565b90611c27565b63ffffffff60e01b16600052602052604060002090565b5460ff1690565b1590565b38806105d9565b829192916106ef575b506106de5761064c8160606106a0930190612003565b638dd7712f60e01b916001600160e01b0319916106bc91611c27565b16036106cd576105fc9250806105e6565b60405163dbbb044b60e01b81528390fd5b604051631a0a9b9f60e21b81528490fd5b61071c915061066f61070361067692611c8c565b6106586106526107166060880188612003565b90611ae3565b3861068a565b604051631a0a9b9f60e21b81528990fd5b604051633ab3447f60e11b81528990fd5b50805163ffffffff1663ffffffff61077e61077560008051602061514e8339815191525463ffffffff9060c81c1690565b63ffffffff1690565b91161061057a565b93509061055e916107a660008051602061514e8339815191525460581b90565b9490919250610552565b6040516348f5c3ed60e01b81528590fd5b6004359063ffffffff8216820361020357565b359063ffffffff8216820361020357565b6020366003190112610203576107f96107c1565b61081b61081560008051602061514e8339815191525460581b90565b60581c90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610993575b156109885760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610959575b50156109475760405163d68f602560e01b815291600083806108aa363433600485016120c6565b038183865af19283156109195760009361091e575b506108c990613244565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906108f69060048301612102565b03925af180156109195761090657005b8061091361001b92610eca565b80610c4a565b611e9e565b6108c9919350610940903d806000833e6109388183610f4f565b810190612068565b92906108bf565b6040516348f5c3ed60e01b8152600490fd5b61097b915060203d602011610981575b6109738183610f4f565b810190612035565b38610883565b503d610969565b505061001b90613244565b5030331415610850565b6020366003190112610203576004356109b5816101f2565b6109d161081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610aca575b15610abf5760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610aa0575b50156109475760405163d68f602560e01b81529160008380610a60363433600485016120c6565b038183865af192831561091957600093610a7f575b506108c990612113565b6108c9919350610a99903d806000833e6109388183610f4f565b9290610a75565b610ab9915060203d602011610981576109738183610f4f565b38610a39565b505061001b90612113565b5030331415610a06565b6001600160e01b031981160361020357565b34610203576020366003190112610203576105fc610b28600435610b0981610ad4565b600060408051610b1881610ee2565b8281528260208201520152611dd1565b60405190610b3582610ee2565b80546001600160a01b0390811680845260019092015480821660208086019182526001600160f81b031960589390931b831660409687019081528651958652915190931692840192909252905116918101919091529081906060820190565b3461020357604036600319011261020357602060ff610be5600435610bb8816102a7565b610bcd60243591610bc883610ad4565b611c8c565b9063ffffffff60e01b16600052602052604060002090565b54166040519015158152f35b34610203576020366003190112610203576020610c27600435610c13816101f2565b6000604051610c2181610efd565b52612aca565b60405190610c3482610efd565b546001600160a01b031690819052604051908152f35b600091031261020357565b60005b838110610c685750506000910152565b8181015183820152602001610c58565b90602091610c9181518092818552858086019101610c55565b601f01601f1916010190565b3461020357600036600319011261020357610cec610cb9613324565b90604051928392600f60f81b8452610cde60209360e0602087015260e0860190610c78565b908482036040860152610c78565b90466060840152306080840152600060a084015282820360c0840152602060605192838152019160809160005b828110610d2857505050500390f35b835185528695509381019392810192600101610d19565b6040366003190112610203576004356001600160401b03811161020357610d6a9036906004016104b6565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610947576060906001610dc6610db96024356000526000602052604060002090565b546001600160a01b031690565b91821614159283610e20575b610ded610de6826060610df4940190612003565b8091611b02565b9030613470565b509215610e055761001b9250613497565b505015610e0e57005b60405163f21e646b60e01b8152600490fd5b9150610df4610ded610de6610e46610e3e610de66060880188612003565b9034876133ee565b9492505050610dd2565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460c81c16604051908152f35b9181601f84011215610203578235916001600160401b038311610203576020808501948460051b01011161020357565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610edd57604052565b610eb4565b606081019081106001600160401b03821117610edd57604052565b602081019081106001600160401b03821117610edd57604052565b604081019081106001600160401b03821117610edd57604052565b61012081019081106001600160401b03821117610edd57604052565b90601f801991011681019081106001600160401b03821117610edd57604052565b6040519061021382610f18565b6040519061021382610f33565b6001600160401b038111610edd5760051b60200190565b6080366003190112610203576001600160401b0360043581811161020357610fcd903690600401610e84565b906024358381116102035736602382011215610203578060040135610ff181610f8a565b916040916110026040519485610f4f565b8084526020906024602086019160061b8401019236841161020357602401905b83821061106a57505050505060443584811161020357611046903690600401610e84565b916064359586116102035761106261001b963690600401610e84565b9590946121a8565b848236031261020357828591825161108181610f18565b61108a856107d4565b815282850135611099816101f2565b83820152815201910190611022565b6110b136610242565b6110cd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806111ca575b156111be5760405163ecd0596160e01b815260048082015291169290602081602481875afa9081156109195760009161119f575b50156109475760405163d68f602560e01b8152936000858061115d363433600485016120c6565b038183885af19485156109195760009561117e575b506108c9939495612364565b6108c9949550611198903d806000833e6109388183610f4f565b9493611172565b6111b8915060203d602011610981576109738183610f4f565b38611136565b50509161001b93612364565b5030331415611102565b34610203576000366003190112610203576105fc6040516111f481610f18565b60168152756b65726e656c2e616476616e6365642e76302e332e3160501b6020820152604051918291602083526020830190610c78565b34610203576000366003190112610203576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b61127936610242565b61129561081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611392575b156113865760405163ecd0596160e01b815260048082015291169290602081602481875afa90811561091957600091611367575b50156109475760405163d68f602560e01b81529360008580611325363433600485016120c6565b038183885af194851561091957600095611346575b506108c9939495612673565b6108c9949550611360903d806000833e6109388183610f4f565b949361133a565b611380915060203d602011610981576109738183610f4f565b386112fe565b50509161001b93612673565b50303314156112ca565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460a81c16604051908152f35b346102035760203660031901126102035760406114006004356113f2816102a7565b6113fa61280f565b50611c53565b602082519161140e83610f18565b5463ffffffff81169283815260018060a01b03928391019160201c168152835192835251166020820152f35b346102035760a0366003190112610203576114566004356101f2565b6114616024356101f2565b6001600160401b0360443581811161020357611481903690600401610e84565b50506064358181116102035761149b903690600401610e84565b5050608435908111610203576114b5903690600401610215565b505060405163bc197c8160e01b8152602090f35b602080825282516001600160f01b03191681830152808301516001600160a01b03166040808401919091529092015160608083015280516080830181905260a090920192908101919060005b828110611523575050505090565b83516001600160501b03191685529381019392810192600101611515565b34610203576020806003193601126102035760043561155f81610ad4565b611584604091606083805161157381610ee2565b600081526000878201520152611e09565b9080519161159183610ee2565b805460f081901b6001600160f01b031916845260101c6001600160a01b031684840152815160019182018054808352600091825286822083880197939490939092905b8282106115fb576105fc8888886115ed818e0382610f4f565b8183015251918291826114c9565b845460501b6001600160501b03191689529788019793830193908301906115d4565b3461020357602036600319011261020357602061029d600435612828565b9060406003198301126102035760043591602435906001600160401b0382116102035761027d91600401610215565b6116733661163b565b916001600160a01b0361168533612aca565b541690811561173c57606060019460018414159485611725575b6116a99293613b5a565b92611715575b5050906040519060208083016020845284518091526040840191602060408360051b8701019601926000905b8382106116e85786880387f35b90919293948380611704839a603f198b82030186528951610c78565b9997019594939190910191016116db565b61171e91613497565b38806116af565b6116a9925061173536348761336a565b925061169f565b60405163710c949760e01b8152600490fd5b6060366003190112610203576004803590611768826102a7565b6001600160401b0391602435838111610203576117889036908401610215565b93604435908111610203576117a09036908501610215565b906117bd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806118fd575b156118ed57169560405163ecd0596160e01b81526020818061181b8a8201906004602083019252565b03818b5afa908115610919576000916118ce575b50156118bd5760405163d68f602560e01b815293600085806118553634338d85016120c6565b0381838c5af19485156109195760009561189e575b5061187594956128ea565b823b15610203576108f69260009283604051809681958294630b9dfbed60e11b84528301612102565b61187595506118b7903d806000833e6109388183610f4f565b9461186a565b6040516348f5c3ed60e01b81528690fd5b6118e7915060203d602011610981576109738183610f4f565b3861182f565b50509261001b95929194506128ea565b50303314156117f2565b6119103661163b565b61192c61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611a29575b15611a1d5760405163ecd0596160e01b815260048082015291169190602081602481865afa908115610919576000916119fe575b50156109475760405163d68f602560e01b815292600084806119bc363433600485016120c6565b038183875af1938415610919576000946119dd575b506108c99293946128ff565b6108c99394506119f7903d806000833e6109388183610f4f565b93926119d1565b611a17915060203d602011610981576109738183610f4f565b38611995565b50509061001b926128ff565b5030331415611961565b3461020357600036600319011261020357602060008051602061514e8339815191525460581b604051906001600160581b0319168152f35b346102035760a036600319011261020357611a876004356101f2565b611a926024356101f2565b6084356001600160401b03811161020357611ab1903690600401610215565b505060405163f23a6e6160e01b8152602090f35b3461020357602036600319011261020357602061029d60043561290a565b906008116102035760040190600490565b906004116102035790600490565b909291928360041161020357831161020357600401916003190190565b906018116102035760040190601490565b906014116102035790601490565b906020116102035790602090565b909291928360011161020357831161020357600101916000190190565b909291928360141161020357831161020357601401916013190190565b906016116102035790601690565b906016116102035760020190601490565b909291928360161161020357831161020357601601916015190190565b906002116102035790600290565b906009116102035760010190600890565b909291928360091161020357831161020357600901916008190190565b90602c116102035760180190601490565b90939293848311610203578411610203578101920390565b6001600160e01b03199035818116939260048110611c4457505050565b60040360031b82901b16169150565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f850602052604060002090565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f851602052604060002090565b90929060018103611d1457506001600160a01b0392611d0e9250611cfe915060581b600160581b600160f81b0316600160f81b17611c53565b5460201c6001600160a01b031690565b16151590565b60028103611d4757506001600160a01b0392611d0e9250611d3b9150610db9908416612aca565b6001600160a01b031690565b600303611d8757611d68611d63610652600193611d7695611af4565b611dd1565b01546001600160a01b031690565b6001600160a01b0390811691161490565b505050600090565b15611d9657565b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b63ffffffff60e01b166000527f7c341349a4360fdd5d5bc07e69f325dc6aaea3eb018b3e0ea7e53cc0bb0d6f3b602052604060002090565b63ffffffff60e01b166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f852602052604060002090565b908160209103126102035751611e5681610ad4565b90565b908060209392818452848401376000828201840152601f01601f1916010190565b611e56949260609260018060a01b0316825260208201528160408201520191611e59565b6040513d6000823e3d90fd5b91611eb491612d3d565b91906001600160f81b031980831615611fb6575b6001600160a01b039081611ee1611d3b611cfe87611c53565b16156103f9578316600160f81b03611f6657906020939291611f05611f2396612e6f565b604051637aa8f17760e11b8152968795869485933360048601611e7a565b039260581c165afa90811561091957600091611f3d575090565b611e56915060203d602011611f5f575b611f578183610f4f565b810190611e41565b503d611f4d565b509060081b92600160f11b611f94611f87611f8087611e09565b5460f01b90565b6001600160f01b03191690565b16611fa457611e56933390612dbe565b604051635b71057960e01b8152600490fd5b9150611fd160008051602061514e8339815191525460581b90565b91611ec8565b90604051611fe481610f18565b915463ffffffff81168352602090811c6001600160a01b031690830152565b903590601e198136030182121561020357018035906001600160401b0382116102035760200191813603831361020357565b90816020910312610203575180151581036102035790565b6001600160401b038111610edd57601f01601f191660200190565b602081830312610203578051906001600160401b038211610203570181601f8201121561020357805161209a8161204d565b926120a86040519485610f4f565b8184526020828401011161020357611e569160208085019101610c55565b916080939160018060a01b03168352602083015260606040830152806060830152806000848401376000828201840152601f01601f1916010190565b906020611e56928181520190610c78565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2565b9060405161217481610ee2565b82546001600160a01b039081168252600190930154928316602082015260589290921b6001600160f81b0319166040830152565b959294919390946121cb61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580612318575b156123085760405163ecd0596160e01b8152600480820152911695906020816024818a5afa908115610919576000916122e9575b50156109475760405163d68f602560e01b8152966000888061225b363433600485016120c6565b0381838b5af1978815610919576000986122c8575b5061227c969798613542565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906122a99060048301612102565b03925af18015610919576122bb575b50565b8061091361021392610eca565b61227c9798506122e2903d806000833e6109388183610f4f565b9796612270565b612302915060203d602011610981576109738183610f4f565b38612234565b5050919390929461021396613542565b5030331415612200565b916020611e56938181520191611e59565b6bffffffffffffffffffffffff19903581811693926014811061235557505050565b60140360031b82901b16169150565b6001810361244057506106526102139361242c61243a93600160581b600160f81b039060581b16600160f81b17946123fb6123d4611d3b6123ce6123c86123c160008051602061514e8339815191525463ffffffff9060a81c1690565b9786611b30565b90612333565b60601c90565b6123eb6123df610f70565b63ffffffff9096168652565b6001600160a01b03166020850152565b6014810135810192603482013582019160548101350193603460148401359301916034601483013592019089612b4c565b603460148201359101611af4565b90613856565b6002810361249c57509161248d61021393612472611d3b6123ce6123c860148801358801966034890135890198611b30565b928391601482013591603401906001600160a01b03166137c8565b603460148301359201906136fb565b9091906003810361251c5750612517611d3b612507610213958461250260186123ce97013582016123ce60388401358401996124db6106528787611af4565b906124fc611d3b6124ec8989611b1f565b6018880135976038019691612333565b916135b0565b611b1f565b6018860135956038019491612333565b6136fb565b9091906004810361255d57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6005810361259b57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6006036125d7576001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b604051631092ef5760e11b8152600490fd5b604051906125f682610efd565b60008252565b35906020811061260a575090565b6000199060200360031b1b1690565b91906040519061262882610efd565b819360008352116102035760206000910152565b9291926126488261204d565b916126566040519384610f4f565b829481845281830111610203578281602093846000960137010152565b9291906001840361269d576122b8935060581b600160581b600160f81b0316600160f81b17613a0e565b600284036126b8576122b893506001600160a01b03166139c4565b909190600384036126e757506122b8925080806126db6106526126e19486611af4565b93611b02565b9161396a565b91926004810361276d57506122b89261273a9161271360008051602061514e8339815191525460581b90565b61271f611cfe82611c53565b6001600160a01b03868116911614612740575b50369161263c565b906138bb565b61274c61276791611c53565b8054640100000000600160c01b031916640100000000179055565b38612732565b600581036127f0575060008051602061514e8339815191525460581b5b61279d6127978386611b3e565b906125fc565b906001600160f81b03198116600160f91b146127c5575b50506122b89261273a91369161263c565b60081b6001600160e01b031916146127de5738806127b4565b6040516313002bdd60e31b8152600490fd5b6006036125d75760008051602061514e8339815191525460581b61278a565b6040519061281c82610f18565b60006020838281520152565b61283c818060081b918160301b9160501b90565b929091600160f81b916001600160f81b0319919082168381141590816128e0575b816128d5575b816128c6575b506128bc57169081141590816128b2575b506128ab576001600160e01b0319166128a5576001600160501b0319166128a057600190565b600090565b50600090565b5050600090565b905015153861287a565b5050505050600090565b607f60f91b1415905038612869565b838114159150612863565b801515915061285d565b916128fa91610213959493613a0e565b613d5f565b906122b89291613b5a565b600711156128a057600190565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b6129656129606000356001600160e01b031916611dd1565b612167565b80516001600160a01b039190829061297e908216611d3b565b168061299657604051631cd4b64760e21b8152600490fd5b606090600181141580612ac0575b15612a7c57505080516129c3906001600160a01b03163690349061336a565b915b60408201516001600160f81b031990811680612a3c5750506020820151612a0d93906001906129fc906001600160a01b0316613dbc565b9590945b516001600160a01b031690565b92831603612a2c575b5050612a2457602081519101fd5b602081519101f35b612a3591613497565b3880612a16565b03612a6a576020820151612a0d9390600190612a62906001600160a01b03163690613449565b959094612a00565b604051632d6a6bb760e01b8152600490fd5b92809193036129c557337f00000000000000000000000000000000000000000000000000000000000000008216146129c5576040516348f5c3ed60e01b8152600490fd5b50838114156129a4565b6001600160a01b0316600090815260008051602061512e8339815191526020526040902090565b60207f6789ec0c85d6458d897a36a70129b101f8b4d84c6e218046c3107373dbcbae889160008051602061514e8339815191528160581c6001600160581b0360a81b825416179055604051906001600160581b0319168152a1565b9193909294612b67612b5d84611c53565b5463ffffffff1690565b9360008051602061514e83398151915294612b8a865463ffffffff9060a81c1690565b63ffffffff809281808416911614612cff575b50506020820180516001600160a01b0397919291612bca91891615612cf6575b5460a81c63ffffffff1690565b81612bdc610775865163ffffffff1690565b91161490811591612ccc575b50612cba57612a00612c3792612bfd87611c53565b815181546020938401516001600160c01b031990911663ffffffff9290921691909117921b640100000000600160c01b0316919091179055565b91600185841603612ca9575b5050506001600160f81b03198116600160f81b8103612c8d575060581c1691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b909350600160f91b141590506103d8576102139160081b613efb565b612cb2926136fb565b388080612c43565b604051633ab3447f60e11b8152600490fd5b9050612cda612b5d87611c53565b90612cec610775855163ffffffff1690565b9116101538612be8565b60018452612bbd565b60008051602061514e833981519152805463ffffffff60a81b19166001939093019190911660a81b63ffffffff60a81b169190911790553881612b9d565b9182358060f81c80600014612d835780600114612d7657600214612d6057600080fd5b6001600160d81b03191692600501916004190190565b5092601501916014190190565b5050600160009301916000190190565b9092608092611e569694835260018060a01b0316602083015260408201528160608201520191611e59565b909192612ddd94612dd19185858561415b565b9492939196909661424f565b509065ffffffffffff8091164210918215612e63575b5050612e5057612e31612e07602096612e6f565b60405163392dffaf60e01b8152978896879586959193916001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091611f3d575090565b506001600160e01b031995945050505050565b16421190503880612df3565b611e569060405160208101917f1547321c374afde8a591d972a084b071c594c275e36724931ff96c25f2999c838352604082015260408152612eb081610ee2565b519020614278565b90818060081b9160ff839260f01c16600214612ed057565b6001600160d81b031983169150565b9080601f8301121561020357816020611e569335910161263c565b91906101208382031261020357612f0f610f7d565b92612f1981610208565b8452602081013560208501526040810135916001600160401b03928381116102035781612f47918401612edf565b604086015260608201358381116102035781612f64918401612edf565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e08201358381116102035781612f9f918401612edf565b60e0860152610100928383013590811161020357612fbd9201612edf565b90830152565b90816020910312610203575190565b80516001600160a01b03168252611e56919061305061302061300e61012060208501516020870152604085015190806040880152860190610c78565b60608401518582036060870152610c78565b6080830151608085015260a083015160a085015260c083015160c085015260e083015184820360e0860152610c78565b916101008092015191818403910152610c78565b939291613081906040928652606060208701526060860190612fd2565b930152565b929190613081602091604086526040860190612fd2565b9290926000926130ad3682612efa565b9161010091828101916130c08383612003565b90949093600160f81b936001600160f81b03199384168514613209575b50505087160361316a575050604051639700320360e01b8152936020928592839160009183916131109160048401613086565b039260581c6001600160a01b03165af190811561091957611e5692600092613139575b50614776565b61315c91925060203d602011613163575b6131548183610f4f565b810190612fc3565b9038613133565b503d61314a565b909460081b93909291600160f01b613187611f87611f8088611e09565b166131f75760006131a86131a26020966131d299858a614576565b94614776565b604051630ccab7a160e01b8152979096889586948593926001600160e01b03191660048501613064565b03926001600160a01b03165af190811561091957611e56926000926131395750614776565b6040516314b9743f60e01b8152600490fd5b9091955061322593985061321e929450612003565b908861438c565b969192909361323885899599369161263c565b908601523880806130dd565b60008051602061514e83398151915280549163ffffffff92600a848260a81c16019084821161330e5782851691851682116132fc5760c81c84161015612cba5760008051602061514e833981519152805463ffffffff60c81b191660c89290921b63ffffffff60c81b1691909117905554818160c81c1691829160a81c16106132ca5750565b60008051602061514e833981519152805463ffffffff60a81b191660a89290921b63ffffffff60a81b16919091179055565b60405163e60fd64760e01b8152600490fd5b634e487b7160e01b600052601160045260246000fd5b60405161333081610f18565b600681526512d95c9b995b60d21b60208201529060405161335081610f18565b600a815269302e332e312d6265746160b01b602082015290565b60405163d68f602560e01b815233600482015260248101929092526060604483015260648201839052600092839183918290849060849083908084838501378181018301849052601f01601f191681010301926001600160a01b03165af19182156109195780926133da57505090565b611e5692503d8091833e6109388183610f4f565b6000928361341595936040519687958694859363d68f602560e01b85523360048601611e7a565b03926001600160a01b03165af190811561091957600091613434575090565b611e5691503d806000833e6109388183610f4f565b60009060405192808385378338925af4913d82523d6000602084013e60203d830101604052565b60009192806040519485378338925af4913d82523d6000602084013e60203d830101604052565b6001600160a01b0316803b1561020357604051630b9dfbed60e11b8152602060048201529160009183918290849082906134d5906024830190610c78565b03925af18015610919576134e65750565b61021390610eca565b634e487b7160e01b600052603260045260246000fd5b8051156135125760200190565b6134ef565b80518210156135125760209160051b010190565b908210156135125761027d9160051b810190612003565b96959192939694909460005b86811061356057505050505050509050565b806135a18a60019360051b850135613577816102a7565b61358d84613585818c613517565b51938c61352b565b90613599868b8b61352b565b949093612b4c565b0161354e565b90156135125790565b6001600160a01b039391929190848316156136f3575b6135cf90611dd1565b946135fb6135ee6135e083856135a7565b356001600160f81b03191690565b6001600160f81b03191690565b946001600160f81b0319808716806136d4575050908061361d92861693611b4c565b823b156102035761364892600092836040518096819582946306d61fe760e41b845260048401612322565b03925af1948515610919576136846136a493600193610213986136c1575b505b82546001600160a01b0319166001600160a01b03909116178255565b0180546001600160a01b0319166001600160a01b03909316929092178255565b805460ff60a01b191660589290921c60ff60a01b16919091179055565b806109136136ce92610eca565b38613666565b925092505094919403612a6a5760016136a49161368461021396613668565b8492506135c6565b6001600160a01b031691821580156137be575b6137b95760405163d60b347f60e01b8152306004820152602081602481875afa9081156109195760009161379a575b5015613765576001600160f81b03198061375a6135e084866135a7565b161461376557505050565b8061376f92611b4c565b823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6137b3915060203d602011610981576109738183610f4f565b3861373d565b505050565b506001831461370e565b919392916001600160a01b03908184161561384d575b16600081815260008051602061512e8339815191526020526040812080546001600160a01b0319166001600160a01b0390951694909417909355803b15613849576134d59394836040518096819582946306d61fe760e41b8452602060048501526024840191611e59565b8280fd5b600193506137de565b7f9d17cd6d095ac90a655405ab29f30a7ee7e88ef3974c1bf7544bf591043bb71a9160609161388882610bcd83611c8c565b600160ff198254161790556040519163ffffffff60e01b1682526001600160581b031916602082015260016040820152a1565b60407f2b82f87bf66300af618a9621d3f221edfab735f5bacb4e004cce1b62375396c3919392935a82519561391b8761390d6020820193638a91b0e360e01b8552602060248401526044830190610c78565b03601f198101895288610f4f565b6000918291828587519a61392e8c610efd565b828c525193f1943d9081613961575b6020818360009352013e81516001600160a01b0390911681528415156020820152a1565b6000915061393d565b61397a6139ad9194939294611dd1565b80546001600160a01b031981168255600190910180546001600160a01b0392831696919492169161273a9136919061263c565b5080546001600160a81b03191660ff60a01b179055565b6001600160a01b03908116600081815260008051602061512e8339815191526020526040902080546001600160a01b0319811690915590911693926122b89261273a91369161263c565b90929192613a40613a2e60008051602061514e8339815191525460581b90565b6001600160581b031980851691161490565b6127de57613a50611cfe83611c53565b93613a71613a5d84611c53565b8054640100000000600160c01b0319169055565b6001600160f81b03198316600160f81b8103613aaa57506122b89291613a9891369161263c565b9060581c6001600160a01b03166138bb565b600160f91b141590506103d8576102139160081b614811565b604051613acf81610f18565b600181528060005b602080821015613af257906060602092828501015201613ad7565b50505090565b90613b0282610f8a565b613b0f6040519182610f4f565b8281528092613b20601f1991610f8a565b019060005b828110613b3157505050565b806060602080938501015201613b25565b906040611e5692600081528160208201520190610c78565b613b6e818060081b918160301b9160501b90565b5090936001600160f81b031993600160f81b939092508416838103613bf9575050613ba0908035019060208201913590565b929093168015600014613bb8575050611e5691614a8f565b03613bc657611e56916149d2565b60405162461bcd60e51b815260206004820152600b60248201526a155b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b94959490919080613c9b575090613c0f91614926565b93909294613c1b613ac3565b971680613c40575050613c2d93614977565b613c3683613505565b526122b882613505565b03613bc657613c4e9361494e565b613c5784613505565b52610213577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b5160405191829182613b42565b0390a1565b919593918203613bc657613cd290613ccc613cb4613ac3565b9780613cc66123ce6123c88387611b30565b93611b69565b91613470565b613cde87959295613505565b5216908103613d1c575015613cef57565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b613bc6576102135760405162461bcd60e51b815260206004820152601360248201527211195b1959d85d1958d85b1b0819985a5b1959606a1b6044820152606490fd5b6001600160a01b03169081158015613db2575b6137b9578215613512576001600160f81b03198135811614613d9357505050565b82600111610203576122b89261273a913691600019019060010161263c565b5060018214613d72565b600080604092835136810185523683823784516014810186523360601b90528260143601925af1918151913d83523d6000602085013e60203d8401019052565b8054906000906000815582613e1057505050565b6000526020600020918201915b828110613e2957505050565b818155600101613e1d565b6001600160501b03199035818116939260168110613e5157505050565b60160360031b82901b16169150565b80548210156135125760005260206000200190600090565b805468010000000000000000811015610edd57613e9a91600182018155613e60565b819291549060031b9160501c821b9160018060b01b03901b1916179055565b9092809260209483528483013701016000815290565b6001600160f01b03199035818116939260028110613eec57505050565b60020360031b82901b16169150565b90803501906020808301923560fe81118015614153575b61414157600180613f2285611e09565b0154614128575b60001982019260005b84811061404b5750614010959461401e949093613ff49350613fed9250613f8d613fde613fc5611f87613fbf613fb987878e613fb48e613f85611d3b6123ce6123c8613f7f89898961352b565b90611b94565b9a8b91611e09565b805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b61352b565b90611bc2565b90613ecf565b613fce88611e09565b9060f01c61ffff19825416179055565b6001600160a01b03169661352b565b8091611ba5565b6040519586939092906001600160e01b03191660208501613eb9565b03601f198101845283610f4f565b803b15610203576040516306d61fe760e41b81529160009183918290849082906122a99060048301612102565b6140a2611d3b611d3b6123ce6123c8613f7f868a8e613fb48f61406e8e91611e09565b0161409c61408f61408961408388888861352b565b90611b86565b90613e34565b6001600160501b03191690565b90613e78565b906140b1613fed82878b61352b565b906140d260409161401083519485928d63ffffffff60e01b168a8501613eb9565b833b156102035760009384926140fc92519586809481936306d61fe760e41b835260048301612102565b03925af1918215610919578492614115575b5001613f32565b8061091361412292610eca565b3861410e565b61413c600161413686611e09565b01613dfc565b613f29565b60405163b62d956d60e01b8152600490fd5b508015613f12565b84846141de926141c997969498956040519161417683610f33565b6141d860009b8c92838652836020870152604086019d8e52606086019c8d918583528560808901528560a0890152606060c089015260e088019286845261010089019687529063ffffffff60e01b169052565b6001600160a01b039091169052565b52614b28565b60ff806141f76141f16135e087866135a7565b60f81c90565b160361423d57614226614211846142219561423694611b4c565b9490955163ffffffff60e01b1690565b611e09565b5460101c6001600160a01b031690565b9351929190565b60405163b32eeb6960e01b8152600490fd5b8065ffffffffffff91828160a01c16928315600114614270575b5060d01c92565b925038614269565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141615614305575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000006040820152466060820152306080820152206142e6565b9192909261439861280f565b906143a39085611b30565b6143ac91612333565b60601c6020820181905260008051602061514e8339815191525460a81c63ffffffff1680835260349560148082013582018089019791959294919360548601358601808b019490880135939092878c01358801808a013593908d0192918a0135918891908d84369061441d9261263c565b80519060200120913661443190888861263c565b8051906020012036614444908b8d61263c565b8051602091820120604080517fb17ab1224aca0d4255ef8161acaf2ac121b8faa32a4b2258c912cc5f8308c5059381019384526001600160581b0319989098169088015263ffffffff9390931660608701526001600160a01b0393909316608086015260a085019390935260c084019290925260e080840192909252908252906144d061010082610f4f565b5190206144dc90614278565b607489013589018d8b82013591016144f392614d7a565b9a6144fe9488612b4c565b6145088183614f17565b61451191611af4565b61451a91611c27565b61452391613856565b6094810135019293830192013590565b6001600160c01b0319903581811693926008811061455057505050565b60080360031b82901b16169150565b604090611e56939281528160208201520190612fd2565b60009493916001868161458885611e09565b016000835b6145d5575b5050505060ff806145a96141f16135e087896135a7565b160361423d576101006145cd6145c68561422696611e5698611b4c565b369161263c565b910152611e09565b819796975481101561476e576146066145fe6145f18385613e60565b90549060031b1c60501b90565b908160501c90565b98909761462261461c6141f16135e085856135a7565b60ff1690565b80840361473d575090818161465b61464f6146496146438461467898611bd0565b90614533565b60c01c90565b6001600160401b031690565b6009019161466d6145c6848484611be1565b6101008b0152611c0f565b989098975b600160f01b1615614692575b5083018361458d565b99866146cf929b60018060a01b036040918983518092633894f6e760e11b8252818b868260209c8d9760049c63ffffffff60e01b168d840161455f565b0393165af195861561091957889661471e575b505084166147045750506146fa859493928592614776565b9a91929350614689565b51631f24c1fb60e11b81529081018c815281906020010390fd5b614735929650803d10613163576131548183610f4f565b9338806146e2565b909991989083111561475b57604051630760bdcf60e11b8152600490fd5b6147636125e9565b61010088015261467d565b969596614592565b6001600160a01b03818318811615606083811b848601821b9081149186901b1417176001146147a757505050600190565b65ffffffffffff60a01b80831693906001600160d01b031984811691908316908615614809575b8381168015614802575b8781109088180280881897146147fa575b508181119082180218921716171790565b9550386147e9565b50806147d8565b9550856147ce565b9190803501916020906020840193359061482a81611e09565b9260019060018501906001825401850361491457906000835b6148a6575b505050506148959161489082613ff4610213979861486d600161413661401098611e09565b87546148849060101c6001600160a01b0316611d3b565b9460001981019161352b565b6138bb565b5080546001600160b01b0319169055565b815481101561490f579083826149056140108c6148f78a6148dc868e6148d46145fe6145f18c9f9e8e613e60565b96905061352b565b6040519586939092906001600160e01b0319168c8501613eb9565b6001600160a01b03166138bb565b5001909192614843565b614848565b60405163013dcc8d60e31b8152600490fd5b908060141161020357813560601c928160341161020357601483013592603401916033190190565b906000928491604051958692833738935af1913d82523d6000602084013e60203d830101604052565b9092600092819594604051968792833738935af1156149a6573d82523d6000602084013e60203d830101604052565b503d6000823e3d90fd5b91908110156135125760051b81013590605e1981360301821215610203570190565b9190916149de83613af8565b9260005b8181106149ee57505050565b806149fc60019284866149b0565b8035614a07816101f2565b614a2860208093604093614a1d85830183612003565b93909201359061494e565b614a32858b613517565b5215614a41575b5050016149e2565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb791614a85614a70858b613517565b51838051948594888652850152830190610c78565b0390a13880614a39565b919091614a9b83613af8565b9260005b818110614aab57505050565b80614ae16020614abe60019486886149b0565b8035614ac9816101f2565b614ad66040830183612003565b939092013590614977565b614aeb8288613517565b52614af68187613517565b5001614a9f565b9092608092611e569594835260018060a01b0316602083015260408201528160608201520190610c78565b9190606083016001936001614b47614221845163ffffffff60e01b1690565b01936000936000958054965b878110614b6557505050505050505050565b80614b776145fe6145f18c9486613e60565b6001600160a01b031660a0880190815260808801959091614ba0906001600160f01b0319168752565b614bba614bb36141f16135e08a856135a7565b60ff168952565b614bc861461c895160ff1690565b808403614d425750868181614bed61464f614649614643614c419c9d614c1498611bd0565b60208c018181528c60c0614c096145c660099586018789611be1565b910152510191611c0f565b959095965b51600160f11b90614c33906001600160f01b031916611f87565b166001600160f01b03191690565b15614c4e575b5001614b53565b51909150614c64906001600160a01b0316611d3b565b8651614c8890614c7b906001600160e01b03191681565b6001600160e01b03191690565b60e08701519091906001600160a01b031691614ccd6101008901519360c08a01516040948551808095819463184dfdbb60e11b835260209a8b9760049a8b8601614afd565b03915afa938415610919578b94614d23575b50506001600160a01b038316614d085750860180518b9392614d0091614776565b905238614c47565b9051631f24c1fb60e11b815290810183815281906020010390fd5b614d3a929450803d10613163576131548183610f4f565b913880614cdf565b839196945010600014614d6157604051630760bdcf60e11b8152600490fd5b614c418b93614d703688612619565b60c08a0152614c19565b60008051602061514e8339815191525460009493929060581b916001600160f81b03198316600160f81b8103614e3d5750604051637aa8f17760e11b8152936020938593909284928392614dd2923060048601611e7a565b039160581c6001600160a01b03165afa90811561091957600091614e1e575b505b6001600160e01b0319166374eca2c160e11b01614e0c57565b6040516362467c7760e11b8152600490fd5b614e37915060203d602011611f5f57611f578183610f4f565b38614df1565b919550929190600160f91b036103d857602091614e609160081b9584308861415b565b60405163392dffaf60e01b81529297929586949385938493614e9393909230906001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091614eb5575b50614df3565b614ece915060203d602011611f5f57611f578183610f4f565b38614eaf565b15614edb57565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073656c6563746f724461746160601b6044820152606490fd5b614f246106528383611af4565b906004831015614f3357505050565b602c83106150c357614f4e611d3b6123ce6123c88685611b1f565b602c8201358201602c604c820191013591604c840135840194614f88614f7a6135ee6135e087876135a7565b6001600160f81b0319161590565b80615032575b94614fcf61251795611d3b95614fd4956102139b956123ce9a614fe4575b614fbf611d3b6123ce6123c88a8a611bfe565b916001600160a01b0316906135b0565b611bfe565b602c86013595604c019491612333565b61502d606c8701358701615027602c604c83019201358061500e611d3b6123ce6123c88488611b30565b93615022856001600160a01b038a166150d1565b611b69565b916136fb565b614fac565b5091939092956040519163ecd0596160e01b83526020838061505c60048201906002602083019252565b03816001600160a01b0389165afa92831561091957610213986123ce9761251797611d3b97614fd497614fcf956000916150a4575b50959a50959b5095509550955050614f8e565b6150bd915060203d602011610981576109738183610f4f565b38615091565b505060046102139114614ed4565b61021391906001600160a01b039081831615615124575b1660005260008051602061512e83398151915260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b600192506150e856fe1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b867bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032", + "nonce": "0x42", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionType": "CREATE2", + "contractName": "KernelFactory", + "contractAddress": "0x38ff1127ddbae72287d4c96cb419c08f88583f74", + "function": null, + "arguments": [ + "0xcB0441B80fCC3b0f92Fd56646Df2aF318AbcCEC4" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x600f4", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060a034607357601f61046c38819003918201601f19168301916001600160401b03831184841017607857808492602094604052833981010312607357516001600160a01b03811681036073576080526040516103dd908161008f823960805181818160d10152818161023401526102f00152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600490600436101561001757600080fd5b600092833560e01c90816348aac39214610267575080635c60da1b1461021f5763ea6d13ac1461004657600080fd5b61004f36610352565b94919083519560209661007a86828a81019486888737868201908c820152038a8101845201826103a5565b5190209483958551917fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076875261600989527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f97602192605f60212060358601523060581b855260ff855380601586015260558520993415948b3b156101fe57505050506001916101f85785388180348c5af1156101ed57505b818652846060521561016b575b505091516001600160a01b0390931683525050f35b8082859493859483378101838152039082875af1903d156101e7573d9067ffffffffffffffff82116101d3578351916101ad601f8201601f19168801846103a5565b8252853d92013e5b156101c35738808080610156565b5163487e630960e11b8152600490fd5b634e487b7160e01b81526041600452602490fd5b506101b5565b63b12d13eb8652601cfd5b50610149565b91939a5091935034f59687156102145750610149565b63301164258652601cfd5b838234610263578160031936011261026357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b848334610263578260209361029d8361027f36610352565b90808a879498019788378201908982015203878101845201826103a5565b51902081517fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076835261600985527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f6021209083528360605260ff84536035523060601b6001526015526055822091603552519060018060a01b03168152f35b9060406003198301126103a05760043567ffffffffffffffff928382116103a057806023830112156103a05781600401359384116103a057602484830101116103a057602401919060243590565b600080fd5b90601f8019910116810190811067ffffffffffffffff8211176103c757604052565b634e487b7160e01b600052604160045260246000fd000000000000000000000000cb0441b80fcc3b0f92fd56646df2af318abccec4", + "nonce": "0x43", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "function": "approveFactory(address,bool)", + "arguments": [ + "0x38fF1127Ddbae72287D4C96cB419C08f88583f74", + "true" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "gas": "0x108d1", + "value": "0x0", + "input": "0x6e7dbabb00000000000000000000000038ff1127ddbae72287d4c96cb419c08f88583f740000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x44", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xf99ee0", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionIndex": "0x64", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x461b12", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xfdba13", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionIndex": "0x65", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x41b33", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x11972af", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionIndex": "0x67", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0xb513", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714675886, + "chain": 11155111, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployKernel.s.sol/11155111/run-1714675987.json b/broadcast/DeployKernel.s.sol/11155111/run-1714675987.json new file mode 100644 index 00000000..8ba2fd3e --- /dev/null +++ b/broadcast/DeployKernel.s.sol/11155111/run-1714675987.json @@ -0,0 +1,124 @@ +{ + "transactions": [ + { + "hash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionType": "CREATE2", + "contractName": "Kernel", + "contractAddress": "0xcb0441b80fcc3b0f92fd56646df2af318abccec4", + "function": null, + "arguments": [ + "0x0000000071727De22E5E9d8BAf0edAc6f37da032" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x60ce26", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006101403461020257601f6153a738819003918201601f191683019291906001600160401b0384118385101761020757816020928492604096875283398101031261020257516001600160a01b038116810361020257306080524660a05260a082516100698161021d565b60068152600a602082016512d95c9b995b60d21b81526020865161008c8161021d565b838152019269302e332e312d6265746160b01b845251902091208160c0528060e0528451917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260208301528482015246606082015230608082015220916101009283526101209182528051602081019063deadbeef60e01b8252600481526101158161021d565b5190516001600160581b0319918282169190601581106101ed575b505090507f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f9060581c60018060a81b0319825416179055519061516e928361023984396080518361429b015260a051836142be015260c05183614330015260e051836143560152518261427a01525181818161050301528181610827015281816109dd01528181610d74015281816110d901528181611241015281816112a1015281816117c901528181611938015281816121d70152612a880152f35b8391925060150360031b1b1616803880610130565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102075760405256fe6080604052600436101561001d575b366129485761001b612917565b005b60003560e01c8063112d3a7d146101ed57806312af322c146101e8578063150b7a02146101e35780631626ba7e146101de57806319822f7c146101d95780631f1b92e3146101d45780633659cfe6146101cf57806357b3a5f4146101ca5780636e6fa0c6146101c5578063721e67f4146101c057806384b0196e146101bb5780638dd7712f146101b657806390ef8862146101b15780639198bdf5146101ac5780639517e29f146101a75780639cfd7cff146101a2578063a65d69d41461019d578063a71763a814610198578063adb610a314610193578063b8afe17d1461018e578063bc197c8114610189578063c3e5897814610184578063d03c79141461017f578063d691c9641461017a578063e6f3d50a14610175578063e9ae5c5314610170578063f1f7f0f91461016b578063f23a6e61146101665763f2dc691d0361000e57611ac5565b611a6b565b611a33565b611907565b61174e565b61166a565b61161d565b611541565b61143a565b6113d0565b61139c565b611270565b61122b565b6111d4565b6110a8565b610fa1565b610e50565b610d3f565b610c9d565b610bf1565b610b94565b610ae6565b61099d565b6107e5565b6104c5565b610465565b61040b565b6102b9565b610281565b6001600160a01b0381160361020357565b600080fd5b3590610213826101f2565b565b9181601f84011215610203578235916001600160401b038311610203576020838186019501011161020357565b6060600319820112610203576004359160243561025e816101f2565b91604435906001600160401b0382116102035761027d91600401610215565b9091565b3461020357602061029d61029436610242565b92919091611cc5565b6040519015158152f35b6001600160581b031981160361020357565b34610203576080366003190112610203576004356102d6816102a7565b6024356102e2816101f2565b6001600160401b039060443582811161020357610303903690600401610215565b90926064359081116102035761031d903690600401610215565b9390926001600160581b031961035d8161035661034960008051602061514e8339815191525460581b90565b6001600160581b03191690565b1615611d8f565b8616156103f9576001600160f81b03198616600160f81b81141590816103ea575b506103d8578561039061001b97612af1565b6103b061039b610f70565b60018152926001600160a01b03166020840152565b60008051602061514e833981519152805463ffffffff60a81b1916600160a81b179055612b4c565b6040516361c4e91b60e11b8152600490fd5b600160f91b141590503861037e565b604051631a0a9b9f60e21b8152600490fd5b34610203576080366003190112610203576104276004356101f2565b6104326024356101f2565b6064356001600160401b03811161020357610451903690600401610215565b5050604051630a85bd0160e11b8152602090f35b34610203576040366003190112610203576024356001600160401b038111610203576104a361049a6020923690600401610215565b90600435611eaa565b6040516001600160e01b03199091168152f35b90816101209103126102035790565b606036600319011261020357600480356001600160401b038111610203576104f090369083016104b6565b60243590604435906001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036107b05780849261053a6020830135612eb8565b6001600160f81b031990911615959093909186610786575b908461055e939261309d565b9561057061056b84611c53565b611fd7565b9415948580610744575b61073357602001516001600160a01b0316918216908115610722576001926105af6105ce926000526000602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b036106815782610623575b5050610612576105fc9250805b610600575b506040519081529081906020820190565b0390f35b3490349034903490335af150386105eb565b604051631a0a9b9f60e21b81528390fd5b61067a92506106769161065861065261064c61064161066f95611c8c565b936060810190612003565b90611af4565b90611c27565b63ffffffff60e01b16600052602052604060002090565b5460ff1690565b1590565b38806105d9565b829192916106ef575b506106de5761064c8160606106a0930190612003565b638dd7712f60e01b916001600160e01b0319916106bc91611c27565b16036106cd576105fc9250806105e6565b60405163dbbb044b60e01b81528390fd5b604051631a0a9b9f60e21b81528490fd5b61071c915061066f61070361067692611c8c565b6106586106526107166060880188612003565b90611ae3565b3861068a565b604051631a0a9b9f60e21b81528990fd5b604051633ab3447f60e11b81528990fd5b50805163ffffffff1663ffffffff61077e61077560008051602061514e8339815191525463ffffffff9060c81c1690565b63ffffffff1690565b91161061057a565b93509061055e916107a660008051602061514e8339815191525460581b90565b9490919250610552565b6040516348f5c3ed60e01b81528590fd5b6004359063ffffffff8216820361020357565b359063ffffffff8216820361020357565b6020366003190112610203576107f96107c1565b61081b61081560008051602061514e8339815191525460581b90565b60581c90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610993575b156109885760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610959575b50156109475760405163d68f602560e01b815291600083806108aa363433600485016120c6565b038183865af19283156109195760009361091e575b506108c990613244565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906108f69060048301612102565b03925af180156109195761090657005b8061091361001b92610eca565b80610c4a565b611e9e565b6108c9919350610940903d806000833e6109388183610f4f565b810190612068565b92906108bf565b6040516348f5c3ed60e01b8152600490fd5b61097b915060203d602011610981575b6109738183610f4f565b810190612035565b38610883565b503d610969565b505061001b90613244565b5030331415610850565b6020366003190112610203576004356109b5816101f2565b6109d161081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610aca575b15610abf5760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610aa0575b50156109475760405163d68f602560e01b81529160008380610a60363433600485016120c6565b038183865af192831561091957600093610a7f575b506108c990612113565b6108c9919350610a99903d806000833e6109388183610f4f565b9290610a75565b610ab9915060203d602011610981576109738183610f4f565b38610a39565b505061001b90612113565b5030331415610a06565b6001600160e01b031981160361020357565b34610203576020366003190112610203576105fc610b28600435610b0981610ad4565b600060408051610b1881610ee2565b8281528260208201520152611dd1565b60405190610b3582610ee2565b80546001600160a01b0390811680845260019092015480821660208086019182526001600160f81b031960589390931b831660409687019081528651958652915190931692840192909252905116918101919091529081906060820190565b3461020357604036600319011261020357602060ff610be5600435610bb8816102a7565b610bcd60243591610bc883610ad4565b611c8c565b9063ffffffff60e01b16600052602052604060002090565b54166040519015158152f35b34610203576020366003190112610203576020610c27600435610c13816101f2565b6000604051610c2181610efd565b52612aca565b60405190610c3482610efd565b546001600160a01b031690819052604051908152f35b600091031261020357565b60005b838110610c685750506000910152565b8181015183820152602001610c58565b90602091610c9181518092818552858086019101610c55565b601f01601f1916010190565b3461020357600036600319011261020357610cec610cb9613324565b90604051928392600f60f81b8452610cde60209360e0602087015260e0860190610c78565b908482036040860152610c78565b90466060840152306080840152600060a084015282820360c0840152602060605192838152019160809160005b828110610d2857505050500390f35b835185528695509381019392810192600101610d19565b6040366003190112610203576004356001600160401b03811161020357610d6a9036906004016104b6565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610947576060906001610dc6610db96024356000526000602052604060002090565b546001600160a01b031690565b91821614159283610e20575b610ded610de6826060610df4940190612003565b8091611b02565b9030613470565b509215610e055761001b9250613497565b505015610e0e57005b60405163f21e646b60e01b8152600490fd5b9150610df4610ded610de6610e46610e3e610de66060880188612003565b9034876133ee565b9492505050610dd2565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460c81c16604051908152f35b9181601f84011215610203578235916001600160401b038311610203576020808501948460051b01011161020357565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610edd57604052565b610eb4565b606081019081106001600160401b03821117610edd57604052565b602081019081106001600160401b03821117610edd57604052565b604081019081106001600160401b03821117610edd57604052565b61012081019081106001600160401b03821117610edd57604052565b90601f801991011681019081106001600160401b03821117610edd57604052565b6040519061021382610f18565b6040519061021382610f33565b6001600160401b038111610edd5760051b60200190565b6080366003190112610203576001600160401b0360043581811161020357610fcd903690600401610e84565b906024358381116102035736602382011215610203578060040135610ff181610f8a565b916040916110026040519485610f4f565b8084526020906024602086019160061b8401019236841161020357602401905b83821061106a57505050505060443584811161020357611046903690600401610e84565b916064359586116102035761106261001b963690600401610e84565b9590946121a8565b848236031261020357828591825161108181610f18565b61108a856107d4565b815282850135611099816101f2565b83820152815201910190611022565b6110b136610242565b6110cd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806111ca575b156111be5760405163ecd0596160e01b815260048082015291169290602081602481875afa9081156109195760009161119f575b50156109475760405163d68f602560e01b8152936000858061115d363433600485016120c6565b038183885af19485156109195760009561117e575b506108c9939495612364565b6108c9949550611198903d806000833e6109388183610f4f565b9493611172565b6111b8915060203d602011610981576109738183610f4f565b38611136565b50509161001b93612364565b5030331415611102565b34610203576000366003190112610203576105fc6040516111f481610f18565b60168152756b65726e656c2e616476616e6365642e76302e332e3160501b6020820152604051918291602083526020830190610c78565b34610203576000366003190112610203576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b61127936610242565b61129561081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611392575b156113865760405163ecd0596160e01b815260048082015291169290602081602481875afa90811561091957600091611367575b50156109475760405163d68f602560e01b81529360008580611325363433600485016120c6565b038183885af194851561091957600095611346575b506108c9939495612673565b6108c9949550611360903d806000833e6109388183610f4f565b949361133a565b611380915060203d602011610981576109738183610f4f565b386112fe565b50509161001b93612673565b50303314156112ca565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460a81c16604051908152f35b346102035760203660031901126102035760406114006004356113f2816102a7565b6113fa61280f565b50611c53565b602082519161140e83610f18565b5463ffffffff81169283815260018060a01b03928391019160201c168152835192835251166020820152f35b346102035760a0366003190112610203576114566004356101f2565b6114616024356101f2565b6001600160401b0360443581811161020357611481903690600401610e84565b50506064358181116102035761149b903690600401610e84565b5050608435908111610203576114b5903690600401610215565b505060405163bc197c8160e01b8152602090f35b602080825282516001600160f01b03191681830152808301516001600160a01b03166040808401919091529092015160608083015280516080830181905260a090920192908101919060005b828110611523575050505090565b83516001600160501b03191685529381019392810192600101611515565b34610203576020806003193601126102035760043561155f81610ad4565b611584604091606083805161157381610ee2565b600081526000878201520152611e09565b9080519161159183610ee2565b805460f081901b6001600160f01b031916845260101c6001600160a01b031684840152815160019182018054808352600091825286822083880197939490939092905b8282106115fb576105fc8888886115ed818e0382610f4f565b8183015251918291826114c9565b845460501b6001600160501b03191689529788019793830193908301906115d4565b3461020357602036600319011261020357602061029d600435612828565b9060406003198301126102035760043591602435906001600160401b0382116102035761027d91600401610215565b6116733661163b565b916001600160a01b0361168533612aca565b541690811561173c57606060019460018414159485611725575b6116a99293613b5a565b92611715575b5050906040519060208083016020845284518091526040840191602060408360051b8701019601926000905b8382106116e85786880387f35b90919293948380611704839a603f198b82030186528951610c78565b9997019594939190910191016116db565b61171e91613497565b38806116af565b6116a9925061173536348761336a565b925061169f565b60405163710c949760e01b8152600490fd5b6060366003190112610203576004803590611768826102a7565b6001600160401b0391602435838111610203576117889036908401610215565b93604435908111610203576117a09036908501610215565b906117bd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806118fd575b156118ed57169560405163ecd0596160e01b81526020818061181b8a8201906004602083019252565b03818b5afa908115610919576000916118ce575b50156118bd5760405163d68f602560e01b815293600085806118553634338d85016120c6565b0381838c5af19485156109195760009561189e575b5061187594956128ea565b823b15610203576108f69260009283604051809681958294630b9dfbed60e11b84528301612102565b61187595506118b7903d806000833e6109388183610f4f565b9461186a565b6040516348f5c3ed60e01b81528690fd5b6118e7915060203d602011610981576109738183610f4f565b3861182f565b50509261001b95929194506128ea565b50303314156117f2565b6119103661163b565b61192c61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611a29575b15611a1d5760405163ecd0596160e01b815260048082015291169190602081602481865afa908115610919576000916119fe575b50156109475760405163d68f602560e01b815292600084806119bc363433600485016120c6565b038183875af1938415610919576000946119dd575b506108c99293946128ff565b6108c99394506119f7903d806000833e6109388183610f4f565b93926119d1565b611a17915060203d602011610981576109738183610f4f565b38611995565b50509061001b926128ff565b5030331415611961565b3461020357600036600319011261020357602060008051602061514e8339815191525460581b604051906001600160581b0319168152f35b346102035760a036600319011261020357611a876004356101f2565b611a926024356101f2565b6084356001600160401b03811161020357611ab1903690600401610215565b505060405163f23a6e6160e01b8152602090f35b3461020357602036600319011261020357602061029d60043561290a565b906008116102035760040190600490565b906004116102035790600490565b909291928360041161020357831161020357600401916003190190565b906018116102035760040190601490565b906014116102035790601490565b906020116102035790602090565b909291928360011161020357831161020357600101916000190190565b909291928360141161020357831161020357601401916013190190565b906016116102035790601690565b906016116102035760020190601490565b909291928360161161020357831161020357601601916015190190565b906002116102035790600290565b906009116102035760010190600890565b909291928360091161020357831161020357600901916008190190565b90602c116102035760180190601490565b90939293848311610203578411610203578101920390565b6001600160e01b03199035818116939260048110611c4457505050565b60040360031b82901b16169150565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f850602052604060002090565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f851602052604060002090565b90929060018103611d1457506001600160a01b0392611d0e9250611cfe915060581b600160581b600160f81b0316600160f81b17611c53565b5460201c6001600160a01b031690565b16151590565b60028103611d4757506001600160a01b0392611d0e9250611d3b9150610db9908416612aca565b6001600160a01b031690565b600303611d8757611d68611d63610652600193611d7695611af4565b611dd1565b01546001600160a01b031690565b6001600160a01b0390811691161490565b505050600090565b15611d9657565b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b63ffffffff60e01b166000527f7c341349a4360fdd5d5bc07e69f325dc6aaea3eb018b3e0ea7e53cc0bb0d6f3b602052604060002090565b63ffffffff60e01b166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f852602052604060002090565b908160209103126102035751611e5681610ad4565b90565b908060209392818452848401376000828201840152601f01601f1916010190565b611e56949260609260018060a01b0316825260208201528160408201520191611e59565b6040513d6000823e3d90fd5b91611eb491612d3d565b91906001600160f81b031980831615611fb6575b6001600160a01b039081611ee1611d3b611cfe87611c53565b16156103f9578316600160f81b03611f6657906020939291611f05611f2396612e6f565b604051637aa8f17760e11b8152968795869485933360048601611e7a565b039260581c165afa90811561091957600091611f3d575090565b611e56915060203d602011611f5f575b611f578183610f4f565b810190611e41565b503d611f4d565b509060081b92600160f11b611f94611f87611f8087611e09565b5460f01b90565b6001600160f01b03191690565b16611fa457611e56933390612dbe565b604051635b71057960e01b8152600490fd5b9150611fd160008051602061514e8339815191525460581b90565b91611ec8565b90604051611fe481610f18565b915463ffffffff81168352602090811c6001600160a01b031690830152565b903590601e198136030182121561020357018035906001600160401b0382116102035760200191813603831361020357565b90816020910312610203575180151581036102035790565b6001600160401b038111610edd57601f01601f191660200190565b602081830312610203578051906001600160401b038211610203570181601f8201121561020357805161209a8161204d565b926120a86040519485610f4f565b8184526020828401011161020357611e569160208085019101610c55565b916080939160018060a01b03168352602083015260606040830152806060830152806000848401376000828201840152601f01601f1916010190565b906020611e56928181520190610c78565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2565b9060405161217481610ee2565b82546001600160a01b039081168252600190930154928316602082015260589290921b6001600160f81b0319166040830152565b959294919390946121cb61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580612318575b156123085760405163ecd0596160e01b8152600480820152911695906020816024818a5afa908115610919576000916122e9575b50156109475760405163d68f602560e01b8152966000888061225b363433600485016120c6565b0381838b5af1978815610919576000986122c8575b5061227c969798613542565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906122a99060048301612102565b03925af18015610919576122bb575b50565b8061091361021392610eca565b61227c9798506122e2903d806000833e6109388183610f4f565b9796612270565b612302915060203d602011610981576109738183610f4f565b38612234565b5050919390929461021396613542565b5030331415612200565b916020611e56938181520191611e59565b6bffffffffffffffffffffffff19903581811693926014811061235557505050565b60140360031b82901b16169150565b6001810361244057506106526102139361242c61243a93600160581b600160f81b039060581b16600160f81b17946123fb6123d4611d3b6123ce6123c86123c160008051602061514e8339815191525463ffffffff9060a81c1690565b9786611b30565b90612333565b60601c90565b6123eb6123df610f70565b63ffffffff9096168652565b6001600160a01b03166020850152565b6014810135810192603482013582019160548101350193603460148401359301916034601483013592019089612b4c565b603460148201359101611af4565b90613856565b6002810361249c57509161248d61021393612472611d3b6123ce6123c860148801358801966034890135890198611b30565b928391601482013591603401906001600160a01b03166137c8565b603460148301359201906136fb565b9091906003810361251c5750612517611d3b612507610213958461250260186123ce97013582016123ce60388401358401996124db6106528787611af4565b906124fc611d3b6124ec8989611b1f565b6018880135976038019691612333565b916135b0565b611b1f565b6018860135956038019491612333565b6136fb565b9091906004810361255d57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6005810361259b57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6006036125d7576001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b604051631092ef5760e11b8152600490fd5b604051906125f682610efd565b60008252565b35906020811061260a575090565b6000199060200360031b1b1690565b91906040519061262882610efd565b819360008352116102035760206000910152565b9291926126488261204d565b916126566040519384610f4f565b829481845281830111610203578281602093846000960137010152565b9291906001840361269d576122b8935060581b600160581b600160f81b0316600160f81b17613a0e565b600284036126b8576122b893506001600160a01b03166139c4565b909190600384036126e757506122b8925080806126db6106526126e19486611af4565b93611b02565b9161396a565b91926004810361276d57506122b89261273a9161271360008051602061514e8339815191525460581b90565b61271f611cfe82611c53565b6001600160a01b03868116911614612740575b50369161263c565b906138bb565b61274c61276791611c53565b8054640100000000600160c01b031916640100000000179055565b38612732565b600581036127f0575060008051602061514e8339815191525460581b5b61279d6127978386611b3e565b906125fc565b906001600160f81b03198116600160f91b146127c5575b50506122b89261273a91369161263c565b60081b6001600160e01b031916146127de5738806127b4565b6040516313002bdd60e31b8152600490fd5b6006036125d75760008051602061514e8339815191525460581b61278a565b6040519061281c82610f18565b60006020838281520152565b61283c818060081b918160301b9160501b90565b929091600160f81b916001600160f81b0319919082168381141590816128e0575b816128d5575b816128c6575b506128bc57169081141590816128b2575b506128ab576001600160e01b0319166128a5576001600160501b0319166128a057600190565b600090565b50600090565b5050600090565b905015153861287a565b5050505050600090565b607f60f91b1415905038612869565b838114159150612863565b801515915061285d565b916128fa91610213959493613a0e565b613d5f565b906122b89291613b5a565b600711156128a057600190565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b6129656129606000356001600160e01b031916611dd1565b612167565b80516001600160a01b039190829061297e908216611d3b565b168061299657604051631cd4b64760e21b8152600490fd5b606090600181141580612ac0575b15612a7c57505080516129c3906001600160a01b03163690349061336a565b915b60408201516001600160f81b031990811680612a3c5750506020820151612a0d93906001906129fc906001600160a01b0316613dbc565b9590945b516001600160a01b031690565b92831603612a2c575b5050612a2457602081519101fd5b602081519101f35b612a3591613497565b3880612a16565b03612a6a576020820151612a0d9390600190612a62906001600160a01b03163690613449565b959094612a00565b604051632d6a6bb760e01b8152600490fd5b92809193036129c557337f00000000000000000000000000000000000000000000000000000000000000008216146129c5576040516348f5c3ed60e01b8152600490fd5b50838114156129a4565b6001600160a01b0316600090815260008051602061512e8339815191526020526040902090565b60207f6789ec0c85d6458d897a36a70129b101f8b4d84c6e218046c3107373dbcbae889160008051602061514e8339815191528160581c6001600160581b0360a81b825416179055604051906001600160581b0319168152a1565b9193909294612b67612b5d84611c53565b5463ffffffff1690565b9360008051602061514e83398151915294612b8a865463ffffffff9060a81c1690565b63ffffffff809281808416911614612cff575b50506020820180516001600160a01b0397919291612bca91891615612cf6575b5460a81c63ffffffff1690565b81612bdc610775865163ffffffff1690565b91161490811591612ccc575b50612cba57612a00612c3792612bfd87611c53565b815181546020938401516001600160c01b031990911663ffffffff9290921691909117921b640100000000600160c01b0316919091179055565b91600185841603612ca9575b5050506001600160f81b03198116600160f81b8103612c8d575060581c1691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b909350600160f91b141590506103d8576102139160081b613efb565b612cb2926136fb565b388080612c43565b604051633ab3447f60e11b8152600490fd5b9050612cda612b5d87611c53565b90612cec610775855163ffffffff1690565b9116101538612be8565b60018452612bbd565b60008051602061514e833981519152805463ffffffff60a81b19166001939093019190911660a81b63ffffffff60a81b169190911790553881612b9d565b9182358060f81c80600014612d835780600114612d7657600214612d6057600080fd5b6001600160d81b03191692600501916004190190565b5092601501916014190190565b5050600160009301916000190190565b9092608092611e569694835260018060a01b0316602083015260408201528160608201520191611e59565b909192612ddd94612dd19185858561415b565b9492939196909661424f565b509065ffffffffffff8091164210918215612e63575b5050612e5057612e31612e07602096612e6f565b60405163392dffaf60e01b8152978896879586959193916001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091611f3d575090565b506001600160e01b031995945050505050565b16421190503880612df3565b611e569060405160208101917f1547321c374afde8a591d972a084b071c594c275e36724931ff96c25f2999c838352604082015260408152612eb081610ee2565b519020614278565b90818060081b9160ff839260f01c16600214612ed057565b6001600160d81b031983169150565b9080601f8301121561020357816020611e569335910161263c565b91906101208382031261020357612f0f610f7d565b92612f1981610208565b8452602081013560208501526040810135916001600160401b03928381116102035781612f47918401612edf565b604086015260608201358381116102035781612f64918401612edf565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e08201358381116102035781612f9f918401612edf565b60e0860152610100928383013590811161020357612fbd9201612edf565b90830152565b90816020910312610203575190565b80516001600160a01b03168252611e56919061305061302061300e61012060208501516020870152604085015190806040880152860190610c78565b60608401518582036060870152610c78565b6080830151608085015260a083015160a085015260c083015160c085015260e083015184820360e0860152610c78565b916101008092015191818403910152610c78565b939291613081906040928652606060208701526060860190612fd2565b930152565b929190613081602091604086526040860190612fd2565b9290926000926130ad3682612efa565b9161010091828101916130c08383612003565b90949093600160f81b936001600160f81b03199384168514613209575b50505087160361316a575050604051639700320360e01b8152936020928592839160009183916131109160048401613086565b039260581c6001600160a01b03165af190811561091957611e5692600092613139575b50614776565b61315c91925060203d602011613163575b6131548183610f4f565b810190612fc3565b9038613133565b503d61314a565b909460081b93909291600160f01b613187611f87611f8088611e09565b166131f75760006131a86131a26020966131d299858a614576565b94614776565b604051630ccab7a160e01b8152979096889586948593926001600160e01b03191660048501613064565b03926001600160a01b03165af190811561091957611e56926000926131395750614776565b6040516314b9743f60e01b8152600490fd5b9091955061322593985061321e929450612003565b908861438c565b969192909361323885899599369161263c565b908601523880806130dd565b60008051602061514e83398151915280549163ffffffff92600a848260a81c16019084821161330e5782851691851682116132fc5760c81c84161015612cba5760008051602061514e833981519152805463ffffffff60c81b191660c89290921b63ffffffff60c81b1691909117905554818160c81c1691829160a81c16106132ca5750565b60008051602061514e833981519152805463ffffffff60a81b191660a89290921b63ffffffff60a81b16919091179055565b60405163e60fd64760e01b8152600490fd5b634e487b7160e01b600052601160045260246000fd5b60405161333081610f18565b600681526512d95c9b995b60d21b60208201529060405161335081610f18565b600a815269302e332e312d6265746160b01b602082015290565b60405163d68f602560e01b815233600482015260248101929092526060604483015260648201839052600092839183918290849060849083908084838501378181018301849052601f01601f191681010301926001600160a01b03165af19182156109195780926133da57505090565b611e5692503d8091833e6109388183610f4f565b6000928361341595936040519687958694859363d68f602560e01b85523360048601611e7a565b03926001600160a01b03165af190811561091957600091613434575090565b611e5691503d806000833e6109388183610f4f565b60009060405192808385378338925af4913d82523d6000602084013e60203d830101604052565b60009192806040519485378338925af4913d82523d6000602084013e60203d830101604052565b6001600160a01b0316803b1561020357604051630b9dfbed60e11b8152602060048201529160009183918290849082906134d5906024830190610c78565b03925af18015610919576134e65750565b61021390610eca565b634e487b7160e01b600052603260045260246000fd5b8051156135125760200190565b6134ef565b80518210156135125760209160051b010190565b908210156135125761027d9160051b810190612003565b96959192939694909460005b86811061356057505050505050509050565b806135a18a60019360051b850135613577816102a7565b61358d84613585818c613517565b51938c61352b565b90613599868b8b61352b565b949093612b4c565b0161354e565b90156135125790565b6001600160a01b039391929190848316156136f3575b6135cf90611dd1565b946135fb6135ee6135e083856135a7565b356001600160f81b03191690565b6001600160f81b03191690565b946001600160f81b0319808716806136d4575050908061361d92861693611b4c565b823b156102035761364892600092836040518096819582946306d61fe760e41b845260048401612322565b03925af1948515610919576136846136a493600193610213986136c1575b505b82546001600160a01b0319166001600160a01b03909116178255565b0180546001600160a01b0319166001600160a01b03909316929092178255565b805460ff60a01b191660589290921c60ff60a01b16919091179055565b806109136136ce92610eca565b38613666565b925092505094919403612a6a5760016136a49161368461021396613668565b8492506135c6565b6001600160a01b031691821580156137be575b6137b95760405163d60b347f60e01b8152306004820152602081602481875afa9081156109195760009161379a575b5015613765576001600160f81b03198061375a6135e084866135a7565b161461376557505050565b8061376f92611b4c565b823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6137b3915060203d602011610981576109738183610f4f565b3861373d565b505050565b506001831461370e565b919392916001600160a01b03908184161561384d575b16600081815260008051602061512e8339815191526020526040812080546001600160a01b0319166001600160a01b0390951694909417909355803b15613849576134d59394836040518096819582946306d61fe760e41b8452602060048501526024840191611e59565b8280fd5b600193506137de565b7f9d17cd6d095ac90a655405ab29f30a7ee7e88ef3974c1bf7544bf591043bb71a9160609161388882610bcd83611c8c565b600160ff198254161790556040519163ffffffff60e01b1682526001600160581b031916602082015260016040820152a1565b60407f2b82f87bf66300af618a9621d3f221edfab735f5bacb4e004cce1b62375396c3919392935a82519561391b8761390d6020820193638a91b0e360e01b8552602060248401526044830190610c78565b03601f198101895288610f4f565b6000918291828587519a61392e8c610efd565b828c525193f1943d9081613961575b6020818360009352013e81516001600160a01b0390911681528415156020820152a1565b6000915061393d565b61397a6139ad9194939294611dd1565b80546001600160a01b031981168255600190910180546001600160a01b0392831696919492169161273a9136919061263c565b5080546001600160a81b03191660ff60a01b179055565b6001600160a01b03908116600081815260008051602061512e8339815191526020526040902080546001600160a01b0319811690915590911693926122b89261273a91369161263c565b90929192613a40613a2e60008051602061514e8339815191525460581b90565b6001600160581b031980851691161490565b6127de57613a50611cfe83611c53565b93613a71613a5d84611c53565b8054640100000000600160c01b0319169055565b6001600160f81b03198316600160f81b8103613aaa57506122b89291613a9891369161263c565b9060581c6001600160a01b03166138bb565b600160f91b141590506103d8576102139160081b614811565b604051613acf81610f18565b600181528060005b602080821015613af257906060602092828501015201613ad7565b50505090565b90613b0282610f8a565b613b0f6040519182610f4f565b8281528092613b20601f1991610f8a565b019060005b828110613b3157505050565b806060602080938501015201613b25565b906040611e5692600081528160208201520190610c78565b613b6e818060081b918160301b9160501b90565b5090936001600160f81b031993600160f81b939092508416838103613bf9575050613ba0908035019060208201913590565b929093168015600014613bb8575050611e5691614a8f565b03613bc657611e56916149d2565b60405162461bcd60e51b815260206004820152600b60248201526a155b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b94959490919080613c9b575090613c0f91614926565b93909294613c1b613ac3565b971680613c40575050613c2d93614977565b613c3683613505565b526122b882613505565b03613bc657613c4e9361494e565b613c5784613505565b52610213577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b5160405191829182613b42565b0390a1565b919593918203613bc657613cd290613ccc613cb4613ac3565b9780613cc66123ce6123c88387611b30565b93611b69565b91613470565b613cde87959295613505565b5216908103613d1c575015613cef57565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b613bc6576102135760405162461bcd60e51b815260206004820152601360248201527211195b1959d85d1958d85b1b0819985a5b1959606a1b6044820152606490fd5b6001600160a01b03169081158015613db2575b6137b9578215613512576001600160f81b03198135811614613d9357505050565b82600111610203576122b89261273a913691600019019060010161263c565b5060018214613d72565b600080604092835136810185523683823784516014810186523360601b90528260143601925af1918151913d83523d6000602085013e60203d8401019052565b8054906000906000815582613e1057505050565b6000526020600020918201915b828110613e2957505050565b818155600101613e1d565b6001600160501b03199035818116939260168110613e5157505050565b60160360031b82901b16169150565b80548210156135125760005260206000200190600090565b805468010000000000000000811015610edd57613e9a91600182018155613e60565b819291549060031b9160501c821b9160018060b01b03901b1916179055565b9092809260209483528483013701016000815290565b6001600160f01b03199035818116939260028110613eec57505050565b60020360031b82901b16169150565b90803501906020808301923560fe81118015614153575b61414157600180613f2285611e09565b0154614128575b60001982019260005b84811061404b5750614010959461401e949093613ff49350613fed9250613f8d613fde613fc5611f87613fbf613fb987878e613fb48e613f85611d3b6123ce6123c8613f7f89898961352b565b90611b94565b9a8b91611e09565b805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b61352b565b90611bc2565b90613ecf565b613fce88611e09565b9060f01c61ffff19825416179055565b6001600160a01b03169661352b565b8091611ba5565b6040519586939092906001600160e01b03191660208501613eb9565b03601f198101845283610f4f565b803b15610203576040516306d61fe760e41b81529160009183918290849082906122a99060048301612102565b6140a2611d3b611d3b6123ce6123c8613f7f868a8e613fb48f61406e8e91611e09565b0161409c61408f61408961408388888861352b565b90611b86565b90613e34565b6001600160501b03191690565b90613e78565b906140b1613fed82878b61352b565b906140d260409161401083519485928d63ffffffff60e01b168a8501613eb9565b833b156102035760009384926140fc92519586809481936306d61fe760e41b835260048301612102565b03925af1918215610919578492614115575b5001613f32565b8061091361412292610eca565b3861410e565b61413c600161413686611e09565b01613dfc565b613f29565b60405163b62d956d60e01b8152600490fd5b508015613f12565b84846141de926141c997969498956040519161417683610f33565b6141d860009b8c92838652836020870152604086019d8e52606086019c8d918583528560808901528560a0890152606060c089015260e088019286845261010089019687529063ffffffff60e01b169052565b6001600160a01b039091169052565b52614b28565b60ff806141f76141f16135e087866135a7565b60f81c90565b160361423d57614226614211846142219561423694611b4c565b9490955163ffffffff60e01b1690565b611e09565b5460101c6001600160a01b031690565b9351929190565b60405163b32eeb6960e01b8152600490fd5b8065ffffffffffff91828160a01c16928315600114614270575b5060d01c92565b925038614269565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141615614305575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000006040820152466060820152306080820152206142e6565b9192909261439861280f565b906143a39085611b30565b6143ac91612333565b60601c6020820181905260008051602061514e8339815191525460a81c63ffffffff1680835260349560148082013582018089019791959294919360548601358601808b019490880135939092878c01358801808a013593908d0192918a0135918891908d84369061441d9261263c565b80519060200120913661443190888861263c565b8051906020012036614444908b8d61263c565b8051602091820120604080517fb17ab1224aca0d4255ef8161acaf2ac121b8faa32a4b2258c912cc5f8308c5059381019384526001600160581b0319989098169088015263ffffffff9390931660608701526001600160a01b0393909316608086015260a085019390935260c084019290925260e080840192909252908252906144d061010082610f4f565b5190206144dc90614278565b607489013589018d8b82013591016144f392614d7a565b9a6144fe9488612b4c565b6145088183614f17565b61451191611af4565b61451a91611c27565b61452391613856565b6094810135019293830192013590565b6001600160c01b0319903581811693926008811061455057505050565b60080360031b82901b16169150565b604090611e56939281528160208201520190612fd2565b60009493916001868161458885611e09565b016000835b6145d5575b5050505060ff806145a96141f16135e087896135a7565b160361423d576101006145cd6145c68561422696611e5698611b4c565b369161263c565b910152611e09565b819796975481101561476e576146066145fe6145f18385613e60565b90549060031b1c60501b90565b908160501c90565b98909761462261461c6141f16135e085856135a7565b60ff1690565b80840361473d575090818161465b61464f6146496146438461467898611bd0565b90614533565b60c01c90565b6001600160401b031690565b6009019161466d6145c6848484611be1565b6101008b0152611c0f565b989098975b600160f01b1615614692575b5083018361458d565b99866146cf929b60018060a01b036040918983518092633894f6e760e11b8252818b868260209c8d9760049c63ffffffff60e01b168d840161455f565b0393165af195861561091957889661471e575b505084166147045750506146fa859493928592614776565b9a91929350614689565b51631f24c1fb60e11b81529081018c815281906020010390fd5b614735929650803d10613163576131548183610f4f565b9338806146e2565b909991989083111561475b57604051630760bdcf60e11b8152600490fd5b6147636125e9565b61010088015261467d565b969596614592565b6001600160a01b03818318811615606083811b848601821b9081149186901b1417176001146147a757505050600190565b65ffffffffffff60a01b80831693906001600160d01b031984811691908316908615614809575b8381168015614802575b8781109088180280881897146147fa575b508181119082180218921716171790565b9550386147e9565b50806147d8565b9550856147ce565b9190803501916020906020840193359061482a81611e09565b9260019060018501906001825401850361491457906000835b6148a6575b505050506148959161489082613ff4610213979861486d600161413661401098611e09565b87546148849060101c6001600160a01b0316611d3b565b9460001981019161352b565b6138bb565b5080546001600160b01b0319169055565b815481101561490f579083826149056140108c6148f78a6148dc868e6148d46145fe6145f18c9f9e8e613e60565b96905061352b565b6040519586939092906001600160e01b0319168c8501613eb9565b6001600160a01b03166138bb565b5001909192614843565b614848565b60405163013dcc8d60e31b8152600490fd5b908060141161020357813560601c928160341161020357601483013592603401916033190190565b906000928491604051958692833738935af1913d82523d6000602084013e60203d830101604052565b9092600092819594604051968792833738935af1156149a6573d82523d6000602084013e60203d830101604052565b503d6000823e3d90fd5b91908110156135125760051b81013590605e1981360301821215610203570190565b9190916149de83613af8565b9260005b8181106149ee57505050565b806149fc60019284866149b0565b8035614a07816101f2565b614a2860208093604093614a1d85830183612003565b93909201359061494e565b614a32858b613517565b5215614a41575b5050016149e2565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb791614a85614a70858b613517565b51838051948594888652850152830190610c78565b0390a13880614a39565b919091614a9b83613af8565b9260005b818110614aab57505050565b80614ae16020614abe60019486886149b0565b8035614ac9816101f2565b614ad66040830183612003565b939092013590614977565b614aeb8288613517565b52614af68187613517565b5001614a9f565b9092608092611e569594835260018060a01b0316602083015260408201528160608201520190610c78565b9190606083016001936001614b47614221845163ffffffff60e01b1690565b01936000936000958054965b878110614b6557505050505050505050565b80614b776145fe6145f18c9486613e60565b6001600160a01b031660a0880190815260808801959091614ba0906001600160f01b0319168752565b614bba614bb36141f16135e08a856135a7565b60ff168952565b614bc861461c895160ff1690565b808403614d425750868181614bed61464f614649614643614c419c9d614c1498611bd0565b60208c018181528c60c0614c096145c660099586018789611be1565b910152510191611c0f565b959095965b51600160f11b90614c33906001600160f01b031916611f87565b166001600160f01b03191690565b15614c4e575b5001614b53565b51909150614c64906001600160a01b0316611d3b565b8651614c8890614c7b906001600160e01b03191681565b6001600160e01b03191690565b60e08701519091906001600160a01b031691614ccd6101008901519360c08a01516040948551808095819463184dfdbb60e11b835260209a8b9760049a8b8601614afd565b03915afa938415610919578b94614d23575b50506001600160a01b038316614d085750860180518b9392614d0091614776565b905238614c47565b9051631f24c1fb60e11b815290810183815281906020010390fd5b614d3a929450803d10613163576131548183610f4f565b913880614cdf565b839196945010600014614d6157604051630760bdcf60e11b8152600490fd5b614c418b93614d703688612619565b60c08a0152614c19565b60008051602061514e8339815191525460009493929060581b916001600160f81b03198316600160f81b8103614e3d5750604051637aa8f17760e11b8152936020938593909284928392614dd2923060048601611e7a565b039160581c6001600160a01b03165afa90811561091957600091614e1e575b505b6001600160e01b0319166374eca2c160e11b01614e0c57565b6040516362467c7760e11b8152600490fd5b614e37915060203d602011611f5f57611f578183610f4f565b38614df1565b919550929190600160f91b036103d857602091614e609160081b9584308861415b565b60405163392dffaf60e01b81529297929586949385938493614e9393909230906001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091614eb5575b50614df3565b614ece915060203d602011611f5f57611f578183610f4f565b38614eaf565b15614edb57565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073656c6563746f724461746160601b6044820152606490fd5b614f246106528383611af4565b906004831015614f3357505050565b602c83106150c357614f4e611d3b6123ce6123c88685611b1f565b602c8201358201602c604c820191013591604c840135840194614f88614f7a6135ee6135e087876135a7565b6001600160f81b0319161590565b80615032575b94614fcf61251795611d3b95614fd4956102139b956123ce9a614fe4575b614fbf611d3b6123ce6123c88a8a611bfe565b916001600160a01b0316906135b0565b611bfe565b602c86013595604c019491612333565b61502d606c8701358701615027602c604c83019201358061500e611d3b6123ce6123c88488611b30565b93615022856001600160a01b038a166150d1565b611b69565b916136fb565b614fac565b5091939092956040519163ecd0596160e01b83526020838061505c60048201906002602083019252565b03816001600160a01b0389165afa92831561091957610213986123ce9761251797611d3b97614fd497614fcf956000916150a4575b50959a50959b5095509550955050614f8e565b6150bd915060203d602011610981576109738183610f4f565b38615091565b505060046102139114614ed4565b61021391906001600160a01b039081831615615124575b1660005260008051602061512e83398151915260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b600192506150e856fe1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b867bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032", + "nonce": "0x42", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionType": "CREATE2", + "contractName": "KernelFactory", + "contractAddress": "0x38ff1127ddbae72287d4c96cb419c08f88583f74", + "function": null, + "arguments": [ + "0xcB0441B80fCC3b0f92Fd56646Df2aF318AbcCEC4" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x600f4", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060a034607357601f61046c38819003918201601f19168301916001600160401b03831184841017607857808492602094604052833981010312607357516001600160a01b03811681036073576080526040516103dd908161008f823960805181818160d10152818161023401526102f00152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600490600436101561001757600080fd5b600092833560e01c90816348aac39214610267575080635c60da1b1461021f5763ea6d13ac1461004657600080fd5b61004f36610352565b94919083519560209661007a86828a81019486888737868201908c820152038a8101845201826103a5565b5190209483958551917fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076875261600989527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f97602192605f60212060358601523060581b855260ff855380601586015260558520993415948b3b156101fe57505050506001916101f85785388180348c5af1156101ed57505b818652846060521561016b575b505091516001600160a01b0390931683525050f35b8082859493859483378101838152039082875af1903d156101e7573d9067ffffffffffffffff82116101d3578351916101ad601f8201601f19168801846103a5565b8252853d92013e5b156101c35738808080610156565b5163487e630960e11b8152600490fd5b634e487b7160e01b81526041600452602490fd5b506101b5565b63b12d13eb8652601cfd5b50610149565b91939a5091935034f59687156102145750610149565b63301164258652601cfd5b838234610263578160031936011261026357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b848334610263578260209361029d8361027f36610352565b90808a879498019788378201908982015203878101845201826103a5565b51902081517fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076835261600985527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f6021209083528360605260ff84536035523060601b6001526015526055822091603552519060018060a01b03168152f35b9060406003198301126103a05760043567ffffffffffffffff928382116103a057806023830112156103a05781600401359384116103a057602484830101116103a057602401919060243590565b600080fd5b90601f8019910116810190811067ffffffffffffffff8211176103c757604052565b634e487b7160e01b600052604160045260246000fd000000000000000000000000cb0441b80fcc3b0f92fd56646df2af318abccec4", + "nonce": "0x43", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "function": "approveFactory(address,bool)", + "arguments": [ + "0x38fF1127Ddbae72287D4C96cB419C08f88583f74", + "true" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "gas": "0x108d1", + "value": "0x0", + "input": "0x6e7dbabb00000000000000000000000038ff1127ddbae72287d4c96cb419c08f88583f740000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x44", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xf99ee0", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionIndex": "0x64", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x461b12", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xfdba13", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionIndex": "0x65", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x41b33", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x11972af", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionIndex": "0x67", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0xb513", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714675987, + "chain": 11155111, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployKernel.s.sol/11155111/run-1714676050.json b/broadcast/DeployKernel.s.sol/11155111/run-1714676050.json new file mode 100644 index 00000000..fc08bd71 --- /dev/null +++ b/broadcast/DeployKernel.s.sol/11155111/run-1714676050.json @@ -0,0 +1,124 @@ +{ + "transactions": [ + { + "hash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionType": "CREATE2", + "contractName": "Kernel", + "contractAddress": "0xcb0441b80fcc3b0f92fd56646df2af318abccec4", + "function": null, + "arguments": [ + "0x0000000071727De22E5E9d8BAf0edAc6f37da032" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x60ce26", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006101403461020257601f6153a738819003918201601f191683019291906001600160401b0384118385101761020757816020928492604096875283398101031261020257516001600160a01b038116810361020257306080524660a05260a082516100698161021d565b60068152600a602082016512d95c9b995b60d21b81526020865161008c8161021d565b838152019269302e332e312d6265746160b01b845251902091208160c0528060e0528451917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260208301528482015246606082015230608082015220916101009283526101209182528051602081019063deadbeef60e01b8252600481526101158161021d565b5190516001600160581b0319918282169190601581106101ed575b505090507f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f9060581c60018060a81b0319825416179055519061516e928361023984396080518361429b015260a051836142be015260c05183614330015260e051836143560152518261427a01525181818161050301528181610827015281816109dd01528181610d74015281816110d901528181611241015281816112a1015281816117c901528181611938015281816121d70152612a880152f35b8391925060150360031b1b1616803880610130565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102075760405256fe6080604052600436101561001d575b366129485761001b612917565b005b60003560e01c8063112d3a7d146101ed57806312af322c146101e8578063150b7a02146101e35780631626ba7e146101de57806319822f7c146101d95780631f1b92e3146101d45780633659cfe6146101cf57806357b3a5f4146101ca5780636e6fa0c6146101c5578063721e67f4146101c057806384b0196e146101bb5780638dd7712f146101b657806390ef8862146101b15780639198bdf5146101ac5780639517e29f146101a75780639cfd7cff146101a2578063a65d69d41461019d578063a71763a814610198578063adb610a314610193578063b8afe17d1461018e578063bc197c8114610189578063c3e5897814610184578063d03c79141461017f578063d691c9641461017a578063e6f3d50a14610175578063e9ae5c5314610170578063f1f7f0f91461016b578063f23a6e61146101665763f2dc691d0361000e57611ac5565b611a6b565b611a33565b611907565b61174e565b61166a565b61161d565b611541565b61143a565b6113d0565b61139c565b611270565b61122b565b6111d4565b6110a8565b610fa1565b610e50565b610d3f565b610c9d565b610bf1565b610b94565b610ae6565b61099d565b6107e5565b6104c5565b610465565b61040b565b6102b9565b610281565b6001600160a01b0381160361020357565b600080fd5b3590610213826101f2565b565b9181601f84011215610203578235916001600160401b038311610203576020838186019501011161020357565b6060600319820112610203576004359160243561025e816101f2565b91604435906001600160401b0382116102035761027d91600401610215565b9091565b3461020357602061029d61029436610242565b92919091611cc5565b6040519015158152f35b6001600160581b031981160361020357565b34610203576080366003190112610203576004356102d6816102a7565b6024356102e2816101f2565b6001600160401b039060443582811161020357610303903690600401610215565b90926064359081116102035761031d903690600401610215565b9390926001600160581b031961035d8161035661034960008051602061514e8339815191525460581b90565b6001600160581b03191690565b1615611d8f565b8616156103f9576001600160f81b03198616600160f81b81141590816103ea575b506103d8578561039061001b97612af1565b6103b061039b610f70565b60018152926001600160a01b03166020840152565b60008051602061514e833981519152805463ffffffff60a81b1916600160a81b179055612b4c565b6040516361c4e91b60e11b8152600490fd5b600160f91b141590503861037e565b604051631a0a9b9f60e21b8152600490fd5b34610203576080366003190112610203576104276004356101f2565b6104326024356101f2565b6064356001600160401b03811161020357610451903690600401610215565b5050604051630a85bd0160e11b8152602090f35b34610203576040366003190112610203576024356001600160401b038111610203576104a361049a6020923690600401610215565b90600435611eaa565b6040516001600160e01b03199091168152f35b90816101209103126102035790565b606036600319011261020357600480356001600160401b038111610203576104f090369083016104b6565b60243590604435906001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036107b05780849261053a6020830135612eb8565b6001600160f81b031990911615959093909186610786575b908461055e939261309d565b9561057061056b84611c53565b611fd7565b9415948580610744575b61073357602001516001600160a01b0316918216908115610722576001926105af6105ce926000526000602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b036106815782610623575b5050610612576105fc9250805b610600575b506040519081529081906020820190565b0390f35b3490349034903490335af150386105eb565b604051631a0a9b9f60e21b81528390fd5b61067a92506106769161065861065261064c61064161066f95611c8c565b936060810190612003565b90611af4565b90611c27565b63ffffffff60e01b16600052602052604060002090565b5460ff1690565b1590565b38806105d9565b829192916106ef575b506106de5761064c8160606106a0930190612003565b638dd7712f60e01b916001600160e01b0319916106bc91611c27565b16036106cd576105fc9250806105e6565b60405163dbbb044b60e01b81528390fd5b604051631a0a9b9f60e21b81528490fd5b61071c915061066f61070361067692611c8c565b6106586106526107166060880188612003565b90611ae3565b3861068a565b604051631a0a9b9f60e21b81528990fd5b604051633ab3447f60e11b81528990fd5b50805163ffffffff1663ffffffff61077e61077560008051602061514e8339815191525463ffffffff9060c81c1690565b63ffffffff1690565b91161061057a565b93509061055e916107a660008051602061514e8339815191525460581b90565b9490919250610552565b6040516348f5c3ed60e01b81528590fd5b6004359063ffffffff8216820361020357565b359063ffffffff8216820361020357565b6020366003190112610203576107f96107c1565b61081b61081560008051602061514e8339815191525460581b90565b60581c90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610993575b156109885760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610959575b50156109475760405163d68f602560e01b815291600083806108aa363433600485016120c6565b038183865af19283156109195760009361091e575b506108c990613244565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906108f69060048301612102565b03925af180156109195761090657005b8061091361001b92610eca565b80610c4a565b611e9e565b6108c9919350610940903d806000833e6109388183610f4f565b810190612068565b92906108bf565b6040516348f5c3ed60e01b8152600490fd5b61097b915060203d602011610981575b6109738183610f4f565b810190612035565b38610883565b503d610969565b505061001b90613244565b5030331415610850565b6020366003190112610203576004356109b5816101f2565b6109d161081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610aca575b15610abf5760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610aa0575b50156109475760405163d68f602560e01b81529160008380610a60363433600485016120c6565b038183865af192831561091957600093610a7f575b506108c990612113565b6108c9919350610a99903d806000833e6109388183610f4f565b9290610a75565b610ab9915060203d602011610981576109738183610f4f565b38610a39565b505061001b90612113565b5030331415610a06565b6001600160e01b031981160361020357565b34610203576020366003190112610203576105fc610b28600435610b0981610ad4565b600060408051610b1881610ee2565b8281528260208201520152611dd1565b60405190610b3582610ee2565b80546001600160a01b0390811680845260019092015480821660208086019182526001600160f81b031960589390931b831660409687019081528651958652915190931692840192909252905116918101919091529081906060820190565b3461020357604036600319011261020357602060ff610be5600435610bb8816102a7565b610bcd60243591610bc883610ad4565b611c8c565b9063ffffffff60e01b16600052602052604060002090565b54166040519015158152f35b34610203576020366003190112610203576020610c27600435610c13816101f2565b6000604051610c2181610efd565b52612aca565b60405190610c3482610efd565b546001600160a01b031690819052604051908152f35b600091031261020357565b60005b838110610c685750506000910152565b8181015183820152602001610c58565b90602091610c9181518092818552858086019101610c55565b601f01601f1916010190565b3461020357600036600319011261020357610cec610cb9613324565b90604051928392600f60f81b8452610cde60209360e0602087015260e0860190610c78565b908482036040860152610c78565b90466060840152306080840152600060a084015282820360c0840152602060605192838152019160809160005b828110610d2857505050500390f35b835185528695509381019392810192600101610d19565b6040366003190112610203576004356001600160401b03811161020357610d6a9036906004016104b6565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610947576060906001610dc6610db96024356000526000602052604060002090565b546001600160a01b031690565b91821614159283610e20575b610ded610de6826060610df4940190612003565b8091611b02565b9030613470565b509215610e055761001b9250613497565b505015610e0e57005b60405163f21e646b60e01b8152600490fd5b9150610df4610ded610de6610e46610e3e610de66060880188612003565b9034876133ee565b9492505050610dd2565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460c81c16604051908152f35b9181601f84011215610203578235916001600160401b038311610203576020808501948460051b01011161020357565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610edd57604052565b610eb4565b606081019081106001600160401b03821117610edd57604052565b602081019081106001600160401b03821117610edd57604052565b604081019081106001600160401b03821117610edd57604052565b61012081019081106001600160401b03821117610edd57604052565b90601f801991011681019081106001600160401b03821117610edd57604052565b6040519061021382610f18565b6040519061021382610f33565b6001600160401b038111610edd5760051b60200190565b6080366003190112610203576001600160401b0360043581811161020357610fcd903690600401610e84565b906024358381116102035736602382011215610203578060040135610ff181610f8a565b916040916110026040519485610f4f565b8084526020906024602086019160061b8401019236841161020357602401905b83821061106a57505050505060443584811161020357611046903690600401610e84565b916064359586116102035761106261001b963690600401610e84565b9590946121a8565b848236031261020357828591825161108181610f18565b61108a856107d4565b815282850135611099816101f2565b83820152815201910190611022565b6110b136610242565b6110cd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806111ca575b156111be5760405163ecd0596160e01b815260048082015291169290602081602481875afa9081156109195760009161119f575b50156109475760405163d68f602560e01b8152936000858061115d363433600485016120c6565b038183885af19485156109195760009561117e575b506108c9939495612364565b6108c9949550611198903d806000833e6109388183610f4f565b9493611172565b6111b8915060203d602011610981576109738183610f4f565b38611136565b50509161001b93612364565b5030331415611102565b34610203576000366003190112610203576105fc6040516111f481610f18565b60168152756b65726e656c2e616476616e6365642e76302e332e3160501b6020820152604051918291602083526020830190610c78565b34610203576000366003190112610203576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b61127936610242565b61129561081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611392575b156113865760405163ecd0596160e01b815260048082015291169290602081602481875afa90811561091957600091611367575b50156109475760405163d68f602560e01b81529360008580611325363433600485016120c6565b038183885af194851561091957600095611346575b506108c9939495612673565b6108c9949550611360903d806000833e6109388183610f4f565b949361133a565b611380915060203d602011610981576109738183610f4f565b386112fe565b50509161001b93612673565b50303314156112ca565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460a81c16604051908152f35b346102035760203660031901126102035760406114006004356113f2816102a7565b6113fa61280f565b50611c53565b602082519161140e83610f18565b5463ffffffff81169283815260018060a01b03928391019160201c168152835192835251166020820152f35b346102035760a0366003190112610203576114566004356101f2565b6114616024356101f2565b6001600160401b0360443581811161020357611481903690600401610e84565b50506064358181116102035761149b903690600401610e84565b5050608435908111610203576114b5903690600401610215565b505060405163bc197c8160e01b8152602090f35b602080825282516001600160f01b03191681830152808301516001600160a01b03166040808401919091529092015160608083015280516080830181905260a090920192908101919060005b828110611523575050505090565b83516001600160501b03191685529381019392810192600101611515565b34610203576020806003193601126102035760043561155f81610ad4565b611584604091606083805161157381610ee2565b600081526000878201520152611e09565b9080519161159183610ee2565b805460f081901b6001600160f01b031916845260101c6001600160a01b031684840152815160019182018054808352600091825286822083880197939490939092905b8282106115fb576105fc8888886115ed818e0382610f4f565b8183015251918291826114c9565b845460501b6001600160501b03191689529788019793830193908301906115d4565b3461020357602036600319011261020357602061029d600435612828565b9060406003198301126102035760043591602435906001600160401b0382116102035761027d91600401610215565b6116733661163b565b916001600160a01b0361168533612aca565b541690811561173c57606060019460018414159485611725575b6116a99293613b5a565b92611715575b5050906040519060208083016020845284518091526040840191602060408360051b8701019601926000905b8382106116e85786880387f35b90919293948380611704839a603f198b82030186528951610c78565b9997019594939190910191016116db565b61171e91613497565b38806116af565b6116a9925061173536348761336a565b925061169f565b60405163710c949760e01b8152600490fd5b6060366003190112610203576004803590611768826102a7565b6001600160401b0391602435838111610203576117889036908401610215565b93604435908111610203576117a09036908501610215565b906117bd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806118fd575b156118ed57169560405163ecd0596160e01b81526020818061181b8a8201906004602083019252565b03818b5afa908115610919576000916118ce575b50156118bd5760405163d68f602560e01b815293600085806118553634338d85016120c6565b0381838c5af19485156109195760009561189e575b5061187594956128ea565b823b15610203576108f69260009283604051809681958294630b9dfbed60e11b84528301612102565b61187595506118b7903d806000833e6109388183610f4f565b9461186a565b6040516348f5c3ed60e01b81528690fd5b6118e7915060203d602011610981576109738183610f4f565b3861182f565b50509261001b95929194506128ea565b50303314156117f2565b6119103661163b565b61192c61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611a29575b15611a1d5760405163ecd0596160e01b815260048082015291169190602081602481865afa908115610919576000916119fe575b50156109475760405163d68f602560e01b815292600084806119bc363433600485016120c6565b038183875af1938415610919576000946119dd575b506108c99293946128ff565b6108c99394506119f7903d806000833e6109388183610f4f565b93926119d1565b611a17915060203d602011610981576109738183610f4f565b38611995565b50509061001b926128ff565b5030331415611961565b3461020357600036600319011261020357602060008051602061514e8339815191525460581b604051906001600160581b0319168152f35b346102035760a036600319011261020357611a876004356101f2565b611a926024356101f2565b6084356001600160401b03811161020357611ab1903690600401610215565b505060405163f23a6e6160e01b8152602090f35b3461020357602036600319011261020357602061029d60043561290a565b906008116102035760040190600490565b906004116102035790600490565b909291928360041161020357831161020357600401916003190190565b906018116102035760040190601490565b906014116102035790601490565b906020116102035790602090565b909291928360011161020357831161020357600101916000190190565b909291928360141161020357831161020357601401916013190190565b906016116102035790601690565b906016116102035760020190601490565b909291928360161161020357831161020357601601916015190190565b906002116102035790600290565b906009116102035760010190600890565b909291928360091161020357831161020357600901916008190190565b90602c116102035760180190601490565b90939293848311610203578411610203578101920390565b6001600160e01b03199035818116939260048110611c4457505050565b60040360031b82901b16169150565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f850602052604060002090565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f851602052604060002090565b90929060018103611d1457506001600160a01b0392611d0e9250611cfe915060581b600160581b600160f81b0316600160f81b17611c53565b5460201c6001600160a01b031690565b16151590565b60028103611d4757506001600160a01b0392611d0e9250611d3b9150610db9908416612aca565b6001600160a01b031690565b600303611d8757611d68611d63610652600193611d7695611af4565b611dd1565b01546001600160a01b031690565b6001600160a01b0390811691161490565b505050600090565b15611d9657565b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b63ffffffff60e01b166000527f7c341349a4360fdd5d5bc07e69f325dc6aaea3eb018b3e0ea7e53cc0bb0d6f3b602052604060002090565b63ffffffff60e01b166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f852602052604060002090565b908160209103126102035751611e5681610ad4565b90565b908060209392818452848401376000828201840152601f01601f1916010190565b611e56949260609260018060a01b0316825260208201528160408201520191611e59565b6040513d6000823e3d90fd5b91611eb491612d3d565b91906001600160f81b031980831615611fb6575b6001600160a01b039081611ee1611d3b611cfe87611c53565b16156103f9578316600160f81b03611f6657906020939291611f05611f2396612e6f565b604051637aa8f17760e11b8152968795869485933360048601611e7a565b039260581c165afa90811561091957600091611f3d575090565b611e56915060203d602011611f5f575b611f578183610f4f565b810190611e41565b503d611f4d565b509060081b92600160f11b611f94611f87611f8087611e09565b5460f01b90565b6001600160f01b03191690565b16611fa457611e56933390612dbe565b604051635b71057960e01b8152600490fd5b9150611fd160008051602061514e8339815191525460581b90565b91611ec8565b90604051611fe481610f18565b915463ffffffff81168352602090811c6001600160a01b031690830152565b903590601e198136030182121561020357018035906001600160401b0382116102035760200191813603831361020357565b90816020910312610203575180151581036102035790565b6001600160401b038111610edd57601f01601f191660200190565b602081830312610203578051906001600160401b038211610203570181601f8201121561020357805161209a8161204d565b926120a86040519485610f4f565b8184526020828401011161020357611e569160208085019101610c55565b916080939160018060a01b03168352602083015260606040830152806060830152806000848401376000828201840152601f01601f1916010190565b906020611e56928181520190610c78565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2565b9060405161217481610ee2565b82546001600160a01b039081168252600190930154928316602082015260589290921b6001600160f81b0319166040830152565b959294919390946121cb61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580612318575b156123085760405163ecd0596160e01b8152600480820152911695906020816024818a5afa908115610919576000916122e9575b50156109475760405163d68f602560e01b8152966000888061225b363433600485016120c6565b0381838b5af1978815610919576000986122c8575b5061227c969798613542565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906122a99060048301612102565b03925af18015610919576122bb575b50565b8061091361021392610eca565b61227c9798506122e2903d806000833e6109388183610f4f565b9796612270565b612302915060203d602011610981576109738183610f4f565b38612234565b5050919390929461021396613542565b5030331415612200565b916020611e56938181520191611e59565b6bffffffffffffffffffffffff19903581811693926014811061235557505050565b60140360031b82901b16169150565b6001810361244057506106526102139361242c61243a93600160581b600160f81b039060581b16600160f81b17946123fb6123d4611d3b6123ce6123c86123c160008051602061514e8339815191525463ffffffff9060a81c1690565b9786611b30565b90612333565b60601c90565b6123eb6123df610f70565b63ffffffff9096168652565b6001600160a01b03166020850152565b6014810135810192603482013582019160548101350193603460148401359301916034601483013592019089612b4c565b603460148201359101611af4565b90613856565b6002810361249c57509161248d61021393612472611d3b6123ce6123c860148801358801966034890135890198611b30565b928391601482013591603401906001600160a01b03166137c8565b603460148301359201906136fb565b9091906003810361251c5750612517611d3b612507610213958461250260186123ce97013582016123ce60388401358401996124db6106528787611af4565b906124fc611d3b6124ec8989611b1f565b6018880135976038019691612333565b916135b0565b611b1f565b6018860135956038019491612333565b6136fb565b9091906004810361255d57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6005810361259b57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6006036125d7576001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b604051631092ef5760e11b8152600490fd5b604051906125f682610efd565b60008252565b35906020811061260a575090565b6000199060200360031b1b1690565b91906040519061262882610efd565b819360008352116102035760206000910152565b9291926126488261204d565b916126566040519384610f4f565b829481845281830111610203578281602093846000960137010152565b9291906001840361269d576122b8935060581b600160581b600160f81b0316600160f81b17613a0e565b600284036126b8576122b893506001600160a01b03166139c4565b909190600384036126e757506122b8925080806126db6106526126e19486611af4565b93611b02565b9161396a565b91926004810361276d57506122b89261273a9161271360008051602061514e8339815191525460581b90565b61271f611cfe82611c53565b6001600160a01b03868116911614612740575b50369161263c565b906138bb565b61274c61276791611c53565b8054640100000000600160c01b031916640100000000179055565b38612732565b600581036127f0575060008051602061514e8339815191525460581b5b61279d6127978386611b3e565b906125fc565b906001600160f81b03198116600160f91b146127c5575b50506122b89261273a91369161263c565b60081b6001600160e01b031916146127de5738806127b4565b6040516313002bdd60e31b8152600490fd5b6006036125d75760008051602061514e8339815191525460581b61278a565b6040519061281c82610f18565b60006020838281520152565b61283c818060081b918160301b9160501b90565b929091600160f81b916001600160f81b0319919082168381141590816128e0575b816128d5575b816128c6575b506128bc57169081141590816128b2575b506128ab576001600160e01b0319166128a5576001600160501b0319166128a057600190565b600090565b50600090565b5050600090565b905015153861287a565b5050505050600090565b607f60f91b1415905038612869565b838114159150612863565b801515915061285d565b916128fa91610213959493613a0e565b613d5f565b906122b89291613b5a565b600711156128a057600190565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b6129656129606000356001600160e01b031916611dd1565b612167565b80516001600160a01b039190829061297e908216611d3b565b168061299657604051631cd4b64760e21b8152600490fd5b606090600181141580612ac0575b15612a7c57505080516129c3906001600160a01b03163690349061336a565b915b60408201516001600160f81b031990811680612a3c5750506020820151612a0d93906001906129fc906001600160a01b0316613dbc565b9590945b516001600160a01b031690565b92831603612a2c575b5050612a2457602081519101fd5b602081519101f35b612a3591613497565b3880612a16565b03612a6a576020820151612a0d9390600190612a62906001600160a01b03163690613449565b959094612a00565b604051632d6a6bb760e01b8152600490fd5b92809193036129c557337f00000000000000000000000000000000000000000000000000000000000000008216146129c5576040516348f5c3ed60e01b8152600490fd5b50838114156129a4565b6001600160a01b0316600090815260008051602061512e8339815191526020526040902090565b60207f6789ec0c85d6458d897a36a70129b101f8b4d84c6e218046c3107373dbcbae889160008051602061514e8339815191528160581c6001600160581b0360a81b825416179055604051906001600160581b0319168152a1565b9193909294612b67612b5d84611c53565b5463ffffffff1690565b9360008051602061514e83398151915294612b8a865463ffffffff9060a81c1690565b63ffffffff809281808416911614612cff575b50506020820180516001600160a01b0397919291612bca91891615612cf6575b5460a81c63ffffffff1690565b81612bdc610775865163ffffffff1690565b91161490811591612ccc575b50612cba57612a00612c3792612bfd87611c53565b815181546020938401516001600160c01b031990911663ffffffff9290921691909117921b640100000000600160c01b0316919091179055565b91600185841603612ca9575b5050506001600160f81b03198116600160f81b8103612c8d575060581c1691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b909350600160f91b141590506103d8576102139160081b613efb565b612cb2926136fb565b388080612c43565b604051633ab3447f60e11b8152600490fd5b9050612cda612b5d87611c53565b90612cec610775855163ffffffff1690565b9116101538612be8565b60018452612bbd565b60008051602061514e833981519152805463ffffffff60a81b19166001939093019190911660a81b63ffffffff60a81b169190911790553881612b9d565b9182358060f81c80600014612d835780600114612d7657600214612d6057600080fd5b6001600160d81b03191692600501916004190190565b5092601501916014190190565b5050600160009301916000190190565b9092608092611e569694835260018060a01b0316602083015260408201528160608201520191611e59565b909192612ddd94612dd19185858561415b565b9492939196909661424f565b509065ffffffffffff8091164210918215612e63575b5050612e5057612e31612e07602096612e6f565b60405163392dffaf60e01b8152978896879586959193916001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091611f3d575090565b506001600160e01b031995945050505050565b16421190503880612df3565b611e569060405160208101917f1547321c374afde8a591d972a084b071c594c275e36724931ff96c25f2999c838352604082015260408152612eb081610ee2565b519020614278565b90818060081b9160ff839260f01c16600214612ed057565b6001600160d81b031983169150565b9080601f8301121561020357816020611e569335910161263c565b91906101208382031261020357612f0f610f7d565b92612f1981610208565b8452602081013560208501526040810135916001600160401b03928381116102035781612f47918401612edf565b604086015260608201358381116102035781612f64918401612edf565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e08201358381116102035781612f9f918401612edf565b60e0860152610100928383013590811161020357612fbd9201612edf565b90830152565b90816020910312610203575190565b80516001600160a01b03168252611e56919061305061302061300e61012060208501516020870152604085015190806040880152860190610c78565b60608401518582036060870152610c78565b6080830151608085015260a083015160a085015260c083015160c085015260e083015184820360e0860152610c78565b916101008092015191818403910152610c78565b939291613081906040928652606060208701526060860190612fd2565b930152565b929190613081602091604086526040860190612fd2565b9290926000926130ad3682612efa565b9161010091828101916130c08383612003565b90949093600160f81b936001600160f81b03199384168514613209575b50505087160361316a575050604051639700320360e01b8152936020928592839160009183916131109160048401613086565b039260581c6001600160a01b03165af190811561091957611e5692600092613139575b50614776565b61315c91925060203d602011613163575b6131548183610f4f565b810190612fc3565b9038613133565b503d61314a565b909460081b93909291600160f01b613187611f87611f8088611e09565b166131f75760006131a86131a26020966131d299858a614576565b94614776565b604051630ccab7a160e01b8152979096889586948593926001600160e01b03191660048501613064565b03926001600160a01b03165af190811561091957611e56926000926131395750614776565b6040516314b9743f60e01b8152600490fd5b9091955061322593985061321e929450612003565b908861438c565b969192909361323885899599369161263c565b908601523880806130dd565b60008051602061514e83398151915280549163ffffffff92600a848260a81c16019084821161330e5782851691851682116132fc5760c81c84161015612cba5760008051602061514e833981519152805463ffffffff60c81b191660c89290921b63ffffffff60c81b1691909117905554818160c81c1691829160a81c16106132ca5750565b60008051602061514e833981519152805463ffffffff60a81b191660a89290921b63ffffffff60a81b16919091179055565b60405163e60fd64760e01b8152600490fd5b634e487b7160e01b600052601160045260246000fd5b60405161333081610f18565b600681526512d95c9b995b60d21b60208201529060405161335081610f18565b600a815269302e332e312d6265746160b01b602082015290565b60405163d68f602560e01b815233600482015260248101929092526060604483015260648201839052600092839183918290849060849083908084838501378181018301849052601f01601f191681010301926001600160a01b03165af19182156109195780926133da57505090565b611e5692503d8091833e6109388183610f4f565b6000928361341595936040519687958694859363d68f602560e01b85523360048601611e7a565b03926001600160a01b03165af190811561091957600091613434575090565b611e5691503d806000833e6109388183610f4f565b60009060405192808385378338925af4913d82523d6000602084013e60203d830101604052565b60009192806040519485378338925af4913d82523d6000602084013e60203d830101604052565b6001600160a01b0316803b1561020357604051630b9dfbed60e11b8152602060048201529160009183918290849082906134d5906024830190610c78565b03925af18015610919576134e65750565b61021390610eca565b634e487b7160e01b600052603260045260246000fd5b8051156135125760200190565b6134ef565b80518210156135125760209160051b010190565b908210156135125761027d9160051b810190612003565b96959192939694909460005b86811061356057505050505050509050565b806135a18a60019360051b850135613577816102a7565b61358d84613585818c613517565b51938c61352b565b90613599868b8b61352b565b949093612b4c565b0161354e565b90156135125790565b6001600160a01b039391929190848316156136f3575b6135cf90611dd1565b946135fb6135ee6135e083856135a7565b356001600160f81b03191690565b6001600160f81b03191690565b946001600160f81b0319808716806136d4575050908061361d92861693611b4c565b823b156102035761364892600092836040518096819582946306d61fe760e41b845260048401612322565b03925af1948515610919576136846136a493600193610213986136c1575b505b82546001600160a01b0319166001600160a01b03909116178255565b0180546001600160a01b0319166001600160a01b03909316929092178255565b805460ff60a01b191660589290921c60ff60a01b16919091179055565b806109136136ce92610eca565b38613666565b925092505094919403612a6a5760016136a49161368461021396613668565b8492506135c6565b6001600160a01b031691821580156137be575b6137b95760405163d60b347f60e01b8152306004820152602081602481875afa9081156109195760009161379a575b5015613765576001600160f81b03198061375a6135e084866135a7565b161461376557505050565b8061376f92611b4c565b823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6137b3915060203d602011610981576109738183610f4f565b3861373d565b505050565b506001831461370e565b919392916001600160a01b03908184161561384d575b16600081815260008051602061512e8339815191526020526040812080546001600160a01b0319166001600160a01b0390951694909417909355803b15613849576134d59394836040518096819582946306d61fe760e41b8452602060048501526024840191611e59565b8280fd5b600193506137de565b7f9d17cd6d095ac90a655405ab29f30a7ee7e88ef3974c1bf7544bf591043bb71a9160609161388882610bcd83611c8c565b600160ff198254161790556040519163ffffffff60e01b1682526001600160581b031916602082015260016040820152a1565b60407f2b82f87bf66300af618a9621d3f221edfab735f5bacb4e004cce1b62375396c3919392935a82519561391b8761390d6020820193638a91b0e360e01b8552602060248401526044830190610c78565b03601f198101895288610f4f565b6000918291828587519a61392e8c610efd565b828c525193f1943d9081613961575b6020818360009352013e81516001600160a01b0390911681528415156020820152a1565b6000915061393d565b61397a6139ad9194939294611dd1565b80546001600160a01b031981168255600190910180546001600160a01b0392831696919492169161273a9136919061263c565b5080546001600160a81b03191660ff60a01b179055565b6001600160a01b03908116600081815260008051602061512e8339815191526020526040902080546001600160a01b0319811690915590911693926122b89261273a91369161263c565b90929192613a40613a2e60008051602061514e8339815191525460581b90565b6001600160581b031980851691161490565b6127de57613a50611cfe83611c53565b93613a71613a5d84611c53565b8054640100000000600160c01b0319169055565b6001600160f81b03198316600160f81b8103613aaa57506122b89291613a9891369161263c565b9060581c6001600160a01b03166138bb565b600160f91b141590506103d8576102139160081b614811565b604051613acf81610f18565b600181528060005b602080821015613af257906060602092828501015201613ad7565b50505090565b90613b0282610f8a565b613b0f6040519182610f4f565b8281528092613b20601f1991610f8a565b019060005b828110613b3157505050565b806060602080938501015201613b25565b906040611e5692600081528160208201520190610c78565b613b6e818060081b918160301b9160501b90565b5090936001600160f81b031993600160f81b939092508416838103613bf9575050613ba0908035019060208201913590565b929093168015600014613bb8575050611e5691614a8f565b03613bc657611e56916149d2565b60405162461bcd60e51b815260206004820152600b60248201526a155b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b94959490919080613c9b575090613c0f91614926565b93909294613c1b613ac3565b971680613c40575050613c2d93614977565b613c3683613505565b526122b882613505565b03613bc657613c4e9361494e565b613c5784613505565b52610213577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b5160405191829182613b42565b0390a1565b919593918203613bc657613cd290613ccc613cb4613ac3565b9780613cc66123ce6123c88387611b30565b93611b69565b91613470565b613cde87959295613505565b5216908103613d1c575015613cef57565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b613bc6576102135760405162461bcd60e51b815260206004820152601360248201527211195b1959d85d1958d85b1b0819985a5b1959606a1b6044820152606490fd5b6001600160a01b03169081158015613db2575b6137b9578215613512576001600160f81b03198135811614613d9357505050565b82600111610203576122b89261273a913691600019019060010161263c565b5060018214613d72565b600080604092835136810185523683823784516014810186523360601b90528260143601925af1918151913d83523d6000602085013e60203d8401019052565b8054906000906000815582613e1057505050565b6000526020600020918201915b828110613e2957505050565b818155600101613e1d565b6001600160501b03199035818116939260168110613e5157505050565b60160360031b82901b16169150565b80548210156135125760005260206000200190600090565b805468010000000000000000811015610edd57613e9a91600182018155613e60565b819291549060031b9160501c821b9160018060b01b03901b1916179055565b9092809260209483528483013701016000815290565b6001600160f01b03199035818116939260028110613eec57505050565b60020360031b82901b16169150565b90803501906020808301923560fe81118015614153575b61414157600180613f2285611e09565b0154614128575b60001982019260005b84811061404b5750614010959461401e949093613ff49350613fed9250613f8d613fde613fc5611f87613fbf613fb987878e613fb48e613f85611d3b6123ce6123c8613f7f89898961352b565b90611b94565b9a8b91611e09565b805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b61352b565b90611bc2565b90613ecf565b613fce88611e09565b9060f01c61ffff19825416179055565b6001600160a01b03169661352b565b8091611ba5565b6040519586939092906001600160e01b03191660208501613eb9565b03601f198101845283610f4f565b803b15610203576040516306d61fe760e41b81529160009183918290849082906122a99060048301612102565b6140a2611d3b611d3b6123ce6123c8613f7f868a8e613fb48f61406e8e91611e09565b0161409c61408f61408961408388888861352b565b90611b86565b90613e34565b6001600160501b03191690565b90613e78565b906140b1613fed82878b61352b565b906140d260409161401083519485928d63ffffffff60e01b168a8501613eb9565b833b156102035760009384926140fc92519586809481936306d61fe760e41b835260048301612102565b03925af1918215610919578492614115575b5001613f32565b8061091361412292610eca565b3861410e565b61413c600161413686611e09565b01613dfc565b613f29565b60405163b62d956d60e01b8152600490fd5b508015613f12565b84846141de926141c997969498956040519161417683610f33565b6141d860009b8c92838652836020870152604086019d8e52606086019c8d918583528560808901528560a0890152606060c089015260e088019286845261010089019687529063ffffffff60e01b169052565b6001600160a01b039091169052565b52614b28565b60ff806141f76141f16135e087866135a7565b60f81c90565b160361423d57614226614211846142219561423694611b4c565b9490955163ffffffff60e01b1690565b611e09565b5460101c6001600160a01b031690565b9351929190565b60405163b32eeb6960e01b8152600490fd5b8065ffffffffffff91828160a01c16928315600114614270575b5060d01c92565b925038614269565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141615614305575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000006040820152466060820152306080820152206142e6565b9192909261439861280f565b906143a39085611b30565b6143ac91612333565b60601c6020820181905260008051602061514e8339815191525460a81c63ffffffff1680835260349560148082013582018089019791959294919360548601358601808b019490880135939092878c01358801808a013593908d0192918a0135918891908d84369061441d9261263c565b80519060200120913661443190888861263c565b8051906020012036614444908b8d61263c565b8051602091820120604080517fb17ab1224aca0d4255ef8161acaf2ac121b8faa32a4b2258c912cc5f8308c5059381019384526001600160581b0319989098169088015263ffffffff9390931660608701526001600160a01b0393909316608086015260a085019390935260c084019290925260e080840192909252908252906144d061010082610f4f565b5190206144dc90614278565b607489013589018d8b82013591016144f392614d7a565b9a6144fe9488612b4c565b6145088183614f17565b61451191611af4565b61451a91611c27565b61452391613856565b6094810135019293830192013590565b6001600160c01b0319903581811693926008811061455057505050565b60080360031b82901b16169150565b604090611e56939281528160208201520190612fd2565b60009493916001868161458885611e09565b016000835b6145d5575b5050505060ff806145a96141f16135e087896135a7565b160361423d576101006145cd6145c68561422696611e5698611b4c565b369161263c565b910152611e09565b819796975481101561476e576146066145fe6145f18385613e60565b90549060031b1c60501b90565b908160501c90565b98909761462261461c6141f16135e085856135a7565b60ff1690565b80840361473d575090818161465b61464f6146496146438461467898611bd0565b90614533565b60c01c90565b6001600160401b031690565b6009019161466d6145c6848484611be1565b6101008b0152611c0f565b989098975b600160f01b1615614692575b5083018361458d565b99866146cf929b60018060a01b036040918983518092633894f6e760e11b8252818b868260209c8d9760049c63ffffffff60e01b168d840161455f565b0393165af195861561091957889661471e575b505084166147045750506146fa859493928592614776565b9a91929350614689565b51631f24c1fb60e11b81529081018c815281906020010390fd5b614735929650803d10613163576131548183610f4f565b9338806146e2565b909991989083111561475b57604051630760bdcf60e11b8152600490fd5b6147636125e9565b61010088015261467d565b969596614592565b6001600160a01b03818318811615606083811b848601821b9081149186901b1417176001146147a757505050600190565b65ffffffffffff60a01b80831693906001600160d01b031984811691908316908615614809575b8381168015614802575b8781109088180280881897146147fa575b508181119082180218921716171790565b9550386147e9565b50806147d8565b9550856147ce565b9190803501916020906020840193359061482a81611e09565b9260019060018501906001825401850361491457906000835b6148a6575b505050506148959161489082613ff4610213979861486d600161413661401098611e09565b87546148849060101c6001600160a01b0316611d3b565b9460001981019161352b565b6138bb565b5080546001600160b01b0319169055565b815481101561490f579083826149056140108c6148f78a6148dc868e6148d46145fe6145f18c9f9e8e613e60565b96905061352b565b6040519586939092906001600160e01b0319168c8501613eb9565b6001600160a01b03166138bb565b5001909192614843565b614848565b60405163013dcc8d60e31b8152600490fd5b908060141161020357813560601c928160341161020357601483013592603401916033190190565b906000928491604051958692833738935af1913d82523d6000602084013e60203d830101604052565b9092600092819594604051968792833738935af1156149a6573d82523d6000602084013e60203d830101604052565b503d6000823e3d90fd5b91908110156135125760051b81013590605e1981360301821215610203570190565b9190916149de83613af8565b9260005b8181106149ee57505050565b806149fc60019284866149b0565b8035614a07816101f2565b614a2860208093604093614a1d85830183612003565b93909201359061494e565b614a32858b613517565b5215614a41575b5050016149e2565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb791614a85614a70858b613517565b51838051948594888652850152830190610c78565b0390a13880614a39565b919091614a9b83613af8565b9260005b818110614aab57505050565b80614ae16020614abe60019486886149b0565b8035614ac9816101f2565b614ad66040830183612003565b939092013590614977565b614aeb8288613517565b52614af68187613517565b5001614a9f565b9092608092611e569594835260018060a01b0316602083015260408201528160608201520190610c78565b9190606083016001936001614b47614221845163ffffffff60e01b1690565b01936000936000958054965b878110614b6557505050505050505050565b80614b776145fe6145f18c9486613e60565b6001600160a01b031660a0880190815260808801959091614ba0906001600160f01b0319168752565b614bba614bb36141f16135e08a856135a7565b60ff168952565b614bc861461c895160ff1690565b808403614d425750868181614bed61464f614649614643614c419c9d614c1498611bd0565b60208c018181528c60c0614c096145c660099586018789611be1565b910152510191611c0f565b959095965b51600160f11b90614c33906001600160f01b031916611f87565b166001600160f01b03191690565b15614c4e575b5001614b53565b51909150614c64906001600160a01b0316611d3b565b8651614c8890614c7b906001600160e01b03191681565b6001600160e01b03191690565b60e08701519091906001600160a01b031691614ccd6101008901519360c08a01516040948551808095819463184dfdbb60e11b835260209a8b9760049a8b8601614afd565b03915afa938415610919578b94614d23575b50506001600160a01b038316614d085750860180518b9392614d0091614776565b905238614c47565b9051631f24c1fb60e11b815290810183815281906020010390fd5b614d3a929450803d10613163576131548183610f4f565b913880614cdf565b839196945010600014614d6157604051630760bdcf60e11b8152600490fd5b614c418b93614d703688612619565b60c08a0152614c19565b60008051602061514e8339815191525460009493929060581b916001600160f81b03198316600160f81b8103614e3d5750604051637aa8f17760e11b8152936020938593909284928392614dd2923060048601611e7a565b039160581c6001600160a01b03165afa90811561091957600091614e1e575b505b6001600160e01b0319166374eca2c160e11b01614e0c57565b6040516362467c7760e11b8152600490fd5b614e37915060203d602011611f5f57611f578183610f4f565b38614df1565b919550929190600160f91b036103d857602091614e609160081b9584308861415b565b60405163392dffaf60e01b81529297929586949385938493614e9393909230906001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091614eb5575b50614df3565b614ece915060203d602011611f5f57611f578183610f4f565b38614eaf565b15614edb57565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073656c6563746f724461746160601b6044820152606490fd5b614f246106528383611af4565b906004831015614f3357505050565b602c83106150c357614f4e611d3b6123ce6123c88685611b1f565b602c8201358201602c604c820191013591604c840135840194614f88614f7a6135ee6135e087876135a7565b6001600160f81b0319161590565b80615032575b94614fcf61251795611d3b95614fd4956102139b956123ce9a614fe4575b614fbf611d3b6123ce6123c88a8a611bfe565b916001600160a01b0316906135b0565b611bfe565b602c86013595604c019491612333565b61502d606c8701358701615027602c604c83019201358061500e611d3b6123ce6123c88488611b30565b93615022856001600160a01b038a166150d1565b611b69565b916136fb565b614fac565b5091939092956040519163ecd0596160e01b83526020838061505c60048201906002602083019252565b03816001600160a01b0389165afa92831561091957610213986123ce9761251797611d3b97614fd497614fcf956000916150a4575b50959a50959b5095509550955050614f8e565b6150bd915060203d602011610981576109738183610f4f565b38615091565b505060046102139114614ed4565b61021391906001600160a01b039081831615615124575b1660005260008051602061512e83398151915260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b600192506150e856fe1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b867bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032", + "nonce": "0x42", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionType": "CREATE2", + "contractName": "KernelFactory", + "contractAddress": "0x38ff1127ddbae72287d4c96cb419c08f88583f74", + "function": null, + "arguments": [ + "0xcB0441B80fCC3b0f92Fd56646Df2aF318AbcCEC4" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x600f4", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060a034607357601f61046c38819003918201601f19168301916001600160401b03831184841017607857808492602094604052833981010312607357516001600160a01b03811681036073576080526040516103dd908161008f823960805181818160d10152818161023401526102f00152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600490600436101561001757600080fd5b600092833560e01c90816348aac39214610267575080635c60da1b1461021f5763ea6d13ac1461004657600080fd5b61004f36610352565b94919083519560209661007a86828a81019486888737868201908c820152038a8101845201826103a5565b5190209483958551917fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076875261600989527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f97602192605f60212060358601523060581b855260ff855380601586015260558520993415948b3b156101fe57505050506001916101f85785388180348c5af1156101ed57505b818652846060521561016b575b505091516001600160a01b0390931683525050f35b8082859493859483378101838152039082875af1903d156101e7573d9067ffffffffffffffff82116101d3578351916101ad601f8201601f19168801846103a5565b8252853d92013e5b156101c35738808080610156565b5163487e630960e11b8152600490fd5b634e487b7160e01b81526041600452602490fd5b506101b5565b63b12d13eb8652601cfd5b50610149565b91939a5091935034f59687156102145750610149565b63301164258652601cfd5b838234610263578160031936011261026357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b848334610263578260209361029d8361027f36610352565b90808a879498019788378201908982015203878101845201826103a5565b51902081517fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076835261600985527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f6021209083528360605260ff84536035523060601b6001526015526055822091603552519060018060a01b03168152f35b9060406003198301126103a05760043567ffffffffffffffff928382116103a057806023830112156103a05781600401359384116103a057602484830101116103a057602401919060243590565b600080fd5b90601f8019910116810190811067ffffffffffffffff8211176103c757604052565b634e487b7160e01b600052604160045260246000fd000000000000000000000000cb0441b80fcc3b0f92fd56646df2af318abccec4", + "nonce": "0x43", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "function": "approveFactory(address,bool)", + "arguments": [ + "0x38fF1127Ddbae72287D4C96cB419C08f88583f74", + "true" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "gas": "0x108d1", + "value": "0x0", + "input": "0x6e7dbabb00000000000000000000000038ff1127ddbae72287d4c96cb419c08f88583f740000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x44", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xf99ee0", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionIndex": "0x64", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x461b12", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0xcb0441b80fcc3b0f92fd56646df2af318abccec4" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xfdba13", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionIndex": "0x65", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x41b33", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0x38ff1127ddbae72287d4c96cb419c08f88583f74" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x11972af", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionIndex": "0x67", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0xb513", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714676050, + "chain": 11155111, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployKernel.s.sol/11155111/run-1714676402.json b/broadcast/DeployKernel.s.sol/11155111/run-1714676402.json new file mode 100644 index 00000000..76041a40 --- /dev/null +++ b/broadcast/DeployKernel.s.sol/11155111/run-1714676402.json @@ -0,0 +1,124 @@ +{ + "transactions": [ + { + "hash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionType": "CREATE2", + "contractName": "Kernel", + "contractAddress": "0xcb0441b80fcc3b0f92fd56646df2af318abccec4", + "function": null, + "arguments": [ + "0x0000000071727De22E5E9d8BAf0edAc6f37da032" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x60ce26", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006101403461020257601f6153a738819003918201601f191683019291906001600160401b0384118385101761020757816020928492604096875283398101031261020257516001600160a01b038116810361020257306080524660a05260a082516100698161021d565b60068152600a602082016512d95c9b995b60d21b81526020865161008c8161021d565b838152019269302e332e312d6265746160b01b845251902091208160c0528060e0528451917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260208301528482015246606082015230608082015220916101009283526101209182528051602081019063deadbeef60e01b8252600481526101158161021d565b5190516001600160581b0319918282169190601581106101ed575b505090507f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f9060581c60018060a81b0319825416179055519061516e928361023984396080518361429b015260a051836142be015260c05183614330015260e051836143560152518261427a01525181818161050301528181610827015281816109dd01528181610d74015281816110d901528181611241015281816112a1015281816117c901528181611938015281816121d70152612a880152f35b8391925060150360031b1b1616803880610130565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102075760405256fe6080604052600436101561001d575b366129485761001b612917565b005b60003560e01c8063112d3a7d146101ed57806312af322c146101e8578063150b7a02146101e35780631626ba7e146101de57806319822f7c146101d95780631f1b92e3146101d45780633659cfe6146101cf57806357b3a5f4146101ca5780636e6fa0c6146101c5578063721e67f4146101c057806384b0196e146101bb5780638dd7712f146101b657806390ef8862146101b15780639198bdf5146101ac5780639517e29f146101a75780639cfd7cff146101a2578063a65d69d41461019d578063a71763a814610198578063adb610a314610193578063b8afe17d1461018e578063bc197c8114610189578063c3e5897814610184578063d03c79141461017f578063d691c9641461017a578063e6f3d50a14610175578063e9ae5c5314610170578063f1f7f0f91461016b578063f23a6e61146101665763f2dc691d0361000e57611ac5565b611a6b565b611a33565b611907565b61174e565b61166a565b61161d565b611541565b61143a565b6113d0565b61139c565b611270565b61122b565b6111d4565b6110a8565b610fa1565b610e50565b610d3f565b610c9d565b610bf1565b610b94565b610ae6565b61099d565b6107e5565b6104c5565b610465565b61040b565b6102b9565b610281565b6001600160a01b0381160361020357565b600080fd5b3590610213826101f2565b565b9181601f84011215610203578235916001600160401b038311610203576020838186019501011161020357565b6060600319820112610203576004359160243561025e816101f2565b91604435906001600160401b0382116102035761027d91600401610215565b9091565b3461020357602061029d61029436610242565b92919091611cc5565b6040519015158152f35b6001600160581b031981160361020357565b34610203576080366003190112610203576004356102d6816102a7565b6024356102e2816101f2565b6001600160401b039060443582811161020357610303903690600401610215565b90926064359081116102035761031d903690600401610215565b9390926001600160581b031961035d8161035661034960008051602061514e8339815191525460581b90565b6001600160581b03191690565b1615611d8f565b8616156103f9576001600160f81b03198616600160f81b81141590816103ea575b506103d8578561039061001b97612af1565b6103b061039b610f70565b60018152926001600160a01b03166020840152565b60008051602061514e833981519152805463ffffffff60a81b1916600160a81b179055612b4c565b6040516361c4e91b60e11b8152600490fd5b600160f91b141590503861037e565b604051631a0a9b9f60e21b8152600490fd5b34610203576080366003190112610203576104276004356101f2565b6104326024356101f2565b6064356001600160401b03811161020357610451903690600401610215565b5050604051630a85bd0160e11b8152602090f35b34610203576040366003190112610203576024356001600160401b038111610203576104a361049a6020923690600401610215565b90600435611eaa565b6040516001600160e01b03199091168152f35b90816101209103126102035790565b606036600319011261020357600480356001600160401b038111610203576104f090369083016104b6565b60243590604435906001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036107b05780849261053a6020830135612eb8565b6001600160f81b031990911615959093909186610786575b908461055e939261309d565b9561057061056b84611c53565b611fd7565b9415948580610744575b61073357602001516001600160a01b0316918216908115610722576001926105af6105ce926000526000602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b036106815782610623575b5050610612576105fc9250805b610600575b506040519081529081906020820190565b0390f35b3490349034903490335af150386105eb565b604051631a0a9b9f60e21b81528390fd5b61067a92506106769161065861065261064c61064161066f95611c8c565b936060810190612003565b90611af4565b90611c27565b63ffffffff60e01b16600052602052604060002090565b5460ff1690565b1590565b38806105d9565b829192916106ef575b506106de5761064c8160606106a0930190612003565b638dd7712f60e01b916001600160e01b0319916106bc91611c27565b16036106cd576105fc9250806105e6565b60405163dbbb044b60e01b81528390fd5b604051631a0a9b9f60e21b81528490fd5b61071c915061066f61070361067692611c8c565b6106586106526107166060880188612003565b90611ae3565b3861068a565b604051631a0a9b9f60e21b81528990fd5b604051633ab3447f60e11b81528990fd5b50805163ffffffff1663ffffffff61077e61077560008051602061514e8339815191525463ffffffff9060c81c1690565b63ffffffff1690565b91161061057a565b93509061055e916107a660008051602061514e8339815191525460581b90565b9490919250610552565b6040516348f5c3ed60e01b81528590fd5b6004359063ffffffff8216820361020357565b359063ffffffff8216820361020357565b6020366003190112610203576107f96107c1565b61081b61081560008051602061514e8339815191525460581b90565b60581c90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610993575b156109885760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610959575b50156109475760405163d68f602560e01b815291600083806108aa363433600485016120c6565b038183865af19283156109195760009361091e575b506108c990613244565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906108f69060048301612102565b03925af180156109195761090657005b8061091361001b92610eca565b80610c4a565b611e9e565b6108c9919350610940903d806000833e6109388183610f4f565b810190612068565b92906108bf565b6040516348f5c3ed60e01b8152600490fd5b61097b915060203d602011610981575b6109738183610f4f565b810190612035565b38610883565b503d610969565b505061001b90613244565b5030331415610850565b6020366003190112610203576004356109b5816101f2565b6109d161081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610aca575b15610abf5760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610aa0575b50156109475760405163d68f602560e01b81529160008380610a60363433600485016120c6565b038183865af192831561091957600093610a7f575b506108c990612113565b6108c9919350610a99903d806000833e6109388183610f4f565b9290610a75565b610ab9915060203d602011610981576109738183610f4f565b38610a39565b505061001b90612113565b5030331415610a06565b6001600160e01b031981160361020357565b34610203576020366003190112610203576105fc610b28600435610b0981610ad4565b600060408051610b1881610ee2565b8281528260208201520152611dd1565b60405190610b3582610ee2565b80546001600160a01b0390811680845260019092015480821660208086019182526001600160f81b031960589390931b831660409687019081528651958652915190931692840192909252905116918101919091529081906060820190565b3461020357604036600319011261020357602060ff610be5600435610bb8816102a7565b610bcd60243591610bc883610ad4565b611c8c565b9063ffffffff60e01b16600052602052604060002090565b54166040519015158152f35b34610203576020366003190112610203576020610c27600435610c13816101f2565b6000604051610c2181610efd565b52612aca565b60405190610c3482610efd565b546001600160a01b031690819052604051908152f35b600091031261020357565b60005b838110610c685750506000910152565b8181015183820152602001610c58565b90602091610c9181518092818552858086019101610c55565b601f01601f1916010190565b3461020357600036600319011261020357610cec610cb9613324565b90604051928392600f60f81b8452610cde60209360e0602087015260e0860190610c78565b908482036040860152610c78565b90466060840152306080840152600060a084015282820360c0840152602060605192838152019160809160005b828110610d2857505050500390f35b835185528695509381019392810192600101610d19565b6040366003190112610203576004356001600160401b03811161020357610d6a9036906004016104b6565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610947576060906001610dc6610db96024356000526000602052604060002090565b546001600160a01b031690565b91821614159283610e20575b610ded610de6826060610df4940190612003565b8091611b02565b9030613470565b509215610e055761001b9250613497565b505015610e0e57005b60405163f21e646b60e01b8152600490fd5b9150610df4610ded610de6610e46610e3e610de66060880188612003565b9034876133ee565b9492505050610dd2565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460c81c16604051908152f35b9181601f84011215610203578235916001600160401b038311610203576020808501948460051b01011161020357565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610edd57604052565b610eb4565b606081019081106001600160401b03821117610edd57604052565b602081019081106001600160401b03821117610edd57604052565b604081019081106001600160401b03821117610edd57604052565b61012081019081106001600160401b03821117610edd57604052565b90601f801991011681019081106001600160401b03821117610edd57604052565b6040519061021382610f18565b6040519061021382610f33565b6001600160401b038111610edd5760051b60200190565b6080366003190112610203576001600160401b0360043581811161020357610fcd903690600401610e84565b906024358381116102035736602382011215610203578060040135610ff181610f8a565b916040916110026040519485610f4f565b8084526020906024602086019160061b8401019236841161020357602401905b83821061106a57505050505060443584811161020357611046903690600401610e84565b916064359586116102035761106261001b963690600401610e84565b9590946121a8565b848236031261020357828591825161108181610f18565b61108a856107d4565b815282850135611099816101f2565b83820152815201910190611022565b6110b136610242565b6110cd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806111ca575b156111be5760405163ecd0596160e01b815260048082015291169290602081602481875afa9081156109195760009161119f575b50156109475760405163d68f602560e01b8152936000858061115d363433600485016120c6565b038183885af19485156109195760009561117e575b506108c9939495612364565b6108c9949550611198903d806000833e6109388183610f4f565b9493611172565b6111b8915060203d602011610981576109738183610f4f565b38611136565b50509161001b93612364565b5030331415611102565b34610203576000366003190112610203576105fc6040516111f481610f18565b60168152756b65726e656c2e616476616e6365642e76302e332e3160501b6020820152604051918291602083526020830190610c78565b34610203576000366003190112610203576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b61127936610242565b61129561081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611392575b156113865760405163ecd0596160e01b815260048082015291169290602081602481875afa90811561091957600091611367575b50156109475760405163d68f602560e01b81529360008580611325363433600485016120c6565b038183885af194851561091957600095611346575b506108c9939495612673565b6108c9949550611360903d806000833e6109388183610f4f565b949361133a565b611380915060203d602011610981576109738183610f4f565b386112fe565b50509161001b93612673565b50303314156112ca565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460a81c16604051908152f35b346102035760203660031901126102035760406114006004356113f2816102a7565b6113fa61280f565b50611c53565b602082519161140e83610f18565b5463ffffffff81169283815260018060a01b03928391019160201c168152835192835251166020820152f35b346102035760a0366003190112610203576114566004356101f2565b6114616024356101f2565b6001600160401b0360443581811161020357611481903690600401610e84565b50506064358181116102035761149b903690600401610e84565b5050608435908111610203576114b5903690600401610215565b505060405163bc197c8160e01b8152602090f35b602080825282516001600160f01b03191681830152808301516001600160a01b03166040808401919091529092015160608083015280516080830181905260a090920192908101919060005b828110611523575050505090565b83516001600160501b03191685529381019392810192600101611515565b34610203576020806003193601126102035760043561155f81610ad4565b611584604091606083805161157381610ee2565b600081526000878201520152611e09565b9080519161159183610ee2565b805460f081901b6001600160f01b031916845260101c6001600160a01b031684840152815160019182018054808352600091825286822083880197939490939092905b8282106115fb576105fc8888886115ed818e0382610f4f565b8183015251918291826114c9565b845460501b6001600160501b03191689529788019793830193908301906115d4565b3461020357602036600319011261020357602061029d600435612828565b9060406003198301126102035760043591602435906001600160401b0382116102035761027d91600401610215565b6116733661163b565b916001600160a01b0361168533612aca565b541690811561173c57606060019460018414159485611725575b6116a99293613b5a565b92611715575b5050906040519060208083016020845284518091526040840191602060408360051b8701019601926000905b8382106116e85786880387f35b90919293948380611704839a603f198b82030186528951610c78565b9997019594939190910191016116db565b61171e91613497565b38806116af565b6116a9925061173536348761336a565b925061169f565b60405163710c949760e01b8152600490fd5b6060366003190112610203576004803590611768826102a7565b6001600160401b0391602435838111610203576117889036908401610215565b93604435908111610203576117a09036908501610215565b906117bd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806118fd575b156118ed57169560405163ecd0596160e01b81526020818061181b8a8201906004602083019252565b03818b5afa908115610919576000916118ce575b50156118bd5760405163d68f602560e01b815293600085806118553634338d85016120c6565b0381838c5af19485156109195760009561189e575b5061187594956128ea565b823b15610203576108f69260009283604051809681958294630b9dfbed60e11b84528301612102565b61187595506118b7903d806000833e6109388183610f4f565b9461186a565b6040516348f5c3ed60e01b81528690fd5b6118e7915060203d602011610981576109738183610f4f565b3861182f565b50509261001b95929194506128ea565b50303314156117f2565b6119103661163b565b61192c61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611a29575b15611a1d5760405163ecd0596160e01b815260048082015291169190602081602481865afa908115610919576000916119fe575b50156109475760405163d68f602560e01b815292600084806119bc363433600485016120c6565b038183875af1938415610919576000946119dd575b506108c99293946128ff565b6108c99394506119f7903d806000833e6109388183610f4f565b93926119d1565b611a17915060203d602011610981576109738183610f4f565b38611995565b50509061001b926128ff565b5030331415611961565b3461020357600036600319011261020357602060008051602061514e8339815191525460581b604051906001600160581b0319168152f35b346102035760a036600319011261020357611a876004356101f2565b611a926024356101f2565b6084356001600160401b03811161020357611ab1903690600401610215565b505060405163f23a6e6160e01b8152602090f35b3461020357602036600319011261020357602061029d60043561290a565b906008116102035760040190600490565b906004116102035790600490565b909291928360041161020357831161020357600401916003190190565b906018116102035760040190601490565b906014116102035790601490565b906020116102035790602090565b909291928360011161020357831161020357600101916000190190565b909291928360141161020357831161020357601401916013190190565b906016116102035790601690565b906016116102035760020190601490565b909291928360161161020357831161020357601601916015190190565b906002116102035790600290565b906009116102035760010190600890565b909291928360091161020357831161020357600901916008190190565b90602c116102035760180190601490565b90939293848311610203578411610203578101920390565b6001600160e01b03199035818116939260048110611c4457505050565b60040360031b82901b16169150565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f850602052604060002090565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f851602052604060002090565b90929060018103611d1457506001600160a01b0392611d0e9250611cfe915060581b600160581b600160f81b0316600160f81b17611c53565b5460201c6001600160a01b031690565b16151590565b60028103611d4757506001600160a01b0392611d0e9250611d3b9150610db9908416612aca565b6001600160a01b031690565b600303611d8757611d68611d63610652600193611d7695611af4565b611dd1565b01546001600160a01b031690565b6001600160a01b0390811691161490565b505050600090565b15611d9657565b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b63ffffffff60e01b166000527f7c341349a4360fdd5d5bc07e69f325dc6aaea3eb018b3e0ea7e53cc0bb0d6f3b602052604060002090565b63ffffffff60e01b166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f852602052604060002090565b908160209103126102035751611e5681610ad4565b90565b908060209392818452848401376000828201840152601f01601f1916010190565b611e56949260609260018060a01b0316825260208201528160408201520191611e59565b6040513d6000823e3d90fd5b91611eb491612d3d565b91906001600160f81b031980831615611fb6575b6001600160a01b039081611ee1611d3b611cfe87611c53565b16156103f9578316600160f81b03611f6657906020939291611f05611f2396612e6f565b604051637aa8f17760e11b8152968795869485933360048601611e7a565b039260581c165afa90811561091957600091611f3d575090565b611e56915060203d602011611f5f575b611f578183610f4f565b810190611e41565b503d611f4d565b509060081b92600160f11b611f94611f87611f8087611e09565b5460f01b90565b6001600160f01b03191690565b16611fa457611e56933390612dbe565b604051635b71057960e01b8152600490fd5b9150611fd160008051602061514e8339815191525460581b90565b91611ec8565b90604051611fe481610f18565b915463ffffffff81168352602090811c6001600160a01b031690830152565b903590601e198136030182121561020357018035906001600160401b0382116102035760200191813603831361020357565b90816020910312610203575180151581036102035790565b6001600160401b038111610edd57601f01601f191660200190565b602081830312610203578051906001600160401b038211610203570181601f8201121561020357805161209a8161204d565b926120a86040519485610f4f565b8184526020828401011161020357611e569160208085019101610c55565b916080939160018060a01b03168352602083015260606040830152806060830152806000848401376000828201840152601f01601f1916010190565b906020611e56928181520190610c78565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2565b9060405161217481610ee2565b82546001600160a01b039081168252600190930154928316602082015260589290921b6001600160f81b0319166040830152565b959294919390946121cb61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580612318575b156123085760405163ecd0596160e01b8152600480820152911695906020816024818a5afa908115610919576000916122e9575b50156109475760405163d68f602560e01b8152966000888061225b363433600485016120c6565b0381838b5af1978815610919576000986122c8575b5061227c969798613542565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906122a99060048301612102565b03925af18015610919576122bb575b50565b8061091361021392610eca565b61227c9798506122e2903d806000833e6109388183610f4f565b9796612270565b612302915060203d602011610981576109738183610f4f565b38612234565b5050919390929461021396613542565b5030331415612200565b916020611e56938181520191611e59565b6bffffffffffffffffffffffff19903581811693926014811061235557505050565b60140360031b82901b16169150565b6001810361244057506106526102139361242c61243a93600160581b600160f81b039060581b16600160f81b17946123fb6123d4611d3b6123ce6123c86123c160008051602061514e8339815191525463ffffffff9060a81c1690565b9786611b30565b90612333565b60601c90565b6123eb6123df610f70565b63ffffffff9096168652565b6001600160a01b03166020850152565b6014810135810192603482013582019160548101350193603460148401359301916034601483013592019089612b4c565b603460148201359101611af4565b90613856565b6002810361249c57509161248d61021393612472611d3b6123ce6123c860148801358801966034890135890198611b30565b928391601482013591603401906001600160a01b03166137c8565b603460148301359201906136fb565b9091906003810361251c5750612517611d3b612507610213958461250260186123ce97013582016123ce60388401358401996124db6106528787611af4565b906124fc611d3b6124ec8989611b1f565b6018880135976038019691612333565b916135b0565b611b1f565b6018860135956038019491612333565b6136fb565b9091906004810361255d57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6005810361259b57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6006036125d7576001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b604051631092ef5760e11b8152600490fd5b604051906125f682610efd565b60008252565b35906020811061260a575090565b6000199060200360031b1b1690565b91906040519061262882610efd565b819360008352116102035760206000910152565b9291926126488261204d565b916126566040519384610f4f565b829481845281830111610203578281602093846000960137010152565b9291906001840361269d576122b8935060581b600160581b600160f81b0316600160f81b17613a0e565b600284036126b8576122b893506001600160a01b03166139c4565b909190600384036126e757506122b8925080806126db6106526126e19486611af4565b93611b02565b9161396a565b91926004810361276d57506122b89261273a9161271360008051602061514e8339815191525460581b90565b61271f611cfe82611c53565b6001600160a01b03868116911614612740575b50369161263c565b906138bb565b61274c61276791611c53565b8054640100000000600160c01b031916640100000000179055565b38612732565b600581036127f0575060008051602061514e8339815191525460581b5b61279d6127978386611b3e565b906125fc565b906001600160f81b03198116600160f91b146127c5575b50506122b89261273a91369161263c565b60081b6001600160e01b031916146127de5738806127b4565b6040516313002bdd60e31b8152600490fd5b6006036125d75760008051602061514e8339815191525460581b61278a565b6040519061281c82610f18565b60006020838281520152565b61283c818060081b918160301b9160501b90565b929091600160f81b916001600160f81b0319919082168381141590816128e0575b816128d5575b816128c6575b506128bc57169081141590816128b2575b506128ab576001600160e01b0319166128a5576001600160501b0319166128a057600190565b600090565b50600090565b5050600090565b905015153861287a565b5050505050600090565b607f60f91b1415905038612869565b838114159150612863565b801515915061285d565b916128fa91610213959493613a0e565b613d5f565b906122b89291613b5a565b600711156128a057600190565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b6129656129606000356001600160e01b031916611dd1565b612167565b80516001600160a01b039190829061297e908216611d3b565b168061299657604051631cd4b64760e21b8152600490fd5b606090600181141580612ac0575b15612a7c57505080516129c3906001600160a01b03163690349061336a565b915b60408201516001600160f81b031990811680612a3c5750506020820151612a0d93906001906129fc906001600160a01b0316613dbc565b9590945b516001600160a01b031690565b92831603612a2c575b5050612a2457602081519101fd5b602081519101f35b612a3591613497565b3880612a16565b03612a6a576020820151612a0d9390600190612a62906001600160a01b03163690613449565b959094612a00565b604051632d6a6bb760e01b8152600490fd5b92809193036129c557337f00000000000000000000000000000000000000000000000000000000000000008216146129c5576040516348f5c3ed60e01b8152600490fd5b50838114156129a4565b6001600160a01b0316600090815260008051602061512e8339815191526020526040902090565b60207f6789ec0c85d6458d897a36a70129b101f8b4d84c6e218046c3107373dbcbae889160008051602061514e8339815191528160581c6001600160581b0360a81b825416179055604051906001600160581b0319168152a1565b9193909294612b67612b5d84611c53565b5463ffffffff1690565b9360008051602061514e83398151915294612b8a865463ffffffff9060a81c1690565b63ffffffff809281808416911614612cff575b50506020820180516001600160a01b0397919291612bca91891615612cf6575b5460a81c63ffffffff1690565b81612bdc610775865163ffffffff1690565b91161490811591612ccc575b50612cba57612a00612c3792612bfd87611c53565b815181546020938401516001600160c01b031990911663ffffffff9290921691909117921b640100000000600160c01b0316919091179055565b91600185841603612ca9575b5050506001600160f81b03198116600160f81b8103612c8d575060581c1691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b909350600160f91b141590506103d8576102139160081b613efb565b612cb2926136fb565b388080612c43565b604051633ab3447f60e11b8152600490fd5b9050612cda612b5d87611c53565b90612cec610775855163ffffffff1690565b9116101538612be8565b60018452612bbd565b60008051602061514e833981519152805463ffffffff60a81b19166001939093019190911660a81b63ffffffff60a81b169190911790553881612b9d565b9182358060f81c80600014612d835780600114612d7657600214612d6057600080fd5b6001600160d81b03191692600501916004190190565b5092601501916014190190565b5050600160009301916000190190565b9092608092611e569694835260018060a01b0316602083015260408201528160608201520191611e59565b909192612ddd94612dd19185858561415b565b9492939196909661424f565b509065ffffffffffff8091164210918215612e63575b5050612e5057612e31612e07602096612e6f565b60405163392dffaf60e01b8152978896879586959193916001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091611f3d575090565b506001600160e01b031995945050505050565b16421190503880612df3565b611e569060405160208101917f1547321c374afde8a591d972a084b071c594c275e36724931ff96c25f2999c838352604082015260408152612eb081610ee2565b519020614278565b90818060081b9160ff839260f01c16600214612ed057565b6001600160d81b031983169150565b9080601f8301121561020357816020611e569335910161263c565b91906101208382031261020357612f0f610f7d565b92612f1981610208565b8452602081013560208501526040810135916001600160401b03928381116102035781612f47918401612edf565b604086015260608201358381116102035781612f64918401612edf565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e08201358381116102035781612f9f918401612edf565b60e0860152610100928383013590811161020357612fbd9201612edf565b90830152565b90816020910312610203575190565b80516001600160a01b03168252611e56919061305061302061300e61012060208501516020870152604085015190806040880152860190610c78565b60608401518582036060870152610c78565b6080830151608085015260a083015160a085015260c083015160c085015260e083015184820360e0860152610c78565b916101008092015191818403910152610c78565b939291613081906040928652606060208701526060860190612fd2565b930152565b929190613081602091604086526040860190612fd2565b9290926000926130ad3682612efa565b9161010091828101916130c08383612003565b90949093600160f81b936001600160f81b03199384168514613209575b50505087160361316a575050604051639700320360e01b8152936020928592839160009183916131109160048401613086565b039260581c6001600160a01b03165af190811561091957611e5692600092613139575b50614776565b61315c91925060203d602011613163575b6131548183610f4f565b810190612fc3565b9038613133565b503d61314a565b909460081b93909291600160f01b613187611f87611f8088611e09565b166131f75760006131a86131a26020966131d299858a614576565b94614776565b604051630ccab7a160e01b8152979096889586948593926001600160e01b03191660048501613064565b03926001600160a01b03165af190811561091957611e56926000926131395750614776565b6040516314b9743f60e01b8152600490fd5b9091955061322593985061321e929450612003565b908861438c565b969192909361323885899599369161263c565b908601523880806130dd565b60008051602061514e83398151915280549163ffffffff92600a848260a81c16019084821161330e5782851691851682116132fc5760c81c84161015612cba5760008051602061514e833981519152805463ffffffff60c81b191660c89290921b63ffffffff60c81b1691909117905554818160c81c1691829160a81c16106132ca5750565b60008051602061514e833981519152805463ffffffff60a81b191660a89290921b63ffffffff60a81b16919091179055565b60405163e60fd64760e01b8152600490fd5b634e487b7160e01b600052601160045260246000fd5b60405161333081610f18565b600681526512d95c9b995b60d21b60208201529060405161335081610f18565b600a815269302e332e312d6265746160b01b602082015290565b60405163d68f602560e01b815233600482015260248101929092526060604483015260648201839052600092839183918290849060849083908084838501378181018301849052601f01601f191681010301926001600160a01b03165af19182156109195780926133da57505090565b611e5692503d8091833e6109388183610f4f565b6000928361341595936040519687958694859363d68f602560e01b85523360048601611e7a565b03926001600160a01b03165af190811561091957600091613434575090565b611e5691503d806000833e6109388183610f4f565b60009060405192808385378338925af4913d82523d6000602084013e60203d830101604052565b60009192806040519485378338925af4913d82523d6000602084013e60203d830101604052565b6001600160a01b0316803b1561020357604051630b9dfbed60e11b8152602060048201529160009183918290849082906134d5906024830190610c78565b03925af18015610919576134e65750565b61021390610eca565b634e487b7160e01b600052603260045260246000fd5b8051156135125760200190565b6134ef565b80518210156135125760209160051b010190565b908210156135125761027d9160051b810190612003565b96959192939694909460005b86811061356057505050505050509050565b806135a18a60019360051b850135613577816102a7565b61358d84613585818c613517565b51938c61352b565b90613599868b8b61352b565b949093612b4c565b0161354e565b90156135125790565b6001600160a01b039391929190848316156136f3575b6135cf90611dd1565b946135fb6135ee6135e083856135a7565b356001600160f81b03191690565b6001600160f81b03191690565b946001600160f81b0319808716806136d4575050908061361d92861693611b4c565b823b156102035761364892600092836040518096819582946306d61fe760e41b845260048401612322565b03925af1948515610919576136846136a493600193610213986136c1575b505b82546001600160a01b0319166001600160a01b03909116178255565b0180546001600160a01b0319166001600160a01b03909316929092178255565b805460ff60a01b191660589290921c60ff60a01b16919091179055565b806109136136ce92610eca565b38613666565b925092505094919403612a6a5760016136a49161368461021396613668565b8492506135c6565b6001600160a01b031691821580156137be575b6137b95760405163d60b347f60e01b8152306004820152602081602481875afa9081156109195760009161379a575b5015613765576001600160f81b03198061375a6135e084866135a7565b161461376557505050565b8061376f92611b4c565b823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6137b3915060203d602011610981576109738183610f4f565b3861373d565b505050565b506001831461370e565b919392916001600160a01b03908184161561384d575b16600081815260008051602061512e8339815191526020526040812080546001600160a01b0319166001600160a01b0390951694909417909355803b15613849576134d59394836040518096819582946306d61fe760e41b8452602060048501526024840191611e59565b8280fd5b600193506137de565b7f9d17cd6d095ac90a655405ab29f30a7ee7e88ef3974c1bf7544bf591043bb71a9160609161388882610bcd83611c8c565b600160ff198254161790556040519163ffffffff60e01b1682526001600160581b031916602082015260016040820152a1565b60407f2b82f87bf66300af618a9621d3f221edfab735f5bacb4e004cce1b62375396c3919392935a82519561391b8761390d6020820193638a91b0e360e01b8552602060248401526044830190610c78565b03601f198101895288610f4f565b6000918291828587519a61392e8c610efd565b828c525193f1943d9081613961575b6020818360009352013e81516001600160a01b0390911681528415156020820152a1565b6000915061393d565b61397a6139ad9194939294611dd1565b80546001600160a01b031981168255600190910180546001600160a01b0392831696919492169161273a9136919061263c565b5080546001600160a81b03191660ff60a01b179055565b6001600160a01b03908116600081815260008051602061512e8339815191526020526040902080546001600160a01b0319811690915590911693926122b89261273a91369161263c565b90929192613a40613a2e60008051602061514e8339815191525460581b90565b6001600160581b031980851691161490565b6127de57613a50611cfe83611c53565b93613a71613a5d84611c53565b8054640100000000600160c01b0319169055565b6001600160f81b03198316600160f81b8103613aaa57506122b89291613a9891369161263c565b9060581c6001600160a01b03166138bb565b600160f91b141590506103d8576102139160081b614811565b604051613acf81610f18565b600181528060005b602080821015613af257906060602092828501015201613ad7565b50505090565b90613b0282610f8a565b613b0f6040519182610f4f565b8281528092613b20601f1991610f8a565b019060005b828110613b3157505050565b806060602080938501015201613b25565b906040611e5692600081528160208201520190610c78565b613b6e818060081b918160301b9160501b90565b5090936001600160f81b031993600160f81b939092508416838103613bf9575050613ba0908035019060208201913590565b929093168015600014613bb8575050611e5691614a8f565b03613bc657611e56916149d2565b60405162461bcd60e51b815260206004820152600b60248201526a155b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b94959490919080613c9b575090613c0f91614926565b93909294613c1b613ac3565b971680613c40575050613c2d93614977565b613c3683613505565b526122b882613505565b03613bc657613c4e9361494e565b613c5784613505565b52610213577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b5160405191829182613b42565b0390a1565b919593918203613bc657613cd290613ccc613cb4613ac3565b9780613cc66123ce6123c88387611b30565b93611b69565b91613470565b613cde87959295613505565b5216908103613d1c575015613cef57565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b613bc6576102135760405162461bcd60e51b815260206004820152601360248201527211195b1959d85d1958d85b1b0819985a5b1959606a1b6044820152606490fd5b6001600160a01b03169081158015613db2575b6137b9578215613512576001600160f81b03198135811614613d9357505050565b82600111610203576122b89261273a913691600019019060010161263c565b5060018214613d72565b600080604092835136810185523683823784516014810186523360601b90528260143601925af1918151913d83523d6000602085013e60203d8401019052565b8054906000906000815582613e1057505050565b6000526020600020918201915b828110613e2957505050565b818155600101613e1d565b6001600160501b03199035818116939260168110613e5157505050565b60160360031b82901b16169150565b80548210156135125760005260206000200190600090565b805468010000000000000000811015610edd57613e9a91600182018155613e60565b819291549060031b9160501c821b9160018060b01b03901b1916179055565b9092809260209483528483013701016000815290565b6001600160f01b03199035818116939260028110613eec57505050565b60020360031b82901b16169150565b90803501906020808301923560fe81118015614153575b61414157600180613f2285611e09565b0154614128575b60001982019260005b84811061404b5750614010959461401e949093613ff49350613fed9250613f8d613fde613fc5611f87613fbf613fb987878e613fb48e613f85611d3b6123ce6123c8613f7f89898961352b565b90611b94565b9a8b91611e09565b805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b61352b565b90611bc2565b90613ecf565b613fce88611e09565b9060f01c61ffff19825416179055565b6001600160a01b03169661352b565b8091611ba5565b6040519586939092906001600160e01b03191660208501613eb9565b03601f198101845283610f4f565b803b15610203576040516306d61fe760e41b81529160009183918290849082906122a99060048301612102565b6140a2611d3b611d3b6123ce6123c8613f7f868a8e613fb48f61406e8e91611e09565b0161409c61408f61408961408388888861352b565b90611b86565b90613e34565b6001600160501b03191690565b90613e78565b906140b1613fed82878b61352b565b906140d260409161401083519485928d63ffffffff60e01b168a8501613eb9565b833b156102035760009384926140fc92519586809481936306d61fe760e41b835260048301612102565b03925af1918215610919578492614115575b5001613f32565b8061091361412292610eca565b3861410e565b61413c600161413686611e09565b01613dfc565b613f29565b60405163b62d956d60e01b8152600490fd5b508015613f12565b84846141de926141c997969498956040519161417683610f33565b6141d860009b8c92838652836020870152604086019d8e52606086019c8d918583528560808901528560a0890152606060c089015260e088019286845261010089019687529063ffffffff60e01b169052565b6001600160a01b039091169052565b52614b28565b60ff806141f76141f16135e087866135a7565b60f81c90565b160361423d57614226614211846142219561423694611b4c565b9490955163ffffffff60e01b1690565b611e09565b5460101c6001600160a01b031690565b9351929190565b60405163b32eeb6960e01b8152600490fd5b8065ffffffffffff91828160a01c16928315600114614270575b5060d01c92565b925038614269565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141615614305575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000006040820152466060820152306080820152206142e6565b9192909261439861280f565b906143a39085611b30565b6143ac91612333565b60601c6020820181905260008051602061514e8339815191525460a81c63ffffffff1680835260349560148082013582018089019791959294919360548601358601808b019490880135939092878c01358801808a013593908d0192918a0135918891908d84369061441d9261263c565b80519060200120913661443190888861263c565b8051906020012036614444908b8d61263c565b8051602091820120604080517fb17ab1224aca0d4255ef8161acaf2ac121b8faa32a4b2258c912cc5f8308c5059381019384526001600160581b0319989098169088015263ffffffff9390931660608701526001600160a01b0393909316608086015260a085019390935260c084019290925260e080840192909252908252906144d061010082610f4f565b5190206144dc90614278565b607489013589018d8b82013591016144f392614d7a565b9a6144fe9488612b4c565b6145088183614f17565b61451191611af4565b61451a91611c27565b61452391613856565b6094810135019293830192013590565b6001600160c01b0319903581811693926008811061455057505050565b60080360031b82901b16169150565b604090611e56939281528160208201520190612fd2565b60009493916001868161458885611e09565b016000835b6145d5575b5050505060ff806145a96141f16135e087896135a7565b160361423d576101006145cd6145c68561422696611e5698611b4c565b369161263c565b910152611e09565b819796975481101561476e576146066145fe6145f18385613e60565b90549060031b1c60501b90565b908160501c90565b98909761462261461c6141f16135e085856135a7565b60ff1690565b80840361473d575090818161465b61464f6146496146438461467898611bd0565b90614533565b60c01c90565b6001600160401b031690565b6009019161466d6145c6848484611be1565b6101008b0152611c0f565b989098975b600160f01b1615614692575b5083018361458d565b99866146cf929b60018060a01b036040918983518092633894f6e760e11b8252818b868260209c8d9760049c63ffffffff60e01b168d840161455f565b0393165af195861561091957889661471e575b505084166147045750506146fa859493928592614776565b9a91929350614689565b51631f24c1fb60e11b81529081018c815281906020010390fd5b614735929650803d10613163576131548183610f4f565b9338806146e2565b909991989083111561475b57604051630760bdcf60e11b8152600490fd5b6147636125e9565b61010088015261467d565b969596614592565b6001600160a01b03818318811615606083811b848601821b9081149186901b1417176001146147a757505050600190565b65ffffffffffff60a01b80831693906001600160d01b031984811691908316908615614809575b8381168015614802575b8781109088180280881897146147fa575b508181119082180218921716171790565b9550386147e9565b50806147d8565b9550856147ce565b9190803501916020906020840193359061482a81611e09565b9260019060018501906001825401850361491457906000835b6148a6575b505050506148959161489082613ff4610213979861486d600161413661401098611e09565b87546148849060101c6001600160a01b0316611d3b565b9460001981019161352b565b6138bb565b5080546001600160b01b0319169055565b815481101561490f579083826149056140108c6148f78a6148dc868e6148d46145fe6145f18c9f9e8e613e60565b96905061352b565b6040519586939092906001600160e01b0319168c8501613eb9565b6001600160a01b03166138bb565b5001909192614843565b614848565b60405163013dcc8d60e31b8152600490fd5b908060141161020357813560601c928160341161020357601483013592603401916033190190565b906000928491604051958692833738935af1913d82523d6000602084013e60203d830101604052565b9092600092819594604051968792833738935af1156149a6573d82523d6000602084013e60203d830101604052565b503d6000823e3d90fd5b91908110156135125760051b81013590605e1981360301821215610203570190565b9190916149de83613af8565b9260005b8181106149ee57505050565b806149fc60019284866149b0565b8035614a07816101f2565b614a2860208093604093614a1d85830183612003565b93909201359061494e565b614a32858b613517565b5215614a41575b5050016149e2565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb791614a85614a70858b613517565b51838051948594888652850152830190610c78565b0390a13880614a39565b919091614a9b83613af8565b9260005b818110614aab57505050565b80614ae16020614abe60019486886149b0565b8035614ac9816101f2565b614ad66040830183612003565b939092013590614977565b614aeb8288613517565b52614af68187613517565b5001614a9f565b9092608092611e569594835260018060a01b0316602083015260408201528160608201520190610c78565b9190606083016001936001614b47614221845163ffffffff60e01b1690565b01936000936000958054965b878110614b6557505050505050505050565b80614b776145fe6145f18c9486613e60565b6001600160a01b031660a0880190815260808801959091614ba0906001600160f01b0319168752565b614bba614bb36141f16135e08a856135a7565b60ff168952565b614bc861461c895160ff1690565b808403614d425750868181614bed61464f614649614643614c419c9d614c1498611bd0565b60208c018181528c60c0614c096145c660099586018789611be1565b910152510191611c0f565b959095965b51600160f11b90614c33906001600160f01b031916611f87565b166001600160f01b03191690565b15614c4e575b5001614b53565b51909150614c64906001600160a01b0316611d3b565b8651614c8890614c7b906001600160e01b03191681565b6001600160e01b03191690565b60e08701519091906001600160a01b031691614ccd6101008901519360c08a01516040948551808095819463184dfdbb60e11b835260209a8b9760049a8b8601614afd565b03915afa938415610919578b94614d23575b50506001600160a01b038316614d085750860180518b9392614d0091614776565b905238614c47565b9051631f24c1fb60e11b815290810183815281906020010390fd5b614d3a929450803d10613163576131548183610f4f565b913880614cdf565b839196945010600014614d6157604051630760bdcf60e11b8152600490fd5b614c418b93614d703688612619565b60c08a0152614c19565b60008051602061514e8339815191525460009493929060581b916001600160f81b03198316600160f81b8103614e3d5750604051637aa8f17760e11b8152936020938593909284928392614dd2923060048601611e7a565b039160581c6001600160a01b03165afa90811561091957600091614e1e575b505b6001600160e01b0319166374eca2c160e11b01614e0c57565b6040516362467c7760e11b8152600490fd5b614e37915060203d602011611f5f57611f578183610f4f565b38614df1565b919550929190600160f91b036103d857602091614e609160081b9584308861415b565b60405163392dffaf60e01b81529297929586949385938493614e9393909230906001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091614eb5575b50614df3565b614ece915060203d602011611f5f57611f578183610f4f565b38614eaf565b15614edb57565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073656c6563746f724461746160601b6044820152606490fd5b614f246106528383611af4565b906004831015614f3357505050565b602c83106150c357614f4e611d3b6123ce6123c88685611b1f565b602c8201358201602c604c820191013591604c840135840194614f88614f7a6135ee6135e087876135a7565b6001600160f81b0319161590565b80615032575b94614fcf61251795611d3b95614fd4956102139b956123ce9a614fe4575b614fbf611d3b6123ce6123c88a8a611bfe565b916001600160a01b0316906135b0565b611bfe565b602c86013595604c019491612333565b61502d606c8701358701615027602c604c83019201358061500e611d3b6123ce6123c88488611b30565b93615022856001600160a01b038a166150d1565b611b69565b916136fb565b614fac565b5091939092956040519163ecd0596160e01b83526020838061505c60048201906002602083019252565b03816001600160a01b0389165afa92831561091957610213986123ce9761251797611d3b97614fd497614fcf956000916150a4575b50959a50959b5095509550955050614f8e565b6150bd915060203d602011610981576109738183610f4f565b38615091565b505060046102139114614ed4565b61021391906001600160a01b039081831615615124575b1660005260008051602061512e83398151915260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b600192506150e856fe1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b867bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032", + "nonce": "0x42", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionType": "CREATE2", + "contractName": "KernelFactory", + "contractAddress": "0x38ff1127ddbae72287d4c96cb419c08f88583f74", + "function": null, + "arguments": [ + "0xcB0441B80fCC3b0f92Fd56646Df2aF318AbcCEC4" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x600f4", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060a034607357601f61046c38819003918201601f19168301916001600160401b03831184841017607857808492602094604052833981010312607357516001600160a01b03811681036073576080526040516103dd908161008f823960805181818160d10152818161023401526102f00152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600490600436101561001757600080fd5b600092833560e01c90816348aac39214610267575080635c60da1b1461021f5763ea6d13ac1461004657600080fd5b61004f36610352565b94919083519560209661007a86828a81019486888737868201908c820152038a8101845201826103a5565b5190209483958551917fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076875261600989527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f97602192605f60212060358601523060581b855260ff855380601586015260558520993415948b3b156101fe57505050506001916101f85785388180348c5af1156101ed57505b818652846060521561016b575b505091516001600160a01b0390931683525050f35b8082859493859483378101838152039082875af1903d156101e7573d9067ffffffffffffffff82116101d3578351916101ad601f8201601f19168801846103a5565b8252853d92013e5b156101c35738808080610156565b5163487e630960e11b8152600490fd5b634e487b7160e01b81526041600452602490fd5b506101b5565b63b12d13eb8652601cfd5b50610149565b91939a5091935034f59687156102145750610149565b63301164258652601cfd5b838234610263578160031936011261026357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b848334610263578260209361029d8361027f36610352565b90808a879498019788378201908982015203878101845201826103a5565b51902081517fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076835261600985527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f6021209083528360605260ff84536035523060601b6001526015526055822091603552519060018060a01b03168152f35b9060406003198301126103a05760043567ffffffffffffffff928382116103a057806023830112156103a05781600401359384116103a057602484830101116103a057602401919060243590565b600080fd5b90601f8019910116810190811067ffffffffffffffff8211176103c757604052565b634e487b7160e01b600052604160045260246000fd000000000000000000000000cb0441b80fcc3b0f92fd56646df2af318abccec4", + "nonce": "0x43", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "function": "approveFactory(address,bool)", + "arguments": [ + "0x38fF1127Ddbae72287D4C96cB419C08f88583f74", + "true" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "gas": "0x108d1", + "value": "0x0", + "input": "0x6e7dbabb00000000000000000000000038ff1127ddbae72287d4c96cb419c08f88583f740000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x44", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xf99ee0", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionIndex": "0x64", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x461b12", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0xcb0441b80fcc3b0f92fd56646df2af318abccec4" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xfdba13", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionIndex": "0x65", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x41b33", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0x38ff1127ddbae72287d4c96cb419c08f88583f74" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x11972af", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionIndex": "0x67", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0xb513", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714676402, + "chain": 11155111, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployKernel.s.sol/11155111/run-1714676485.json b/broadcast/DeployKernel.s.sol/11155111/run-1714676485.json new file mode 100644 index 00000000..2894b625 --- /dev/null +++ b/broadcast/DeployKernel.s.sol/11155111/run-1714676485.json @@ -0,0 +1,124 @@ +{ + "transactions": [ + { + "hash": "0x952bfd07525fd91a68340bf2e3cac2f78b7ae26109c0bdfe787953c56e51c6e8", + "transactionType": "CREATE2", + "contractName": "Kernel", + "contractAddress": "0xdc4cfd181a721a047ee48a55393b25258b27ecb0", + "function": null, + "arguments": [ + "0x0000000071727De22E5E9d8BAf0edAc6f37da032" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x6678bb", + "value": "0x0", + "input": "0x0000000000000000000000000000000000000000000000000000000000000000610140346101fd57601f61539d38819003918201601f191683019291906001600160401b038411838510176102025781602092849260409687528339810103126101fd57516001600160a01b03811681036101fd57306080524660a05260a0825161006981610218565b600681526005602082016512d95c9b995b60d21b81526020865161008c81610218565b838152019264302e332e3160d81b845251902091208160c0528060e0528451917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260208301528482015246606082015230608082015220916101009283526101209182528051602081019063deadbeef60e01b82526004815261011081610218565b5190516001600160581b0319918282169190601581106101e8575b505090507f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f9060581c60018060a81b031982541617905551906151699283610234843960805183614296015260a051836142b9015260c0518361432b015260e051836143510152518261427501525181818161050301528181610827015281816109dd01528181610d74015281816110d901528181611241015281816112a1015281816117c901528181611938015281816121d70152612a880152f35b8391925060150360031b1b161680388061012b565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102025760405256fe6080604052600436101561001d575b366129485761001b612917565b005b60003560e01c8063112d3a7d146101ed57806312af322c146101e8578063150b7a02146101e35780631626ba7e146101de57806319822f7c146101d95780631f1b92e3146101d45780633659cfe6146101cf57806357b3a5f4146101ca5780636e6fa0c6146101c5578063721e67f4146101c057806384b0196e146101bb5780638dd7712f146101b657806390ef8862146101b15780639198bdf5146101ac5780639517e29f146101a75780639cfd7cff146101a2578063a65d69d41461019d578063a71763a814610198578063adb610a314610193578063b8afe17d1461018e578063bc197c8114610189578063c3e5897814610184578063d03c79141461017f578063d691c9641461017a578063e6f3d50a14610175578063e9ae5c5314610170578063f1f7f0f91461016b578063f23a6e61146101665763f2dc691d0361000e57611ac5565b611a6b565b611a33565b611907565b61174e565b61166a565b61161d565b611541565b61143a565b6113d0565b61139c565b611270565b61122b565b6111d4565b6110a8565b610fa1565b610e50565b610d3f565b610c9d565b610bf1565b610b94565b610ae6565b61099d565b6107e5565b6104c5565b610465565b61040b565b6102b9565b610281565b6001600160a01b0381160361020357565b600080fd5b3590610213826101f2565b565b9181601f84011215610203578235916001600160401b038311610203576020838186019501011161020357565b6060600319820112610203576004359160243561025e816101f2565b91604435906001600160401b0382116102035761027d91600401610215565b9091565b3461020357602061029d61029436610242565b92919091611cc5565b6040519015158152f35b6001600160581b031981160361020357565b34610203576080366003190112610203576004356102d6816102a7565b6024356102e2816101f2565b6001600160401b039060443582811161020357610303903690600401610215565b90926064359081116102035761031d903690600401610215565b9390926001600160581b031961035d816103566103496000805160206151498339815191525460581b90565b6001600160581b03191690565b1615611d8f565b8616156103f9576001600160f81b03198616600160f81b81141590816103ea575b506103d8578561039061001b97612af1565b6103b061039b610f70565b60018152926001600160a01b03166020840152565b600080516020615149833981519152805463ffffffff60a81b1916600160a81b179055612b4c565b6040516361c4e91b60e11b8152600490fd5b600160f91b141590503861037e565b604051631a0a9b9f60e21b8152600490fd5b34610203576080366003190112610203576104276004356101f2565b6104326024356101f2565b6064356001600160401b03811161020357610451903690600401610215565b5050604051630a85bd0160e11b8152602090f35b34610203576040366003190112610203576024356001600160401b038111610203576104a361049a6020923690600401610215565b90600435611eaa565b6040516001600160e01b03199091168152f35b90816101209103126102035790565b606036600319011261020357600480356001600160401b038111610203576104f090369083016104b6565b60243590604435906001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036107b05780849261053a6020830135612eb8565b6001600160f81b031990911615959093909186610786575b908461055e939261309d565b9561057061056b84611c53565b611fd7565b9415948580610744575b61073357602001516001600160a01b0316918216908115610722576001926105af6105ce926000526000602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b036106815782610623575b5050610612576105fc9250805b610600575b506040519081529081906020820190565b0390f35b3490349034903490335af150386105eb565b604051631a0a9b9f60e21b81528390fd5b61067a92506106769161065861065261064c61064161066f95611c8c565b936060810190612003565b90611af4565b90611c27565b63ffffffff60e01b16600052602052604060002090565b5460ff1690565b1590565b38806105d9565b829192916106ef575b506106de5761064c8160606106a0930190612003565b638dd7712f60e01b916001600160e01b0319916106bc91611c27565b16036106cd576105fc9250806105e6565b60405163dbbb044b60e01b81528390fd5b604051631a0a9b9f60e21b81528490fd5b61071c915061066f61070361067692611c8c565b6106586106526107166060880188612003565b90611ae3565b3861068a565b604051631a0a9b9f60e21b81528990fd5b604051633ab3447f60e11b81528990fd5b50805163ffffffff1663ffffffff61077e6107756000805160206151498339815191525463ffffffff9060c81c1690565b63ffffffff1690565b91161061057a565b93509061055e916107a66000805160206151498339815191525460581b90565b9490919250610552565b6040516348f5c3ed60e01b81528590fd5b6004359063ffffffff8216820361020357565b359063ffffffff8216820361020357565b6020366003190112610203576107f96107c1565b61081b6108156000805160206151498339815191525460581b90565b60581c90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610993575b156109885760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610959575b50156109475760405163d68f602560e01b815291600083806108aa363433600485016120c6565b038183865af19283156109195760009361091e575b506108c990613244565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906108f69060048301612102565b03925af180156109195761090657005b8061091361001b92610eca565b80610c4a565b611e9e565b6108c9919350610940903d806000833e6109388183610f4f565b810190612068565b92906108bf565b6040516348f5c3ed60e01b8152600490fd5b61097b915060203d602011610981575b6109738183610f4f565b810190612035565b38610883565b503d610969565b505061001b90613244565b5030331415610850565b6020366003190112610203576004356109b5816101f2565b6109d16108156000805160206151498339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610aca575b15610abf5760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610aa0575b50156109475760405163d68f602560e01b81529160008380610a60363433600485016120c6565b038183865af192831561091957600093610a7f575b506108c990612113565b6108c9919350610a99903d806000833e6109388183610f4f565b9290610a75565b610ab9915060203d602011610981576109738183610f4f565b38610a39565b505061001b90612113565b5030331415610a06565b6001600160e01b031981160361020357565b34610203576020366003190112610203576105fc610b28600435610b0981610ad4565b600060408051610b1881610ee2565b8281528260208201520152611dd1565b60405190610b3582610ee2565b80546001600160a01b0390811680845260019092015480821660208086019182526001600160f81b031960589390931b831660409687019081528651958652915190931692840192909252905116918101919091529081906060820190565b3461020357604036600319011261020357602060ff610be5600435610bb8816102a7565b610bcd60243591610bc883610ad4565b611c8c565b9063ffffffff60e01b16600052602052604060002090565b54166040519015158152f35b34610203576020366003190112610203576020610c27600435610c13816101f2565b6000604051610c2181610efd565b52612aca565b60405190610c3482610efd565b546001600160a01b031690819052604051908152f35b600091031261020357565b60005b838110610c685750506000910152565b8181015183820152602001610c58565b90602091610c9181518092818552858086019101610c55565b601f01601f1916010190565b3461020357600036600319011261020357610cec610cb9613324565b90604051928392600f60f81b8452610cde60209360e0602087015260e0860190610c78565b908482036040860152610c78565b90466060840152306080840152600060a084015282820360c0840152602060605192838152019160809160005b828110610d2857505050500390f35b835185528695509381019392810192600101610d19565b6040366003190112610203576004356001600160401b03811161020357610d6a9036906004016104b6565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610947576060906001610dc6610db96024356000526000602052604060002090565b546001600160a01b031690565b91821614159283610e20575b610ded610de6826060610df4940190612003565b8091611b02565b903061346b565b509215610e055761001b9250613492565b505015610e0e57005b60405163f21e646b60e01b8152600490fd5b9150610df4610ded610de6610e46610e3e610de66060880188612003565b9034876133e9565b9492505050610dd2565b3461020357600036600319011261020357602063ffffffff6000805160206151498339815191525460c81c16604051908152f35b9181601f84011215610203578235916001600160401b038311610203576020808501948460051b01011161020357565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610edd57604052565b610eb4565b606081019081106001600160401b03821117610edd57604052565b602081019081106001600160401b03821117610edd57604052565b604081019081106001600160401b03821117610edd57604052565b61012081019081106001600160401b03821117610edd57604052565b90601f801991011681019081106001600160401b03821117610edd57604052565b6040519061021382610f18565b6040519061021382610f33565b6001600160401b038111610edd5760051b60200190565b6080366003190112610203576001600160401b0360043581811161020357610fcd903690600401610e84565b906024358381116102035736602382011215610203578060040135610ff181610f8a565b916040916110026040519485610f4f565b8084526020906024602086019160061b8401019236841161020357602401905b83821061106a57505050505060443584811161020357611046903690600401610e84565b916064359586116102035761106261001b963690600401610e84565b9590946121a8565b848236031261020357828591825161108181610f18565b61108a856107d4565b815282850135611099816101f2565b83820152815201910190611022565b6110b136610242565b6110cd6108156000805160206151498339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806111ca575b156111be5760405163ecd0596160e01b815260048082015291169290602081602481875afa9081156109195760009161119f575b50156109475760405163d68f602560e01b8152936000858061115d363433600485016120c6565b038183885af19485156109195760009561117e575b506108c9939495612364565b6108c9949550611198903d806000833e6109388183610f4f565b9493611172565b6111b8915060203d602011610981576109738183610f4f565b38611136565b50509161001b93612364565b5030331415611102565b34610203576000366003190112610203576105fc6040516111f481610f18565b60168152756b65726e656c2e616476616e6365642e76302e332e3160501b6020820152604051918291602083526020830190610c78565b34610203576000366003190112610203576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b61127936610242565b6112956108156000805160206151498339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611392575b156113865760405163ecd0596160e01b815260048082015291169290602081602481875afa90811561091957600091611367575b50156109475760405163d68f602560e01b81529360008580611325363433600485016120c6565b038183885af194851561091957600095611346575b506108c9939495612673565b6108c9949550611360903d806000833e6109388183610f4f565b949361133a565b611380915060203d602011610981576109738183610f4f565b386112fe565b50509161001b93612673565b50303314156112ca565b3461020357600036600319011261020357602063ffffffff6000805160206151498339815191525460a81c16604051908152f35b346102035760203660031901126102035760406114006004356113f2816102a7565b6113fa61280f565b50611c53565b602082519161140e83610f18565b5463ffffffff81169283815260018060a01b03928391019160201c168152835192835251166020820152f35b346102035760a0366003190112610203576114566004356101f2565b6114616024356101f2565b6001600160401b0360443581811161020357611481903690600401610e84565b50506064358181116102035761149b903690600401610e84565b5050608435908111610203576114b5903690600401610215565b505060405163bc197c8160e01b8152602090f35b602080825282516001600160f01b03191681830152808301516001600160a01b03166040808401919091529092015160608083015280516080830181905260a090920192908101919060005b828110611523575050505090565b83516001600160501b03191685529381019392810192600101611515565b34610203576020806003193601126102035760043561155f81610ad4565b611584604091606083805161157381610ee2565b600081526000878201520152611e09565b9080519161159183610ee2565b805460f081901b6001600160f01b031916845260101c6001600160a01b031684840152815160019182018054808352600091825286822083880197939490939092905b8282106115fb576105fc8888886115ed818e0382610f4f565b8183015251918291826114c9565b845460501b6001600160501b03191689529788019793830193908301906115d4565b3461020357602036600319011261020357602061029d600435612828565b9060406003198301126102035760043591602435906001600160401b0382116102035761027d91600401610215565b6116733661163b565b916001600160a01b0361168533612aca565b541690811561173c57606060019460018414159485611725575b6116a99293613b55565b92611715575b5050906040519060208083016020845284518091526040840191602060408360051b8701019601926000905b8382106116e85786880387f35b90919293948380611704839a603f198b82030186528951610c78565b9997019594939190910191016116db565b61171e91613492565b38806116af565b6116a99250611735363487613365565b925061169f565b60405163710c949760e01b8152600490fd5b6060366003190112610203576004803590611768826102a7565b6001600160401b0391602435838111610203576117889036908401610215565b93604435908111610203576117a09036908501610215565b906117bd6108156000805160206151498339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806118fd575b156118ed57169560405163ecd0596160e01b81526020818061181b8a8201906004602083019252565b03818b5afa908115610919576000916118ce575b50156118bd5760405163d68f602560e01b815293600085806118553634338d85016120c6565b0381838c5af19485156109195760009561189e575b5061187594956128ea565b823b15610203576108f69260009283604051809681958294630b9dfbed60e11b84528301612102565b61187595506118b7903d806000833e6109388183610f4f565b9461186a565b6040516348f5c3ed60e01b81528690fd5b6118e7915060203d602011610981576109738183610f4f565b3861182f565b50509261001b95929194506128ea565b50303314156117f2565b6119103661163b565b61192c6108156000805160206151498339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611a29575b15611a1d5760405163ecd0596160e01b815260048082015291169190602081602481865afa908115610919576000916119fe575b50156109475760405163d68f602560e01b815292600084806119bc363433600485016120c6565b038183875af1938415610919576000946119dd575b506108c99293946128ff565b6108c99394506119f7903d806000833e6109388183610f4f565b93926119d1565b611a17915060203d602011610981576109738183610f4f565b38611995565b50509061001b926128ff565b5030331415611961565b346102035760003660031901126102035760206000805160206151498339815191525460581b604051906001600160581b0319168152f35b346102035760a036600319011261020357611a876004356101f2565b611a926024356101f2565b6084356001600160401b03811161020357611ab1903690600401610215565b505060405163f23a6e6160e01b8152602090f35b3461020357602036600319011261020357602061029d60043561290a565b906008116102035760040190600490565b906004116102035790600490565b909291928360041161020357831161020357600401916003190190565b906018116102035760040190601490565b906014116102035790601490565b906020116102035790602090565b909291928360011161020357831161020357600101916000190190565b909291928360141161020357831161020357601401916013190190565b906016116102035790601690565b906016116102035760020190601490565b909291928360161161020357831161020357601601916015190190565b906002116102035790600290565b906009116102035760010190600890565b909291928360091161020357831161020357600901916008190190565b90602c116102035760180190601490565b90939293848311610203578411610203578101920390565b6001600160e01b03199035818116939260048110611c4457505050565b60040360031b82901b16169150565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f850602052604060002090565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f851602052604060002090565b90929060018103611d1457506001600160a01b0392611d0e9250611cfe915060581b600160581b600160f81b0316600160f81b17611c53565b5460201c6001600160a01b031690565b16151590565b60028103611d4757506001600160a01b0392611d0e9250611d3b9150610db9908416612aca565b6001600160a01b031690565b600303611d8757611d68611d63610652600193611d7695611af4565b611dd1565b01546001600160a01b031690565b6001600160a01b0390811691161490565b505050600090565b15611d9657565b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b63ffffffff60e01b166000527f7c341349a4360fdd5d5bc07e69f325dc6aaea3eb018b3e0ea7e53cc0bb0d6f3b602052604060002090565b63ffffffff60e01b166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f852602052604060002090565b908160209103126102035751611e5681610ad4565b90565b908060209392818452848401376000828201840152601f01601f1916010190565b611e56949260609260018060a01b0316825260208201528160408201520191611e59565b6040513d6000823e3d90fd5b91611eb491612d3d565b91906001600160f81b031980831615611fb6575b6001600160a01b039081611ee1611d3b611cfe87611c53565b16156103f9578316600160f81b03611f6657906020939291611f05611f2396612e6f565b604051637aa8f17760e11b8152968795869485933360048601611e7a565b039260581c165afa90811561091957600091611f3d575090565b611e56915060203d602011611f5f575b611f578183610f4f565b810190611e41565b503d611f4d565b509060081b92600160f11b611f94611f87611f8087611e09565b5460f01b90565b6001600160f01b03191690565b16611fa457611e56933390612dbe565b604051635b71057960e01b8152600490fd5b9150611fd16000805160206151498339815191525460581b90565b91611ec8565b90604051611fe481610f18565b915463ffffffff81168352602090811c6001600160a01b031690830152565b903590601e198136030182121561020357018035906001600160401b0382116102035760200191813603831361020357565b90816020910312610203575180151581036102035790565b6001600160401b038111610edd57601f01601f191660200190565b602081830312610203578051906001600160401b038211610203570181601f8201121561020357805161209a8161204d565b926120a86040519485610f4f565b8184526020828401011161020357611e569160208085019101610c55565b916080939160018060a01b03168352602083015260606040830152806060830152806000848401376000828201840152601f01601f1916010190565b906020611e56928181520190610c78565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2565b9060405161217481610ee2565b82546001600160a01b039081168252600190930154928316602082015260589290921b6001600160f81b0319166040830152565b959294919390946121cb6108156000805160206151498339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580612318575b156123085760405163ecd0596160e01b8152600480820152911695906020816024818a5afa908115610919576000916122e9575b50156109475760405163d68f602560e01b8152966000888061225b363433600485016120c6565b0381838b5af1978815610919576000986122c8575b5061227c96979861353d565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906122a99060048301612102565b03925af18015610919576122bb575b50565b8061091361021392610eca565b61227c9798506122e2903d806000833e6109388183610f4f565b9796612270565b612302915060203d602011610981576109738183610f4f565b38612234565b505091939092946102139661353d565b5030331415612200565b916020611e56938181520191611e59565b6bffffffffffffffffffffffff19903581811693926014811061235557505050565b60140360031b82901b16169150565b6001810361244057506106526102139361242c61243a93600160581b600160f81b039060581b16600160f81b17946123fb6123d4611d3b6123ce6123c86123c16000805160206151498339815191525463ffffffff9060a81c1690565b9786611b30565b90612333565b60601c90565b6123eb6123df610f70565b63ffffffff9096168652565b6001600160a01b03166020850152565b6014810135810192603482013582019160548101350193603460148401359301916034601483013592019089612b4c565b603460148201359101611af4565b90613851565b6002810361249c57509161248d61021393612472611d3b6123ce6123c860148801358801966034890135890198611b30565b928391601482013591603401906001600160a01b03166137c3565b603460148301359201906136f6565b9091906003810361251c5750612517611d3b612507610213958461250260186123ce97013582016123ce60388401358401996124db6106528787611af4565b906124fc611d3b6124ec8989611b1f565b6018880135976038019691612333565b916135ab565b611b1f565b6018860135956038019491612333565b6136f6565b9091906004810361255d57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6005810361259b57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6006036125d7576001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b604051631092ef5760e11b8152600490fd5b604051906125f682610efd565b60008252565b35906020811061260a575090565b6000199060200360031b1b1690565b91906040519061262882610efd565b819360008352116102035760206000910152565b9291926126488261204d565b916126566040519384610f4f565b829481845281830111610203578281602093846000960137010152565b9291906001840361269d576122b8935060581b600160581b600160f81b0316600160f81b17613a09565b600284036126b8576122b893506001600160a01b03166139bf565b909190600384036126e757506122b8925080806126db6106526126e19486611af4565b93611b02565b91613965565b91926004810361276d57506122b89261273a916127136000805160206151498339815191525460581b90565b61271f611cfe82611c53565b6001600160a01b03868116911614612740575b50369161263c565b906138b6565b61274c61276791611c53565b8054640100000000600160c01b031916640100000000179055565b38612732565b600581036127f057506000805160206151498339815191525460581b5b61279d6127978386611b3e565b906125fc565b906001600160f81b03198116600160f91b146127c5575b50506122b89261273a91369161263c565b60081b6001600160e01b031916146127de5738806127b4565b6040516313002bdd60e31b8152600490fd5b6006036125d7576000805160206151498339815191525460581b61278a565b6040519061281c82610f18565b60006020838281520152565b61283c818060081b918160301b9160501b90565b929091600160f81b916001600160f81b0319919082168381141590816128e0575b816128d5575b816128c6575b506128bc57169081141590816128b2575b506128ab576001600160e01b0319166128a5576001600160501b0319166128a057600190565b600090565b50600090565b5050600090565b905015153861287a565b5050505050600090565b607f60f91b1415905038612869565b838114159150612863565b801515915061285d565b916128fa91610213959493613a09565b613d5a565b906122b89291613b55565b600711156128a057600190565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b6129656129606000356001600160e01b031916611dd1565b612167565b80516001600160a01b039190829061297e908216611d3b565b168061299657604051631cd4b64760e21b8152600490fd5b606090600181141580612ac0575b15612a7c57505080516129c3906001600160a01b031636903490613365565b915b60408201516001600160f81b031990811680612a3c5750506020820151612a0d93906001906129fc906001600160a01b0316613db7565b9590945b516001600160a01b031690565b92831603612a2c575b5050612a2457602081519101fd5b602081519101f35b612a3591613492565b3880612a16565b03612a6a576020820151612a0d9390600190612a62906001600160a01b03163690613444565b959094612a00565b604051632d6a6bb760e01b8152600490fd5b92809193036129c557337f00000000000000000000000000000000000000000000000000000000000000008216146129c5576040516348f5c3ed60e01b8152600490fd5b50838114156129a4565b6001600160a01b031660009081526000805160206151298339815191526020526040902090565b60207f6789ec0c85d6458d897a36a70129b101f8b4d84c6e218046c3107373dbcbae88916000805160206151498339815191528160581c6001600160581b0360a81b825416179055604051906001600160581b0319168152a1565b9193909294612b67612b5d84611c53565b5463ffffffff1690565b9360008051602061514983398151915294612b8a865463ffffffff9060a81c1690565b63ffffffff809281808416911614612cff575b50506020820180516001600160a01b0397919291612bca91891615612cf6575b5460a81c63ffffffff1690565b81612bdc610775865163ffffffff1690565b91161490811591612ccc575b50612cba57612a00612c3792612bfd87611c53565b815181546020938401516001600160c01b031990911663ffffffff9290921691909117921b640100000000600160c01b0316919091179055565b91600185841603612ca9575b5050506001600160f81b03198116600160f81b8103612c8d575060581c1691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b909350600160f91b141590506103d8576102139160081b613ef6565b612cb2926136f6565b388080612c43565b604051633ab3447f60e11b8152600490fd5b9050612cda612b5d87611c53565b90612cec610775855163ffffffff1690565b9116101538612be8565b60018452612bbd565b600080516020615149833981519152805463ffffffff60a81b19166001939093019190911660a81b63ffffffff60a81b169190911790553881612b9d565b9182358060f81c80600014612d835780600114612d7657600214612d6057600080fd5b6001600160d81b03191692600501916004190190565b5092601501916014190190565b5050600160009301916000190190565b9092608092611e569694835260018060a01b0316602083015260408201528160608201520191611e59565b909192612ddd94612dd191858585614156565b9492939196909661424a565b509065ffffffffffff8091164210918215612e63575b5050612e5057612e31612e07602096612e6f565b60405163392dffaf60e01b8152978896879586959193916001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091611f3d575090565b506001600160e01b031995945050505050565b16421190503880612df3565b611e569060405160208101917f1547321c374afde8a591d972a084b071c594c275e36724931ff96c25f2999c838352604082015260408152612eb081610ee2565b519020614273565b90818060081b9160ff839260f01c16600214612ed057565b6001600160d81b031983169150565b9080601f8301121561020357816020611e569335910161263c565b91906101208382031261020357612f0f610f7d565b92612f1981610208565b8452602081013560208501526040810135916001600160401b03928381116102035781612f47918401612edf565b604086015260608201358381116102035781612f64918401612edf565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e08201358381116102035781612f9f918401612edf565b60e0860152610100928383013590811161020357612fbd9201612edf565b90830152565b90816020910312610203575190565b80516001600160a01b03168252611e56919061305061302061300e61012060208501516020870152604085015190806040880152860190610c78565b60608401518582036060870152610c78565b6080830151608085015260a083015160a085015260c083015160c085015260e083015184820360e0860152610c78565b916101008092015191818403910152610c78565b939291613081906040928652606060208701526060860190612fd2565b930152565b929190613081602091604086526040860190612fd2565b9290926000926130ad3682612efa565b9161010091828101916130c08383612003565b90949093600160f81b936001600160f81b03199384168514613209575b50505087160361316a575050604051639700320360e01b8152936020928592839160009183916131109160048401613086565b039260581c6001600160a01b03165af190811561091957611e5692600092613139575b50614771565b61315c91925060203d602011613163575b6131548183610f4f565b810190612fc3565b9038613133565b503d61314a565b909460081b93909291600160f01b613187611f87611f8088611e09565b166131f75760006131a86131a26020966131d299858a614571565b94614771565b604051630ccab7a160e01b8152979096889586948593926001600160e01b03191660048501613064565b03926001600160a01b03165af190811561091957611e56926000926131395750614771565b6040516314b9743f60e01b8152600490fd5b9091955061322593985061321e929450612003565b9088614387565b969192909361323885899599369161263c565b908601523880806130dd565b60008051602061514983398151915280549163ffffffff92600a848260a81c16019084821161330e5782851691851682116132fc5760c81c84161015612cba57600080516020615149833981519152805463ffffffff60c81b191660c89290921b63ffffffff60c81b1691909117905554818160c81c1691829160a81c16106132ca5750565b600080516020615149833981519152805463ffffffff60a81b191660a89290921b63ffffffff60a81b16919091179055565b60405163e60fd64760e01b8152600490fd5b634e487b7160e01b600052601160045260246000fd5b60405161333081610f18565b600681526512d95c9b995b60d21b60208201529060405161335081610f18565b6005815264302e332e3160d81b602082015290565b60405163d68f602560e01b815233600482015260248101929092526060604483015260648201839052600092839183918290849060849083908084838501378181018301849052601f01601f191681010301926001600160a01b03165af19182156109195780926133d557505090565b611e5692503d8091833e6109388183610f4f565b6000928361341095936040519687958694859363d68f602560e01b85523360048601611e7a565b03926001600160a01b03165af19081156109195760009161342f575090565b611e5691503d806000833e6109388183610f4f565b60009060405192808385378338925af4913d82523d6000602084013e60203d830101604052565b60009192806040519485378338925af4913d82523d6000602084013e60203d830101604052565b6001600160a01b0316803b1561020357604051630b9dfbed60e11b8152602060048201529160009183918290849082906134d0906024830190610c78565b03925af18015610919576134e15750565b61021390610eca565b634e487b7160e01b600052603260045260246000fd5b80511561350d5760200190565b6134ea565b805182101561350d5760209160051b010190565b9082101561350d5761027d9160051b810190612003565b96959192939694909460005b86811061355b57505050505050509050565b8061359c8a60019360051b850135613572816102a7565b61358884613580818c613512565b51938c613526565b90613594868b8b613526565b949093612b4c565b01613549565b901561350d5790565b6001600160a01b039391929190848316156136ee575b6135ca90611dd1565b946135f66135e96135db83856135a2565b356001600160f81b03191690565b6001600160f81b03191690565b946001600160f81b0319808716806136cf575050908061361892861693611b4c565b823b156102035761364392600092836040518096819582946306d61fe760e41b845260048401612322565b03925af19485156109195761367f61369f93600193610213986136bc575b505b82546001600160a01b0319166001600160a01b03909116178255565b0180546001600160a01b0319166001600160a01b03909316929092178255565b805460ff60a01b191660589290921c60ff60a01b16919091179055565b806109136136c992610eca565b38613661565b925092505094919403612a6a57600161369f9161367f61021396613663565b8492506135c1565b6001600160a01b031691821580156137b9575b6137b45760405163d60b347f60e01b8152306004820152602081602481875afa90811561091957600091613795575b5015613760576001600160f81b0319806137556135db84866135a2565b161461376057505050565b8061376a92611b4c565b823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6137ae915060203d602011610981576109738183610f4f565b38613738565b505050565b5060018314613709565b919392916001600160a01b039081841615613848575b1660008181526000805160206151298339815191526020526040812080546001600160a01b0319166001600160a01b0390951694909417909355803b15613844576134d09394836040518096819582946306d61fe760e41b8452602060048501526024840191611e59565b8280fd5b600193506137d9565b7f9d17cd6d095ac90a655405ab29f30a7ee7e88ef3974c1bf7544bf591043bb71a9160609161388382610bcd83611c8c565b600160ff198254161790556040519163ffffffff60e01b1682526001600160581b031916602082015260016040820152a1565b60407f2b82f87bf66300af618a9621d3f221edfab735f5bacb4e004cce1b62375396c3919392935a825195613916876139086020820193638a91b0e360e01b8552602060248401526044830190610c78565b03601f198101895288610f4f565b6000918291828587519a6139298c610efd565b828c525193f1943d908161395c575b6020818360009352013e81516001600160a01b0390911681528415156020820152a1565b60009150613938565b6139756139a89194939294611dd1565b80546001600160a01b031981168255600190910180546001600160a01b0392831696919492169161273a9136919061263c565b5080546001600160a81b03191660ff60a01b179055565b6001600160a01b0390811660008181526000805160206151298339815191526020526040902080546001600160a01b0319811690915590911693926122b89261273a91369161263c565b90929192613a3b613a296000805160206151498339815191525460581b90565b6001600160581b031980851691161490565b6127de57613a4b611cfe83611c53565b93613a6c613a5884611c53565b8054640100000000600160c01b0319169055565b6001600160f81b03198316600160f81b8103613aa557506122b89291613a9391369161263c565b9060581c6001600160a01b03166138b6565b600160f91b141590506103d8576102139160081b61480c565b604051613aca81610f18565b600181528060005b602080821015613aed57906060602092828501015201613ad2565b50505090565b90613afd82610f8a565b613b0a6040519182610f4f565b8281528092613b1b601f1991610f8a565b019060005b828110613b2c57505050565b806060602080938501015201613b20565b906040611e5692600081528160208201520190610c78565b613b69818060081b918160301b9160501b90565b5090936001600160f81b031993600160f81b939092508416838103613bf4575050613b9b908035019060208201913590565b929093168015600014613bb3575050611e5691614a8a565b03613bc157611e56916149cd565b60405162461bcd60e51b815260206004820152600b60248201526a155b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b94959490919080613c96575090613c0a91614921565b93909294613c16613abe565b971680613c3b575050613c2893614972565b613c3183613500565b526122b882613500565b03613bc157613c4993614949565b613c5284613500565b52610213577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c91613c8484613500565b5160405191829182613b3d565b0390a1565b919593918203613bc157613ccd90613cc7613caf613abe565b9780613cc16123ce6123c88387611b30565b93611b69565b9161346b565b613cd987959295613500565b5216908103613d17575015613cea57565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c91613c8484613500565b613bc1576102135760405162461bcd60e51b815260206004820152601360248201527211195b1959d85d1958d85b1b0819985a5b1959606a1b6044820152606490fd5b6001600160a01b03169081158015613dad575b6137b457821561350d576001600160f81b03198135811614613d8e57505050565b82600111610203576122b89261273a913691600019019060010161263c565b5060018214613d6d565b600080604092835136810185523683823784516014810186523360601b90528260143601925af1918151913d83523d6000602085013e60203d8401019052565b8054906000906000815582613e0b57505050565b6000526020600020918201915b828110613e2457505050565b818155600101613e18565b6001600160501b03199035818116939260168110613e4c57505050565b60160360031b82901b16169150565b805482101561350d5760005260206000200190600090565b805468010000000000000000811015610edd57613e9591600182018155613e5b565b819291549060031b9160501c821b9160018060b01b03901b1916179055565b9092809260209483528483013701016000815290565b6001600160f01b03199035818116939260028110613ee757505050565b60020360031b82901b16169150565b90803501906020808301923560fe8111801561414e575b61413c57600180613f1d85611e09565b0154614123575b60001982019260005b848110614046575061400b9594614019949093613fef9350613fe89250613f88613fd9613fc0611f87613fba613fb487878e613faf8e613f80611d3b6123ce6123c8613f7a898989613526565b90611b94565b9a8b91611e09565b805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b613526565b90611bc2565b90613eca565b613fc988611e09565b9060f01c61ffff19825416179055565b6001600160a01b031696613526565b8091611ba5565b6040519586939092906001600160e01b03191660208501613eb4565b03601f198101845283610f4f565b803b15610203576040516306d61fe760e41b81529160009183918290849082906122a99060048301612102565b61409d611d3b611d3b6123ce6123c8613f7a868a8e613faf8f6140698e91611e09565b0161409761408a61408461407e888888613526565b90611b86565b90613e2f565b6001600160501b03191690565b90613e73565b906140ac613fe882878b613526565b906140cd60409161400b83519485928d63ffffffff60e01b168a8501613eb4565b833b156102035760009384926140f792519586809481936306d61fe760e41b835260048301612102565b03925af1918215610919578492614110575b5001613f2d565b8061091361411d92610eca565b38614109565b614137600161413186611e09565b01613df7565b613f24565b60405163b62d956d60e01b8152600490fd5b508015613f0d565b84846141d9926141c497969498956040519161417183610f33565b6141d360009b8c92838652836020870152604086019d8e52606086019c8d918583528560808901528560a0890152606060c089015260e088019286845261010089019687529063ffffffff60e01b169052565b6001600160a01b039091169052565b52614b23565b60ff806141f26141ec6135db87866135a2565b60f81c90565b16036142385761422161420c8461421c9561423194611b4c565b9490955163ffffffff60e01b1690565b611e09565b5460101c6001600160a01b031690565b9351929190565b60405163b32eeb6960e01b8152600490fd5b8065ffffffffffff91828160a01c1692831560011461426b575b5060d01c92565b925038614264565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141615614300575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000006040820152466060820152306080820152206142e1565b9192909261439361280f565b9061439e9085611b30565b6143a791612333565b60601c602082018190526000805160206151498339815191525460a81c63ffffffff1680835260349560148082013582018089019791959294919360548601358601808b019490880135939092878c01358801808a013593908d0192918a0135918891908d8436906144189261263c565b80519060200120913661442c90888861263c565b805190602001203661443f908b8d61263c565b8051602091820120604080517fb17ab1224aca0d4255ef8161acaf2ac121b8faa32a4b2258c912cc5f8308c5059381019384526001600160581b0319989098169088015263ffffffff9390931660608701526001600160a01b0393909316608086015260a085019390935260c084019290925260e080840192909252908252906144cb61010082610f4f565b5190206144d790614273565b607489013589018d8b82013591016144ee92614d75565b9a6144f99488612b4c565b6145038183614f12565b61450c91611af4565b61451591611c27565b61451e91613851565b6094810135019293830192013590565b6001600160c01b0319903581811693926008811061454b57505050565b60080360031b82901b16169150565b604090611e56939281528160208201520190612fd2565b60009493916001868161458385611e09565b016000835b6145d0575b5050505060ff806145a46141ec6135db87896135a2565b1603614238576101006145c86145c18561422196611e5698611b4c565b369161263c565b910152611e09565b8197969754811015614769576146016145f96145ec8385613e5b565b90549060031b1c60501b90565b908160501c90565b98909761461d6146176141ec6135db85856135a2565b60ff1690565b808403614738575090818161465661464a61464461463e8461467398611bd0565b9061452e565b60c01c90565b6001600160401b031690565b600901916146686145c1848484611be1565b6101008b0152611c0f565b989098975b600160f01b161561468d575b50830183614588565b99866146ca929b60018060a01b036040918983518092633894f6e760e11b8252818b868260209c8d9760049c63ffffffff60e01b168d840161455a565b0393165af1958615610919578896614719575b505084166146ff5750506146f5859493928592614771565b9a91929350614684565b51631f24c1fb60e11b81529081018c815281906020010390fd5b614730929650803d10613163576131548183610f4f565b9338806146dd565b909991989083111561475657604051630760bdcf60e11b8152600490fd5b61475e6125e9565b610100880152614678565b96959661458d565b6001600160a01b03818318811615606083811b848601821b9081149186901b1417176001146147a257505050600190565b65ffffffffffff60a01b80831693906001600160d01b031984811691908316908615614804575b83811680156147fd575b8781109088180280881897146147f5575b508181119082180218921716171790565b9550386147e4565b50806147d3565b9550856147c9565b9190803501916020906020840193359061482581611e09565b9260019060018501906001825401850361490f57906000835b6148a1575b505050506148909161488b82613fef6102139798614868600161413161400b98611e09565b875461487f9060101c6001600160a01b0316611d3b565b94600019810191613526565b6138b6565b5080546001600160b01b0319169055565b815481101561490a5790838261490061400b8c6148f28a6148d7868e6148cf6145f96145ec8c9f9e8e613e5b565b969050613526565b6040519586939092906001600160e01b0319168c8501613eb4565b6001600160a01b03166138b6565b500190919261483e565b614843565b60405163013dcc8d60e31b8152600490fd5b908060141161020357813560601c928160341161020357601483013592603401916033190190565b906000928491604051958692833738935af1913d82523d6000602084013e60203d830101604052565b9092600092819594604051968792833738935af1156149a1573d82523d6000602084013e60203d830101604052565b503d6000823e3d90fd5b919081101561350d5760051b81013590605e1981360301821215610203570190565b9190916149d983613af3565b9260005b8181106149e957505050565b806149f760019284866149ab565b8035614a02816101f2565b614a2360208093604093614a1885830183612003565b939092013590614949565b614a2d858b613512565b5215614a3c575b5050016149dd565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb791614a80614a6b858b613512565b51838051948594888652850152830190610c78565b0390a13880614a34565b919091614a9683613af3565b9260005b818110614aa657505050565b80614adc6020614ab960019486886149ab565b8035614ac4816101f2565b614ad16040830183612003565b939092013590614972565b614ae68288613512565b52614af18187613512565b5001614a9a565b9092608092611e569594835260018060a01b0316602083015260408201528160608201520190610c78565b9190606083016001936001614b4261421c845163ffffffff60e01b1690565b01936000936000958054965b878110614b6057505050505050505050565b80614b726145f96145ec8c9486613e5b565b6001600160a01b031660a0880190815260808801959091614b9b906001600160f01b0319168752565b614bb5614bae6141ec6135db8a856135a2565b60ff168952565b614bc3614617895160ff1690565b808403614d3d5750868181614be861464a61464461463e614c3c9c9d614c0f98611bd0565b60208c018181528c60c0614c046145c160099586018789611be1565b910152510191611c0f565b959095965b51600160f11b90614c2e906001600160f01b031916611f87565b166001600160f01b03191690565b15614c49575b5001614b4e565b51909150614c5f906001600160a01b0316611d3b565b8651614c8390614c76906001600160e01b03191681565b6001600160e01b03191690565b60e08701519091906001600160a01b031691614cc86101008901519360c08a01516040948551808095819463184dfdbb60e11b835260209a8b9760049a8b8601614af8565b03915afa938415610919578b94614d1e575b50506001600160a01b038316614d035750860180518b9392614cfb91614771565b905238614c42565b9051631f24c1fb60e11b815290810183815281906020010390fd5b614d35929450803d10613163576131548183610f4f565b913880614cda565b839196945010600014614d5c57604051630760bdcf60e11b8152600490fd5b614c3c8b93614d6b3688612619565b60c08a0152614c14565b6000805160206151498339815191525460009493929060581b916001600160f81b03198316600160f81b8103614e385750604051637aa8f17760e11b8152936020938593909284928392614dcd923060048601611e7a565b039160581c6001600160a01b03165afa90811561091957600091614e19575b505b6001600160e01b0319166374eca2c160e11b01614e0757565b6040516362467c7760e11b8152600490fd5b614e32915060203d602011611f5f57611f578183610f4f565b38614dec565b919550929190600160f91b036103d857602091614e5b9160081b95843088614156565b60405163392dffaf60e01b81529297929586949385938493614e8e93909230906001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091614eb0575b50614dee565b614ec9915060203d602011611f5f57611f578183610f4f565b38614eaa565b15614ed657565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073656c6563746f724461746160601b6044820152606490fd5b614f1f6106528383611af4565b906004831015614f2e57505050565b602c83106150be57614f49611d3b6123ce6123c88685611b1f565b602c8201358201602c604c820191013591604c840135840194614f83614f756135e96135db87876135a2565b6001600160f81b0319161590565b8061502d575b94614fca61251795611d3b95614fcf956102139b956123ce9a614fdf575b614fba611d3b6123ce6123c88a8a611bfe565b916001600160a01b0316906135ab565b611bfe565b602c86013595604c019491612333565b615028606c8701358701615022602c604c830192013580615009611d3b6123ce6123c88488611b30565b9361501d856001600160a01b038a166150cc565b611b69565b916136f6565b614fa7565b5091939092956040519163ecd0596160e01b83526020838061505760048201906002602083019252565b03816001600160a01b0389165afa92831561091957610213986123ce9761251797611d3b97614fcf97614fca9560009161509f575b50959a50959b5095509550955050614f89565b6150b8915060203d602011610981576109738183610f4f565b3861508c565b505060046102139114614ecf565b61021391906001600160a01b03908183161561511f575b1660005260008051602061512983398151915260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b600192506150e356fe1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b867bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032", + "nonce": "0x46", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x244a50f193b593c6083a1b45b7a32ff092076f421612d413f435b89660b4bf29", + "transactionType": "CREATE2", + "contractName": "KernelFactory", + "contractAddress": "0x8134d811e37c7c3c88e6fba5322808c6871d58a5", + "function": null, + "arguments": [ + "0xDC4CfD181a721A047EE48A55393b25258B27ECB0" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x600f4", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060a034607357601f61046c38819003918201601f19168301916001600160401b03831184841017607857808492602094604052833981010312607357516001600160a01b03811681036073576080526040516103dd908161008f823960805181818160d10152818161023401526102f00152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600490600436101561001757600080fd5b600092833560e01c90816348aac39214610267575080635c60da1b1461021f5763ea6d13ac1461004657600080fd5b61004f36610352565b94919083519560209661007a86828a81019486888737868201908c820152038a8101845201826103a5565b5190209483958551917fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076875261600989527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f97602192605f60212060358601523060581b855260ff855380601586015260558520993415948b3b156101fe57505050506001916101f85785388180348c5af1156101ed57505b818652846060521561016b575b505091516001600160a01b0390931683525050f35b8082859493859483378101838152039082875af1903d156101e7573d9067ffffffffffffffff82116101d3578351916101ad601f8201601f19168801846103a5565b8252853d92013e5b156101c35738808080610156565b5163487e630960e11b8152600490fd5b634e487b7160e01b81526041600452602490fd5b506101b5565b63b12d13eb8652601cfd5b50610149565b91939a5091935034f59687156102145750610149565b63301164258652601cfd5b838234610263578160031936011261026357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b848334610263578260209361029d8361027f36610352565b90808a879498019788378201908982015203878101845201826103a5565b51902081517fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076835261600985527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f6021209083528360605260ff84536035523060601b6001526015526055822091603552519060018060a01b03168152f35b9060406003198301126103a05760043567ffffffffffffffff928382116103a057806023830112156103a05781600401359384116103a057602484830101116103a057602401919060243590565b600080fd5b90601f8019910116810190811067ffffffffffffffff8211176103c757604052565b634e487b7160e01b600052604160045260246000fd000000000000000000000000dc4cfd181a721a047ee48a55393b25258b27ecb0", + "nonce": "0x47", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xa7c6b6633c4b26acb79ec12954dac829e9b4c4d2169964f2623c2c814f27ff71", + "transactionType": "CALL", + "contractName": "FactoryStaker", + "contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "function": "approveFactory(address,bool)", + "arguments": [ + "0x8134d811E37C7c3C88e6fBA5322808c6871D58A5", + "true" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "gas": "0x108d1", + "value": "0x0", + "input": "0x6e7dbabb0000000000000000000000008134d811e37c7c3c88e6fba5322808c6871d58a50000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x48", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xac75b9", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x952bfd07525fd91a68340bf2e3cac2f78b7ae26109c0bdfe787953c56e51c6e8", + "transactionIndex": "0x42", + "blockHash": "0xe3a090ce8595f1d8a8b4614da7e626d4539fd884046c2478eda58fe45d47bc20", + "blockNumber": "0x58db6a", + "gasUsed": "0x461625", + "effectiveGasPrice": "0x74362dc8a", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0xdc4cfd181a721a047ee48a55393b25258b27ecb0" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xb090ec", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x244a50f193b593c6083a1b45b7a32ff092076f421612d413f435b89660b4bf29", + "transactionIndex": "0x43", + "blockHash": "0xe3a090ce8595f1d8a8b4614da7e626d4539fd884046c2478eda58fe45d47bc20", + "blockNumber": "0x58db6a", + "gasUsed": "0x41b33", + "effectiveGasPrice": "0x74362dc8a", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0x8134d811e37c7c3c88e6fba5322808c6871d58a5" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xb145ff", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xa7c6b6633c4b26acb79ec12954dac829e9b4c4d2169964f2623c2c814f27ff71", + "transactionIndex": "0x44", + "blockHash": "0xe3a090ce8595f1d8a8b4614da7e626d4539fd884046c2478eda58fe45d47bc20", + "blockNumber": "0x58db6a", + "gasUsed": "0xb513", + "effectiveGasPrice": "0x74362dc8a", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714676485, + "chain": 11155111, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/script/DeployKernel.s.sol b/script/DeployKernel.s.sol new file mode 100644 index 00000000..1329acf2 --- /dev/null +++ b/script/DeployKernel.s.sol @@ -0,0 +1,29 @@ +pragma solidity ^0.8.0; + +import "forge-std/Script.sol"; +import "forge-std/console.sol"; + +import "src/Kernel.sol"; + +import "src/factory/KernelFactory.sol"; +import "src/factory/FactoryStaker.sol"; + +contract DeployValidators is Script { + address constant ENTRYPOINT_0_7_ADDR = 0x0000000071727De22E5E9d8BAf0edAc6f37da032; + address constant DEPLOYER = 0x9775137314fE595c943712B0b336327dfa80aE8A; + address constant EXPECTED_STAKER = 0xd703aaE79538628d27099B8c4f621bE4CCd142d5; + + function run() external { + vm.startBroadcast(DEPLOYER); + Kernel kernel = new Kernel{salt: 0}(IEntryPoint(ENTRYPOINT_0_7_ADDR)); + console.log("Kernel : ", address(kernel)); + KernelFactory factory = new KernelFactory{salt: 0}(address(kernel)); + console.log("KernelFactory : ", address(factory)); + FactoryStaker staker = FactoryStaker(EXPECTED_STAKER); + if (!staker.approved(factory)) { + staker.approveFactory(factory, true); + console.log("Approved"); + } + vm.stopBroadcast(); + } +} diff --git a/src/Kernel.sol b/src/Kernel.sol index 9a0a1259..61650bc1 100644 --- a/src/Kernel.sol +++ b/src/Kernel.sol @@ -119,7 +119,7 @@ contract Kernel is IAccount, IAccountExecute, IERC7579Account, ValidationManager function _domainNameAndVersion() internal pure override returns (string memory name, string memory version) { name = "Kernel"; - version = "0.3.0-beta"; + version = "0.3.1"; } receive() external payable { diff --git a/src/sdk/KernelTestBase.sol b/src/sdk/KernelTestBase.sol index 4814d03e..18d904d1 100644 --- a/src/sdk/KernelTestBase.sol +++ b/src/sdk/KernelTestBase.sol @@ -189,9 +189,8 @@ abstract contract KernelTestBase is Test { ) ); - bytes32 digest = keccak256( - abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.0-beta", address(kernel)), hash) - ); + bytes32 digest = + keccak256(abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.1", address(kernel)), hash)); return digest; } @@ -840,7 +839,7 @@ abstract contract KernelTestBase is Test { function testSignatureRoot(bytes32 hash) external whenInitialized { bytes32 wrappedHash = keccak256(abi.encode(keccak256("Kernel(bytes32 hash)"), hash)); bytes32 digest = keccak256( - abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.0-beta", address(kernel)), wrappedHash) + abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.1", address(kernel)), wrappedHash) ); bytes memory sig = _rootSignDigest(digest, true); sig = abi.encodePacked(hex"00", sig); @@ -868,7 +867,7 @@ abstract contract KernelTestBase is Test { bytes32 wrappedHash = keccak256(abi.encode(keccak256("Kernel(bytes32 hash)"), hash)); bytes32 digest = keccak256( - abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.0-beta", address(kernel)), wrappedHash) + abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.1", address(kernel)), wrappedHash) ); bytes memory sig = _validatorSignDigest(digest, true); sig = abi.encodePacked(hex"01", address(enabledValidator), sig); @@ -895,7 +894,7 @@ abstract contract KernelTestBase is Test { ); bytes32 wrappedHash = keccak256(abi.encode(keccak256("Kernel(bytes32 hash)"), hash)); bytes32 digest = keccak256( - abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.0-beta", address(kernel)), wrappedHash) + abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.1", address(kernel)), wrappedHash) ); bytes memory sig = _permissionSignDigest(digest, true); sig = abi.encodePacked(hex"02", PermissionId.unwrap(enabledPermission), hex"ff", sig);