0x60806040526004361061023f5760003560e01c80636053a0e31161012e578063a457c2d7116100ab578063dd4670641161006f578063dd467064146106ce578063dd62ed3e146106ee578063f03e63b414610734578063f2fde38b14610754578063ffb54a991461077457600080fd5b8063a457c2d714610644578063a69df4b514610664578063a9059cbb14610679578063c9567bf914610699578063d75f210c146106ae57600080fd5b8063790ca413116100f2578063790ca413146105ad5780638203f5fe146105c357806388f82020146105d85780638da5cb5b1461061157806395d89b411461062f57600080fd5b80636053a0e314610508578063610d5b19146105295780636bc87c3a1461056257806370a0823114610578578063715018a61461059857600080fd5b8063362a3c5d116101bc57806349bd5a5e1161018057806349bd5a5e146104665780634a74bb02146104865780635342acb4146104a7578063557ed1ba146104e0578063602bc62b146104f357600080fd5b8063362a3c5d146103d057806339509351146103f05780633b124fe7146104105780633bd5d173146104265780634549b0391461044657600080fd5b806323b872dd1161020357806323b872dd1461031857806327c8f8351461033857806329370cc61461036c5780632d8381191461038e578063313ce567146103ae57600080fd5b806306fdde031461024b578063095ea7b31461027657806313114a9d146102a65780631694505e146102c557806318160ddd1461030357600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610260610793565b60405161026d9190612cd0565b60405180910390f35b34801561028257600080fd5b50610296610291366004612bd0565b610825565b604051901515815260200161026d565b3480156102b257600080fd5b50600e545b60405190815260200161026d565b3480156102d157600080fd5b506019546102eb906201000090046001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b34801561030f57600080fd5b50600c546102b7565b34801561032457600080fd5b50610296610333366004612b90565b61083c565b34801561034457600080fd5b506102eb7f000000000000000000000000000000000000000000000000000000000000dead81565b34801561037857600080fd5b5061038c610387366004612bfb565b6108a5565b005b34801561039a57600080fd5b506102b76103a9366004612c15565b610930565b3480156103ba57600080fd5b5060115460405160ff909116815260200161026d565b3480156103dc57600080fd5b5061038c6103eb366004612b20565b6109b4565b3480156103fc57600080fd5b5061029661040b366004612bd0565b610b9a565b34801561041c57600080fd5b506102b760145481565b34801561043257600080fd5b5061038c610441366004612c15565b610bd0565b34801561045257600080fd5b506102b7610461366004612c2d565b610cba565b34801561047257600080fd5b50601a546102eb906001600160a01b031681565b34801561049257600080fd5b50601a5461029690600160a81b900460ff1681565b3480156104b357600080fd5b506102966104c2366004612b20565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156104ec57600080fd5b50426102b7565b3480156104ff57600080fd5b506002546102b7565b34801561051457600080fd5b50601a5461029690600160b01b900460ff1681565b34801561053557600080fd5b50610296610544366004612b20565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561056e57600080fd5b506102b760165481565b34801561058457600080fd5b506102b7610593366004612b20565b610d47565b3480156105a457600080fd5b5061038c610da6565b3480156105b957600080fd5b506102b760125481565b3480156105cf57600080fd5b5061038c610e08565b3480156105e457600080fd5b506102966105f3366004612b20565b6001600160a01b03166000908152600a602052604090205460ff1690565b34801561061d57600080fd5b506000546001600160a01b03166102eb565b34801561063b57600080fd5b5061026061106d565b34801561065057600080fd5b5061029661065f366004612bd0565b61107c565b34801561067057600080fd5b5061038c6110cb565b34801561068557600080fd5b50610296610694366004612bd0565b6111d1565b3480156106a557600080fd5b5061038c6111de565b3480156106ba57600080fd5b5061038c6106c9366004612b20565b611256565b3480156106da57600080fd5b5061038c6106e9366004612c15565b6113bc565b3480156106fa57600080fd5b506102b7610709366004612b58565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561074057600080fd5b5061038c61074f366004612b20565b611441565b34801561076057600080fd5b5061038c61076f366004612b20565b611493565b34801561078057600080fd5b5060195461029690610100900460ff1681565b6060600f80546107a290612e23565b80601f01602080910402602001604051908101604052809291908181526020018280546107ce90612e23565b801561081b5780601f106107f05761010080835404028352916020019161081b565b820191906000526020600020905b8154815290600101906020018083116107fe57829003601f168201915b5050505050905090565b600061083233848461156b565b5060015b92915050565b600061084984848461168f565b61089b843361089685604051806060016040528060288152602001612ea8602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611d26565b61156b565b5060019392505050565b6000546001600160a01b031633146108d85760405162461bcd60e51b81526004016108cf90612d23565b60405180910390fd5b601a8054821515600160b01b0260ff60b01b199091161790556040517f3794234fa370c9f3b948dda3e3040530785b2ef1eb27dda3ffde478f4e2643c09061092590831515815260200190565b60405180910390a150565b6000600d548211156109975760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108cf565b60006109a1611d60565b90506109ad8382611d83565b9392505050565b6000546001600160a01b031633146109de5760405162461bcd60e51b81526004016108cf90612d23565b6001600160a01b03811660009081526007602052604090205460ff16610a465760405162461bcd60e51b815260206004820152601a60248201527f4163636f756e74206973206e6f7420626c61636b6c697374656400000000000060448201526064016108cf565b60005b600854811015610b9657816001600160a01b031660088281548110610a7e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610b845760088054610aa990600190612e0c565b81548110610ac757634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600880546001600160a01b039092169183908110610b0157634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600790915260409020805460ff191690556008805480610b5e57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610b8e81612e5e565b915050610a49565b5050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916108329185906108969086611dc5565b336000818152600a602052604090205460ff1615610c455760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016108cf565b6000610c5083611e24565b505050506001600160a01b038416600090815260036020526040902054919250610c7c91905082611e73565b6001600160a01b038316600090815260036020526040902055600d54610ca29082611e73565b600d55600e54610cb29084611dc5565b600e55505050565b6000600c54831115610d0e5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016108cf565b81610d2d576000610d1e84611e24565b50939550610836945050505050565b6000610d3884611e24565b50929550610836945050505050565b6001600160a01b0381166000908152600a602052604081205460ff1615610d8457506001600160a01b031660009081526004602052604090205490565b6001600160a01b03821660009081526003602052604090205461083690610930565b6000546001600160a01b03163314610dd05760405162461bcd60e51b81526004016108cf90612d23565b600080546040516001600160a01b0390911690600080516020612ed0833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e325760405162461bcd60e51b81526004016108cf90612d23565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8457600080fd5b505afa158015610e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190612b3c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0457600080fd5b505afa158015610f18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3c9190612b3c565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610f8457600080fd5b505af1158015610f98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbc9190612b3c565b601a80546001600160a01b039283166001600160a01b031990911617815560198054938316620100000262010000600160b01b0319909416939093179092556000805482168152600960209081526040808320805460ff199081166001908117909255308552828520805482168317905595549094168352600a9091529020805490921617905560118054610100600160a81b03191674fcbf6a38e13eca136cad13edbabca827b72cc0da00179055565b6060601080546107a290612e23565b6000610832338461089685604051806060016040528060258152602001612ef0602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611d26565b6001546001600160a01b031633146111315760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016108cf565b60025442116111825760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c203720646179730060448201526064016108cf565b600154600080546040516001600160a01b039384169390911691600080516020612ed083398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600061083233848461168f565b6000546001600160a01b031633146112085760405162461bcd60e51b81526004016108cf90612d23565b674563918244f4000060185560086016556002601455601a805460ff60a81b1916600160a81b1790556019805461ff0019166101001790554260128190556112519060b4612db5565b601355565b6000546001600160a01b031633146112805760405162461bcd60e51b81526004016108cf90612d23565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03821614156112ed5760405162461bcd60e51b815260206004820152601c60248201527f57652063616e206e6f7420626c61636b6c69737420556e69737761700000000060448201526064016108cf565b6001600160a01b03811660009081526007602052604090205460ff16156113565760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420697320616c726561647920626c61636b6c6973746564000060448201526064016108cf565b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146113e65760405162461bcd60e51b81526004016108cf90612d23565b60008054600180546001600160a01b03199081166001600160a01b038416179091551690556114158142612db5565b600255600080546040516001600160a01b0390911690600080516020612ed0833981519152908390a350565b6000546001600160a01b0316331461146b5760405162461bcd60e51b81526004016108cf90612d23565b601180546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b031633146114bd5760405162461bcd60e51b81526004016108cf90612d23565b6001600160a01b0381166115225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108cf565b600080546040516001600160a01b0380851693921691600080516020612ed083398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166115cd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108cf565b6001600160a01b03821661162e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108cf565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116f35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108cf565b6001600160a01b0382166117555760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108cf565b600081116117b75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108cf565b6001600160a01b03821660009081526007602052604090205460ff161561181a5760405162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b60448201526064016108cf565b3360009081526007602052604090205460ff16156118745760405162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b60448201526064016108cf565b6000546001600160a01b038481169116148015906118a057506000546001600160a01b03838116911614155b15611aa657601954610100900460ff16611957576001600160a01b0383163014806118d357506001600160a01b03821630145b806118eb57506000546001600160a01b038481169116145b8061190357506000546001600160a01b038381169116145b61195757601954610100900460ff166119575760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b60448201526064016108cf565b60125461196590600a612db5565b421015611a3257601a546001600160a01b038481169116148015906119a757506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b80156119c757506019546001600160a01b03848116620100009092041614155b15611a32576001600160a01b0383166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b03191690911790555b60195460ff1615611aa6573360009081526006602052604090206002015460ff16611aa657604080516060810182526000808252602080830182815260018486018181523385526006909352949092209251835590519282019290925590516002909101805460ff19169115159190911790555b601a546001600160a01b038481169116148015611ad757506019546001600160a01b03838116620100009092041614155b8015611afc57506001600160a01b03821660009081526009602052604090205460ff16155b15611c4657601954610100900460ff16611b585760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e000000000000000060448201526064016108cf565b60195460ff1615611c1357426013541115611c1357601854811115611b7c57600080fd5b6001600160a01b0382166000908152600660205260409020544211611bee5760405162461bcd60e51b815260206004820152602260248201527f596f75722062757920636f6f6c646f776e20686173206e6f7420657870697265604482015261321760f11b60648201526084016108cf565b611bf942601e612db5565b6001600160a01b0383166000908152600660205260409020555b60195460ff1615611c4657611c2942600f612db5565b6001600160a01b0383166000908152600660205260409020600101555b601a54600160a01b900460ff16158015611c695750601a54600160a81b900460ff165b8015611c825750601a546001600160a01b038381169116145b15611cc9576000611c9230610d47565b90508015611ca357611ca381611eb5565b601a54600160b01b900460ff1615611cc757478015611cc557611cc581611f23565b505b505b6001600160a01b03831660009081526009602052604090205460019060ff1680611d0b57506001600160a01b03831660009081526009602052604090205460ff165b15611d14575060005b611d2084848484611f55565b50505050565b60008184841115611d4a5760405162461bcd60e51b81526004016108cf9190612cd0565b506000611d578486612e0c565b95945050505050565b6000806000611d6d61207a565b9092509050611d7c8282611d83565b9250505090565b60006109ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612234565b600080611dd28385612db5565b9050838110156109ad5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108cf565b6000806000806000806000806000611e3b8a612262565b9250925092506000806000611e598d8686611e54611d60565b6122a4565b919f909e50909c50959a5093985091965092945050505050565b60006109ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d26565b601a805460ff60a01b1916600160a01b17905547611ed2826122f4565b6000611ede4783611e73565b601154909150611f119061010090046001600160a01b0316611f0c6004611f068560036124d7565b90611d83565b612556565b5050601a805460ff60a01b1916905550565b601a805460ff60a01b1916600160a01b1790558015611f4557611f4581612591565b50601a805460ff60a01b19169055565b80611f6257611f62612773565b6001600160a01b0384166000908152600a602052604090205460ff168015611fa357506001600160a01b0383166000908152600a602052604090205460ff16155b15611fb857611fb38484846127a1565b612064565b6001600160a01b0384166000908152600a602052604090205460ff16158015611ff957506001600160a01b0383166000908152600a602052604090205460ff165b1561200957611fb38484846128c7565b6001600160a01b0384166000908152600a602052604090205460ff16801561204957506001600160a01b0383166000908152600a602052604090205460ff165b1561205957611fb3848484612970565b6120648484846129e3565b80611d2057611d20601554601455601754601655565b600d54600c546000918291825b600b54811015612204578260036000600b84815481106120b757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061213057508160046000600b848154811061210957634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561214657600d54600c54945094505050509091565b61219a60036000600b848154811061216e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611e73565b92506121f060046000600b84815481106121c457634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611e73565b9150806121fc81612e5e565b915050612087565b50600c54600d5461221491611d83565b82101561222b57600d54600c549350935050509091565b90939092509050565b600081836122555760405162461bcd60e51b81526004016108cf9190612cd0565b506000611d578486612dcd565b60008060008061227185612a27565b9050600061227e86612a43565b90506000612296826122908986611e73565b90611e73565b979296509094509092505050565b60008080806122b388866124d7565b905060006122c188876124d7565b905060006122cf88886124d7565b905060006122e1826122908686611e73565b939b939a50919850919650505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061233757634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050601960029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156123a557600080fd5b505afa1580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd9190612b3c565b816001815181106123fe57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260195461242a913091620100009004168461156b565b60195460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac94790612468908590600090869030904290600401612d79565b600060405180830381600087803b15801561248257600080fd5b505af1158015612496573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516124cb929190612d58565b60405180910390a15050565b6000826124e657506000610836565b60006124f28385612ded565b9050826124ff8583612dcd565b146109ad5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108cf565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561258c573d6000803e3d6000fd5b505050565b604080516002808252606082018352600092602083019080368337019050509050601960029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561260057600080fd5b505afa158015612614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126389190612b3c565b8160008151811061265957634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061269b57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526019546201000090041663b6f9de95836000847f000000000000000000000000000000000000000000000000000000000000dead6126f14261012c611dc5565b6040518663ffffffff1660e01b81526004016127109493929190612c9b565b6000604051808303818588803b15801561272957600080fd5b505af115801561273d573d6000803e3d6000fd5b50505050507f6fd378a9d8b7345c2e5b18229aaf1e39d32b177b501d0a0d26a0a858a23a962482826040516124cb929190612d58565b6014541580156127835750601654155b1561278a57565b601480546015556016805460175560009182905555565b6000806000806000806127b387611e24565b6001600160a01b038f16600090815260046020526040902054959b509399509197509550935091506127e59088611e73565b6001600160a01b038a166000908152600460209081526040808320939093556003905220546128149087611e73565b6001600160a01b03808b1660009081526003602052604080822093909355908a16815220546128439086611dc5565b6001600160a01b03891660009081526003602052604090205561286581612a5f565b61286f8483612ae7565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128b491815260200190565b60405180910390a3505050505050505050565b6000806000806000806128d987611e24565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061290b9087611e73565b6001600160a01b03808b16600090815260036020908152604080832094909455918b168152600490915220546129419084611dc5565b6001600160a01b0389166000908152600460209081526040808320939093556003905220546128439086611dc5565b60008060008060008061298287611e24565b6001600160a01b038f16600090815260046020526040902054959b509399509197509550935091506129b49088611e73565b6001600160a01b038a1660009081526004602090815260408083209390935560039052205461290b9087611e73565b6000806000806000806129f587611e24565b6001600160a01b038f16600090815260036020526040902054959b509399509197509550935091506128149087611e73565b60006108366064611f06601454856124d790919063ffffffff16565b60006108366064611f06601654856124d790919063ffffffff16565b6000612a69611d60565b90506000612a7783836124d7565b30600090815260036020526040902054909150612a949082611dc5565b30600090815260036020908152604080832093909355600a9052205460ff161561258c5730600090815260046020526040902054612ad29084611dc5565b30600090815260046020526040902055505050565b600d54612af49083611e73565b600d55600e54612b049082611dc5565b600e555050565b80358015158114612b1b57600080fd5b919050565b600060208284031215612b31578081fd5b81356109ad81612e8f565b600060208284031215612b4d578081fd5b81516109ad81612e8f565b60008060408385031215612b6a578081fd5b8235612b7581612e8f565b91506020830135612b8581612e8f565b809150509250929050565b600080600060608486031215612ba4578081fd5b8335612baf81612e8f565b92506020840135612bbf81612e8f565b929592945050506040919091013590565b60008060408385031215612be2578182fd5b8235612bed81612e8f565b946020939093013593505050565b600060208284031215612c0c578081fd5b6109ad82612b0b565b600060208284031215612c26578081fd5b5035919050565b60008060408385031215612c3f578182fd5b82359150612c4f60208401612b0b565b90509250929050565b6000815180845260208085019450808401835b83811015612c905781516001600160a01b031687529582019590820190600101612c6b565b509495945050505050565b848152608060208201526000612cb46080830186612c58565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b81811015612cfc57858101830151858201604001528201612ce0565b81811115612d0d5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000612d716040830184612c58565b949350505050565b85815284602082015260a060408201526000612d9860a0830186612c58565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612dc857612dc8612e79565b500190565b600082612de857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612e0757612e07612e79565b500290565b600082821015612e1e57612e1e612e79565b500390565b600181811c90821680612e3757607f821691505b60208210811415612e5857634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612e7257612e72612e79565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114612ea457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204b934694b31bfa226ae112feb5d9b13823d35a31687ff9da74d4d726e766e36a64736f6c63430008040033
0x60a06040526ddead000000000000000000000000608052683635c9adc5dea00000600c819055620000339060001962000293565b620000419060001962000232565b600d5560408051808201909152600a80825269416e7562697320496e7560b01b60209092019182526200007791600f916200018c565b5060408051808201909152600a80825269414e5542495320494e5560b01b6020909201918252620000ab916010916200018c565b506011805460ff191660091790556014546015556016546017556019805461ffff19166001179055601a805461ffff60a81b1916600160b01b179055348015620000f457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d5433600081815260036020908152604080832094909455600c549351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620002b4565b8280546200019a9062000256565b90600052602060002090601f016020900481019282620001be576000855562000209565b82601f10620001d957805160ff191683800117855562000209565b8280016001018555821562000209579182015b8281111562000209578251825591602001919060010190620001ec565b50620002179291506200021b565b5090565b5b808211156200021757600081556001016200021c565b6000828210156200025157634e487b7160e01b81526011600452602481fd5b500390565b600181811c908216806200026b57607f821691505b602082108114156200028d57634e487b7160e01b600052602260045260246000fd5b50919050565b600082620002af57634e487b7160e01b81526012600452602481fd5b500690565b60805160601c612f4a620002da6000396000818161034a01526126c60152612f4a6000f3fe60806040526004361061023f5760003560e01c80636053a0e31161012e578063a457c2d7116100ab578063dd4670641161006f578063dd467064146106ce578063dd62ed3e146106ee578063f03e63b414610734578063f2fde38b14610754578063ffb54a991461077457600080fd5b8063a457c2d714610644578063a69df4b514610664578063a9059cbb14610679578063c9567bf914610699578063d75f210c146106ae57600080fd5b8063790ca413116100f2578063790ca413146105ad5780638203f5fe146105c357806388f82020146105d85780638da5cb5b1461061157806395d89b411461062f57600080fd5b80636053a0e314610508578063610d5b19146105295780636bc87c3a1461056257806370a0823114610578578063715018a61461059857600080fd5b8063362a3c5d116101bc57806349bd5a5e1161018057806349bd5a5e146104665780634a74bb02146104865780635342acb4146104a7578063557ed1ba146104e0578063602bc62b146104f357600080fd5b8063362a3c5d146103d057806339509351146103f05780633b124fe7146104105780633bd5d173146104265780634549b0391461044657600080fd5b806323b872dd1161020357806323b872dd1461031857806327c8f8351461033857806329370cc61461036c5780632d8381191461038e578063313ce567146103ae57600080fd5b806306fdde031461024b578063095ea7b31461027657806313114a9d146102a65780631694505e146102c557806318160ddd1461030357600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610260610793565b60405161026d9190612cd0565b60405180910390f35b34801561028257600080fd5b50610296610291366004612bd0565b610825565b604051901515815260200161026d565b3480156102b257600080fd5b50600e545b60405190815260200161026d565b3480156102d157600080fd5b506019546102eb906201000090046001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b34801561030f57600080fd5b50600c546102b7565b34801561032457600080fd5b50610296610333366004612b90565b61083c565b34801561034457600080fd5b506102eb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561037857600080fd5b5061038c610387366004612bfb565b6108a5565b005b34801561039a57600080fd5b506102b76103a9366004612c15565b610930565b3480156103ba57600080fd5b5060115460405160ff909116815260200161026d565b3480156103dc57600080fd5b5061038c6103eb366004612b20565b6109b4565b3480156103fc57600080fd5b5061029661040b366004612bd0565b610b9a565b34801561041c57600080fd5b506102b760145481565b34801561043257600080fd5b5061038c610441366004612c15565b610bd0565b34801561045257600080fd5b506102b7610461366004612c2d565b610cba565b34801561047257600080fd5b50601a546102eb906001600160a01b031681565b34801561049257600080fd5b50601a5461029690600160a81b900460ff1681565b3480156104b357600080fd5b506102966104c2366004612b20565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156104ec57600080fd5b50426102b7565b3480156104ff57600080fd5b506002546102b7565b34801561051457600080fd5b50601a5461029690600160b01b900460ff1681565b34801561053557600080fd5b50610296610544366004612b20565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561056e57600080fd5b506102b760165481565b34801561058457600080fd5b506102b7610593366004612b20565b610d47565b3480156105a457600080fd5b5061038c610da6565b3480156105b957600080fd5b506102b760125481565b3480156105cf57600080fd5b5061038c610e08565b3480156105e457600080fd5b506102966105f3366004612b20565b6001600160a01b03166000908152600a602052604090205460ff1690565b34801561061d57600080fd5b506000546001600160a01b03166102eb565b34801561063b57600080fd5b5061026061106d565b34801561065057600080fd5b5061029661065f366004612bd0565b61107c565b34801561067057600080fd5b5061038c6110cb565b34801561068557600080fd5b50610296610694366004612bd0565b6111d1565b3480156106a557600080fd5b5061038c6111de565b3480156106ba57600080fd5b5061038c6106c9366004612b20565b611256565b3480156106da57600080fd5b5061038c6106e9366004612c15565b6113bc565b3480156106fa57600080fd5b506102b7610709366004612b58565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561074057600080fd5b5061038c61074f366004612b20565b611441565b34801561076057600080fd5b5061038c61076f366004612b20565b611493565b34801561078057600080fd5b5060195461029690610100900460ff1681565b6060600f80546107a290612e23565b80601f01602080910402602001604051908101604052809291908181526020018280546107ce90612e23565b801561081b5780601f106107f05761010080835404028352916020019161081b565b820191906000526020600020905b8154815290600101906020018083116107fe57829003601f168201915b5050505050905090565b600061083233848461156b565b5060015b92915050565b600061084984848461168f565b61089b843361089685604051806060016040528060288152602001612ea8602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611d26565b61156b565b5060019392505050565b6000546001600160a01b031633146108d85760405162461bcd60e51b81526004016108cf90612d23565b60405180910390fd5b601a8054821515600160b01b0260ff60b01b199091161790556040517f3794234fa370c9f3b948dda3e3040530785b2ef1eb27dda3ffde478f4e2643c09061092590831515815260200190565b60405180910390a150565b6000600d548211156109975760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108cf565b60006109a1611d60565b90506109ad8382611d83565b9392505050565b6000546001600160a01b031633146109de5760405162461bcd60e51b81526004016108cf90612d23565b6001600160a01b03811660009081526007602052604090205460ff16610a465760405162461bcd60e51b815260206004820152601a60248201527f4163636f756e74206973206e6f7420626c61636b6c697374656400000000000060448201526064016108cf565b60005b600854811015610b9657816001600160a01b031660088281548110610a7e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610b845760088054610aa990600190612e0c565b81548110610ac757634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600880546001600160a01b039092169183908110610b0157634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600790915260409020805460ff191690556008805480610b5e57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610b8e81612e5e565b915050610a49565b5050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916108329185906108969086611dc5565b336000818152600a602052604090205460ff1615610c455760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016108cf565b6000610c5083611e24565b505050506001600160a01b038416600090815260036020526040902054919250610c7c91905082611e73565b6001600160a01b038316600090815260036020526040902055600d54610ca29082611e73565b600d55600e54610cb29084611dc5565b600e55505050565b6000600c54831115610d0e5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016108cf565b81610d2d576000610d1e84611e24565b50939550610836945050505050565b6000610d3884611e24565b50929550610836945050505050565b6001600160a01b0381166000908152600a602052604081205460ff1615610d8457506001600160a01b031660009081526004602052604090205490565b6001600160a01b03821660009081526003602052604090205461083690610930565b6000546001600160a01b03163314610dd05760405162461bcd60e51b81526004016108cf90612d23565b600080546040516001600160a01b0390911690600080516020612ed0833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e325760405162461bcd60e51b81526004016108cf90612d23565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8457600080fd5b505afa158015610e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190612b3c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0457600080fd5b505afa158015610f18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3c9190612b3c565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610f8457600080fd5b505af1158015610f98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbc9190612b3c565b601a80546001600160a01b039283166001600160a01b031990911617815560198054938316620100000262010000600160b01b0319909416939093179092556000805482168152600960209081526040808320805460ff199081166001908117909255308552828520805482168317905595549094168352600a9091529020805490921617905560118054610100600160a81b03191674fcbf6a38e13eca136cad13edbabca827b72cc0da00179055565b6060601080546107a290612e23565b6000610832338461089685604051806060016040528060258152602001612ef0602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611d26565b6001546001600160a01b031633146111315760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016108cf565b60025442116111825760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c203720646179730060448201526064016108cf565b600154600080546040516001600160a01b039384169390911691600080516020612ed083398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600061083233848461168f565b6000546001600160a01b031633146112085760405162461bcd60e51b81526004016108cf90612d23565b674563918244f4000060185560086016556002601455601a805460ff60a81b1916600160a81b1790556019805461ff0019166101001790554260128190556112519060b4612db5565b601355565b6000546001600160a01b031633146112805760405162461bcd60e51b81526004016108cf90612d23565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03821614156112ed5760405162461bcd60e51b815260206004820152601c60248201527f57652063616e206e6f7420626c61636b6c69737420556e69737761700000000060448201526064016108cf565b6001600160a01b03811660009081526007602052604090205460ff16156113565760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420697320616c726561647920626c61636b6c6973746564000060448201526064016108cf565b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146113e65760405162461bcd60e51b81526004016108cf90612d23565b60008054600180546001600160a01b03199081166001600160a01b038416179091551690556114158142612db5565b600255600080546040516001600160a01b0390911690600080516020612ed0833981519152908390a350565b6000546001600160a01b0316331461146b5760405162461bcd60e51b81526004016108cf90612d23565b601180546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b031633146114bd5760405162461bcd60e51b81526004016108cf90612d23565b6001600160a01b0381166115225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108cf565b600080546040516001600160a01b0380851693921691600080516020612ed083398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166115cd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108cf565b6001600160a01b03821661162e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108cf565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116f35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108cf565b6001600160a01b0382166117555760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108cf565b600081116117b75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108cf565b6001600160a01b03821660009081526007602052604090205460ff161561181a5760405162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b60448201526064016108cf565b3360009081526007602052604090205460ff16156118745760405162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b60448201526064016108cf565b6000546001600160a01b038481169116148015906118a057506000546001600160a01b03838116911614155b15611aa657601954610100900460ff16611957576001600160a01b0383163014806118d357506001600160a01b03821630145b806118eb57506000546001600160a01b038481169116145b8061190357506000546001600160a01b038381169116145b61195757601954610100900460ff166119575760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b60448201526064016108cf565b60125461196590600a612db5565b421015611a3257601a546001600160a01b038481169116148015906119a757506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b80156119c757506019546001600160a01b03848116620100009092041614155b15611a32576001600160a01b0383166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b03191690911790555b60195460ff1615611aa6573360009081526006602052604090206002015460ff16611aa657604080516060810182526000808252602080830182815260018486018181523385526006909352949092209251835590519282019290925590516002909101805460ff19169115159190911790555b601a546001600160a01b038481169116148015611ad757506019546001600160a01b03838116620100009092041614155b8015611afc57506001600160a01b03821660009081526009602052604090205460ff16155b15611c4657601954610100900460ff16611b585760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e000000000000000060448201526064016108cf565b60195460ff1615611c1357426013541115611c1357601854811115611b7c57600080fd5b6001600160a01b0382166000908152600660205260409020544211611bee5760405162461bcd60e51b815260206004820152602260248201527f596f75722062757920636f6f6c646f776e20686173206e6f7420657870697265604482015261321760f11b60648201526084016108cf565b611bf942601e612db5565b6001600160a01b0383166000908152600660205260409020555b60195460ff1615611c4657611c2942600f612db5565b6001600160a01b0383166000908152600660205260409020600101555b601a54600160a01b900460ff16158015611c695750601a54600160a81b900460ff165b8015611c825750601a546001600160a01b038381169116145b15611cc9576000611c9230610d47565b90508015611ca357611ca381611eb5565b601a54600160b01b900460ff1615611cc757478015611cc557611cc581611f23565b505b505b6001600160a01b03831660009081526009602052604090205460019060ff1680611d0b57506001600160a01b03831660009081526009602052604090205460ff165b15611d14575060005b611d2084848484611f55565b50505050565b60008184841115611d4a5760405162461bcd60e51b81526004016108cf9190612cd0565b506000611d578486612e0c565b95945050505050565b6000806000611d6d61207a565b9092509050611d7c8282611d83565b9250505090565b60006109ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612234565b600080611dd28385612db5565b9050838110156109ad5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108cf565b6000806000806000806000806000611e3b8a612262565b9250925092506000806000611e598d8686611e54611d60565b6122a4565b919f909e50909c50959a5093985091965092945050505050565b60006109ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d26565b601a805460ff60a01b1916600160a01b17905547611ed2826122f4565b6000611ede4783611e73565b601154909150611f119061010090046001600160a01b0316611f0c6004611f068560036124d7565b90611d83565b612556565b5050601a805460ff60a01b1916905550565b601a805460ff60a01b1916600160a01b1790558015611f4557611f4581612591565b50601a805460ff60a01b19169055565b80611f6257611f62612773565b6001600160a01b0384166000908152600a602052604090205460ff168015611fa357506001600160a01b0383166000908152600a602052604090205460ff16155b15611fb857611fb38484846127a1565b612064565b6001600160a01b0384166000908152600a602052604090205460ff16158015611ff957506001600160a01b0383166000908152600a602052604090205460ff165b1561200957611fb38484846128c7565b6001600160a01b0384166000908152600a602052604090205460ff16801561204957506001600160a01b0383166000908152600a602052604090205460ff165b1561205957611fb3848484612970565b6120648484846129e3565b80611d2057611d20601554601455601754601655565b600d54600c546000918291825b600b54811015612204578260036000600b84815481106120b757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061213057508160046000600b848154811061210957634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561214657600d54600c54945094505050509091565b61219a60036000600b848154811061216e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611e73565b92506121f060046000600b84815481106121c457634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611e73565b9150806121fc81612e5e565b915050612087565b50600c54600d5461221491611d83565b82101561222b57600d54600c549350935050509091565b90939092509050565b600081836122555760405162461bcd60e51b81526004016108cf9190612cd0565b506000611d578486612dcd565b60008060008061227185612a27565b9050600061227e86612a43565b90506000612296826122908986611e73565b90611e73565b979296509094509092505050565b60008080806122b388866124d7565b905060006122c188876124d7565b905060006122cf88886124d7565b905060006122e1826122908686611e73565b939b939a50919850919650505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061233757634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050601960029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156123a557600080fd5b505afa1580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd9190612b3c565b816001815181106123fe57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260195461242a913091620100009004168461156b565b60195460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac94790612468908590600090869030904290600401612d79565b600060405180830381600087803b15801561248257600080fd5b505af1158015612496573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516124cb929190612d58565b60405180910390a15050565b6000826124e657506000610836565b60006124f28385612ded565b9050826124ff8583612dcd565b146109ad5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108cf565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561258c573d6000803e3d6000fd5b505050565b604080516002808252606082018352600092602083019080368337019050509050601960029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561260057600080fd5b505afa158015612614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126389190612b3c565b8160008151811061265957634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061269b57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526019546201000090041663b6f9de95836000847f00000000000000000000000000000000000000000000000000000000000000006126f14261012c611dc5565b6040518663ffffffff1660e01b81526004016127109493929190612c9b565b6000604051808303818588803b15801561272957600080fd5b505af115801561273d573d6000803e3d6000fd5b50505050507f6fd378a9d8b7345c2e5b18229aaf1e39d32b177b501d0a0d26a0a858a23a962482826040516124cb929190612d58565b6014541580156127835750601654155b1561278a57565b601480546015556016805460175560009182905555565b6000806000806000806127b387611e24565b6001600160a01b038f16600090815260046020526040902054959b509399509197509550935091506127e59088611e73565b6001600160a01b038a166000908152600460209081526040808320939093556003905220546128149087611e73565b6001600160a01b03808b1660009081526003602052604080822093909355908a16815220546128439086611dc5565b6001600160a01b03891660009081526003602052604090205561286581612a5f565b61286f8483612ae7565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128b491815260200190565b60405180910390a3505050505050505050565b6000806000806000806128d987611e24565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061290b9087611e73565b6001600160a01b03808b16600090815260036020908152604080832094909455918b168152600490915220546129419084611dc5565b6001600160a01b0389166000908152600460209081526040808320939093556003905220546128439086611dc5565b60008060008060008061298287611e24565b6001600160a01b038f16600090815260046020526040902054959b509399509197509550935091506129b49088611e73565b6001600160a01b038a1660009081526004602090815260408083209390935560039052205461290b9087611e73565b6000806000806000806129f587611e24565b6001600160a01b038f16600090815260036020526040902054959b509399509197509550935091506128149087611e73565b60006108366064611f06601454856124d790919063ffffffff16565b60006108366064611f06601654856124d790919063ffffffff16565b6000612a69611d60565b90506000612a7783836124d7565b30600090815260036020526040902054909150612a949082611dc5565b30600090815260036020908152604080832093909355600a9052205460ff161561258c5730600090815260046020526040902054612ad29084611dc5565b30600090815260046020526040902055505050565b600d54612af49083611e73565b600d55600e54612b049082611dc5565b600e555050565b80358015158114612b1b57600080fd5b919050565b600060208284031215612b31578081fd5b81356109ad81612e8f565b600060208284031215612b4d578081fd5b81516109ad81612e8f565b60008060408385031215612b6a578081fd5b8235612b7581612e8f565b91506020830135612b8581612e8f565b809150509250929050565b600080600060608486031215612ba4578081fd5b8335612baf81612e8f565b92506020840135612bbf81612e8f565b929592945050506040919091013590565b60008060408385031215612be2578182fd5b8235612bed81612e8f565b946020939093013593505050565b600060208284031215612c0c578081fd5b6109ad82612b0b565b600060208284031215612c26578081fd5b5035919050565b60008060408385031215612c3f578182fd5b82359150612c4f60208401612b0b565b90509250929050565b6000815180845260208085019450808401835b83811015612c905781516001600160a01b031687529582019590820190600101612c6b565b509495945050505050565b848152608060208201526000612cb46080830186612c58565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b81811015612cfc57858101830151858201604001528201612ce0565b81811115612d0d5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000612d716040830184612c58565b949350505050565b85815284602082015260a060408201526000612d9860a0830186612c58565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612dc857612dc8612e79565b500190565b600082612de857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612e0757612e07612e79565b500290565b600082821015612e1e57612e1e612e79565b500390565b600181811c90821680612e3757607f821691505b60208210811415612e5857634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612e7257612e72612e79565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114612ea457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204b934694b31bfa226ae112feb5d9b13823d35a31687ff9da74d4d726e766e36a64736f6c63430008040033