{
  "_format": "hh-sol-artifact-1",
  "contractName": "WBQI",
  "sourceName": "contracts/__deprecated__/AssetWrappers/WBQI.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "ERC20_symbol",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "ERC20_name",
          "type": "string"
        },
        {
          "internalType": "uint8",
          "name": "ERC20_decimals",
          "type": "uint8"
        },
        {
          "internalType": "contract IERC20",
          "name": "_QiToken",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_QI",
          "type": "address"
        },
        {
          "internalType": "contract IComptroller",
          "name": "Comptroller",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "QI",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "Qtoken",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "SHAREOFFSET",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "_Comptroller",
      "outputs": [
        {
          "internalType": "contract IComptroller",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        }
      ],
      "name": "claimReward",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "endTreasuryReward",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_for",
          "type": "address"
        }
      ],
      "name": "getPendingRewards",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "getUserInfo",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "globalAVAXRewardPending",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "globalQIRewardPending",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_activePool",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_VML",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_VMR",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_defaultPool",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_stabilityPool",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_VaultedgeFinanceTreasury",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_borrowerOperations",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_collSurplusPool",
          "type": "address"
        }
      ],
      "name": "setAddresses",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "unwrap",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "unwrapFor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "updateReward",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "wrap",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x6001608081815260c06040529060a0602080368337505081516200002b92600792506020019062000128565b5064e8d4a510006011553480156200004257600080fd5b50604051620025bd380380620025bd833981016040819052620000659162000287565b84866003620000758382620003db565b506004620000848282620003db565b50506012805460ff87166101000261ff001990911617905550600580546001600160a01b038086166001600160a01b0319928316811790935560068054868316908416179055600880549185169190921617905560078054600090620000ee57620000ee620004a7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550505050505050620004bd565b82805482825590600052602060002090810192821562000180579160200282015b828111156200018057825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000149565b506200018e92915062000192565b5090565b5b808211156200018e576000815560010162000193565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001d157600080fd5b81516001600160401b0380821115620001ee57620001ee620001a9565b604051601f8301601f19908116603f01168101908282118183101715620002195762000219620001a9565b816040528381526020925086838588010111156200023657600080fd5b600091505b838210156200025a57858201830151818301840152908201906200023b565b600093810190920192909252949350505050565b6001600160a01b03811681146200028457600080fd5b50565b60008060008060008060c08789031215620002a157600080fd5b86516001600160401b0380821115620002b957600080fd5b620002c78a838b01620001bf565b97506020890151915080821115620002de57600080fd5b50620002ed89828a01620001bf565b955050604087015160ff811681146200030557600080fd5b606088015190945062000318816200026e565b60808801519093506200032b816200026e565b60a08801519092506200033e816200026e565b809150509295509295509295565b600181811c908216806200036157607f821691505b6020821081036200038257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003d657600081815260208120601f850160051c81016020861015620003b15750805b601f850160051c820191505b81811015620003d257828155600101620003bd565b5050505b505050565b81516001600160401b03811115620003f757620003f7620001a9565b6200040f816200040884546200034c565b8462000388565b602080601f8311600181146200044757600084156200042e5750858301515b600019600386901b1c1916600185901b178555620003d2565b600085815260208120601f198616915b82811015620004785788860151825594840194600190910190840162000457565b5085821015620004975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b6120f080620004cd6000396000f3fe6080604052600436106101a55760003560e01c8063932eeefe116100e1578063d279c1911161008a578063de0e9a3e11610064578063de0e9a3e14610546578063e2111e4514610566578063f6ed201714610586578063ffe75a36146105b457600080fd5b8063d279c191146104c0578063d733cfd0146104e0578063dd62ed3e1461050057600080fd5b8063a9059cbb116100bb578063a9059cbb1461046a578063c2861f021461048a578063ca70560a146104a057600080fd5b8063932eeefe1461041557806395d89b4114610435578063a457c2d71461044a57600080fd5b80632d3d009a1161014e578063395093511161012857806339509351146102e35780635f22f53f146103035780636386c1c71461033b57806370a08231146103df57600080fd5b80632d3d009a1461028d578063313ce567146102a3578063345acd71146102cd57600080fd5b806323b872dd1161017f57806323b872dd1461022b578063261c80b61461024b5780632c8e8dfa1461026d57600080fd5b806306fdde03146101b1578063095ea7b3146101dc57806318160ddd1461020c57600080fd5b366101ac57005b600080fd5b3480156101bd57600080fd5b506101c66105d4565b6040516101d39190611caa565b60405180910390f35b3480156101e857600080fd5b506101fc6101f7366004611d14565b610666565b60405190151581526020016101d3565b34801561021857600080fd5b506002545b6040519081526020016101d3565b34801561023757600080fd5b506101fc610246366004611d3e565b610680565b34801561025757600080fd5b5061026b610266366004611d3e565b6106a4565b005b34801561027957600080fd5b5061026b610288366004611d3e565b610733565b34801561029957600080fd5b5061021d60155481565b3480156102af57600080fd5b50601254610100900460ff1660405160ff90911681526020016101d3565b3480156102d957600080fd5b5061021d60145481565b3480156102ef57600080fd5b506101fc6102fe366004611d14565b6107d8565b34801561030f57600080fd5b50600654610323906001600160a01b031681565b6040516001600160a01b0390911681526020016101d3565b34801561034757600080fd5b506103c4610356366004611d7a565b6001600160a01b0316600090815260136020908152604091829020825160e0810184528154808252600183015493820184905260028301549482018590526003830154606083015260048301546080830152600583015460a083015260069092015460c09091015292909190565b604080519384526020840192909252908201526060016101d3565b3480156103eb57600080fd5b5061021d6103fa366004611d7a565b6001600160a01b031660009081526020819052604090205490565b34801561042157600080fd5b5061026b610430366004611d9c565b610817565b34801561044157600080fd5b506101c66108e9565b34801561045657600080fd5b506101fc610465366004611d14565b6108f8565b34801561047657600080fd5b506101fc610485366004611d14565b6109a7565b34801561049657600080fd5b5061021d60115481565b3480156104ac57600080fd5b5061026b6104bb366004611d14565b6109b5565b3480156104cc57600080fd5b5061026b6104db366004611d7a565b610a17565b3480156104ec57600080fd5b5061026b6104fb366004611de9565b610a24565b34801561050c57600080fd5b5061021d61051b366004611e80565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561055257600080fd5b5061026b610561366004611eb3565b610b98565b34801561057257600080fd5b50600854610323906001600160a01b031681565b34801561059257600080fd5b506105a66105a1366004611d7a565b610c1b565b6040516101d3929190611ecc565b3480156105c057600080fd5b50600554610323906001600160a01b031681565b6060600380546105e390611f50565b80601f016020809104026020016040519081016040528092919081815260200182805461060f90611f50565b801561065c5780601f106106315761010080835404028352916020019161065c565b820191906000526020600020905b81548152906001019060200180831161063f57829003601f168201915b5050505050905090565b600033610674818585610d78565b60019150505b92915050565b60003361068e858285610ed0565b610699858585610f5c565b506001949350505050565b6106ac611149565b6106b633826111f5565b60055460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610709573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072d9190611f8a565b50505050565b61073b61135e565b610744836113f7565b6001600160a01b038316600090815260136020526040902054610768908290611fc2565b6001600160a01b038085166000908152601360205260409020919091558216156107d357610795826113f7565b6001600160a01b0382166000908152601360205260409020546107b9908290611fd5565b6001600160a01b0383166000908152601360205260409020555b505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906106749082908690610812908790611fd5565b610d78565b6005546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab9190611f8a565b506108b682856117f2565b6108bf336113f7565b33600090815260136020526040812080548692906108de908490611fd5565b909155505050505050565b6060600480546105e390611f50565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091908381101561099a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106998286868403610d78565b600033610674818585610f5c565b6109bd6118b1565b600e546109d2906001600160a01b03166113f7565b600e546001600160a01b03166000908152601360205260409020546109f8908290611fc2565b600e546001600160a01b03166000908152601360205260409020555050565b610a213382611946565b50565b60125460ff1615610a9d5760405162461bcd60e51b815260206004820152602360248201527f7365744164647265737365733a2041646472657373657320616c72656164792060448201527f73657400000000000000000000000000000000000000000000000000000000006064820152608401610991565b610aa688611988565b610aaf87611988565b610ab886611988565b610ac185611988565b610aca84611988565b610ad383611988565b610adc82611988565b610ae581611988565b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039a8b1617909155600a80548216988a1698909817909755600b8054881696891696909617909555600c8054871694881694909417909355600d8054861692871692909217909155600e80548516918616919091179055600f805484169185169190911790556010805490921692169190911790556012805460ff19166001179055565b610ba233826111f5565b60055460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c179190611f8a565b5050565b60408051600280825260608281019093528291600091816020016020820280368337505060408051600280825260608201835293945060009390925090602083019080368337019050509050600082600081518110610c7c57610c7c611fe8565b60200260200101906001600160a01b031690816001600160a01b03168152505060136000866001600160a01b03166001600160a01b031681526020019081526020016000206004015481600081518110610cd857610cd8611fe8565b602090810291909101015260065482516001600160a01b039091169083906001908110610d0757610d07611fe8565b60200260200101906001600160a01b031690816001600160a01b03168152505060136000866001600160a01b03166001600160a01b031681526020019081526020016000206005015481600181518110610d6357610d63611fe8565b60209081029190910101529094909350915050565b6001600160a01b038316610df35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610991565b6001600160a01b038216610e6f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610991565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461072d5781811015610f4f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610991565b61072d8484848403610d78565b6001600160a01b038316610fd85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610991565b6001600160a01b0382166110545760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610991565b6001600160a01b038316600090815260208190526040902054818110156110e35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610991565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361072d565b6009546001600160a01b031633148061116c5750600d546001600160a01b031633145b8061118157506010546001600160a01b031633145b6111f35760405162461bcd60e51b815260206004820152602b60248201527f43616c6c6572206973206e6f742061637469766520706f6f6c206f722073746160448201527f62696c69747920706f6f6c0000000000000000000000000000000000000000006064820152608401610991565b565b6001600160a01b0382166112715760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610991565b6001600160a01b038216600090815260208190526040902054818110156113005760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610991565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600a546001600160a01b03163314806113815750600b546001600160a01b031633145b806113965750600c546001600160a01b031633145b806113ab5750600f546001600160a01b031633145b6111f35760405162461bcd60e51b815260206004820152601160248201527f43616c6c6572206973206e6f74204c52440000000000000000000000000000006044820152606401610991565b600854604051633a22995760e11b81526001600160a01b039091169063744532ae9061142d906000903090600790600401611ffe565b600060405180830381600087803b15801561144757600080fd5b505af115801561145b573d6000803e3d6000fd5b5050600854604051633a22995760e11b81526001600160a01b03909116925063744532ae9150611495906001903090600790600401611ffe565b600060405180830381600087803b1580156114af57600080fd5b505af11580156114c3573d6000803e3d6000fd5b505050506001600160a01b038116600090815260136020908152604091829020825160e08101845281548082526001830154938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a08401526006015460c0830152156116fe5760008060008360600151111561158b578260600151601154846020015161155b9190612068565b611565919061207f565b91508260600151601154846040015161157e9190612068565b611588919061207f565b90505b600061159660025490565b6011546014546115a69047611fc2565b6115b09190612068565b6115ba919061207f565b905060006115c760025490565b6011546015546006546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611615573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163991906120a1565b6116439190611fc2565b61164d9190612068565b611657919061207f565b601154865191925060009161166c8786611fc2565b6116769190612068565b611680919061207f565b60115487519192506000916116958786611fc2565b61169f9190612068565b6116a9919061207f565b90508187608001516116bb9190611fd5565b608088015260a08701516116d0908290611fd5565b60a08801526014546116e3908390611fd5565b6014556015546116f4908290611fd5565b6015555050505050505b60145461170b9047611fc2565b60208201526015546006546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561175b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177f91906120a1565b6117899190611fc2565b6040820152600254606082019081526001600160a01b0390921660009081526013602090815260409182902083518155908301516001820155908201516002820155915160038301556080810151600483015560a0810151600583015560c00151600690910155565b6001600160a01b0382166118485760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610991565b806002600082825461185a9190611fd5565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600d546001600160a01b03163314806118d45750600c546001600160a01b031633145b6111f35760405162461bcd60e51b815260206004820152602c60248201527f43616c6c6572206973206e6f742073746162696c69747920706f6f6c206f722060448201527f64656661756c7420706f6f6c00000000000000000000000000000000000000006064820152608401610991565b61194f826113f7565b6001600160a01b03821660009081526013602052604081206004810180546005909201805491849055929092559061072d838383611a31565b6001600160a01b0381166119de5760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e742063616e6e6f74206265207a65726f206164647265737300006044820152606401610991565b803b6000819003610c175760405162461bcd60e51b815260206004820181905260248201527f4163636f756e7420636f64652073697a652063616e6e6f74206265207a65726f6044820152606401610991565b6006546040516370a0823160e01b815230600482015247916000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa291906120a1565b905081841115611b1a5781601454611aba9190611fc2565b60145560405160009081906001600160a01b0388169085908381818185875af1925050503d8060008114611b0a576040519150601f19603f3d011682016040523d82523d6000602084013e611b0f565b606091505b50611b839350505050565b83601454611b289190611fc2565b60145560405160009081906001600160a01b0388169087908381818185875af1925050503d8060008114611b78576040519150601f19603f3d011682016040523d82523d6000602084013e611b7d565b606091505b50505050505b80831115611c195780601554611b999190611fc2565b60155560065460405163a9059cbb60e01b81526001600160a01b038781166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015611bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c139190611f8a565b50611ca3565b82601554611c279190611fc2565b60155560065460405163a9059cbb60e01b81526001600160a01b038781166004830152602482018690529091169063a9059cbb906044016020604051808303816000875af1158015611c7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca19190611f8a565b505b5050505050565b600060208083528351808285015260005b81811015611cd757858101830151858201604001528201611cbb565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611d0f57600080fd5b919050565b60008060408385031215611d2757600080fd5b611d3083611cf8565b946020939093013593505050565b600080600060608486031215611d5357600080fd5b611d5c84611cf8565b9250611d6a60208501611cf8565b9150604084013590509250925092565b600060208284031215611d8c57600080fd5b611d9582611cf8565b9392505050565b60008060008060808587031215611db257600080fd5b84359350611dc260208601611cf8565b9250611dd060408601611cf8565b9150611dde60608601611cf8565b905092959194509250565b600080600080600080600080610100898b031215611e0657600080fd5b611e0f89611cf8565b9750611e1d60208a01611cf8565b9650611e2b60408a01611cf8565b9550611e3960608a01611cf8565b9450611e4760808a01611cf8565b9350611e5560a08a01611cf8565b9250611e6360c08a01611cf8565b9150611e7160e08a01611cf8565b90509295985092959890939650565b60008060408385031215611e9357600080fd5b611e9c83611cf8565b9150611eaa60208401611cf8565b90509250929050565b600060208284031215611ec557600080fd5b5035919050565b604080825283519082018190526000906020906060840190828701845b82811015611f0e5781516001600160a01b031684529284019290840190600101611ee9565b5050508381038285015284518082528583019183019060005b81811015611f4357835183529284019291840191600101611f27565b5090979650505050505050565b600181811c90821680611f6457607f821691505b602082108103611f8457634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611f9c57600080fd5b81518015158114611d9557600080fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561067a5761067a611fac565b8082018082111561067a5761067a611fac565b634e487b7160e01b600052603260045260246000fd5b60006060820160ff8616835260206001600160a01b0380871682860152606060408601528286548085526080870191508760005283600020945060005b8181101561205957855484168352600195860195928501920161203b565b50909998505050505050505050565b808202811582820484141761067a5761067a611fac565b60008261209c57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156120b357600080fd5b505191905056fea26469706673582212207101f1bd62297269c28c4fe05b8b3af493564514ed9bf3c8ca84de1b04fa6f5b64736f6c63430008130033",
  "deployedBytecode": "0x6080604052600436106101a55760003560e01c8063932eeefe116100e1578063d279c1911161008a578063de0e9a3e11610064578063de0e9a3e14610546578063e2111e4514610566578063f6ed201714610586578063ffe75a36146105b457600080fd5b8063d279c191146104c0578063d733cfd0146104e0578063dd62ed3e1461050057600080fd5b8063a9059cbb116100bb578063a9059cbb1461046a578063c2861f021461048a578063ca70560a146104a057600080fd5b8063932eeefe1461041557806395d89b4114610435578063a457c2d71461044a57600080fd5b80632d3d009a1161014e578063395093511161012857806339509351146102e35780635f22f53f146103035780636386c1c71461033b57806370a08231146103df57600080fd5b80632d3d009a1461028d578063313ce567146102a3578063345acd71146102cd57600080fd5b806323b872dd1161017f57806323b872dd1461022b578063261c80b61461024b5780632c8e8dfa1461026d57600080fd5b806306fdde03146101b1578063095ea7b3146101dc57806318160ddd1461020c57600080fd5b366101ac57005b600080fd5b3480156101bd57600080fd5b506101c66105d4565b6040516101d39190611caa565b60405180910390f35b3480156101e857600080fd5b506101fc6101f7366004611d14565b610666565b60405190151581526020016101d3565b34801561021857600080fd5b506002545b6040519081526020016101d3565b34801561023757600080fd5b506101fc610246366004611d3e565b610680565b34801561025757600080fd5b5061026b610266366004611d3e565b6106a4565b005b34801561027957600080fd5b5061026b610288366004611d3e565b610733565b34801561029957600080fd5b5061021d60155481565b3480156102af57600080fd5b50601254610100900460ff1660405160ff90911681526020016101d3565b3480156102d957600080fd5b5061021d60145481565b3480156102ef57600080fd5b506101fc6102fe366004611d14565b6107d8565b34801561030f57600080fd5b50600654610323906001600160a01b031681565b6040516001600160a01b0390911681526020016101d3565b34801561034757600080fd5b506103c4610356366004611d7a565b6001600160a01b0316600090815260136020908152604091829020825160e0810184528154808252600183015493820184905260028301549482018590526003830154606083015260048301546080830152600583015460a083015260069092015460c09091015292909190565b604080519384526020840192909252908201526060016101d3565b3480156103eb57600080fd5b5061021d6103fa366004611d7a565b6001600160a01b031660009081526020819052604090205490565b34801561042157600080fd5b5061026b610430366004611d9c565b610817565b34801561044157600080fd5b506101c66108e9565b34801561045657600080fd5b506101fc610465366004611d14565b6108f8565b34801561047657600080fd5b506101fc610485366004611d14565b6109a7565b34801561049657600080fd5b5061021d60115481565b3480156104ac57600080fd5b5061026b6104bb366004611d14565b6109b5565b3480156104cc57600080fd5b5061026b6104db366004611d7a565b610a17565b3480156104ec57600080fd5b5061026b6104fb366004611de9565b610a24565b34801561050c57600080fd5b5061021d61051b366004611e80565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561055257600080fd5b5061026b610561366004611eb3565b610b98565b34801561057257600080fd5b50600854610323906001600160a01b031681565b34801561059257600080fd5b506105a66105a1366004611d7a565b610c1b565b6040516101d3929190611ecc565b3480156105c057600080fd5b50600554610323906001600160a01b031681565b6060600380546105e390611f50565b80601f016020809104026020016040519081016040528092919081815260200182805461060f90611f50565b801561065c5780601f106106315761010080835404028352916020019161065c565b820191906000526020600020905b81548152906001019060200180831161063f57829003601f168201915b5050505050905090565b600033610674818585610d78565b60019150505b92915050565b60003361068e858285610ed0565b610699858585610f5c565b506001949350505050565b6106ac611149565b6106b633826111f5565b60055460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610709573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072d9190611f8a565b50505050565b61073b61135e565b610744836113f7565b6001600160a01b038316600090815260136020526040902054610768908290611fc2565b6001600160a01b038085166000908152601360205260409020919091558216156107d357610795826113f7565b6001600160a01b0382166000908152601360205260409020546107b9908290611fd5565b6001600160a01b0383166000908152601360205260409020555b505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906106749082908690610812908790611fd5565b610d78565b6005546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab9190611f8a565b506108b682856117f2565b6108bf336113f7565b33600090815260136020526040812080548692906108de908490611fd5565b909155505050505050565b6060600480546105e390611f50565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091908381101561099a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106998286868403610d78565b600033610674818585610f5c565b6109bd6118b1565b600e546109d2906001600160a01b03166113f7565b600e546001600160a01b03166000908152601360205260409020546109f8908290611fc2565b600e546001600160a01b03166000908152601360205260409020555050565b610a213382611946565b50565b60125460ff1615610a9d5760405162461bcd60e51b815260206004820152602360248201527f7365744164647265737365733a2041646472657373657320616c72656164792060448201527f73657400000000000000000000000000000000000000000000000000000000006064820152608401610991565b610aa688611988565b610aaf87611988565b610ab886611988565b610ac185611988565b610aca84611988565b610ad383611988565b610adc82611988565b610ae581611988565b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039a8b1617909155600a80548216988a1698909817909755600b8054881696891696909617909555600c8054871694881694909417909355600d8054861692871692909217909155600e80548516918616919091179055600f805484169185169190911790556010805490921692169190911790556012805460ff19166001179055565b610ba233826111f5565b60055460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c179190611f8a565b5050565b60408051600280825260608281019093528291600091816020016020820280368337505060408051600280825260608201835293945060009390925090602083019080368337019050509050600082600081518110610c7c57610c7c611fe8565b60200260200101906001600160a01b031690816001600160a01b03168152505060136000866001600160a01b03166001600160a01b031681526020019081526020016000206004015481600081518110610cd857610cd8611fe8565b602090810291909101015260065482516001600160a01b039091169083906001908110610d0757610d07611fe8565b60200260200101906001600160a01b031690816001600160a01b03168152505060136000866001600160a01b03166001600160a01b031681526020019081526020016000206005015481600181518110610d6357610d63611fe8565b60209081029190910101529094909350915050565b6001600160a01b038316610df35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610991565b6001600160a01b038216610e6f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610991565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461072d5781811015610f4f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610991565b61072d8484848403610d78565b6001600160a01b038316610fd85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610991565b6001600160a01b0382166110545760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610991565b6001600160a01b038316600090815260208190526040902054818110156110e35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610991565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361072d565b6009546001600160a01b031633148061116c5750600d546001600160a01b031633145b8061118157506010546001600160a01b031633145b6111f35760405162461bcd60e51b815260206004820152602b60248201527f43616c6c6572206973206e6f742061637469766520706f6f6c206f722073746160448201527f62696c69747920706f6f6c0000000000000000000000000000000000000000006064820152608401610991565b565b6001600160a01b0382166112715760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610991565b6001600160a01b038216600090815260208190526040902054818110156113005760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610991565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600a546001600160a01b03163314806113815750600b546001600160a01b031633145b806113965750600c546001600160a01b031633145b806113ab5750600f546001600160a01b031633145b6111f35760405162461bcd60e51b815260206004820152601160248201527f43616c6c6572206973206e6f74204c52440000000000000000000000000000006044820152606401610991565b600854604051633a22995760e11b81526001600160a01b039091169063744532ae9061142d906000903090600790600401611ffe565b600060405180830381600087803b15801561144757600080fd5b505af115801561145b573d6000803e3d6000fd5b5050600854604051633a22995760e11b81526001600160a01b03909116925063744532ae9150611495906001903090600790600401611ffe565b600060405180830381600087803b1580156114af57600080fd5b505af11580156114c3573d6000803e3d6000fd5b505050506001600160a01b038116600090815260136020908152604091829020825160e08101845281548082526001830154938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a08401526006015460c0830152156116fe5760008060008360600151111561158b578260600151601154846020015161155b9190612068565b611565919061207f565b91508260600151601154846040015161157e9190612068565b611588919061207f565b90505b600061159660025490565b6011546014546115a69047611fc2565b6115b09190612068565b6115ba919061207f565b905060006115c760025490565b6011546015546006546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611615573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163991906120a1565b6116439190611fc2565b61164d9190612068565b611657919061207f565b601154865191925060009161166c8786611fc2565b6116769190612068565b611680919061207f565b60115487519192506000916116958786611fc2565b61169f9190612068565b6116a9919061207f565b90508187608001516116bb9190611fd5565b608088015260a08701516116d0908290611fd5565b60a08801526014546116e3908390611fd5565b6014556015546116f4908290611fd5565b6015555050505050505b60145461170b9047611fc2565b60208201526015546006546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561175b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177f91906120a1565b6117899190611fc2565b6040820152600254606082019081526001600160a01b0390921660009081526013602090815260409182902083518155908301516001820155908201516002820155915160038301556080810151600483015560a0810151600583015560c00151600690910155565b6001600160a01b0382166118485760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610991565b806002600082825461185a9190611fd5565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600d546001600160a01b03163314806118d45750600c546001600160a01b031633145b6111f35760405162461bcd60e51b815260206004820152602c60248201527f43616c6c6572206973206e6f742073746162696c69747920706f6f6c206f722060448201527f64656661756c7420706f6f6c00000000000000000000000000000000000000006064820152608401610991565b61194f826113f7565b6001600160a01b03821660009081526013602052604081206004810180546005909201805491849055929092559061072d838383611a31565b6001600160a01b0381166119de5760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e742063616e6e6f74206265207a65726f206164647265737300006044820152606401610991565b803b6000819003610c175760405162461bcd60e51b815260206004820181905260248201527f4163636f756e7420636f64652073697a652063616e6e6f74206265207a65726f6044820152606401610991565b6006546040516370a0823160e01b815230600482015247916000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa291906120a1565b905081841115611b1a5781601454611aba9190611fc2565b60145560405160009081906001600160a01b0388169085908381818185875af1925050503d8060008114611b0a576040519150601f19603f3d011682016040523d82523d6000602084013e611b0f565b606091505b50611b839350505050565b83601454611b289190611fc2565b60145560405160009081906001600160a01b0388169087908381818185875af1925050503d8060008114611b78576040519150601f19603f3d011682016040523d82523d6000602084013e611b7d565b606091505b50505050505b80831115611c195780601554611b999190611fc2565b60155560065460405163a9059cbb60e01b81526001600160a01b038781166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015611bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c139190611f8a565b50611ca3565b82601554611c279190611fc2565b60155560065460405163a9059cbb60e01b81526001600160a01b038781166004830152602482018690529091169063a9059cbb906044016020604051808303816000875af1158015611c7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca19190611f8a565b505b5050505050565b600060208083528351808285015260005b81811015611cd757858101830151858201604001528201611cbb565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611d0f57600080fd5b919050565b60008060408385031215611d2757600080fd5b611d3083611cf8565b946020939093013593505050565b600080600060608486031215611d5357600080fd5b611d5c84611cf8565b9250611d6a60208501611cf8565b9150604084013590509250925092565b600060208284031215611d8c57600080fd5b611d9582611cf8565b9392505050565b60008060008060808587031215611db257600080fd5b84359350611dc260208601611cf8565b9250611dd060408601611cf8565b9150611dde60608601611cf8565b905092959194509250565b600080600080600080600080610100898b031215611e0657600080fd5b611e0f89611cf8565b9750611e1d60208a01611cf8565b9650611e2b60408a01611cf8565b9550611e3960608a01611cf8565b9450611e4760808a01611cf8565b9350611e5560a08a01611cf8565b9250611e6360c08a01611cf8565b9150611e7160e08a01611cf8565b90509295985092959890939650565b60008060408385031215611e9357600080fd5b611e9c83611cf8565b9150611eaa60208401611cf8565b90509250929050565b600060208284031215611ec557600080fd5b5035919050565b604080825283519082018190526000906020906060840190828701845b82811015611f0e5781516001600160a01b031684529284019290840190600101611ee9565b5050508381038285015284518082528583019183019060005b81811015611f4357835183529284019291840191600101611f27565b5090979650505050505050565b600181811c90821680611f6457607f821691505b602082108103611f8457634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611f9c57600080fd5b81518015158114611d9557600080fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561067a5761067a611fac565b8082018082111561067a5761067a611fac565b634e487b7160e01b600052603260045260246000fd5b60006060820160ff8616835260206001600160a01b0380871682860152606060408601528286548085526080870191508760005283600020945060005b8181101561205957855484168352600195860195928501920161203b565b50909998505050505050505050565b808202811582820484141761067a5761067a611fac565b60008261209c57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156120b357600080fd5b505191905056fea26469706673582212207101f1bd62297269c28c4fe05b8b3af493564514ed9bf3c8ca84de1b04fa6f5b64736f6c63430008130033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
