{
  "_format": "hh-sol-artifact-1",
  "contractName": "UpgradableProxy",
  "sourceName": "contracts/proxy/UpgradableProxy.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_oldImplementation",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_newImplementation",
          "type": "address"
        }
      ],
      "name": "ImplementationChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_oldOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "payable": true,
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getImplementation",
      "outputs": [
        {
          "internalType": "address",
          "name": "_implementation",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getProxyOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_implementation",
          "type": "address"
        }
      ],
      "name": "setImplementation",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "setProxyOwner",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x6080604052610016336001600160e01b0361001b16565b6100ff565b6001600160a01b0381166100605760405162461bcd60e51b81526004018080602001828103825260258152602001806105b26025913960400191505060405180910390fd5b6001600160a01b03811661007b6001600160e01b036100d716565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f01902055565b604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f0190205490565b6104a48061010e6000396000f3fe60806040526004361061003f5760003560e01c80631ab7710d146100b5578063aaf10f42146100e6578063caaee91c146100fb578063d784d42614610130575b6000610049610163565b90506001600160a01b0381166100905760405162461bcd60e51b81526004018080602001828103825260238152602001806104286023913960400191505060405180910390fd5b60405136600082376000803683855af43d806000843e8180156100b1578184f35b8184fd5b3480156100c157600080fd5b506100ca61018e565b604080516001600160a01b039092168252519081900360200190f35b3480156100f257600080fd5b506100ca610163565b34801561010757600080fd5b5061012e6004803603602081101561011e57600080fd5b50356001600160a01b03166101b6565b005b34801561013c57600080fd5b5061012e6004803603602081101561015357600080fd5b50356001600160a01b0316610227565b604080517135b2bc9734b6b83632b6b2b73a30ba34b7b760711b815290519081900360120190205490565b604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f0190205490565b6101be61018e565b6001600160a01b0316336001600160a01b03161461021b576040805162461bcd60e51b8152602060048201526015602482015274141c9bde1e4e8e881858d8d95cdcc819195b9a5959605a1b604482015290519081900360640190fd5b61022481610295565b50565b61022f61018e565b6001600160a01b0316336001600160a01b03161461028c576040805162461bcd60e51b8152602060048201526015602482015274141c9bde1e4e8e881858d8d95cdcc819195b9a5959605a1b604482015290519081900360640190fd5b61022481610348565b6001600160a01b0381166102da5760405162461bcd60e51b815260040180806020018281038252602581526020018061044b6025913960400191505060405180910390fd5b806001600160a01b03166102ec61018e565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f01902055565b6001600160a01b03811661038d5760405162461bcd60e51b81526004018080602001828103825260298152602001806103ff6029913960400191505060405180910390fd5b806001600160a01b031661039f610163565b6001600160a01b03167fcfbf4028add9318bbf716f08c348595afb063b0e9feed1f86d33681a4b3ed4d360405160405180910390a3604080517135b2bc9734b6b83632b6b2b73a30ba34b7b760711b815290519081900360120190205556fe50726f78793a3a736574496d706c656d656e746174696f6e3a20696e76616c6964206164647265737350726f78793a3a28293a20696d706c656d656e746174696f6e206e6f7420666f756e6450726f78793a3a73657450726f78794f776e65723a20696e76616c69642061646472657373a265627a7a72315820060c7648b077b1feacd58b3a3ba09a37aa2f753fa37d6997215dcc1fc575547f64736f6c6343000511003250726f78793a3a73657450726f78794f776e65723a20696e76616c69642061646472657373",
  "deployedBytecode": "0x60806040526004361061003f5760003560e01c80631ab7710d146100b5578063aaf10f42146100e6578063caaee91c146100fb578063d784d42614610130575b6000610049610163565b90506001600160a01b0381166100905760405162461bcd60e51b81526004018080602001828103825260238152602001806104286023913960400191505060405180910390fd5b60405136600082376000803683855af43d806000843e8180156100b1578184f35b8184fd5b3480156100c157600080fd5b506100ca61018e565b604080516001600160a01b039092168252519081900360200190f35b3480156100f257600080fd5b506100ca610163565b34801561010757600080fd5b5061012e6004803603602081101561011e57600080fd5b50356001600160a01b03166101b6565b005b34801561013c57600080fd5b5061012e6004803603602081101561015357600080fd5b50356001600160a01b0316610227565b604080517135b2bc9734b6b83632b6b2b73a30ba34b7b760711b815290519081900360120190205490565b604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f0190205490565b6101be61018e565b6001600160a01b0316336001600160a01b03161461021b576040805162461bcd60e51b8152602060048201526015602482015274141c9bde1e4e8e881858d8d95cdcc819195b9a5959605a1b604482015290519081900360640190fd5b61022481610295565b50565b61022f61018e565b6001600160a01b0316336001600160a01b03161461028c576040805162461bcd60e51b8152602060048201526015602482015274141c9bde1e4e8e881858d8d95cdcc819195b9a5959605a1b604482015290519081900360640190fd5b61022481610348565b6001600160a01b0381166102da5760405162461bcd60e51b815260040180806020018281038252602581526020018061044b6025913960400191505060405180910390fd5b806001600160a01b03166102ec61018e565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f01902055565b6001600160a01b03811661038d5760405162461bcd60e51b81526004018080602001828103825260298152602001806103ff6029913960400191505060405180910390fd5b806001600160a01b031661039f610163565b6001600160a01b03167fcfbf4028add9318bbf716f08c348595afb063b0e9feed1f86d33681a4b3ed4d360405160405180910390a3604080517135b2bc9734b6b83632b6b2b73a30ba34b7b760711b815290519081900360120190205556fe50726f78793a3a736574496d706c656d656e746174696f6e3a20696e76616c6964206164647265737350726f78793a3a28293a20696d706c656d656e746174696f6e206e6f7420666f756e6450726f78793a3a73657450726f78794f776e65723a20696e76616c69642061646472657373a265627a7a72315820060c7648b077b1feacd58b3a3ba09a37aa2f753fa37d6997215dcc1fc575547f64736f6c63430005110032",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
