{
  "contractName": "BeaconBackportRewards",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_operatorContract",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_stakingContract",
          "type": "address"
        }
      ],
      "payable": false,
      "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"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "keep",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "RewardReceived",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amountTransferred",
          "type": "uint256"
        }
      ],
      "name": "UpgradeFinalized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "newRewardsContract",
          "type": "address"
        }
      ],
      "name": "UpgradeInitiated",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "interval",
          "type": "uint256"
        }
      ],
      "name": "allocateRewards",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "dispensedRewards",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_keep",
          "type": "bytes32"
        }
      ],
      "name": "eligibleButTerminated",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_keep",
          "type": "bytes32"
        }
      ],
      "name": "eligibleForReward",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "interval",
          "type": "uint256"
        }
      ],
      "name": "endOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "finalizeRewardsUpgrade",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "firstIntervalStart",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "funded",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "interval",
          "type": "uint256"
        }
      ],
      "name": "getAllocatedRewards",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getIntervalCount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "interval",
          "type": "uint256"
        }
      ],
      "name": "getIntervalWeight",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_newRewardsContract",
          "type": "address"
        }
      ],
      "name": "initiateRewardsUpgrade",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "intervalKeepsProcessed",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "intervalOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "intervalWeights",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "interval",
          "type": "uint256"
        }
      ],
      "name": "isAllocated",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "interval",
          "type": "uint256"
        }
      ],
      "name": "isFinished",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isOwner",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "interval",
          "type": "uint256"
        }
      ],
      "name": "keepsInInterval",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "markAsFunded",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "minimumKeepsPerInterval",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "newRewardsContract",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "receiveApproval",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "keepIdentifier",
          "type": "bytes32"
        }
      ],
      "name": "receiveReward",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "groupIndex",
          "type": "uint256"
        }
      ],
      "name": "receiveReward",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "keepIdentifiers",
          "type": "bytes32[]"
        }
      ],
      "name": "receiveRewards",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "keepIdentifier",
          "type": "bytes32"
        }
      ],
      "name": "reportTermination",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "keepIdentifiers",
          "type": "bytes32[]"
        }
      ],
      "name": "reportTerminations",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_keep",
          "type": "bytes32"
        }
      ],
      "name": "rewardClaimed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "interval",
          "type": "uint256"
        }
      ],
      "name": "startOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "termLength",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "token",
      "outputs": [
        {
          "internalType": "contract KeepToken",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "totalRewards",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "unallocatedRewards",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "upgradeFinalizedTimestamp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "upgradeInitiatedTimestamp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x600d805460ff1916905560a060405260646080908152620000259060119060016200019f565b503480156200003357600080fd5b506040516200280638038062002806833981810160405260608110156200005957600080fd5b508051602080830151604093840151601180548651818602810186019097528087529495929491938693635eb8958093909291830182828015620000bd57602002820191906000526020600020905b815481526020019060010190808311620000a8575b505050505062b34c006003620000d86200019a60201b60201c565b600080546001600160a01b0319166001600160a01b03928316178082556040519216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b0319166001600160a01b0387161790556008849055825162000155906002906020860190620001f4565b506003919091556004555050601280546001600160a01b039485166001600160a01b0319918216179091556013805493909416921691909117909155506200024f9050565b335b90565b828054828255906000526020600020908101928215620001e2579160200282015b82811115620001e2578251829060ff16905591602001919060010190620001c0565b50620001f092915062000232565b5090565b828054828255906000526020600020908101928215620001e2579160200282015b82811115620001e257825182559160200191906001019062000215565b6200019c91905b80821115620001f0576000815560010162000239565b6125a7806200025f6000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c806392672b351161013b578063c70cee6a116100b8578063e27000e71161007c578063e27000e7146106f1578063e8ba6509146106f9578063f2fde38b14610716578063f3a504f21461073c578063fc0c546a146107445761023d565b8063c70cee6a14610696578063ce21d8cf1461069e578063ce2830ad146106c4578063ce2b3e3c146106e1578063e1fcd5e8146106e95761023d565b8063ae10d5ea116100ff578063ae10d5ea14610605578063aeae364d14610622578063b369af711461063f578063b41e7f471461065c578063b965933e146106795761023d565b806392672b351461051a578063951315261461053757806395aeca481461053f57806397a1e43414610547578063ab7239c0146105645761023d565b806345016312116101c957806381b83c331161018d57806381b83c331461040657806386d954c01461042a5780638da5cb5b146104475780638f32d59b1461044f5780638f4ffcb1146104575761023d565b8063450163121461031b57806368ec9c42146103bc5780636a823878146103d9578063715018a6146103f657806379b18cd1146103fe5761023d565b8063183affa111610210578063183affa1146102b457806328fc33c7146102bc5780632b6fdc7e146102d957806335c9ef71146102e157806336544951146102fe5761023d565b80630a1bb1b1146102425780630da8882f146102735780630e15561a1461027d57806312f5706314610297575b600080fd5b61025f6004803603602081101561025857600080fd5b503561074c565b604080519115158252519081900360200190f35b61027b610757565b005b6102856107ad565b60408051918252519081900360200190f35b61025f600480360360208110156102ad57600080fd5b50356107b3565b6102856107e6565b61027b600480360360208110156102d257600080fd5b50356107ec565b61028561096f565b610285600480360360208110156102f757600080fd5b5035610975565b6102856004803603602081101561031457600080fd5b50356109ed565b61027b6004803603602081101561033157600080fd5b810190602081018135600160201b81111561034b57600080fd5b82018360208201111561035d57600080fd5b803590602001918460208302840111600160201b8311171561037e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610a2b945050505050565b61027b600480360360208110156103d257600080fd5b5035610a5f565b610285600480360360208110156103ef57600080fd5b5035610b71565b61027b610b83565b610285610c14565b61040e610c1a565b604080516001600160a01b039092168252519081900360200190f35b61027b6004803603602081101561044057600080fd5b5035610c29565b61040e610d39565b61025f610d48565b61027b6004803603608081101561046d57600080fd5b6001600160a01b038235811692602081013592604082013590921691810190608081016060820135600160201b8111156104a657600080fd5b8201836020820111156104b857600080fd5b803590602001918460018302840111600160201b831117156104d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d6c945050505050565b6102856004803603602081101561053057600080fd5b5035610f06565b610285610f24565b610285610f2a565b61025f6004803603602081101561055d57600080fd5b5035610f30565b61027b6004803603602081101561057a57600080fd5b810190602081018135600160201b81111561059457600080fd5b8201836020820111156105a657600080fd5b803590602001918460208302840111600160201b831117156105c757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610f4b945050505050565b61027b6004803603602081101561061b57600080fd5b5035610f7b565b6102856004803603602081101561063857600080fd5b5035610f87565b6102856004803603602081101561065557600080fd5b5035610faa565b6102856004803603602081101561067257600080fd5b5035610ff7565b6102856004803603602081101561068f57600080fd5b5035611020565b61028561103b565b61027b600480360360208110156106b457600080fd5b50356001600160a01b0316611041565b61025f600480360360208110156106da57600080fd5b50356110e6565b6102856110fb565b610285611101565b61027b611107565b61025f6004803603602081101561070f57600080fd5b50356113d8565b61027b6004803603602081101561072c57600080fd5b50356001600160a01b03166113ec565b61025f61143c565b61040e611445565b60095481105b919050565b61075f610d48565b61079e576040805162461bcd60e51b815260206004820181905260248201526000805160206124ed833981519152604482015290519081900360640190fd5b600d805460ff19166001179055565b60055481565b60006107be82611454565b80156107ce57506107ce8261145a565b80156107e057506107de826110e6565b155b92915050565b60025490565b806107f6816113d8565b610843576040805162461bcd60e51b8152602060048201526019602482015278125b9d195c9d985b081a185cdb89dd08195b991959081e595d603a1b604482015290519081900360640190fd5b600d5460ff1661089a576040805162461bcd60e51b815260206004820181905260248201527f436f6e747261637420686173206e6f74206265656e2066756e64656420796574604482015290519081900360640190fd5b600954808310156108f2576040805162461bcd60e51b815260206004820152601a60248201527f496e74657276616c20616c726561647920616c6c6f6361746564000000000000604482015290519081900360640190fd5b808311156109135761091361090e84600163ffffffff61146016565b6107ec565b600061091e846114a9565b600654909150610934908263ffffffff61146016565b600655600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155505050565b60065481565b60095460009082106109ce576040805162461bcd60e51b815260206004820152601a60248201527f496e74657276616c206e6f7420616c6c6f636174656420796574000000000000604482015290519081900360640190fd5b600982815481106109db57fe5b90600052602060002001549050919050565b600254600090821015610a195760028281548110610a0757fe5b90600052602060002001549050610752565b600280546000198101908110610a0757fe5b60005b8151811015610a5b57610a53828281518110610a4657fe5b6020026020010151610a5f565b600101610a2e565b5050565b80610a6981611454565b610aba576040805162461bcd60e51b815260206004820152601e60248201527f4b656570206e6f74207265636f676e697a656420627920666163746f72790000604482015290519081900360640190fd5b81610ac4816110e6565b15610b10576040805162461bcd60e51b815260206004820152601760248201527614995dd85c991cc8185b1c9958591e4818db185a5b5959604a1b604482015290519081900360640190fd5b82610b1a8161145a565b610b60576040805162461bcd60e51b815260206004820152601260248201527112d9595c081a5cc81b9bdd0818db1bdcd95960721b604482015290519081900360640190fd5b610b6b60018561151d565b50505050565b600c6020526000908152604090205481565b610b8b610d48565b610bca576040805162461bcd60e51b815260206004820181905260248201526000805160206124ed833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60035481565b6010546001600160a01b031681565b80610c3381611454565b610c84576040805162461bcd60e51b815260206004820152601e60248201527f4b656570206e6f74207265636f676e697a656420627920666163746f72790000604482015290519081900360640190fd5b81610c8e816110e6565b15610cda576040805162461bcd60e51b815260206004820152601760248201527614995dd85c991cc8185b1c9958591e4818db185a5b5959604a1b604482015290519081900360640190fd5b82610ce481611644565b610d2e576040805162461bcd60e51b815260206004820152601660248201527512d9595c081a5cc81b9bdd081d195c9b5a5b985d195960521b604482015290519081900360640190fd5b610b6b60008561151d565b6000546001600160a01b031690565b600080546001600160a01b0316610d5d61164a565b6001600160a01b031614905090565b6001546001600160a01b03838116911614610dc2576040805162461bcd60e51b81526020600482015260116024820152702ab739bab83837b93a32b2103a37b5b2b760791b604482015290519081900360640190fd5b600154610de0906001600160a01b031685308663ffffffff61164e16565b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610e2b57600080fd5b505afa158015610e3f573d6000803e3d6000fd5b505050506040513d6020811015610e5557600080fd5b5051600754600554919250600091610e729163ffffffff61146016565b905080821015610ec9576040805162461bcd60e51b815260206004820152601f60248201527f52657761726420636f6e747261637420686173206c6f737420746f6b656e7300604482015290519081900360640190fd5b6000610edb838363ffffffff61146016565b600554909150610ef1908263ffffffff6116a816565b600555610efd81611702565b50505050505050565b60028181548110610f1357fe5b600091825260209091200154905081565b600e5481565b60085481565b6000610f3b82611454565b80156107e057506107e082611644565b60005b8151811015610a5b57610f73828281518110610f6657fe5b6020026020010151610c29565b600101610f4e565b610f8481610a5f565b50565b60006107e0610f9583611846565b610f9e84611875565b9063ffffffff61146016565b6008546003546000919081841015610fc757600092505050610752565b6000610fd9858463ffffffff61146016565b90506000610fed828463ffffffff61192116565b9695505050505050565b60006107e06110116003548461196390919063ffffffff16565b6008549063ffffffff6116a816565b60006107e061103683600163ffffffff6116a816565b610ff7565b60045481565b611049610d48565b611088576040805162461bcd60e51b815260206004820181905260248201526000805160206124ed833981519152604482015290519081900360640190fd5b42600e55601080546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f4508cb0974b8dda93dec7c130aa186db2705fcee58bc00d1334726761835aca1916020908290030190a150565b6000908152600a602052604090205460ff1690565b600f5481565b60075481565b61110f610d48565b61114e576040805162461bcd60e51b815260206004820181905260248201526000805160206124ed833981519152604482015290519081900360640190fd5b600e5461119a576040805162461bcd60e51b8152602060048201526015602482015274155c19dc985919481b9bdd081a5b9a5d1a585d1959605a1b604482015290519081900360640190fd5b60006111a542610faa565b905060006111b4600e54610faa565b90508082116111f45760405162461bcd60e51b815260040180806020018281038252603c815260200180612537603c913960400191505060405180910390fd5b61120d61120883600163ffffffff61146016565b61074c565b6112255761122561090e83600163ffffffff61146016565b60065460055461123b908263ffffffff61146016565b60055560006006556040805182815290517f89f5b857dbf5a32a4fa55162349dc1146850c9b76ff05bedf3a47b3f14095c0a9181900360200190a160015460105460408051602081018083526000808352925163cae9ca5160e01b81526001600160a01b0394851660048201818152602483018990526060604484019081528551606485015285519698979097169663cae9ca519692958a95909492939192608401918083838d5b838110156112fb5781810151838201526020016112e3565b50505050905090810190601f1680156113285780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561134957600080fd5b505af115801561135d573d6000803e3d6000fd5b505050506040513d602081101561137357600080fd5b50519050806113c9576040805162461bcd60e51b815260206004820152601b60248201527f557067726164652066696e616c697a6174696f6e206661696c65640000000000604482015290519081900360640190fd5b50506000600e55505042600f55565b60006113e382611020565b42101592915050565b6113f4610d48565b611433576040805162461bcd60e51b815260206004820181905260248201526000805160206124ed833981519152604482015290519081900360640190fd5b610f84816119bc565b600d5460ff1681565b6001546001600160a01b031681565b60031190565b50600190565b60006114a283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a5c565b9392505050565b6000806114b583611af3565b9050806114c6576000915050610752565b60006114d184610f87565b905060006114e182600454611b22565b9050806114f45760009350505050610752565b61151481611508858563ffffffff61196316565b9063ffffffff61192116565b95945050505050565b600061152882611b39565b9050600061153582610faa565b90506115408161074c565b61154d5761154d816107ec565b60006009828154811061155c57fe5b90600052602060002001549050600061157483610f87565b90506000611588838363ffffffff61192116565b6000878152600a60209081526040808320805460ff19166001908117909155888452600c909252909120549192506115c6919063ffffffff6116a816565b6000858152600c6020526040902055861561163b576007546115ee908263ffffffff6116a816565b6007556115fb8682611b45565b604080518781526020810183905281517ff8fcbb083cc485f0dc726d4235dbec7c9c5c03af58254f353627503577216170929181900390910190a1610efd565b610efd81611702565b50600090565b3390565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b6b908590611fc8565b6000828201838110156114a2576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600f541561182d5760015460105460408051602081018083526000808352925163cae9ca5160e01b81526001600160a01b0394851660048201818152602483018990526060604484019081528551606485015285519698979097169663cae9ca519692958a95909492939192608401918083838d5b8381101561178f578181015183820152602001611777565b50505050905090810190601f1680156117bc5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156117dd57600080fd5b505af11580156117f1573d6000803e3d6000fd5b505050506040513d602081101561180757600080fd5b505190508061182757600654611823908363ffffffff6116a816565b6006555b50610f84565b600654611840908263ffffffff6116a816565b60065550565b60008161185557506000610752565b61186e61186983600163ffffffff61146016565b611875565b9050610752565b600081611881816113d8565b6118ce576040805162461bcd60e51b8152602060048201526019602482015278125b9d195c9d985b081a185cdb89dd08195b991959081e595d603a1b604482015290519081900360640190fd5b6000838152600b6020526040902054806119165760006118f56118f086611020565b612180565b9050801561190f576000858152600b602052604090208190555b925061191a565b8092505b5050919050565b60006114a283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061226d565b600082611972575060006107e0565b8282028284828161197f57fe5b04146114a25760405162461bcd60e51b81526004018080602001828103825260218152602001806124cc6021913960400191505060405180910390fd5b6001600160a01b038116611a015760405162461bcd60e51b81526004018080602001828103825260268152602001806124a66026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115611aeb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ab0578181015183820152602001611a98565b50505050905090810190601f168015611add5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60065460009081611b03846109ed565b9050611b1a6064611508848463ffffffff61196316565b949350505050565b600081831015611b3257816114a2565b5090919050565b60006107e06000610ff7565b60125460408051633bdf23e760e21b81526004810185905290516060926001600160a01b03169163ef7c8f9c916024808301926000929190829003018186803b158015611b9157600080fd5b505afa158015611ba5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611bce57600080fd5b8101908080516040519392919084600160201b821115611bed57600080fd5b908301906020820185811115611c0257600080fd5b8251600160201b811182820188101715611c1b57600080fd5b82525081516020918201929091019080838360005b83811015611c48578181015183820152602001611c30565b50505050905090810190601f168015611c755780820380516001836020036101000a031916815260200191505b50604081905260125463d12f5e6960e01b82526020600483018181528751602485015287519798506060976001600160a01b03909316965063d12f5e69955088945092839260449091019185019080838360005b83811015611ce1578181015183820152602001611cc9565b50505050905090810190601f168015611d0e5780820380516001836020036101000a031916815260200191505b509250505060006040518083038186803b158015611d2b57600080fd5b505afa158015611d3f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611d6857600080fd5b8101908080516040519392919084600160201b821115611d8757600080fd5b908301906020820185811115611d9c57600080fd5b82518660208202830111600160201b82111715611db857600080fd5b82525081516020918201928201910280838360005b83811015611de5578181015183820152602001611dcd565b50505050919091016040525050825192935060009150611e0d9050858363ffffffff61192116565b90508015611ee55760005b60018303811015611ee3576013548451611edb916001600160a01b03169063ba7bffd390879085908110611e4857fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611e9657600080fd5b505afa158015611eaa573d6000803e3d6000fd5b505050506040513d6020811015611ec057600080fd5b50516001546001600160a01b0316908463ffffffff6122d216565b600101611e18565b505b6000611ef7868463ffffffff61232916565b6013548551919250610efd916001600160a01b039091169063ba7bffd39087906000198801908110611f2557fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611f7357600080fd5b505afa158015611f87573d6000803e3d6000fd5b505050506040513d6020811015611f9d57600080fd5b5051611faf848463ffffffff6116a816565b6001546001600160a01b0316919063ffffffff6122d216565b611fda826001600160a01b031661236b565b61202b576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106120695780518252601f19909201916020918201910161204a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146120cb576040519150601f19603f3d011682016040523d82523d6000602084013e6120d0565b606091505b509150915081612127576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610b6b5780806020019051602081101561214357600080fd5b5051610b6b5760405162461bcd60e51b815260040180806020018281038252602a81526020018061250d602a913960400191505060405180910390fd5b6000428211156121d7576040805162461bcd60e51b815260206004820152601960248201527f696e74657276616c206861736e277420656e6465642079657400000000000000604482015290519081900360640190fd5b60006121e16123a2565b9050806121f2576000915050610752565b600080612206612201826123a7565b611b39565b905084811061221b5760009350505050610752565b600061222e84600163ffffffff61146016565b9050600061223e612201836123a7565b905086811015612255578495505050505050610752565b612262848484848b6123aa565b979650505050505050565b600081836122bc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611ab0578181015183820152602001611a98565b5060008385816122c857fe5b0495945050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612324908490611fc8565b505050565b60006114a283836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250612443565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590611b1a5750141592915050565b600390565b90565b600085858585846123c1838663ffffffff61146016565b90505b60018111156124345760006123f06123e383600263ffffffff61192116565b879063ffffffff6116a816565b90506000612400612201836123a7565b90508881106124145781945080935061241b565b8196508095505b61242b858863ffffffff61146016565b925050506123c4565b50909998505050505050505050565b600081836124925760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611ab0578181015183820152602001611a98565b5082848161249c57fe5b0694935050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564496e74657276616c2061742077686963682074686520757067726164652077617320696e69746961746564206861736e277420656e64656420796574a265627a7a72315820db11ac4c32ed309279860e0bd5bf48a7b5781129131495cf1a337812d9adfc3064736f6c63430005110032",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061023d5760003560e01c806392672b351161013b578063c70cee6a116100b8578063e27000e71161007c578063e27000e7146106f1578063e8ba6509146106f9578063f2fde38b14610716578063f3a504f21461073c578063fc0c546a146107445761023d565b8063c70cee6a14610696578063ce21d8cf1461069e578063ce2830ad146106c4578063ce2b3e3c146106e1578063e1fcd5e8146106e95761023d565b8063ae10d5ea116100ff578063ae10d5ea14610605578063aeae364d14610622578063b369af711461063f578063b41e7f471461065c578063b965933e146106795761023d565b806392672b351461051a578063951315261461053757806395aeca481461053f57806397a1e43414610547578063ab7239c0146105645761023d565b806345016312116101c957806381b83c331161018d57806381b83c331461040657806386d954c01461042a5780638da5cb5b146104475780638f32d59b1461044f5780638f4ffcb1146104575761023d565b8063450163121461031b57806368ec9c42146103bc5780636a823878146103d9578063715018a6146103f657806379b18cd1146103fe5761023d565b8063183affa111610210578063183affa1146102b457806328fc33c7146102bc5780632b6fdc7e146102d957806335c9ef71146102e157806336544951146102fe5761023d565b80630a1bb1b1146102425780630da8882f146102735780630e15561a1461027d57806312f5706314610297575b600080fd5b61025f6004803603602081101561025857600080fd5b503561074c565b604080519115158252519081900360200190f35b61027b610757565b005b6102856107ad565b60408051918252519081900360200190f35b61025f600480360360208110156102ad57600080fd5b50356107b3565b6102856107e6565b61027b600480360360208110156102d257600080fd5b50356107ec565b61028561096f565b610285600480360360208110156102f757600080fd5b5035610975565b6102856004803603602081101561031457600080fd5b50356109ed565b61027b6004803603602081101561033157600080fd5b810190602081018135600160201b81111561034b57600080fd5b82018360208201111561035d57600080fd5b803590602001918460208302840111600160201b8311171561037e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610a2b945050505050565b61027b600480360360208110156103d257600080fd5b5035610a5f565b610285600480360360208110156103ef57600080fd5b5035610b71565b61027b610b83565b610285610c14565b61040e610c1a565b604080516001600160a01b039092168252519081900360200190f35b61027b6004803603602081101561044057600080fd5b5035610c29565b61040e610d39565b61025f610d48565b61027b6004803603608081101561046d57600080fd5b6001600160a01b038235811692602081013592604082013590921691810190608081016060820135600160201b8111156104a657600080fd5b8201836020820111156104b857600080fd5b803590602001918460018302840111600160201b831117156104d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d6c945050505050565b6102856004803603602081101561053057600080fd5b5035610f06565b610285610f24565b610285610f2a565b61025f6004803603602081101561055d57600080fd5b5035610f30565b61027b6004803603602081101561057a57600080fd5b810190602081018135600160201b81111561059457600080fd5b8201836020820111156105a657600080fd5b803590602001918460208302840111600160201b831117156105c757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610f4b945050505050565b61027b6004803603602081101561061b57600080fd5b5035610f7b565b6102856004803603602081101561063857600080fd5b5035610f87565b6102856004803603602081101561065557600080fd5b5035610faa565b6102856004803603602081101561067257600080fd5b5035610ff7565b6102856004803603602081101561068f57600080fd5b5035611020565b61028561103b565b61027b600480360360208110156106b457600080fd5b50356001600160a01b0316611041565b61025f600480360360208110156106da57600080fd5b50356110e6565b6102856110fb565b610285611101565b61027b611107565b61025f6004803603602081101561070f57600080fd5b50356113d8565b61027b6004803603602081101561072c57600080fd5b50356001600160a01b03166113ec565b61025f61143c565b61040e611445565b60095481105b919050565b61075f610d48565b61079e576040805162461bcd60e51b815260206004820181905260248201526000805160206124ed833981519152604482015290519081900360640190fd5b600d805460ff19166001179055565b60055481565b60006107be82611454565b80156107ce57506107ce8261145a565b80156107e057506107de826110e6565b155b92915050565b60025490565b806107f6816113d8565b610843576040805162461bcd60e51b8152602060048201526019602482015278125b9d195c9d985b081a185cdb89dd08195b991959081e595d603a1b604482015290519081900360640190fd5b600d5460ff1661089a576040805162461bcd60e51b815260206004820181905260248201527f436f6e747261637420686173206e6f74206265656e2066756e64656420796574604482015290519081900360640190fd5b600954808310156108f2576040805162461bcd60e51b815260206004820152601a60248201527f496e74657276616c20616c726561647920616c6c6f6361746564000000000000604482015290519081900360640190fd5b808311156109135761091361090e84600163ffffffff61146016565b6107ec565b600061091e846114a9565b600654909150610934908263ffffffff61146016565b600655600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155505050565b60065481565b60095460009082106109ce576040805162461bcd60e51b815260206004820152601a60248201527f496e74657276616c206e6f7420616c6c6f636174656420796574000000000000604482015290519081900360640190fd5b600982815481106109db57fe5b90600052602060002001549050919050565b600254600090821015610a195760028281548110610a0757fe5b90600052602060002001549050610752565b600280546000198101908110610a0757fe5b60005b8151811015610a5b57610a53828281518110610a4657fe5b6020026020010151610a5f565b600101610a2e565b5050565b80610a6981611454565b610aba576040805162461bcd60e51b815260206004820152601e60248201527f4b656570206e6f74207265636f676e697a656420627920666163746f72790000604482015290519081900360640190fd5b81610ac4816110e6565b15610b10576040805162461bcd60e51b815260206004820152601760248201527614995dd85c991cc8185b1c9958591e4818db185a5b5959604a1b604482015290519081900360640190fd5b82610b1a8161145a565b610b60576040805162461bcd60e51b815260206004820152601260248201527112d9595c081a5cc81b9bdd0818db1bdcd95960721b604482015290519081900360640190fd5b610b6b60018561151d565b50505050565b600c6020526000908152604090205481565b610b8b610d48565b610bca576040805162461bcd60e51b815260206004820181905260248201526000805160206124ed833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60035481565b6010546001600160a01b031681565b80610c3381611454565b610c84576040805162461bcd60e51b815260206004820152601e60248201527f4b656570206e6f74207265636f676e697a656420627920666163746f72790000604482015290519081900360640190fd5b81610c8e816110e6565b15610cda576040805162461bcd60e51b815260206004820152601760248201527614995dd85c991cc8185b1c9958591e4818db185a5b5959604a1b604482015290519081900360640190fd5b82610ce481611644565b610d2e576040805162461bcd60e51b815260206004820152601660248201527512d9595c081a5cc81b9bdd081d195c9b5a5b985d195960521b604482015290519081900360640190fd5b610b6b60008561151d565b6000546001600160a01b031690565b600080546001600160a01b0316610d5d61164a565b6001600160a01b031614905090565b6001546001600160a01b03838116911614610dc2576040805162461bcd60e51b81526020600482015260116024820152702ab739bab83837b93a32b2103a37b5b2b760791b604482015290519081900360640190fd5b600154610de0906001600160a01b031685308663ffffffff61164e16565b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610e2b57600080fd5b505afa158015610e3f573d6000803e3d6000fd5b505050506040513d6020811015610e5557600080fd5b5051600754600554919250600091610e729163ffffffff61146016565b905080821015610ec9576040805162461bcd60e51b815260206004820152601f60248201527f52657761726420636f6e747261637420686173206c6f737420746f6b656e7300604482015290519081900360640190fd5b6000610edb838363ffffffff61146016565b600554909150610ef1908263ffffffff6116a816565b600555610efd81611702565b50505050505050565b60028181548110610f1357fe5b600091825260209091200154905081565b600e5481565b60085481565b6000610f3b82611454565b80156107e057506107e082611644565b60005b8151811015610a5b57610f73828281518110610f6657fe5b6020026020010151610c29565b600101610f4e565b610f8481610a5f565b50565b60006107e0610f9583611846565b610f9e84611875565b9063ffffffff61146016565b6008546003546000919081841015610fc757600092505050610752565b6000610fd9858463ffffffff61146016565b90506000610fed828463ffffffff61192116565b9695505050505050565b60006107e06110116003548461196390919063ffffffff16565b6008549063ffffffff6116a816565b60006107e061103683600163ffffffff6116a816565b610ff7565b60045481565b611049610d48565b611088576040805162461bcd60e51b815260206004820181905260248201526000805160206124ed833981519152604482015290519081900360640190fd5b42600e55601080546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f4508cb0974b8dda93dec7c130aa186db2705fcee58bc00d1334726761835aca1916020908290030190a150565b6000908152600a602052604090205460ff1690565b600f5481565b60075481565b61110f610d48565b61114e576040805162461bcd60e51b815260206004820181905260248201526000805160206124ed833981519152604482015290519081900360640190fd5b600e5461119a576040805162461bcd60e51b8152602060048201526015602482015274155c19dc985919481b9bdd081a5b9a5d1a585d1959605a1b604482015290519081900360640190fd5b60006111a542610faa565b905060006111b4600e54610faa565b90508082116111f45760405162461bcd60e51b815260040180806020018281038252603c815260200180612537603c913960400191505060405180910390fd5b61120d61120883600163ffffffff61146016565b61074c565b6112255761122561090e83600163ffffffff61146016565b60065460055461123b908263ffffffff61146016565b60055560006006556040805182815290517f89f5b857dbf5a32a4fa55162349dc1146850c9b76ff05bedf3a47b3f14095c0a9181900360200190a160015460105460408051602081018083526000808352925163cae9ca5160e01b81526001600160a01b0394851660048201818152602483018990526060604484019081528551606485015285519698979097169663cae9ca519692958a95909492939192608401918083838d5b838110156112fb5781810151838201526020016112e3565b50505050905090810190601f1680156113285780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561134957600080fd5b505af115801561135d573d6000803e3d6000fd5b505050506040513d602081101561137357600080fd5b50519050806113c9576040805162461bcd60e51b815260206004820152601b60248201527f557067726164652066696e616c697a6174696f6e206661696c65640000000000604482015290519081900360640190fd5b50506000600e55505042600f55565b60006113e382611020565b42101592915050565b6113f4610d48565b611433576040805162461bcd60e51b815260206004820181905260248201526000805160206124ed833981519152604482015290519081900360640190fd5b610f84816119bc565b600d5460ff1681565b6001546001600160a01b031681565b60031190565b50600190565b60006114a283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a5c565b9392505050565b6000806114b583611af3565b9050806114c6576000915050610752565b60006114d184610f87565b905060006114e182600454611b22565b9050806114f45760009350505050610752565b61151481611508858563ffffffff61196316565b9063ffffffff61192116565b95945050505050565b600061152882611b39565b9050600061153582610faa565b90506115408161074c565b61154d5761154d816107ec565b60006009828154811061155c57fe5b90600052602060002001549050600061157483610f87565b90506000611588838363ffffffff61192116565b6000878152600a60209081526040808320805460ff19166001908117909155888452600c909252909120549192506115c6919063ffffffff6116a816565b6000858152600c6020526040902055861561163b576007546115ee908263ffffffff6116a816565b6007556115fb8682611b45565b604080518781526020810183905281517ff8fcbb083cc485f0dc726d4235dbec7c9c5c03af58254f353627503577216170929181900390910190a1610efd565b610efd81611702565b50600090565b3390565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b6b908590611fc8565b6000828201838110156114a2576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600f541561182d5760015460105460408051602081018083526000808352925163cae9ca5160e01b81526001600160a01b0394851660048201818152602483018990526060604484019081528551606485015285519698979097169663cae9ca519692958a95909492939192608401918083838d5b8381101561178f578181015183820152602001611777565b50505050905090810190601f1680156117bc5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156117dd57600080fd5b505af11580156117f1573d6000803e3d6000fd5b505050506040513d602081101561180757600080fd5b505190508061182757600654611823908363ffffffff6116a816565b6006555b50610f84565b600654611840908263ffffffff6116a816565b60065550565b60008161185557506000610752565b61186e61186983600163ffffffff61146016565b611875565b9050610752565b600081611881816113d8565b6118ce576040805162461bcd60e51b8152602060048201526019602482015278125b9d195c9d985b081a185cdb89dd08195b991959081e595d603a1b604482015290519081900360640190fd5b6000838152600b6020526040902054806119165760006118f56118f086611020565b612180565b9050801561190f576000858152600b602052604090208190555b925061191a565b8092505b5050919050565b60006114a283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061226d565b600082611972575060006107e0565b8282028284828161197f57fe5b04146114a25760405162461bcd60e51b81526004018080602001828103825260218152602001806124cc6021913960400191505060405180910390fd5b6001600160a01b038116611a015760405162461bcd60e51b81526004018080602001828103825260268152602001806124a66026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115611aeb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ab0578181015183820152602001611a98565b50505050905090810190601f168015611add5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60065460009081611b03846109ed565b9050611b1a6064611508848463ffffffff61196316565b949350505050565b600081831015611b3257816114a2565b5090919050565b60006107e06000610ff7565b60125460408051633bdf23e760e21b81526004810185905290516060926001600160a01b03169163ef7c8f9c916024808301926000929190829003018186803b158015611b9157600080fd5b505afa158015611ba5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611bce57600080fd5b8101908080516040519392919084600160201b821115611bed57600080fd5b908301906020820185811115611c0257600080fd5b8251600160201b811182820188101715611c1b57600080fd5b82525081516020918201929091019080838360005b83811015611c48578181015183820152602001611c30565b50505050905090810190601f168015611c755780820380516001836020036101000a031916815260200191505b50604081905260125463d12f5e6960e01b82526020600483018181528751602485015287519798506060976001600160a01b03909316965063d12f5e69955088945092839260449091019185019080838360005b83811015611ce1578181015183820152602001611cc9565b50505050905090810190601f168015611d0e5780820380516001836020036101000a031916815260200191505b509250505060006040518083038186803b158015611d2b57600080fd5b505afa158015611d3f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611d6857600080fd5b8101908080516040519392919084600160201b821115611d8757600080fd5b908301906020820185811115611d9c57600080fd5b82518660208202830111600160201b82111715611db857600080fd5b82525081516020918201928201910280838360005b83811015611de5578181015183820152602001611dcd565b50505050919091016040525050825192935060009150611e0d9050858363ffffffff61192116565b90508015611ee55760005b60018303811015611ee3576013548451611edb916001600160a01b03169063ba7bffd390879085908110611e4857fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611e9657600080fd5b505afa158015611eaa573d6000803e3d6000fd5b505050506040513d6020811015611ec057600080fd5b50516001546001600160a01b0316908463ffffffff6122d216565b600101611e18565b505b6000611ef7868463ffffffff61232916565b6013548551919250610efd916001600160a01b039091169063ba7bffd39087906000198801908110611f2557fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611f7357600080fd5b505afa158015611f87573d6000803e3d6000fd5b505050506040513d6020811015611f9d57600080fd5b5051611faf848463ffffffff6116a816565b6001546001600160a01b0316919063ffffffff6122d216565b611fda826001600160a01b031661236b565b61202b576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106120695780518252601f19909201916020918201910161204a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146120cb576040519150601f19603f3d011682016040523d82523d6000602084013e6120d0565b606091505b509150915081612127576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610b6b5780806020019051602081101561214357600080fd5b5051610b6b5760405162461bcd60e51b815260040180806020018281038252602a81526020018061250d602a913960400191505060405180910390fd5b6000428211156121d7576040805162461bcd60e51b815260206004820152601960248201527f696e74657276616c206861736e277420656e6465642079657400000000000000604482015290519081900360640190fd5b60006121e16123a2565b9050806121f2576000915050610752565b600080612206612201826123a7565b611b39565b905084811061221b5760009350505050610752565b600061222e84600163ffffffff61146016565b9050600061223e612201836123a7565b905086811015612255578495505050505050610752565b612262848484848b6123aa565b979650505050505050565b600081836122bc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611ab0578181015183820152602001611a98565b5060008385816122c857fe5b0495945050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612324908490611fc8565b505050565b60006114a283836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250612443565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590611b1a5750141592915050565b600390565b90565b600085858585846123c1838663ffffffff61146016565b90505b60018111156124345760006123f06123e383600263ffffffff61192116565b879063ffffffff6116a816565b90506000612400612201836123a7565b90508881106124145781945080935061241b565b8196508095505b61242b858863ffffffff61146016565b925050506123c4565b50909998505050505050505050565b600081836124925760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611ab0578181015183820152602001611a98565b5082848161249c57fe5b0694935050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564496e74657276616c2061742077686963682074686520757067726164652077617320696e69746961746564206861736e277420656e64656420796574a265627a7a72315820db11ac4c32ed309279860e0bd5bf48a7b5781129131495cf1a337812d9adfc3064736f6c63430005110032",
  "networks": {
    "1": {
      "events": {
        "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "previousOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "newOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipTransferred",
          "type": "event"
        },
        "0xf8fcbb083cc485f0dc726d4235dbec7c9c5c03af58254f353627503577216170": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "keep",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "RewardReceived",
          "type": "event"
        },
        "0x89f5b857dbf5a32a4fa55162349dc1146850c9b76ff05bedf3a47b3f14095c0a": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amountTransferred",
              "type": "uint256"
            }
          ],
          "name": "UpgradeFinalized",
          "type": "event"
        },
        "0x4508cb0974b8dda93dec7c130aa186db2705fcee58bc00d1334726761835aca1": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "newRewardsContract",
              "type": "address"
            }
          ],
          "name": "UpgradeInitiated",
          "type": "event"
        }
      },
      "links": {},
      "address": "0x8fec9CF78087064F1f32269F68F94ae343FFbfFf",
      "transactionHash": "0x6cb2cfb901643e879de32189694165cfcc5a10ba61829a76e82e88903d4560d3"
    }
  },
  "schemaVersion": "3.1.0",
  "updatedAt": "2020-11-04T20:32:35.697Z",
  "networkType": "ethereum"
}