[ { "inputs": [ { "internalType": "address", "name": "admin", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "admin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_logic", "type": "address" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "initialize", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60a060405234801561001057600080fd5b5060405161085538038061085583398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516107a76100ae60003960008181610123015281816101670152818161021f0152818161035e0152818161038701526104b301526107a76000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b14610098578063d1f57894146100c9578063f851a440146100dc5761005d565b3661005d5761005b6100f1565b005b61005b6100f1565b34801561007157600080fd5b5061005b610080366004610558565b610119565b61005b61009336600461057a565b61015d565b3480156100a457600080fd5b506100ad610213565b6040516001600160a01b03909116815260200160405180910390f35b61005b6100d7366004610613565b610264565b3480156100e857600080fd5b506100ad610352565b6100f96103a9565b6101176101126000805160206107528339815191525490565b6103b1565b565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016330361015557610152816103d5565b50565b6101526100f1565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016330361020657610196836103d5565b6000836001600160a01b031683836040516101b29291906106d5565b600060405180830381855af49150503d80600081146101ed576040519150601f19603f3d011682016040523d82523d6000602084013e6101f2565b606091505b505090508061020057600080fd5b50505050565b61020e6100f1565b505050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016330361025957506000805160206107528339815191525490565b6102616100f1565b90565b600061027c6000805160206107528339815191525490565b6001600160a01b03161461028f57600080fd5b6102ba60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6106e5565b600080516020610752833981519152146102d6576102d661070c565b6102df82610415565b80511561034e576000826001600160a01b0316826040516103009190610722565b600060405180830381855af49150503d806000811461033b576040519150601f19603f3d011682016040523d82523d6000602084013e610340565b606091505b505090508061020e57600080fd5b5050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016330361025957507f000000000000000000000000000000000000000000000000000000000000000090565b6101176104a9565b3660008037600080366000845af43d6000803e8080156103d0573d6000f35b3d6000fd5b6103de81610415565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381163b6104975760405162461bcd60e51b815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000060648201526084015b60405180910390fd5b60008051602061075283398151915255565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036101175760405162461bcd60e51b815260206004820152603260248201527f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260448201527137b6903a343290383937bc3c9030b236b4b760711b606482015260840161048e565b80356001600160a01b038116811461055357600080fd5b919050565b60006020828403121561056a57600080fd5b6105738261053c565b9392505050565b60008060006040848603121561058f57600080fd5b6105988461053c565b9250602084013567ffffffffffffffff808211156105b557600080fd5b818601915086601f8301126105c957600080fd5b8135818111156105d857600080fd5b8760208285010111156105ea57600080fd5b6020830194508093505050509250925092565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561062657600080fd5b61062f8361053c565b9150602083013567ffffffffffffffff8082111561064c57600080fd5b818501915085601f83011261066057600080fd5b813581811115610672576106726105fd565b604051601f8201601f19908116603f0116810190838211818310171561069a5761069a6105fd565b816040528281528860208487010111156106b357600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b8183823760009101908152919050565b8181038181111561070657634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052600160045260246000fd5b6000825160005b818110156107435760208186018101518583015201610729565b50600092019182525091905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca264697066735822122074f34cfe5343d2f6b8453d583a99c0fffe97c41717344b7c70ced86531b4014564736f6c634300081100330000000000000000000000008c3605004f26b38f3719fab423ab17c4599a43bb