0x60c0604052600a805462ffffff1916600117905560026012553480156200002557600080fd5b50604080518082018252600d81526c526f6172696e67206b6974747960981b6020808301918252835180850190945260058452644b4954545960d81b9084015281519192916200007891600391620006e0565b5080516200008e906004906020840190620006e0565b5050506000620000a3620003fe60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d6200011381600162000402565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200015957600080fd5b505afa1580156200016e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000194919062000786565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001dd57600080fd5b505afa158015620001f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000218919062000786565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200026157600080fd5b505af115801562000276573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029c919062000786565b6001600160a01b031660a0819052620002b790600162000402565b60a051620002c79060016200047c565b600a6028601e6c054f529ca52576bc68920000006103e8620002eb826014620007c7565b620002f79190620007e9565b6007556103e86200030a826014620007c7565b620003169190620007e9565b600955600d849055600c849055600e8290556010839055600f839055600680546001600160a01b0319167393cd8bde67718cb7196494ddc03ff345a3ba58aa179055620003776200036f6005546001600160a01b031690565b6001620004d0565b62000384306001620004d0565b6200039361dead6001620004d0565b600654620003ac906001600160a01b03166001620004d0565b620003cb620003c36005546001600160a01b031690565b600162000402565b620003d830600162000402565b620003e761dead600162000402565b620003f333826200057a565b505050505062000864565b3390565b6005546001600160a01b03163314620004515760405162461bcd60e51b8152602060048201819052602482015260008051602062002c8583398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260156020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b031633146200051b5760405162461bcd60e51b8152602060048201819052602482015260008051602062002c85833981519152604482015260640162000448565b6001600160a01b038216600081815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005d25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000448565b620005ee816002546200067660201b620011d81790919060201c565b6002556001600160a01b0382166000908152602081815260409091205462000621918390620011d862000676821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000806200068583856200080c565b905083811015620006d95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000448565b9392505050565b828054620006ee9062000827565b90600052602060002090601f0160209004810192826200071257600085556200075d565b82601f106200072d57805160ff19168380011785556200075d565b828001600101855582156200075d579182015b828111156200075d57825182559160200191906001019062000740565b506200076b9291506200076f565b5090565b5b808211156200076b576000815560010162000770565b6000602082840312156200079957600080fd5b81516001600160a01b0381168114620006d957600080fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615620007e457620007e4620007b1565b500290565b6000826200080757634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620008225762000822620007b1565b500190565b600181811c908216806200083c57607f821691505b602082108114156200085e57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a0516123df620008a6600039600081816104690152610d6a01526000818161035501528181611dc001528181611e880152611ec401526123df6000f3fe60806040526004361061028c5760003560e01c80637bce5a041161015a578063b62496f5116100c1578063d85ba0631161007a578063d85ba063146107e3578063dd62ed3e146107f9578063e2f456051461083f578063eba4c33314610855578063f2fde38b14610875578063f8b45b051461089557600080fd5b8063b62496f51461071e578063bbc0c7421461074e578063bff81cfa1461076d578063c02466681461078d578063c18bc195146107ad578063c8c8ebe4146107cd57600080fd5b806395d89b411161011357806395d89b41146106695780639a7a23d61461067e578063a457c2d71461069e578063a9059cbb146106be578063aacebbe3146106de578063b4443f5b146106fe57600080fd5b80637bce5a04146105d457806388145911146105ea5780638a8c523c146106005780638da5cb5b146106155780639213691314610633578063924de9b71461064957600080fd5b806339509351116101fe57806370a08231116101b757806370a0823114610514578063715018a61461054a57806371fc46881461055f578063751039fc1461057f5780637571336a1461059457806375f0a874146105b457600080fd5b8063395093511461043757806349bd5a5e146104575780634a62bb651461048b5780634fbee193146104a55780636a486a8e146104de5780636ddd1713146104f457600080fd5b806318160ddd1161025057806318160ddd1461038f578063203e727e146103a457806323b872dd146103c65780632d5a5d34146103e65780632f5f257214610406578063313ce5671461041b57600080fd5b80630306c1971461029857806306fdde03146102c1578063095ea7b3146102e357806310d5de53146103135780631694505e1461034357600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ae600e5481565b6040519081526020015b60405180910390f35b3480156102cd57600080fd5b506102d66108ab565b6040516102b89190611f66565b3480156102ef57600080fd5b506103036102fe366004611fd3565b61093d565b60405190151581526020016102b8565b34801561031f57600080fd5b5061030361032e366004611fff565b60146020526000908152604090205460ff1681565b34801561034f57600080fd5b506103777f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102b8565b34801561039b57600080fd5b506002546102ae565b3480156103b057600080fd5b506103c46103bf36600461201c565b610954565b005b3480156103d257600080fd5b506103036103e1366004612035565b610a3a565b3480156103f257600080fd5b506103c461040136600461208b565b610aa3565b34801561041257600080fd5b506103c4610af8565b34801561042757600080fd5b50604051601281526020016102b8565b34801561044357600080fd5b50610303610452366004611fd3565b610b2e565b34801561046357600080fd5b506103777f000000000000000000000000000000000000000000000000000000000000000081565b34801561049757600080fd5b50600a546103039060ff1681565b3480156104b157600080fd5b506103036104c0366004611fff565b6001600160a01b031660009081526013602052604090205460ff1690565b3480156104ea57600080fd5b506102ae600f5481565b34801561050057600080fd5b50600a546103039062010000900460ff1681565b34801561052057600080fd5b506102ae61052f366004611fff565b6001600160a01b031660009081526020819052604090205490565b34801561055657600080fd5b506103c4610b64565b34801561056b57600080fd5b506103c461057a36600461201c565b610bd8565b34801561058b57600080fd5b50610303610c0c565b3480156105a057600080fd5b506103c46105af36600461208b565b610c53565b3480156105c057600080fd5b50600654610377906001600160a01b031681565b3480156105e057600080fd5b506102ae600d5481565b3480156105f657600080fd5b506102ae60125481565b34801561060c57600080fd5b506103c4610ca8565b34801561062157600080fd5b506005546001600160a01b0316610377565b34801561063f57600080fd5b506102ae60105481565b34801561065557600080fd5b506103c46106643660046120c0565b610ce9565b34801561067557600080fd5b506102d6610d2f565b34801561068a57600080fd5b506103c461069936600461208b565b610d3e565b3480156106aa57600080fd5b506103036106b9366004611fd3565b610e1e565b3480156106ca57600080fd5b506103036106d9366004611fd3565b610e6d565b3480156106ea57600080fd5b506103c46106f9366004611fff565b610e7a565b34801561070a57600080fd5b506103c461071936600461201c565b610f01565b34801561072a57600080fd5b50610303610739366004611fff565b60156020526000908152604090205460ff1681565b34801561075a57600080fd5b50600a5461030390610100900460ff1681565b34801561077957600080fd5b506103c461078836600461201c565b610f30565b34801561079957600080fd5b506103c46107a836600461208b565b610f5f565b3480156107b957600080fd5b506103c46107c836600461201c565b610fe8565b3480156107d957600080fd5b506102ae60075481565b3480156107ef57600080fd5b506102ae600c5481565b34801561080557600080fd5b506102ae6108143660046120db565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561084b57600080fd5b506102ae60085481565b34801561086157600080fd5b506103c461087036600461201c565b6110b9565b34801561088157600080fd5b506103c4610890366004611fff565b6110ed565b3480156108a157600080fd5b506102ae60095481565b6060600380546108ba90612114565b80601f01602080910402602001604051908101604052809291908181526020018280546108e690612114565b80156109335780601f1061090857610100808354040283529160200191610933565b820191906000526020600020905b81548152906001019060200180831161091657829003601f168201915b5050505050905090565b600061094a33848461123e565b5060015b92915050565b6005546001600160a01b031633146109875760405162461bcd60e51b815260040161097e9061214f565b60405180910390fd5b670de0b6b3a76400006103e861099c60025490565b6109a790600161219a565b6109b191906121b9565b6109bb91906121b9565b811015610a225760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b606482015260840161097e565b610a3481670de0b6b3a764000061219a565b60075550565b6000610a47848484611363565b610a998433610a948560405180606001604052806028815260200161235d602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611a91565b61123e565b5060019392505050565b6005546001600160a01b03163314610acd5760405162461bcd60e51b815260040161097e9061214f565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610b225760405162461bcd60e51b815260040161097e9061214f565b6000600d819055600c55565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161094a918590610a9490866111d8565b6005546001600160a01b03163314610b8e5760405162461bcd60e51b815260040161097e9061214f565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610c025760405162461bcd60e51b815260040161097e9061214f565b600d819055600c55565b6005546000906001600160a01b03163314610c395760405162461bcd60e51b815260040161097e9061214f565b50600a805460ff191690556002600d819055600c55600190565b6005546001600160a01b03163314610c7d5760405162461bcd60e51b815260040161097e9061214f565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610cd25760405162461bcd60e51b815260040161097e9061214f565b600a805462ffff0019166201010017905543601155565b6005546001600160a01b03163314610d135760405162461bcd60e51b815260040161097e9061214f565b600a8054911515620100000262ff000019909216919091179055565b6060600480546108ba90612114565b6005546001600160a01b03163314610d685760405162461bcd60e51b815260040161097e9061214f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415610e105760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161097e565b610e1a8282611acb565b5050565b600061094a3384610a9485604051806060016040528060258152602001612385602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611a91565b600061094a338484611363565b6005546001600160a01b03163314610ea45760405162461bcd60e51b815260040161097e9061214f565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610f2b5760405162461bcd60e51b815260040161097e9061214f565b600e55565b6005546001600160a01b03163314610f5a5760405162461bcd60e51b815260040161097e9061214f565b601255565b6005546001600160a01b03163314610f895760405162461bcd60e51b815260040161097e9061214f565b6001600160a01b038216600081815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146110125760405162461bcd60e51b815260040161097e9061214f565b670de0b6b3a76400006103e861102760025490565b61103290600561219a565b61103c91906121b9565b61104691906121b9565b8110156110a15760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b606482015260840161097e565b6110b381670de0b6b3a764000061219a565b60095550565b6005546001600160a01b031633146110e35760405162461bcd60e51b815260040161097e9061214f565b6010819055600f55565b6005546001600160a01b031633146111175760405162461bcd60e51b815260040161097e9061214f565b6001600160a01b03811661117c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161097e565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000806111e583856121db565b9050838110156112375760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161097e565b9392505050565b6001600160a01b0383166112a05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161097e565b6001600160a01b0382166113015760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161097e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166113895760405162461bcd60e51b815260040161097e906121f3565b6001600160a01b0382166113af5760405162461bcd60e51b815260040161097e90612238565b6001600160a01b0382166000908152600b602052604090205460ff161580156113f157506001600160a01b0383166000908152600b602052604090205460ff16155b6114575760405162461bcd60e51b815260206004820152603160248201527f596f752068617665206265656e20626c61636b6c69737465642066726f6d207460448201527072616e73666572696e6720746f6b656e7360781b606482015260840161097e565b8061146d5761146883836000611b1f565b505050565b600a5460ff16156117e3576005546001600160a01b038481169116148015906114a457506005546001600160a01b03838116911614155b80156114b857506001600160a01b03821615155b80156114cf57506001600160a01b03821661dead14155b80156114e55750600554600160a01b900460ff16155b156117e357600a54610100900460ff1661157d576001600160a01b03831660009081526013602052604090205460ff168061153857506001600160a01b03821660009081526013602052604090205460ff165b61157d5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161097e565b6001600160a01b03831660009081526015602052604090205460ff1680156115be57506001600160a01b03821660009081526014602052604090205460ff16155b156116a2576007548111156116335760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606482015260840161097e565b6009546001600160a01b03831660009081526020819052604090205461165990836121db565b111561169d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161097e565b6117e3565b6001600160a01b03821660009081526015602052604090205460ff1680156116e357506001600160a01b03831660009081526014602052604090205460ff16155b156117595760075481111561169d5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606482015260840161097e565b6001600160a01b03821660009081526014602052604090205460ff166117e3576009546001600160a01b03831660009081526020819052604090205461179f90836121db565b11156117e35760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161097e565b3060009081526020819052604090205481818111156117ff5750805b80821080159081906118195750600a5462010000900460ff165b801561182f5750600554600160a01b900460ff16155b801561185457506001600160a01b03861660009081526015602052604090205460ff16155b801561187957506001600160a01b03861660009081526013602052604090205460ff16155b801561189e57506001600160a01b03851660009081526013602052604090205460ff16155b156118cd576005805460ff60a01b1916600160a01b1790556118bf82611c28565b6005805460ff60a01b191690555b6005546001600160a01b03871660009081526013602052604090205460ff600160a01b90920482161591168061191b57506001600160a01b03861660009081526013602052604090205460ff165b15611924575060005b60008115611a7c576001600160a01b03871660009081526015602052604090205460ff16801561195657506000600f54115b156119825761197b6064611975600f5489611ca890919063ffffffff16565b90611d27565b9050611a5e565b6001600160a01b03881660009081526015602052604090205460ff1680156119ac57506000600c54115b156119ec576119cb6064611975600c5489611ca890919063ffffffff16565b90506012546011546119dd91906121db565b4310156119e75750845b611a5e565b6001600160a01b03881660009081526015602052604090205460ff16158015611a2e57506001600160a01b03871660009081526015602052604090205460ff16155b8015611a3c57506000600e54115b15611a5e57611a5b6064611975600e5489611ca890919063ffffffff16565b90505b8015611a6f57611a6f883083611b1f565b611a79818761227b565b95505b611a87888888611b1f565b5050505050505050565b60008184841115611ab55760405162461bcd60e51b815260040161097e9190611f66565b506000611ac2848661227b565b95945050505050565b6001600160a01b038216600081815260156020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611b455760405162461bcd60e51b815260040161097e906121f3565b6001600160a01b038216611b6b5760405162461bcd60e51b815260040161097e90612238565b611ba881604051806060016040528060268152602001612337602691396001600160a01b0386166000908152602081905260409020549190611a91565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611bd790826111d8565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611356565b306000908152602081905260408120549081611c4357505050565b82611c4d81611d69565b6006546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611c9a576040519150601f19603f3d011682016040523d82523d6000602084013e611c9f565b606091505b50505050505050565b600082611cb75750600061094e565b6000611cc3838561219a565b905082611cd085836121b9565b146112375760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161097e565b600061123783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f38565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d9e57611d9e612292565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e1757600080fd5b505afa158015611e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4f91906122a8565b81600181518110611e6257611e62612292565b60200260200101906001600160a01b031690816001600160a01b031681525050611ead307f00000000000000000000000000000000000000000000000000000000000000008461123e565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611f029085906000908690309042906004016122c5565b600060405180830381600087803b158015611f1c57600080fd5b505af1158015611f30573d6000803e3d6000fd5b505050505050565b60008183611f595760405162461bcd60e51b815260040161097e9190611f66565b506000611ac284866121b9565b600060208083528351808285015260005b81811015611f9357858101830151858201604001528201611f77565b81811115611fa5576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611fd057600080fd5b50565b60008060408385031215611fe657600080fd5b8235611ff181611fbb565b946020939093013593505050565b60006020828403121561201157600080fd5b813561123781611fbb565b60006020828403121561202e57600080fd5b5035919050565b60008060006060848603121561204a57600080fd5b833561205581611fbb565b9250602084013561206581611fbb565b929592945050506040919091013590565b8035801515811461208657600080fd5b919050565b6000806040838503121561209e57600080fd5b82356120a981611fbb565b91506120b760208401612076565b90509250929050565b6000602082840312156120d257600080fd5b61123782612076565b600080604083850312156120ee57600080fd5b82356120f981611fbb565b9150602083013561210981611fbb565b809150509250929050565b600181811c9082168061212857607f821691505b6020821081141561214957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156121b4576121b4612184565b500290565b6000826121d657634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156121ee576121ee612184565b500190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60008282101561228d5761228d612184565b500390565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156122ba57600080fd5b815161123781611fbb565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123155784516001600160a01b0316835293830193918301916001016122f0565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d3f4ffd0f8d4d6e5625f23209e2115934bdb7654b2423880f44a855125d3b40764736f6c634300080900334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572