0x6080604052600436106101e75760003560e01c80638da5cb5b11610102578063c492f04611610095578063da00097d11610064578063da00097d146105b2578063dd62ed3e146105d3578063f0cd1dac14610619578063f2fde38b1461062f57600080fd5b8063c492f0461461052d578063c49b9a801461054d578063c816841b1461056d578063d158272d1461058d57600080fd5b8063a457c2d7116100d1578063a457c2d7146104ad578063a9059cbb146104cd578063b2bdfa7b146104ed578063b340a9541461050d57600080fd5b80638da5cb5b14610450578063914eb66a1461046e57806395d89b4114610483578063a073d37f1461049857600080fd5b8063395093511161017a5780635342acb4116101495780635342acb4146103bf57806370a08231146103ef57806382eefb43146104255780638456cb591461043b57600080fd5b8063395093511461032c5780633b97084a1461034c5780633ecad2711461036e5780634a74bb021461039e57600080fd5b806318160ddd116101b657806318160ddd146102ab57806323b872dd146102ca5780632f48ab7d146102ea578063313ce5671461030a57600080fd5b806306fdde03146101f3578063095ea7b31461021e5780631245e3471461024e5780631694505e1461028657600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861064f565b604051610215919061194e565b60405180910390f35b34801561022a57600080fd5b5061023e6102393660046117f9565b6106e1565b6040519015158152602001610215565b34801561025a57600080fd5b5060045461026e906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b34801561029257600080fd5b50600e5461026e9061010090046001600160a01b031681565b3480156102b757600080fd5b50600c545b604051908152602001610215565b3480156102d657600080fd5b5061023e6102e53660046117be565b6106f8565b3480156102f657600080fd5b5060105461026e906001600160a01b031681565b34801561031657600080fd5b5060035460405160ff9091168152602001610215565b34801561033857600080fd5b5061023e6103473660046117f9565b610763565b34801561035857600080fd5b5061036c6103673660046118db565b610799565b005b34801561037a57600080fd5b5061023e610389366004611772565b60096020526000908152604090205460ff1681565b3480156103aa57600080fd5b5060105461023e90600160a81b900460ff1681565b3480156103cb57600080fd5b5061023e6103da366004611772565b60086020526000908152604090205460ff1681565b3480156103fb57600080fd5b506102bc61040a366004611772565b6001600160a01b031660009081526006602052604090205490565b34801561043157600080fd5b506102bc600b5481565b34801561044757600080fd5b5061036c6107d1565b34801561045c57600080fd5b506000546001600160a01b031661026e565b34801561047a57600080fd5b5061036c61080a565b34801561048f57600080fd5b5061020861087e565b3480156104a457600080fd5b50600d546102bc565b3480156104b957600080fd5b5061023e6104c83660046117f9565b61088d565b3480156104d957600080fd5b5061023e6104e83660046117f9565b6108dc565b3480156104f957600080fd5b5060005461026e906001600160a01b031681565b34801561051957600080fd5b5060055461026e906001600160a01b031681565b34801561053957600080fd5b5061036c610548366004611822565b6108e9565b34801561055957600080fd5b5061036c6105683660046118a3565b610998565b34801561057957600080fd5b50600f5461026e906001600160a01b031681565b34801561059957600080fd5b5060035461026e9061010090046001600160a01b031681565b3480156105be57600080fd5b5060105461023e90600160b01b900460ff1681565b3480156105df57600080fd5b506102bc6105ee36600461178c565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561062557600080fd5b506102bc600a5481565b34801561063b57600080fd5b5061036c61064a366004611772565b610a1a565b60606001805461065e90611aa1565b80601f016020809104026020016040519081016040528092919081815260200182805461068a90611aa1565b80156106d75780601f106106ac576101008083540402835291602001916106d7565b820191906000526020600020905b8154815290600101906020018083116106ba57829003601f168201915b5050505050905090565b60006106ee338484610b04565b5060015b92915050565b6000610705848484610c28565b50610758843361075385604051806060016040528060288152602001611b1f602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611099565b610b04565b5060015b9392505050565b3360008181526007602090815260408083206001600160a01b038716845290915281205490916106ee91859061075390866110d3565b6000546001600160a01b031633146107cc5760405162461bcd60e51b81526004016107c3906119a1565b60405180910390fd5b600d55565b6000546001600160a01b031633146107fb5760405162461bcd60e51b81526004016107c3906119a1565b600e805460ff19166001179055565b6000546001600160a01b031633146108345760405162461bcd60e51b81526004016107c3906119a1565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606002805461065e90611aa1565b60006106ee338461075385604051806060016040528060258152602001611b47602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611099565b6000610758338484610c28565b6000546001600160a01b031633146109135760405162461bcd60e51b81526004016107c3906119a1565b60005b8281101561099257816008600086868581811061094357634e487b7160e01b600052603260045260246000fd5b90506020020160208101906109589190611772565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061098a81611adc565b915050610916565b50505050565b6000546001600160a01b031633146109c25760405162461bcd60e51b81526004016107c3906119a1565b60108054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610a0f90831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610a445760405162461bcd60e51b81526004016107c3906119a1565b6001600160a01b038116610aa95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c3565b6001600160a01b038216610bc75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c3565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610c8e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c3565b6001600160a01b038316610cf05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c3565b60008211610d525760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107c3565b6001600160a01b03841660009081526008602052604090205460ff16158015610d9457506001600160a01b03831660009081526008602052604090205460ff16155b15610e1b576001600160a01b03841660009081526009602052604090205460ff1680610dd857506001600160a01b03831660009081526009602052604090205460ff165b15610e1b57600e5460ff16610e1b5760405162461bcd60e51b81526020600482015260096024820152681b9bdd081cdd185c9d60ba1b60448201526064016107c3565b601054600160a01b900460ff1615610e3f57610e38848484611132565b905061075c565b6001600160a01b03831660009081526009602052604090205460ff168015610e8057506001600160a01b03841660009081526008602052604090205460ff16155b15610ec8576001600160a01b03841660009081526006602052604081205490610eb7612710610eb18461270f611218565b90611297565b905080841115610ec5578093505b50505b30600090815260066020526040902054600d5481108015908190610ef65750601054600160a01b900460ff16155b8015610f1b57506001600160a01b03861660009081526009602052604090205460ff16155b8015610f305750601054600160a81b900460ff165b15610f5657601054600160b01b900460ff1615610f4d57600d5491505b610f56826112d9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260069091529190912054610fa8918690611099565b6001600160a01b038716600090815260066020908152604080832093909355600890529081205460ff1680610ff557506001600160a01b03861660009081526008602052604090205460ff165b611009576110048787876113ed565b61100b565b845b6001600160a01b03871660009081526006602052604090205490915061103190826110d3565b6001600160a01b0380881660008181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110859085815260200190565b60405180910390a36001935050505061075c565b600081848411156110bd5760405162461bcd60e51b81526004016107c3919061194e565b5060006110ca8486611a8a565b95945050505050565b6000806110e08385611a33565b90508381101561075c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611183918490611099565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546111b290836110d3565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112069086815260200190565b60405180910390a35060019392505050565b600082611227575060006106f2565b60006112338385611a6b565b9050826112408583611a4b565b1461075c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c3565b600061075c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114f3565b6010805460ff60a01b1916600160a01b1790556112f581611521565b6010546005546040516370a0823160e01b81526001600160a01b03918216600482015260009291909116906370a082319060240160206040518083038186803b15801561134157600080fd5b505afa158015611355573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137991906118f3565b9050600061138d6064610eb1846032611218565b9050600061139b838361167f565b905080156113be576003546113be9061010090046001600160a01b0316826116c1565b81156113da576004546113da906001600160a01b0316836116c1565b50506010805460ff60a01b191690555050565b6001600160a01b038316600090815260096020526040812054819060ff16156114315761142a6064610eb1600a548661121890919063ffffffff16565b905061146f565b6001600160a01b03841660009081526009602052604090205460ff161561146f5761146c6064610eb1600b548661121890919063ffffffff16565b90505b80156114e9573060009081526006602052604090205461148f90826110d3565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114e09085815260200190565b60405180910390a35b6110ca838261167f565b600081836115145760405162461bcd60e51b81526004016107c3919061194e565b5060006110ca8486611a4b565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061156457634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526010548251911690829060019081106115a357634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600e546115ce91309161010090041684610b04565b600e54600554604051635c11d79560e01b81526001600160a01b03610100909304831692635c11d79592611610928792600092889291169042906004016119f7565b600060405180830381600087803b15801561162a57600080fd5b505af115801561163e573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516116739291906119d6565b60405180910390a15050565b600061075c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611099565b6010546005546040516323b872dd60e01b81526001600160a01b0391821660048201528482166024820152604481018490529116906323b872dd90606401602060405180830381600087803b15801561171957600080fd5b505af115801561172d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175191906118bf565b505050565b80356001600160a01b038116811461176d57600080fd5b919050565b600060208284031215611783578081fd5b61075c82611756565b6000806040838503121561179e578081fd5b6117a783611756565b91506117b560208401611756565b90509250929050565b6000806000606084860312156117d2578081fd5b6117db84611756565b92506117e960208501611756565b9150604084013590509250925092565b6000806040838503121561180b578182fd5b61181483611756565b946020939093013593505050565b600080600060408486031215611836578283fd5b833567ffffffffffffffff8082111561184d578485fd5b818601915086601f830112611860578485fd5b81358181111561186e578586fd5b8760208260051b8501011115611882578586fd5b6020928301955093505084013561189881611b0d565b809150509250925092565b6000602082840312156118b4578081fd5b813561075c81611b0d565b6000602082840312156118d0578081fd5b815161075c81611b0d565b6000602082840312156118ec578081fd5b5035919050565b600060208284031215611904578081fd5b5051919050565b6000815180845260208085019450808401835b838110156119435781516001600160a01b03168752958201959082019060010161191e565b509495945050505050565b6000602080835283518082850152825b8181101561197a5785810183015185820160400152820161195e565b8181111561198b5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8281526040602082015260006119ef604083018461190b565b949350505050565b85815284602082015260a060408201526000611a1660a083018661190b565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115611a4657611a46611af7565b500190565b600082611a6657634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611a8557611a85611af7565b500290565b600082821015611a9c57611a9c611af7565b500390565b600181811c90821680611ab557607f821691505b60208210811415611ad657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611af057611af0611af7565b5060010190565b634e487b7160e01b600052601160045260246000fd5b8015158114611b1b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cfcdc16f6213c80ceeaca6aad55fba636e47c645664960e250fa422b6554c03b64736f6c63430008040033
0x608060408190526005600a819055600b556000600d556010805461ffff60a81b1916600160a81b17905562002414388190039081908339810160408190526200004891620004ff565b604051737a250d5630b4cf539739df2c5dacb4c659f2488d9082906200006e906200040a565b6001600160a01b039091168152602001604051809103906000f0801580156200009b573d6000803e3d6000fd5b50600580546001600160a01b03199081166001600160a01b0393841617909155601080549091168483161790556040805163c45a015560e01b815290519183169163c45a015591600480820192602092909190829003018186803b1580156200010357600080fd5b505afa15801562000118573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013e9190620004db565b6040516364e329cb60e11b81523060048201526001600160a01b038481166024830152919091169063c9c6539690604401602060405180830381600087803b1580156200018a57600080fd5b505af11580156200019f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c59190620004db565b600f80546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600480825263212aa92760e11b6020909201918252620002129160019162000418565b5060408051808201909152600480825263212aa92760e11b6020909201918252620002409160029162000418565b506003805460ff19166012908117909155600080546001600160a01b03191673a038c48d28ce8f3f8439952c1ec4c81b80f7478b1790556200028490600a62000576565b62000290908462000637565b600c55600354620002a69060ff16600a62000576565b620002b49061520862000637565b600d556003805474e6beb139d81d5330df2ffc49332de677f51d6cea00610100600160a81b0319918216178255600480546001600160a01b03191673c999979c4ed500989f4611ca282672a5c4b2ae18178155600e80546001600160a01b03868116610100908102929095169190911791829055600c8054306000818152600760209081526040808320978a9004871683529681528682209390935580548516815260088352858120805460ff19908116600190811790925592825286822080548416821790559854979097048416875284872080548216891790559454831686528386208054861688179055600f5483168652600981528386208054909516909617909355915483548316845260068552818420819055835491519081529116927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050620006ac565b6101b7806200225d83390190565b828054620004269062000659565b90600052602060002090601f0160209004810192826200044a576000855562000495565b82601f106200046557805160ff191683800117855562000495565b8280016001018555821562000495579182015b828111156200049557825182559160200191906001019062000478565b50620004a3929150620004a7565b5090565b5b80821115620004a35760008155600101620004a8565b80516001600160a01b0381168114620004d657600080fd5b919050565b600060208284031215620004ed578081fd5b620004f882620004be565b9392505050565b6000806040838503121562000512578081fd5b825191506200052460208401620004be565b90509250929050565b600181815b808511156200056e57816000190482111562000552576200055262000696565b808516156200056057918102915b93841c939080029062000532565b509250929050565b6000620004f860ff841683600082620005925750600162000631565b81620005a15750600062000631565b8160018114620005ba5760028114620005c557620005e5565b600191505062000631565b60ff841115620005d957620005d962000696565b50506001821b62000631565b5060208310610133831016604e8410600b84101617156200060a575081810a62000631565b6200061683836200052d565b80600019048211156200062d576200062d62000696565b0290505b92915050565b600081600019048311821515161562000654576200065462000696565b500290565b600181811c908216806200066e57607f821691505b602082108114156200069057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b611ba180620006bc6000396000f3fe6080604052600436106101e75760003560e01c80638da5cb5b11610102578063c492f04611610095578063da00097d11610064578063da00097d146105b2578063dd62ed3e146105d3578063f0cd1dac14610619578063f2fde38b1461062f57600080fd5b8063c492f0461461052d578063c49b9a801461054d578063c816841b1461056d578063d158272d1461058d57600080fd5b8063a457c2d7116100d1578063a457c2d7146104ad578063a9059cbb146104cd578063b2bdfa7b146104ed578063b340a9541461050d57600080fd5b80638da5cb5b14610450578063914eb66a1461046e57806395d89b4114610483578063a073d37f1461049857600080fd5b8063395093511161017a5780635342acb4116101495780635342acb4146103bf57806370a08231146103ef57806382eefb43146104255780638456cb591461043b57600080fd5b8063395093511461032c5780633b97084a1461034c5780633ecad2711461036e5780634a74bb021461039e57600080fd5b806318160ddd116101b657806318160ddd146102ab57806323b872dd146102ca5780632f48ab7d146102ea578063313ce5671461030a57600080fd5b806306fdde03146101f3578063095ea7b31461021e5780631245e3471461024e5780631694505e1461028657600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861064f565b604051610215919061194e565b60405180910390f35b34801561022a57600080fd5b5061023e6102393660046117f9565b6106e1565b6040519015158152602001610215565b34801561025a57600080fd5b5060045461026e906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b34801561029257600080fd5b50600e5461026e9061010090046001600160a01b031681565b3480156102b757600080fd5b50600c545b604051908152602001610215565b3480156102d657600080fd5b5061023e6102e53660046117be565b6106f8565b3480156102f657600080fd5b5060105461026e906001600160a01b031681565b34801561031657600080fd5b5060035460405160ff9091168152602001610215565b34801561033857600080fd5b5061023e6103473660046117f9565b610763565b34801561035857600080fd5b5061036c6103673660046118db565b610799565b005b34801561037a57600080fd5b5061023e610389366004611772565b60096020526000908152604090205460ff1681565b3480156103aa57600080fd5b5060105461023e90600160a81b900460ff1681565b3480156103cb57600080fd5b5061023e6103da366004611772565b60086020526000908152604090205460ff1681565b3480156103fb57600080fd5b506102bc61040a366004611772565b6001600160a01b031660009081526006602052604090205490565b34801561043157600080fd5b506102bc600b5481565b34801561044757600080fd5b5061036c6107d1565b34801561045c57600080fd5b506000546001600160a01b031661026e565b34801561047a57600080fd5b5061036c61080a565b34801561048f57600080fd5b5061020861087e565b3480156104a457600080fd5b50600d546102bc565b3480156104b957600080fd5b5061023e6104c83660046117f9565b61088d565b3480156104d957600080fd5b5061023e6104e83660046117f9565b6108dc565b3480156104f957600080fd5b5060005461026e906001600160a01b031681565b34801561051957600080fd5b5060055461026e906001600160a01b031681565b34801561053957600080fd5b5061036c610548366004611822565b6108e9565b34801561055957600080fd5b5061036c6105683660046118a3565b610998565b34801561057957600080fd5b50600f5461026e906001600160a01b031681565b34801561059957600080fd5b5060035461026e9061010090046001600160a01b031681565b3480156105be57600080fd5b5060105461023e90600160b01b900460ff1681565b3480156105df57600080fd5b506102bc6105ee36600461178c565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561062557600080fd5b506102bc600a5481565b34801561063b57600080fd5b5061036c61064a366004611772565b610a1a565b60606001805461065e90611aa1565b80601f016020809104026020016040519081016040528092919081815260200182805461068a90611aa1565b80156106d75780601f106106ac576101008083540402835291602001916106d7565b820191906000526020600020905b8154815290600101906020018083116106ba57829003601f168201915b5050505050905090565b60006106ee338484610b04565b5060015b92915050565b6000610705848484610c28565b50610758843361075385604051806060016040528060288152602001611b1f602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611099565b610b04565b5060015b9392505050565b3360008181526007602090815260408083206001600160a01b038716845290915281205490916106ee91859061075390866110d3565b6000546001600160a01b031633146107cc5760405162461bcd60e51b81526004016107c3906119a1565b60405180910390fd5b600d55565b6000546001600160a01b031633146107fb5760405162461bcd60e51b81526004016107c3906119a1565b600e805460ff19166001179055565b6000546001600160a01b031633146108345760405162461bcd60e51b81526004016107c3906119a1565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606002805461065e90611aa1565b60006106ee338461075385604051806060016040528060258152602001611b47602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611099565b6000610758338484610c28565b6000546001600160a01b031633146109135760405162461bcd60e51b81526004016107c3906119a1565b60005b8281101561099257816008600086868581811061094357634e487b7160e01b600052603260045260246000fd5b90506020020160208101906109589190611772565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061098a81611adc565b915050610916565b50505050565b6000546001600160a01b031633146109c25760405162461bcd60e51b81526004016107c3906119a1565b60108054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610a0f90831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610a445760405162461bcd60e51b81526004016107c3906119a1565b6001600160a01b038116610aa95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c3565b6001600160a01b038216610bc75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c3565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610c8e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c3565b6001600160a01b038316610cf05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c3565b60008211610d525760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107c3565b6001600160a01b03841660009081526008602052604090205460ff16158015610d9457506001600160a01b03831660009081526008602052604090205460ff16155b15610e1b576001600160a01b03841660009081526009602052604090205460ff1680610dd857506001600160a01b03831660009081526009602052604090205460ff165b15610e1b57600e5460ff16610e1b5760405162461bcd60e51b81526020600482015260096024820152681b9bdd081cdd185c9d60ba1b60448201526064016107c3565b601054600160a01b900460ff1615610e3f57610e38848484611132565b905061075c565b6001600160a01b03831660009081526009602052604090205460ff168015610e8057506001600160a01b03841660009081526008602052604090205460ff16155b15610ec8576001600160a01b03841660009081526006602052604081205490610eb7612710610eb18461270f611218565b90611297565b905080841115610ec5578093505b50505b30600090815260066020526040902054600d5481108015908190610ef65750601054600160a01b900460ff16155b8015610f1b57506001600160a01b03861660009081526009602052604090205460ff16155b8015610f305750601054600160a81b900460ff165b15610f5657601054600160b01b900460ff1615610f4d57600d5491505b610f56826112d9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260069091529190912054610fa8918690611099565b6001600160a01b038716600090815260066020908152604080832093909355600890529081205460ff1680610ff557506001600160a01b03861660009081526008602052604090205460ff165b611009576110048787876113ed565b61100b565b845b6001600160a01b03871660009081526006602052604090205490915061103190826110d3565b6001600160a01b0380881660008181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110859085815260200190565b60405180910390a36001935050505061075c565b600081848411156110bd5760405162461bcd60e51b81526004016107c3919061194e565b5060006110ca8486611a8a565b95945050505050565b6000806110e08385611a33565b90508381101561075c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611183918490611099565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546111b290836110d3565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112069086815260200190565b60405180910390a35060019392505050565b600082611227575060006106f2565b60006112338385611a6b565b9050826112408583611a4b565b1461075c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c3565b600061075c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114f3565b6010805460ff60a01b1916600160a01b1790556112f581611521565b6010546005546040516370a0823160e01b81526001600160a01b03918216600482015260009291909116906370a082319060240160206040518083038186803b15801561134157600080fd5b505afa158015611355573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137991906118f3565b9050600061138d6064610eb1846032611218565b9050600061139b838361167f565b905080156113be576003546113be9061010090046001600160a01b0316826116c1565b81156113da576004546113da906001600160a01b0316836116c1565b50506010805460ff60a01b191690555050565b6001600160a01b038316600090815260096020526040812054819060ff16156114315761142a6064610eb1600a548661121890919063ffffffff16565b905061146f565b6001600160a01b03841660009081526009602052604090205460ff161561146f5761146c6064610eb1600b548661121890919063ffffffff16565b90505b80156114e9573060009081526006602052604090205461148f90826110d3565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114e09085815260200190565b60405180910390a35b6110ca838261167f565b600081836115145760405162461bcd60e51b81526004016107c3919061194e565b5060006110ca8486611a4b565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061156457634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526010548251911690829060019081106115a357634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600e546115ce91309161010090041684610b04565b600e54600554604051635c11d79560e01b81526001600160a01b03610100909304831692635c11d79592611610928792600092889291169042906004016119f7565b600060405180830381600087803b15801561162a57600080fd5b505af115801561163e573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516116739291906119d6565b60405180910390a15050565b600061075c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611099565b6010546005546040516323b872dd60e01b81526001600160a01b0391821660048201528482166024820152604481018490529116906323b872dd90606401602060405180830381600087803b15801561171957600080fd5b505af115801561172d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175191906118bf565b505050565b80356001600160a01b038116811461176d57600080fd5b919050565b600060208284031215611783578081fd5b61075c82611756565b6000806040838503121561179e578081fd5b6117a783611756565b91506117b560208401611756565b90509250929050565b6000806000606084860312156117d2578081fd5b6117db84611756565b92506117e960208501611756565b9150604084013590509250925092565b6000806040838503121561180b578182fd5b61181483611756565b946020939093013593505050565b600080600060408486031215611836578283fd5b833567ffffffffffffffff8082111561184d578485fd5b818601915086601f830112611860578485fd5b81358181111561186e578586fd5b8760208260051b8501011115611882578586fd5b6020928301955093505084013561189881611b0d565b809150509250925092565b6000602082840312156118b4578081fd5b813561075c81611b0d565b6000602082840312156118d0578081fd5b815161075c81611b0d565b6000602082840312156118ec578081fd5b5035919050565b600060208284031215611904578081fd5b5051919050565b6000815180845260208085019450808401835b838110156119435781516001600160a01b03168752958201959082019060010161191e565b509495945050505050565b6000602080835283518082850152825b8181101561197a5785810183015185820160400152820161195e565b8181111561198b5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8281526040602082015260006119ef604083018461190b565b949350505050565b85815284602082015260a060408201526000611a1660a083018661190b565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115611a4657611a46611af7565b500190565b600082611a6657634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611a8557611a85611af7565b500290565b600082821015611a9c57611a9c611af7565b500390565b600181811c90821680611ab557607f821691505b60208210811415611ad657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611af057611af0611af7565b5060010190565b634e487b7160e01b600052601160045260246000fd5b8015158114611b1b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cfcdc16f6213c80ceeaca6aad55fba636e47c645664960e250fa422b6554c03b64736f6c63430008040033608060405234801561001057600080fd5b506040516101b73803806101b783398101604081905261002f916100ca565b600080546001600160a01b0319166001600160a01b03831690811790915560405163095ea7b360e01b8152336004820152600019602482015263095ea7b390604401602060405180830381600087803b15801561008b57600080fd5b505af115801561009f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100c391906100f8565b5050610118565b6000602082840312156100db578081fd5b81516001600160a01b03811681146100f1578182fd5b9392505050565b600060208284031215610109578081fd5b815180151581146100f1578182fd5b6091806101266000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80632f48ab7d14602d575b600080fd5b600054603f906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f3fea26469706673582212203dba12b22cf7c3bc95e8e5634a6172f59feb5d6d7449f2c789a6f34b98e072d764736f6c6343000804003300000000000000000000000000000000000000000000000000000004e3b29200000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48