0x60806040526004361061011e575f3560e01c806370a082311161009d57806395d89b411161006257806395d89b411461030c578063a9059cbb14610339578063bf474bed14610358578063c9567bf91461036d578063dd62ed3e14610381575f5ffd5b806370a0823114610274578063715018a6146102a85780637d1db4a5146102bc5780638da5cb5b146102d15780638f9a55c0146102f7575f5ffd5b80631ad34a4f116100e35780631ad34a4f146101f357806323b872dd14610212578063313ce5671461023157806351bc3c851461024c5780636225658914610260575f5ffd5b806306fdde0314610129578063095ea7b3146101775780630faee56f146101a6578063109daa99146101c957806318160ddd146101df575f5ffd5b3661012557005b5f5ffd5b348015610134575f5ffd5b506040805180820190915260148152734672656e63682042756c6c646f67204d6f63686960601b60208201525b60405161016e9190611851565b60405180910390f35b348015610182575f5ffd5b5061019661019136600461189d565b6103c5565b604051901515815260200161016e565b3480156101b1575f5ffd5b506101bb60115481565b60405190815260200161016e565b3480156101d4575f5ffd5b506101dd6103db565b005b3480156101ea575f5ffd5b506101bb610413565b3480156101fe575f5ffd5b506101dd61020d3660046118c7565b610434565b34801561021d575f5ffd5b5061019661022c3660046118de565b610489565b34801561023c575f5ffd5b506040516009815260200161016e565b348015610257575f5ffd5b506101dd6104f0565b34801561026b575f5ffd5b506101dd610577565b34801561027f575f5ffd5b506101bb61028e36600461191c565b6001600160a01b03165f9081526001602052604090205490565b3480156102b3575f5ffd5b506101dd61062b565b3480156102c7575f5ffd5b506101bb600e5481565b3480156102dc575f5ffd5b505f546040516001600160a01b03909116815260200161016e565b348015610302575f5ffd5b506101bb600f5481565b348015610317575f5ffd5b506040805180820190915260058152644d4f43484960d81b6020820152610161565b348015610344575f5ffd5b5061019661035336600461189d565b61069c565b348015610363575f5ffd5b506101bb60105481565b348015610378575f5ffd5b506101dd6106a8565b34801561038c575f5ffd5b506101bb61039b366004611937565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103d1338484610d6a565b5060015b92915050565b5f546001600160a01b0316331461040d5760405162461bcd60e51b81526004016104049061196e565b60405180910390fd5b5f600c55565b5f6104206009600a611a9a565b61042f90640211d1ae38611aa8565b905090565b60045461010090046001600160a01b0316336001600160a01b0316148061046e57506014546001600160a01b0316336001600160a01b0316145b610476575f5ffd5b60168190554761048581610e8d565b5050565b5f610495848484610ec8565b6104e684336104e185604051806060016040528060288152602001611c06602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061147b565b610d6a565b5060019392505050565b6014805460ff60a81b1916600160a81b1790556016546018556004546001600160a01b03610100909104166105223390565b6001600160a01b031614610534575f5ffd5b305f90815260016020526040902054801561055257610552816114b3565b4780156105625761056281610e8d565b50505f6018556014805460ff60a81b19169055565b5f546001600160a01b031633146105a05760405162461bcd60e51b81526004016104049061196e565b6105ac6009600a611a9a565b6105bb90640211d1ae38611aa8565b600e556105ca6009600a611a9a565b6105d990640211d1ae38611aa8565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106096009600a611a9a565b61061890640211d1ae38611aa8565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106545760405162461bcd60e51b81526004016104049061196e565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6103d1338484610ec8565b5f546001600160a01b031633146106d15760405162461bcd60e51b81526004016104049061196e565b601454600160a01b900460ff161561072b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610404565b601280546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d9081179092556014805490911673e7d9e9926bf78d60a8f6d32096541d40d4c2f7e61790556040805163c45a015560e01b815290515f929163c45a01559160048083019260209291908290030181865afa1580156107b0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d49190611abf565b6001600160a01b031663e6a4390560125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610832573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108569190611abf565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa15801561089e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c29190611abf565b6001600160a01b031603610a585760125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610920573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109449190611abf565b6001600160a01b031663c9c6539660125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c69190611abf565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af1158015610a0f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a339190611abf565b601380546001600160a01b0319166001600160a01b0392909216919091179055610bdb565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610acc9190611abf565b6001600160a01b031663e6a4390560125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4e9190611abf565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610b96573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bba9190611abf565b601380546001600160a01b0319166001600160a01b03929092169190911790555b60135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af1158015610c2d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c519190611ada565b50601254610c7f9030906001600160a01b0316610c706009600a611a9a565b6104e190640211d1ae38611aa8565b6012546001600160a01b031663f305d7194730610cb0816001600160a01b03165f9081526001602052604090205490565b5f5f610cc35f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610d29573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d4e9190611af9565b50506014805462ff00ff60a01b19166201000160a01b17905550565b6001600160a01b038316610dcc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610404565b6001600160a01b038216610e2d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610404565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6004546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610485573d5f5f3e3d5ffd5b6001600160a01b038316610f2c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610404565b6001600160a01b038216610f8e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610404565b5f8111610fef5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610404565b5f80546001600160a01b0385811691161480159061101a57505f546001600160a01b03848116911614155b1561133b57600d545f0361105857611055606461104f600954600d54101561104457600554611048565b6007545b859061162d565b906116b2565b90505b600d541561107d5761107a606461104f600c548561162d90919063ffffffff16565b90505b6013546001600160a01b0385811691161480156110a857506012546001600160a01b03848116911614155b80156110cc57506001600160a01b0383165f9081526003602052604090205460ff16155b156111d057600e548211156111235760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610404565b600f5482611145856001600160a01b03165f9081526001602052604090205490565b61114f9190611b24565b111561119d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610404565b6111b9606461104f600954600d54101561104457600554611048565b600d80549192505f6111ca83611b37565b91905055505b6013546001600160a01b0384811691161480156111f657506001600160a01b0384163014155b1561122457611221606461104f600a54600d54101561121757600654611048565b600854859061162d565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561125a57506013546001600160a01b038581169116145b801561126f5750601454600160b01b900460ff165b801561127c575060105481115b801561128c5750600b54600d5410155b15611339576017544311156112a0575f6015555b6003601554106112f25760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610404565b61130f61130a84611305846011546116f3565b6116f3565b6114b3565b47801561131f5761131f47610e8d565b60158054905f61132e83611b37565b909155505043601755505b505b80156113b357305f9081526001602052604090205461135a9082611707565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113aa9085815260200190565b60405180910390a35b6018546001600160a01b0385165f908152600160205260409020546113d89184611765565b6001600160a01b0385165f9081526001602052604090205561141b6113fd83836117e4565b6001600160a01b0385165f9081526001602052604090205490611707565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61146485856117e4565b60405190815260200160405180910390a350505050565b5f818484111561149e5760405162461bcd60e51b81526004016104049190611851565b505f6114aa8486611b4f565b95945050505050565b6014805460ff60a81b1916600160a81b1790556016546018556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114ff576114ff611b62565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611556573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157a9190611abf565b8160018151811061158d5761158d611b62565b6001600160a01b0392831660209182029290920101526012546115b39130911684610d6a565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906115eb9085905f90869030904290600401611b76565b5f604051808303815f87803b158015611602575f5ffd5b505af1158015611614573d5f5f3e3d5ffd5b50505f60185550506014805460ff60a81b191690555050565b5f825f0361163c57505f6103d5565b5f6116478385611aa8565b9050826116548583611be6565b146116ab5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610404565b9392505050565b5f6116ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611825565b5f81831161170157826116ab565b50919050565b5f806117138385611b24565b9050838110156116ab5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610404565b5f838211156117b65760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610404565b6117dc6117c385846117e4565b6117d7856117d28660646116b2565b61162d565b611707565b949350505050565b5f6116ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061147b565b5f81836118455760405162461bcd60e51b81526004016104049190611851565b505f6114aa8486611be6565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461189a575f5ffd5b50565b5f5f604083850312156118ae575f5ffd5b82356118b981611886565b946020939093013593505050565b5f602082840312156118d7575f5ffd5b5035919050565b5f5f5f606084860312156118f0575f5ffd5b83356118fb81611886565b9250602084013561190b81611886565b929592945050506040919091013590565b5f6020828403121561192c575f5ffd5b81356116ab81611886565b5f5f60408385031215611948575f5ffd5b823561195381611886565b9150602083013561196381611886565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156119f2578085048111156119d6576119d66119a3565b60018416156119e457908102905b60019390931c9280026119bb565b935093915050565b5f82611a08575060016103d5565b81611a1457505f6103d5565b8160018114611a2a5760028114611a3457611a50565b60019150506103d5565b60ff841115611a4557611a456119a3565b50506001821b6103d5565b5060208310610133831016604e8410600b8410161715611a73575081810a6103d5565b611a7f5f1984846119b7565b805f1904821115611a9257611a926119a3565b029392505050565b5f6116ab60ff8416836119fa565b80820281158282048414176103d5576103d56119a3565b5f60208284031215611acf575f5ffd5b81516116ab81611886565b5f60208284031215611aea575f5ffd5b815180151581146116ab575f5ffd5b5f5f5f60608486031215611b0b575f5ffd5b5050815160208301516040909301519094929350919050565b808201808211156103d5576103d56119a3565b5f60018201611b4857611b486119a3565b5060010190565b818103818111156103d5576103d56119a3565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611bc65783516001600160a01b0316835260209384019390920191600101611b9f565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611c0057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ee632c613c5b46c74c162579ec5b35ea8f10b8e5c68e72b00f4909087106db7b64736f6c634300081d0033
0x60806040526011600555600e6006555f6007555f600855600f600955600f600a55600f600b556014600c555f600d5560646009600a61003e919061035e565b61004d90640211d1ae38610373565b610058906002610373565b610062919061038a565b600e5560646100736009600a61035e565b61008290640211d1ae38610373565b61008d906002610373565b610097919061038a565b600f556127106100a96009600a61035e565b6100b890640211d1ae38610373565b6100c3906005610373565b6100cd919061038a565b60108190556100dd906028610373565b6011556014805461ffff60a81b191690555f60158190556016819055601781905560185534801561010c575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060048054610100600160a81b03191661010033021790556101706009600a61035e565b61017f90640211d1ae38610373565b335f9081526001602081905260408220929092556003906101a75f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600390935281832080548516600190811790915560045461010090049091168352912080549092161790556102093390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6102406009600a61035e565b61024f90640211d1ae38610373565b60405190815260200160405180910390a36103a9565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102b45780850481111561029857610298610265565b60018416156102a657908102905b60019390931c92800261027d565b935093915050565b5f826102ca57506001610358565b816102d657505f610358565b81600181146102ec57600281146102f657610312565b6001915050610358565b60ff84111561030757610307610265565b50506001821b610358565b5060208310610133831016604e8410600b8410161715610335575081810a610358565b6103415f198484610279565b805f190482111561035457610354610265565b0290505b92915050565b5f61036c60ff8416836102bc565b9392505050565b808202811582820484141761035857610358610265565b5f826103a457634e487b7160e01b5f52601260045260245ffd5b500490565b611c63806103b65f395ff3fe60806040526004361061011e575f3560e01c806370a082311161009d57806395d89b411161006257806395d89b411461030c578063a9059cbb14610339578063bf474bed14610358578063c9567bf91461036d578063dd62ed3e14610381575f5ffd5b806370a0823114610274578063715018a6146102a85780637d1db4a5146102bc5780638da5cb5b146102d15780638f9a55c0146102f7575f5ffd5b80631ad34a4f116100e35780631ad34a4f146101f357806323b872dd14610212578063313ce5671461023157806351bc3c851461024c5780636225658914610260575f5ffd5b806306fdde0314610129578063095ea7b3146101775780630faee56f146101a6578063109daa99146101c957806318160ddd146101df575f5ffd5b3661012557005b5f5ffd5b348015610134575f5ffd5b506040805180820190915260148152734672656e63682042756c6c646f67204d6f63686960601b60208201525b60405161016e9190611851565b60405180910390f35b348015610182575f5ffd5b5061019661019136600461189d565b6103c5565b604051901515815260200161016e565b3480156101b1575f5ffd5b506101bb60115481565b60405190815260200161016e565b3480156101d4575f5ffd5b506101dd6103db565b005b3480156101ea575f5ffd5b506101bb610413565b3480156101fe575f5ffd5b506101dd61020d3660046118c7565b610434565b34801561021d575f5ffd5b5061019661022c3660046118de565b610489565b34801561023c575f5ffd5b506040516009815260200161016e565b348015610257575f5ffd5b506101dd6104f0565b34801561026b575f5ffd5b506101dd610577565b34801561027f575f5ffd5b506101bb61028e36600461191c565b6001600160a01b03165f9081526001602052604090205490565b3480156102b3575f5ffd5b506101dd61062b565b3480156102c7575f5ffd5b506101bb600e5481565b3480156102dc575f5ffd5b505f546040516001600160a01b03909116815260200161016e565b348015610302575f5ffd5b506101bb600f5481565b348015610317575f5ffd5b506040805180820190915260058152644d4f43484960d81b6020820152610161565b348015610344575f5ffd5b5061019661035336600461189d565b61069c565b348015610363575f5ffd5b506101bb60105481565b348015610378575f5ffd5b506101dd6106a8565b34801561038c575f5ffd5b506101bb61039b366004611937565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103d1338484610d6a565b5060015b92915050565b5f546001600160a01b0316331461040d5760405162461bcd60e51b81526004016104049061196e565b60405180910390fd5b5f600c55565b5f6104206009600a611a9a565b61042f90640211d1ae38611aa8565b905090565b60045461010090046001600160a01b0316336001600160a01b0316148061046e57506014546001600160a01b0316336001600160a01b0316145b610476575f5ffd5b60168190554761048581610e8d565b5050565b5f610495848484610ec8565b6104e684336104e185604051806060016040528060288152602001611c06602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061147b565b610d6a565b5060019392505050565b6014805460ff60a81b1916600160a81b1790556016546018556004546001600160a01b03610100909104166105223390565b6001600160a01b031614610534575f5ffd5b305f90815260016020526040902054801561055257610552816114b3565b4780156105625761056281610e8d565b50505f6018556014805460ff60a81b19169055565b5f546001600160a01b031633146105a05760405162461bcd60e51b81526004016104049061196e565b6105ac6009600a611a9a565b6105bb90640211d1ae38611aa8565b600e556105ca6009600a611a9a565b6105d990640211d1ae38611aa8565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106096009600a611a9a565b61061890640211d1ae38611aa8565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106545760405162461bcd60e51b81526004016104049061196e565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6103d1338484610ec8565b5f546001600160a01b031633146106d15760405162461bcd60e51b81526004016104049061196e565b601454600160a01b900460ff161561072b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610404565b601280546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d9081179092556014805490911673e7d9e9926bf78d60a8f6d32096541d40d4c2f7e61790556040805163c45a015560e01b815290515f929163c45a01559160048083019260209291908290030181865afa1580156107b0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d49190611abf565b6001600160a01b031663e6a4390560125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610832573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108569190611abf565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa15801561089e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c29190611abf565b6001600160a01b031603610a585760125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610920573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109449190611abf565b6001600160a01b031663c9c6539660125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c69190611abf565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af1158015610a0f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a339190611abf565b601380546001600160a01b0319166001600160a01b0392909216919091179055610bdb565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610acc9190611abf565b6001600160a01b031663e6a4390560125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4e9190611abf565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610b96573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bba9190611abf565b601380546001600160a01b0319166001600160a01b03929092169190911790555b60135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af1158015610c2d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c519190611ada565b50601254610c7f9030906001600160a01b0316610c706009600a611a9a565b6104e190640211d1ae38611aa8565b6012546001600160a01b031663f305d7194730610cb0816001600160a01b03165f9081526001602052604090205490565b5f5f610cc35f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610d29573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d4e9190611af9565b50506014805462ff00ff60a01b19166201000160a01b17905550565b6001600160a01b038316610dcc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610404565b6001600160a01b038216610e2d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610404565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6004546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610485573d5f5f3e3d5ffd5b6001600160a01b038316610f2c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610404565b6001600160a01b038216610f8e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610404565b5f8111610fef5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610404565b5f80546001600160a01b0385811691161480159061101a57505f546001600160a01b03848116911614155b1561133b57600d545f0361105857611055606461104f600954600d54101561104457600554611048565b6007545b859061162d565b906116b2565b90505b600d541561107d5761107a606461104f600c548561162d90919063ffffffff16565b90505b6013546001600160a01b0385811691161480156110a857506012546001600160a01b03848116911614155b80156110cc57506001600160a01b0383165f9081526003602052604090205460ff16155b156111d057600e548211156111235760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610404565b600f5482611145856001600160a01b03165f9081526001602052604090205490565b61114f9190611b24565b111561119d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610404565b6111b9606461104f600954600d54101561104457600554611048565b600d80549192505f6111ca83611b37565b91905055505b6013546001600160a01b0384811691161480156111f657506001600160a01b0384163014155b1561122457611221606461104f600a54600d54101561121757600654611048565b600854859061162d565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561125a57506013546001600160a01b038581169116145b801561126f5750601454600160b01b900460ff165b801561127c575060105481115b801561128c5750600b54600d5410155b15611339576017544311156112a0575f6015555b6003601554106112f25760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610404565b61130f61130a84611305846011546116f3565b6116f3565b6114b3565b47801561131f5761131f47610e8d565b60158054905f61132e83611b37565b909155505043601755505b505b80156113b357305f9081526001602052604090205461135a9082611707565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113aa9085815260200190565b60405180910390a35b6018546001600160a01b0385165f908152600160205260409020546113d89184611765565b6001600160a01b0385165f9081526001602052604090205561141b6113fd83836117e4565b6001600160a01b0385165f9081526001602052604090205490611707565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61146485856117e4565b60405190815260200160405180910390a350505050565b5f818484111561149e5760405162461bcd60e51b81526004016104049190611851565b505f6114aa8486611b4f565b95945050505050565b6014805460ff60a81b1916600160a81b1790556016546018556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114ff576114ff611b62565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611556573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157a9190611abf565b8160018151811061158d5761158d611b62565b6001600160a01b0392831660209182029290920101526012546115b39130911684610d6a565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906115eb9085905f90869030904290600401611b76565b5f604051808303815f87803b158015611602575f5ffd5b505af1158015611614573d5f5f3e3d5ffd5b50505f60185550506014805460ff60a81b191690555050565b5f825f0361163c57505f6103d5565b5f6116478385611aa8565b9050826116548583611be6565b146116ab5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610404565b9392505050565b5f6116ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611825565b5f81831161170157826116ab565b50919050565b5f806117138385611b24565b9050838110156116ab5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610404565b5f838211156117b65760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610404565b6117dc6117c385846117e4565b6117d7856117d28660646116b2565b61162d565b611707565b949350505050565b5f6116ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061147b565b5f81836118455760405162461bcd60e51b81526004016104049190611851565b505f6114aa8486611be6565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461189a575f5ffd5b50565b5f5f604083850312156118ae575f5ffd5b82356118b981611886565b946020939093013593505050565b5f602082840312156118d7575f5ffd5b5035919050565b5f5f5f606084860312156118f0575f5ffd5b83356118fb81611886565b9250602084013561190b81611886565b929592945050506040919091013590565b5f6020828403121561192c575f5ffd5b81356116ab81611886565b5f5f60408385031215611948575f5ffd5b823561195381611886565b9150602083013561196381611886565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156119f2578085048111156119d6576119d66119a3565b60018416156119e457908102905b60019390931c9280026119bb565b935093915050565b5f82611a08575060016103d5565b81611a1457505f6103d5565b8160018114611a2a5760028114611a3457611a50565b60019150506103d5565b60ff841115611a4557611a456119a3565b50506001821b6103d5565b5060208310610133831016604e8410600b8410161715611a73575081810a6103d5565b611a7f5f1984846119b7565b805f1904821115611a9257611a926119a3565b029392505050565b5f6116ab60ff8416836119fa565b80820281158282048414176103d5576103d56119a3565b5f60208284031215611acf575f5ffd5b81516116ab81611886565b5f60208284031215611aea575f5ffd5b815180151581146116ab575f5ffd5b5f5f5f60608486031215611b0b575f5ffd5b5050815160208301516040909301519094929350919050565b808201808211156103d5576103d56119a3565b5f60018201611b4857611b486119a3565b5060010190565b818103818111156103d5576103d56119a3565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611bc65783516001600160a01b0316835260209384019390920191600101611b9f565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611c0057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ee632c613c5b46c74c162579ec5b35ea8f10b8e5c68e72b00f4909087106db7b64736f6c634300081d0033