0x608060405234801561000f575f80fd5b50600436106100a6575f3560e01c806370a082311161006e57806370a082311461011f578063715018a6146101475780638da5cb5b1461015157806395d89b411461017c578063a9059cbb14610184578063dd62ed3e14610197575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100eb57806323b872dd146100fd578063313ce56714610110575b5f80fd5b6100b26101cf565b6040516100bf9190610642565b60405180910390f35b6100db6100d6366004610692565b61025f565b60405190151581526020016100bf565b6002545b6040519081526020016100bf565b6100db61010b3660046106ba565b610278565b604051601281526020016100bf565b6100ef61012d3660046106f3565b6001600160a01b03165f9081526020819052604090205490565b61014f61029b565b005b600554610164906001600160a01b031681565b6040516001600160a01b0390911681526020016100bf565b6100b2610343565b6100db610192366004610692565b610352565b6100ef6101a5366004610713565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101de90610744565b80601f016020809104026020016040519081016040528092919081815260200182805461020a90610744565b80156102555780601f1061022c57610100808354040283529160200191610255565b820191905f5260205f20905b81548152906001019060200180831161023857829003601f168201915b5050505050905090565b5f3361026c81858561035f565b60019150505b92915050565b5f33610285858285610371565b6102908585856103ed565b506001949350505050565b6005546001600160a01b031633146102fa5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064015b60405180910390fd5b6005546040516001600160a01b03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820905f90a2600580546001600160a01b0319169055565b6060600480546101de90610744565b5f3361026c8185856103ed565b61036c838383600161044a565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198110156103e757818110156103d957604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016102f1565b6103e784848484035f61044a565b50505050565b6001600160a01b03831661041657604051634b637e8f60e11b81525f60048201526024016102f1565b6001600160a01b03821661043f5760405163ec442f0560e01b81525f60048201526024016102f1565b61036c83838361051c565b6001600160a01b0384166104735760405163e602df0560e01b81525f60048201526024016102f1565b6001600160a01b03831661049c57604051634a1406b160e11b81525f60048201526024016102f1565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156103e757826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161050e91815260200190565b60405180910390a350505050565b6001600160a01b038316610546578060025f82825461053b919061077c565b909155506105b69050565b6001600160a01b0383165f90815260208190526040902054818110156105985760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016102f1565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166105d2576002805482900390556105f0565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161063591815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461068d575f80fd5b919050565b5f80604083850312156106a3575f80fd5b6106ac83610677565b946020939093013593505050565b5f805f606084860312156106cc575f80fd5b6106d584610677565b92506106e360208501610677565b9150604084013590509250925092565b5f60208284031215610703575f80fd5b61070c82610677565b9392505050565b5f8060408385031215610724575f80fd5b61072d83610677565b915061073b60208401610677565b90509250929050565b600181811c9082168061075857607f821691505b60208210810361077657634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561027257634e487b7160e01b5f52601160045260245ffdfea264697066735822122000b18fe060529de8e1b882a12306bbecd40d3d14e2d932fbb2a3e3e36e537f7664736f6c63430008190033
0x608060405234801561000f575f80fd5b506040518060400160405280600281526020016161c360f11b8152506040518060400160405280600381526020016210515360ea1b815250816003908161005691906102a4565b50600461006382826102a4565b5050600580546001600160a01b031916339081179091556100a49150610087601290565b61009290600a610459565b61009f90620f424061046e565b6100a9565b610498565b6001600160a01b0382166100d75760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b6100e25f83836100e6565b5050565b6001600160a01b038316610110578060025f8282546101059190610485565b909155506101809050565b6001600160a01b0383165f90815260208190526040902054818110156101625760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016100ce565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661019c576002805482900390556101ba565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516101ff91815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061023457607f821691505b60208210810361025257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561029f57805f5260205f20601f840160051c8101602085101561027d5750805b601f840160051c820191505b8181101561029c575f8155600101610289565b50505b505050565b81516001600160401b038111156102bd576102bd61020c565b6102d1816102cb8454610220565b84610258565b602080601f831160018114610304575f84156102ed5750858301515b5f19600386901b1c1916600185901b17855561035b565b5f85815260208120601f198616915b8281101561033257888601518255948401946001909101908401610313565b508582101561034f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156103b157815f190482111561039757610397610363565b808516156103a457918102915b93841c939080029061037c565b509250929050565b5f826103c757506001610453565b816103d357505f610453565b81600181146103e957600281146103f35761040f565b6001915050610453565b60ff84111561040457610404610363565b50506001821b610453565b5060208310610133831016604e8410600b8410161715610432575081810a610453565b61043c8383610377565b805f190482111561044f5761044f610363565b0290505b92915050565b5f61046760ff8416836103b9565b9392505050565b808202811582820484141761045357610453610363565b8082018082111561045357610453610363565b6107d1806104a55f395ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c806370a082311161006e57806370a082311461011f578063715018a6146101475780638da5cb5b1461015157806395d89b411461017c578063a9059cbb14610184578063dd62ed3e14610197575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100eb57806323b872dd146100fd578063313ce56714610110575b5f80fd5b6100b26101cf565b6040516100bf9190610642565b60405180910390f35b6100db6100d6366004610692565b61025f565b60405190151581526020016100bf565b6002545b6040519081526020016100bf565b6100db61010b3660046106ba565b610278565b604051601281526020016100bf565b6100ef61012d3660046106f3565b6001600160a01b03165f9081526020819052604090205490565b61014f61029b565b005b600554610164906001600160a01b031681565b6040516001600160a01b0390911681526020016100bf565b6100b2610343565b6100db610192366004610692565b610352565b6100ef6101a5366004610713565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101de90610744565b80601f016020809104026020016040519081016040528092919081815260200182805461020a90610744565b80156102555780601f1061022c57610100808354040283529160200191610255565b820191905f5260205f20905b81548152906001019060200180831161023857829003601f168201915b5050505050905090565b5f3361026c81858561035f565b60019150505b92915050565b5f33610285858285610371565b6102908585856103ed565b506001949350505050565b6005546001600160a01b031633146102fa5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064015b60405180910390fd5b6005546040516001600160a01b03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820905f90a2600580546001600160a01b0319169055565b6060600480546101de90610744565b5f3361026c8185856103ed565b61036c838383600161044a565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198110156103e757818110156103d957604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016102f1565b6103e784848484035f61044a565b50505050565b6001600160a01b03831661041657604051634b637e8f60e11b81525f60048201526024016102f1565b6001600160a01b03821661043f5760405163ec442f0560e01b81525f60048201526024016102f1565b61036c83838361051c565b6001600160a01b0384166104735760405163e602df0560e01b81525f60048201526024016102f1565b6001600160a01b03831661049c57604051634a1406b160e11b81525f60048201526024016102f1565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156103e757826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161050e91815260200190565b60405180910390a350505050565b6001600160a01b038316610546578060025f82825461053b919061077c565b909155506105b69050565b6001600160a01b0383165f90815260208190526040902054818110156105985760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016102f1565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166105d2576002805482900390556105f0565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161063591815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461068d575f80fd5b919050565b5f80604083850312156106a3575f80fd5b6106ac83610677565b946020939093013593505050565b5f805f606084860312156106cc575f80fd5b6106d584610677565b92506106e360208501610677565b9150604084013590509250925092565b5f60208284031215610703575f80fd5b61070c82610677565b9392505050565b5f8060408385031215610724575f80fd5b61072d83610677565b915061073b60208401610677565b90509250929050565b600181811c9082168061075857607f821691505b60208210810361077657634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561027257634e487b7160e01b5f52601160045260245ffdfea264697066735822122000b18fe060529de8e1b882a12306bbecd40d3d14e2d932fbb2a3e3e36e537f7664736f6c63430008190033