0x6080604052600436106101fd5760003560e01c80634c69ec931161010d5780638091f3bf116100a0578063a457c2d71161006f578063a457c2d714610632578063a9059cbb14610652578063c024666814610672578063dd62ed3e14610692578063f2fde38b146106d857600080fd5b80638091f3bf146105b85780638da5cb5b146105d257806395d89b41146105f0578063a3aa74871461061c57600080fd5b806370a08231116100dc57806370a0823114610537578063715018a61461056d57806375f0a874146105825780637d1db4a5146105a257600080fd5b80634c69ec93146104a85780635342acb4146104c8578063684521a6146105015780636c0a24eb1461052157600080fd5b806323b872dd11610190578063313ce5671161015f578063313ce56714610411578063395093511461042d578063470624021461044d57806349bd5a5e146104685780634be3fa9b1461048857600080fd5b806323b872dd1461034d5780632479b1771461036d578063264d26dd146103bc5780632b14ca56146103e157600080fd5b80630b006d60116101cc5780630b006d60146102c05780631694505e146102e057806318160ddd146103185780631d7efc041461032d57600080fd5b8063036958a21461020957806303e403b01461022b57806306fdde0314610254578063095ea7b31461029057600080fd5b3661020457005b600080fd5b34801561021557600080fd5b506102296102243660046119ce565b6106f8565b005b34801561023757600080fd5b50610241600a5481565b6040519081526020015b60405180910390f35b34801561026057600080fd5b5060408051808201909152600a815269109a5d08109d58dad95d60b21b60208201525b60405161024b91906119f0565b34801561029c57600080fd5b506102b06102ab366004611a56565b6107a5565b604051901515815260200161024b565b3480156102cc57600080fd5b506102296102db366004611a82565b6107bc565b3480156102ec57600080fd5b50600154610300906001600160a01b031681565b6040516001600160a01b03909116815260200161024b565b34801561032457600080fd5b50600754610241565b34801561033957600080fd5b506102296103483660046119ce565b610881565b34801561035957600080fd5b506102b0610368366004611a9b565b610926565b34801561037957600080fd5b50601354601454601554601654601754610394949392919085565b604080519586526020860194909452928401919091526060830152608082015260a00161024b565b3480156103c857600080fd5b50600c546103009061010090046001600160a01b031681565b3480156103ed57600080fd5b506011546012546103fc919082565b6040805192835260208301919091520161024b565b34801561041d57600080fd5b506040516012815260200161024b565b34801561043957600080fd5b506102b0610448366004611a56565b610978565b34801561045957600080fd5b50600f546010546103fc919082565b34801561047457600080fd5b50600254610300906001600160a01b031681565b34801561049457600080fd5b506102296104a3366004611a82565b6109af565b3480156104b457600080fd5b506102296104c3366004611adc565b610a71565b3480156104d457600080fd5b506102b06104e3366004611b15565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561050d57600080fd5b5061022961051c366004611a82565b610ad3565b34801561052d57600080fd5b5061024160085481565b34801561054357600080fd5b50610241610552366004611b15565b6001600160a01b031660009081526003602052604090205490565b34801561057957600080fd5b50610229610b98565b34801561058e57600080fd5b50600d54610300906001600160a01b031681565b3480156105ae57600080fd5b5061024160095481565b3480156105c457600080fd5b50600c546102b09060ff1681565b3480156105de57600080fd5b506000546001600160a01b0316610300565b3480156105fc57600080fd5b50604080518082019091526003815262212a2160e91b6020820152610283565b34801561062857600080fd5b50610241600b5481565b34801561063e57600080fd5b506102b061064d366004611a56565b610c0c565b34801561065e57600080fd5b506102b061066d366004611a56565b610c43565b34801561067e57600080fd5b5061022961068d366004611b32565b610c50565b34801561069e57600080fd5b506102416106ad366004611adc565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156106e457600080fd5b506102296106f3366004611b15565b610ca5565b6000546001600160a01b0316331461072b5760405162461bcd60e51b815260040161072290611b65565b60405180910390fd5b600a6107378284611bb0565b111561079a5760405162461bcd60e51b815260206004820152602c60248201527f42757920466565732073686f756c64206265206c657373207468616e206f722060448201526b32b8bab0b6103a379018981760a11b6064820152608401610722565b600f91909155601055565b60006107b2338484610d8f565b5060015b92915050565b6000546001600160a01b031633146107e65760405162461bcd60e51b815260040161072290611b65565b6103e86007546107f69190611bc3565b81101561087c5760405162461bcd60e51b815260206004820152604860248201527f4d61782057616c6c657420416d6f756e742073686f756c64206265206269676760448201527f6572207468616e206f7220657175616c20746f20302e3125206f6620746f74616064820152676c20737570706c7960c01b608482015260a401610722565b600855565b6000546001600160a01b031633146108ab5760405162461bcd60e51b815260040161072290611b65565b600a6108b78284611bb0565b111561091b5760405162461bcd60e51b815260206004820152602d60248201527f53656c6c20466565732073686f756c64206265206c657373207468616e206f7260448201526c1032b8bab0b6103a379018981760991b6064820152608401610722565b601191909155601255565b6000610933848484610eb3565b6001600160a01b03841660009081526004602090815260408083203380855292529091205461096e918691610969908690611be5565b610d8f565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107b2918590610969908690611bb0565b6000546001600160a01b031633146109d95760405162461bcd60e51b815260040161072290611b65565b6103e86007546109e99190611bc3565b811015610a6c5760405162461bcd60e51b815260206004820152604560248201527f4d61782054786e20416d6f756e742073686f756c64206265206269676765722060448201527f7468616e206f7220657175616c20746f20302e3125206f6620746f74616c20736064820152647570706c7960d81b608482015260a401610722565b600955565b6000546001600160a01b03163314610a9b5760405162461bcd60e51b815260040161072290611b65565b600c8054610100600160a81b0319166101006001600160a01b0394851602179055600d80546001600160a01b03191691909216179055565b6000546001600160a01b03163314610afd5760405162461bcd60e51b815260040161072290611b65565b60c8600754610b0c9190611bc3565b811115610b935760405162461bcd60e51b815260206004820152604960248201527f53776170546f6b656e4174416d6f756e742073686f756c6420626520736d616c60448201527f6c6572207468616e206f7220657175616c20746f20302e3525206f6620746f74606482015268616c20737570706c7960b81b608482015260a401610722565b600a55565b6000546001600160a01b03163314610bc25760405162461bcd60e51b815260040161072290611b65565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107b2918590610969908690611be5565b60006107b2338484610eb3565b6000546001600160a01b03163314610c7a5760405162461bcd60e51b815260040161072290611b65565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ccf5760405162461bcd60e51b815260040161072290611b65565b6001600160a01b038116610d345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610722565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610df15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610722565b6001600160a01b038216610e525760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610722565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f175760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610722565b6001600160a01b038216610f795760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610722565b60008111610fdb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610722565b6001600160a01b03831660009081526003602052604081208054839290611003908490611be5565b90915550506001600160a01b03831660009081526005602052604081205482919060ff1615801561104d57506001600160a01b03841660009081526005602052604090205460ff16155b15611056575060015b6002546001600160a01b0385811691161480156110855750600c546001600160a01b0386811661010090920416145b1561109c5742600b55600c805460ff191660011790555b80156112e4576002546001600160a01b0386811691161480156110cd57506002546001600160a01b03858116911614155b1561119e57600c5460ff166111245760405162461bcd60e51b815260206004820152601860248201527f546f6b656e2069736e2774206c61756e636865642079657400000000000000006044820152606401610722565b6009548311156111465760405162461bcd60e51b815260040161072290611bf8565b60085483611169866001600160a01b031660009081526003602052604090205490565b6111739190611bb0565b11156111915760405162461bcd60e51b815260040161072290611c41565b61119b8385611367565b91505b6002546001600160a01b0385811691161480156111c957506002546001600160a01b03868116911614155b15611246576009548311156111f05760405162461bcd60e51b815260040161072290611bf8565b6111fa838661143e565b600a5430600090815260036020526040902054919350111580156112215750601a5460ff16155b1561124657601a805460ff1916600117905561123b611475565b601a805460ff191690555b6002546001600160a01b0385811691161480159061127257506002546001600160a01b03868116911614155b156112e4576009548311156112995760405162461bcd60e51b815260040161072290611bf8565b600854836112bc866001600160a01b031660009081526003602052604090205490565b6112c69190611bb0565b11156112e45760405162461bcd60e51b815260040161072290611c41565b6001600160a01b0384166000908152600360205260408120805484929061130c908490611bb0565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161135891815260200190565b60405180910390a35050505050565b6000806064600f600001548561137d9190611c8d565b6113879190611bc3565b905060006064600f600101548661139e9190611c8d565b6113a89190611bc3565b90506113b48183611bb0565b30600090815260036020526040812080549091906113d3908490611bb0565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61140f8585611bb0565b60405190815260200160405180910390a38061142b8387611be5565b6114359190611be5565b95945050505050565b6000806064601160000154856114549190611c8d565b61145e9190611bc3565b9050600060646011600101548661139e9190611c8d565b600a54601154601254600f54601054600093929161149291611bb0565b61149c9190611bb0565b6114a69190611bb0565b601154600f546114b69190611bb0565b6114c09084611c8d565b6114ca9190611bc3565b601154601254600f546010549394506000936114e69190611bb0565b6114f09190611bb0565b6114fa9190611bb0565b60125460105461150a9190611bb0565b6115149085611c8d565b61151e9190611bc3565b905081601360000160008282546115359190611bb0565b90915550506014805482919060009061154f908490611bb0565b90915550600090506115618284611bb0565b9050600061157084600261164f565b905080601360020160008282546115879190611bb0565b90915550600090506115998683611698565b9050476115a5826116da565b60006115b14783611698565b905060006115c9866115c3848b611834565b9061164f565b905080601360030160008282546115e09190611bb0565b909155506115f0905085826118b6565b47601360040160008282546116059190611bb0565b9091555050600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611643573d6000803e3d6000fd5b50505050505050505050565b600061169183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061196f565b9392505050565b600061169183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061199d565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061170f5761170f611ca4565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178c9190611cba565b8160018151811061179f5761179f611ca4565b6001600160a01b0392831660209182029290920101526001546117c59130911684610d8f565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906117fe908590600090869030904290600401611cd7565b600060405180830381600087803b15801561181857600080fd5b505af115801561182c573d6000803e3d6000fd5b505050505050565b600082600003611846575060006107b6565b60006118528385611c8d565b90508261185f8583611bc3565b146116915760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610722565b6001546118ce9030906001600160a01b031684610d8f565b600154600c5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611943573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119689190611d48565b5050505050565b600081836119905760405162461bcd60e51b815260040161072291906119f0565b5060006114358486611bc3565b600081848411156119c15760405162461bcd60e51b815260040161072291906119f0565b5060006114358486611be5565b600080604083850312156119e157600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015611a1d57858101830151858201604001528201611a01565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a5357600080fd5b50565b60008060408385031215611a6957600080fd5b8235611a7481611a3e565b946020939093013593505050565b600060208284031215611a9457600080fd5b5035919050565b600080600060608486031215611ab057600080fd5b8335611abb81611a3e565b92506020840135611acb81611a3e565b929592945050506040919091013590565b60008060408385031215611aef57600080fd5b8235611afa81611a3e565b91506020830135611b0a81611a3e565b809150509250929050565b600060208284031215611b2757600080fd5b813561169181611a3e565b60008060408385031215611b4557600080fd5b8235611b5081611a3e565b915060208301358015158114611b0a57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156107b6576107b6611b9a565b600082611be057634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156107b6576107b6611b9a565b60208082526029908201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546040820152681e1b9cd05b5bdd5b9d60ba1b606082015260800190565b6020808252602c908201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760408201526b30b63632ba20b6b7bab73a1760a11b606082015260800190565b80820281158282048414176107b6576107b6611b9a565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ccc57600080fd5b815161169181611a3e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d275784516001600160a01b031683529383019391830191600101611d02565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611d5d57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212203d57ed15496509be87d7314f7ea7061a6d0501d519237e70198622e775f726cb64736f6c63430008110033
0x6080604052620000126012600a62000509565b62000021906298968062000521565b60075560326007546200003591906200053b565b60085560326007546200004991906200053b565b6009556101f46007546200005e91906200053b565b600a55600e80546001600160a01b0319167330ecffd2075eaa559dc5241bd106286f2488670f1790553480156200009457600080fd5b506040516200234538038062002345833981016040819052620000b7916200055e565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d80546001600160a01b0319166001600160a01b03831617905560075460036000620001223390565b6001600160a01b0316815260208082019290925260409081016000908120939093556002600f81905560036010819055601191909155601255805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cf91906200055e565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024391906200055e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000291573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b791906200055e565b600180546001600160a01b03199081166001600160a01b038681169190911783556002805490921684821617909155600c8054610100600160a81b0319166101003390810291909117909155600081815260056020526040808220805460ff199081168717909155600e5490941682528082208054851686179055308252812080548416851790557f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc805484168517905561dead90527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba805490921690921790559091506001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620003e391815260200190565b60405180910390a350505062000589565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200044b5781600019048211156200042f576200042f620003f4565b808516156200043d57918102915b93841c93908002906200040f565b509250929050565b600082620004645750600162000503565b81620004735750600062000503565b81600181146200048c57600281146200049757620004b7565b600191505062000503565b60ff841115620004ab57620004ab620003f4565b50506001821b62000503565b5060208310610133831016604e8410600b8410161715620004dc575081810a62000503565b620004e883836200040a565b8060001904821115620004ff57620004ff620003f4565b0290505b92915050565b60006200051a60ff84168362000453565b9392505050565b8082028115828204841417620005035762000503620003f4565b6000826200055957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200057157600080fd5b81516001600160a01b03811681146200051a57600080fd5b611dac80620005996000396000f3fe6080604052600436106101fd5760003560e01c80634c69ec931161010d5780638091f3bf116100a0578063a457c2d71161006f578063a457c2d714610632578063a9059cbb14610652578063c024666814610672578063dd62ed3e14610692578063f2fde38b146106d857600080fd5b80638091f3bf146105b85780638da5cb5b146105d257806395d89b41146105f0578063a3aa74871461061c57600080fd5b806370a08231116100dc57806370a0823114610537578063715018a61461056d57806375f0a874146105825780637d1db4a5146105a257600080fd5b80634c69ec93146104a85780635342acb4146104c8578063684521a6146105015780636c0a24eb1461052157600080fd5b806323b872dd11610190578063313ce5671161015f578063313ce56714610411578063395093511461042d578063470624021461044d57806349bd5a5e146104685780634be3fa9b1461048857600080fd5b806323b872dd1461034d5780632479b1771461036d578063264d26dd146103bc5780632b14ca56146103e157600080fd5b80630b006d60116101cc5780630b006d60146102c05780631694505e146102e057806318160ddd146103185780631d7efc041461032d57600080fd5b8063036958a21461020957806303e403b01461022b57806306fdde0314610254578063095ea7b31461029057600080fd5b3661020457005b600080fd5b34801561021557600080fd5b506102296102243660046119ce565b6106f8565b005b34801561023757600080fd5b50610241600a5481565b6040519081526020015b60405180910390f35b34801561026057600080fd5b5060408051808201909152600a815269109a5d08109d58dad95d60b21b60208201525b60405161024b91906119f0565b34801561029c57600080fd5b506102b06102ab366004611a56565b6107a5565b604051901515815260200161024b565b3480156102cc57600080fd5b506102296102db366004611a82565b6107bc565b3480156102ec57600080fd5b50600154610300906001600160a01b031681565b6040516001600160a01b03909116815260200161024b565b34801561032457600080fd5b50600754610241565b34801561033957600080fd5b506102296103483660046119ce565b610881565b34801561035957600080fd5b506102b0610368366004611a9b565b610926565b34801561037957600080fd5b50601354601454601554601654601754610394949392919085565b604080519586526020860194909452928401919091526060830152608082015260a00161024b565b3480156103c857600080fd5b50600c546103009061010090046001600160a01b031681565b3480156103ed57600080fd5b506011546012546103fc919082565b6040805192835260208301919091520161024b565b34801561041d57600080fd5b506040516012815260200161024b565b34801561043957600080fd5b506102b0610448366004611a56565b610978565b34801561045957600080fd5b50600f546010546103fc919082565b34801561047457600080fd5b50600254610300906001600160a01b031681565b34801561049457600080fd5b506102296104a3366004611a82565b6109af565b3480156104b457600080fd5b506102296104c3366004611adc565b610a71565b3480156104d457600080fd5b506102b06104e3366004611b15565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561050d57600080fd5b5061022961051c366004611a82565b610ad3565b34801561052d57600080fd5b5061024160085481565b34801561054357600080fd5b50610241610552366004611b15565b6001600160a01b031660009081526003602052604090205490565b34801561057957600080fd5b50610229610b98565b34801561058e57600080fd5b50600d54610300906001600160a01b031681565b3480156105ae57600080fd5b5061024160095481565b3480156105c457600080fd5b50600c546102b09060ff1681565b3480156105de57600080fd5b506000546001600160a01b0316610300565b3480156105fc57600080fd5b50604080518082019091526003815262212a2160e91b6020820152610283565b34801561062857600080fd5b50610241600b5481565b34801561063e57600080fd5b506102b061064d366004611a56565b610c0c565b34801561065e57600080fd5b506102b061066d366004611a56565b610c43565b34801561067e57600080fd5b5061022961068d366004611b32565b610c50565b34801561069e57600080fd5b506102416106ad366004611adc565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156106e457600080fd5b506102296106f3366004611b15565b610ca5565b6000546001600160a01b0316331461072b5760405162461bcd60e51b815260040161072290611b65565b60405180910390fd5b600a6107378284611bb0565b111561079a5760405162461bcd60e51b815260206004820152602c60248201527f42757920466565732073686f756c64206265206c657373207468616e206f722060448201526b32b8bab0b6103a379018981760a11b6064820152608401610722565b600f91909155601055565b60006107b2338484610d8f565b5060015b92915050565b6000546001600160a01b031633146107e65760405162461bcd60e51b815260040161072290611b65565b6103e86007546107f69190611bc3565b81101561087c5760405162461bcd60e51b815260206004820152604860248201527f4d61782057616c6c657420416d6f756e742073686f756c64206265206269676760448201527f6572207468616e206f7220657175616c20746f20302e3125206f6620746f74616064820152676c20737570706c7960c01b608482015260a401610722565b600855565b6000546001600160a01b031633146108ab5760405162461bcd60e51b815260040161072290611b65565b600a6108b78284611bb0565b111561091b5760405162461bcd60e51b815260206004820152602d60248201527f53656c6c20466565732073686f756c64206265206c657373207468616e206f7260448201526c1032b8bab0b6103a379018981760991b6064820152608401610722565b601191909155601255565b6000610933848484610eb3565b6001600160a01b03841660009081526004602090815260408083203380855292529091205461096e918691610969908690611be5565b610d8f565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107b2918590610969908690611bb0565b6000546001600160a01b031633146109d95760405162461bcd60e51b815260040161072290611b65565b6103e86007546109e99190611bc3565b811015610a6c5760405162461bcd60e51b815260206004820152604560248201527f4d61782054786e20416d6f756e742073686f756c64206265206269676765722060448201527f7468616e206f7220657175616c20746f20302e3125206f6620746f74616c20736064820152647570706c7960d81b608482015260a401610722565b600955565b6000546001600160a01b03163314610a9b5760405162461bcd60e51b815260040161072290611b65565b600c8054610100600160a81b0319166101006001600160a01b0394851602179055600d80546001600160a01b03191691909216179055565b6000546001600160a01b03163314610afd5760405162461bcd60e51b815260040161072290611b65565b60c8600754610b0c9190611bc3565b811115610b935760405162461bcd60e51b815260206004820152604960248201527f53776170546f6b656e4174416d6f756e742073686f756c6420626520736d616c60448201527f6c6572207468616e206f7220657175616c20746f20302e3525206f6620746f74606482015268616c20737570706c7960b81b608482015260a401610722565b600a55565b6000546001600160a01b03163314610bc25760405162461bcd60e51b815260040161072290611b65565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107b2918590610969908690611be5565b60006107b2338484610eb3565b6000546001600160a01b03163314610c7a5760405162461bcd60e51b815260040161072290611b65565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ccf5760405162461bcd60e51b815260040161072290611b65565b6001600160a01b038116610d345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610722565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610df15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610722565b6001600160a01b038216610e525760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610722565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f175760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610722565b6001600160a01b038216610f795760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610722565b60008111610fdb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610722565b6001600160a01b03831660009081526003602052604081208054839290611003908490611be5565b90915550506001600160a01b03831660009081526005602052604081205482919060ff1615801561104d57506001600160a01b03841660009081526005602052604090205460ff16155b15611056575060015b6002546001600160a01b0385811691161480156110855750600c546001600160a01b0386811661010090920416145b1561109c5742600b55600c805460ff191660011790555b80156112e4576002546001600160a01b0386811691161480156110cd57506002546001600160a01b03858116911614155b1561119e57600c5460ff166111245760405162461bcd60e51b815260206004820152601860248201527f546f6b656e2069736e2774206c61756e636865642079657400000000000000006044820152606401610722565b6009548311156111465760405162461bcd60e51b815260040161072290611bf8565b60085483611169866001600160a01b031660009081526003602052604090205490565b6111739190611bb0565b11156111915760405162461bcd60e51b815260040161072290611c41565b61119b8385611367565b91505b6002546001600160a01b0385811691161480156111c957506002546001600160a01b03868116911614155b15611246576009548311156111f05760405162461bcd60e51b815260040161072290611bf8565b6111fa838661143e565b600a5430600090815260036020526040902054919350111580156112215750601a5460ff16155b1561124657601a805460ff1916600117905561123b611475565b601a805460ff191690555b6002546001600160a01b0385811691161480159061127257506002546001600160a01b03868116911614155b156112e4576009548311156112995760405162461bcd60e51b815260040161072290611bf8565b600854836112bc866001600160a01b031660009081526003602052604090205490565b6112c69190611bb0565b11156112e45760405162461bcd60e51b815260040161072290611c41565b6001600160a01b0384166000908152600360205260408120805484929061130c908490611bb0565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161135891815260200190565b60405180910390a35050505050565b6000806064600f600001548561137d9190611c8d565b6113879190611bc3565b905060006064600f600101548661139e9190611c8d565b6113a89190611bc3565b90506113b48183611bb0565b30600090815260036020526040812080549091906113d3908490611bb0565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61140f8585611bb0565b60405190815260200160405180910390a38061142b8387611be5565b6114359190611be5565b95945050505050565b6000806064601160000154856114549190611c8d565b61145e9190611bc3565b9050600060646011600101548661139e9190611c8d565b600a54601154601254600f54601054600093929161149291611bb0565b61149c9190611bb0565b6114a69190611bb0565b601154600f546114b69190611bb0565b6114c09084611c8d565b6114ca9190611bc3565b601154601254600f546010549394506000936114e69190611bb0565b6114f09190611bb0565b6114fa9190611bb0565b60125460105461150a9190611bb0565b6115149085611c8d565b61151e9190611bc3565b905081601360000160008282546115359190611bb0565b90915550506014805482919060009061154f908490611bb0565b90915550600090506115618284611bb0565b9050600061157084600261164f565b905080601360020160008282546115879190611bb0565b90915550600090506115998683611698565b9050476115a5826116da565b60006115b14783611698565b905060006115c9866115c3848b611834565b9061164f565b905080601360030160008282546115e09190611bb0565b909155506115f0905085826118b6565b47601360040160008282546116059190611bb0565b9091555050600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611643573d6000803e3d6000fd5b50505050505050505050565b600061169183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061196f565b9392505050565b600061169183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061199d565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061170f5761170f611ca4565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178c9190611cba565b8160018151811061179f5761179f611ca4565b6001600160a01b0392831660209182029290920101526001546117c59130911684610d8f565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906117fe908590600090869030904290600401611cd7565b600060405180830381600087803b15801561181857600080fd5b505af115801561182c573d6000803e3d6000fd5b505050505050565b600082600003611846575060006107b6565b60006118528385611c8d565b90508261185f8583611bc3565b146116915760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610722565b6001546118ce9030906001600160a01b031684610d8f565b600154600c5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611943573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119689190611d48565b5050505050565b600081836119905760405162461bcd60e51b815260040161072291906119f0565b5060006114358486611bc3565b600081848411156119c15760405162461bcd60e51b815260040161072291906119f0565b5060006114358486611be5565b600080604083850312156119e157600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015611a1d57858101830151858201604001528201611a01565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a5357600080fd5b50565b60008060408385031215611a6957600080fd5b8235611a7481611a3e565b946020939093013593505050565b600060208284031215611a9457600080fd5b5035919050565b600080600060608486031215611ab057600080fd5b8335611abb81611a3e565b92506020840135611acb81611a3e565b929592945050506040919091013590565b60008060408385031215611aef57600080fd5b8235611afa81611a3e565b91506020830135611b0a81611a3e565b809150509250929050565b600060208284031215611b2757600080fd5b813561169181611a3e565b60008060408385031215611b4557600080fd5b8235611b5081611a3e565b915060208301358015158114611b0a57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156107b6576107b6611b9a565b600082611be057634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156107b6576107b6611b9a565b60208082526029908201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546040820152681e1b9cd05b5bdd5b9d60ba1b606082015260800190565b6020808252602c908201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760408201526b30b63632ba20b6b7bab73a1760a11b606082015260800190565b80820281158282048414176107b6576107b6611b9a565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ccc57600080fd5b815161169181611a3e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d275784516001600160a01b031683529383019391830191600101611d02565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611d5d57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212203d57ed15496509be87d7314f7ea7061a6d0501d519237e70198622e775f726cb64736f6c63430008110033000000000000000000000000d5f487b834815e2b6ac26773322beabfc4f1e4bf