60806040526006805460ff19166001179055600780546001600160a01b03191673aaad5f9bbb51fa6473ac5b3416418b22ce9b010117905560056008819055600a60098181556000808355600b819055600c93909355600f600d819055600e819055929092556200007191906200037a565b6200008090620f424062000392565b601055620000916009600a6200037a565b620000a090620f424062000392565b601155620000b16009600a6200037a565b620000c090620493e062000392565b601255620000d16009600a6200037a565b620000e0906219f0a062000392565b6013556015805461ffff60a81b19169055348015620000fe57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b0319166101003302179055620001656009600a6200037a565b62000175906305f5e10062000392565b336000908152600160208190526040822092909255600390620001a06000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620002043390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200023e6009600a6200037a565b6200024e906305f5e10062000392565b60405190815260200160405180910390a3620003b4565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002bc578160001904821115620002a057620002a062000265565b80851615620002ae57918102915b93841c939080029062000280565b509250929050565b600082620002d55750600162000374565b81620002e45750600062000374565b8160018114620002fd5760028114620003085762000328565b600191505062000374565b60ff8411156200031c576200031c62000265565b50506001821b62000374565b5060208310610133831016604e8410600b84101617156200034d575081810a62000374565b6200035983836200027b565b806000190482111562000370576200037062000265565b0290505b92915050565b60006200038b60ff841683620002c4565b9392505050565b6000816000190483118215151615620003af57620003af62000265565b500290565b6119c380620003c46000396000f3fe60806040526004361061012e5760003560e01c80637d1db4a5116100ab578063a5ece9411161006f578063a5ece94114610340578063a9059cbb14610360578063bf474bed14610380578063c876d0b914610396578063c9567bf9146103b0578063dd62ed3e146103c557600080fd5b80637d1db4a5146102975780638da5cb5b146102ad5780638f9a55c0146102df57806395d89b41146102f55780639e252f001461032057600080fd5b8063313ce567116100f2578063313ce5671461020457806351bc3c851461022057806370a0823114610237578063715018a61461026d578063751039fc1461028257600080fd5b806306fdde031461013a578063095ea7b31461017b5780630faee56f146101ab57806318160ddd146101cf57806323b872dd146101e457600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600681526546494e444d4560d01b60208201525b6040516101729190611571565b60405180910390f35b34801561018757600080fd5b5061019b6101963660046115d7565b61040b565b6040519015158152602001610172565b3480156101b757600080fd5b506101c160135481565b604051908152602001610172565b3480156101db57600080fd5b506101c1610422565b3480156101f057600080fd5b5061019b6101ff366004611603565b610443565b34801561021057600080fd5b5060405160098152602001610172565b34801561022c57600080fd5b506102356104ac565b005b34801561024357600080fd5b506101c1610252366004611644565b6001600160a01b031660009081526001602052604090205490565b34801561027957600080fd5b50610235610504565b34801561028e57600080fd5b50610235610581565b3480156102a357600080fd5b506101c160105481565b3480156102b957600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610172565b3480156102eb57600080fd5b506101c160115481565b34801561030157600080fd5b50604080518082019091526002815261464d60f01b6020820152610165565b34801561032c57600080fd5b5061023561033b366004611661565b61063d565b34801561034c57600080fd5b506007546102c7906001600160a01b031681565b34801561036c57600080fd5b5061019b61037b3660046115d7565b610700565b34801561038c57600080fd5b506101c160125481565b3480156103a257600080fd5b5060065461019b9060ff1681565b3480156103bc57600080fd5b5061023561070d565b3480156103d157600080fd5b506101c16103e036600461167a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000610418338484610ac9565b5060015b92915050565b60006104306009600a6117ad565b61043e906305f5e1006117bc565b905090565b6000610450848484610bed565b6104a2843361049d85604051806060016040528060288152602001611966602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906111d0565b610ac9565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b0316146104d157600080fd5b3060009081526001602052604090205480156104f0576104f08161120a565b4780156105005761050081611384565b5050565b6000546001600160a01b031633146105375760405162461bcd60e51b815260040161052e906117db565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105ab5760405162461bcd60e51b815260040161052e906117db565b6105b76009600a6117ad565b6105c5906305f5e1006117bc565b6010556105d46009600a6117ad565b6105e2906305f5e1006117bc565b6011556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61061c6009600a6117ad565b61062a906305f5e1006117bc565b60405190815260200160405180910390a1565b6007546001600160a01b031633146106835760405162461bcd60e51b81526020600482015260096024820152681a1bdb595cdd19585960ba1b604482015260640161052e565b804710156106d35760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e74206574682062616c616e63650000000000000000604482015260640161052e565b604051339082156108fc029083906000818181858888f19350505050158015610500573d6000803e3d6000fd5b6000610418338484610bed565b6000546001600160a01b031633146107375760405162461bcd60e51b815260040161052e906117db565b601554600160a01b900460ff16156107915760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161052e565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107da9030906107cc6009600a6117ad565b61049d906305f5e1006117bc565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108519190611810565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190611810565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610924573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109489190611810565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d7194730610990816001600160a01b031660009081526001602052604090205490565b6000806109a56000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a0d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a32919061182d565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaf919061185b565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610b2b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161052e565b6001600160a01b038216610b8c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161052e565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161052e565b6001600160a01b038216610cb35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161052e565b60008111610d155760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161052e565b600080546001600160a01b03858116911614801590610d4257506000546001600160a01b03848116911614155b1561108d57610d736064610d6d600c54600f5411610d6257600854610d66565b600a545b85906113c2565b9061144b565b60065490915060ff1615610e5b576014546001600160a01b03848116911614801590610dad57506015546001600160a01b03848116911614155b15610e5b57326000908152600560205260409020544311610e485760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161052e565b3260009081526005602052604090204390555b6015546001600160a01b038581169116148015610e8657506014546001600160a01b03848116911614155b8015610eab57506001600160a01b03831660009081526003602052604090205460ff16155b15610f9357601054821115610f025760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161052e565b60115482610f25856001600160a01b031660009081526001602052604090205490565b610f2f919061187d565b1115610f7d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161052e565b600f8054906000610f8d83611890565b91905055505b6015546001600160a01b038481169116148015610fb957506001600160a01b0384163014155b15610fe657610fe36064610d6d600d54600f5411610fd957600954610d66565b600b5485906113c2565b90505b30600090815260016020526040902054601554600160a81b900460ff1615801561101d57506015546001600160a01b038581169116145b80156110325750601554600160b01b900460ff165b801561103f575060125481115b801561104e5750600e54600f54115b1561108b5761107061106b846110668460135461148d565b61148d565b61120a565b4766b1a2bc2ec500008111156110895761108947611384565b505b505b801561110757306000908152600160205260409020546110ad90826114a2565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110fe9085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461112a9083611501565b6001600160a01b03851660009081526001602052604090205561116f6111508383611501565b6001600160a01b038516600090815260016020526040902054906114a2565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111b98585611501565b60405190815260200160405180910390a350505050565b600081848411156111f45760405162461bcd60e51b815260040161052e9190611571565b50600061120184866118a9565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611252576112526118bc565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cf9190611810565b816001815181106112e2576112e26118bc565b6001600160a01b0392831660209182029290920101526014546113089130911684610ac9565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113419085906000908690309042906004016118d2565b600060405180830381600087803b15801561135b57600080fd5b505af115801561136f573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610500573d6000803e3d6000fd5b6000826000036113d45750600061041c565b60006113e083856117bc565b9050826113ed8583611943565b146114445760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161052e565b9392505050565b600061144483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611543565b600081831161149c5782611444565b50919050565b6000806114af838561187d565b9050838110156114445760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161052e565b600061144483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111d0565b600081836115645760405162461bcd60e51b815260040161052e9190611571565b5060006112018486611943565b600060208083528351808285015260005b8181101561159e57858101830151858201604001528201611582565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115d457600080fd5b50565b600080604083850312156115ea57600080fd5b82356115f5816115bf565b946020939093013593505050565b60008060006060848603121561161857600080fd5b8335611623816115bf565b92506020840135611633816115bf565b929592945050506040919091013590565b60006020828403121561165657600080fd5b8135611444816115bf565b60006020828403121561167357600080fd5b5035919050565b6000806040838503121561168d57600080fd5b8235611698816115bf565b915060208301356116a8816115bf565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117045781600019048211156116ea576116ea6116b3565b808516156116f757918102915b93841c93908002906116ce565b509250929050565b60008261171b5750600161041c565b816117285750600061041c565b816001811461173e576002811461174857611764565b600191505061041c565b60ff841115611759576117596116b3565b50506001821b61041c565b5060208310610133831016604e8410600b8410161715611787575081810a61041c565b61179183836116c9565b80600019048211156117a5576117a56116b3565b029392505050565b600061144460ff84168361170c565b60008160001904831182151516156117d6576117d66116b3565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561182257600080fd5b8151611444816115bf565b60008060006060848603121561184257600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561186d57600080fd5b8151801515811461144457600080fd5b8082018082111561041c5761041c6116b3565b6000600182016118a2576118a26116b3565b5060010190565b8181038181111561041c5761041c6116b3565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119225784516001600160a01b0316835293830193918301916001016118fd565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261196057634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208aa8e2b7ba3e9cc377742d613345c6d538e71e826735a0ce85c2f87a435377bf64736f6c63430008100033