diff --git a/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-1678095830.json b/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-1678095830.json new file mode 100644 index 0000000..2be4a74 --- /dev/null +++ b/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-1678095830.json @@ -0,0 +1,32 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "GenericEulerStaker", + "contractAddress": "0xeACa7559F81dADE5d11fE8852E832a699396aBB7", + "function": null, + "arguments": null, + "rpc": "https://mainnet.infura.io/v3/092a612c762245f0946ecb943377617d", + "transaction": { + "type": "0x02", + "from": "0xfda462548ce04282f4b6d6619823a7c64fdc0185", + "gas": "0x4f42e7", + "value": "0x0", + "data": "0x60806040523480156200001157600080fd5b50600054610100900460ff166200002f5760005460ff161562000039565b62000039620000de565b620000a15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff16158015620000c4576000805461ffff19166101011790555b8015620000d7576000805461ff00191690555b5062000102565b6000620000f630620000fc60201b620013b71760201c565b15905090565b3b151590565b61474280620001126000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c806375653eb411610160578063a8c62e76116100d8578063d0e30db01161008c578063dc4c90d311610071578063dc4c90d3146105a5578063ecf609ae146105c5578063ef06e72c146105d857600080fd5b8063d0e30db01461058a578063d547741f1461059257600080fd5b8063b8dc491b116100bd578063b8dc491b14610567578063c1590cd71461057a578063c6afba3c1461058257600080fd5b8063a8c62e7614610534578063b82c4dc11461055457600080fd5b8063953d9cf11161012f578063a25b26be11610114578063a25b26be146104d1578063a73e0f3b146104e4578063a7d385e21461052157600080fd5b8063953d9cf1146104a9578063a217fddf146104c957600080fd5b806375653eb414610459578063853828b6146104795780638b2021761461048157806391d148541461049657600080fd5b80632e779525116101f3578063372500ab116101c257806357ded9c9116101a757806357ded9c914610412578063580b7c2e1461041a5780635be9b2d31461044157600080fd5b8063372500ab146103f75780635312ea8e146103ff57600080fd5b80632e779525146103a25780632f2ff15d146103aa578063364bc15a146103bd57806336568abe146103e457600080fd5b8063116ac4a31161024a578063248a9ca31161022f578063248a9ca31461034457806324ea54f4146103685780632e1a7d4d1461038f57600080fd5b8063116ac4a3146102f75780631f1fcd51146102ff57600080fd5b806305b419341461027c5780630948c0b6146102915780630b6d1d17146102a4578063108cce74146102c0575b600080fd5b61028f61028a366004613c0a565b6105f8565b005b61028f61029f366004613c9a565b610701565b6102ad60375481565b6040519081526020015b60405180910390f35b6069546102e59074010000000000000000000000000000000000000000900460ff1681565b60405160ff90911681526020016102b7565b6102ad610774565b60365461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b7565b6102ad610352366004613cb7565b6000908152600160208190526040909120015490565b6102ad7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504181565b6102ad61039d366004613cb7565b610799565b61028f6107d8565b61028f6103b8366004613cd0565b6107e2565b6102ad7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab81565b61028f6103f2366004613cd0565b61080e565b61028f6108a0565b61028f61040d366004613cb7565b610924565b6102ad610aa0565b6102ad7f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c81565b610449610aaf565b60405190151581526020016102b7565b60685461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b610449610ace565b610489610b1e565b6040516102b79190613d24565b6104496104a4366004613cd0565b610bac565b60675461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b6102ad600081565b61028f6104df366004613e13565b610be6565b60675461050c9074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016102b7565b6102ad61052f366004613cb7565b610cbf565b60355461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b61028f610562366004613f3b565b610cca565b61028f610575366004613fd5565b610dd1565b6102ad610f5e565b6102ad610f68565b61028f611014565b61028f6105a0366004613cd0565b611166565b60345461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b61028f6105d3366004614003565b61118d565b60695461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab61062381336113bd565b603854604051600091829173ffffffffffffffffffffffffffffffffffffffff909116906106529086906140c6565b6000604051808303816000865af19150503d806000811461068f576040519150601f19603f3d011682016040523d82523d6000602084013e610694565b606091505b5091509150816106a7576106a781611466565b6000818060200190518101906106bd91906140e2565b9050858110156106f9576040517f22313ae900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161072c81336113bd565b50603880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061077f6114a7565b90506107896114b3565b610793908261412a565b91505090565b60007f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c6107c681336113bd565b6107cf83611559565b91505b50919050565b6107e0611965565b565b600082815260016020819052604090912001546107ff81336113bd565b6108098383611b9d565b505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f373100000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b61089c8282611c33565b5050565b606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561090a57600080fd5b505af115801561091e573d6000803e3d6000fd5b50505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161094f81336113bd565b61095882611cc5565b506067546040517f441a3e70000000000000000000000000000000000000000000000000000000008152600060048201526024810184905273ffffffffffffffffffffffffffffffffffffffff9091169063441a3e7090604401600060405180830381600087803b1580156109cc57600080fd5b505af11580156109e0573d6000803e3d6000fd5b50506034546036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015261089c945073ffffffffffffffffffffffffffffffffffffffff92831693509116906370a0823190602401602060405180830381865afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8091906140e2565b60365473ffffffffffffffffffffffffffffffffffffffff169190611dee565b6000610aaa6114a7565b905090565b6000603754600a610ac0919061412a565b610ac86114b3565b11905090565b60007f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c610afb81336113bd565b6000610b056114b3565b90506000610b1282611559565b91909110159250505090565b60338054610b2b90614141565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5790614141565b8015610ba45780601f10610b7957610100808354040283529160200191610ba4565b820191906000526020600020905b815481529060010190602001808311610b8757829003601f168201915b505050505081565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b92915050565b610bf488888888888861118d565b6068805473ffffffffffffffffffffffffffffffffffffffff8085167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255606980548484169216919091179055606754610c769116837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b610cb573d9fcd98c322942075a5c3860693e9f4f03aae07b847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b5050505050505050565b6000610be082612044565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041610cf581336113bd565b8584141580610d045750858214155b15610d3b576040517f46282e8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560005b81811015610dc657610db6898983818110610d5c57610d5c61418e565b9050602002016020810190610d719190613c9a565b888884818110610d8357610d8361418e565b9050602002016020810190610d989190613c9a565b878785818110610daa57610daa61418e565b905060200201356122d5565b610dbf816141bd565b9050610d3f565b505050505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041610dfc81336113bd565b6000610e066123de565b805190915060005b81811015610ea457828181518110610e2857610e2861418e565b602002602001015173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610e94576040517f093e1cdb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e9d816141bd565b9050610e0e565b506040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152610f5790859073ffffffffffffffffffffffffffffffffffffffff8816906370a0823190602401602060405180830381865afa158015610f15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3991906140e2565b73ffffffffffffffffffffffffffffffffffffffff88169190611dee565b5050505050565b6000610aaa6114b3565b600080610f73612498565b6067546040517f3af9e669000000000000000000000000000000000000000000000000000000008152306004820152919250829173ffffffffffffffffffffffffffffffffffffffff90911690633af9e66990602401602060405180830381865afa158015610fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100a91906140e2565b61079391906141f5565b7f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c61103f81336113bd565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156110ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d291906140e2565b6067546040517fe2bbb158000000000000000000000000000000000000000000000000000000008152600060048201526024810183905291925073ffffffffffffffffffffffffffffffffffffffff169063e2bbb15890604401600060405180830381600087803b15801561114657600080fd5b505af115801561115a573d6000803e3d6000fd5b5050505061089c6125c3565b6000828152600160208190526040909120015461118381336113bd565b6108098383611c33565b61119b868686868686612698565b6036546040517f8948874900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152733520d5a913427e6f0d6a83e07ccd4a4da316e4d390638948874990602401602060405180830381865afa15801561121d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112419190614208565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9283161790556036546040517f1b30058200000000000000000000000000000000000000000000000000000000815291166004820152733520d5a913427e6f0d6a83e07ccd4a4da316e4d390631b30058290602401602060405180830381865afa1580156112ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113129190614208565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905561135f611965565b6036546106f99073ffffffffffffffffffffffffffffffffffffffff167327182842e098f60e3d576794a5bffb0777e025d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b3b151590565b6113c78282610bac565b61089c576113ec8173ffffffffffffffffffffffffffffffffffffffff166014612cd3565b6113f7836020612cd3565b604051602001611408929190614225565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261088991600401613d24565b80511561147557805181602001fd5b6040517fc76d51a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610aaa6000612044565b60006114bd610f68565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154f91906140e2565b610aaa91906141f5565b600080611564612498565b6067546040517f3af9e66900000000000000000000000000000000000000000000000000000000815230600482015291925060009173ffffffffffffffffffffffffffffffffffffffff90911690633af9e66990602401602060405180830381865afa1580156115d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fc91906140e2565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015291925060009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611670573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169491906140e2565b90506000816116a384866141f5565b6116ad91906141f5565b9050808611156116bb578095505b8582106116f6576035546036546116ec9173ffffffffffffffffffffffffffffffffffffffff918216911688611dee565b5093949350505050565b6036546040517f70a082310000000000000000000000000000000000000000000000000000000081527327182842e098f60e3d576794a5bffb0777e025d3600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179d91906140e2565b9050600181111561189b5760006117b484896142a6565b905060008282116117de578582116117cd5760006117d7565b6117d786836142a6565b90506117fc565b8583116117ec5760006117f6565b6117f686846142a6565b90508291505b801561180d5761180b81611cc5565b505b6067546040517f441a3e70000000000000000000000000000000000000000000000000000000008152600060048201526024810184905273ffffffffffffffffffffffffffffffffffffffff9091169063441a3e7090604401600060405180830381600087803b15801561188057600080fd5b505af1158015611894573d6000803e3d6000fd5b5050505050505b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192d91906140e2565b60355460365491945061195a9173ffffffffffffffffffffffffffffffffffffffff908116911685611dee565b509095945050505050565b6036546040517fb409dd9b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152600090733520d5a913427e6f0d6a83e07ccd4a4da316e4d39063b409dd9b90602401602060405180830381865afa1580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0e91906140e2565b6040517fcab65f01000000000000000000000000000000000000000000000000000000008152600481018290529091506000907327182842e098f60e3d576794a5bffb0777e025d39063cab65f0190602401602060405180830381865afa158015611a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa19190614208565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116919091179091556036546040517fb74b1ed500000000000000000000000000000000000000000000000000000000815291166004820152909150733520d5a913427e6f0d6a83e07ccd4a4da316e4d39063b74b1ed590602401602060405180830381865afa158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7991906142b9565b606760146101000a81548163ffffffff021916908363ffffffff1602179055505050565b611ba78282610bac565b61089c57600082815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b611c3d8282610bac565b1561089c57600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6067546040517f52eac8af0000000000000000000000000000000000000000000000000000000081526004810183905260009173ffffffffffffffffffffffffffffffffffffffff16906352eac8af90602401602060405180830381865afa158015611d35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5991906140e2565b611d649060016141f5565b6068546040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810183905291925073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b158015611dd157600080fd5b505af1158015611de5573d6000803e3d6000fd5b50505050919050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526108099084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612f1d565b801580611f6257506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6091906140e2565b155b611fee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610889565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526108099084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b600080606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d891906140e2565b90506000606760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fea61faa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216d91906140e2565b9050600084126121885761218184826141f5565b905061219e565b612191846142df565b61219b90826142a6565b90505b600081156122b9576000670de0b6b3a7640000836121c063ffffffff8361412a565b6121ca908761412a565b6121d49190614317565b6121de9190614317565b6065546036546040517fd50c08f800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015263ffffffff8416602482015292935060009291169063d50c08f890604401602060405180830381865afa158015612262573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122869190614352565b6bffffffffffffffffffffffff1690506122b4818686606760149054906101000a900463ffffffff16613029565b925050505b6122c2856130b9565b6122cc90826141f5565b95945050505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff83811660248301526000919085169063dd62ed3e90604401602060405180830381865afa15801561234b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236f91906140e2565b9050818110156123aa576123a58361238783856142a6565b73ffffffffffffffffffffffffffffffffffffffff8716919061337e565b61091e565b8181111561091e5761091e836123c084846142a6565b73ffffffffffffffffffffffffffffffffffffffff8716919061347c565b604080516002808252606080830184529260009291906020830190803683375050603654825192935073ffffffffffffffffffffffffffffffffffffffff16918391506000906124305761243061418e565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201015260675482519116908290600190811061246e5761246e61418e565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152919050565b6068546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091829173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561250b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252f91906140e2565b6067546040517f010ad6d10000000000000000000000000000000000000000000000000000000081526004810183905291925073ffffffffffffffffffffffffffffffffffffffff169063010ad6d190602401602060405180830381865afa15801561259f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079391906140e2565b6068546067546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9283169263a694fc3a9216906370a0823190602401602060405180830381865afa15801561263c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266091906140e2565b6040518263ffffffff1660e01b815260040161267e91815260200190565b600060405180830381600087803b15801561090a57600080fd5b600054610100900460ff166126b35760005460ff16156126b7565b303b155b612743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610889565b600054610100900460ff1615801561278257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b6038805473ffffffffffffffffffffffffffffffffffffffff8085167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560358054928a169290911682179055604080517fdc4c90d3000000000000000000000000000000000000000000000000000000008152905163dc4c90d3916004808201926020929091908290030181865afa158015612829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284d9190614208565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169182179055604080517ffc0c546a000000000000000000000000000000000000000000000000000000008152905163fc0c546a916004808201926020929091908290030181865afa1580156128e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129099190614208565b603680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055603361295a87826143bb565b5060345461299f907f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50419073ffffffffffffffffffffffffffffffffffffffff16613602565b845160005b81811015612a02576129f27f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504160001b8883815181106129e5576129e561418e565b6020026020010151613602565b6129fb816141bd565b90506129a4565b50612a2d7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab86613602565b835160005b81811015612a8357612a737ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab60001b8783815181106129e5576129e561418e565b612a7c816141bd565b9050612a32565b50612ace7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161360c565b612af87f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504187613602565b612b227f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c8a613602565b612b6c7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c61360c565b612bb67f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161360c565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4791906144d5565b612c5290600a614618565b603755603654612c999073ffffffffffffffffffffffffffffffffffffffff168a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b50508015612cca57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50505050505050565b60606000612ce283600261412a565b612ced9060026141f5565b67ffffffffffffffff811115612d0557612d05613b16565b6040519080825280601f01601f191660200182016040528015612d2f576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612d6657612d6661418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612dc957612dc961418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612e0584600261412a565b612e109060016141f5565b90505b6001811115612ead577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612e5157612e5161418e565b1a60f81b828281518110612e6757612e6761418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612ea681614627565b9050612e13565b508315612f16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610889565b9392505050565b6000612f7f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166136639092919063ffffffff16565b8051909150156108095780806020019051810190612f9d919061465c565b610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610889565b60008083613037868861412a565b6130419190614317565b905063ee6b280061305863ffffffff8516826142a6565b613062908361412a565b61306c9190614317565b9050633b9aca006b033b2e3c9fd0803ce800000061309b836301e133806b033b2e3c9fd0803ce8000000613672565b6130a591906142a6565b6130af9190614317565b9695505050505050565b600080606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ebe2b12b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314d91906140e2565b606754606854604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905193945060009373ffffffffffffffffffffffffffffffffffffffff9384169363010ad6d19316916318160ddd9160048083019260209291908290030181865afa1580156131cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f191906140e2565b6040518263ffffffff1660e01b815260040161320f91815260200190565b602060405180830381865afa15801561322c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061325091906140e2565b90506000841261326b5761326484826141f5565b9050613281565b613274846142df565b61327e90826142a6565b90505b428211158061328e575080155b1561329d575060009392505050565b806127106133496301e13380606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b0a47ee6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333a91906140e2565b613344919061412a565b61379d565b6133559061251c61412a565b61336290620f424061412a565b61336c9190614317565b6133769190614317565b949350505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156133f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341991906140e2565b61342391906141f5565b60405173ffffffffffffffffffffffffffffffffffffffff851660248201526044810182905290915061091e9085907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff83811660248301526000919085169063dd62ed3e90604401602060405180830381865afa1580156134f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061351691906140e2565b9050818110156135a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5361666545524332303a2064656372656173656420616c6c6f77616e6365206260448201527f656c6f77207a65726f00000000000000000000000000000000000000000000006064820152608401610889565b60405173ffffffffffffffffffffffffffffffffffffffff841660248201528282036044820181905290610f579086907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b61089c8282611b9d565b60008281526001602081905260409091200154819060405184907fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff90600090a4600091825260016020819052604090922090910155565b60606133768484600085613869565b600082158061367f575083155b1561368b575080612f16565b6000613698600284614317565b905060006136a76001866142a6565b90506000600286116136ba5760006136c5565b6136c56002876142a6565b9050600085846136d58a8061412a565b6136df91906141f5565b6136e99190614317565b9050600086856136f98b8561412a565b61370391906141f5565b61370d9190614317565b9050600060028361371e878c61412a565b613728919061412a565b6137329190614317565b9050600060068386613744898e61412a565b61374e919061412a565b613758919061412a565b6137629190614317565b905080826137708c8e61412a565b61377a908c6141f5565b61378491906141f5565b61378e91906141f5565b9b9a5050505050505050505050565b6040517f41976e0900000000000000000000000000000000000000000000000000000000815273d9fcd98c322942075a5c3860693e9f4f03aae07b600482015260009081907359828fdf7ee634aaad3f58b19fdba3b03e2d9d80906341976e09906024016040805180830381865afa15801561381d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613841919061467e565b5090506107cf670de0b6b3a764000061385a838661412a565b6138649190614317565b613982565b6060824710156138fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610889565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161392491906140c6565b60006040518083038185875af1925050503d8060008114613961576040519150601f19603f3d011682016040523d82523d6000602084013e613966565b606091505b509150915061397787838387613a37565b979650505050505050565b600080606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156139f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a1691906146bc565b5050509150506305f5e1008382613a2d919061412a565b6107cf9190614317565b60608315613acd578251600003613ac65773ffffffffffffffffffffffffffffffffffffffff85163b613ac6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610889565b5081613376565b6133768383815115613ae25781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108899190613d24565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613b8c57613b8c613b16565b604052919050565b600067ffffffffffffffff831115613bae57613bae613b16565b613bdf60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86011601613b45565b9050828152838383011115613bf357600080fd5b828260208301376000602084830101529392505050565b60008060408385031215613c1d57600080fd5b82359150602083013567ffffffffffffffff811115613c3b57600080fd5b8301601f81018513613c4c57600080fd5b613c5b85823560208401613b94565b9150509250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114613c8757600080fd5b50565b8035613c9581613c65565b919050565b600060208284031215613cac57600080fd5b8135612f1681613c65565b600060208284031215613cc957600080fd5b5035919050565b60008060408385031215613ce357600080fd5b823591506020830135613cf581613c65565b809150509250929050565b60005b83811015613d1b578181015183820152602001613d03565b50506000910152565b6020815260008251806020840152613d43816040850160208701613d00565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600082601f830112613d8657600080fd5b612f1683833560208501613b94565b600082601f830112613da657600080fd5b8135602067ffffffffffffffff821115613dc257613dc2613b16565b8160051b613dd1828201613b45565b9283528481018201928281019087851115613deb57600080fd5b83870192505b84831015613977578235613e0481613c65565b82529183019190830190613df1565b600080600080600080600080610100898b031215613e3057600080fd5b613e3989613c8a565b9750602089013567ffffffffffffffff80821115613e5657600080fd5b613e628c838d01613d75565b985060408b0135915080821115613e7857600080fd5b613e848c838d01613d95565b9750613e9260608c01613c8a565b965060808b0135915080821115613ea857600080fd5b50613eb58b828c01613d95565b945050613ec460a08a01613c8a565b9250613ed260c08a01613c8a565b9150613ee060e08a01613c8a565b90509295985092959890939650565b60008083601f840112613f0157600080fd5b50813567ffffffffffffffff811115613f1957600080fd5b6020830191508360208260051b8501011115613f3457600080fd5b9250929050565b60008060008060008060608789031215613f5457600080fd5b863567ffffffffffffffff80821115613f6c57600080fd5b613f788a838b01613eef565b90985096506020890135915080821115613f9157600080fd5b613f9d8a838b01613eef565b90965094506040890135915080821115613fb657600080fd5b50613fc389828a01613eef565b979a9699509497509295939492505050565b60008060408385031215613fe857600080fd5b8235613ff381613c65565b91506020830135613cf581613c65565b60008060008060008060c0878903121561401c57600080fd5b863561402781613c65565b9550602087013567ffffffffffffffff8082111561404457600080fd5b6140508a838b01613d75565b9650604089013591508082111561406657600080fd5b6140728a838b01613d95565b95506060890135915061408482613c65565b9093506080880135908082111561409a57600080fd5b506140a789828a01613d95565b92505060a08701356140b881613c65565b809150509295509295509295565b600082516140d8818460208701613d00565b9190910192915050565b6000602082840312156140f457600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610be057610be06140fb565b600181811c9082168061415557607f821691505b6020821081036107d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036141ee576141ee6140fb565b5060010190565b80820180821115610be057610be06140fb565b60006020828403121561421a57600080fd5b8151612f1681613c65565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161425d816017850160208801613d00565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161429a816028840160208801613d00565b01602801949350505050565b81810381811115610be057610be06140fb565b6000602082840312156142cb57600080fd5b815163ffffffff81168114612f1657600080fd5b60007f80000000000000000000000000000000000000000000000000000000000000008203614310576143106140fb565b5060000390565b60008261434d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006020828403121561436457600080fd5b815180600b0b8114612f1657600080fd5b601f82111561080957600081815260208120601f850160051c8101602086101561439c5750805b601f850160051c820191505b818110156106f9578281556001016143a8565b815167ffffffffffffffff8111156143d5576143d5613b16565b6143e9816143e38454614141565b84614375565b602080601f83116001811461443c57600084156144065750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106f9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156144895788860151825594840194600190910190840161446a565b50858210156144c557878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156144e757600080fd5b815160ff81168114612f1657600080fd5b600181815b8085111561455157817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614537576145376140fb565b8085161561454457918102915b93841c93908002906144fd565b509250929050565b60008261456857506001610be0565b8161457557506000610be0565b816001811461458b5760028114614595576145b1565b6001915050610be0565b60ff8411156145a6576145a66140fb565b50506001821b610be0565b5060208310610133831016604e8410600b84101617156145d4575081810a610be0565b6145de83836144f8565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614610576146106140fb565b029392505050565b6000612f1660ff841683614559565b600081614636576146366140fb565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561466e57600080fd5b81518015158114612f1657600080fd5b6000806040838503121561469157600080fd5b505080516020909101519092909150565b805169ffffffffffffffffffff81168114613c9557600080fd5b600080600080600060a086880312156146d457600080fd5b6146dd866146a2565b9450602086015193506040860151925060608601519150614700608087016146a2565b9050929550929590935056fea2646970667358221220756dcdf3030d6fef303892a4a7c0fc3952e0c1e16851ef31a6a2a8935c15a02164736f6c63430008110033", + "nonce": "0x402", + "accessList": [] + }, + "additionalContracts": [] + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "path": "/Users/gnervo/Documents/Angle/strategies-dev/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-latest.json", + "returns": {}, + "timestamp": 1678095830, + "chain": 1, + "multi": false, + "commit": "adcd1f3" +} \ No newline at end of file diff --git a/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-1678096036.json b/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-1678096036.json new file mode 100644 index 0000000..f1ab769 --- /dev/null +++ b/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-1678096036.json @@ -0,0 +1,34 @@ +{ + "transactions": [ + { + "hash": "0x6e7874cdea8abbaae2abf8223c42d95ba945476a3c8e7f18b20701181a90a094", + "transactionType": "CREATE", + "contractName": "GenericEulerStaker", + "contractAddress": "0xeACa7559F81dADE5d11fE8852E832a699396aBB7", + "function": null, + "arguments": null, + "rpc": "https://mainnet.infura.io/v3/092a612c762245f0946ecb943377617d", + "transaction": { + "type": "0x02", + "from": "0xfda462548ce04282f4b6d6619823a7c64fdc0185", + "gas": "0x4f42e7", + "value": "0x0", + "data": "0x60806040523480156200001157600080fd5b50600054610100900460ff166200002f5760005460ff161562000039565b62000039620000de565b620000a15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff16158015620000c4576000805461ffff19166101011790555b8015620000d7576000805461ff00191690555b5062000102565b6000620000f630620000fc60201b620013b71760201c565b15905090565b3b151590565b61474280620001126000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c806375653eb411610160578063a8c62e76116100d8578063d0e30db01161008c578063dc4c90d311610071578063dc4c90d3146105a5578063ecf609ae146105c5578063ef06e72c146105d857600080fd5b8063d0e30db01461058a578063d547741f1461059257600080fd5b8063b8dc491b116100bd578063b8dc491b14610567578063c1590cd71461057a578063c6afba3c1461058257600080fd5b8063a8c62e7614610534578063b82c4dc11461055457600080fd5b8063953d9cf11161012f578063a25b26be11610114578063a25b26be146104d1578063a73e0f3b146104e4578063a7d385e21461052157600080fd5b8063953d9cf1146104a9578063a217fddf146104c957600080fd5b806375653eb414610459578063853828b6146104795780638b2021761461048157806391d148541461049657600080fd5b80632e779525116101f3578063372500ab116101c257806357ded9c9116101a757806357ded9c914610412578063580b7c2e1461041a5780635be9b2d31461044157600080fd5b8063372500ab146103f75780635312ea8e146103ff57600080fd5b80632e779525146103a25780632f2ff15d146103aa578063364bc15a146103bd57806336568abe146103e457600080fd5b8063116ac4a31161024a578063248a9ca31161022f578063248a9ca31461034457806324ea54f4146103685780632e1a7d4d1461038f57600080fd5b8063116ac4a3146102f75780631f1fcd51146102ff57600080fd5b806305b419341461027c5780630948c0b6146102915780630b6d1d17146102a4578063108cce74146102c0575b600080fd5b61028f61028a366004613c0a565b6105f8565b005b61028f61029f366004613c9a565b610701565b6102ad60375481565b6040519081526020015b60405180910390f35b6069546102e59074010000000000000000000000000000000000000000900460ff1681565b60405160ff90911681526020016102b7565b6102ad610774565b60365461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b7565b6102ad610352366004613cb7565b6000908152600160208190526040909120015490565b6102ad7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504181565b6102ad61039d366004613cb7565b610799565b61028f6107d8565b61028f6103b8366004613cd0565b6107e2565b6102ad7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab81565b61028f6103f2366004613cd0565b61080e565b61028f6108a0565b61028f61040d366004613cb7565b610924565b6102ad610aa0565b6102ad7f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c81565b610449610aaf565b60405190151581526020016102b7565b60685461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b610449610ace565b610489610b1e565b6040516102b79190613d24565b6104496104a4366004613cd0565b610bac565b60675461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b6102ad600081565b61028f6104df366004613e13565b610be6565b60675461050c9074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016102b7565b6102ad61052f366004613cb7565b610cbf565b60355461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b61028f610562366004613f3b565b610cca565b61028f610575366004613fd5565b610dd1565b6102ad610f5e565b6102ad610f68565b61028f611014565b61028f6105a0366004613cd0565b611166565b60345461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b61028f6105d3366004614003565b61118d565b60695461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab61062381336113bd565b603854604051600091829173ffffffffffffffffffffffffffffffffffffffff909116906106529086906140c6565b6000604051808303816000865af19150503d806000811461068f576040519150601f19603f3d011682016040523d82523d6000602084013e610694565b606091505b5091509150816106a7576106a781611466565b6000818060200190518101906106bd91906140e2565b9050858110156106f9576040517f22313ae900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161072c81336113bd565b50603880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061077f6114a7565b90506107896114b3565b610793908261412a565b91505090565b60007f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c6107c681336113bd565b6107cf83611559565b91505b50919050565b6107e0611965565b565b600082815260016020819052604090912001546107ff81336113bd565b6108098383611b9d565b505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f373100000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b61089c8282611c33565b5050565b606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561090a57600080fd5b505af115801561091e573d6000803e3d6000fd5b50505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161094f81336113bd565b61095882611cc5565b506067546040517f441a3e70000000000000000000000000000000000000000000000000000000008152600060048201526024810184905273ffffffffffffffffffffffffffffffffffffffff9091169063441a3e7090604401600060405180830381600087803b1580156109cc57600080fd5b505af11580156109e0573d6000803e3d6000fd5b50506034546036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015261089c945073ffffffffffffffffffffffffffffffffffffffff92831693509116906370a0823190602401602060405180830381865afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8091906140e2565b60365473ffffffffffffffffffffffffffffffffffffffff169190611dee565b6000610aaa6114a7565b905090565b6000603754600a610ac0919061412a565b610ac86114b3565b11905090565b60007f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c610afb81336113bd565b6000610b056114b3565b90506000610b1282611559565b91909110159250505090565b60338054610b2b90614141565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5790614141565b8015610ba45780601f10610b7957610100808354040283529160200191610ba4565b820191906000526020600020905b815481529060010190602001808311610b8757829003601f168201915b505050505081565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b92915050565b610bf488888888888861118d565b6068805473ffffffffffffffffffffffffffffffffffffffff8085167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255606980548484169216919091179055606754610c769116837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b610cb573d9fcd98c322942075a5c3860693e9f4f03aae07b847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b5050505050505050565b6000610be082612044565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041610cf581336113bd565b8584141580610d045750858214155b15610d3b576040517f46282e8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560005b81811015610dc657610db6898983818110610d5c57610d5c61418e565b9050602002016020810190610d719190613c9a565b888884818110610d8357610d8361418e565b9050602002016020810190610d989190613c9a565b878785818110610daa57610daa61418e565b905060200201356122d5565b610dbf816141bd565b9050610d3f565b505050505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041610dfc81336113bd565b6000610e066123de565b805190915060005b81811015610ea457828181518110610e2857610e2861418e565b602002602001015173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610e94576040517f093e1cdb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e9d816141bd565b9050610e0e565b506040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152610f5790859073ffffffffffffffffffffffffffffffffffffffff8816906370a0823190602401602060405180830381865afa158015610f15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3991906140e2565b73ffffffffffffffffffffffffffffffffffffffff88169190611dee565b5050505050565b6000610aaa6114b3565b600080610f73612498565b6067546040517f3af9e669000000000000000000000000000000000000000000000000000000008152306004820152919250829173ffffffffffffffffffffffffffffffffffffffff90911690633af9e66990602401602060405180830381865afa158015610fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100a91906140e2565b61079391906141f5565b7f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c61103f81336113bd565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156110ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d291906140e2565b6067546040517fe2bbb158000000000000000000000000000000000000000000000000000000008152600060048201526024810183905291925073ffffffffffffffffffffffffffffffffffffffff169063e2bbb15890604401600060405180830381600087803b15801561114657600080fd5b505af115801561115a573d6000803e3d6000fd5b5050505061089c6125c3565b6000828152600160208190526040909120015461118381336113bd565b6108098383611c33565b61119b868686868686612698565b6036546040517f8948874900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152733520d5a913427e6f0d6a83e07ccd4a4da316e4d390638948874990602401602060405180830381865afa15801561121d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112419190614208565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9283161790556036546040517f1b30058200000000000000000000000000000000000000000000000000000000815291166004820152733520d5a913427e6f0d6a83e07ccd4a4da316e4d390631b30058290602401602060405180830381865afa1580156112ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113129190614208565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905561135f611965565b6036546106f99073ffffffffffffffffffffffffffffffffffffffff167327182842e098f60e3d576794a5bffb0777e025d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b3b151590565b6113c78282610bac565b61089c576113ec8173ffffffffffffffffffffffffffffffffffffffff166014612cd3565b6113f7836020612cd3565b604051602001611408929190614225565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261088991600401613d24565b80511561147557805181602001fd5b6040517fc76d51a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610aaa6000612044565b60006114bd610f68565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154f91906140e2565b610aaa91906141f5565b600080611564612498565b6067546040517f3af9e66900000000000000000000000000000000000000000000000000000000815230600482015291925060009173ffffffffffffffffffffffffffffffffffffffff90911690633af9e66990602401602060405180830381865afa1580156115d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fc91906140e2565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015291925060009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611670573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169491906140e2565b90506000816116a384866141f5565b6116ad91906141f5565b9050808611156116bb578095505b8582106116f6576035546036546116ec9173ffffffffffffffffffffffffffffffffffffffff918216911688611dee565b5093949350505050565b6036546040517f70a082310000000000000000000000000000000000000000000000000000000081527327182842e098f60e3d576794a5bffb0777e025d3600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179d91906140e2565b9050600181111561189b5760006117b484896142a6565b905060008282116117de578582116117cd5760006117d7565b6117d786836142a6565b90506117fc565b8583116117ec5760006117f6565b6117f686846142a6565b90508291505b801561180d5761180b81611cc5565b505b6067546040517f441a3e70000000000000000000000000000000000000000000000000000000008152600060048201526024810184905273ffffffffffffffffffffffffffffffffffffffff9091169063441a3e7090604401600060405180830381600087803b15801561188057600080fd5b505af1158015611894573d6000803e3d6000fd5b5050505050505b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192d91906140e2565b60355460365491945061195a9173ffffffffffffffffffffffffffffffffffffffff908116911685611dee565b509095945050505050565b6036546040517fb409dd9b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152600090733520d5a913427e6f0d6a83e07ccd4a4da316e4d39063b409dd9b90602401602060405180830381865afa1580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0e91906140e2565b6040517fcab65f01000000000000000000000000000000000000000000000000000000008152600481018290529091506000907327182842e098f60e3d576794a5bffb0777e025d39063cab65f0190602401602060405180830381865afa158015611a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa19190614208565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116919091179091556036546040517fb74b1ed500000000000000000000000000000000000000000000000000000000815291166004820152909150733520d5a913427e6f0d6a83e07ccd4a4da316e4d39063b74b1ed590602401602060405180830381865afa158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7991906142b9565b606760146101000a81548163ffffffff021916908363ffffffff1602179055505050565b611ba78282610bac565b61089c57600082815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b611c3d8282610bac565b1561089c57600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6067546040517f52eac8af0000000000000000000000000000000000000000000000000000000081526004810183905260009173ffffffffffffffffffffffffffffffffffffffff16906352eac8af90602401602060405180830381865afa158015611d35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5991906140e2565b611d649060016141f5565b6068546040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810183905291925073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b158015611dd157600080fd5b505af1158015611de5573d6000803e3d6000fd5b50505050919050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526108099084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612f1d565b801580611f6257506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6091906140e2565b155b611fee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610889565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526108099084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b600080606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d891906140e2565b90506000606760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fea61faa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216d91906140e2565b9050600084126121885761218184826141f5565b905061219e565b612191846142df565b61219b90826142a6565b90505b600081156122b9576000670de0b6b3a7640000836121c063ffffffff8361412a565b6121ca908761412a565b6121d49190614317565b6121de9190614317565b6065546036546040517fd50c08f800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015263ffffffff8416602482015292935060009291169063d50c08f890604401602060405180830381865afa158015612262573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122869190614352565b6bffffffffffffffffffffffff1690506122b4818686606760149054906101000a900463ffffffff16613029565b925050505b6122c2856130b9565b6122cc90826141f5565b95945050505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff83811660248301526000919085169063dd62ed3e90604401602060405180830381865afa15801561234b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236f91906140e2565b9050818110156123aa576123a58361238783856142a6565b73ffffffffffffffffffffffffffffffffffffffff8716919061337e565b61091e565b8181111561091e5761091e836123c084846142a6565b73ffffffffffffffffffffffffffffffffffffffff8716919061347c565b604080516002808252606080830184529260009291906020830190803683375050603654825192935073ffffffffffffffffffffffffffffffffffffffff16918391506000906124305761243061418e565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201015260675482519116908290600190811061246e5761246e61418e565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152919050565b6068546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091829173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561250b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252f91906140e2565b6067546040517f010ad6d10000000000000000000000000000000000000000000000000000000081526004810183905291925073ffffffffffffffffffffffffffffffffffffffff169063010ad6d190602401602060405180830381865afa15801561259f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079391906140e2565b6068546067546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9283169263a694fc3a9216906370a0823190602401602060405180830381865afa15801561263c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266091906140e2565b6040518263ffffffff1660e01b815260040161267e91815260200190565b600060405180830381600087803b15801561090a57600080fd5b600054610100900460ff166126b35760005460ff16156126b7565b303b155b612743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610889565b600054610100900460ff1615801561278257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b6038805473ffffffffffffffffffffffffffffffffffffffff8085167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560358054928a169290911682179055604080517fdc4c90d3000000000000000000000000000000000000000000000000000000008152905163dc4c90d3916004808201926020929091908290030181865afa158015612829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284d9190614208565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169182179055604080517ffc0c546a000000000000000000000000000000000000000000000000000000008152905163fc0c546a916004808201926020929091908290030181865afa1580156128e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129099190614208565b603680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055603361295a87826143bb565b5060345461299f907f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50419073ffffffffffffffffffffffffffffffffffffffff16613602565b845160005b81811015612a02576129f27f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504160001b8883815181106129e5576129e561418e565b6020026020010151613602565b6129fb816141bd565b90506129a4565b50612a2d7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab86613602565b835160005b81811015612a8357612a737ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab60001b8783815181106129e5576129e561418e565b612a7c816141bd565b9050612a32565b50612ace7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161360c565b612af87f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504187613602565b612b227f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c8a613602565b612b6c7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c61360c565b612bb67f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161360c565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4791906144d5565b612c5290600a614618565b603755603654612c999073ffffffffffffffffffffffffffffffffffffffff168a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b50508015612cca57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50505050505050565b60606000612ce283600261412a565b612ced9060026141f5565b67ffffffffffffffff811115612d0557612d05613b16565b6040519080825280601f01601f191660200182016040528015612d2f576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612d6657612d6661418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612dc957612dc961418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612e0584600261412a565b612e109060016141f5565b90505b6001811115612ead577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612e5157612e5161418e565b1a60f81b828281518110612e6757612e6761418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612ea681614627565b9050612e13565b508315612f16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610889565b9392505050565b6000612f7f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166136639092919063ffffffff16565b8051909150156108095780806020019051810190612f9d919061465c565b610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610889565b60008083613037868861412a565b6130419190614317565b905063ee6b280061305863ffffffff8516826142a6565b613062908361412a565b61306c9190614317565b9050633b9aca006b033b2e3c9fd0803ce800000061309b836301e133806b033b2e3c9fd0803ce8000000613672565b6130a591906142a6565b6130af9190614317565b9695505050505050565b600080606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ebe2b12b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314d91906140e2565b606754606854604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905193945060009373ffffffffffffffffffffffffffffffffffffffff9384169363010ad6d19316916318160ddd9160048083019260209291908290030181865afa1580156131cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f191906140e2565b6040518263ffffffff1660e01b815260040161320f91815260200190565b602060405180830381865afa15801561322c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061325091906140e2565b90506000841261326b5761326484826141f5565b9050613281565b613274846142df565b61327e90826142a6565b90505b428211158061328e575080155b1561329d575060009392505050565b806127106133496301e13380606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b0a47ee6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333a91906140e2565b613344919061412a565b61379d565b6133559061251c61412a565b61336290620f424061412a565b61336c9190614317565b6133769190614317565b949350505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156133f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341991906140e2565b61342391906141f5565b60405173ffffffffffffffffffffffffffffffffffffffff851660248201526044810182905290915061091e9085907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff83811660248301526000919085169063dd62ed3e90604401602060405180830381865afa1580156134f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061351691906140e2565b9050818110156135a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5361666545524332303a2064656372656173656420616c6c6f77616e6365206260448201527f656c6f77207a65726f00000000000000000000000000000000000000000000006064820152608401610889565b60405173ffffffffffffffffffffffffffffffffffffffff841660248201528282036044820181905290610f579086907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b61089c8282611b9d565b60008281526001602081905260409091200154819060405184907fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff90600090a4600091825260016020819052604090922090910155565b60606133768484600085613869565b600082158061367f575083155b1561368b575080612f16565b6000613698600284614317565b905060006136a76001866142a6565b90506000600286116136ba5760006136c5565b6136c56002876142a6565b9050600085846136d58a8061412a565b6136df91906141f5565b6136e99190614317565b9050600086856136f98b8561412a565b61370391906141f5565b61370d9190614317565b9050600060028361371e878c61412a565b613728919061412a565b6137329190614317565b9050600060068386613744898e61412a565b61374e919061412a565b613758919061412a565b6137629190614317565b905080826137708c8e61412a565b61377a908c6141f5565b61378491906141f5565b61378e91906141f5565b9b9a5050505050505050505050565b6040517f41976e0900000000000000000000000000000000000000000000000000000000815273d9fcd98c322942075a5c3860693e9f4f03aae07b600482015260009081907359828fdf7ee634aaad3f58b19fdba3b03e2d9d80906341976e09906024016040805180830381865afa15801561381d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613841919061467e565b5090506107cf670de0b6b3a764000061385a838661412a565b6138649190614317565b613982565b6060824710156138fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610889565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161392491906140c6565b60006040518083038185875af1925050503d8060008114613961576040519150601f19603f3d011682016040523d82523d6000602084013e613966565b606091505b509150915061397787838387613a37565b979650505050505050565b600080606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156139f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a1691906146bc565b5050509150506305f5e1008382613a2d919061412a565b6107cf9190614317565b60608315613acd578251600003613ac65773ffffffffffffffffffffffffffffffffffffffff85163b613ac6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610889565b5081613376565b6133768383815115613ae25781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108899190613d24565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613b8c57613b8c613b16565b604052919050565b600067ffffffffffffffff831115613bae57613bae613b16565b613bdf60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86011601613b45565b9050828152838383011115613bf357600080fd5b828260208301376000602084830101529392505050565b60008060408385031215613c1d57600080fd5b82359150602083013567ffffffffffffffff811115613c3b57600080fd5b8301601f81018513613c4c57600080fd5b613c5b85823560208401613b94565b9150509250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114613c8757600080fd5b50565b8035613c9581613c65565b919050565b600060208284031215613cac57600080fd5b8135612f1681613c65565b600060208284031215613cc957600080fd5b5035919050565b60008060408385031215613ce357600080fd5b823591506020830135613cf581613c65565b809150509250929050565b60005b83811015613d1b578181015183820152602001613d03565b50506000910152565b6020815260008251806020840152613d43816040850160208701613d00565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600082601f830112613d8657600080fd5b612f1683833560208501613b94565b600082601f830112613da657600080fd5b8135602067ffffffffffffffff821115613dc257613dc2613b16565b8160051b613dd1828201613b45565b9283528481018201928281019087851115613deb57600080fd5b83870192505b84831015613977578235613e0481613c65565b82529183019190830190613df1565b600080600080600080600080610100898b031215613e3057600080fd5b613e3989613c8a565b9750602089013567ffffffffffffffff80821115613e5657600080fd5b613e628c838d01613d75565b985060408b0135915080821115613e7857600080fd5b613e848c838d01613d95565b9750613e9260608c01613c8a565b965060808b0135915080821115613ea857600080fd5b50613eb58b828c01613d95565b945050613ec460a08a01613c8a565b9250613ed260c08a01613c8a565b9150613ee060e08a01613c8a565b90509295985092959890939650565b60008083601f840112613f0157600080fd5b50813567ffffffffffffffff811115613f1957600080fd5b6020830191508360208260051b8501011115613f3457600080fd5b9250929050565b60008060008060008060608789031215613f5457600080fd5b863567ffffffffffffffff80821115613f6c57600080fd5b613f788a838b01613eef565b90985096506020890135915080821115613f9157600080fd5b613f9d8a838b01613eef565b90965094506040890135915080821115613fb657600080fd5b50613fc389828a01613eef565b979a9699509497509295939492505050565b60008060408385031215613fe857600080fd5b8235613ff381613c65565b91506020830135613cf581613c65565b60008060008060008060c0878903121561401c57600080fd5b863561402781613c65565b9550602087013567ffffffffffffffff8082111561404457600080fd5b6140508a838b01613d75565b9650604089013591508082111561406657600080fd5b6140728a838b01613d95565b95506060890135915061408482613c65565b9093506080880135908082111561409a57600080fd5b506140a789828a01613d95565b92505060a08701356140b881613c65565b809150509295509295509295565b600082516140d8818460208701613d00565b9190910192915050565b6000602082840312156140f457600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610be057610be06140fb565b600181811c9082168061415557607f821691505b6020821081036107d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036141ee576141ee6140fb565b5060010190565b80820180821115610be057610be06140fb565b60006020828403121561421a57600080fd5b8151612f1681613c65565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161425d816017850160208801613d00565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161429a816028840160208801613d00565b01602801949350505050565b81810381811115610be057610be06140fb565b6000602082840312156142cb57600080fd5b815163ffffffff81168114612f1657600080fd5b60007f80000000000000000000000000000000000000000000000000000000000000008203614310576143106140fb565b5060000390565b60008261434d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006020828403121561436457600080fd5b815180600b0b8114612f1657600080fd5b601f82111561080957600081815260208120601f850160051c8101602086101561439c5750805b601f850160051c820191505b818110156106f9578281556001016143a8565b815167ffffffffffffffff8111156143d5576143d5613b16565b6143e9816143e38454614141565b84614375565b602080601f83116001811461443c57600084156144065750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106f9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156144895788860151825594840194600190910190840161446a565b50858210156144c557878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156144e757600080fd5b815160ff81168114612f1657600080fd5b600181815b8085111561455157817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614537576145376140fb565b8085161561454457918102915b93841c93908002906144fd565b509250929050565b60008261456857506001610be0565b8161457557506000610be0565b816001811461458b5760028114614595576145b1565b6001915050610be0565b60ff8411156145a6576145a66140fb565b50506001821b610be0565b5060208310610133831016604e8410600b84101617156145d4575081810a610be0565b6145de83836144f8565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614610576146106140fb565b029392505050565b6000612f1660ff841683614559565b600081614636576146366140fb565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561466e57600080fd5b81518015158114612f1657600080fd5b6000806040838503121561469157600080fd5b505080516020909101519092909150565b805169ffffffffffffffffffff81168114613c9557600080fd5b600080600080600060a086880312156146d457600080fd5b6146dd866146a2565b9450602086015193506040860151925060608601519150614700608087016146a2565b9050929550929590935056fea2646970667358221220756dcdf3030d6fef303892a4a7c0fc3952e0c1e16851ef31a6a2a8935c15a02164736f6c63430008110033", + "nonce": "0x402", + "accessList": [] + }, + "additionalContracts": [] + } + ], + "receipts": [], + "libraries": [], + "pending": [ + "0x6e7874cdea8abbaae2abf8223c42d95ba945476a3c8e7f18b20701181a90a094" + ], + "path": "/Users/gnervo/Documents/Angle/strategies-dev/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-latest.json", + "returns": {}, + "timestamp": 1678096036, + "chain": 1, + "multi": false, + "commit": "adcd1f3" +} \ No newline at end of file diff --git a/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-1678096050.json b/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-1678096050.json new file mode 100644 index 0000000..59b3bc3 --- /dev/null +++ b/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-1678096050.json @@ -0,0 +1,49 @@ +{ + "transactions": [ + { + "hash": "0x6e7874cdea8abbaae2abf8223c42d95ba945476a3c8e7f18b20701181a90a094", + "transactionType": "CREATE", + "contractName": "GenericEulerStaker", + "contractAddress": "0xeACa7559F81dADE5d11fE8852E832a699396aBB7", + "function": null, + "arguments": null, + "rpc": "https://mainnet.infura.io/v3/092a612c762245f0946ecb943377617d", + "transaction": { + "type": "0x02", + "from": "0xfda462548ce04282f4b6d6619823a7c64fdc0185", + "gas": "0x4f42e7", + "value": "0x0", + "data": "0x60806040523480156200001157600080fd5b50600054610100900460ff166200002f5760005460ff161562000039565b62000039620000de565b620000a15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff16158015620000c4576000805461ffff19166101011790555b8015620000d7576000805461ff00191690555b5062000102565b6000620000f630620000fc60201b620013b71760201c565b15905090565b3b151590565b61474280620001126000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c806375653eb411610160578063a8c62e76116100d8578063d0e30db01161008c578063dc4c90d311610071578063dc4c90d3146105a5578063ecf609ae146105c5578063ef06e72c146105d857600080fd5b8063d0e30db01461058a578063d547741f1461059257600080fd5b8063b8dc491b116100bd578063b8dc491b14610567578063c1590cd71461057a578063c6afba3c1461058257600080fd5b8063a8c62e7614610534578063b82c4dc11461055457600080fd5b8063953d9cf11161012f578063a25b26be11610114578063a25b26be146104d1578063a73e0f3b146104e4578063a7d385e21461052157600080fd5b8063953d9cf1146104a9578063a217fddf146104c957600080fd5b806375653eb414610459578063853828b6146104795780638b2021761461048157806391d148541461049657600080fd5b80632e779525116101f3578063372500ab116101c257806357ded9c9116101a757806357ded9c914610412578063580b7c2e1461041a5780635be9b2d31461044157600080fd5b8063372500ab146103f75780635312ea8e146103ff57600080fd5b80632e779525146103a25780632f2ff15d146103aa578063364bc15a146103bd57806336568abe146103e457600080fd5b8063116ac4a31161024a578063248a9ca31161022f578063248a9ca31461034457806324ea54f4146103685780632e1a7d4d1461038f57600080fd5b8063116ac4a3146102f75780631f1fcd51146102ff57600080fd5b806305b419341461027c5780630948c0b6146102915780630b6d1d17146102a4578063108cce74146102c0575b600080fd5b61028f61028a366004613c0a565b6105f8565b005b61028f61029f366004613c9a565b610701565b6102ad60375481565b6040519081526020015b60405180910390f35b6069546102e59074010000000000000000000000000000000000000000900460ff1681565b60405160ff90911681526020016102b7565b6102ad610774565b60365461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b7565b6102ad610352366004613cb7565b6000908152600160208190526040909120015490565b6102ad7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504181565b6102ad61039d366004613cb7565b610799565b61028f6107d8565b61028f6103b8366004613cd0565b6107e2565b6102ad7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab81565b61028f6103f2366004613cd0565b61080e565b61028f6108a0565b61028f61040d366004613cb7565b610924565b6102ad610aa0565b6102ad7f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c81565b610449610aaf565b60405190151581526020016102b7565b60685461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b610449610ace565b610489610b1e565b6040516102b79190613d24565b6104496104a4366004613cd0565b610bac565b60675461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b6102ad600081565b61028f6104df366004613e13565b610be6565b60675461050c9074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016102b7565b6102ad61052f366004613cb7565b610cbf565b60355461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b61028f610562366004613f3b565b610cca565b61028f610575366004613fd5565b610dd1565b6102ad610f5e565b6102ad610f68565b61028f611014565b61028f6105a0366004613cd0565b611166565b60345461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b61028f6105d3366004614003565b61118d565b60695461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab61062381336113bd565b603854604051600091829173ffffffffffffffffffffffffffffffffffffffff909116906106529086906140c6565b6000604051808303816000865af19150503d806000811461068f576040519150601f19603f3d011682016040523d82523d6000602084013e610694565b606091505b5091509150816106a7576106a781611466565b6000818060200190518101906106bd91906140e2565b9050858110156106f9576040517f22313ae900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161072c81336113bd565b50603880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061077f6114a7565b90506107896114b3565b610793908261412a565b91505090565b60007f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c6107c681336113bd565b6107cf83611559565b91505b50919050565b6107e0611965565b565b600082815260016020819052604090912001546107ff81336113bd565b6108098383611b9d565b505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f373100000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b61089c8282611c33565b5050565b606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561090a57600080fd5b505af115801561091e573d6000803e3d6000fd5b50505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161094f81336113bd565b61095882611cc5565b506067546040517f441a3e70000000000000000000000000000000000000000000000000000000008152600060048201526024810184905273ffffffffffffffffffffffffffffffffffffffff9091169063441a3e7090604401600060405180830381600087803b1580156109cc57600080fd5b505af11580156109e0573d6000803e3d6000fd5b50506034546036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015261089c945073ffffffffffffffffffffffffffffffffffffffff92831693509116906370a0823190602401602060405180830381865afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8091906140e2565b60365473ffffffffffffffffffffffffffffffffffffffff169190611dee565b6000610aaa6114a7565b905090565b6000603754600a610ac0919061412a565b610ac86114b3565b11905090565b60007f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c610afb81336113bd565b6000610b056114b3565b90506000610b1282611559565b91909110159250505090565b60338054610b2b90614141565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5790614141565b8015610ba45780601f10610b7957610100808354040283529160200191610ba4565b820191906000526020600020905b815481529060010190602001808311610b8757829003601f168201915b505050505081565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b92915050565b610bf488888888888861118d565b6068805473ffffffffffffffffffffffffffffffffffffffff8085167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255606980548484169216919091179055606754610c769116837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b610cb573d9fcd98c322942075a5c3860693e9f4f03aae07b847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b5050505050505050565b6000610be082612044565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041610cf581336113bd565b8584141580610d045750858214155b15610d3b576040517f46282e8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560005b81811015610dc657610db6898983818110610d5c57610d5c61418e565b9050602002016020810190610d719190613c9a565b888884818110610d8357610d8361418e565b9050602002016020810190610d989190613c9a565b878785818110610daa57610daa61418e565b905060200201356122d5565b610dbf816141bd565b9050610d3f565b505050505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041610dfc81336113bd565b6000610e066123de565b805190915060005b81811015610ea457828181518110610e2857610e2861418e565b602002602001015173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610e94576040517f093e1cdb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e9d816141bd565b9050610e0e565b506040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152610f5790859073ffffffffffffffffffffffffffffffffffffffff8816906370a0823190602401602060405180830381865afa158015610f15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3991906140e2565b73ffffffffffffffffffffffffffffffffffffffff88169190611dee565b5050505050565b6000610aaa6114b3565b600080610f73612498565b6067546040517f3af9e669000000000000000000000000000000000000000000000000000000008152306004820152919250829173ffffffffffffffffffffffffffffffffffffffff90911690633af9e66990602401602060405180830381865afa158015610fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100a91906140e2565b61079391906141f5565b7f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c61103f81336113bd565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156110ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d291906140e2565b6067546040517fe2bbb158000000000000000000000000000000000000000000000000000000008152600060048201526024810183905291925073ffffffffffffffffffffffffffffffffffffffff169063e2bbb15890604401600060405180830381600087803b15801561114657600080fd5b505af115801561115a573d6000803e3d6000fd5b5050505061089c6125c3565b6000828152600160208190526040909120015461118381336113bd565b6108098383611c33565b61119b868686868686612698565b6036546040517f8948874900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152733520d5a913427e6f0d6a83e07ccd4a4da316e4d390638948874990602401602060405180830381865afa15801561121d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112419190614208565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9283161790556036546040517f1b30058200000000000000000000000000000000000000000000000000000000815291166004820152733520d5a913427e6f0d6a83e07ccd4a4da316e4d390631b30058290602401602060405180830381865afa1580156112ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113129190614208565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905561135f611965565b6036546106f99073ffffffffffffffffffffffffffffffffffffffff167327182842e098f60e3d576794a5bffb0777e025d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b3b151590565b6113c78282610bac565b61089c576113ec8173ffffffffffffffffffffffffffffffffffffffff166014612cd3565b6113f7836020612cd3565b604051602001611408929190614225565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261088991600401613d24565b80511561147557805181602001fd5b6040517fc76d51a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610aaa6000612044565b60006114bd610f68565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154f91906140e2565b610aaa91906141f5565b600080611564612498565b6067546040517f3af9e66900000000000000000000000000000000000000000000000000000000815230600482015291925060009173ffffffffffffffffffffffffffffffffffffffff90911690633af9e66990602401602060405180830381865afa1580156115d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fc91906140e2565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015291925060009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611670573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169491906140e2565b90506000816116a384866141f5565b6116ad91906141f5565b9050808611156116bb578095505b8582106116f6576035546036546116ec9173ffffffffffffffffffffffffffffffffffffffff918216911688611dee565b5093949350505050565b6036546040517f70a082310000000000000000000000000000000000000000000000000000000081527327182842e098f60e3d576794a5bffb0777e025d3600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179d91906140e2565b9050600181111561189b5760006117b484896142a6565b905060008282116117de578582116117cd5760006117d7565b6117d786836142a6565b90506117fc565b8583116117ec5760006117f6565b6117f686846142a6565b90508291505b801561180d5761180b81611cc5565b505b6067546040517f441a3e70000000000000000000000000000000000000000000000000000000008152600060048201526024810184905273ffffffffffffffffffffffffffffffffffffffff9091169063441a3e7090604401600060405180830381600087803b15801561188057600080fd5b505af1158015611894573d6000803e3d6000fd5b5050505050505b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192d91906140e2565b60355460365491945061195a9173ffffffffffffffffffffffffffffffffffffffff908116911685611dee565b509095945050505050565b6036546040517fb409dd9b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152600090733520d5a913427e6f0d6a83e07ccd4a4da316e4d39063b409dd9b90602401602060405180830381865afa1580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0e91906140e2565b6040517fcab65f01000000000000000000000000000000000000000000000000000000008152600481018290529091506000907327182842e098f60e3d576794a5bffb0777e025d39063cab65f0190602401602060405180830381865afa158015611a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa19190614208565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116919091179091556036546040517fb74b1ed500000000000000000000000000000000000000000000000000000000815291166004820152909150733520d5a913427e6f0d6a83e07ccd4a4da316e4d39063b74b1ed590602401602060405180830381865afa158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7991906142b9565b606760146101000a81548163ffffffff021916908363ffffffff1602179055505050565b611ba78282610bac565b61089c57600082815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b611c3d8282610bac565b1561089c57600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6067546040517f52eac8af0000000000000000000000000000000000000000000000000000000081526004810183905260009173ffffffffffffffffffffffffffffffffffffffff16906352eac8af90602401602060405180830381865afa158015611d35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5991906140e2565b611d649060016141f5565b6068546040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810183905291925073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b158015611dd157600080fd5b505af1158015611de5573d6000803e3d6000fd5b50505050919050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526108099084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612f1d565b801580611f6257506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6091906140e2565b155b611fee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610889565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526108099084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b600080606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d891906140e2565b90506000606760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fea61faa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216d91906140e2565b9050600084126121885761218184826141f5565b905061219e565b612191846142df565b61219b90826142a6565b90505b600081156122b9576000670de0b6b3a7640000836121c063ffffffff8361412a565b6121ca908761412a565b6121d49190614317565b6121de9190614317565b6065546036546040517fd50c08f800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015263ffffffff8416602482015292935060009291169063d50c08f890604401602060405180830381865afa158015612262573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122869190614352565b6bffffffffffffffffffffffff1690506122b4818686606760149054906101000a900463ffffffff16613029565b925050505b6122c2856130b9565b6122cc90826141f5565b95945050505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff83811660248301526000919085169063dd62ed3e90604401602060405180830381865afa15801561234b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236f91906140e2565b9050818110156123aa576123a58361238783856142a6565b73ffffffffffffffffffffffffffffffffffffffff8716919061337e565b61091e565b8181111561091e5761091e836123c084846142a6565b73ffffffffffffffffffffffffffffffffffffffff8716919061347c565b604080516002808252606080830184529260009291906020830190803683375050603654825192935073ffffffffffffffffffffffffffffffffffffffff16918391506000906124305761243061418e565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201015260675482519116908290600190811061246e5761246e61418e565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152919050565b6068546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091829173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561250b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252f91906140e2565b6067546040517f010ad6d10000000000000000000000000000000000000000000000000000000081526004810183905291925073ffffffffffffffffffffffffffffffffffffffff169063010ad6d190602401602060405180830381865afa15801561259f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079391906140e2565b6068546067546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9283169263a694fc3a9216906370a0823190602401602060405180830381865afa15801561263c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266091906140e2565b6040518263ffffffff1660e01b815260040161267e91815260200190565b600060405180830381600087803b15801561090a57600080fd5b600054610100900460ff166126b35760005460ff16156126b7565b303b155b612743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610889565b600054610100900460ff1615801561278257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b6038805473ffffffffffffffffffffffffffffffffffffffff8085167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560358054928a169290911682179055604080517fdc4c90d3000000000000000000000000000000000000000000000000000000008152905163dc4c90d3916004808201926020929091908290030181865afa158015612829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284d9190614208565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169182179055604080517ffc0c546a000000000000000000000000000000000000000000000000000000008152905163fc0c546a916004808201926020929091908290030181865afa1580156128e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129099190614208565b603680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055603361295a87826143bb565b5060345461299f907f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50419073ffffffffffffffffffffffffffffffffffffffff16613602565b845160005b81811015612a02576129f27f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504160001b8883815181106129e5576129e561418e565b6020026020010151613602565b6129fb816141bd565b90506129a4565b50612a2d7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab86613602565b835160005b81811015612a8357612a737ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab60001b8783815181106129e5576129e561418e565b612a7c816141bd565b9050612a32565b50612ace7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161360c565b612af87f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504187613602565b612b227f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c8a613602565b612b6c7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c61360c565b612bb67f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161360c565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4791906144d5565b612c5290600a614618565b603755603654612c999073ffffffffffffffffffffffffffffffffffffffff168a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b50508015612cca57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50505050505050565b60606000612ce283600261412a565b612ced9060026141f5565b67ffffffffffffffff811115612d0557612d05613b16565b6040519080825280601f01601f191660200182016040528015612d2f576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612d6657612d6661418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612dc957612dc961418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612e0584600261412a565b612e109060016141f5565b90505b6001811115612ead577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612e5157612e5161418e565b1a60f81b828281518110612e6757612e6761418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612ea681614627565b9050612e13565b508315612f16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610889565b9392505050565b6000612f7f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166136639092919063ffffffff16565b8051909150156108095780806020019051810190612f9d919061465c565b610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610889565b60008083613037868861412a565b6130419190614317565b905063ee6b280061305863ffffffff8516826142a6565b613062908361412a565b61306c9190614317565b9050633b9aca006b033b2e3c9fd0803ce800000061309b836301e133806b033b2e3c9fd0803ce8000000613672565b6130a591906142a6565b6130af9190614317565b9695505050505050565b600080606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ebe2b12b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314d91906140e2565b606754606854604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905193945060009373ffffffffffffffffffffffffffffffffffffffff9384169363010ad6d19316916318160ddd9160048083019260209291908290030181865afa1580156131cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f191906140e2565b6040518263ffffffff1660e01b815260040161320f91815260200190565b602060405180830381865afa15801561322c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061325091906140e2565b90506000841261326b5761326484826141f5565b9050613281565b613274846142df565b61327e90826142a6565b90505b428211158061328e575080155b1561329d575060009392505050565b806127106133496301e13380606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b0a47ee6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333a91906140e2565b613344919061412a565b61379d565b6133559061251c61412a565b61336290620f424061412a565b61336c9190614317565b6133769190614317565b949350505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156133f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341991906140e2565b61342391906141f5565b60405173ffffffffffffffffffffffffffffffffffffffff851660248201526044810182905290915061091e9085907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff83811660248301526000919085169063dd62ed3e90604401602060405180830381865afa1580156134f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061351691906140e2565b9050818110156135a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5361666545524332303a2064656372656173656420616c6c6f77616e6365206260448201527f656c6f77207a65726f00000000000000000000000000000000000000000000006064820152608401610889565b60405173ffffffffffffffffffffffffffffffffffffffff841660248201528282036044820181905290610f579086907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b61089c8282611b9d565b60008281526001602081905260409091200154819060405184907fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff90600090a4600091825260016020819052604090922090910155565b60606133768484600085613869565b600082158061367f575083155b1561368b575080612f16565b6000613698600284614317565b905060006136a76001866142a6565b90506000600286116136ba5760006136c5565b6136c56002876142a6565b9050600085846136d58a8061412a565b6136df91906141f5565b6136e99190614317565b9050600086856136f98b8561412a565b61370391906141f5565b61370d9190614317565b9050600060028361371e878c61412a565b613728919061412a565b6137329190614317565b9050600060068386613744898e61412a565b61374e919061412a565b613758919061412a565b6137629190614317565b905080826137708c8e61412a565b61377a908c6141f5565b61378491906141f5565b61378e91906141f5565b9b9a5050505050505050505050565b6040517f41976e0900000000000000000000000000000000000000000000000000000000815273d9fcd98c322942075a5c3860693e9f4f03aae07b600482015260009081907359828fdf7ee634aaad3f58b19fdba3b03e2d9d80906341976e09906024016040805180830381865afa15801561381d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613841919061467e565b5090506107cf670de0b6b3a764000061385a838661412a565b6138649190614317565b613982565b6060824710156138fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610889565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161392491906140c6565b60006040518083038185875af1925050503d8060008114613961576040519150601f19603f3d011682016040523d82523d6000602084013e613966565b606091505b509150915061397787838387613a37565b979650505050505050565b600080606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156139f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a1691906146bc565b5050509150506305f5e1008382613a2d919061412a565b6107cf9190614317565b60608315613acd578251600003613ac65773ffffffffffffffffffffffffffffffffffffffff85163b613ac6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610889565b5081613376565b6133768383815115613ae25781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108899190613d24565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613b8c57613b8c613b16565b604052919050565b600067ffffffffffffffff831115613bae57613bae613b16565b613bdf60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86011601613b45565b9050828152838383011115613bf357600080fd5b828260208301376000602084830101529392505050565b60008060408385031215613c1d57600080fd5b82359150602083013567ffffffffffffffff811115613c3b57600080fd5b8301601f81018513613c4c57600080fd5b613c5b85823560208401613b94565b9150509250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114613c8757600080fd5b50565b8035613c9581613c65565b919050565b600060208284031215613cac57600080fd5b8135612f1681613c65565b600060208284031215613cc957600080fd5b5035919050565b60008060408385031215613ce357600080fd5b823591506020830135613cf581613c65565b809150509250929050565b60005b83811015613d1b578181015183820152602001613d03565b50506000910152565b6020815260008251806020840152613d43816040850160208701613d00565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600082601f830112613d8657600080fd5b612f1683833560208501613b94565b600082601f830112613da657600080fd5b8135602067ffffffffffffffff821115613dc257613dc2613b16565b8160051b613dd1828201613b45565b9283528481018201928281019087851115613deb57600080fd5b83870192505b84831015613977578235613e0481613c65565b82529183019190830190613df1565b600080600080600080600080610100898b031215613e3057600080fd5b613e3989613c8a565b9750602089013567ffffffffffffffff80821115613e5657600080fd5b613e628c838d01613d75565b985060408b0135915080821115613e7857600080fd5b613e848c838d01613d95565b9750613e9260608c01613c8a565b965060808b0135915080821115613ea857600080fd5b50613eb58b828c01613d95565b945050613ec460a08a01613c8a565b9250613ed260c08a01613c8a565b9150613ee060e08a01613c8a565b90509295985092959890939650565b60008083601f840112613f0157600080fd5b50813567ffffffffffffffff811115613f1957600080fd5b6020830191508360208260051b8501011115613f3457600080fd5b9250929050565b60008060008060008060608789031215613f5457600080fd5b863567ffffffffffffffff80821115613f6c57600080fd5b613f788a838b01613eef565b90985096506020890135915080821115613f9157600080fd5b613f9d8a838b01613eef565b90965094506040890135915080821115613fb657600080fd5b50613fc389828a01613eef565b979a9699509497509295939492505050565b60008060408385031215613fe857600080fd5b8235613ff381613c65565b91506020830135613cf581613c65565b60008060008060008060c0878903121561401c57600080fd5b863561402781613c65565b9550602087013567ffffffffffffffff8082111561404457600080fd5b6140508a838b01613d75565b9650604089013591508082111561406657600080fd5b6140728a838b01613d95565b95506060890135915061408482613c65565b9093506080880135908082111561409a57600080fd5b506140a789828a01613d95565b92505060a08701356140b881613c65565b809150509295509295509295565b600082516140d8818460208701613d00565b9190910192915050565b6000602082840312156140f457600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610be057610be06140fb565b600181811c9082168061415557607f821691505b6020821081036107d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036141ee576141ee6140fb565b5060010190565b80820180821115610be057610be06140fb565b60006020828403121561421a57600080fd5b8151612f1681613c65565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161425d816017850160208801613d00565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161429a816028840160208801613d00565b01602801949350505050565b81810381811115610be057610be06140fb565b6000602082840312156142cb57600080fd5b815163ffffffff81168114612f1657600080fd5b60007f80000000000000000000000000000000000000000000000000000000000000008203614310576143106140fb565b5060000390565b60008261434d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006020828403121561436457600080fd5b815180600b0b8114612f1657600080fd5b601f82111561080957600081815260208120601f850160051c8101602086101561439c5750805b601f850160051c820191505b818110156106f9578281556001016143a8565b815167ffffffffffffffff8111156143d5576143d5613b16565b6143e9816143e38454614141565b84614375565b602080601f83116001811461443c57600084156144065750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106f9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156144895788860151825594840194600190910190840161446a565b50858210156144c557878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156144e757600080fd5b815160ff81168114612f1657600080fd5b600181815b8085111561455157817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614537576145376140fb565b8085161561454457918102915b93841c93908002906144fd565b509250929050565b60008261456857506001610be0565b8161457557506000610be0565b816001811461458b5760028114614595576145b1565b6001915050610be0565b60ff8411156145a6576145a66140fb565b50506001821b610be0565b5060208310610133831016604e8410600b84101617156145d4575081810a610be0565b6145de83836144f8565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614610576146106140fb565b029392505050565b6000612f1660ff841683614559565b600081614636576146366140fb565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561466e57600080fd5b81518015158114612f1657600080fd5b6000806040838503121561469157600080fd5b505080516020909101519092909150565b805169ffffffffffffffffffff81168114613c9557600080fd5b600080600080600060a086880312156146d457600080fd5b6146dd866146a2565b9450602086015193506040860151925060608601519150614700608087016146a2565b9050929550929590935056fea2646970667358221220756dcdf3030d6fef303892a4a7c0fc3952e0c1e16851ef31a6a2a8935c15a02164736f6c63430008110033", + "nonce": "0x402", + "accessList": [] + }, + "additionalContracts": [] + } + ], + "receipts": [ + { + "transactionHash": "0x6e7874cdea8abbaae2abf8223c42d95ba945476a3c8e7f18b20701181a90a094", + "transactionIndex": "0x19", + "blockHash": "0x5de9d5c503b0704571c10a68714cb28822088809bac886b5234abcfbd30f26d4", + "blockNumber": "0xffde09", + "from": "0xfdA462548Ce04282f4B6D6619823a7C64Fdc0185", + "to": null, + "cumulativeGasUsed": "0x5d31cd", + "gasUsed": "0x3cf863", + "contractAddress": "0xeACa7559F81dADE5d11fE8852E832a699396aBB7", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x56facedc2" + } + ], + "libraries": [], + "pending": [], + "path": "/Users/gnervo/Documents/Angle/strategies-dev/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-latest.json", + "returns": {}, + "timestamp": 1678096050, + "chain": 1, + "multi": false, + "commit": "adcd1f3" +} \ No newline at end of file diff --git a/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-1678096078.json b/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-1678096078.json new file mode 100644 index 0000000..4c88014 --- /dev/null +++ b/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-1678096078.json @@ -0,0 +1,49 @@ +{ + "transactions": [ + { + "hash": "0x6e7874cdea8abbaae2abf8223c42d95ba945476a3c8e7f18b20701181a90a094", + "transactionType": "CREATE", + "contractName": "GenericEulerStaker", + "contractAddress": "0xeACa7559F81dADE5d11fE8852E832a699396aBB7", + "function": null, + "arguments": null, + "rpc": "https://mainnet.infura.io/v3/092a612c762245f0946ecb943377617d", + "transaction": { + "type": "0x02", + "from": "0xfda462548ce04282f4b6d6619823a7c64fdc0185", + "gas": "0x4f42e7", + "value": "0x0", + "data": "0x60806040523480156200001157600080fd5b50600054610100900460ff166200002f5760005460ff161562000039565b62000039620000de565b620000a15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff16158015620000c4576000805461ffff19166101011790555b8015620000d7576000805461ff00191690555b5062000102565b6000620000f630620000fc60201b620013b71760201c565b15905090565b3b151590565b61474280620001126000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c806375653eb411610160578063a8c62e76116100d8578063d0e30db01161008c578063dc4c90d311610071578063dc4c90d3146105a5578063ecf609ae146105c5578063ef06e72c146105d857600080fd5b8063d0e30db01461058a578063d547741f1461059257600080fd5b8063b8dc491b116100bd578063b8dc491b14610567578063c1590cd71461057a578063c6afba3c1461058257600080fd5b8063a8c62e7614610534578063b82c4dc11461055457600080fd5b8063953d9cf11161012f578063a25b26be11610114578063a25b26be146104d1578063a73e0f3b146104e4578063a7d385e21461052157600080fd5b8063953d9cf1146104a9578063a217fddf146104c957600080fd5b806375653eb414610459578063853828b6146104795780638b2021761461048157806391d148541461049657600080fd5b80632e779525116101f3578063372500ab116101c257806357ded9c9116101a757806357ded9c914610412578063580b7c2e1461041a5780635be9b2d31461044157600080fd5b8063372500ab146103f75780635312ea8e146103ff57600080fd5b80632e779525146103a25780632f2ff15d146103aa578063364bc15a146103bd57806336568abe146103e457600080fd5b8063116ac4a31161024a578063248a9ca31161022f578063248a9ca31461034457806324ea54f4146103685780632e1a7d4d1461038f57600080fd5b8063116ac4a3146102f75780631f1fcd51146102ff57600080fd5b806305b419341461027c5780630948c0b6146102915780630b6d1d17146102a4578063108cce74146102c0575b600080fd5b61028f61028a366004613c0a565b6105f8565b005b61028f61029f366004613c9a565b610701565b6102ad60375481565b6040519081526020015b60405180910390f35b6069546102e59074010000000000000000000000000000000000000000900460ff1681565b60405160ff90911681526020016102b7565b6102ad610774565b60365461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b7565b6102ad610352366004613cb7565b6000908152600160208190526040909120015490565b6102ad7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504181565b6102ad61039d366004613cb7565b610799565b61028f6107d8565b61028f6103b8366004613cd0565b6107e2565b6102ad7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab81565b61028f6103f2366004613cd0565b61080e565b61028f6108a0565b61028f61040d366004613cb7565b610924565b6102ad610aa0565b6102ad7f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c81565b610449610aaf565b60405190151581526020016102b7565b60685461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b610449610ace565b610489610b1e565b6040516102b79190613d24565b6104496104a4366004613cd0565b610bac565b60675461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b6102ad600081565b61028f6104df366004613e13565b610be6565b60675461050c9074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016102b7565b6102ad61052f366004613cb7565b610cbf565b60355461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b61028f610562366004613f3b565b610cca565b61028f610575366004613fd5565b610dd1565b6102ad610f5e565b6102ad610f68565b61028f611014565b61028f6105a0366004613cd0565b611166565b60345461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b61028f6105d3366004614003565b61118d565b60695461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab61062381336113bd565b603854604051600091829173ffffffffffffffffffffffffffffffffffffffff909116906106529086906140c6565b6000604051808303816000865af19150503d806000811461068f576040519150601f19603f3d011682016040523d82523d6000602084013e610694565b606091505b5091509150816106a7576106a781611466565b6000818060200190518101906106bd91906140e2565b9050858110156106f9576040517f22313ae900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161072c81336113bd565b50603880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061077f6114a7565b90506107896114b3565b610793908261412a565b91505090565b60007f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c6107c681336113bd565b6107cf83611559565b91505b50919050565b6107e0611965565b565b600082815260016020819052604090912001546107ff81336113bd565b6108098383611b9d565b505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f373100000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b61089c8282611c33565b5050565b606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561090a57600080fd5b505af115801561091e573d6000803e3d6000fd5b50505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161094f81336113bd565b61095882611cc5565b506067546040517f441a3e70000000000000000000000000000000000000000000000000000000008152600060048201526024810184905273ffffffffffffffffffffffffffffffffffffffff9091169063441a3e7090604401600060405180830381600087803b1580156109cc57600080fd5b505af11580156109e0573d6000803e3d6000fd5b50506034546036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015261089c945073ffffffffffffffffffffffffffffffffffffffff92831693509116906370a0823190602401602060405180830381865afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8091906140e2565b60365473ffffffffffffffffffffffffffffffffffffffff169190611dee565b6000610aaa6114a7565b905090565b6000603754600a610ac0919061412a565b610ac86114b3565b11905090565b60007f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c610afb81336113bd565b6000610b056114b3565b90506000610b1282611559565b91909110159250505090565b60338054610b2b90614141565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5790614141565b8015610ba45780601f10610b7957610100808354040283529160200191610ba4565b820191906000526020600020905b815481529060010190602001808311610b8757829003601f168201915b505050505081565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b92915050565b610bf488888888888861118d565b6068805473ffffffffffffffffffffffffffffffffffffffff8085167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255606980548484169216919091179055606754610c769116837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b610cb573d9fcd98c322942075a5c3860693e9f4f03aae07b847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b5050505050505050565b6000610be082612044565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041610cf581336113bd565b8584141580610d045750858214155b15610d3b576040517f46282e8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560005b81811015610dc657610db6898983818110610d5c57610d5c61418e565b9050602002016020810190610d719190613c9a565b888884818110610d8357610d8361418e565b9050602002016020810190610d989190613c9a565b878785818110610daa57610daa61418e565b905060200201356122d5565b610dbf816141bd565b9050610d3f565b505050505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041610dfc81336113bd565b6000610e066123de565b805190915060005b81811015610ea457828181518110610e2857610e2861418e565b602002602001015173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610e94576040517f093e1cdb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e9d816141bd565b9050610e0e565b506040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152610f5790859073ffffffffffffffffffffffffffffffffffffffff8816906370a0823190602401602060405180830381865afa158015610f15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3991906140e2565b73ffffffffffffffffffffffffffffffffffffffff88169190611dee565b5050505050565b6000610aaa6114b3565b600080610f73612498565b6067546040517f3af9e669000000000000000000000000000000000000000000000000000000008152306004820152919250829173ffffffffffffffffffffffffffffffffffffffff90911690633af9e66990602401602060405180830381865afa158015610fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100a91906140e2565b61079391906141f5565b7f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c61103f81336113bd565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156110ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d291906140e2565b6067546040517fe2bbb158000000000000000000000000000000000000000000000000000000008152600060048201526024810183905291925073ffffffffffffffffffffffffffffffffffffffff169063e2bbb15890604401600060405180830381600087803b15801561114657600080fd5b505af115801561115a573d6000803e3d6000fd5b5050505061089c6125c3565b6000828152600160208190526040909120015461118381336113bd565b6108098383611c33565b61119b868686868686612698565b6036546040517f8948874900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152733520d5a913427e6f0d6a83e07ccd4a4da316e4d390638948874990602401602060405180830381865afa15801561121d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112419190614208565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9283161790556036546040517f1b30058200000000000000000000000000000000000000000000000000000000815291166004820152733520d5a913427e6f0d6a83e07ccd4a4da316e4d390631b30058290602401602060405180830381865afa1580156112ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113129190614208565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905561135f611965565b6036546106f99073ffffffffffffffffffffffffffffffffffffffff167327182842e098f60e3d576794a5bffb0777e025d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b3b151590565b6113c78282610bac565b61089c576113ec8173ffffffffffffffffffffffffffffffffffffffff166014612cd3565b6113f7836020612cd3565b604051602001611408929190614225565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261088991600401613d24565b80511561147557805181602001fd5b6040517fc76d51a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610aaa6000612044565b60006114bd610f68565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154f91906140e2565b610aaa91906141f5565b600080611564612498565b6067546040517f3af9e66900000000000000000000000000000000000000000000000000000000815230600482015291925060009173ffffffffffffffffffffffffffffffffffffffff90911690633af9e66990602401602060405180830381865afa1580156115d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fc91906140e2565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015291925060009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611670573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169491906140e2565b90506000816116a384866141f5565b6116ad91906141f5565b9050808611156116bb578095505b8582106116f6576035546036546116ec9173ffffffffffffffffffffffffffffffffffffffff918216911688611dee565b5093949350505050565b6036546040517f70a082310000000000000000000000000000000000000000000000000000000081527327182842e098f60e3d576794a5bffb0777e025d3600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179d91906140e2565b9050600181111561189b5760006117b484896142a6565b905060008282116117de578582116117cd5760006117d7565b6117d786836142a6565b90506117fc565b8583116117ec5760006117f6565b6117f686846142a6565b90508291505b801561180d5761180b81611cc5565b505b6067546040517f441a3e70000000000000000000000000000000000000000000000000000000008152600060048201526024810184905273ffffffffffffffffffffffffffffffffffffffff9091169063441a3e7090604401600060405180830381600087803b15801561188057600080fd5b505af1158015611894573d6000803e3d6000fd5b5050505050505b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192d91906140e2565b60355460365491945061195a9173ffffffffffffffffffffffffffffffffffffffff908116911685611dee565b509095945050505050565b6036546040517fb409dd9b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152600090733520d5a913427e6f0d6a83e07ccd4a4da316e4d39063b409dd9b90602401602060405180830381865afa1580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0e91906140e2565b6040517fcab65f01000000000000000000000000000000000000000000000000000000008152600481018290529091506000907327182842e098f60e3d576794a5bffb0777e025d39063cab65f0190602401602060405180830381865afa158015611a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa19190614208565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116919091179091556036546040517fb74b1ed500000000000000000000000000000000000000000000000000000000815291166004820152909150733520d5a913427e6f0d6a83e07ccd4a4da316e4d39063b74b1ed590602401602060405180830381865afa158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7991906142b9565b606760146101000a81548163ffffffff021916908363ffffffff1602179055505050565b611ba78282610bac565b61089c57600082815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b611c3d8282610bac565b1561089c57600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6067546040517f52eac8af0000000000000000000000000000000000000000000000000000000081526004810183905260009173ffffffffffffffffffffffffffffffffffffffff16906352eac8af90602401602060405180830381865afa158015611d35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5991906140e2565b611d649060016141f5565b6068546040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810183905291925073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b158015611dd157600080fd5b505af1158015611de5573d6000803e3d6000fd5b50505050919050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526108099084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612f1d565b801580611f6257506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6091906140e2565b155b611fee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610889565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526108099084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b600080606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d891906140e2565b90506000606760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fea61faa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216d91906140e2565b9050600084126121885761218184826141f5565b905061219e565b612191846142df565b61219b90826142a6565b90505b600081156122b9576000670de0b6b3a7640000836121c063ffffffff8361412a565b6121ca908761412a565b6121d49190614317565b6121de9190614317565b6065546036546040517fd50c08f800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015263ffffffff8416602482015292935060009291169063d50c08f890604401602060405180830381865afa158015612262573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122869190614352565b6bffffffffffffffffffffffff1690506122b4818686606760149054906101000a900463ffffffff16613029565b925050505b6122c2856130b9565b6122cc90826141f5565b95945050505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff83811660248301526000919085169063dd62ed3e90604401602060405180830381865afa15801561234b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236f91906140e2565b9050818110156123aa576123a58361238783856142a6565b73ffffffffffffffffffffffffffffffffffffffff8716919061337e565b61091e565b8181111561091e5761091e836123c084846142a6565b73ffffffffffffffffffffffffffffffffffffffff8716919061347c565b604080516002808252606080830184529260009291906020830190803683375050603654825192935073ffffffffffffffffffffffffffffffffffffffff16918391506000906124305761243061418e565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201015260675482519116908290600190811061246e5761246e61418e565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152919050565b6068546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091829173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561250b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252f91906140e2565b6067546040517f010ad6d10000000000000000000000000000000000000000000000000000000081526004810183905291925073ffffffffffffffffffffffffffffffffffffffff169063010ad6d190602401602060405180830381865afa15801561259f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079391906140e2565b6068546067546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9283169263a694fc3a9216906370a0823190602401602060405180830381865afa15801561263c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266091906140e2565b6040518263ffffffff1660e01b815260040161267e91815260200190565b600060405180830381600087803b15801561090a57600080fd5b600054610100900460ff166126b35760005460ff16156126b7565b303b155b612743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610889565b600054610100900460ff1615801561278257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b6038805473ffffffffffffffffffffffffffffffffffffffff8085167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560358054928a169290911682179055604080517fdc4c90d3000000000000000000000000000000000000000000000000000000008152905163dc4c90d3916004808201926020929091908290030181865afa158015612829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284d9190614208565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169182179055604080517ffc0c546a000000000000000000000000000000000000000000000000000000008152905163fc0c546a916004808201926020929091908290030181865afa1580156128e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129099190614208565b603680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055603361295a87826143bb565b5060345461299f907f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50419073ffffffffffffffffffffffffffffffffffffffff16613602565b845160005b81811015612a02576129f27f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504160001b8883815181106129e5576129e561418e565b6020026020010151613602565b6129fb816141bd565b90506129a4565b50612a2d7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab86613602565b835160005b81811015612a8357612a737ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab60001b8783815181106129e5576129e561418e565b612a7c816141bd565b9050612a32565b50612ace7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161360c565b612af87f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504187613602565b612b227f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c8a613602565b612b6c7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c61360c565b612bb67f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161360c565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4791906144d5565b612c5290600a614618565b603755603654612c999073ffffffffffffffffffffffffffffffffffffffff168a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b50508015612cca57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50505050505050565b60606000612ce283600261412a565b612ced9060026141f5565b67ffffffffffffffff811115612d0557612d05613b16565b6040519080825280601f01601f191660200182016040528015612d2f576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612d6657612d6661418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612dc957612dc961418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612e0584600261412a565b612e109060016141f5565b90505b6001811115612ead577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612e5157612e5161418e565b1a60f81b828281518110612e6757612e6761418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612ea681614627565b9050612e13565b508315612f16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610889565b9392505050565b6000612f7f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166136639092919063ffffffff16565b8051909150156108095780806020019051810190612f9d919061465c565b610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610889565b60008083613037868861412a565b6130419190614317565b905063ee6b280061305863ffffffff8516826142a6565b613062908361412a565b61306c9190614317565b9050633b9aca006b033b2e3c9fd0803ce800000061309b836301e133806b033b2e3c9fd0803ce8000000613672565b6130a591906142a6565b6130af9190614317565b9695505050505050565b600080606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ebe2b12b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314d91906140e2565b606754606854604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905193945060009373ffffffffffffffffffffffffffffffffffffffff9384169363010ad6d19316916318160ddd9160048083019260209291908290030181865afa1580156131cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f191906140e2565b6040518263ffffffff1660e01b815260040161320f91815260200190565b602060405180830381865afa15801561322c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061325091906140e2565b90506000841261326b5761326484826141f5565b9050613281565b613274846142df565b61327e90826142a6565b90505b428211158061328e575080155b1561329d575060009392505050565b806127106133496301e13380606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b0a47ee6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333a91906140e2565b613344919061412a565b61379d565b6133559061251c61412a565b61336290620f424061412a565b61336c9190614317565b6133769190614317565b949350505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156133f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341991906140e2565b61342391906141f5565b60405173ffffffffffffffffffffffffffffffffffffffff851660248201526044810182905290915061091e9085907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff83811660248301526000919085169063dd62ed3e90604401602060405180830381865afa1580156134f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061351691906140e2565b9050818110156135a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5361666545524332303a2064656372656173656420616c6c6f77616e6365206260448201527f656c6f77207a65726f00000000000000000000000000000000000000000000006064820152608401610889565b60405173ffffffffffffffffffffffffffffffffffffffff841660248201528282036044820181905290610f579086907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b61089c8282611b9d565b60008281526001602081905260409091200154819060405184907fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff90600090a4600091825260016020819052604090922090910155565b60606133768484600085613869565b600082158061367f575083155b1561368b575080612f16565b6000613698600284614317565b905060006136a76001866142a6565b90506000600286116136ba5760006136c5565b6136c56002876142a6565b9050600085846136d58a8061412a565b6136df91906141f5565b6136e99190614317565b9050600086856136f98b8561412a565b61370391906141f5565b61370d9190614317565b9050600060028361371e878c61412a565b613728919061412a565b6137329190614317565b9050600060068386613744898e61412a565b61374e919061412a565b613758919061412a565b6137629190614317565b905080826137708c8e61412a565b61377a908c6141f5565b61378491906141f5565b61378e91906141f5565b9b9a5050505050505050505050565b6040517f41976e0900000000000000000000000000000000000000000000000000000000815273d9fcd98c322942075a5c3860693e9f4f03aae07b600482015260009081907359828fdf7ee634aaad3f58b19fdba3b03e2d9d80906341976e09906024016040805180830381865afa15801561381d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613841919061467e565b5090506107cf670de0b6b3a764000061385a838661412a565b6138649190614317565b613982565b6060824710156138fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610889565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161392491906140c6565b60006040518083038185875af1925050503d8060008114613961576040519150601f19603f3d011682016040523d82523d6000602084013e613966565b606091505b509150915061397787838387613a37565b979650505050505050565b600080606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156139f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a1691906146bc565b5050509150506305f5e1008382613a2d919061412a565b6107cf9190614317565b60608315613acd578251600003613ac65773ffffffffffffffffffffffffffffffffffffffff85163b613ac6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610889565b5081613376565b6133768383815115613ae25781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108899190613d24565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613b8c57613b8c613b16565b604052919050565b600067ffffffffffffffff831115613bae57613bae613b16565b613bdf60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86011601613b45565b9050828152838383011115613bf357600080fd5b828260208301376000602084830101529392505050565b60008060408385031215613c1d57600080fd5b82359150602083013567ffffffffffffffff811115613c3b57600080fd5b8301601f81018513613c4c57600080fd5b613c5b85823560208401613b94565b9150509250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114613c8757600080fd5b50565b8035613c9581613c65565b919050565b600060208284031215613cac57600080fd5b8135612f1681613c65565b600060208284031215613cc957600080fd5b5035919050565b60008060408385031215613ce357600080fd5b823591506020830135613cf581613c65565b809150509250929050565b60005b83811015613d1b578181015183820152602001613d03565b50506000910152565b6020815260008251806020840152613d43816040850160208701613d00565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600082601f830112613d8657600080fd5b612f1683833560208501613b94565b600082601f830112613da657600080fd5b8135602067ffffffffffffffff821115613dc257613dc2613b16565b8160051b613dd1828201613b45565b9283528481018201928281019087851115613deb57600080fd5b83870192505b84831015613977578235613e0481613c65565b82529183019190830190613df1565b600080600080600080600080610100898b031215613e3057600080fd5b613e3989613c8a565b9750602089013567ffffffffffffffff80821115613e5657600080fd5b613e628c838d01613d75565b985060408b0135915080821115613e7857600080fd5b613e848c838d01613d95565b9750613e9260608c01613c8a565b965060808b0135915080821115613ea857600080fd5b50613eb58b828c01613d95565b945050613ec460a08a01613c8a565b9250613ed260c08a01613c8a565b9150613ee060e08a01613c8a565b90509295985092959890939650565b60008083601f840112613f0157600080fd5b50813567ffffffffffffffff811115613f1957600080fd5b6020830191508360208260051b8501011115613f3457600080fd5b9250929050565b60008060008060008060608789031215613f5457600080fd5b863567ffffffffffffffff80821115613f6c57600080fd5b613f788a838b01613eef565b90985096506020890135915080821115613f9157600080fd5b613f9d8a838b01613eef565b90965094506040890135915080821115613fb657600080fd5b50613fc389828a01613eef565b979a9699509497509295939492505050565b60008060408385031215613fe857600080fd5b8235613ff381613c65565b91506020830135613cf581613c65565b60008060008060008060c0878903121561401c57600080fd5b863561402781613c65565b9550602087013567ffffffffffffffff8082111561404457600080fd5b6140508a838b01613d75565b9650604089013591508082111561406657600080fd5b6140728a838b01613d95565b95506060890135915061408482613c65565b9093506080880135908082111561409a57600080fd5b506140a789828a01613d95565b92505060a08701356140b881613c65565b809150509295509295509295565b600082516140d8818460208701613d00565b9190910192915050565b6000602082840312156140f457600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610be057610be06140fb565b600181811c9082168061415557607f821691505b6020821081036107d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036141ee576141ee6140fb565b5060010190565b80820180821115610be057610be06140fb565b60006020828403121561421a57600080fd5b8151612f1681613c65565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161425d816017850160208801613d00565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161429a816028840160208801613d00565b01602801949350505050565b81810381811115610be057610be06140fb565b6000602082840312156142cb57600080fd5b815163ffffffff81168114612f1657600080fd5b60007f80000000000000000000000000000000000000000000000000000000000000008203614310576143106140fb565b5060000390565b60008261434d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006020828403121561436457600080fd5b815180600b0b8114612f1657600080fd5b601f82111561080957600081815260208120601f850160051c8101602086101561439c5750805b601f850160051c820191505b818110156106f9578281556001016143a8565b815167ffffffffffffffff8111156143d5576143d5613b16565b6143e9816143e38454614141565b84614375565b602080601f83116001811461443c57600084156144065750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106f9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156144895788860151825594840194600190910190840161446a565b50858210156144c557878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156144e757600080fd5b815160ff81168114612f1657600080fd5b600181815b8085111561455157817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614537576145376140fb565b8085161561454457918102915b93841c93908002906144fd565b509250929050565b60008261456857506001610be0565b8161457557506000610be0565b816001811461458b5760028114614595576145b1565b6001915050610be0565b60ff8411156145a6576145a66140fb565b50506001821b610be0565b5060208310610133831016604e8410600b84101617156145d4575081810a610be0565b6145de83836144f8565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614610576146106140fb565b029392505050565b6000612f1660ff841683614559565b600081614636576146366140fb565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561466e57600080fd5b81518015158114612f1657600080fd5b6000806040838503121561469157600080fd5b505080516020909101519092909150565b805169ffffffffffffffffffff81168114613c9557600080fd5b600080600080600060a086880312156146d457600080fd5b6146dd866146a2565b9450602086015193506040860151925060608601519150614700608087016146a2565b9050929550929590935056fea2646970667358221220756dcdf3030d6fef303892a4a7c0fc3952e0c1e16851ef31a6a2a8935c15a02164736f6c63430008110033", + "nonce": "0x402", + "accessList": [] + }, + "additionalContracts": [] + } + ], + "receipts": [ + { + "transactionHash": "0x6e7874cdea8abbaae2abf8223c42d95ba945476a3c8e7f18b20701181a90a094", + "transactionIndex": "0x19", + "blockHash": "0x5de9d5c503b0704571c10a68714cb28822088809bac886b5234abcfbd30f26d4", + "blockNumber": "0xffde09", + "from": "0xfdA462548Ce04282f4B6D6619823a7C64Fdc0185", + "to": null, + "cumulativeGasUsed": "0x5d31cd", + "gasUsed": "0x3cf863", + "contractAddress": "0xeACa7559F81dADE5d11fE8852E832a699396aBB7", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x56facedc2" + } + ], + "libraries": [], + "pending": [], + "path": "/Users/gnervo/Documents/Angle/strategies-dev/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-latest.json", + "returns": {}, + "timestamp": 1678096078, + "chain": 1, + "multi": false, + "commit": "adcd1f3" +} \ No newline at end of file diff --git a/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-latest.json b/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-latest.json new file mode 100644 index 0000000..4c88014 --- /dev/null +++ b/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-latest.json @@ -0,0 +1,49 @@ +{ + "transactions": [ + { + "hash": "0x6e7874cdea8abbaae2abf8223c42d95ba945476a3c8e7f18b20701181a90a094", + "transactionType": "CREATE", + "contractName": "GenericEulerStaker", + "contractAddress": "0xeACa7559F81dADE5d11fE8852E832a699396aBB7", + "function": null, + "arguments": null, + "rpc": "https://mainnet.infura.io/v3/092a612c762245f0946ecb943377617d", + "transaction": { + "type": "0x02", + "from": "0xfda462548ce04282f4b6d6619823a7c64fdc0185", + "gas": "0x4f42e7", + "value": "0x0", + "data": "0x60806040523480156200001157600080fd5b50600054610100900460ff166200002f5760005460ff161562000039565b62000039620000de565b620000a15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff16158015620000c4576000805461ffff19166101011790555b8015620000d7576000805461ff00191690555b5062000102565b6000620000f630620000fc60201b620013b71760201c565b15905090565b3b151590565b61474280620001126000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c806375653eb411610160578063a8c62e76116100d8578063d0e30db01161008c578063dc4c90d311610071578063dc4c90d3146105a5578063ecf609ae146105c5578063ef06e72c146105d857600080fd5b8063d0e30db01461058a578063d547741f1461059257600080fd5b8063b8dc491b116100bd578063b8dc491b14610567578063c1590cd71461057a578063c6afba3c1461058257600080fd5b8063a8c62e7614610534578063b82c4dc11461055457600080fd5b8063953d9cf11161012f578063a25b26be11610114578063a25b26be146104d1578063a73e0f3b146104e4578063a7d385e21461052157600080fd5b8063953d9cf1146104a9578063a217fddf146104c957600080fd5b806375653eb414610459578063853828b6146104795780638b2021761461048157806391d148541461049657600080fd5b80632e779525116101f3578063372500ab116101c257806357ded9c9116101a757806357ded9c914610412578063580b7c2e1461041a5780635be9b2d31461044157600080fd5b8063372500ab146103f75780635312ea8e146103ff57600080fd5b80632e779525146103a25780632f2ff15d146103aa578063364bc15a146103bd57806336568abe146103e457600080fd5b8063116ac4a31161024a578063248a9ca31161022f578063248a9ca31461034457806324ea54f4146103685780632e1a7d4d1461038f57600080fd5b8063116ac4a3146102f75780631f1fcd51146102ff57600080fd5b806305b419341461027c5780630948c0b6146102915780630b6d1d17146102a4578063108cce74146102c0575b600080fd5b61028f61028a366004613c0a565b6105f8565b005b61028f61029f366004613c9a565b610701565b6102ad60375481565b6040519081526020015b60405180910390f35b6069546102e59074010000000000000000000000000000000000000000900460ff1681565b60405160ff90911681526020016102b7565b6102ad610774565b60365461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b7565b6102ad610352366004613cb7565b6000908152600160208190526040909120015490565b6102ad7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504181565b6102ad61039d366004613cb7565b610799565b61028f6107d8565b61028f6103b8366004613cd0565b6107e2565b6102ad7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab81565b61028f6103f2366004613cd0565b61080e565b61028f6108a0565b61028f61040d366004613cb7565b610924565b6102ad610aa0565b6102ad7f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c81565b610449610aaf565b60405190151581526020016102b7565b60685461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b610449610ace565b610489610b1e565b6040516102b79190613d24565b6104496104a4366004613cd0565b610bac565b60675461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b6102ad600081565b61028f6104df366004613e13565b610be6565b60675461050c9074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016102b7565b6102ad61052f366004613cb7565b610cbf565b60355461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b61028f610562366004613f3b565b610cca565b61028f610575366004613fd5565b610dd1565b6102ad610f5e565b6102ad610f68565b61028f611014565b61028f6105a0366004613cd0565b611166565b60345461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b61028f6105d3366004614003565b61118d565b60695461031f9073ffffffffffffffffffffffffffffffffffffffff1681565b7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab61062381336113bd565b603854604051600091829173ffffffffffffffffffffffffffffffffffffffff909116906106529086906140c6565b6000604051808303816000865af19150503d806000811461068f576040519150601f19603f3d011682016040523d82523d6000602084013e610694565b606091505b5091509150816106a7576106a781611466565b6000818060200190518101906106bd91906140e2565b9050858110156106f9576040517f22313ae900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161072c81336113bd565b50603880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061077f6114a7565b90506107896114b3565b610793908261412a565b91505090565b60007f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c6107c681336113bd565b6107cf83611559565b91505b50919050565b6107e0611965565b565b600082815260016020819052604090912001546107ff81336113bd565b6108098383611b9d565b505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f373100000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b61089c8282611c33565b5050565b606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561090a57600080fd5b505af115801561091e573d6000803e3d6000fd5b50505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161094f81336113bd565b61095882611cc5565b506067546040517f441a3e70000000000000000000000000000000000000000000000000000000008152600060048201526024810184905273ffffffffffffffffffffffffffffffffffffffff9091169063441a3e7090604401600060405180830381600087803b1580156109cc57600080fd5b505af11580156109e0573d6000803e3d6000fd5b50506034546036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015261089c945073ffffffffffffffffffffffffffffffffffffffff92831693509116906370a0823190602401602060405180830381865afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8091906140e2565b60365473ffffffffffffffffffffffffffffffffffffffff169190611dee565b6000610aaa6114a7565b905090565b6000603754600a610ac0919061412a565b610ac86114b3565b11905090565b60007f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c610afb81336113bd565b6000610b056114b3565b90506000610b1282611559565b91909110159250505090565b60338054610b2b90614141565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5790614141565b8015610ba45780601f10610b7957610100808354040283529160200191610ba4565b820191906000526020600020905b815481529060010190602001808311610b8757829003601f168201915b505050505081565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b92915050565b610bf488888888888861118d565b6068805473ffffffffffffffffffffffffffffffffffffffff8085167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255606980548484169216919091179055606754610c769116837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b610cb573d9fcd98c322942075a5c3860693e9f4f03aae07b847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b5050505050505050565b6000610be082612044565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041610cf581336113bd565b8584141580610d045750858214155b15610d3b576040517f46282e8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560005b81811015610dc657610db6898983818110610d5c57610d5c61418e565b9050602002016020810190610d719190613c9a565b888884818110610d8357610d8361418e565b9050602002016020810190610d989190613c9a565b878785818110610daa57610daa61418e565b905060200201356122d5565b610dbf816141bd565b9050610d3f565b505050505050505050565b7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041610dfc81336113bd565b6000610e066123de565b805190915060005b81811015610ea457828181518110610e2857610e2861418e565b602002602001015173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603610e94576040517f093e1cdb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e9d816141bd565b9050610e0e565b506040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152610f5790859073ffffffffffffffffffffffffffffffffffffffff8816906370a0823190602401602060405180830381865afa158015610f15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3991906140e2565b73ffffffffffffffffffffffffffffffffffffffff88169190611dee565b5050505050565b6000610aaa6114b3565b600080610f73612498565b6067546040517f3af9e669000000000000000000000000000000000000000000000000000000008152306004820152919250829173ffffffffffffffffffffffffffffffffffffffff90911690633af9e66990602401602060405180830381865afa158015610fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100a91906140e2565b61079391906141f5565b7f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c61103f81336113bd565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156110ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d291906140e2565b6067546040517fe2bbb158000000000000000000000000000000000000000000000000000000008152600060048201526024810183905291925073ffffffffffffffffffffffffffffffffffffffff169063e2bbb15890604401600060405180830381600087803b15801561114657600080fd5b505af115801561115a573d6000803e3d6000fd5b5050505061089c6125c3565b6000828152600160208190526040909120015461118381336113bd565b6108098383611c33565b61119b868686868686612698565b6036546040517f8948874900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152733520d5a913427e6f0d6a83e07ccd4a4da316e4d390638948874990602401602060405180830381865afa15801561121d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112419190614208565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9283161790556036546040517f1b30058200000000000000000000000000000000000000000000000000000000815291166004820152733520d5a913427e6f0d6a83e07ccd4a4da316e4d390631b30058290602401602060405180830381865afa1580156112ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113129190614208565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905561135f611965565b6036546106f99073ffffffffffffffffffffffffffffffffffffffff167327182842e098f60e3d576794a5bffb0777e025d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b3b151590565b6113c78282610bac565b61089c576113ec8173ffffffffffffffffffffffffffffffffffffffff166014612cd3565b6113f7836020612cd3565b604051602001611408929190614225565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261088991600401613d24565b80511561147557805181602001fd5b6040517fc76d51a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610aaa6000612044565b60006114bd610f68565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154f91906140e2565b610aaa91906141f5565b600080611564612498565b6067546040517f3af9e66900000000000000000000000000000000000000000000000000000000815230600482015291925060009173ffffffffffffffffffffffffffffffffffffffff90911690633af9e66990602401602060405180830381865afa1580156115d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fc91906140e2565b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015291925060009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611670573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169491906140e2565b90506000816116a384866141f5565b6116ad91906141f5565b9050808611156116bb578095505b8582106116f6576035546036546116ec9173ffffffffffffffffffffffffffffffffffffffff918216911688611dee565b5093949350505050565b6036546040517f70a082310000000000000000000000000000000000000000000000000000000081527327182842e098f60e3d576794a5bffb0777e025d3600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179d91906140e2565b9050600181111561189b5760006117b484896142a6565b905060008282116117de578582116117cd5760006117d7565b6117d786836142a6565b90506117fc565b8583116117ec5760006117f6565b6117f686846142a6565b90508291505b801561180d5761180b81611cc5565b505b6067546040517f441a3e70000000000000000000000000000000000000000000000000000000008152600060048201526024810184905273ffffffffffffffffffffffffffffffffffffffff9091169063441a3e7090604401600060405180830381600087803b15801561188057600080fd5b505af1158015611894573d6000803e3d6000fd5b5050505050505b6036546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192d91906140e2565b60355460365491945061195a9173ffffffffffffffffffffffffffffffffffffffff908116911685611dee565b509095945050505050565b6036546040517fb409dd9b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152600090733520d5a913427e6f0d6a83e07ccd4a4da316e4d39063b409dd9b90602401602060405180830381865afa1580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0e91906140e2565b6040517fcab65f01000000000000000000000000000000000000000000000000000000008152600481018290529091506000907327182842e098f60e3d576794a5bffb0777e025d39063cab65f0190602401602060405180830381865afa158015611a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa19190614208565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116919091179091556036546040517fb74b1ed500000000000000000000000000000000000000000000000000000000815291166004820152909150733520d5a913427e6f0d6a83e07ccd4a4da316e4d39063b74b1ed590602401602060405180830381865afa158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7991906142b9565b606760146101000a81548163ffffffff021916908363ffffffff1602179055505050565b611ba78282610bac565b61089c57600082815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8616808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b611c3d8282610bac565b1561089c57600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6067546040517f52eac8af0000000000000000000000000000000000000000000000000000000081526004810183905260009173ffffffffffffffffffffffffffffffffffffffff16906352eac8af90602401602060405180830381865afa158015611d35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5991906140e2565b611d649060016141f5565b6068546040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810183905291925073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b158015611dd157600080fd5b505af1158015611de5573d6000803e3d6000fd5b50505050919050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526108099084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612f1d565b801580611f6257506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6091906140e2565b155b611fee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610889565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526108099084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b600080606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d891906140e2565b90506000606760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fea61faa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216d91906140e2565b9050600084126121885761218184826141f5565b905061219e565b612191846142df565b61219b90826142a6565b90505b600081156122b9576000670de0b6b3a7640000836121c063ffffffff8361412a565b6121ca908761412a565b6121d49190614317565b6121de9190614317565b6065546036546040517fd50c08f800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015263ffffffff8416602482015292935060009291169063d50c08f890604401602060405180830381865afa158015612262573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122869190614352565b6bffffffffffffffffffffffff1690506122b4818686606760149054906101000a900463ffffffff16613029565b925050505b6122c2856130b9565b6122cc90826141f5565b95945050505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff83811660248301526000919085169063dd62ed3e90604401602060405180830381865afa15801561234b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236f91906140e2565b9050818110156123aa576123a58361238783856142a6565b73ffffffffffffffffffffffffffffffffffffffff8716919061337e565b61091e565b8181111561091e5761091e836123c084846142a6565b73ffffffffffffffffffffffffffffffffffffffff8716919061347c565b604080516002808252606080830184529260009291906020830190803683375050603654825192935073ffffffffffffffffffffffffffffffffffffffff16918391506000906124305761243061418e565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201015260675482519116908290600190811061246e5761246e61418e565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152919050565b6068546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091829173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561250b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252f91906140e2565b6067546040517f010ad6d10000000000000000000000000000000000000000000000000000000081526004810183905291925073ffffffffffffffffffffffffffffffffffffffff169063010ad6d190602401602060405180830381865afa15801561259f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079391906140e2565b6068546067546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9283169263a694fc3a9216906370a0823190602401602060405180830381865afa15801561263c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266091906140e2565b6040518263ffffffff1660e01b815260040161267e91815260200190565b600060405180830381600087803b15801561090a57600080fd5b600054610100900460ff166126b35760005460ff16156126b7565b303b155b612743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610889565b600054610100900460ff1615801561278257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b6038805473ffffffffffffffffffffffffffffffffffffffff8085167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560358054928a169290911682179055604080517fdc4c90d3000000000000000000000000000000000000000000000000000000008152905163dc4c90d3916004808201926020929091908290030181865afa158015612829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284d9190614208565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169182179055604080517ffc0c546a000000000000000000000000000000000000000000000000000000008152905163fc0c546a916004808201926020929091908290030181865afa1580156128e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129099190614208565b603680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055603361295a87826143bb565b5060345461299f907f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50419073ffffffffffffffffffffffffffffffffffffffff16613602565b845160005b81811015612a02576129f27f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504160001b8883815181106129e5576129e561418e565b6020026020010151613602565b6129fb816141bd565b90506129a4565b50612a2d7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab86613602565b835160005b81811015612a8357612a737ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab60001b8783815181106129e5576129e561418e565b612a7c816141bd565b9050612a32565b50612ace7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161360c565b612af87f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504187613602565b612b227f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c8a613602565b612b6c7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50417f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c61360c565b612bb67f928286c473ded01ff8bf61a1986f14a0579066072fa8261442d9fea514d93a4c7f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504161360c565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4791906144d5565b612c5290600a614618565b603755603654612c999073ffffffffffffffffffffffffffffffffffffffff168a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ec2565b50508015612cca57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50505050505050565b60606000612ce283600261412a565b612ced9060026141f5565b67ffffffffffffffff811115612d0557612d05613b16565b6040519080825280601f01601f191660200182016040528015612d2f576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612d6657612d6661418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612dc957612dc961418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612e0584600261412a565b612e109060016141f5565b90505b6001811115612ead577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612e5157612e5161418e565b1a60f81b828281518110612e6757612e6761418e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612ea681614627565b9050612e13565b508315612f16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610889565b9392505050565b6000612f7f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166136639092919063ffffffff16565b8051909150156108095780806020019051810190612f9d919061465c565b610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610889565b60008083613037868861412a565b6130419190614317565b905063ee6b280061305863ffffffff8516826142a6565b613062908361412a565b61306c9190614317565b9050633b9aca006b033b2e3c9fd0803ce800000061309b836301e133806b033b2e3c9fd0803ce8000000613672565b6130a591906142a6565b6130af9190614317565b9695505050505050565b600080606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ebe2b12b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314d91906140e2565b606754606854604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905193945060009373ffffffffffffffffffffffffffffffffffffffff9384169363010ad6d19316916318160ddd9160048083019260209291908290030181865afa1580156131cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f191906140e2565b6040518263ffffffff1660e01b815260040161320f91815260200190565b602060405180830381865afa15801561322c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061325091906140e2565b90506000841261326b5761326484826141f5565b9050613281565b613274846142df565b61327e90826142a6565b90505b428211158061328e575080155b1561329d575060009392505050565b806127106133496301e13380606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b0a47ee6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333a91906140e2565b613344919061412a565b61379d565b6133559061251c61412a565b61336290620f424061412a565b61336c9190614317565b6133769190614317565b949350505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156133f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341991906140e2565b61342391906141f5565b60405173ffffffffffffffffffffffffffffffffffffffff851660248201526044810182905290915061091e9085907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff83811660248301526000919085169063dd62ed3e90604401602060405180830381865afa1580156134f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061351691906140e2565b9050818110156135a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5361666545524332303a2064656372656173656420616c6c6f77616e6365206260448201527f656c6f77207a65726f00000000000000000000000000000000000000000000006064820152608401610889565b60405173ffffffffffffffffffffffffffffffffffffffff841660248201528282036044820181905290610f579086907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611e40565b61089c8282611b9d565b60008281526001602081905260409091200154819060405184907fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff90600090a4600091825260016020819052604090922090910155565b60606133768484600085613869565b600082158061367f575083155b1561368b575080612f16565b6000613698600284614317565b905060006136a76001866142a6565b90506000600286116136ba5760006136c5565b6136c56002876142a6565b9050600085846136d58a8061412a565b6136df91906141f5565b6136e99190614317565b9050600086856136f98b8561412a565b61370391906141f5565b61370d9190614317565b9050600060028361371e878c61412a565b613728919061412a565b6137329190614317565b9050600060068386613744898e61412a565b61374e919061412a565b613758919061412a565b6137629190614317565b905080826137708c8e61412a565b61377a908c6141f5565b61378491906141f5565b61378e91906141f5565b9b9a5050505050505050505050565b6040517f41976e0900000000000000000000000000000000000000000000000000000000815273d9fcd98c322942075a5c3860693e9f4f03aae07b600482015260009081907359828fdf7ee634aaad3f58b19fdba3b03e2d9d80906341976e09906024016040805180830381865afa15801561381d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613841919061467e565b5090506107cf670de0b6b3a764000061385a838661412a565b6138649190614317565b613982565b6060824710156138fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610889565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161392491906140c6565b60006040518083038185875af1925050503d8060008114613961576040519150601f19603f3d011682016040523d82523d6000602084013e613966565b606091505b509150915061397787838387613a37565b979650505050505050565b600080606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156139f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a1691906146bc565b5050509150506305f5e1008382613a2d919061412a565b6107cf9190614317565b60608315613acd578251600003613ac65773ffffffffffffffffffffffffffffffffffffffff85163b613ac6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610889565b5081613376565b6133768383815115613ae25781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108899190613d24565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613b8c57613b8c613b16565b604052919050565b600067ffffffffffffffff831115613bae57613bae613b16565b613bdf60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86011601613b45565b9050828152838383011115613bf357600080fd5b828260208301376000602084830101529392505050565b60008060408385031215613c1d57600080fd5b82359150602083013567ffffffffffffffff811115613c3b57600080fd5b8301601f81018513613c4c57600080fd5b613c5b85823560208401613b94565b9150509250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114613c8757600080fd5b50565b8035613c9581613c65565b919050565b600060208284031215613cac57600080fd5b8135612f1681613c65565b600060208284031215613cc957600080fd5b5035919050565b60008060408385031215613ce357600080fd5b823591506020830135613cf581613c65565b809150509250929050565b60005b83811015613d1b578181015183820152602001613d03565b50506000910152565b6020815260008251806020840152613d43816040850160208701613d00565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600082601f830112613d8657600080fd5b612f1683833560208501613b94565b600082601f830112613da657600080fd5b8135602067ffffffffffffffff821115613dc257613dc2613b16565b8160051b613dd1828201613b45565b9283528481018201928281019087851115613deb57600080fd5b83870192505b84831015613977578235613e0481613c65565b82529183019190830190613df1565b600080600080600080600080610100898b031215613e3057600080fd5b613e3989613c8a565b9750602089013567ffffffffffffffff80821115613e5657600080fd5b613e628c838d01613d75565b985060408b0135915080821115613e7857600080fd5b613e848c838d01613d95565b9750613e9260608c01613c8a565b965060808b0135915080821115613ea857600080fd5b50613eb58b828c01613d95565b945050613ec460a08a01613c8a565b9250613ed260c08a01613c8a565b9150613ee060e08a01613c8a565b90509295985092959890939650565b60008083601f840112613f0157600080fd5b50813567ffffffffffffffff811115613f1957600080fd5b6020830191508360208260051b8501011115613f3457600080fd5b9250929050565b60008060008060008060608789031215613f5457600080fd5b863567ffffffffffffffff80821115613f6c57600080fd5b613f788a838b01613eef565b90985096506020890135915080821115613f9157600080fd5b613f9d8a838b01613eef565b90965094506040890135915080821115613fb657600080fd5b50613fc389828a01613eef565b979a9699509497509295939492505050565b60008060408385031215613fe857600080fd5b8235613ff381613c65565b91506020830135613cf581613c65565b60008060008060008060c0878903121561401c57600080fd5b863561402781613c65565b9550602087013567ffffffffffffffff8082111561404457600080fd5b6140508a838b01613d75565b9650604089013591508082111561406657600080fd5b6140728a838b01613d95565b95506060890135915061408482613c65565b9093506080880135908082111561409a57600080fd5b506140a789828a01613d95565b92505060a08701356140b881613c65565b809150509295509295509295565b600082516140d8818460208701613d00565b9190910192915050565b6000602082840312156140f457600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610be057610be06140fb565b600181811c9082168061415557607f821691505b6020821081036107d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036141ee576141ee6140fb565b5060010190565b80820180821115610be057610be06140fb565b60006020828403121561421a57600080fd5b8151612f1681613c65565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161425d816017850160208801613d00565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161429a816028840160208801613d00565b01602801949350505050565b81810381811115610be057610be06140fb565b6000602082840312156142cb57600080fd5b815163ffffffff81168114612f1657600080fd5b60007f80000000000000000000000000000000000000000000000000000000000000008203614310576143106140fb565b5060000390565b60008261434d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006020828403121561436457600080fd5b815180600b0b8114612f1657600080fd5b601f82111561080957600081815260208120601f850160051c8101602086101561439c5750805b601f850160051c820191505b818110156106f9578281556001016143a8565b815167ffffffffffffffff8111156143d5576143d5613b16565b6143e9816143e38454614141565b84614375565b602080601f83116001811461443c57600084156144065750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556106f9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156144895788860151825594840194600190910190840161446a565b50858210156144c557878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156144e757600080fd5b815160ff81168114612f1657600080fd5b600181815b8085111561455157817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614537576145376140fb565b8085161561454457918102915b93841c93908002906144fd565b509250929050565b60008261456857506001610be0565b8161457557506000610be0565b816001811461458b5760028114614595576145b1565b6001915050610be0565b60ff8411156145a6576145a66140fb565b50506001821b610be0565b5060208310610133831016604e8410600b84101617156145d4575081810a610be0565b6145de83836144f8565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614610576146106140fb565b029392505050565b6000612f1660ff841683614559565b600081614636576146366140fb565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561466e57600080fd5b81518015158114612f1657600080fd5b6000806040838503121561469157600080fd5b505080516020909101519092909150565b805169ffffffffffffffffffff81168114613c9557600080fd5b600080600080600060a086880312156146d457600080fd5b6146dd866146a2565b9450602086015193506040860151925060608601519150614700608087016146a2565b9050929550929590935056fea2646970667358221220756dcdf3030d6fef303892a4a7c0fc3952e0c1e16851ef31a6a2a8935c15a02164736f6c63430008110033", + "nonce": "0x402", + "accessList": [] + }, + "additionalContracts": [] + } + ], + "receipts": [ + { + "transactionHash": "0x6e7874cdea8abbaae2abf8223c42d95ba945476a3c8e7f18b20701181a90a094", + "transactionIndex": "0x19", + "blockHash": "0x5de9d5c503b0704571c10a68714cb28822088809bac886b5234abcfbd30f26d4", + "blockNumber": "0xffde09", + "from": "0xfdA462548Ce04282f4B6D6619823a7C64Fdc0185", + "to": null, + "cumulativeGasUsed": "0x5d31cd", + "gasUsed": "0x3cf863", + "contractAddress": "0xeACa7559F81dADE5d11fE8852E832a699396aBB7", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x56facedc2" + } + ], + "libraries": [], + "pending": [], + "path": "/Users/gnervo/Documents/Angle/strategies-dev/broadcast/UpgradeGenericEulerStakerLender.sol/1/run-latest.json", + "returns": {}, + "timestamp": 1678096078, + "chain": 1, + "multi": false, + "commit": "adcd1f3" +} \ No newline at end of file diff --git a/scripts/foundry/genericLender/euler/UpgradeGenericEulerStakerLender.sol b/scripts/foundry/genericLender/euler/UpgradeGenericEulerStakerLender.sol new file mode 100644 index 0000000..9276da8 --- /dev/null +++ b/scripts/foundry/genericLender/euler/UpgradeGenericEulerStakerLender.sol @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-3.0 +pragma solidity ^0.8.17; + +import "forge-std/Script.sol"; +import "../../MainnetConstants.s.sol"; +import { GenericEulerStaker } from "../../../../contracts/strategies/OptimizerAPR/genericLender/euler/GenericEulerStaker.sol"; + +contract DeployGenericEulerStakerImplementation is Script, MainnetConstants { + uint256 internal constant _BASE_TOKEN = 10**18; + uint256 internal constant _BASE_APR = 10**18; + uint64 internal constant _BPS = 10**4; + + GenericEulerStaker public lenderEulerImplementation; + + error ZeroAdress(); + + function run() external { + // vm.createSelectFork("mainnet"); + uint256 deployerPrivateKey = vm.deriveKey(vm.envString("MNEMONIC_MAINNET"), 0); + vm.startBroadcast(deployerPrivateKey); + + lenderEulerImplementation = new GenericEulerStaker(); + console.log( + "Successfully deployed Euler implementation strategy at the address: ", + address(lenderEulerImplementation) + ); + + vm.stopBroadcast(); + } +} diff --git a/test/foundry/optimizerAPR/OptimizerAPRStrategyTest.test.sol b/test/foundry/optimizerAPR/OptimizerAPRStrategyTest.test.sol index ac3cee0..8ebf22a 100644 --- a/test/foundry/optimizerAPR/OptimizerAPRStrategyTest.test.sol +++ b/test/foundry/optimizerAPR/OptimizerAPRStrategyTest.test.sol @@ -567,6 +567,11 @@ contract OptimizerAPRStrategyTest is BaseTest { amounts[0] = bound(amounts[0], 1, maxTokenAmount); amounts[1] = bound(amounts[1], 1, maxTokenAmount); amounts[2] = bound(amounts[2], 1, maxTokenAmount); + + vm.label(address(lender1), "Lender1"); + vm.label(address(lender2), "Lender2"); + vm.label(address(lender3), "Lender3"); + // Because in this special case my best estimate won't be better than the greedy, because the distribution // will be closer to te true optimum. This is just by chance for the greedy and the fuzzing is "searching for that chance" uint256 sumAmounts = (amounts[0] + amounts[1] + amounts[2]); @@ -602,7 +607,7 @@ contract OptimizerAPRStrategyTest is BaseTest { // Because in this special case my best estimate won't be better than the greedy, because the distribution // will be closer to te true optimum. This is just by chance for the greedy and the fuzzing is "searching for that chance" if ( - (amountOnLender3AfterPrepareReturn * _BPS) / sumAmounts > _BPS / 4 && + (amountOnLender3AfterPrepareReturn * _BPS) / sumAmounts > _BPS / 5 && (amountOnLender3AfterPrepareReturn * _BPS) / sumAmounts < (_BPS * 44) / 100 ) return; }