6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a62000713565b62000042906305f5e1006200072b565b600555606460055462000056919062000745565b600655600e805460ff60a01b191690553480156200007357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200011a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000140919062000768565b600280546001600160a01b0319166001600160a01b03928316179055600d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200019f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c5919062000768565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d919062000768565b600e80546001600160a01b0319166001600160a01b039290921691821790556200026990600162000319565b336000818152600b602081815260408084208054600160ff199182168117909255600c808552838720805483168417905530875294845282862080548216831790559383528185208054851682179055600e546001600160a01b031685528185208054909416179092556005548484526007825282842081905591519182527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007f1565b6000546001600160a01b03163314620003795760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0382166000908152600a602052604090205481151560ff909116151503620003df5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b604482015260640162000370565b6001600160a01b0382166000908152600a60205260409020805460ff191682158015919091179091556200045e57600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b038416179055620005c2565b600954600110620004a45760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b604482015260640162000370565b60005b600954811015620005c057826001600160a01b031660098281548110620004d257620004d262000793565b6000918252602090912001546001600160a01b031603620005ab5760098054620004ff90600190620007a9565b8154811062000512576200051262000793565b600091825260209091200154600980546001600160a01b03909216918390811062000541576200054162000793565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506009805480620005835762000583620007bf565b600082815260209020810160001990810180546001600160a01b0319169055019055620005c0565b80620005b781620007d5565b915050620004a7565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000655578160001904821115620006395762000639620005fe565b808516156200064757918102915b93841c939080029062000619565b509250929050565b6000826200066e575060016200070d565b816200067d575060006200070d565b8160018114620006965760028114620006a157620006c1565b60019150506200070d565b60ff841115620006b557620006b5620005fe565b50506001821b6200070d565b5060208310610133831016604e8410600b8410161715620006e6575081810a6200070d565b620006f2838362000614565b8060001904821115620007095762000709620005fe565b0290505b92915050565b60006200072460ff8416836200065d565b9392505050565b80820281158282048414176200070d576200070d620005fe565b6000826200076357634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200077b57600080fd5b81516001600160a01b03811681146200072457600080fd5b634e487b7160e01b600052603260045260246000fd5b818103818111156200070d576200070d620005fe565b634e487b7160e01b600052603160045260246000fd5b600060018201620007ea57620007ea620005fe565b5060010190565b61125b80620008016000396000f3fe6080604052600436106101855760003560e01c8063893d20e8116100d1578063a9059cbb1161008a578063e1d5584c11610064578063e1d5584c146104c5578063ed873445146104e5578063f2fde38b14610515578063f887ea401461053557600080fd5b8063a9059cbb1461042f578063b62496f51461044f578063dd62ed3e1461047f57600080fd5b8063893d20e81461035b5780638a8c523c1461038d5780638da5cb5b146103a257806395d89b41146103c05780639a7a23d6146103ef578063a8aa1b311461040f57600080fd5b8063313ce5671161013e5780636c0a24eb116101185780636c0a24eb146102e357806370a08231146102f9578063715018a61461032f578063751039fc1461034657600080fd5b8063313ce567146102865780634ada218b146102a2578063571ac8b0146102c357600080fd5b806306fdde0314610191578063095ea7b3146101d25780630bd11f8a1461020257806318160ddd1461023257806323b872dd146102515780632b112e491461027157600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201909152600681526547726f6b2d3160d01b60208201525b6040516101c99190610ffc565b60405180910390f35b3480156101de57600080fd5b506101f26101ed366004611066565b610555565b60405190151581526020016101c9565b34801561020e57600080fd5b506101f261021d366004611090565b600c6020526000908152604090205460ff1681565b34801561023e57600080fd5b506005545b6040519081526020016101c9565b34801561025d57600080fd5b506101f261026c3660046110ab565b6105c2565b34801561027d57600080fd5b50610243610682565b34801561029257600080fd5b50604051601281526020016101c9565b3480156102ae57600080fd5b50600e546101f290600160a01b900460ff1681565b3480156102cf57600080fd5b506101f26102de366004611090565b6106d4565b3480156102ef57600080fd5b5061024360065481565b34801561030557600080fd5b50610243610314366004611090565b6001600160a01b031660009081526007602052604090205490565b34801561033b57600080fd5b506103446106e2565b005b34801561035257600080fd5b5061034461075f565b34801561036757600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101c9565b34801561039957600080fd5b506103446107ba565b3480156103ae57600080fd5b506000546001600160a01b0316610375565b3480156103cc57600080fd5b5060408051808201909152600681526547524f4b2d3160d01b60208201526101bc565b3480156103fb57600080fd5b5061034461040a3660046110e7565b61087d565b34801561041b57600080fd5b50600e54610375906001600160a01b031681565b34801561043b57600080fd5b506101f261044a366004611066565b610b12565b34801561045b57600080fd5b506101f261046a366004611090565b600a6020526000908152604090205460ff1681565b34801561048b57600080fd5b5061024361049a366004611123565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156104d157600080fd5b506103756104e0366004611156565b610b26565b3480156104f157600080fd5b506101f2610500366004611090565b600b6020526000908152604090205460ff1681565b34801561052157600080fd5b50610344610530366004611090565b610b50565b34801561054157600080fd5b50600d54610375906001600160a01b031681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105b09086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526008602090815260408083203384529091528120546000191461066f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260088252838120338252909152919091205461064a918490610c3a565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b61067a848484610c74565b949350505050565b6004546001600160a01b03166000908152600760205260408120546106cf906003546001600160a01b03166000908152600760205260409020546106c99060055490610f5b565b90610f5b565b905090565b60006105bc82600019610555565b6000546001600160a01b031633146107155760405162461bcd60e51b815260040161070c9061116f565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107895760405162461bcd60e51b815260040161070c9061116f565b6005546006556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6000546001600160a01b031633146107e45760405162461bcd60e51b815260040161070c9061116f565b600e54600160a01b900460ff16156108345760405162461bcd60e51b815260206004820152601360248201527243616e27742070617573652074726164696e6760681b604482015260640161070c565b600e805460ff60a01b1916600160a01b179055604051600181527f316709d79ee7f0c74ca101f383d03c0651393c02be15433064ce7707ee82c9df9060200160405180910390a1565b6000546001600160a01b031633146108a75760405162461bcd60e51b815260040161070c9061116f565b6001600160a01b0382166000908152600a602052604090205481151560ff90911615150361090b5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b604482015260640161070c565b6001600160a01b0382166000908152600a60205260409020805460ff1916821580159190911790915561098857600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b038416179055610ad6565b6009546001106109cc5760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b604482015260640161070c565b60005b600954811015610ad457826001600160a01b0316600982815481106109f6576109f66111a4565b6000918252602090912001546001600160a01b031603610ac25760098054610a20906001906111d0565b81548110610a3057610a306111a4565b600091825260209091200154600980546001600160a01b039092169183908110610a5c57610a5c6111a4565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506009805480610a9b57610a9b6111e3565b600082815260209020810160001990810180546001600160a01b0319169055019055610ad4565b80610acc816111f9565b9150506109cf565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6000610b1f338484610c74565b9392505050565b60098181548110610b3657600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314610b7a5760405162461bcd60e51b815260040161070c9061116f565b6001600160a01b038116610bdf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115610c5e5760405162461bcd60e51b815260040161070c9190610ffc565b506000610c6b84866111d0565b95945050505050565b6001600160a01b0383166000908152600b602052604081205460ff16158015610cb657506001600160a01b0383166000908152600b602052604090205460ff16155b15610d0c57600e54600160a01b900460ff16610d0c5760405162461bcd60e51b8152602060048201526015602482015274151c98591a5b99c81b9bdd081bdc195b8b081e595d605a1b604482015260640161070c565b6001600160a01b0384166000908152600a6020526040902054829060ff1615610deb576001600160a01b0384166000908152600b602052604090205460ff16610de6576006546001600160a01b038516600090815260076020526040902054610d759085610f9d565b111580610d9a57506001600160a01b0384166000908152600c602052604090205460ff165b610de65760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d697420457863656564656400604482015260640161070c565b610ea2565b6001600160a01b0385166000908152600b602052604090205460ff16610ea2576006546001600160a01b038516600090815260076020526040902054610e319085610f9d565b111580610e5657506001600160a01b0384166000908152600c602052604090205460ff165b610ea25760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d697420457863656564656400604482015260640161070c565b6001600160a01b038516600090815260076020526040902054610ec59084610f5b565b6001600160a01b038087166000908152600760205260408082209390935590861681522054610ef49082610f9d565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f489085815260200190565b60405180910390a3506001949350505050565b6000610b1f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c3a565b600080610faa8385611212565b905083811015610b1f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161070c565b600060208083528351808285015260005b818110156110295785810183015185820160400152820161100d565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461106157600080fd5b919050565b6000806040838503121561107957600080fd5b6110828361104a565b946020939093013593505050565b6000602082840312156110a257600080fd5b610b1f8261104a565b6000806000606084860312156110c057600080fd5b6110c98461104a565b92506110d76020850161104a565b9150604084013590509250925092565b600080604083850312156110fa57600080fd5b6111038361104a565b91506020830135801515811461111857600080fd5b809150509250929050565b6000806040838503121561113657600080fd5b61113f8361104a565b915061114d6020840161104a565b90509250929050565b60006020828403121561116857600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156105bc576105bc6111ba565b634e487b7160e01b600052603160045260246000fd5b60006001820161120b5761120b6111ba565b5060010190565b808201808211156105bc576105bc6111ba56fea264697066735822122082d109492af57b71cab37d8a489b6fd80c6110d5d9a5c657cbe17514bc6b246164736f6c63430008120033