0x608060405234801561000f575f80fd5b50600436106100f0575f3560e01c80635427789c1161009357806395d89b411161006357806395d89b41146101d2578063a9059cbb146101da578063dd62ed3e146101ed578063f2fde38b14610225575f80fd5b80635427789c1461017357806370a0823114610187578063715018a6146101af5780638da5cb5b146101b7575f80fd5b806318160ddd116100ce57806318160ddd1461013f57806323b872dd14610151578063313ce5671461016457806332cb6b0c14610173575f80fd5b806306fdde03146100f4578063095ea7b3146101125780631249c58b14610135575b5f80fd5b6100fc610238565b604051610109919061085d565b60405180910390f35b6101256101203660046108ad565b6102c8565b6040519015158152602001610109565b61013d6102e1565b005b6002545b604051908152602001610109565b61012561015f3660046108d5565b610438565b60405160128152602001610109565b6101436c02a68bedbb190931f65000000081565b61014361019536600461090f565b6001600160a01b03165f9081526020819052604090205490565b61013d61045b565b6005546040516001600160a01b039091168152602001610109565b6100fc61046c565b6101256101e83660046108ad565b61047b565b6101436101fb36600461092f565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61013d61023336600461090f565b610488565b60606003805461024790610960565b80601f016020809104026020016040519081016040528092919081815260200182805461027390610960565b80156102be5780601f10610295576101008083540402835291602001916102be565b820191905f5260205f20905b8154815290600101906020018083116102a157829003601f168201915b5050505050905090565b5f336102d58185856104c5565b60019150505b92915050565b6c02a68bedbb190931f650000000806102f960025490565b6103039190610998565b111561034e5760405162461bcd60e51b8152602060048201526015602482015274151bdd185b081cdd5c1c1b1e48195e18d959591959605a1b60448201526064015b60405180910390fd5b335f9081526006602052604090205460ff16156103ad5760405162461bcd60e51b815260206004820152601a60248201527f416464726573732068617320616c7265616479206d696e7465640000000000006044820152606401610345565b3332146104065760405162461bcd60e51b815260206004820152602160248201527f436f6e74726163747320617265206e6f7420616c6c6f77656420746f206d696e6044820152601d60fa1b6064820152608401610345565b335f818152600660205260409020805460ff19166001179055610436906c02a68bedbb190931f6500000006104d7565b565b5f3361044585828561050f565b61045085858561058a565b506001949350505050565b6104636105e7565b6104365f610614565b60606004805461024790610960565b5f336102d581858561058a565b6104906105e7565b6001600160a01b0381166104b957604051631e4fbdf760e01b81525f6004820152602401610345565b6104c281610614565b50565b6104d28383836001610665565b505050565b6001600160a01b0382166105005760405163ec442f0560e01b81525f6004820152602401610345565b61050b5f8383610737565b5050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610584578181101561057657604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610345565b61058484848484035f610665565b50505050565b6001600160a01b0383166105b357604051634b637e8f60e11b81525f6004820152602401610345565b6001600160a01b0382166105dc5760405163ec442f0560e01b81525f6004820152602401610345565b6104d2838383610737565b6005546001600160a01b031633146104365760405163118cdaa760e01b8152336004820152602401610345565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b03841661068e5760405163e602df0560e01b81525f6004820152602401610345565b6001600160a01b0383166106b757604051634a1406b160e11b81525f6004820152602401610345565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561058457826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161072991815260200190565b60405180910390a350505050565b6001600160a01b038316610761578060025f8282546107569190610998565b909155506107d19050565b6001600160a01b0383165f90815260208190526040902054818110156107b35760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610345565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166107ed5760028054829003905561080b565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161085091815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146108a8575f80fd5b919050565b5f80604083850312156108be575f80fd5b6108c783610892565b946020939093013593505050565b5f805f606084860312156108e7575f80fd5b6108f084610892565b92506108fe60208501610892565b929592945050506040919091013590565b5f6020828403121561091f575f80fd5b61092882610892565b9392505050565b5f8060408385031215610940575f80fd5b61094983610892565b915061095760208401610892565b90509250929050565b600181811c9082168061097457607f821691505b60208210810361099257634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102db57634e487b7160e01b5f52601160045260245ffdfea264697066735822122042822768feab375b7b049fd1fa4d36618fc5f8d8c4a18448ab4d4d8f15bab7e464736f6c634300081a0033
0x608060405234801561000f575f80fd5b50336040518060400160405280600681526020016551754465666960d01b8152506040518060400160405280600681526020016551554445464960d01b815250816003908161005e9190610193565b50600461006b8282610193565b5050506001600160a01b03811661009b57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100a4816100aa565b5061024d565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061012357607f821691505b60208210810361014157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561018e57805f5260205f20601f840160051c8101602085101561016c5750805b601f840160051c820191505b8181101561018b575f8155600101610178565b50505b505050565b81516001600160401b038111156101ac576101ac6100fb565b6101c0816101ba845461010f565b84610147565b6020601f8211600181146101f2575f83156101db5750848201515b5f19600385901b1c1916600184901b17845561018b565b5f84815260208120601f198516915b828110156102215787850151825560209485019460019092019101610201565b508482101561023e57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6109ed8061025a5f395ff3fe608060405234801561000f575f80fd5b50600436106100f0575f3560e01c80635427789c1161009357806395d89b411161006357806395d89b41146101d2578063a9059cbb146101da578063dd62ed3e146101ed578063f2fde38b14610225575f80fd5b80635427789c1461017357806370a0823114610187578063715018a6146101af5780638da5cb5b146101b7575f80fd5b806318160ddd116100ce57806318160ddd1461013f57806323b872dd14610151578063313ce5671461016457806332cb6b0c14610173575f80fd5b806306fdde03146100f4578063095ea7b3146101125780631249c58b14610135575b5f80fd5b6100fc610238565b604051610109919061085d565b60405180910390f35b6101256101203660046108ad565b6102c8565b6040519015158152602001610109565b61013d6102e1565b005b6002545b604051908152602001610109565b61012561015f3660046108d5565b610438565b60405160128152602001610109565b6101436c02a68bedbb190931f65000000081565b61014361019536600461090f565b6001600160a01b03165f9081526020819052604090205490565b61013d61045b565b6005546040516001600160a01b039091168152602001610109565b6100fc61046c565b6101256101e83660046108ad565b61047b565b6101436101fb36600461092f565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61013d61023336600461090f565b610488565b60606003805461024790610960565b80601f016020809104026020016040519081016040528092919081815260200182805461027390610960565b80156102be5780601f10610295576101008083540402835291602001916102be565b820191905f5260205f20905b8154815290600101906020018083116102a157829003601f168201915b5050505050905090565b5f336102d58185856104c5565b60019150505b92915050565b6c02a68bedbb190931f650000000806102f960025490565b6103039190610998565b111561034e5760405162461bcd60e51b8152602060048201526015602482015274151bdd185b081cdd5c1c1b1e48195e18d959591959605a1b60448201526064015b60405180910390fd5b335f9081526006602052604090205460ff16156103ad5760405162461bcd60e51b815260206004820152601a60248201527f416464726573732068617320616c7265616479206d696e7465640000000000006044820152606401610345565b3332146104065760405162461bcd60e51b815260206004820152602160248201527f436f6e74726163747320617265206e6f7420616c6c6f77656420746f206d696e6044820152601d60fa1b6064820152608401610345565b335f818152600660205260409020805460ff19166001179055610436906c02a68bedbb190931f6500000006104d7565b565b5f3361044585828561050f565b61045085858561058a565b506001949350505050565b6104636105e7565b6104365f610614565b60606004805461024790610960565b5f336102d581858561058a565b6104906105e7565b6001600160a01b0381166104b957604051631e4fbdf760e01b81525f6004820152602401610345565b6104c281610614565b50565b6104d28383836001610665565b505050565b6001600160a01b0382166105005760405163ec442f0560e01b81525f6004820152602401610345565b61050b5f8383610737565b5050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610584578181101561057657604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610345565b61058484848484035f610665565b50505050565b6001600160a01b0383166105b357604051634b637e8f60e11b81525f6004820152602401610345565b6001600160a01b0382166105dc5760405163ec442f0560e01b81525f6004820152602401610345565b6104d2838383610737565b6005546001600160a01b031633146104365760405163118cdaa760e01b8152336004820152602401610345565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b03841661068e5760405163e602df0560e01b81525f6004820152602401610345565b6001600160a01b0383166106b757604051634a1406b160e11b81525f6004820152602401610345565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561058457826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161072991815260200190565b60405180910390a350505050565b6001600160a01b038316610761578060025f8282546107569190610998565b909155506107d19050565b6001600160a01b0383165f90815260208190526040902054818110156107b35760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610345565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166107ed5760028054829003905561080b565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161085091815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146108a8575f80fd5b919050565b5f80604083850312156108be575f80fd5b6108c783610892565b946020939093013593505050565b5f805f606084860312156108e7575f80fd5b6108f084610892565b92506108fe60208501610892565b929592945050506040919091013590565b5f6020828403121561091f575f80fd5b61092882610892565b9392505050565b5f8060408385031215610940575f80fd5b61094983610892565b915061095760208401610892565b90509250929050565b600181811c9082168061097457607f821691505b60208210810361099257634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102db57634e487b7160e01b5f52601160045260245ffdfea264697066735822122042822768feab375b7b049fd1fa4d36618fc5f8d8c4a18448ab4d4d8f15bab7e464736f6c634300081a0033