6080604052620000126009600a62000498565b6200002290633b9aca00620004b0565b6001556103e86001546019620000399190620004b0565b620000459190620004ca565b6002556005805460ff60a01b1916600160a01b1790556001546200006e90620186a090620004ca565b60065560078054747a250d5630b4cf539739df2c5dacb4c659f2488d00610100600160a81b0319909116179055600880546001600160a01b03191661dead1790556000600d8190556015600e819055620000c891620004ed565b600f556064601055348015620000dd57600080fd5b50604051620016a5380380620016a5833981016040819052620001009162000503565b600080546001600160a01b03199081163317909155600754600480549092166101009091046001600160a01b031690811782556040805163c45a015560e01b81529051919263c45a01559282820192602092908290030181865afa1580156200016d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000193919062000503565b6001600160a01b031663c9c65396600460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021b919062000503565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000268573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028e919062000503565b600580546001600160a01b039283166001600160a01b031991821617909155306000908152600a60209081526040808320600454861684528252808320600019905560038054878716951685178155938352600b8252808320805460ff199081166001908117909255845487168552600c845282852080548216831790559454861684528184208054861682179055600854861684528184208054909516811790945592548254851683526009825283832081905582549351908152929093169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200052e565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003da578160001904821115620003be57620003be62000383565b80851615620003cc57918102915b93841c93908002906200039e565b509250929050565b600082620003f35750600162000492565b81620004025750600062000492565b81600181146200041b5760028114620004265762000446565b600191505062000492565b60ff8411156200043a576200043a62000383565b50506001821b62000492565b5060208310610133831016604e8410600b84101617156200046b575081810a62000492565b62000477838362000399565b80600019048211156200048e576200048e62000383565b0290505b92915050565b6000620004a960ff841683620003e2565b9392505050565b808202811582820484141762000492576200049262000383565b600082620004e857634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000492576200049262000383565b6000602082840312156200051657600080fd5b81516001600160a01b0381168114620004a957600080fd5b611167806200053e6000396000f3fe6080604052600436106100ab5760003560e01c806370a082311161006457806370a08231146101a7578063715018a6146101dd57806395d89b41146101f2578063a9059cbb1461021e578063c36a34421461023e578063dd62ed3e1461025e57600080fd5b806306fdde03146100b7578063095ea7b3146100fa57806318160ddd1461012a578063187eefa31461014957806323b872dd1461016b578063313ce5671461018b57600080fd5b366100b257005b600080fd5b3480156100c357600080fd5b506040805180820190915260088152674b697474656e466960c01b60208201525b6040516100f19190610e66565b60405180910390f35b34801561010657600080fd5b5061011a610115366004610ecc565b6102a4565b60405190151581526020016100f1565b34801561013657600080fd5b506001545b6040519081526020016100f1565b34801561015557600080fd5b50610169610164366004610ef8565b610311565b005b34801561017757600080fd5b5061011a610186366004610f1a565b61035f565b34801561019757600080fd5b50604051600981526020016100f1565b3480156101b357600080fd5b5061013b6101c2366004610f5b565b6001600160a01b031660009081526009602052604090205490565b3480156101e957600080fd5b50610169610421565b3480156101fe57600080fd5b5060408051808201909152600381526225a4a360e91b60208201526100e4565b34801561022a57600080fd5b5061011a610239366004610ecc565b610490565b34801561024a57600080fd5b50610169610259366004610f78565b61049d565b34801561026a57600080fd5b5061013b610279366004610f91565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102ff9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146103445760405162461bcd60e51b815260040161033b90610fca565b60405180910390fd5b600d829055600e8190556103588183611000565b600f555050565b6001600160a01b0383166000908152600a602090815260408083203384529091528120546000191461040c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a825283812033825290915291909120546103e79184906104e8565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b610417848484610522565b90505b9392505050565b6000546001600160a01b0316331461044b5760405162461bcd60e51b815260040161033b90610fca565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b600061041a338484610522565b6000546001600160a01b031633146104c75760405162461bcd60e51b815260040161033b90610fca565b6103e8816001546104d89190611013565b6104e2919061102a565b60025550565b6000818484111561050c5760405162461bcd60e51b815260040161033b9190610e66565b506000610519848661104c565b95945050505050565b60075460009060ff16156105425761053b848484610733565b905061041a565b6005546001600160a01b0384811691161480159061056e57506008546001600160a01b03848116911614155b15610619576001600160a01b0383166000908152600c602052604090205460ff16806105bf57506002546001600160a01b0384166000908152600960205260409020546105bc908490611000565b11155b6106195760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b606482015260840161033b565b610624848484610819565b1561063157610631610873565b6001600160a01b0384166000908152600b602052604090205460ff1615801561069e576106806106618685610b73565b6001600160a01b03861660009081526009602052604090205490610c92565b6001600160a01b0385166000908152600960205260409020556106db565b6001600160a01b0384166000908152600960205260409020546106c19084610c92565b6001600160a01b0385166000908152600960205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161072091815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526009909152918220546107849184906104e8565b6001600160a01b0380861660009081526009602052604080822093909355908516815220546107b39083610c92565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108079086815260200190565b60405180910390a35060019392505050565b6000610823610cf1565b801561084857506001600160a01b0384166000908152600b602052604090205460ff16155b801561086157506005546001600160a01b038481169116145b80156104175750506006541092915050565b6007805460ff1916600117905530600090815260096020526040812054905060006108ba60026108b4600f546108b4600d5487610d3290919063ffffffff16565b90610db4565b905060006108c88383610df6565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106109025761090261105f565b60200260200101906001600160a01b031690816001600160a01b031681525050600460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610975573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109999190611075565b816001815181106109ac576109ac61105f565b6001600160a01b0392831660209182029290920101526004805460405163791ac94760e01b815292169163791ac947916109f191869160009187913091429101611092565b600060405180830381600087803b158015610a0b57600080fd5b505af1158015610a1f573d6000803e3d6000fd5b5050600d5447925060009150610a4390610a3a906002610db4565b600f5490610df6565b90506000610a6560026108b4846108b4600d5488610d3290919063ffffffff16565b90506000610a82836108b4600e5487610d3290919063ffffffff16565b6003546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610abd573d6000803e3d6000fd5b508615610b5f576004805460035460405163f305d71960e01b81523093810193909352602483018a905260006044840181905260648401526001600160a01b0390811660848401524260a4840152169063f305d71990849060c40160606040518083038185885af1158015610b36573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b5b9190611103565b5050505b50506007805460ff19169055505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0385166000908152600990915291822054610bc49184906104e8565b6001600160a01b038416600090815260096020526040812091909155601054600f54610bf691906108b4908690610d32565b6000549091506001600160a01b038581169116148015610c1557600091505b30600090815260096020526040902054610c2f9083610c92565b30600081815260096020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c809086815260200190565b60405180910390a36105198483610df6565b600080610c9f8385611000565b90508381101561041a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161033b565b60075460009060ff16158015610d105750600554600160a01b900460ff165b8015610d2d57506006543060009081526009602052604090205410155b905090565b600082600003610d445750600061030b565b6000610d508385611013565b905082610d5d858361102a565b1461041a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161033b565b600061041a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e38565b600061041a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506104e8565b60008183610e595760405162461bcd60e51b815260040161033b9190610e66565b506000610519848661102a565b600060208083528351808285015260005b81811015610e9357858101830151858201604001528201610e77565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ec957600080fd5b50565b60008060408385031215610edf57600080fd5b8235610eea81610eb4565b946020939093013593505050565b60008060408385031215610f0b57600080fd5b50508035926020909101359150565b600080600060608486031215610f2f57600080fd5b8335610f3a81610eb4565b92506020840135610f4a81610eb4565b929592945050506040919091013590565b600060208284031215610f6d57600080fd5b813561041a81610eb4565b600060208284031215610f8a57600080fd5b5035919050565b60008060408385031215610fa457600080fd5b8235610faf81610eb4565b91506020830135610fbf81610eb4565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561030b5761030b610fea565b808202811582820484141761030b5761030b610fea565b60008261104757634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561030b5761030b610fea565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561108757600080fd5b815161041a81610eb4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156110e25784516001600160a01b0316835293830193918301916001016110bd565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561111857600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220210e637b4e5b543d41dfadfcbd3584ef61c64468c5970202043db47039b9f6ac64736f6c63430008130033000000000000000000000000e166e97ca80b7dcfb7607855ffcfef1a860e7266