@gooddollar/goodcontracts
Version:
GoodDollar Contracts
800 lines • 1.61 MB
JSON
{
"contractName": "FuseStakingV3",
"abi": [
{
"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": true,
"internalType": "uint256",
"name": "currentDay",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "ubi",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "communityPool",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "gdBought",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "stakingRewards",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "pendingFuseEarnings",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "keeper",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "keeperGDFee",
"type": "uint256"
}
],
"name": "UBICollected",
"type": "event"
},
{
"inputs": [],
"name": "GD",
"outputs": [
{
"internalType": "contract GoodDollar",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "RATIO_BASE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"name": "add",
"outputs": [
{
"internalType": "uint256",
"name": "z",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "communityPoolRatio",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "consensus",
"outputs": [
{
"internalType": "contract IConsensus",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "int256",
"name": "x",
"type": "int256"
},
{
"internalType": "int256",
"name": "y",
"type": "int256"
}
],
"name": "imax",
"outputs": [
{
"internalType": "int256",
"name": "z",
"type": "int256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "int256",
"name": "x",
"type": "int256"
},
{
"internalType": "int256",
"name": "y",
"type": "int256"
}
],
"name": "imin",
"outputs": [
{
"internalType": "int256",
"name": "z",
"type": "int256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "keeperFeeRatio",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lastDayCollected",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"name": "max",
"outputs": [
{
"internalType": "uint256",
"name": "z",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "maxSlippageRatio",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"name": "min",
"outputs": [
{
"internalType": "uint256",
"name": "z",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"name": "mul",
"outputs": [
{
"internalType": "uint256",
"name": "z",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"name": "rdiv",
"outputs": [
{
"internalType": "uint256",
"name": "z",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"name": "rmul",
"outputs": [
{
"internalType": "uint256",
"name": "z",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "n",
"type": "uint256"
}
],
"name": "rpow",
"outputs": [
{
"internalType": "uint256",
"name": "z",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "stakeBackRatio",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "stakers",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"name": "sub",
"outputs": [
{
"internalType": "uint256",
"name": "z",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "ubischeme",
"outputs": [
{
"internalType": "contract UBIScheme",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "uniswap",
"outputs": [
{
"internalType": "contract Uniswap",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "uniswapFactory",
"outputs": [
{
"internalType": "contract UniswapFactory",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "uniswapPair",
"outputs": [
{
"internalType": "contract UniswapPair",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "validators",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"name": "wdiv",
"outputs": [
{
"internalType": "uint256",
"name": "z",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"name": "wmul",
"outputs": [
{
"internalType": "uint256",
"name": "z",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
},
{
"inputs": [],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "upgrade0",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_gd",
"type": "address"
},
{
"internalType": "address",
"name": "_ubischeme",
"type": "address"
},
{
"internalType": "address",
"name": "_uniswap",
"type": "address"
}
],
"name": "upgrade1",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "stake",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_validator",
"type": "address"
}
],
"name": "stake",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_v",
"type": "address"
}
],
"name": "addValidator",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "totalDelegated",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_validator",
"type": "address"
}
],
"name": "removeValidator",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "collectUBIInterest",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "calcMaxFuseWithSlippage",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "r_fuse",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "r_gd",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "calcMaxFuseWithSlippage",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":true,\"internalType\":\"uint256\",\"name\":\"currentDay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ubi\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"communityPool\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gdBought\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakingRewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pendingFuseEarnings\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"keeper\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"keeperGDFee\",\"type\":\"uint256\"}],\"name\":\"UBICollected\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"GD\",\"outputs\":[{\"internalType\":\"contract GoodDollar\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RATIO_BASE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"add\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_v\",\"type\":\"address\"}],\"name\":\"addValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"r_fuse\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"r_gd\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"calcMaxFuseWithSlippage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"calcMaxFuseWithSlippage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectUBIInterest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"communityPoolRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consensus\",\"outputs\":[{\"internalType\":\"contract IConsensus\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"y\",\"type\":\"int256\"}],\"name\":\"imax\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"z\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"y\",\"type\":\"int256\"}],\"name\":\"imin\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"z\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"keeperFeeRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastDayCollected\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"max\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxSlippageRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"min\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"mul\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"rdiv\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_validator\",\"type\":\"address\"}],\"name\":\"removeValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"rmul\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"n\",\"type\":\"uint256\"}],\"name\":\"rpow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_validator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeBackRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"stakers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"sub\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalDelegated\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ubischeme\",\"outputs\":[{\"internalType\":\"contract UBIScheme\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniswap\",\"outputs\":[{\"internalType\":\"contract Uniswap\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniswapFactory\",\"outputs\":[{\"internalType\":\"contract UniswapFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniswapPair\",\"outputs\":[{\"internalType\":\"contract UniswapPair\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"upgrade0\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gd\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ubischeme\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_uniswap\",\"type\":\"address\"}],\"name\":\"upgrade1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"validators\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"wdiv\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"wmul\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"calcMaxFuseWithSlippage(uint256,uint256,uint256)\":{\"details\":\"use binary search to find quantity that will result with slippage < maxSlippageRatio\"},\"initialize()\":{\"details\":\"initialize\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/upgradables/contracts/staking/FuseStakingV3.sol\":\"FuseStakingV3\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/upgradables/contracts/Interfaces.sol\":{\"keccak256\":\"0xe501727b0e5e15fe639129ab4b1abc59a14ebd3ddd05bb7056ac4fc26a8f3ee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90d8797740cfd3933ae849f3144e30f9133a55b26634b3efefa8206cd91f62d8\",\"dweb:/ipfs/QmYLeetoyiPej9acnGzjLLwgVnEg4d2Eg1Xb4k3A1mJqj6\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/upgradables/contracts/staking/FuseStakingV3.sol\":{\"keccak256\":\"0x499a7548bed80359f337b487318cb2fa04f5ba0fd2c6776b8beabf6349f04997\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a1a9e5394281cf86fef8bcd6e88193de1d8b86c3dafc506994f271c1e3314d1\",\"dweb:/ipfs/QmUYRzxjhSY9Yd2BRuqHMNMxBtzsZDASBPxXxZa33L8jMC\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/upgradables/contracts/utils/DSMath.sol\":{\"keccak256\":\"0x064e3a362de2b979b6afd9d9b00ef9682b61d3a2560f53a18535c36e5dacf57d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d86b2691be131202255756be3509685b4b00b65469577caba7d90d0a54be47f6\",\"dweb:/ipfs/QmP2MBv2YTd257qSv6TJmxmSwTcP4zDC3M51TjmL8Mv7xQ\"]},\"@openzeppelin/contracts-upgradeable/GSN/ContextUpgradeable.sol\":{\"keccak256\":\"0xbbf8a21b9a66c48d45ff771b8563c6df19ba451d63dfb8380a865c1e1f29d1a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://062688aac76e27ab50157a9d645700cf92e3c0d51d3d860be1d2e1a0c04a87d0\",\"dweb:/ipfs/QmfXxppWAiSTeH8YNn2EtMPDgzrLeJ5rjRq8knEbje88mX\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xe422bf8bc61fe71acb27de4631400cdbb9b532df4de4f255eab093ac356f9745\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c2e5ed663c9df8fd44b624cfef92a703803cc72cf356c96e69a6e88c5ce082d\",\"dweb:/ipfs/QmdtPLYhopn3L14o6TCJkwH28o91do8JriAxpFYt67NWGB\"]},\"@openzeppelin/contracts-upgradeable/math/SafeMathUpgradeable.sol\":{\"keccak256\":\"0xe9ecc18d06bcc5aa48c40a98333540248b6c1c18ecb6262329c06d3f0cbb45ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a81bcbe4f867a4eaf7ec375508a9901ea7517b9854c9a542c242050beda5127\",\"dweb:/ipfs/QmS499VRDhAgMg1pK96PiyRpP3gJZzzMcoNBbe8AV3JNw3\"]},\"@openzeppelin/contracts-upgradeable/proxy/Initializable.sol\":{\"keccak256\":\"0xae7044b7c89ed74327b0979ae6f317c65d87b8d17a42d0c62d698d77d5de5511\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d676c978d8ecee5c4510f045b747d94f3a1381e39feb870d2675d5b6d45a371b\",\"dweb:/ipfs/QmUAokuHWPVAf14QkhPtSdYFyNa8HVje9CBEzwCcxH3xkP\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b506128ed806100206000396000f3fe6080604052600436106102555760003560e01c8063771602f7116101395780638f907195116100b6578063c11a56301161007a578063c11a563014610649578063c816841b1461065e578063c8a4ac9c14610673578063c8e6c7d914610693578063d22e9b06146106b3578063f2fde38b146106c85761025c565b80638f907195146105b45780639168ae72146105d4578063a5a90636146105f4578063ae94e44814610609578063b67d77c5146106295761025c565b80638918c4a2116100fd5780638918c4a2146105405780638b9af5c1146105555780638bdb2afa146105755780638da5cb5b1461058a5780638ef3f7611461059f5761025c565b8063771602f7146104c15780637ae2b5c7146104e157806380d04de81461050157806381028f67146105165780638129fc1c1461052b5761025c565b80633fb1ccf1116101d25780636021a9d5116101965780636021a9d5146104225780636711281c14610437578063674570221461044c5780636d5433e61461046c57806370a082311461048c578063715018a6146104ac5761025c565b80633fb1ccf11461038b57806340a141ff146103a057806347a1671a146103c25780634d238c8e146103e25780635fde731c146104025761025c565b80632681f7e4116102195780632681f7e4146103015780632cda8943146103235780632e1a7d4d1461034357806335aa2e44146103635780633a4b66f1146103835761025c565b806304d26ebf1461026157806309b6afb21461028c5780630e2286d3146102ac578063150d7e47146102cc57806326476204146102e15761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766106e8565b604051610283919061235d565b60405180910390f35b34801561029857600080fd5b506102766102a73660046122e0565b6106ee565b3480156102b857600080fd5b506102766102c7366004612246565b61080a565b3480156102d857600080fd5b50610276610835565b6102f46102ef36600461210f565b61083b565b6040516102839190612352565b34801561030d57600080fd5b50610316610958565b604051610283919061230b565b34801561032f57600080fd5b5061027661033e3660046122b0565b610967565b34801561034f57600080fd5b5061027661035e3660046122b0565b610a1c565b34801561036f57600080fd5b5061031661037e3660046122b0565b610c7c565b6102f4610ca3565b34801561039757600080fd5b50610316610cb5565b3480156103ac57600080fd5b506103c06103bb36600461210f565b610cc4565b005b3480156103ce57600080fd5b506103c06103dd366004612147565b610ea7565b3480156103ee57600080fd5b506103c06103fd36600461210f565b6110bf565b34801561040e57600080fd5b5061027661041d366004612246565b611146565b34801561042e57600080fd5b50610276611158565b34801561044357600080fd5b506103c061115e565b34801561045857600080fd5b50610276610467366004612246565b611185565b34801561047857600080fd5b50610276610487366004612246565b6111ad565b34801561049857600080fd5b506102766104a736600461210f565b6111c8565b3480156104b857600080fd5b506103c06111e3565b3480156104cd57600080fd5b506102766104dc366004612246565b611262565b3480156104ed57600080fd5b506102766104fc366004612246565b611285565b34801561050d57600080fd5b50610276611295565b34801561052257600080fd5b5061031661136f565b34801561053757600080fd5b506103c061137e565b34801561054c57600080fd5b50610276611480565b34801561056157600080fd5b50610276610570366004612246565b611486565b34801561058157600080fd5b506103166114a7565b34801561059657600080fd5b506103166114b6565b3480156105ab57600080fd5b506103166114c5565b3480156105c057600080fd5b506102766105cf366004612246565b6114d4565b3480156105e057600080fd5b506102766105ef36600461210f565b611529565b34801561060057600080fd5b506103c061153b565b34801561061557600080fd5b50610276610624366004612246565b611876565b34801561063557600080fd5b50610276610644366004612246565b611886565b34801561065557600080fd5b506102766118a9565b34801561066a57600080fd5b506103166118af565b34801561067f57600080fd5b5061027661068e366004612246565b6118be565b34801561069f57600080fd5b506102766106ae366004612246565b6118f5565b3480156106bf57600080fd5b50610276611905565b3480156106d457600080fd5b506103c06106e336600461210f565b61190b565b606f5481565b6000808061070484670de0b6b3a76400006119c2565b9050600085610714606489611a04565b8161071b57fe5b049050600061074d607154610747610740606f54607154611a3e90919063ffffffff16565b8590611a04565b906119c2565b9050855b8385116107fe57600061077b6002610747670de0b6b3a76400006107758a8a611a3e565b90611a04565b90508061078857506107fe565b6000610795828c8c611a63565b905060006107b6633b9aca00610747856102c786662386f26fc10000611a04565b90508481116107de576107d183670de0b6b3a76400006119c2565b60010197508293506107f6565b60016107f284670de0b6b3a76400006119c2565b0396505b505050610751565b98975050505050505050565b60008161082661081c8561068e611ab1565b6002855b04611262565b8161082d57fe5b049392505050565b60705481565b60008034116108655760405162461bcd60e51b815260040161085c906126d0565b60405180910390fd5b6066546108845760405162461bcd60e51b815260040161085c906126fb565b6000805b6001600160a01b038416158015906108a1575060665481105b156108e857836001600160a01b0316606682815481106108bd57fe5b6000918252602090912001546001600160a01b0316146108e057600191506108e8565b600101610888565b506001600160a01b03831615806108fc5750805b6109185760405162461bcd60e51b815260040161085c9061272b565b60006109243485611ac1565b336000908152606560205260409020549091506109419034611a3e565b336000908152606560205260409020559392505050565b6068546001600160a01b031681565b6000806000606c60009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156109ba57600080fd5b505afa1580156109ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f29190612267565b506001600160701b031691506001600160701b03169150610a148282866106ee565b949350505050565b600080610a27611d12565b905060008315610a375783610a48565b336000908152606560205260409020545b9050808015801590610a695750336000908152606560205260409020548211155b610a855760405162461bcd60e51b815260040161085c90612664565b606654600090610a969087906119c2565b905060005b606654811015610bf257606754606680546000926001600160a01b0316916321429e609130919086908110610acc57fe5b6000918252602090912001546040516001600160e01b031960e085901b168152610b0392916001600160a01b03169060040161231f565b60206040518083038186803b158015610b1b57600080fd5b505afa158015610b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5391906122c8565b905080610b605750610bea565b828111610ba457610b9260668381548110610b7757fe5b6000918252602090912001546001600160a01b031682611d17565b50610b9d8482611dd8565b9350610bdd565b610bcf60668381548110610bb457fe5b6000918252602090912001546001600160a01b031684611d17565b50610bda8484611dd8565b93505b83610be85750610bf2565b505b600101610a9b565b50610c0584610bff611d12565b90611dd8565b935083831115610c13578392505b33600090815260656020526040902054610c2d9084611dd8565b336000908152606560205260409020558215610c7257604051339084156108fc029085906000818181858888f19350505050158015610c70573d6000803e3d6000fd5b505b5090949350505050565b60668181548110610c8957fe5b6000918252602090912001546001600160a01b0316905081565b6000610caf600061083b565b90505b90565b6069546001600160a01b031681565b610ccc611e1a565b6033546001600160a01b03908116911614610cf95760405162461bcd60e51b815260040161085c9061269b565b60675460405163010a14f360e51b81526000916001600160a01b0316906321429e6090610d2c903090869060040161231f565b60206040518083038186803b158015610d4457600080fd5b505afa158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c91906122c8565b90508015610db3576000610d8e611d12565b9050610d9a8383611d17565b5080610da4611d12565b1415610db1575050610ea4565b505b60005b606654811015610ea157826001600160a01b031660668281548110610dd757fe5b6000918252602090912001546001600160a01b03161415610e995760665460001901811015610e6757606680546000198101908110610e1257fe5b600091825260209091200154606680546001600160a01b039092169183908110610e3857fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b6066805480610e7257fe5b600082815260209020810160001990810180546001600160a01b0319169055019055610ea1565b600101610db6565b50505b50565b606c546001600160a01b0316610ea1576001600160a01b03811615610ecc5780610ee2565b73fb76e9e7d88e308ab530330ed90e84a9525703195b606880546001600160a01b03199081166001600160a01b039384161791829055606980548216878516179055606a80549091168584161790556040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b158015610f5557600080fd5b505afa158015610f69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8d919061212b565b606b80546001600160a01b0319166001600160a01b039283161790819055606854604080516315ab88c960e31b815290519284169363e6a439059392169163ad5c464891600480820192602092909190829003018186803b158015610ff157600080fd5b505afa158015611005573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611029919061212b565b856040518363ffffffff1660e01b815260040161104792919061231f565b60206040518083038186803b15801561105f57600080fd5b505afa158015611073573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611097919061212b565b606c80546001600160a01b0319166001600160a01b0392909216919091179055610ea161115e565b6110c7611e1a565b6033546001600160a01b039081169116146110f45760405162461bcd60e51b815260040161085c9061269b565b606680546001810182556000919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943540180546001600160a01b0319166001600160a01b0392909216919091179055565b60008161082661081c8561068e611e1e565b606e5481565b60715461118357618235606e819055607255610bb8606f55601e607055620186a06071555b565b600061118f611ab1565b61082661119c85856118be565b60026111a6611ab1565b8161082057fe5b6000818310156111bd57816111bf565b825b90505b92915050565b6001600160a01b031660009081526065602052604090205490565b6111eb611e1a565b6033546001600160a01b039081169116146112185760405162461bcd60e51b815260040161085c9061269b565b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b808201828110156111c25760405162461bcd60e51b815260040161085c90612533565b6000818311156111bd57816111bf565b600080805b60665481101561136957606754606680546000926001600160a01b0316916321429e6091309190869081106112cb57fe5b6000918252602090912001546040516001600160e01b031960e085901b16815261130292916001600160a01b03169060040161231f565b60206040518083038186803b15801561131a57600080fd5b505afa15801561132e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135291906122c8565b905061135e8382611a3e565b92505060010161129a565b50905090565b606a546001600160a01b031681565b600054610100900460ff16806113975750611397611e2a565b806113a5575060005460ff16155b6113c15760405162461bcd60e51b815260040161085c90612591565b600054610100900460ff161580156113ec576000805460ff1961ff0019909116610100171660011790555b6113f4611e30565b606780546001600160a01b0319908116733014ca10b91cb3d0ad85fef7a3cb95bcac9c0f7917909155606680546001810182556000919091527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435401805490911673cb876a393f05a6677a8a029f1c6d7603b416c0a61790558015610ea4576000805461ff001916905550565b606d5481565b6000611490611e1e565b61082661149d85856118be565b60026111a6611e1e565b606b546001600160a01b031681565b6033546001600160a01b031690565b6067546001600160a01b031681565b6000600282066114eb576114e6611ab1565b6114ed565b825b90506002820491505b81156111c2576115068384611185565b9250600282061561151e5761151b8184611185565b90505b6002820491506114f6565b60656020526000908152604090205481565b606a5460408051635c9302c960e01b815290516000926001600160a01b031691635c9302c9916004808301926020929190829003018186803b15801561158057600080fd5b505afa158015611594573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b891906122c8565b9050606d548114156115dc5760405162461bcd60e51b815260040161085c906125df565b60006074546115e9611d12565b03905060008160745401116116105760405162461bcd60e51b815260040161085c90612561565b606d829055607154606e5460009161162f916107479085908303611a04565b905060008183039050606061165761165260745485611a3e90919063ffffffff16565b611f0a565b90506116868160008151811061166957fe5b6020026020010151610bff60745486611a3e90919063ffffffff16565b607455611694826000611ac1565b506000816001815181106116a457fe5b6020026020010151905060006116cb60715461074760705485611a0490919063ffffffff16565b905080156117595760695460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906117059033908590600401612339565b602060405180830381600087803b15801561171f57600080fd5b505af1158015611733573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117579190612226565b505b600061177a6071546107476072546107758688611dd890919063ffffffff16565b905060006117888483611dd8565b606954606a5460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb926117c09216908590600401612339565b602060405180830381600087803b1580156117da57600080fd5b505af11580156117ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118129190612226565b506073546118209083611a3e565b6073556074546040518a917f49a079c90e07ed02ae8283e86eaeb643c637381d30aa7ba06d155e5b744a85439161186391859187918a918f919033908c90612762565b60405180910390a2505050505050505050565b6000818312156111bd57816111bf565b808203828111156111c25760405162461bcd60e51b815260040161085c90612422565b60715481565b606c546001600160a01b031681565b60008115806118d9575050808202828282816118d657fe5b04145b6111c25760405162461bcd60e51b815260040161085c906124ce565b6000818313156111bd57816111bf565b60725481565b611913611e1a565b6033546001600160a01b039081169116146119405760405162461bcd60e51b815260040161085c9061269b565b6001600160a01b0381166119665760405162461bcd60e51b815260040161085c90612488565b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b60006111bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120ac565b600082611a13575060006111c2565b82820282848281611a2057fe5b04146111bf5760405162461bcd60e51b815260040161085c90612623565b6000828201838110156111bf5760405162461bcd60e51b815260040161085c906124fc565b600080611a72856103e5611a04565b90506000611a808285611a04565b90506000611a9a83611a94886103e8611a04565b90611a3e565b9050808281611aa557fe5b04979650505050505050565b6b033b2e3c9fd0803ce800000090565b606654600090611ad3575060006111c2565b6001600160a01b03821615611b4f576067546040516317066a5760e21b81526001600160a01b0390911690635c19a95c908590611b1490869060040161230b565b6000604051808303818588803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b5050505050600190506111c2565b606654600090611b659061074786611a94611295565b90508360005b60665481108015611b7c5750600082115b15611d0657606754606680546000926001600160a01b0316916321429e609130919086908110611ba857fe5b6000918252602090912001546040516001600160e01b031960e085901b168152611bdf92916001600160a01b03169060040161231f565b60206040518083038186803b158015611bf757600080fd5b505afa158015611c0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2f91906122c8565b905083811015611cfd576000611c458583611dd8565b9050838110611c545783611c56565b805b606754606680549293506001600160a01b0390911691635c19a95c91849187908110611c7e57fe5b6000918252602090912001546040516001600160e01b031960e085901b168152611cb4916001600160a01b03169060040161230b565b6000604051808303818588803b158015611ccd57600080fd5b505af1158015611ce1573d6000803e3d6000fd5b5050505050611cf98185611dd890919063ffffffff16565b9350505b50600101611b6b565b50600195945050505050565b303190565b60675460405163f3fef3a360e01b81526000916001600160a01b03169063f3fef3a390611d4a9086908690600401612339565b600060405180830381600087803b158015611d6457600080fd5b505af1925050508015611d75575060015b611dd057611d816127e8565b80611d8c5750611d96565b60009150506111c2565b3d808015611dc0576040519150601f19603f3d011682016040523d82523d6000602084013e611dc5565b606091505b5060009150506111c2565b5060016111c2565b60006111bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120e3565b3390565b670de0b6b3a764000090565b303b1590565b600054610100900460ff1680611e495750611e49611e2a565b80611e57575060005460ff16155b611e735760405162461bcd60e51b815260040161085c90612591565b600054610100900460ff16158015611e9e576000805460ff1961ff0019909116610100171660011790555b6000611ea8611e1a565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610ea4576000805461ff001916905550565b606060008211611f2c5760405162461bcd60e51b815260040161085c90612451565b6000611f3783610967565b604080516002808252606080830184529394509091602083019080368337505060695482519293506001600160a01b0316918391506001908110611f7757fe5b6001600160a01b03928316602091820292909201810191909152606854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611fcb57600080fd5b505afa158015611fdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612003919061212b565b8160008151811061201057fe5b6001600160a01b039283166020918202929092010152606854604051637ff36ab560e01b8152911690637ff36ab590849061205690600090869030904290600401612366565b6000604051808303818588803b15801561206f57600080fd5b505af1158015612083573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052610a149190810190612191565b600081836120cd5760405162461bcd60e51b815260040161085c91906123cf565b5060008385816120d957fe5b0495945050505050565b600081848411156121075760405162461bcd60e51b815260040161085c91906123cf565b505050900390565b600060208284031215612120578081fd5b81356111bf8161288d565b60006020828403121561213c578081fd5b81516111bf8161288d565b60008060006060848603121561215b578182fd5b83356121668161288d565b925060208401356121768161288d565b915060408401356121868161288d565b809150509250925092565b600060208083850312156121a3578182fd5b825167ffffffffffffffff8111156121b9578283fd5b8301601f810185136121c9578283fd5b80516121dc6121d7826127c2565b61279b565b81815283810190838501858402850186018910156121f8578687fd5b8694505b8385101561221a5780518352600194909401939185019185016121fc565b50979650505050505050565b600060208284031215612237578081fd5b815180151581146111bf578182fd5b60008060408385031215612258578182fd5b50508035926020909101359150565b60008060006060848603121561227b578283fd5b8351612286816128a2565b6020850151909350612297816128a2565b604085015190925063ffffffff81168114612186578182fd5b6000602082840312156122c1578081fd5b5035919050565b6000602082840312156122d9578081fd5b5051919050565b6000806000606084860312156122f4578283fd5b505081359360208301359350604090920135919050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b600060808201868352602060808185015281875180845260a0860191508289019350845b818110156123af5784516001600160a01b03168352938301939183019160010161238a565b50506001600160a01b039690961660408501525050506060015292915050565b6000602080835283518082850152825b818110156123fb578581018301518582016040015282016123df565b8181111561240c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526015908201527464732d6d6174682d7375622d756e646572666c6f7760581b604082015260600190565b60208082526017908201527f6275792076616c75652073686f756c64206265203e2030000000000000000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526014908201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526014908201527364732d6d6174682d6164642d6f766572666c6f7760601b604082015260600190565b6020808252601690820152751b9bc819585c9b9a5b99dcc81d1bc818dbdb1b1958dd60521b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526024908201527f63616e20