[ { "inputs": [ { "internalType": "address", "name": "_impl", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "stateMutability": "nonpayable", "type": "fallback" }, { "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "impl", "type": "address" } ], "name": "replaceImplementation", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561001057600080fd5b506040516104fa3803806104fa83398101604081905261002f9161016e565b61003833610047565b61004181610097565b5061019e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146100f65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6101098161016860201b61025c1760201c565b6101465760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08184818dbdb9d1c9858dd60921b60448201526064016100ed565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b3b151590565b60006020828403121561018057600080fd5b81516001600160a01b038116811461019757600080fd5b9392505050565b61034d806101ad6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80635c60da1b14610087578063715018a6146100b65780638da5cb5b146100c0578063d69efdc5146100d1578063f2fde38b146100e4575b6001546001600160a01b03163660008037600080366000845af43d6000803e808015610082573d6000f35b3d6000fd5b60015461009a906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100be6100f7565b005b6000546001600160a01b031661009a565b6100be6100df3660046102b2565b610136565b6100be6100f23660046102b2565b6101c1565b6000546001600160a01b0316331461012a5760405162461bcd60e51b8152600401610121906102e2565b60405180910390fd5b6101346000610262565b565b6000546001600160a01b031633146101605760405162461bcd60e51b8152600401610121906102e2565b803b61019f5760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08184818dbdb9d1c9858dd60921b6044820152606401610121565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146101eb5760405162461bcd60e51b8152600401610121906102e2565b6001600160a01b0381166102505760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610121565b61025981610262565b50565b3b151590565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102c457600080fd5b81356001600160a01b03811681146102db57600080fd5b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea2646970667358221220757e7ec6ce5df149aa288328f60b1df7ae1ec5a524255b756926fecf253b94ad64736f6c634300080900330000000000000000000000005a06e8b21c8362720f6fc5587b22c07c957718e3