diff --git a/contracts/BSCValidatorSet.sol b/contracts/BSCValidatorSet.sol index 43334782..a1ca3c17 100644 --- a/contracts/BSCValidatorSet.sol +++ b/contracts/BSCValidatorSet.sol @@ -157,12 +157,12 @@ contract BSCValidatorSet is IBSCValidatorSet, System, IParamSubscriber, IApplica } if (value > 0 && curBurnRatio > 0) { - uint256 toBurn = value * curBurnRatio / BURN_RATIO_SCALE; + uint256 toBurn = value.mul(curBurnRatio).div(BURN_RATIO_SCALE); if (toBurn > 0) { address(uint160(BURN_ADDRESS)).transfer(toBurn); emit feeBurned(toBurn); - value = value - toBurn; + value = value.sub(toBurn); } } diff --git a/contracts/BSCValidatorSet.template b/contracts/BSCValidatorSet.template index 9a9ed1f2..96b59791 100644 --- a/contracts/BSCValidatorSet.template +++ b/contracts/BSCValidatorSet.template @@ -157,12 +157,12 @@ contract BSCValidatorSet is IBSCValidatorSet, System, IParamSubscriber, IApplica } if (value > 0 && curBurnRatio > 0) { - uint256 toBurn = value * curBurnRatio / BURN_RATIO_SCALE; + uint256 toBurn = value.mul(curBurnRatio).div(BURN_RATIO_SCALE); if (toBurn > 0) { address(uint160(BURN_ADDRESS)).transfer(toBurn); emit feeBurned(toBurn); - value = value - toBurn; + value = value.sub(toBurn); } } diff --git a/genesis.json b/genesis.json index 6fa61fe3..897fbd00 100644 --- a/genesis.json +++ b/genesis.json @@ -31,7 +31,7 @@ }, "0x0000000000000000000000000000000000001000": { "balance": "0x0", - "code": "0x6080604052600436106102e45760003560e01c80638624988211610190578063c8509d81116100dc578063eb57e20211610095578063f9a2bbc71161006f578063f9a2bbc714610a69578063fc3e590814610a7e578063fccc281314610a93578063fd6a687914610aa8576102e4565b8063eb57e202146109fb578063eda5868c14610a2e578063f340fa0114610a43576102e4565b8063c8509d81146106d8578063d86222d514610992578063daacdb66146109a7578063dc927faf146109bc578063e086c7b1146109d1578063e1c7392a146109e6576102e4565b8063aaf5eb6811610149578063ad3c9da611610123578063ad3c9da6146108e5578063b7ab4db514610918578063bf9f4995146104c0578063c81b16621461097d576102e4565b8063aaf5eb68146107f0578063ab51bb9614610805578063ac4317511461081a576102e4565b8063862498821461077257806396713da9146107875780639dc092621461079c578063a1a11bf5146107b1578063a5422d5c146107c6578063a78abc16146107db576102e4565b806351e806721161024f57806370fd5bad116102085780637942fd05116101e25780637942fd05146106ae57806381650b62146106c3578063831d65d1146106d8578063853230aa1461075d576102e4565b806370fd5bad1461066f57806375d47a0a1461068457806378dfed4a14610699576102e4565b806351e8067214610572578063565c56b3146105875780635667515a146105ba5780635d77156c146105cf5780636969a25c146105e45780636e47b4821461065a576102e4565b80633de0f0d8116102a15780633de0f0d8146104ab5780633dffc387146104c057806343756e5c146104eb578063493279b11461051c5780634bf6c882146105485780635192c82c1461055d576102e4565b80630bee7a67146102e95780631182b87514610317578063152ad3b8146104115780631ff180691461043a578063219f22d51461046157806335409f7f14610476575b600080fd5b3480156102f557600080fd5b506102fe610abd565b6040805163ffffffff9092168252519081900360200190f35b34801561032357600080fd5b5061039c6004803603604081101561033a57600080fd5b60ff8235169190810190604081016020820135600160201b81111561035e57600080fd5b82018360208201111561037057600080fd5b803590602001918460018302840111600160201b8311171561039157600080fd5b509092509050610ac2565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d65781810151838201526020016103be565b50505050905090810190601f1680156104035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041d57600080fd5b50610426610caf565b604080519115158252519081900360200190f35b34801561044657600080fd5b5061044f610cb8565b60408051918252519081900360200190f35b34801561046d57600080fd5b506102fe610cbe565b34801561048257600080fd5b506104a96004803603602081101561049957600080fd5b50356001600160a01b0316610cc3565b005b3480156104b757600080fd5b5061044f610fd7565b3480156104cc57600080fd5b506104d5610fdd565b6040805160ff9092168252519081900360200190f35b3480156104f757600080fd5b50610500610fe2565b604080516001600160a01b039092168252519081900360200190f35b34801561052857600080fd5b50610531610fe8565b6040805161ffff9092168252519081900360200190f35b34801561055457600080fd5b506104d5610fed565b34801561056957600080fd5b5061044f610ff2565b34801561057e57600080fd5b50610500610ff8565b34801561059357600080fd5b5061044f600480360360208110156105aa57600080fd5b50356001600160a01b0316610ffe565b3480156105c657600080fd5b506104d5611050565b3480156105db57600080fd5b506102fe611055565b3480156105f057600080fd5b5061060e6004803603602081101561060757600080fd5b503561105a565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b34801561066657600080fd5b506105006110be565b34801561067b57600080fd5b506104d56110c4565b34801561069057600080fd5b506105006110c9565b3480156106a557600080fd5b5061044f611050565b3480156106ba57600080fd5b506104d56110cf565b3480156106cf57600080fd5b506102fe6110d4565b3480156106e457600080fd5b506104a9600480360360408110156106fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460018302840111600160201b8311171561075257600080fd5b5090925090506110d9565b34801561076957600080fd5b5061044f61118c565b34801561077e57600080fd5b5061044f611192565b34801561079357600080fd5b506104d5611198565b3480156107a857600080fd5b5061050061119d565b3480156107bd57600080fd5b506105006111a3565b3480156107d257600080fd5b5061039c6111a9565b3480156107e757600080fd5b506104266111c5565b3480156107fc57600080fd5b5061044f6111ce565b34801561081157600080fd5b506102fe611050565b34801561082657600080fd5b506104a96004803603604081101561083d57600080fd5b810190602081018135600160201b81111561085757600080fd5b82018360208201111561086957600080fd5b803590602001918460018302840111600160201b8311171561088a57600080fd5b919390929091602081019035600160201b8111156108a757600080fd5b8201836020820111156108b957600080fd5b803590602001918460018302840111600160201b831117156108da57600080fd5b5090925090506111d7565b3480156108f157600080fd5b5061044f6004803603602081101561090857600080fd5b50356001600160a01b03166115ce565b34801561092457600080fd5b5061092d6115e0565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610969578181015183820152602001610951565b505050509050019250505060405180910390f35b34801561098957600080fd5b50610500611706565b34801561099e57600080fd5b5061044f61170c565b3480156109b357600080fd5b5061044f611718565b3480156109c857600080fd5b5061050061171e565b3480156109dd57600080fd5b5061044f611724565b3480156109f257600080fd5b506104a9611729565b348015610a0757600080fd5b506104a960048036036020811015610a1e57600080fd5b50356001600160a01b0316611929565b348015610a3a57600080fd5b506102fe611af8565b6104a960048036036020811015610a5957600080fd5b50356001600160a01b0316611afd565b348015610a7557600080fd5b50610500611dd2565b348015610a8a57600080fd5b506104d5611dd8565b348015610a9f57600080fd5b50610500611ddd565b348015610ab457600080fd5b50610500611de3565b606481565b60005460609060ff16610b18576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610b585760405162461bcd60e51b815260040180806020018281038252602f815260200180614267602f913960400191505060405180910390fd5b610b60614037565b6000610ba185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611de992505050565b9150915080610bbd57610bb46064611f42565b92505050610ca8565b815160009060ff16610bdd57610bd68360200151611fa3565b9050610c74565b825160ff1660011415610c7057826020015151600114610c4a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260258152602001806141656025913960400191505060405180910390a1506067610c6b565b610bd68360200151600081518110610c5e57fe5b6020026020010151612da9565b610c74565b5060655b63ffffffff8116610c995750506040805160008152602081019091529150610ca89050565b610ca281611f42565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b3361100114610d035760405162461bcd60e51b81526004018080602001828103825260298152602001806142c36029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610d275750610fd4565b600181039050600060018281548110610d3c57fe5b60009182526020909120600360049092020101546001549091506000190180610d8b57600060018481548110610d6e57fe5b906000526020600020906004020160030181905550505050610fd4565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610f0d57600180546000198101908110610e0257fe5b906000526020600020906004020160018481548110610e1d57fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610ee257fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610f1857fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610f6b57fe5b0490508015610fcf5760015460005b81811015610fcc578260018281548110610f9057fe5b9060005260206000209060040201600301540160018281548110610fb057fe5b6000918252602090912060036004909202010155600101610f7a565b50505b505050505b50565b61271081565b600181565b61100181565b606081565b600881565b60065481565b61200081565b6001600160a01b0381166000908152600460205260408120548061102657600091505061104b565b60018082038154811061103557fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b6001818154811061106757fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b600b81565b606681565b33612000146111195760405162461bcd60e51b815260040180806020018281038252602f815260200180614267602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b6103e881565b60025481565b600981565b61100781565b61100681565b6040518060800160405280604781526020016141ff6047913981565b60005460ff1681565b6402540be40081565b60005460ff1661122a576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461126a5760405162461bcd60e51b815260040180806020018281038252602e81526020018061418a602e913960400191505060405180910390fd5b6112d484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612f209050565b156113af57602081146113185760405162461bcd60e51b81526004018080602001828103825260268152602001806141d96026913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916113569185858083850183828082843760009201919091525061300892505050565b90506064811015801561136c5750620186a08111155b6113a75760405162461bcd60e51b815260040180806020018281038252602781526020018061413e6027913960400191505060405180910390fd5b60025561153c565b61140f84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b60208201529150612f209050565b156114ff5760208114611469576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916114a79185858083850183828082843760009201919091525061300892505050565b90506127108111156114ea5760405162461bcd60e51b815260040180806020018281038252602b8152602001806140e8602b913960400191505060405180910390fd5b6006556007805460ff1916600117905561153c565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561163157600181815481106115ff57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611629576001909101905b6001016115ea565b5060608160405190808252806020026020018201604052801561165e578160200160208202803683370190505b50600092509050815b838110156116fe576001818154811061167c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166116f657600181815481106116ac57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106116d757fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611667565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff1615611781576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611789614037565b60006117ac6040518060800160405280604781526020016141ff60479139611de9565b91509150806117ec5760405162461bcd60e51b81526004018080602001828103825260218152602001806142466021913960400191505060405180910390fd5b60005b8260200151518110156119115760018360200151828151811061180e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106118e457fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016117ef565b50506103e8600255506000805460ff19166001179055565b33611001146119695760405162461bcd60e51b81526004018080602001828103825260298152602001806142c36029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061198d5750610fd4565b6001810390506000600182815481106119a257fe5b90600052602060002090600402016003015490506000600183815481106119c557fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a280611a3457505050610fd4565b6000818381611a3f57fe5b0490508015610fcf5760005b84811015611a9d578160018281548110611a6157fe5b9060005260206000209060040201600301540160018281548110611a8157fe5b6000918252602090912060036004909202010155600101611a4b565b50600180549085015b81811015610fcc578260018281548110611abc57fe5b9060005260206000209060040201600301540160018281548110611adc57fe5b6000918252602090912060036004909202010155600101611aa6565b606581565b334114611b3b5760405162461bcd60e51b815260040180806020018281038252602d815260200180614296602d913960400191505060405180910390fd5b60005460ff16611b8e576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60003411611bdb576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604081205460075434929060ff1615611c0757506006545b600083118015611c175750600081115b15611c9457612710818402048015611c925760405161dead9082156108fc029083906000818181858888f19350505050158015611c58573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a180840393505b505b8115611d8c576000600180840381548110611cab57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611d16576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611d86565b600354611d29908563ffffffff61300d16565b6003908155810154611d41908563ffffffff61300d16565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611dcc565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b61100081565b600381565b61dead81565b61100481565b611df1614037565b6000611dfb614037565b611e0361404f565b611e14611e0f86613067565b61308c565b90506000805b611e23836130d6565b15611f345780611e4857611e3e611e39846130f7565b613145565b60ff168452611f2c565b8060011415611f27576060611e64611e5f856130f7565b6131fc565b90508051604051908082528060200260200182016040528015611ea157816020015b611e8e61406f565b815260200190600190039081611e865790505b50602086015260005b8151811015611f1c57611ebb61406f565b6000611ed9848481518110611ecc57fe5b60200260200101516132cd565b9150915080611ef657876000995099505050505050505050611f3d565b8188602001518481518110611f0757fe5b60209081029190910101525050600101611eaa565b506001925050611f2c565b611f34565b600101611e1a565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611f5c579050509050611f828363ffffffff166133aa565b81600081518110611f8f57fe5b6020026020010181905250610ca8816133bd565b6000806060611fb184613447565b915091508161205e577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015612019578181015183820152602001612001565b50505050905090810190601f1680156120465780820380516001836020036101000a031916815260200191505b509250505060405180910390a160669250505061104b565b600080805b6001548110156120db5767016345785d8a00006001828154811061208357fe5b906000526020600020906004020160030154106120a5576001909201916120d3565b6000600182815481106120b457fe5b90600052602060002090600402016003015411156120d3576001909101905b600101612063565b50606082604051908082528060200260200182016040528015612108578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015612137578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015612166578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015612195578160200160208202803683370190505b50905060006060866040519080825280602002602001820160405280156121c6578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156121f5578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561224257600080fd5b505afa158015612256573d6000803e3d6000fd5b505050506040513d602081101561226c57600080fd5b5051905067016345785d8a00008111156122e1577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260218152602001806141b86021913960400191505060405180910390a160689d505050505050505050505050505061104b565b60005b6001548110156125545767016345785d8a00006001828154811061230457fe5b9060005260206000209060040201600301541061248a576001818154811061232857fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061235957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061238e57fe5b906000526020600020906004020160030154816123a757fe5b06600183815481106123b557fe5b9060005260206000209060040201600301540390506123dd838261352990919063ffffffff16565b8a8e815181106123e957fe5b6020026020010181815250506001828154811061240257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061243357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061246057fe5b602090810291909101015261247b878263ffffffff61300d16565b6001909d019c965061254c9050565b60006001828154811061249957fe5b906000526020600020906004020160030154111561254c57600181815481106124be57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c815181106124ef57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061251c57fe5b906000526020600020906004020160030154848c8151811061253a57fe5b60209081029190910101526001909a01995b6001016122e4565b5060008515612992576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156125e65781810151838201526020016125ce565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561262557818101518382015260200161260d565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561266457818101518382015260200161264c565b505050509050019750505050505050506020604051808303818588803b15801561268d57600080fd5b505af1935050505080156126b357506040513d60208110156126ae57600080fd5b505160015b6128ee576040516000815260443d10156126cf5750600061276a565b60046000803e60005160e01c6308c379a081146126f057600091505061276a565b60043d036004833e81513d60248201116001600160401b038211171561271b5760009250505061276a565b80830180516001600160401b0381111561273c57600094505050505061276a565b8060208301013d860181111561275a5760009550505050505061276a565b601f01601f191660405250925050505b806127755750612819565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127d95781810151838201526020016127c1565b50505050905090810190601f1680156128065780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506128e9565b3d808015612843576040519150601f19603f3d011682016040523d82523d6000602084013e612848565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128ad578181015183820152602001612895565b50505050905090810190601f1680156128da5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b612992565b801561292c576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a1612990565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015612b485760005b8851811015612b465760008982815181106129b257fe5b602002602001015190506000600182815481106129cb57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106129fc57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015612ab85760018281548110612a3d57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110612a8c57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612b3c565b60018281548110612ac557fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110612b1457fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b505060010161299b565b505b845115612c925760005b8551811015612c90576000868281518110612b6957fe5b60200260200101516001600160a01b03166108fc878481518110612b8957fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015612c1f57868281518110612bbf57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d878481518110612bfd57fe5b60200260200101516040518082815260200191505060405180910390a2612c87565b868281518110612c2b57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d878481518110612c6957fe5b60200260200101516040518082815260200191505060405180910390a25b50600101612b52565b505b4715612cfb576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612cf9573d6000803e3d6000fd5b505b60006003819055600555825115612d1557612d158361356b565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612d5257600080fd5b505af1158015612d66573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612dfa5750600180820381548110612dda57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612e405782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061104b565b600154600554600019820111801590612e965784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061104b565b600580546001908101909155805481906000198601908110612eb457fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612f555780518252601f199092019160209182019101612f36565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612fc35780518252601f199092019160209182019101612fa4565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b600082820183811015610ca8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61306f6140a4565b506040805180820190915281518152602082810190820152919050565b61309461404f565b61309d82613a2c565b6130a657600080fd5b60006130b58360200151613a66565b60208085015160408051808201909152868152920190820152915050919050565b60006130e06140a4565b505080518051602091820151919092015191011190565b6130ff6140a4565b613108826130d6565b61311157600080fd5b6020820151600061312182613ac9565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061315a57508151602110155b61316357600080fd5b60006131728360200151613a66565b905080836000015110156131cd576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156131f357826020036101000a820491505b50949350505050565b606061320782613a2c565b61321057600080fd5b600061321b83613bfc565b905060608160405190808252806020026020018201604052801561325957816020015b6132466140a4565b81526020019060019003908161323e5790505b509050600061326b8560200151613a66565b60208601510190506000805b848110156132c25761328883613ac9565b91506040518060400160405280838152602001848152508482815181106132ab57fe5b602090810291909101015291810191600101613277565b509195945050505050565b6132d561406f565b60006132df61406f565b6132e761404f565b6132f08561308c565b90506000805b6132ff836130d6565b15611f34578061332a5761331a613315846130f7565b613c58565b6001600160a01b031684526133a2565b80600114156133525761333f613315846130f7565b6001600160a01b031660208501526133a2565b806002141561337a57613367613315846130f7565b6001600160a01b031660408501526133a2565b8060031415611f275761338f611e39846130f7565b6001600160401b03166060850152600191505b6001016132f6565b60606130026133b883613c72565b613d58565b60608151600014156133de575060408051600081526020810190915261104b565b6060826000815181106133ed57fe5b602002602001015190506000600190505b835181101561342e576134248285838151811061341757fe5b6020026020010151613daa565b91506001016133fe565b50610ca8613441825160c060ff16613e27565b82613daa565b600060606029835111156134795760006040518060600160405280602981526020016140bf6029913991509150611f3d565b60005b835181101561350f5760005b818110156135065784818151811061349c57fe5b6020026020010151600001516001600160a01b03168583815181106134bd57fe5b6020026020010151600001516001600160a01b031614156134fe5760006040518060600160405280602b8152602001614113602b9139935093505050611f3d565b600101613488565b5060010161347c565b505060408051602081019091526000815260019150915091565b6000610ca883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613f1f565b600154815160005b8281101561368857600161358561406f565b6001838154811061359257fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b8481101561365c5786818151811061362257fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415613654576000925061365c565b60010161360e565b50811561367e5780516001600160a01b03166000908152600460205260408120555b5050600101613573565b50808211156136fd57805b828110156136fb5760018054806136a657fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b0319169055600390910191909155915501613693565b505b600081831061370c578161370e565b825b905060005b81811015613908576137c085828151811061372a57fe5b60200260200101516001838154811061373f57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152613fb6565b6138db5780600101600460008784815181106137d857fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061381457fe5b60200260200101516001828154811061382957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a090910151600390910155613900565b6000600182815481106138ea57fe5b9060005260206000209060040201600301819055505b600101613713565b5082821115611dcc57825b82811015610fcf57600185828151811061392957fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a090920151600390930192909255875190840192908890859081106139ff57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613913565b8051600090613a3d5750600061104b565b6020820151805160001a9060c0821015613a5c5760009250505061104b565b5060019392505050565b8051600090811a6080811015613a8057600091505061104b565b60b8811080613a9b575060c08110801590613a9b575060f881105b15613aaa57600191505061104b565b60c0811015613abe5760b51901905061104b565b60f51901905061104b565b80516000908190811a6080811015613ae45760019150613bf5565b60b8811015613af957607e1981019150613bf5565b60c0811015613b7357600060b78203600186019550806020036101000a865104915060018101820193505080831015613b6d576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613bf5565b60f8811015613b885760be1981019150613bf5565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613bf3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090613c0d5750600061104b565b60008090506000613c218460200151613a66565b602085015185519181019250015b80821015613c4f57613c4082613ac9565b60019093019290910190613c2f565b50909392505050565b8051600090601514613c6957600080fd5b61300282613145565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613cb657506018613cda565b6fffffffffffffffffffffffffffffffff198416613cd657506010613cda565b5060005b6020811015613d1057818181518110613cef57fe5b01602001516001600160f81b03191615613d0857613d10565b600101613cda565b60008160200390506060816040519080825280601f01601f191660200182016040528015613d45576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613d8a5750607f60f81b82600081518110613d7857fe5b01602001516001600160f81b03191611155b15613d9657508061104b565b613002613da88351608060ff16613e27565b835b6060806040519050835180825260208201818101602087015b81831015613ddb578051835260209283019201613dc3565b50855184518101855292509050808201602086015b81831015613e08578051835260209283019201613df0565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613e77576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613ed15782840160f81b81600081518110613eb357fe5b60200101906001600160f81b031916908160001a9053509050613002565b6060613edc85613c72565b90508381510160370160f81b82600081518110613ef557fe5b60200101906001600160f81b031916908160001a905350613f168282613daa565b95945050505050565b60008184841115613fae5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613f73578181015183820152602001613f5b565b50505050905090810190601f168015613fa05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b805182516000916001600160a01b039182169116148015613ff0575081602001516001600160a01b031683602001516001600160a01b0316145b8015614015575081604001516001600160a01b031683604001516001600160a01b0316145b8015610ca85750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b60405180604001604052806140626140a4565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d61746368f84580f842f840949fb29aac15b9a4b7f17c3385939b007540f4d791949fb29aac15b9a4b7f17c3385939b007540f4d791949fb29aac15b9a4b7f17c3385939b007540f4d791646661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a26469706673582212207df5829be08f8d809a84ced12a968e49c78b71866e036d539a0393f812c2438f64736f6c63430006040033" + "code": "0x6080604052600436106102e45760003560e01c80638624988211610190578063c8509d81116100dc578063eb57e20211610095578063f9a2bbc71161006f578063f9a2bbc714610a69578063fc3e590814610a7e578063fccc281314610a93578063fd6a687914610aa8576102e4565b8063eb57e202146109fb578063eda5868c14610a2e578063f340fa0114610a43576102e4565b8063c8509d81146106d8578063d86222d514610992578063daacdb66146109a7578063dc927faf146109bc578063e086c7b1146109d1578063e1c7392a146109e6576102e4565b8063aaf5eb6811610149578063ad3c9da611610123578063ad3c9da6146108e5578063b7ab4db514610918578063bf9f4995146104c0578063c81b16621461097d576102e4565b8063aaf5eb68146107f0578063ab51bb9614610805578063ac4317511461081a576102e4565b8063862498821461077257806396713da9146107875780639dc092621461079c578063a1a11bf5146107b1578063a5422d5c146107c6578063a78abc16146107db576102e4565b806351e806721161024f57806370fd5bad116102085780637942fd05116101e25780637942fd05146106ae57806381650b62146106c3578063831d65d1146106d8578063853230aa1461075d576102e4565b806370fd5bad1461066f57806375d47a0a1461068457806378dfed4a14610699576102e4565b806351e8067214610572578063565c56b3146105875780635667515a146105ba5780635d77156c146105cf5780636969a25c146105e45780636e47b4821461065a576102e4565b80633de0f0d8116102a15780633de0f0d8146104ab5780633dffc387146104c057806343756e5c146104eb578063493279b11461051c5780634bf6c882146105485780635192c82c1461055d576102e4565b80630bee7a67146102e95780631182b87514610317578063152ad3b8146104115780631ff180691461043a578063219f22d51461046157806335409f7f14610476575b600080fd5b3480156102f557600080fd5b506102fe610abd565b6040805163ffffffff9092168252519081900360200190f35b34801561032357600080fd5b5061039c6004803603604081101561033a57600080fd5b60ff8235169190810190604081016020820135600160201b81111561035e57600080fd5b82018360208201111561037057600080fd5b803590602001918460018302840111600160201b8311171561039157600080fd5b509092509050610ac2565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d65781810151838201526020016103be565b50505050905090810190601f1680156104035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041d57600080fd5b50610426610caf565b604080519115158252519081900360200190f35b34801561044657600080fd5b5061044f610cb8565b60408051918252519081900360200190f35b34801561046d57600080fd5b506102fe610cbe565b34801561048257600080fd5b506104a96004803603602081101561049957600080fd5b50356001600160a01b0316610cc3565b005b3480156104b757600080fd5b5061044f610fd7565b3480156104cc57600080fd5b506104d5610fdd565b6040805160ff9092168252519081900360200190f35b3480156104f757600080fd5b50610500610fe2565b604080516001600160a01b039092168252519081900360200190f35b34801561052857600080fd5b50610531610fe8565b6040805161ffff9092168252519081900360200190f35b34801561055457600080fd5b506104d5610fed565b34801561056957600080fd5b5061044f610ff2565b34801561057e57600080fd5b50610500610ff8565b34801561059357600080fd5b5061044f600480360360208110156105aa57600080fd5b50356001600160a01b0316610ffe565b3480156105c657600080fd5b506104d5611050565b3480156105db57600080fd5b506102fe611055565b3480156105f057600080fd5b5061060e6004803603602081101561060757600080fd5b503561105a565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b34801561066657600080fd5b506105006110be565b34801561067b57600080fd5b506104d56110c4565b34801561069057600080fd5b506105006110c9565b3480156106a557600080fd5b5061044f611050565b3480156106ba57600080fd5b506104d56110cf565b3480156106cf57600080fd5b506102fe6110d4565b3480156106e457600080fd5b506104a9600480360360408110156106fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460018302840111600160201b8311171561075257600080fd5b5090925090506110d9565b34801561076957600080fd5b5061044f61118c565b34801561077e57600080fd5b5061044f611192565b34801561079357600080fd5b506104d5611198565b3480156107a857600080fd5b5061050061119d565b3480156107bd57600080fd5b506105006111a3565b3480156107d257600080fd5b5061039c6111a9565b3480156107e757600080fd5b506104266111c5565b3480156107fc57600080fd5b5061044f6111ce565b34801561081157600080fd5b506102fe611050565b34801561082657600080fd5b506104a96004803603604081101561083d57600080fd5b810190602081018135600160201b81111561085757600080fd5b82018360208201111561086957600080fd5b803590602001918460018302840111600160201b8311171561088a57600080fd5b919390929091602081019035600160201b8111156108a757600080fd5b8201836020820111156108b957600080fd5b803590602001918460018302840111600160201b831117156108da57600080fd5b5090925090506111d7565b3480156108f157600080fd5b5061044f6004803603602081101561090857600080fd5b50356001600160a01b03166115ce565b34801561092457600080fd5b5061092d6115e0565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610969578181015183820152602001610951565b505050509050019250505060405180910390f35b34801561098957600080fd5b50610500611706565b34801561099e57600080fd5b5061044f61170c565b3480156109b357600080fd5b5061044f611718565b3480156109c857600080fd5b5061050061171e565b3480156109dd57600080fd5b5061044f611724565b3480156109f257600080fd5b506104a9611729565b348015610a0757600080fd5b506104a960048036036020811015610a1e57600080fd5b50356001600160a01b0316611929565b348015610a3a57600080fd5b506102fe611af8565b6104a960048036036020811015610a5957600080fd5b50356001600160a01b0316611afd565b348015610a7557600080fd5b50610500611dfe565b348015610a8a57600080fd5b506104d5611e04565b348015610a9f57600080fd5b50610500611e09565b348015610ab457600080fd5b50610500611e0f565b606481565b60005460609060ff16610b18576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610b585760405162461bcd60e51b815260040180806020018281038252602f8152602001806143b4602f913960400191505060405180910390fd5b610b60614163565b6000610ba185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e1592505050565b9150915080610bbd57610bb46064611f6e565b92505050610ca8565b815160009060ff16610bdd57610bd68360200151611fcf565b9050610c74565b825160ff1660011415610c7057826020015151600114610c4a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260258152602001806142916025913960400191505060405180910390a1506067610c6b565b610bd68360200151600081518110610c5e57fe5b6020026020010151612dd5565b610c74565b5060655b63ffffffff8116610c995750506040805160008152602081019091529150610ca89050565b610ca281611f6e565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b3361100114610d035760405162461bcd60e51b81526004018080602001828103825260298152602001806144106029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610d275750610fd4565b600181039050600060018281548110610d3c57fe5b60009182526020909120600360049092020101546001549091506000190180610d8b57600060018481548110610d6e57fe5b906000526020600020906004020160030181905550505050610fd4565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610f0d57600180546000198101908110610e0257fe5b906000526020600020906004020160018481548110610e1d57fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610ee257fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610f1857fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610f6b57fe5b0490508015610fcf5760015460005b81811015610fcc578260018281548110610f9057fe5b9060005260206000209060040201600301540160018281548110610fb057fe5b6000918252602090912060036004909202010155600101610f7a565b50505b505050505b50565b61271081565b600181565b61100181565b606081565b600881565b60065481565b61200081565b6001600160a01b0381166000908152600460205260408120548061102657600091505061104b565b60018082038154811061103557fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b6001818154811061106757fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b600b81565b606681565b33612000146111195760405162461bcd60e51b815260040180806020018281038252602f8152602001806143b4602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b6103e881565b60025481565b600981565b61100781565b61100681565b60405180608001604052806047815260200161434c6047913981565b60005460ff1681565b6402540be40081565b60005460ff1661122a576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461126a5760405162461bcd60e51b815260040180806020018281038252602e8152602001806142d7602e913960400191505060405180910390fd5b6112d484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612f4c9050565b156113af57602081146113185760405162461bcd60e51b81526004018080602001828103825260268152602001806143266026913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916113569185858083850183828082843760009201919091525061303492505050565b90506064811015801561136c5750620186a08111155b6113a75760405162461bcd60e51b815260040180806020018281038252602781526020018061426a6027913960400191505060405180910390fd5b60025561153c565b61140f84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b60208201529150612f4c9050565b156114ff5760208114611469576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916114a79185858083850183828082843760009201919091525061303492505050565b90506127108111156114ea5760405162461bcd60e51b815260040180806020018281038252602b815260200180614214602b913960400191505060405180910390fd5b6006556007805460ff1916600117905561153c565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561163157600181815481106115ff57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611629576001909101905b6001016115ea565b5060608160405190808252806020026020018201604052801561165e578160200160208202803683370190505b50600092509050815b838110156116fe576001818154811061167c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166116f657600181815481106116ac57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106116d757fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611667565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff1615611781576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611789614163565b60006117ac60405180608001604052806047815260200161434c60479139611e15565b91509150806117ec5760405162461bcd60e51b81526004018080602001828103825260218152602001806143936021913960400191505060405180910390fd5b60005b8260200151518110156119115760018360200151828151811061180e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106118e457fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016117ef565b50506103e8600255506000805460ff19166001179055565b33611001146119695760405162461bcd60e51b81526004018080602001828103825260298152602001806144106029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061198d5750610fd4565b6001810390506000600182815481106119a257fe5b90600052602060002090600402016003015490506000600183815481106119c557fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a280611a3457505050610fd4565b6000818381611a3f57fe5b0490508015610fcf5760005b84811015611a9d578160018281548110611a6157fe5b9060005260206000209060040201600301540160018281548110611a8157fe5b6000918252602090912060036004909202010155600101611a4b565b50600180549085015b81811015610fcc578260018281548110611abc57fe5b9060005260206000209060040201600301540160018281548110611adc57fe5b6000918252602090912060036004909202010155600101611aa6565b606581565b334114611b3b5760405162461bcd60e51b815260040180806020018281038252602d8152602001806143e3602d913960400191505060405180910390fd5b60005460ff16611b8e576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60003411611bdb576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604081205460075434929060ff1615611c0757506006545b600083118015611c175750600081115b15611cc0576000611c40612710611c34868563ffffffff61303916565b9063ffffffff61309216565b90508015611cbe5760405161dead9082156108fc029083906000818181858888f19350505050158015611c77573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1611cbb848263ffffffff6130d416565b93505b505b8115611db8576000600180840381548110611cd757fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611d42576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611db2565b600354611d55908563ffffffff61311616565b6003908155810154611d6d908563ffffffff61311616565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611df8565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b61100081565b600381565b61dead81565b61100481565b611e1d614163565b6000611e27614163565b611e2f61417b565b611e40611e3b86613170565b613195565b90506000805b611e4f836131df565b15611f605780611e7457611e6a611e6584613200565b61324e565b60ff168452611f58565b8060011415611f53576060611e90611e8b85613200565b613305565b90508051604051908082528060200260200182016040528015611ecd57816020015b611eba61419b565b815260200190600190039081611eb25790505b50602086015260005b8151811015611f4857611ee761419b565b6000611f05848481518110611ef857fe5b60200260200101516133d6565b9150915080611f2257876000995099505050505050505050611f69565b8188602001518481518110611f3357fe5b60209081029190910101525050600101611ed6565b506001925050611f58565b611f60565b600101611e46565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611f88579050509050611fae8363ffffffff166134b3565b81600081518110611fbb57fe5b6020026020010181905250610ca8816134c6565b6000806060611fdd84613550565b915091508161208a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561204557818101518382015260200161202d565b50505050905090810190601f1680156120725780820380516001836020036101000a031916815260200191505b509250505060405180910390a160669250505061104b565b600080805b6001548110156121075767016345785d8a0000600182815481106120af57fe5b906000526020600020906004020160030154106120d1576001909201916120ff565b6000600182815481106120e057fe5b90600052602060002090600402016003015411156120ff576001909101905b60010161208f565b50606082604051908082528060200260200182016040528015612134578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015612163578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015612192578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156121c1578160200160208202803683370190505b50905060006060866040519080825280602002602001820160405280156121f2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015612221578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561226e57600080fd5b505afa158015612282573d6000803e3d6000fd5b505050506040513d602081101561229857600080fd5b5051905067016345785d8a000081111561230d577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260218152602001806143056021913960400191505060405180910390a160689d505050505050505050505050505061104b565b60005b6001548110156125805767016345785d8a00006001828154811061233057fe5b906000526020600020906004020160030154106124b6576001818154811061235457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061238557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106123ba57fe5b906000526020600020906004020160030154816123d357fe5b06600183815481106123e157fe5b90600052602060002090600402016003015403905061240983826130d490919063ffffffff16565b8a8e8151811061241557fe5b6020026020010181815250506001828154811061242e57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061245f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061248c57fe5b60209081029190910101526124a7878263ffffffff61311616565b6001909d019c96506125789050565b6000600182815481106124c557fe5b906000526020600020906004020160030154111561257857600181815481106124ea57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061251b57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061254857fe5b906000526020600020906004020160030154848c8151811061256657fe5b60209081029190910101526001909a01995b600101612310565b50600085156129be576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156126125781810151838201526020016125fa565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015612651578181015183820152602001612639565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015612690578181015183820152602001612678565b505050509050019750505050505050506020604051808303818588803b1580156126b957600080fd5b505af1935050505080156126df57506040513d60208110156126da57600080fd5b505160015b61291a576040516000815260443d10156126fb57506000612796565b60046000803e60005160e01c6308c379a0811461271c576000915050612796565b60043d036004833e81513d60248201116001600160401b038211171561274757600092505050612796565b80830180516001600160401b03811115612768576000945050505050612796565b8060208301013d860181111561278657600095505050505050612796565b601f01601f191660405250925050505b806127a15750612845565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128055781810151838201526020016127ed565b50505050905090810190601f1680156128325780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612915565b3d80801561286f576040519150601f19603f3d011682016040523d82523d6000602084013e612874565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128d95781810151838201526020016128c1565b50505050905090810190601f1680156129065780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6129be565b8015612958576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16129bc565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015612b745760005b8851811015612b725760008982815181106129de57fe5b602002602001015190506000600182815481106129f757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110612a2857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015612ae45760018281548110612a6957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110612ab857fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612b68565b60018281548110612af157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110612b4057fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016129c7565b505b845115612cbe5760005b8551811015612cbc576000868281518110612b9557fe5b60200260200101516001600160a01b03166108fc878481518110612bb557fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015612c4b57868281518110612beb57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d878481518110612c2957fe5b60200260200101516040518082815260200191505060405180910390a2612cb3565b868281518110612c5757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d878481518110612c9557fe5b60200260200101516040518082815260200191505060405180910390a25b50600101612b7e565b505b4715612d27576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612d25573d6000803e3d6000fd5b505b60006003819055600555825115612d4157612d4183613632565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612d7e57600080fd5b505af1158015612d92573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612e265750600180820381548110612e0657fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612e6c5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061104b565b600154600554600019820111801590612ec25784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061104b565b600580546001908101909155805481906000198601908110612ee057fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612f815780518252601f199092019160209182019101612f62565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612fef5780518252601f199092019160209182019101612fd0565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b6000826130485750600061302e565b8282028284828161305557fe5b0414610ca85760405162461bcd60e51b81526004018080602001828103825260218152602001806142b66021913960400191505060405180910390fd5b6000610ca883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613af3565b6000610ca883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b95565b600082820183811015610ca8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6131786141d0565b506040805180820190915281518152602082810190820152919050565b61319d61417b565b6131a682613bef565b6131af57600080fd5b60006131be8360200151613c29565b60208085015160408051808201909152868152920190820152915050919050565b60006131e96141d0565b505080518051602091820151919092015191011190565b6132086141d0565b613211826131df565b61321a57600080fd5b6020820151600061322a82613c8c565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061326357508151602110155b61326c57600080fd5b600061327b8360200151613c29565b905080836000015110156132d6576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156132fc57826020036101000a820491505b50949350505050565b606061331082613bef565b61331957600080fd5b600061332483613dbf565b905060608160405190808252806020026020018201604052801561336257816020015b61334f6141d0565b8152602001906001900390816133475790505b50905060006133748560200151613c29565b60208601510190506000805b848110156133cb5761339183613c8c565b91506040518060400160405280838152602001848152508482815181106133b457fe5b602090810291909101015291810191600101613380565b509195945050505050565b6133de61419b565b60006133e861419b565b6133f061417b565b6133f985613195565b90506000805b613408836131df565b15611f6057806134335761342361341e84613200565b613e1b565b6001600160a01b031684526134ab565b806001141561345b5761344861341e84613200565b6001600160a01b031660208501526134ab565b80600214156134835761347061341e84613200565b6001600160a01b031660408501526134ab565b8060031415611f5357613498611e6584613200565b6001600160401b03166060850152600191505b6001016133ff565b606061302e6134c183613e35565b613f1b565b60608151600014156134e7575060408051600081526020810190915261104b565b6060826000815181106134f657fe5b602002602001015190506000600190505b83518110156135375761352d8285838151811061352057fe5b6020026020010151613f6d565b9150600101613507565b50610ca861354a825160c060ff16613fea565b82613f6d565b600060606029835111156135825760006040518060600160405280602981526020016141eb6029913991509150611f69565b60005b83518110156136185760005b8181101561360f578481815181106135a557fe5b6020026020010151600001516001600160a01b03168583815181106135c657fe5b6020026020010151600001516001600160a01b031614156136075760006040518060600160405280602b815260200161423f602b9139935093505050611f69565b600101613591565b50600101613585565b505060408051602081019091526000815260019150915091565b600154815160005b8281101561374f57600161364c61419b565b6001838154811061365957fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015613723578681815181106136e957fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b0316141561371b5760009250613723565b6001016136d5565b5081156137455780516001600160a01b03166000908152600460205260408120555b505060010161363a565b50808211156137c457805b828110156137c257600180548061376d57fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b031916905560039091019190915591550161375a565b505b60008183106137d357816137d5565b825b905060005b818110156139cf576138878582815181106137f157fe5b60200260200101516001838154811061380657fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a08201526140e2565b6139a257806001016004600087848151811061389f57fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508481815181106138db57fe5b6020026020010151600182815481106138f057fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101556139c7565b6000600182815481106139b157fe5b9060005260206000209060040201600301819055505b6001016137da565b5082821115611df857825b82811015610fcf5760018582815181106139f057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a09092015160039093019290925587519084019290889085908110613ac657fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016139da565b60008183613b7f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b44578181015183820152602001613b2c565b50505050905090810190601f168015613b715780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613b8b57fe5b0495945050505050565b60008184841115613be75760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613b44578181015183820152602001613b2c565b505050900390565b8051600090613c005750600061104b565b6020820151805160001a9060c0821015613c1f5760009250505061104b565b5060019392505050565b8051600090811a6080811015613c4357600091505061104b565b60b8811080613c5e575060c08110801590613c5e575060f881105b15613c6d57600191505061104b565b60c0811015613c815760b51901905061104b565b60f51901905061104b565b80516000908190811a6080811015613ca75760019150613db8565b60b8811015613cbc57607e1981019150613db8565b60c0811015613d3657600060b78203600186019550806020036101000a865104915060018101820193505080831015613d30576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613db8565b60f8811015613d4b5760be1981019150613db8565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613db6576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090613dd05750600061104b565b60008090506000613de48460200151613c29565b602085015185519181019250015b80821015613e1257613e0382613c8c565b60019093019290910190613df2565b50909392505050565b8051600090601514613e2c57600080fd5b61302e8261324e565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613e7957506018613e9d565b6fffffffffffffffffffffffffffffffff198416613e9957506010613e9d565b5060005b6020811015613ed357818181518110613eb257fe5b01602001516001600160f81b03191615613ecb57613ed3565b600101613e9d565b60008160200390506060816040519080825280601f01601f191660200182016040528015613f08576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613f4d5750607f60f81b82600081518110613f3b57fe5b01602001516001600160f81b03191611155b15613f5957508061104b565b61302e613f6b8351608060ff16613fea565b835b6060806040519050835180825260208201818101602087015b81831015613f9e578051835260209283019201613f86565b50855184518101855292509050808201602086015b81831015613fcb578051835260209283019201613fb3565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061403a576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116140945782840160f81b8160008151811061407657fe5b60200101906001600160f81b031916908160001a905350905061302e565b606061409f85613e35565b90508381510160370160f81b826000815181106140b857fe5b60200101906001600160f81b031916908160001a9053506140d98282613f6d565b95945050505050565b805182516000916001600160a01b03918216911614801561411c575081602001516001600160a01b031683602001516001600160a01b0316145b8015614141575081604001516001600160a01b031683604001516001600160a01b0316145b8015610ca85750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b604051806040016040528061418e6141d0565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d61746368f84580f842f840949fb29aac15b9a4b7f17c3385939b007540f4d791949fb29aac15b9a4b7f17c3385939b007540f4d791949fb29aac15b9a4b7f17c3385939b007540f4d791646661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a26469706673582212208e73e8b8f527f30b4a7ae766d39f2d53a0ff4e36ee760d714ba23d5fe7b5714064736f6c63430006040033" }, "0x0000000000000000000000000000000000001001": { "balance": "0x0",