0x6080604052600436106101b2575f3560e01c8063722b62ad116100e7578063a9059cbb11610087578063c9567bf911610062578063c9567bf9146104c9578063d34628cc146104dd578063dd62ed3e146104fc578063ec1f3f6314610540575f80fd5b8063a9059cbb1461047c578063bf474bed1461049b578063c876d0b9146104b0575f80fd5b80638a8c523c116100c25780638a8c523c146104095780638da5cb5b1461041d5780638f9a55c01461043957806395d89b411461044e575f80fd5b8063722b62ad146103c7578063751039fc146103e05780637d1db4a5146103f4575f80fd5b8063313ce567116101525780634ada218b1161012d5780634ada218b1461035257806351bc3c851461036b57806370a082311461037f578063715018a6146103b3575f80fd5b8063313ce567146102db57806331c2d847146102fc5780633bbac5791461031b575f80fd5b80631150f4641161018d5780631150f4641461025657806318160ddd146102775780631abfa6291461028b57806323b872dd146102bc575f80fd5b806306fdde03146101bd578063095ea7b3146102045780630faee56f14610233575f80fd5b366101b957005b5f80fd5b3480156101c8575f80fd5b5060408051808201909152600d81526c444a204372617a792046726f6760981b60208201525b6040516101fb9190611a75565b60405180910390f35b34801561020f575f80fd5b5061022361021e366004611ae8565b61055f565b60405190151581526020016101fb565b34801561023e575f80fd5b5061024860125481565b6040519081526020016101fb565b348015610261575f80fd5b50610275610270366004611b12565b610575565b005b348015610282575f80fd5b50610248610689565b348015610296575f80fd5b506015546001600160a01b03165b6040516001600160a01b0390911681526020016101fb565b3480156102c7575f80fd5b506102236102d6366004611b29565b6106a8565b3480156102e6575f80fd5b5060095b60405160ff90911681526020016101fb565b348015610307575f80fd5b50610275610316366004611b7b565b61079a565b348015610326575f80fd5b50610223610335366004611c3b565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561035d575f80fd5b506014546102239060ff1681565b348015610376575f80fd5b50610275610821565b34801561038a575f80fd5b50610248610399366004611c3b565b6001600160a01b03165f9081526001602052604090205490565b3480156103be575f80fd5b50610275610873565b3480156103d2575f80fd5b506017546102ea9060ff1681565b3480156103eb575f80fd5b506102756108e4565b3480156103ff575f80fd5b50610248600f5481565b348015610414575f80fd5b5061027561099c565b348015610428575f80fd5b505f546001600160a01b03166102a4565b348015610444575f80fd5b5061024860105481565b348015610459575f80fd5b50604080518082019091526006815265444a46524f4760d01b60208201526101ee565b348015610487575f80fd5b50610223610496366004611ae8565b6109fc565b3480156104a6575f80fd5b5061024860115481565b3480156104bb575f80fd5b506006546102239060ff1681565b3480156104d4575f80fd5b50610275610a93565b3480156104e8575f80fd5b506102756104f7366004611b7b565b610e6d565b348015610507575f80fd5b50610248610516366004611c56565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561054b575f80fd5b5061027561055a366004611b12565b610ef1565b5f61056b338484610f3b565b5060015b92915050565b5f546001600160a01b031633146105a75760405162461bcd60e51b815260040161059e90611c8d565b60405180910390fd5b601554600160a01b900460ff16156106275760405162461bcd60e51b815260206004820152603b60248201527f4c69717569646974792070657263656e746167652063616e206f6e6c7920626560448201527f20736574206265666f72652074726164696e67206973206f70656e0000000000606482015260840161059e565b60648111156106845760405162461bcd60e51b8152602060048201526024808201527f50657263656e74616765206d757374206265206265747765656e203020616e646044820152630203130360e41b606482015260840161059e565b601355565b5f6106966009600a611db6565b6106a390620f4240611dc4565b905090565b6014545f9060ff16806106c457505f546001600160a01b031633145b806106de575060145461010090046001600160a01b031633145b806106e857503330145b6107345760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604482015260640161059e565b61073f84848461105e565b610790843361078b85604051806060016040528060288152602001611f23602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906116ca565b610f3b565b5060019392505050565b5f546001600160a01b031633146107c35760405162461bcd60e51b815260040161059e90611c8d565b5f5b815181101561081d575f60045f8484815181106107e4576107e4611ddb565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016107c5565b5050565b60065461010090046001600160a01b0316336001600160a01b031614610845575f80fd5b305f9081526001602052604090205480156108635761086381611702565b47801561081d5761081d81611895565b5f546001600160a01b0316331461089c5760405162461bcd60e51b815260040161059e90611c8d565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461090d5760405162461bcd60e51b815260040161059e90611c8d565b6109196009600a611db6565b61092690620f4240611dc4565b600f556109356009600a611db6565b61094290620f4240611dc4565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61097c6009600a611db6565b61098990620f4240611dc4565b60405190815260200160405180910390a1565b5f546001600160a01b031633146109c55760405162461bcd60e51b815260040161059e90611c8d565b6014805460ff191660011790556040517f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c7905f90a1565b6014545f9060ff1680610a1857505f546001600160a01b031633145b80610a32575060145461010090046001600160a01b031633145b80610a3c57503330145b610a885760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604482015260640161059e565b61056b33848461105e565b5f546001600160a01b03163314610abc5760405162461bcd60e51b815260040161059e90611c8d565b601554600160a01b900460ff1615610b165760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161059e565b60148054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d001790819055610b6e9030906001600160a01b0361010090910416610b616009600a611db6565b61078b90620f4240611dc4565b601460019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bbf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be39190611def565b6001600160a01b031663c9c6539630601460019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c679190611def565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610cb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd59190611def565b601580546001600160a01b0319166001600160a01b0392909216919091179055601354305f908152600160205260408120549091610d2091606491610d1a91906118d0565b90611955565b6014549091506001600160a01b036101009091041663f305d7194730845f80610d505f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610db6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ddb9190611e0a565b50506015805462ff00ff60a01b198116600160b01b1790915560145460405163095ea7b360e01b81526001600160a01b03610100909204821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610e49573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081d9190611e35565b5f546001600160a01b03163314610e965760405162461bcd60e51b815260040161059e90611c8d565b5f5b815181101561081d57600160045f848481518110610eb857610eb8611ddb565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610e98565b60065461010090046001600160a01b0316336001600160a01b031614610f15575f80fd5b6009548111158015610f295750600a548111155b610f31575f80fd5b6009819055600a55565b6001600160a01b038316610f9d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059e565b6001600160a01b038216610ffe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059e565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110c25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059e565b6001600160a01b0382166111245760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059e565b5f81116111855760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161059e565b5f80546001600160a01b038581169116148015906111b057505f546001600160a01b03848116911614155b1561158d576001600160a01b0384165f9081526004602052604090205460ff161580156111f557506001600160a01b0383165f9081526004602052604090205460ff16155b6111fd575f80fd5b6112236064610d1a600b54600e54116112185760075461121c565b6009545b85906118d0565b60065490915060ff161561130e576014546001600160a01b03848116610100909204161480159061126257506015546001600160a01b03848116911614155b1561130e57325f9081526005602052604090205443116112fc5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161059e565b325f9081526005602052604090204390555b6015546001600160a01b03858116911614801561133e57506014546001600160a01b038481166101009092041614155b801561136257506001600160a01b0383165f9081526003602052604090205460ff16155b1561144857600f548211156113b95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161059e565b601054826113db856001600160a01b03165f9081526001602052604090205490565b6113e59190611e54565b11156114335760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161059e565b600e8054905f61144283611e67565b91905055505b6015546001600160a01b03848116911614801561146e57506001600160a01b0384163014155b1561149b576114986064610d1a600c54600e541161148e5760085461121c565b600a5485906118d0565b90505b305f90815260016020526040902054601554600160a81b900460ff161580156114d157506015546001600160a01b038581169116145b80156114e65750601554600160b01b900460ff165b80156114f3575060115481115b80156115025750600d54600e54115b1561158b5760185443116115585760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161059e565b6115756115708461156b84601254611996565b611996565b611702565b4780156115855761158547611895565b50436018555b505b801561160557305f908152600160205260409020546115ac90826119aa565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115fc9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546116279083611a08565b6001600160a01b0385165f9081526001602052604090205561166a61164c8383611a08565b6001600160a01b0385165f90815260016020526040902054906119aa565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116b38585611a08565b60405190815260200160405180910390a350505050565b5f81848411156116ed5760405162461bcd60e51b815260040161059e9190611a75565b505f6116f98486611e7f565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061174857611748611ddb565b60200260200101906001600160a01b031690816001600160a01b031681525050601460019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117dd9190611def565b816001815181106117f0576117f0611ddb565b6001600160a01b03928316602091820292909201015260145461181b91309161010090041684610f3b565b60145460405163791ac94760e01b81526101009091046001600160a01b03169063791ac947906118579085905f90869030904290600401611e92565b5f604051808303815f87803b15801561186e575f80fd5b505af1158015611880573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f1935050505015801561081d573d5f803e3d5ffd5b5f825f036118df57505f61056f565b5f6118ea8385611dc4565b9050826118f78583611f03565b1461194e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161059e565b9392505050565b5f61194e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a49565b5f8183116119a4578261194e565b50919050565b5f806119b68385611e54565b90508381101561194e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161059e565b5f61194e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116ca565b5f8183611a695760405162461bcd60e51b815260040161059e9190611a75565b505f6116f98486611f03565b5f602080835283518060208501525f5b81811015611aa157858101830151858201604001528201611a85565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611ad5575f80fd5b50565b8035611ae381611ac1565b919050565b5f8060408385031215611af9575f80fd5b8235611b0481611ac1565b946020939093013593505050565b5f60208284031215611b22575f80fd5b5035919050565b5f805f60608486031215611b3b575f80fd5b8335611b4681611ac1565b92506020840135611b5681611ac1565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611b8c575f80fd5b823567ffffffffffffffff80821115611ba3575f80fd5b818501915085601f830112611bb6575f80fd5b813581811115611bc857611bc8611b67565b8060051b604051601f19603f83011681018181108582111715611bed57611bed611b67565b604052918252848201925083810185019188831115611c0a575f80fd5b938501935b82851015611c2f57611c2085611ad8565b84529385019392850192611c0f565b98975050505050505050565b5f60208284031215611c4b575f80fd5b813561194e81611ac1565b5f8060408385031215611c67575f80fd5b8235611c7281611ac1565b91506020830135611c8281611ac1565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d1057815f1904821115611cf657611cf6611cc2565b80851615611d0357918102915b93841c9390800290611cdb565b509250929050565b5f82611d265750600161056f565b81611d3257505f61056f565b8160018114611d485760028114611d5257611d6e565b600191505061056f565b60ff841115611d6357611d63611cc2565b50506001821b61056f565b5060208310610133831016604e8410600b8410161715611d91575081810a61056f565b611d9b8383611cd6565b805f1904821115611dae57611dae611cc2565b029392505050565b5f61194e60ff841683611d18565b808202811582820484141761056f5761056f611cc2565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611dff575f80fd5b815161194e81611ac1565b5f805f60608486031215611e1c575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611e45575f80fd5b8151801515811461194e575f80fd5b8082018082111561056f5761056f611cc2565b5f60018201611e7857611e78611cc2565b5060010190565b8181038181111561056f5761056f611cc2565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611ee25784516001600160a01b031683529383019391830191600101611ebd565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611f1d57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220dae9e0e3f71c1f3e46ae55d1d6ab1aaa33fd8ce28ec9bfd592e0ed552975247164736f6c63430008160033
0x60806040526006805460ff1916600117905560196007818155600891825560046009818155600a918255600b92909255600c839055600d929092555f600e55620000499162000359565b6200005790614e2062000370565b600f55620000686009600a62000359565b6200007690614e2062000370565b601055620000876009600a62000359565b620000959061266662000370565b601155620000a66009600a62000359565b620000b49061266662000370565b6012556014805460ff199081169091556015805461ffff60a81b19169055601780549091166001179055348015620000ea575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b0319166101003302179055620001506009600a62000359565b6200015f90620f424062000370565b335f908152600160208190526040822092909255600390620001885f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001eb3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002246009600a62000359565b6200023390620f424062000370565b60405190815260200160405180910390a36200038a565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029e57815f19048211156200028257620002826200024a565b808516156200029057918102915b93841c939080029062000263565b509250929050565b5f82620002b65750600162000353565b81620002c457505f62000353565b8160018114620002dd5760028114620002e85762000308565b600191505062000353565b60ff841115620002fc57620002fc6200024a565b50506001821b62000353565b5060208310610133831016604e8410600b84101617156200032d575081810a62000353565b6200033983836200025e565b805f19048211156200034f576200034f6200024a565b0290505b92915050565b5f6200036960ff841683620002a6565b9392505050565b80820281158282048414176200035357620003536200024a565b611f8080620003985f395ff3fe6080604052600436106101b2575f3560e01c8063722b62ad116100e7578063a9059cbb11610087578063c9567bf911610062578063c9567bf9146104c9578063d34628cc146104dd578063dd62ed3e146104fc578063ec1f3f6314610540575f80fd5b8063a9059cbb1461047c578063bf474bed1461049b578063c876d0b9146104b0575f80fd5b80638a8c523c116100c25780638a8c523c146104095780638da5cb5b1461041d5780638f9a55c01461043957806395d89b411461044e575f80fd5b8063722b62ad146103c7578063751039fc146103e05780637d1db4a5146103f4575f80fd5b8063313ce567116101525780634ada218b1161012d5780634ada218b1461035257806351bc3c851461036b57806370a082311461037f578063715018a6146103b3575f80fd5b8063313ce567146102db57806331c2d847146102fc5780633bbac5791461031b575f80fd5b80631150f4641161018d5780631150f4641461025657806318160ddd146102775780631abfa6291461028b57806323b872dd146102bc575f80fd5b806306fdde03146101bd578063095ea7b3146102045780630faee56f14610233575f80fd5b366101b957005b5f80fd5b3480156101c8575f80fd5b5060408051808201909152600d81526c444a204372617a792046726f6760981b60208201525b6040516101fb9190611a75565b60405180910390f35b34801561020f575f80fd5b5061022361021e366004611ae8565b61055f565b60405190151581526020016101fb565b34801561023e575f80fd5b5061024860125481565b6040519081526020016101fb565b348015610261575f80fd5b50610275610270366004611b12565b610575565b005b348015610282575f80fd5b50610248610689565b348015610296575f80fd5b506015546001600160a01b03165b6040516001600160a01b0390911681526020016101fb565b3480156102c7575f80fd5b506102236102d6366004611b29565b6106a8565b3480156102e6575f80fd5b5060095b60405160ff90911681526020016101fb565b348015610307575f80fd5b50610275610316366004611b7b565b61079a565b348015610326575f80fd5b50610223610335366004611c3b565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561035d575f80fd5b506014546102239060ff1681565b348015610376575f80fd5b50610275610821565b34801561038a575f80fd5b50610248610399366004611c3b565b6001600160a01b03165f9081526001602052604090205490565b3480156103be575f80fd5b50610275610873565b3480156103d2575f80fd5b506017546102ea9060ff1681565b3480156103eb575f80fd5b506102756108e4565b3480156103ff575f80fd5b50610248600f5481565b348015610414575f80fd5b5061027561099c565b348015610428575f80fd5b505f546001600160a01b03166102a4565b348015610444575f80fd5b5061024860105481565b348015610459575f80fd5b50604080518082019091526006815265444a46524f4760d01b60208201526101ee565b348015610487575f80fd5b50610223610496366004611ae8565b6109fc565b3480156104a6575f80fd5b5061024860115481565b3480156104bb575f80fd5b506006546102239060ff1681565b3480156104d4575f80fd5b50610275610a93565b3480156104e8575f80fd5b506102756104f7366004611b7b565b610e6d565b348015610507575f80fd5b50610248610516366004611c56565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561054b575f80fd5b5061027561055a366004611b12565b610ef1565b5f61056b338484610f3b565b5060015b92915050565b5f546001600160a01b031633146105a75760405162461bcd60e51b815260040161059e90611c8d565b60405180910390fd5b601554600160a01b900460ff16156106275760405162461bcd60e51b815260206004820152603b60248201527f4c69717569646974792070657263656e746167652063616e206f6e6c7920626560448201527f20736574206265666f72652074726164696e67206973206f70656e0000000000606482015260840161059e565b60648111156106845760405162461bcd60e51b8152602060048201526024808201527f50657263656e74616765206d757374206265206265747765656e203020616e646044820152630203130360e41b606482015260840161059e565b601355565b5f6106966009600a611db6565b6106a390620f4240611dc4565b905090565b6014545f9060ff16806106c457505f546001600160a01b031633145b806106de575060145461010090046001600160a01b031633145b806106e857503330145b6107345760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604482015260640161059e565b61073f84848461105e565b610790843361078b85604051806060016040528060288152602001611f23602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906116ca565b610f3b565b5060019392505050565b5f546001600160a01b031633146107c35760405162461bcd60e51b815260040161059e90611c8d565b5f5b815181101561081d575f60045f8484815181106107e4576107e4611ddb565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016107c5565b5050565b60065461010090046001600160a01b0316336001600160a01b031614610845575f80fd5b305f9081526001602052604090205480156108635761086381611702565b47801561081d5761081d81611895565b5f546001600160a01b0316331461089c5760405162461bcd60e51b815260040161059e90611c8d565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461090d5760405162461bcd60e51b815260040161059e90611c8d565b6109196009600a611db6565b61092690620f4240611dc4565b600f556109356009600a611db6565b61094290620f4240611dc4565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61097c6009600a611db6565b61098990620f4240611dc4565b60405190815260200160405180910390a1565b5f546001600160a01b031633146109c55760405162461bcd60e51b815260040161059e90611c8d565b6014805460ff191660011790556040517f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c7905f90a1565b6014545f9060ff1680610a1857505f546001600160a01b031633145b80610a32575060145461010090046001600160a01b031633145b80610a3c57503330145b610a885760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604482015260640161059e565b61056b33848461105e565b5f546001600160a01b03163314610abc5760405162461bcd60e51b815260040161059e90611c8d565b601554600160a01b900460ff1615610b165760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161059e565b60148054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d001790819055610b6e9030906001600160a01b0361010090910416610b616009600a611db6565b61078b90620f4240611dc4565b601460019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bbf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be39190611def565b6001600160a01b031663c9c6539630601460019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c679190611def565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610cb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd59190611def565b601580546001600160a01b0319166001600160a01b0392909216919091179055601354305f908152600160205260408120549091610d2091606491610d1a91906118d0565b90611955565b6014549091506001600160a01b036101009091041663f305d7194730845f80610d505f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610db6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ddb9190611e0a565b50506015805462ff00ff60a01b198116600160b01b1790915560145460405163095ea7b360e01b81526001600160a01b03610100909204821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610e49573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081d9190611e35565b5f546001600160a01b03163314610e965760405162461bcd60e51b815260040161059e90611c8d565b5f5b815181101561081d57600160045f848481518110610eb857610eb8611ddb565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610e98565b60065461010090046001600160a01b0316336001600160a01b031614610f15575f80fd5b6009548111158015610f295750600a548111155b610f31575f80fd5b6009819055600a55565b6001600160a01b038316610f9d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059e565b6001600160a01b038216610ffe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059e565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110c25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059e565b6001600160a01b0382166111245760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059e565b5f81116111855760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161059e565b5f80546001600160a01b038581169116148015906111b057505f546001600160a01b03848116911614155b1561158d576001600160a01b0384165f9081526004602052604090205460ff161580156111f557506001600160a01b0383165f9081526004602052604090205460ff16155b6111fd575f80fd5b6112236064610d1a600b54600e54116112185760075461121c565b6009545b85906118d0565b60065490915060ff161561130e576014546001600160a01b03848116610100909204161480159061126257506015546001600160a01b03848116911614155b1561130e57325f9081526005602052604090205443116112fc5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161059e565b325f9081526005602052604090204390555b6015546001600160a01b03858116911614801561133e57506014546001600160a01b038481166101009092041614155b801561136257506001600160a01b0383165f9081526003602052604090205460ff16155b1561144857600f548211156113b95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161059e565b601054826113db856001600160a01b03165f9081526001602052604090205490565b6113e59190611e54565b11156114335760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161059e565b600e8054905f61144283611e67565b91905055505b6015546001600160a01b03848116911614801561146e57506001600160a01b0384163014155b1561149b576114986064610d1a600c54600e541161148e5760085461121c565b600a5485906118d0565b90505b305f90815260016020526040902054601554600160a81b900460ff161580156114d157506015546001600160a01b038581169116145b80156114e65750601554600160b01b900460ff165b80156114f3575060115481115b80156115025750600d54600e54115b1561158b5760185443116115585760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161059e565b6115756115708461156b84601254611996565b611996565b611702565b4780156115855761158547611895565b50436018555b505b801561160557305f908152600160205260409020546115ac90826119aa565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115fc9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546116279083611a08565b6001600160a01b0385165f9081526001602052604090205561166a61164c8383611a08565b6001600160a01b0385165f90815260016020526040902054906119aa565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116b38585611a08565b60405190815260200160405180910390a350505050565b5f81848411156116ed5760405162461bcd60e51b815260040161059e9190611a75565b505f6116f98486611e7f565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061174857611748611ddb565b60200260200101906001600160a01b031690816001600160a01b031681525050601460019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117dd9190611def565b816001815181106117f0576117f0611ddb565b6001600160a01b03928316602091820292909201015260145461181b91309161010090041684610f3b565b60145460405163791ac94760e01b81526101009091046001600160a01b03169063791ac947906118579085905f90869030904290600401611e92565b5f604051808303815f87803b15801561186e575f80fd5b505af1158015611880573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f1935050505015801561081d573d5f803e3d5ffd5b5f825f036118df57505f61056f565b5f6118ea8385611dc4565b9050826118f78583611f03565b1461194e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161059e565b9392505050565b5f61194e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a49565b5f8183116119a4578261194e565b50919050565b5f806119b68385611e54565b90508381101561194e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161059e565b5f61194e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116ca565b5f8183611a695760405162461bcd60e51b815260040161059e9190611a75565b505f6116f98486611f03565b5f602080835283518060208501525f5b81811015611aa157858101830151858201604001528201611a85565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611ad5575f80fd5b50565b8035611ae381611ac1565b919050565b5f8060408385031215611af9575f80fd5b8235611b0481611ac1565b946020939093013593505050565b5f60208284031215611b22575f80fd5b5035919050565b5f805f60608486031215611b3b575f80fd5b8335611b4681611ac1565b92506020840135611b5681611ac1565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611b8c575f80fd5b823567ffffffffffffffff80821115611ba3575f80fd5b818501915085601f830112611bb6575f80fd5b813581811115611bc857611bc8611b67565b8060051b604051601f19603f83011681018181108582111715611bed57611bed611b67565b604052918252848201925083810185019188831115611c0a575f80fd5b938501935b82851015611c2f57611c2085611ad8565b84529385019392850192611c0f565b98975050505050505050565b5f60208284031215611c4b575f80fd5b813561194e81611ac1565b5f8060408385031215611c67575f80fd5b8235611c7281611ac1565b91506020830135611c8281611ac1565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d1057815f1904821115611cf657611cf6611cc2565b80851615611d0357918102915b93841c9390800290611cdb565b509250929050565b5f82611d265750600161056f565b81611d3257505f61056f565b8160018114611d485760028114611d5257611d6e565b600191505061056f565b60ff841115611d6357611d63611cc2565b50506001821b61056f565b5060208310610133831016604e8410600b8410161715611d91575081810a61056f565b611d9b8383611cd6565b805f1904821115611dae57611dae611cc2565b029392505050565b5f61194e60ff841683611d18565b808202811582820484141761056f5761056f611cc2565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611dff575f80fd5b815161194e81611ac1565b5f805f60608486031215611e1c575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611e45575f80fd5b8151801515811461194e575f80fd5b8082018082111561056f5761056f611cc2565b5f60018201611e7857611e78611cc2565b5060010190565b8181038181111561056f5761056f611cc2565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611ee25784516001600160a01b031683529383019391830191600101611ebd565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611f1d57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220dae9e0e3f71c1f3e46ae55d1d6ab1aaa33fd8ce28ec9bfd592e0ed552975247164736f6c63430008160033