{ "_format": "hh-sol-artifact-1", "contractName": "Vester", "sourceName": "contracts/staking/Vester.sol", "abi": [ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint256", "name": "_vestingDuration", "type": "uint256" }, { "internalType": "address", "name": "_esToken", "type": "address" }, { "internalType": "address", "name": "_claimableToken", "type": "address" }, { "internalType": "address", "name": "_rewardTrackerCEC", "type": "address" }, { "internalType": "address", "name": "_rewardTrackerEsCEC", "type": "address" }, { "internalType": "bool", "name": "_needCheckStake", "type": "bool" } ], "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": "receiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Claim", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "DurationUpdated", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "claimedAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "balance", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "_updateVesting", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "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": "account", "type": "address" } ], "name": "balances", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "bonusRewards", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "claimForAccount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "claimable", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimableToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "claimedAmounts", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "cumulativeClaimAmounts", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "cumulativeRewardDeductions", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "depositForAccount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "esToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getMaxVestableAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getTotalVested", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getVestedAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gov", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "hasRewardTrackerCEC", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "hasRewardTrackerEsCEC", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "handler", "type": "address" } ], "name": "isHandler", "outputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "lastVestingTimes", "outputs": [ { "internalType": "uint256", "name": "time", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "needCheckStake", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardTrackerCEC", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardTrackerEsCEC", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setBonusRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setCumulativeRewardDeductions", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_gov", "type": "address" } ], "name": "setGov", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_handler", "type": "address" }, { "internalType": "bool", "name": "_isActive", "type": "bool" } ], "name": "setHandler", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_rewardTracker", "type": "address" } ], "name": "setRewardTrackerCEC", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_rewardTracker", "type": "address" } ], "name": "setRewardTrackerEsCEC", "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": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_vestingDuration", "type": "uint256" } ], "name": "updateDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "updateVesting", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "vestingDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "withdrawToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x6080604052346200046c5762001e20803803806200001d8162000471565b928339810190610100818303126200046c5780516001600160401b0381116200046c57826200004e91830162000497565b602082015190926001600160401b0382116200046c576200007191830162000497565b90604081015191620000866060830162000509565b90620000956080840162000509565b93620000a460a0850162000509565b9160e0620000b560c0870162000509565b9501519687151588036200046c576001600081905580546001600160a01b031916331790556004805460ff191660121790558051906001600160401b0382116200035d5760025490600182811c9216801562000461575b60208310146200033c5781601f849311620003fd575b50602090601f83116001146200037f5760009262000373575b50508160011b916000199060031b1c1916176002555b8051906001600160401b0382116200035d5760035490600182811c9216801562000352575b60208310146200033c5781601f849311620002ca575b50602090601f83116001146200023b576000926200022f575b50508160011b916000199060031b1c1916176003555b600555600680546001600160a01b03199081166001600160a01b039485161790915560078054821695841695909517909455600880548516918316919091179055600980549093169116179055600b805491151560ff1660ff19929092169190911790556040516118e190816200051f8239f35b015190503880620001a5565b6003600090815293507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b91905b601f1984168510620002ae576001945083601f1981161062000294575b505050811b01600355620001bb565b015160001960f88460031b161c1916905538808062000285565b8181015183556020948501946001909301929091019062000268565b60036000529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c81016020851062000334575b90849392915b601f830160051c82018110620003245750506200018c565b600081558594506001016200030c565b508062000306565b634e487b7160e01b600052602260045260246000fd5b91607f169162000176565b634e487b7160e01b600052604160045260246000fd5b0151905038806200013b565b60026000908152935060008051602062001e0083398151915291905b601f1984168510620003e1576001945083601f19811610620003c7575b505050811b0160025562000151565b015160001960f88460031b161c19169055388080620003b8565b818101518355602094850194600190930192909101906200039b565b600260005290915060008051602062001e00833981519152601f840160051c8101916020851062000456575b90601f859493920160051c01905b81811062000446575062000122565b6000815584935060010162000437565b909150819062000429565b91607f16916200010c565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200035d57604052565b919080601f840112156200046c5782516001600160401b0381116200035d57602090620004cd601f8201601f1916830162000471565b928184528282870101116200046c5760005b818110620004f557508260009394955001015290565b8581018301518482018401528201620004df565b51906001600160a01b03821682036200046c5756fe6040608081526004908136101561001557600080fd5b600091823560e01c90816301e3366714610c2c57816306fdde0314610b6d57816308f26c7614610b47578163095ea7b31461046a5781630db9ea4a14610b0f57816312d43a5114610ae657816313e82e7a14610aa55781631514617e14610a8657816316ca05c514610a5d57816318160ddd14610a3e5781631882fe7c146109f35781631b50ad091461099857816323b872dd1461098157816327e235e314610685578163313ce5671461096057816333aefbc814610937578163342fcda914610902578163387a785d146108ca5781633ccfd60b146107c6578163402914f5146107a057816341f227241461075857816346ea87af1461071a5781634e71d92d146106e85781636926dd7a146106bd57816370a082311461068557816371417b321461064d578163930354731461062c57816395d89b411461052557816397c313f2146105085781639cb7de4b146104a7578163a2545fa51461046f578163a9059cbb1461046a578163ac110d1414610446578163b38d038f1461041b578163b5ff136d146103e3578163b6b55f25146103b657508063cd70526d1461036b578063cfad57a214610322578063d5a73fdd146102f6578063d89b7007146102af578063dd62ed3e14610282578063df7f9f9b1461025a578063e4214471146102325763f6d6d5aa1461020757600080fd5b3461022e578160031936011261022e5760075490516001600160a01b039091168152602090f35b5080fd5b82346102575760203660031901126102575761025461024f610c5f565b611621565b80f35b80fd5b503461022e578160031936011261022e5760085490516001600160a01b039091168152602090f35b503461022e578060031936011261022e579060209161029f610c5f565b506102a8610c7a565b5051908152f35b503461022e578060031936011261022e576102c8610c5f565b6102d0610da9565b6102d8611859565b6001600160a01b031682526010602052812060243590556001815580f35b503461022e57602036600319011261022e5760209061031b610316610c5f565b6111b0565b9051908152f35b82346102575760203660031901126102575761033c610c5f565b600154906001600160a01b03906103563383851614610d65565b16906001600160601b0360a01b161760015580f35b823461025757602036600319011261025757610385610c5f565b6001546001600160a01b03919061039f9083163314610d65565b166001600160601b0360a01b600854161760085580f35b83903461022e57602036600319011261022e576103dc906103d5610da9565b3533611336565b6001815580f35b50503461022e57602036600319011261022e5760209181906001600160a01b0361040b610c5f565b168152600d845220549051908152f35b50503461022e578160031936011261022e5760095490516001600160a01b0390911615158152602090f35b50503461022e578160031936011261022e5760209060ff600b541690519015158152f35b610d46565b50503461022e57602036600319011261022e5760209181906001600160a01b03610497610c5f565b1681526011845220549051908152f35b50503461022e578060031936011261022e576104c1610c5f565b9060243591821515809303610504576001546001600160a01b0391906104ea9083163314610d65565b168352601260205282209060ff8019835416911617905580f35b8380fd5b83346102575760203660031901126102575761025461024f610c5f565b91905034610628578260031936011261062857805191836003549060019082821c92828116801561061e575b602095868610821461060b57508488529081156105e95750600114610590575b61058c8686610582828b0383610cc5565b5191829182610cfd565b0390f35b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8284106105d6575050508261058c94610582928201019438610571565b80548685018801529286019281016105b9565b60ff191687860152505050151560051b83010192506105828261058c38610571565b634e487b7160e01b845260229052602483fd5b93607f1693610551565b8280fd5b50503461022e57602036600319011261022e5760209061031b610316610c5f565b50503461022e57602036600319011261022e5760209181906001600160a01b03610675610c5f565b168152600e845220549051908152f35b50503461022e57602036600319011261022e5760209181906001600160a01b036106ad610c5f565b168152600c845220549051908152f35b50503461022e578160031936011261022e5760085490516001600160a01b0390911615158152602090f35b50503461022e578160031936011261022e5790602091610706610da9565b600161071233336117da565b925551908152f35b50503461022e57602036600319011261022e5760209160ff9082906001600160a01b03610745610c5f565b1681526012855220541690519015158152f35b50503461022e578060031936011261022e57610772610c5f565b61077a610da9565b610782611859565b6001600160a01b031682526011602052812060243590556001815580f35b50503461022e57602036600319011261022e5760209061031b6107c1610c5f565b61179c565b8391503461022e578160031936011261022e576107e1610da9565b6107eb33336117da565b50338252602092600d84528083205491600c8552818420549061080e8483611027565b1561088757507ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56892939461084d823360018060a01b0360065416610dff565b610857823361121f565b338652600d81528583812055600e81528583812055600f8152858381205582519485528401523392a26001815580f35b825162461bcd60e51b8152908101869052601d60248201527f5665737465723a2076657374656420616d6f756e74206973207a65726f0000006044820152606490fd5b50503461022e57602036600319011261022e5760209181906001600160a01b036108f2610c5f565b1681526010845220549051908152f35b50503461022e57366003190112610257576103dc61091e610c5f565b610926610da9565b61092e611859565b60243590611336565b50503461022e578160031936011261022e5760095490516001600160a01b039091168152602090f35b8284346102575780600319360112610257575060ff60209254169051908152f35b83346102575761099036610c90565b5050506111da565b905034610628576020366003190112610628577f91abcc2d6823e3a3f11d31b208dd3065d2c6a791f1c7c9fe96a42ce12897eac59160209135906109e760018060a01b03600154163314610d65565b8160055551908152a180f35b833461025757602036600319011261025757610a0d610c5f565b6001546001600160a01b039190610a279083163314610d65565b166001600160601b0360a01b600954161760095580f35b50503461022e578160031936011261022e57602090600a549051908152f35b50503461022e578160031936011261022e5760065490516001600160a01b039091168152602090f35b50503461022e578160031936011261022e576020906005549051908152f35b50503461022e578060031936011261022e57906020916001610712610ac8610c5f565b610ad0610c7a565b90610ad9610da9565b610ae1611859565b6117da565b50503461022e578160031936011261022e5760015490516001600160a01b039091168152602090f35b50503461022e57602036600319011261022e5760209181906001600160a01b03610b37610c5f565b168152600f845220549051908152f35b50503461022e57602036600319011261022e5760209061031b610b68610c5f565b611057565b91905034610628578260031936011261062857805191836002549060019082821c928281168015610c22575b602095868610821461060b57508488529081156105e95750600114610bc95761058c8686610582828b0383610cc5565b929550600283527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b828410610c0f575050508261058c94610582928201019438610571565b8054868501880152928601928101610bf2565b93607f1693610b99565b833461025757610254610c3e36610c90565b60015490926001600160a01b0391610c599083163314610d65565b16610dff565b600435906001600160a01b0382168203610c7557565b600080fd5b602435906001600160a01b0382168203610c7557565b6060906003190112610c75576001600160a01b03906004358281168103610c7557916024359081168103610c75579060443590565b90601f8019910116810190811067ffffffffffffffff821117610ce757604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610d3257505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610d10565b34610c75576040366003190112610c7557610d5f610c5f565b506111da565b15610d6c57565b60405162461bcd60e51b815260206004820152601560248201527423b7bb32b93730b136329d103337b93134b23232b760591b6044820152606490fd5b600260005414610dba576002600055565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152610e4091610e3b606483610cc5565b610e42565b565b60018060a01b0316906040516040810167ffffffffffffffff9082811082821117610ce7576040526020938483527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858401526000808587829751910182855af1903d15610f87573d928311610f735790610edd93929160405192610ed088601f19601f8401160185610cc5565b83523d868885013e610f92565b805191821591848315610f4f575b505050905015610ef85750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b91938180945001031261022e57820151908115158203610257575080388084610eeb565b634e487b7160e01b85526041600452602485fd5b90610edd9392506060915b91929015610ff45750815115610fa6575090565b3b15610faf5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156110075750805190602001fd5b60405162461bcd60e51b81529081906110239060048301610cfd565b0390fd5b9190820180921161103457565b634e487b7160e01b600052601160045260246000fd5b9190820391821161103457565b6001600160a01b03908116600081815260116020908152604080832054600854939590949193811680611135575b5060095416806110b4575b50845260109052822054908181106110af576110ac925061104a565b90565b505090565b938260249295855193848092633792def360e01b82528960048301525afa91821561112b5786926110f6575b50601092916110ee91611027565b939091611090565b9091508281813d8311611124575b61110e8183610cc5565b810103126111205751906110ee6110e0565b8580fd5b503d611104565b84513d88823e3d90fd5b83602491869793975192838092633792def360e01b82528760048301525afa9081156111a6578791611173575b5061116c91611027565b9338611085565b90508381813d831161119f575b61118a8183610cc5565b8101031261119b575161116c611162565b8680fd5b503d611180565b85513d89823e3d90fd5b60018060a01b0316600052600c6020526110ac604060002054600d60205260406000205490611027565b60405162461bcd60e51b815260206004820152601960248201527f5665737465723a206e6f6e2d7472616e736665727261626c65000000000000006044820152606490fd5b6001600160a01b031680156112e657600091818352600c602052806040842054106112a15760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91838552600c825261127d81604087205461104a565b848652600c8352604086205561129581600a5461104a565b600a55604051908152a3565b60405162461bcd60e51b815260206004820152601d60248201527f5665737465723a2062616c616e6365206973206e6f7420656e6f7567680000006044820152606490fd5b60405162461bcd60e51b815260206004820152602260248201527f5665737465723a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b91909182156115dc5761134881611621565b60018060a01b038060065416936040948551936020936323b872dd60e01b858701528082169560249387858301523060448301528560648301526064825260a0820182811067ffffffffffffffff8211176115c7578a526113a99190610e42565b851561158657848084926113bf87600a54611027565b600a55888b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000958692848452600c82526113fe8c82862054611027565b858552600c835281852055518b8152a360ff600b541680611579575b6114b4575b5050505061143561142f82611057565b916111b0565b1161146657507fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92939451908152a2565b8260849187519162461bcd60e51b83526004830152808201527f5665737465723a206d6178207665737461626c6520616d6f756e7420657863656044820152631959195960e21b6064820152fd5b600854168a51938480926310c1c10360e01b82528b60048301525afa91821561156d57908991819361153a575b50878152600c87522054116114f9578138858161141f565b6064828589519162461bcd60e51b83528160048401528201527f5665737465723a20696e73756666696369656e74206365632062616c616e63656044820152fd5b87809294508193503d8311611566575b6115548183610cc5565b8101031261022e5788905191386114e1565b503d61154a565b508851903d90823e3d90fd5b508060085416151561141a565b606483868a519162461bcd60e51b83528160048401528201527f5665737465723a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b85634e487b7160e01b60005260416004526000fd5b60405162461bcd60e51b815260206004820152601760248201527f5665737465723a20696e76616c6964205f616d6f756e740000000000000000006044820152606490fd5b61162a816116fe565b6001600160a01b038083166000818152600f60205260408082204290559094909392919083156116f6578361165e9161121f565b808552600d6020526116738385872054611027565b908552600d602052838520556006541690813b15610504578251632770a7eb60e21b81523060048201526024810191909152929081908490604490829084905af180156116ea576116c357505050565b67ffffffffffffffff83116116d6575052565b634e487b7160e01b81526041600452602490fd5b509051903d90823e3d90fd5b505050505050565b6001600160a01b0381166000818152600f6020526040812054909190611724904261104a565b908252600c602052604082205492831561179557611741906111b0565b8181029181830414901517156117815760055491821561176d575004818110611768575090565b905090565b634e487b7160e01b81526012600452602490fd5b634e487b7160e01b82526011600452602482fd5b5050905090565b6110ac9060018060a01b038116600052600d6020526117d46117ce604060002054600e6020526040600020549061104a565b916116fe565b90611027565b6117e381611621565b61182c6117ef8261179c565b809360018060a01b038094169384600052600e60205261181483604060002054611027565b85600052600e60205260406000205560075416610dff565b7f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d46020604051848152a290565b33600052601260205260ff604060002054161561187257565b60405162461bcd60e51b81526020600482015260116024820152702b32b9ba32b91d103337b93134b23232b760791b6044820152606490fdfea2646970667358221220fe320b951d6d0abf154fb97c8dccd9713d3ab7aa8af761b0062f81253038865764736f6c63430008130033405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace", "deployedBytecode": "0x6040608081526004908136101561001557600080fd5b600091823560e01c90816301e3366714610c2c57816306fdde0314610b6d57816308f26c7614610b47578163095ea7b31461046a5781630db9ea4a14610b0f57816312d43a5114610ae657816313e82e7a14610aa55781631514617e14610a8657816316ca05c514610a5d57816318160ddd14610a3e5781631882fe7c146109f35781631b50ad091461099857816323b872dd1461098157816327e235e314610685578163313ce5671461096057816333aefbc814610937578163342fcda914610902578163387a785d146108ca5781633ccfd60b146107c6578163402914f5146107a057816341f227241461075857816346ea87af1461071a5781634e71d92d146106e85781636926dd7a146106bd57816370a082311461068557816371417b321461064d578163930354731461062c57816395d89b411461052557816397c313f2146105085781639cb7de4b146104a7578163a2545fa51461046f578163a9059cbb1461046a578163ac110d1414610446578163b38d038f1461041b578163b5ff136d146103e3578163b6b55f25146103b657508063cd70526d1461036b578063cfad57a214610322578063d5a73fdd146102f6578063d89b7007146102af578063dd62ed3e14610282578063df7f9f9b1461025a578063e4214471146102325763f6d6d5aa1461020757600080fd5b3461022e578160031936011261022e5760075490516001600160a01b039091168152602090f35b5080fd5b82346102575760203660031901126102575761025461024f610c5f565b611621565b80f35b80fd5b503461022e578160031936011261022e5760085490516001600160a01b039091168152602090f35b503461022e578060031936011261022e579060209161029f610c5f565b506102a8610c7a565b5051908152f35b503461022e578060031936011261022e576102c8610c5f565b6102d0610da9565b6102d8611859565b6001600160a01b031682526010602052812060243590556001815580f35b503461022e57602036600319011261022e5760209061031b610316610c5f565b6111b0565b9051908152f35b82346102575760203660031901126102575761033c610c5f565b600154906001600160a01b03906103563383851614610d65565b16906001600160601b0360a01b161760015580f35b823461025757602036600319011261025757610385610c5f565b6001546001600160a01b03919061039f9083163314610d65565b166001600160601b0360a01b600854161760085580f35b83903461022e57602036600319011261022e576103dc906103d5610da9565b3533611336565b6001815580f35b50503461022e57602036600319011261022e5760209181906001600160a01b0361040b610c5f565b168152600d845220549051908152f35b50503461022e578160031936011261022e5760095490516001600160a01b0390911615158152602090f35b50503461022e578160031936011261022e5760209060ff600b541690519015158152f35b610d46565b50503461022e57602036600319011261022e5760209181906001600160a01b03610497610c5f565b1681526011845220549051908152f35b50503461022e578060031936011261022e576104c1610c5f565b9060243591821515809303610504576001546001600160a01b0391906104ea9083163314610d65565b168352601260205282209060ff8019835416911617905580f35b8380fd5b83346102575760203660031901126102575761025461024f610c5f565b91905034610628578260031936011261062857805191836003549060019082821c92828116801561061e575b602095868610821461060b57508488529081156105e95750600114610590575b61058c8686610582828b0383610cc5565b5191829182610cfd565b0390f35b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8284106105d6575050508261058c94610582928201019438610571565b80548685018801529286019281016105b9565b60ff191687860152505050151560051b83010192506105828261058c38610571565b634e487b7160e01b845260229052602483fd5b93607f1693610551565b8280fd5b50503461022e57602036600319011261022e5760209061031b610316610c5f565b50503461022e57602036600319011261022e5760209181906001600160a01b03610675610c5f565b168152600e845220549051908152f35b50503461022e57602036600319011261022e5760209181906001600160a01b036106ad610c5f565b168152600c845220549051908152f35b50503461022e578160031936011261022e5760085490516001600160a01b0390911615158152602090f35b50503461022e578160031936011261022e5790602091610706610da9565b600161071233336117da565b925551908152f35b50503461022e57602036600319011261022e5760209160ff9082906001600160a01b03610745610c5f565b1681526012855220541690519015158152f35b50503461022e578060031936011261022e57610772610c5f565b61077a610da9565b610782611859565b6001600160a01b031682526011602052812060243590556001815580f35b50503461022e57602036600319011261022e5760209061031b6107c1610c5f565b61179c565b8391503461022e578160031936011261022e576107e1610da9565b6107eb33336117da565b50338252602092600d84528083205491600c8552818420549061080e8483611027565b1561088757507ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56892939461084d823360018060a01b0360065416610dff565b610857823361121f565b338652600d81528583812055600e81528583812055600f8152858381205582519485528401523392a26001815580f35b825162461bcd60e51b8152908101869052601d60248201527f5665737465723a2076657374656420616d6f756e74206973207a65726f0000006044820152606490fd5b50503461022e57602036600319011261022e5760209181906001600160a01b036108f2610c5f565b1681526010845220549051908152f35b50503461022e57366003190112610257576103dc61091e610c5f565b610926610da9565b61092e611859565b60243590611336565b50503461022e578160031936011261022e5760095490516001600160a01b039091168152602090f35b8284346102575780600319360112610257575060ff60209254169051908152f35b83346102575761099036610c90565b5050506111da565b905034610628576020366003190112610628577f91abcc2d6823e3a3f11d31b208dd3065d2c6a791f1c7c9fe96a42ce12897eac59160209135906109e760018060a01b03600154163314610d65565b8160055551908152a180f35b833461025757602036600319011261025757610a0d610c5f565b6001546001600160a01b039190610a279083163314610d65565b166001600160601b0360a01b600954161760095580f35b50503461022e578160031936011261022e57602090600a549051908152f35b50503461022e578160031936011261022e5760065490516001600160a01b039091168152602090f35b50503461022e578160031936011261022e576020906005549051908152f35b50503461022e578060031936011261022e57906020916001610712610ac8610c5f565b610ad0610c7a565b90610ad9610da9565b610ae1611859565b6117da565b50503461022e578160031936011261022e5760015490516001600160a01b039091168152602090f35b50503461022e57602036600319011261022e5760209181906001600160a01b03610b37610c5f565b168152600f845220549051908152f35b50503461022e57602036600319011261022e5760209061031b610b68610c5f565b611057565b91905034610628578260031936011261062857805191836002549060019082821c928281168015610c22575b602095868610821461060b57508488529081156105e95750600114610bc95761058c8686610582828b0383610cc5565b929550600283527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b828410610c0f575050508261058c94610582928201019438610571565b8054868501880152928601928101610bf2565b93607f1693610b99565b833461025757610254610c3e36610c90565b60015490926001600160a01b0391610c599083163314610d65565b16610dff565b600435906001600160a01b0382168203610c7557565b600080fd5b602435906001600160a01b0382168203610c7557565b6060906003190112610c75576001600160a01b03906004358281168103610c7557916024359081168103610c75579060443590565b90601f8019910116810190811067ffffffffffffffff821117610ce757604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610d3257505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610d10565b34610c75576040366003190112610c7557610d5f610c5f565b506111da565b15610d6c57565b60405162461bcd60e51b815260206004820152601560248201527423b7bb32b93730b136329d103337b93134b23232b760591b6044820152606490fd5b600260005414610dba576002600055565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152610e4091610e3b606483610cc5565b610e42565b565b60018060a01b0316906040516040810167ffffffffffffffff9082811082821117610ce7576040526020938483527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858401526000808587829751910182855af1903d15610f87573d928311610f735790610edd93929160405192610ed088601f19601f8401160185610cc5565b83523d868885013e610f92565b805191821591848315610f4f575b505050905015610ef85750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b91938180945001031261022e57820151908115158203610257575080388084610eeb565b634e487b7160e01b85526041600452602485fd5b90610edd9392506060915b91929015610ff45750815115610fa6575090565b3b15610faf5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156110075750805190602001fd5b60405162461bcd60e51b81529081906110239060048301610cfd565b0390fd5b9190820180921161103457565b634e487b7160e01b600052601160045260246000fd5b9190820391821161103457565b6001600160a01b03908116600081815260116020908152604080832054600854939590949193811680611135575b5060095416806110b4575b50845260109052822054908181106110af576110ac925061104a565b90565b505090565b938260249295855193848092633792def360e01b82528960048301525afa91821561112b5786926110f6575b50601092916110ee91611027565b939091611090565b9091508281813d8311611124575b61110e8183610cc5565b810103126111205751906110ee6110e0565b8580fd5b503d611104565b84513d88823e3d90fd5b83602491869793975192838092633792def360e01b82528760048301525afa9081156111a6578791611173575b5061116c91611027565b9338611085565b90508381813d831161119f575b61118a8183610cc5565b8101031261119b575161116c611162565b8680fd5b503d611180565b85513d89823e3d90fd5b60018060a01b0316600052600c6020526110ac604060002054600d60205260406000205490611027565b60405162461bcd60e51b815260206004820152601960248201527f5665737465723a206e6f6e2d7472616e736665727261626c65000000000000006044820152606490fd5b6001600160a01b031680156112e657600091818352600c602052806040842054106112a15760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91838552600c825261127d81604087205461104a565b848652600c8352604086205561129581600a5461104a565b600a55604051908152a3565b60405162461bcd60e51b815260206004820152601d60248201527f5665737465723a2062616c616e6365206973206e6f7420656e6f7567680000006044820152606490fd5b60405162461bcd60e51b815260206004820152602260248201527f5665737465723a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b91909182156115dc5761134881611621565b60018060a01b038060065416936040948551936020936323b872dd60e01b858701528082169560249387858301523060448301528560648301526064825260a0820182811067ffffffffffffffff8211176115c7578a526113a99190610e42565b851561158657848084926113bf87600a54611027565b600a55888b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000958692848452600c82526113fe8c82862054611027565b858552600c835281852055518b8152a360ff600b541680611579575b6114b4575b5050505061143561142f82611057565b916111b0565b1161146657507fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92939451908152a2565b8260849187519162461bcd60e51b83526004830152808201527f5665737465723a206d6178207665737461626c6520616d6f756e7420657863656044820152631959195960e21b6064820152fd5b600854168a51938480926310c1c10360e01b82528b60048301525afa91821561156d57908991819361153a575b50878152600c87522054116114f9578138858161141f565b6064828589519162461bcd60e51b83528160048401528201527f5665737465723a20696e73756666696369656e74206365632062616c616e63656044820152fd5b87809294508193503d8311611566575b6115548183610cc5565b8101031261022e5788905191386114e1565b503d61154a565b508851903d90823e3d90fd5b508060085416151561141a565b606483868a519162461bcd60e51b83528160048401528201527f5665737465723a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b85634e487b7160e01b60005260416004526000fd5b60405162461bcd60e51b815260206004820152601760248201527f5665737465723a20696e76616c6964205f616d6f756e740000000000000000006044820152606490fd5b61162a816116fe565b6001600160a01b038083166000818152600f60205260408082204290559094909392919083156116f6578361165e9161121f565b808552600d6020526116738385872054611027565b908552600d602052838520556006541690813b15610504578251632770a7eb60e21b81523060048201526024810191909152929081908490604490829084905af180156116ea576116c357505050565b67ffffffffffffffff83116116d6575052565b634e487b7160e01b81526041600452602490fd5b509051903d90823e3d90fd5b505050505050565b6001600160a01b0381166000818152600f6020526040812054909190611724904261104a565b908252600c602052604082205492831561179557611741906111b0565b8181029181830414901517156117815760055491821561176d575004818110611768575090565b905090565b634e487b7160e01b81526012600452602490fd5b634e487b7160e01b82526011600452602482fd5b5050905090565b6110ac9060018060a01b038116600052600d6020526117d46117ce604060002054600e6020526040600020549061104a565b916116fe565b90611027565b6117e381611621565b61182c6117ef8261179c565b809360018060a01b038094169384600052600e60205261181483604060002054611027565b85600052600e60205260406000205560075416610dff565b7f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d46020604051848152a290565b33600052601260205260ff604060002054161561187257565b60405162461bcd60e51b81526020600482015260116024820152702b32b9ba32b91d103337b93134b23232b760791b6044820152606490fdfea2646970667358221220fe320b951d6d0abf154fb97c8dccd9713d3ab7aa8af761b0062f81253038865764736f6c63430008130033", "linkReferences": {}, "deployedLinkReferences": {} }