telosnetwork / hyperion-telos-evm-plugin

3 stars 1 forks source link

Investigate inconsistent behavior with other EVMs with regard to estimateGas #43

Open poplexity opened 1 year ago

poplexity commented 1 year ago

A partner reported that eth_estimateGas is failing for them when they expect it to pass, they get an error "The sender address has a zero balance" when they say the sender (0x8dbbEA46ea1e7E33dA43641CBfd6270715008E47) does have a balance. Their payload to reproduce this (on testnet) is below. By adding "from": "0x8dbbEA46ea1e7E33dA43641CBfd6270715008E47" to the params it works, so we need to investigate if other EVM implementations also have errors without a from value and make our RPC behave the same if so.

{ "jsonrpc":"2.0", "method":"eth_estimateGas", "params":[{"data":"0x60806040523480156200001157600080fd5b506040516200360c3803806200360c833981016040819052620000349162000070565b600780546001600160a81b0319166101003302179055600880546001600160a01b0319166001600160a01b0392909216919091179055620000a2565b6000602082840312156200008357600080fd5b81516001600160a01b03811681146200009b57600080fd5b9392505050565b61355a80620000b26000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c80636e734aeb116100cd578063ce606ee011610081578063ee3d4efd11610066578063ee3d4efd146102cc578063fa0fca84146102df578063ffdddd4d1461030257600080fd5b8063ce606ee014610289578063dab1d40f146102b957600080fd5b8063a843c51f116100b2578063a843c51f14610250578063a92700ae14610263578063c66bd6ab1461027657600080fd5b80636e734aeb146102095780638456cb591461024857600080fd5b80632acada4d116101245780633f4ba83a116101095780633f4ba83a146101d7578063455e7e34146101df5780635c975abb146101f257600080fd5b80632acada4d146101bc5780632fb51427146101c457600080fd5b80630a421f0f1461015657806312c804f0146101745780631536ca401461019457806316f3a12d146101a9575b600080fd5b61015e610327565b60405161016b9190612a6d565b60405180910390f35b610187610182366004612bd2565b610400565b60405161016b9190612c0f565b6101a76101a2366004612d06565b6106e5565b005b6101a76101b7366004612d06565b610748565b61015e6107a3565b6101a76101d2366004612d71565b610873565b6101a7610b21565b6101a76101ed366004612e0b565b610b58565b60075460ff165b604051901515815260200161016b565b6101f9610217366004612e4d565b6002602090815260009283526040909220815180830184018051928152908401929093019190912091525460ff1681565b6101a7610e3b565b6101a761025e366004612d06565b610e70565b6101a761027136600461302b565b610fa2565b6101a761028436600461312e565b6120ab565b6007546102a19061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161016b565b61015e6102c7366004612bd2565b612587565b6008546102a1906001600160a01b031681565b6101f96102ed366004612d06565b60066020526000908152604090205460ff1681565b610315610310366004612bd2565b612673565b60405161016b969594939291906131b7565b60606001805480602002602001604051908101604052809291908181526020016000905b828210156103f757838290600052602060002001805461036a90613239565b80601f016020809104026020016040519081016040528092919081815260200182805461039690613239565b80156103e35780601f106103b8576101008083540402835291602001916103e3565b820191906000526020600020905b8154815290600101906020018083116103c657829003601f168201915b50505050508152602001906001019061034b565b50505050905090565b60606004826040516104129190613273565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020016000905b828210156106da5760008481526020908190206040805160c0810182526006860290920180546001600160a01b031683526001810154938301939093526002830180549293929184019161049390613239565b80601f01602080910402602001604051908101604052809291908181526020018280546104bf90613239565b801561050c5780601f106104e15761010080835404028352916020019161050c565b820191906000526020600020905b8154815290600101906020018083116104ef57829003601f168201915b5050505050815260200160038201805461052590613239565b80601f016020809104026020016040519081016040528092919081815260200182805461055190613239565b801561059e5780601f106105735761010080835404028352916020019161059e565b820191906000526020600020905b81548152906001019060200180831161058157829003601f168201915b505050505081526020016004820180546105b790613239565b80601f01602080910402602001604051908101604052809291908181526020018280546105e390613239565b80156106305780601f1061060557610100808354040283529160200191610630565b820191906000526020600020905b81548152906001019060200180831161061357829003601f168201915b5050505050815260200160058201805461064990613239565b80601f016020809104026020016040519081016040528092919081815260200182805461067590613239565b80156106c25780601f10610697576101008083540402835291602001916106c2565b820191906000526020600020905b8154815290600101906020018083116106a557829003601f168201915b50505050508152505081526020019060010190610440565b505050509050919050565b60075461010090046001600160a01b0316331461071c57604051633ed4250360e11b81523360048201526024015b60405180910390fd5b61072461285d565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b60075461010090046001600160a01b0316331461077a57604051633ed4250360e11b8152336004820152602401610713565b61078261285d565b6001600160a01b03166000908152600660205260409020805460ff19169055565b60606000805480602002602001604051908101604052809291908181526020016000905b828210156103f75783829060005260206000200180546107e690613239565b80601f016020809104026020016040519081016040528092919081815260200182805461081290613239565b801561085f5780601f106108345761010080835404028352916020019161085f565b820191906000526020600020905b81548152906001019060200180831161084257829003601f168201915b5050505050815260200190600101906107c7565b60075461010090046001600160a01b03163314806108a557503360009081526006602052604090205460ff1615156001145b6108fb5760405162461bcd60e51b815260206004820152602160248201527f596f7520617265206e6f74206f776e6572206f722077686974656c69737465646044820152601760f91b6064820152608401610713565b61090361285d565b60005b81811015610add5760008383838181106109225761092261328f565b905060200281019061093491906132a5565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604051949550936003935061097c9250859150613273565b908152604051908190036020019020600301546001600160a01b0316036109e55760405162461bcd60e51b815260206004820152601460248201527f417373657420646f65736e27742065786973742e0000000000000000000000006044820152606401610713565b6003816040516109f59190613273565b90815260405190819003602001902060030154336001600160a01b0390911614610a5a5760405162461bcd60e51b81526020600482015260166024820152752cb7ba9030b932903737ba103a34329037bbb732b91760511b6044820152606401610713565b8585600383604051610a6c9190613273565b90815260200160405180910390206002019182610a8a92919061333a565b5060058686604051610a9d9291906133fa565b908152604051602091819003820190208054600181018255600091825291902001610ac8828261340a565b50508080610ad5906134ca565b915050610906565b506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601610b1a84868361333a565b5050505050565b6008546001600160a01b03163314610b4e57604051633ed4250360e11b8152336004820152602401610713565b610b566128b0565b565b60075461010090046001600160a01b0316331480610b8a57503360009081526006602052604090205460ff1615156001145b610be05760405162461bcd60e51b815260206004820152602160248201527f596f7520617265206e6f74206f776e6572206f722077686974656c69737465646044820152601760f91b6064820152608401610713565b610be861285d565b600060058383604051610bfc9291906133fa565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020016000905b82821015610cd6578382906000526020600020018054610c4990613239565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7590613239565b8015610cc25780601f10610c9757610100808354040283529160200191610cc2565b820191906000526020600020905b815481529060010190602001808311610ca557829003601f168201915b505050505081526020019060010190610c2a565b50505050905060005b8151811015610e09576000828281518110610cfc57610cfc61328f565b60200260200101519050600381604051610d169190613273565b90815260405190819003602001902060030154336001600160a01b0390911614610d7b5760405162461bcd60e51b81526020600482015260166024820152752cb7ba9030b932903737ba103a34329037bbb732b91760511b6044820152606401610713565b60006001600160a01b0316600382604051610d969190613273565b908152604051908190036020019020600301546001600160a01b031614610df65760405180602001604052806000815250600382604051610dd79190613273565b90815260200160405180910390206002019081610df4919061340a565b505b5080610e01816134ca565b915050610cdf565b5060058383604051610e1c9291906133fa565b90815260200160405180910390206000610e369190612991565b505050565b6008546001600160a01b03163314610e6857604051633ed4250360e11b8152336004820152602401610713565b610b56612902565b60075461010090046001600160a01b03163314610ea257604051633ed4250360e11b8152336004820152602401610713565b610eaa61285d565b600780546001600160a01b038381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff851617909455929091041690610f5e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610713565b816001600160a01b0316816001600160a01b03167f2260a4d0c00902d7996e8f7d669d22564414d41be4d278a40387ddf58179d39260405160405180910390a35050565b60075461010090046001600160a01b0316331480610fd457503360009081526006602052604090205460ff1615156001145b61102a5760405162461bcd60e51b815260206004820152602160248201527f596f7520617265206e6f74206f776e6572206f722077686974656c69737465646044820152601760f91b6064820152608401610713565b61103261285d565b60008080602085015151600181111561104d5761104d6131a1565b0361180f5760005b8460200151602001515181101561180957600085602001516020015182815181106110825761108261328f565b602002602001015190506000600281111561109f5761109f6131a1565b865160028111156110b2576110b26131a1565b0361134a578451606087015190945092506001600160a01b0384166110d5573393505b6001600160a01b0384166000908152600260205260409081902090516110fc908390613273565b9081526040519081900360200190205460ff166111545760405162461bcd60e51b81526020600482015260166024820152752cb7ba9030b932903737ba103a34329037bbb732b91760511b6044820152606401610713565b60006003826040516111669190613273565b9081526020016040518091039020600201805461118290613239565b80601f01602080910402602001604051908101604052809291908181526020018280546111ae90613239565b80156111fb5780601f106111d0576101008083540402835291602001916111fb565b820191906000526020600020905b8154815290600101906020018083116111de57829003601f168201915b50505050509050604051806020016040528060008152508051906020012081805190602001201461126e5760405162461bcd60e51b815260206004820152601060248201527f44657061636b6167652046697273742e000000000000000000000000000000006044820152606401610713565b60016003836040516112809190613273565b908152604051908190036020019020600401805460ff60a01b1916600160a01b8360058111156112b2576112b26131a1565b0217905550836003836040516112c89190613273565b908152602001604051809103902060030160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555086604001516003836040516113129190613273565b90815260405190819003602001902060040180546001600160a01b03929092166001600160a01b0319909216919091179055506115fe565b60018651600281111561135f5761135f6131a1565b036114b857845193503392506001600160a01b03841661138157856060015193505b826001600160a01b031660038260405161139b9190613273565b908152604051908190036020019020600401546001600160a01b03161480156113d95750826001600160a01b031686604001516001600160a01b0316145b801561141b57506001600160a01b038416600090815260026020526040908190209051611407908390613273565b9081526040519081900360200190205460ff165b61142457600080fd5b826003826040516114359190613273565b908152602001604051809103902060030160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600260038260405161147c9190613273565b908152604051908190036020019020600401805460ff60a01b1916600160a01b8360058111156114ae576114ae6131a1565b02179055506115fe565b6002865160028111156114cd576114cd6131a1565b036115fe578451604087015190945092506001600160a01b0384166114f0573393505b6001600160a01b038416600090815260026020526040908190209051611517908390613273565b9081526040519081900360200190205460ff1661156f5760405162461bcd60e51b81526020600482015260166024820152752cb7ba9030b932903737ba103a34329037bbb732b91760511b6044820152606401610713565b826003826040516115809190613273565b908152602001604051809103902060030160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600380826040516115c69190613273565b908152604051908190036020019020600401805460ff60a01b1916600160a01b8360058111156115f8576115f86131a1565b02179055505b60006040518060c00160405280856001600160a01b03168152602001428152602001886080015181526020018860a00151815260200187602001518152602001876040015181525090506004826040516116589190613273565b9081526040805160209281900383019020805460018082018355600092835291849020855160069092020180546001600160a01b0319166001600160a01b03909216919091178155928401519083015582015182919060028201906116bd908261340a565b50606082015160038201906116d2908261340a565b50608082015160048201906116e7908261340a565b5060a082015160058201906116fc908261340a565b5050506001600160a01b0385166000908152600260205260408082209051611725908590613273565b9081526040805160209281900383018120805460ff1916941515949094179093556001600160a01b03871660009081526002909252902060019161176a908590613273565b908152602001604051809103902060006101000a81548160ff0219169083151502179055507fe96a9a38c45dc3bef340c540657f0d1590e18bdc51d5c43578c8059cdec1f85e82866003856040516117c29190613273565b908152604051908190036020018120600301546117ec9392916001600160a01b03909116906134f1565b60405180910390a150508080611801906134ca565b915050611055565b506120a5565b60016020850151516001811115611828576118286131a1565b036120a55760005b84602001516020015151811015610b1a576000856020015160200151828151811061185d5761185d61328f565b6020026020010151905060006005826040516118799190613273565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020016000905b828210156119535783829060005260206000200180546118c690613239565b80601f01602080910402602001604051908101604052809291908181526020018280546118f290613239565b801561193f5780601f106119145761010080835404028352916020019161193f565b820191906000526020600020905b81548152906001019060200180831161192257829003601f168201915b5050505050815260200190600101906118a7565b50505050905080516000036119aa5760405162461bcd60e51b815260206004820152600d60248201527f57726f6e67205061636b616765000000000000000000000000000000000000006044820152606401610713565b60005b815181101561208f5760008282815181106119ca576119ca61328f565b60200260200101519050600060028111156119e7576119e76131a1565b895160028111156119fa576119fa6131a1565b03611b7757875160608a015190975095506001600160a01b038716611a1d573396505b6001600160a01b038716600090815260026020526040908190209051611a44908390613273565b9081526040519081900360200190205460ff16611a9c5760405162461bcd60e51b81526020600482015260166024820152752cb7ba9030b932903737ba103a34329037bbb732b91760511b6044820152606401610713565b6001600382604051611aae9190613273565b908152604051908190036020019020600401805460ff60a01b1916600160a01b836005811115611ae057611ae06131a1565b021790555085600382604051611af69190613273565b908152602001604051809103902060030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508860400151600382604051611b409190613273565b90815260405190819003602001902060040180546001600160a01b03929092166001600160a01b0319909216919091179055611e84565b600189516002811115611b8c57611b8c6131a1565b03611d3757606089015160408a0151895191985096506001600160a01b0316611bb3573395505b856001600160a01b0316600382604051611bcd9190613273565b908152604051908190036020019020600401546001600160a01b0316148015611c0b5750856001600160a01b031689604001516001600160a01b0316145b8015611c4d57506001600160a01b038716600090815260026020526040908190209051611c39908390613273565b9081526040519081900360200190205460ff165b611ca35760405162461bcd60e51b815260206004820152602160248201527f57726f6e67204f7574776172646564546f206f722072656365697665724164646044820152601760f91b6064820152608401610713565b85600382604051611cb49190613273565b908152602001604051809103902060030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506002600382604051611cfb9190613273565b908152604051908190036020019020600401805460ff60a01b1916600160a01b836005811115611d2d57611d2d6131a1565b0217905550611e84565b600289516002811115611d4c57611d4c6131a1565b03611e8457875160408a015190975095506001600160a01b038716611d6f573396505b6001600160a01b038716600090815260026020526040908190209051611d96908390613273565b9081526040519081900360200190205460ff16611df55760405162461bcd60e51b815260206004820152601560248201527f596f7520617265206e6f7420746865206f776e657200000000000000000000006044820152606401610713565b85600382604051611e069190613273565b908152602001604051809103902060030160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060038082604051611e4c9190613273565b908152604051908190036020019020600401805460ff60a01b1916600160a01b836005811115611e7e57611e7e6131a1565b02179055505b60006040518060c00160405280886001600160a01b031681526020014281526020018b6080015181526020018b60a0015181526020018a6020015181526020018a604001518152509050600482604051611ede9190613273565b9081526040805160209281900383019020805460018082018355600092835291849020855160069092020180546001600160a01b0319166001600160a01b0390921691909117815592840151908301558201518291906002820190611f43908261340a565b5060608201516003820190611f58908261340a565b5060808201516004820190611f6d908261340a565b5060a08201516005820190611f82908261340a565b5050506001600160a01b0388166000908152600260205260408082209051611fab908590613273565b9081526040805160209281900383018120805460ff1916941515949094179093556001600160a01b038a16600090815260029092529020600191611ff0908590613273565b908152602001604051809103902060006101000a81548160ff0219169083151502179055507fe96a9a38c45dc3bef340c540657f0d1590e18bdc51d5c43578c8059cdec1f85e82896003856040516120489190613273565b908152604051908190036020018120600301546120729392916001600160a01b03909116906134f1565b60405180910390a150508080612087906134ca565b9150506119ad565b505050808061209d906134ca565b915050611830565b50505050565b60075461010090046001600160a01b031633146120dd57604051633ed4250360e11b8152336004820152602401610713565b6120e561285d565b60006120f46020830183612d06565b90506001600160a01b0381166121075750335b6040805160c081019091526000908061212086806132a5565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602090810190612169908701876132a5565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250938552505060408051602081810183528482528501526001600160a01b0387169084015250606082018190526080909101526001600160a01b0383166000908152600260205260409081902082519151929350916121f79190613273565b9081526040519081900360200190205460ff161561227d5760405162461bcd60e51b815260206004820152602260248201527f417373657420616c72656164792065786973747320666f72207468652075736560448201527f722e0000000000000000000000000000000000000000000000000000000000006064820152608401610713565b8051600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301906122b9908261340a565b5080600382600001516040516122cf9190613273565b908152604051908190036020019020815181906122ec908261340a565b5060208201516001820190612301908261340a565b5060408201516002820190612316908261340a565b5060608201516003820180546001600160a01b03199081166001600160a01b0393841617909155608084015160048401805492831691909316908117835560a085015192917fffffffffffffffffffffff0000000000000000000000000000000000000000001617600160a01b836005811115612395576123956131a1565b021790555050506001600160a01b03821660009081526002602052604090819020825191516001926123c691613273565b908152602001604051809103902060006101000a81548160ff02191690831515021790555060006040518060c00160405280846001600160a01b0316815260200142815260200160405180602001604052806000815250815260200160405180602001604052806000815250815260200185806020019061244791906132a5565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060200161248e60408701876132a5565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082516040519192506004916124d99190613273565b9081526040805160209281900383019020805460018082018355600092835291849020855160069092020180546001600160a01b0319166001600160a01b039092169190911781559284015190830155820151829190600282019061253e908261340a565b5060608201516003820190612553908261340a565b5060808201516004820190612568908261340a565b5060a0820151600582019061257d908261340a565b5050505050505050565b60606005826040516125999190613273565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020016000905b828210156106da5783829060005260206000200180546125e690613239565b80601f016020809104026020016040519081016040528092919081815260200182805461261290613239565b801561265f5780601f106126345761010080835404028352916020019161265f565b820191906000526020600020905b81548152906001019060200180831161264257829003601f168201915b5050505050815260200190600101906125c7565b805160208183018101805160038252928201919093012091528054819061269990613239565b80601f01602080910402602001604051908101604052809291908181526020018280546126c590613239565b80156127125780601f106126e757610100808354040283529160200191612712565b820191906000526020600020905b8154815290600101906020018083116126f557829003601f168201915b50505050509080600101805461272790613239565b80601f016020809104026020016040519081016040528092919081815260200182805461275390613239565b80156127a05780601f10612775576101008083540402835291602001916127a0565b820191906000526020600020905b81548152906001019060200180831161278357829003601f168201915b5050505050908060020180546127b590613239565b80601f01602080910402602001604051908101604052809291908181526020018280546127e190613239565b801561282e5780601f106128035761010080835404028352916020019161282e565b820191906000526020600020905b81548152906001019060200180831161281157829003601f168201915b50505050600383015460049093015491926001600160a01b03908116929081169150600160a01b900460ff1686565b60075460ff1615610b565760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610713565b6128b861293f565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b61290a61285d565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586128e53390565b60075460ff16610b565760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610713565b50805460008255906000526020600020908101906129af91906129b2565b50565b808211156129cf5760006129c682826129d3565b506001016129b2565b5090565b5080546129df90613239565b6000825580601f106129ef575050565b601f0160209004906000526020600020908101906129af91905b808211156129cf5760008155600101612a09565b60005b83811015612a38578181015183820152602001612a20565b50506000910152565b60008151808452612a59816020860160208601612a1d565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612ac257603f19888603018452612ab0858351612a41565b94509285019290850190600101612a94565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715612b0857612b08612acf565b60405290565b60405160c0810167ffffffffffffffff81118282101715612b0857612b08612acf565b604051601f8201601f1916810167ffffffffffffffff81118282101715612b5a57612b5a612acf565b604052919050565b600082601f830112612b7357600080fd5b813567ffffffffffffffff811115612b8d57612b8d612acf565b612ba0601f8201601f1916602001612b31565b818152846020838601011115612bb557600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215612be457600080fd5b813567ffffffffffffffff811115612bfb57600080fd5b612c0784828501612b62565b949350505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015612cdc57603f19898403018552815160c06001600160a01b0382511685528882015189860152878201518189870152612c7582870182612a41565b91505060608083015186830382880152612c8f8382612a41565b9250505060808083015186830382880152612caa8382612a41565b9250505060a08083015192508582038187015250612cc88183612a41565b968901969450505090860190600101612c36565b509098975050505050505050565b80356001600160a01b0381168114612d0157600080fd5b919050565b600060208284031215612d1857600080fd5b612d2182612cea565b9392505050565b60008083601f840112612d3a57600080fd5b50813567ffffffffffffffff811115612d5257600080fd5b602083019150836020828501011115612d6a57600080fd5b9250929050565b60008060008060408587031215612d8757600080fd5b843567ffffffffffffffff80821115612d9f57600080fd5b612dab88838901612d28565b90965094506020870135915080821115612dc457600080fd5b818701915087601f830112612dd857600080fd5b813581811115612de757600080fd5b8860208260051b8501011115612dfc57600080fd5b95989497505060200194505050565b60008060208385031215612e1e57600080fd5b823567ffffffffffffffff811115612e3557600080fd5b612e4185828601612d28565b90969095509350505050565b60008060408385031215612e6057600080fd5b612e6983612cea565b9150602083013567ffffffffffffffff811115612e8557600080fd5b612e9185828601612b62565b9150509250929050565b803560038110612d0157600080fd5b600060408284031215612ebc57600080fd5b612ec4612ae5565b9050813560028110612ed557600080fd5b815260208281013567ffffffffffffffff80821115612ef357600080fd5b818501915085601f830112612f0757600080fd5b813581811115612f1957612f19612acf565b8060051b612f28858201612b31565b9182528381018501918581019089841115612f4257600080fd5b86860192505b83831015612f7e57823585811115612f605760008081fd5b612f6e8b89838a0101612b62565b8352509186019190860190612f48565b80878901525050505050505092915050565b600060608284031215612fa257600080fd5b6040516060810167ffffffffffffffff8282108183111715612fc657612fc6612acf565b81604052829350612fd685612cea565b83526020850135915080821115612fec57600080fd5b612ff886838701612b62565b6020840152604085013591508082111561301157600080fd5b5061301e85828601612b62565b6040830152505092915050565b6000806040838503121561303e57600080fd5b823567ffffffffffffffff8082111561305657600080fd5b9084019060c0828703121561306a57600080fd5b613072612b0e565b61307b83612e9b565b815260208301358281111561308f57600080fd5b61309b88828601612eaa565b6020830152506130ad60408401612cea565b60408201526130be60608401612cea565b60608201526080830135828111156130d557600080fd5b6130e188828601612b62565b60808301525060a0830135828111156130f957600080fd5b61310588828601612b62565b60a0830152509350602085013591508082111561312157600080fd5b50612e9185828601612f90565b6000806040838503121561314157600080fd5b823567ffffffffffffffff8082111561315957600080fd5b908401906040828703121561316d57600080fd5b9092506020840135908082111561318357600080fd5b5083016060818603121561319657600080fd5b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60c0815260006131ca60c0830189612a41565b82810360208401526131dc8189612a41565b905082810360408401526131f08188612a41565b6001600160a01b038781166060860152861660808501529150506006831061322857634e487b7160e01b600052602160045260246000fd5b8260a0830152979650505050505050565b600181811c9082168061324d57607f821691505b60208210810361326d57634e487b7160e01b600052602260045260246000fd5b50919050565b60008251613285818460208701612a1d565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126132bc57600080fd5b83018035915067ffffffffffffffff8211156132d757600080fd5b602001915036819003821315612d6a57600080fd5b601f821115610e3657600081815260208120601f850160051c810160208610156133135750805b601f850160051c820191505b818110156133325782815560010161331f565b505050505050565b67ffffffffffffffff83111561335257613352612acf565b613366836133608354613239565b836132ec565b6000601f84116001811461339a57600085156133825750838201355b600019600387901b1c1916600186901b178355610b1a565b600083815260209020601f19861690835b828110156133cb57868501358255602094850194600190920191016133ab565b50868210156133e85760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8183823760009101908152919050565b815167ffffffffffffffff81111561342457613424612acf565b613438816134328454613239565b846132ec565b602080601f83116001811461346d57600084156134555750858301515b600019600386901b1c1916600185901b178555613332565b600085815260208120601f198616915b8281101561349c5788860151825594840194600190910190840161347d565b50858210156134ba5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000600182016134ea57634e487b7160e01b600052601160045260246000fd5b5060010190565b6060815260006135046060830186612a41565b6001600160a01b039485166020840152929093166040909101529291505056fea264697066735822122051bc02dc24d7ca35d5ecad21d1b9145fc4d8007a7a041ca1cab5dee3a81bd31c64736f6c63430008120033000000000000000000000000d196d03211c584480cb0f905a3c1aa98914b026c"}], "id":1 }