UNPKG

elephantdexcontracts

Version:

Token, Liquidity Mining and Governance contracts for The Elephant Dex & Casino. https://elephant.ac

1,480 lines 429 kB
{ "abi": [ { "inputs": [ { "internalType": "contract GovernanceToken", "name": "_govToken", "type": "address" }, { "internalType": "address", "name": "_devaddr", "type": "address" }, { "internalType": "address", "name": "_liquidityaddr", "type": "address" }, { "internalType": "address", "name": "_comfundaddr", "type": "address" }, { "internalType": "address", "name": "_founderaddr", "type": "address" }, { "internalType": "uint256", "name": "_rewardPerBlock", "type": "uint256" }, { "internalType": "uint256", "name": "_startBlock", "type": "uint256" }, { "internalType": "uint256", "name": "_halvingAfterBlock", "type": "uint256" }, { "internalType": "uint256", "name": "_userDepFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devDepFee", "type": "uint256" }, { "internalType": "uint256[]", "name": "_rewardMultiplier", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "_blockDeltaStartStage", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "_blockDeltaEndStage", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "_userFeeStage", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "_devFeeStage", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "pid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "pid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "EmergencyWithdraw", "type": "event" }, { "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": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "pid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "lockAmount", "type": "uint256" } ], "name": "SendGovernanceTokenReward", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "pid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "inputs": [], "name": "FINISH_BONUS_AT_BLOCK", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "HALVING_AT_BLOCK", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERCENT_FOR_COM", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERCENT_FOR_DEV", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERCENT_FOR_FOUNDERS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERCENT_FOR_LP", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERCENT_LOCK_BONUS_REWARD", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "REWARD_MULTIPLIER", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "REWARD_PER_BLOCK", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "START_BLOCK", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_allocPoint", "type": "uint256" }, { "internalType": "contract IERC20", "name": "_lpToken", "type": "address" }, { "internalType": "bool", "name": "_withUpdate", "type": "bool" } ], "name": "add", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_toAdd", "type": "address" } ], "name": "addAuthorized", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "authorized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "blockDeltaEndStage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "blockDeltaStartStage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newFinish", "type": "uint256" } ], "name": "bonusFinishUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_pid", "type": "uint256" } ], "name": "claimReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_pids", "type": "uint256[]" } ], "name": "claimRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newCom", "type": "address" } ], "name": "comUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "comfundaddr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "address", "name": "_ref", "type": "address" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_devaddr", "type": "address" } ], "name": "dev", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "devDepFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "devFeeStage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "devaddr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_pid", "type": "uint256" } ], "name": "emergencyWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newFounder", "type": "address" } ], "name": "founderUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "founderaddr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "getGlobalAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "getGlobalRefAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_from", "type": "uint256" }, { "internalType": "uint256", "name": "_to", "type": "uint256" } ], "name": "getMultiplier", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "pid1", "type": "uint256" } ], "name": "getNewRewardPerBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_from", "type": "uint256" }, { "internalType": "uint256", "name": "_to", "type": "uint256" }, { "internalType": "uint256", "name": "_allocPoint", "type": "uint256" } ], "name": "getPoolReward", "outputs": [ { "internalType": "uint256", "name": "forDev", "type": "uint256" }, { "internalType": "uint256", "name": "forFarmer", "type": "uint256" }, { "internalType": "uint256", "name": "forLP", "type": "uint256" }, { "internalType": "uint256", "name": "forCom", "type": "uint256" }, { "internalType": "uint256", "name": "forFounders", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "address", "name": "_user2", "type": "address" } ], "name": "getRefValueOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "getTotalRefs", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "govToken", "outputs": [ { "internalType": "contract GovernanceToken", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_newHalving", "type": "uint256[]" } ], "name": "halvingUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "liquidityaddr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newlock", "type": "uint256" } ], "name": "lockUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newcomlock", "type": "uint256" } ], "name": "lockcomUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newdevlock", "type": "uint256" } ], "name": "lockdevUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newfounderlock", "type": "uint256" } ], "name": "lockfounderUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newlplock", "type": "uint256" } ], "name": "locklpUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newLP", "type": "address" } ], "name": "lpUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "massUpdatePools", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "address", "name": "_user", "type": "address" } ], "name": "pendingReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "name": "poolExistence", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "poolId1", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "poolInfo", "outputs": [ { "internalType": "contract IERC20", "name": "lpToken", "type": "address" }, { "internalType": "uint256", "name": "allocPoint", "type": "uint256" }, { "internalType": "uint256", "name": "lastRewardBlock", "type": "uint256" }, { "internalType": "uint256", "name": "accGovTokenPerShare", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poolLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "reclaimTokenOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_toRemove", "type": "address" } ], "name": "removeAuthorized", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "uint256", "name": "_block", "type": "uint256" } ], "name": "reviseDeposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "uint256", "name": "_block", "type": "uint256" } ], "name": "reviseWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_newMulReward", "type": "uint256[]" } ], "name": "rewardMulUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newReward", "type": "uint256" } ], "name": "rewardUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "uint256", "name": "_allocPoint", "type": "uint256" }, { "internalType": "bool", "name": "_withUpdate", "type": "bool" } ], "name": "set", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_devDepFees", "type": "uint256" } ], "name": "setDevDepFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_devFees", "type": "uint256[]" } ], "name": "setDevFeeStage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_blockEnds", "type": "uint256[]" } ], "name": "setStageEnds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_blockStarts", "type": "uint256[]" } ], "name": "setStageStarts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_usrDepFees", "type": "uint256" } ], "name": "setUserDepFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_userFees", "type": "uint256[]" } ], "name": "setUserFeeStage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newstarblock", "type": "uint256" } ], "name": "starblockUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalAllocPoint", "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": [ { "internalType": "uint256", "name": "_pid", "type": "uint256" } ], "name": "updatePool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "usdOracle", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_pid", "type": "uint256" } ], "name": "userDelta", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "userDepFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "userFeeStage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "userGlobalInfo", "outputs": [ { "internalType": "uint256", "name": "globalAmount", "type": "uint256" }, { "internalType": "uint256", "name": "totalReferals", "type": "uint256" }, { "internalType": "uint256", "name": "globalRefAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "userInfo", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "rewardDebt", "type": "uint256" }, { "internalType": "uint256", "name": "rewardDebtAtBlock", "type": "uint256" }, { "internalType": "uint256", "name": "lastWithdrawBlock", "type": "uint256" }, { "internalType": "uint256", "name": "firstDepositBlock", "type": "uint256" }, { "internalType": "uint256", "name": "blockdelta", "type": "uint256" }, { "internalType": "uint256", "name": "lastDepositBlock", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "address", "name": "_ref", "type": "address" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "evm": { "bytecode": { "linkReferences": {}, "object": "60806040526000601e553480156200001657600080fd5b50604051620053be380380620053be83398181016040526101e08110156200003d57600080fd5b815160208301516040808501516060860151608087015160a088015160c089015160e08a01516101008b01516101208c01516101408d01805199519b9d9a9c989b979a9699959894979396929591948301929184640100000000821115620000a457600080fd5b908301906020820185811115620000ba57600080fd5b8251866020820283011164010000000082111715620000d857600080fd5b82525081516020918201928201910280838360005b8381101562000107578181015183820152602001620000ed565b50505050905001604052602001805160405193929190846401000000008211156200013157600080fd5b9083019060208201858111156200014757600080fd5b82518660208202830111640100000000821117156200016557600080fd5b82525081516020918201928201910280838360005b83811015620001945781810151838201526020016200017a565b5050505090500160405260200180516040519392919084640100000000821115620001be57600080fd5b908301906020820185811115620001d457600080fd5b8251866020820283011164010000000082111715620001f257600080fd5b82525081516020918201928201910280838360005b838110156200022157818101518382015260200162000207565b50505050905001604052602001805160405193929190846401000000008211156200024b57600080fd5b9083019060208201858111156200026157600080fd5b82518660208202830111640100000000821117156200027f57600080fd5b82525081516020918201928201910280838360005b83811015620002ae57818101518382015260200162000294565b5050505090500160405260200180516040519392919084640100000000821115620002d857600080fd5b908301906020820185811115620002ee57600080fd5b82518660208202830111640100000000821117156200030c57600080fd5b82525081516020918201928201910280838360005b838110156200033b57818101518382015260200162000321565b5050505090500160405250505060006200035a6200060860201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060016002819055508e600360006101000a8154816001600160a01b0302191690836001600160a01b031602179055508d600560006101000a8154816001600160a01b0302191690836001600160a01b031602179055508c600660006101000a8154816001600160a01b0302191690836001600160a01b031602179055508b600760006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a600860006101000a8154816001600160a01b0302191690836001600160a01b031602179055508960098190555088601381905550866011819055508560128190555084600a9080519060200190620004a3929190620006ce565b508351620004b990600c906020870190620006ce565b508251620004cf90600d906020860190620006ce565b508151620004e590600e906020850190620006ce565b508051620004fb90600f906020840190620006ce565b5060005b600a54600019018110156200058f5760006200054c6001620005388d62000538866001018f6200060c60201b620040f71790919060201c565b6200067360201b620041711790919060201c565b600b8054600181810183556000929092527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90191909155919091019050620004ff565b50620005b789620005386001600a80549050038b6200060c60201b620040f71790919060201c565b6010555050600b80546001810182556000919091526000197f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db99091015550620007359b505050505050505050505050565b3390565b6000826200061d575060006200066d565b828202828482816200062b57fe5b04146200066a5760405162461bcd60e51b81526004018080602001828103825260218152602001806200539d6021913960400191505060405180910390fd5b90505b92915050565b6000828201838110156200066a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b8280548282559060005260206000209081019282156200070c579160200282015b828111156200070c578251825591602001919060010190620006ef565b506200071a9291506200071e565b5090565b5b808211156200071a57600081556001016200071f565b614c5880620007456000396000f3fe608060405234801561001057600080fd5b50600436106105145760003560e01c8063847bdaa4116102a1578063c6929e531161016b578063d49e77cd116100e3578063ed9bdeda11610097578063f2fde38b1161007c578063f2fde38b146112b4578063f2ffc22c146112e7578063fb0754331461130457610514565b8063ed9bdeda14611279578063eda670481461128157610514565b8063dd77b9fd116100c8578063dd77b9fd14611219578063de98852414611254578063ec12173d1461127157610514565b8063d49e77cd146111c0578063d9608d8a146111c857610514565b8063cb0b8ca11161013a578063ce2529c91161011f578063ce2529c91461113d578063cf1c316a14611170578063d007db29146111a357610514565b8063cb0b8ca1146110ed578063cbd258b51461110a57610514565b8063c6929e5314611056578063c749d6141461105e578063c8a4271f14611091578063c8ed76801461109957610514565b8063975532dc11610219578063b6066962116101cd578063beff2a53116101b2578063beff2a5314611014578063c56a10ff14611031578063c663baa61461103957610514565b8063b606696214610fb0578063b918161114610fcd57610514565b806398969e82116101fe57806398969e8214610f52578063a02306f914610f8b578063ae169a5014610f9357610514565b8063975532dc14610f42578063980c2a9814610f4a57610514565b80638dbb1e3a11610270578063929c697111610255578063929c697114610e9657806393f1a40b14610ec957806395fdf25814610f3a57610514565b80638dbb1e3a14610e345780638dbdbe6d14610e5757610514565b8063847bdaa414610cb35780638cc883ce14610d565780638d88a90e14610df95780638da5cb5b14610e2c57610514565b80633c9d9267116103e25780635c5e490b1161035a57806364482f791161030e5780637c39c9c9116102f35780637c39c9c914610c4f57806382386d5814610c6c57806382796e9814610cab57610514565b806364482f7914610c1c578063715018a614610c4757610514565b80636066debd1161033f5780636066debd14610bb85780636245f08414610bf7578063630b5ba114610c1457610514565b80635c5e490b14610ae25780635eac623914610b1557610514565b8063485d7d94116103b15780634dbf85ca116103965780634dbf85ca14610a7557806351eb05a614610aa85780635312ea8e14610ac557610514565b8063485d7d941461099f5780634af0e3e1146109d257610514565b80633c9d9267146108ba5780633d479cd5146108c25780634179b4fb146108df57806346664064146108fc57610514565b80631eaaa045116104905780632fda773511610444578063354affb711610429578063354affb7146107dc57806336ebcde61461087f57806339b3e826146108b257610514565b80632fda77351461078c57806330fb8e0e146107a957610514565b8063245b211d11610475578063245b211d146106af57806324b95c3e146106cc5780632a7b0107146106e957610514565b80631eaaa0451461066657806322a376b0146106a757610514565b80630a67d518116104e75780631526fe27116104cc5780631526fe27146105e757806317caf6f1146106415780631d465c821461064957610514565b80630a67d518146105a05780630ad58d2f146105a857610514565b806301b689c01461051957806305268cff14610538578063081e3eda1461056957806309ae4d2c14610583575b600080fd5b6105366004803603602081101561052f57600080fd5b5035611321565b005b610540611369565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610571611385565b60408051918252519081900360200190f35b6105716004803603602081101561059957600080fd5b503561138b565b6105716113c9565b610536600480360360608110156105be57600080fd5b508035906020810135906040013573ffffffffffffffffffffffffffffffffffffffff166113cf565b610604600480360360208110156105fd57600080fd5b5035611b04565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352838301919091526060830152519081900360800190f35b610571611b52565b6105716004803603602081101561065f57600080fd5b5035611b58565b6105366004803603606081101561067c57600080fd5b5080359073ffffffffffffffffffffffffffffffffffffffff60208201351690604001351515611bcb565b610540611efc565b610536600480360360208110156106c557600080fd5b5035611f18565b610536600480360360208110156106e257600080fd5b5035611f60565b610536600480360360208110156106ff57600080fd5b81019060208101813564010000000081111561071a57600080fd5b82018360208201111561072c57600080fd5b8035906020019184602083028401116401000000008311171561074e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611fa8945050505050565b610571600480360360208110156107a257600080fd5b5035612002565b610536600480360360208110156107bf57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612020565b610536600480360360208110156107f257600080fd5b81019060208101813564010000000081111561080d57600080fd5b82018360208201111561081f57600080fd5b8035906020019184602083028401116401000000008311171561084157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506120aa945050505050565b6105716004803603602081101561089557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612100565b61057161215a565b610540612160565b610536600480360360208110156108d857600080fd5b503561217c565b610571600480360360208110156108f557600080fd5b50356121c4565b6105366004803603602081101561091257600080fd5b81019060208101813564010000000081111561092d57600080fd5b82018360208201111561093f57600080fd5b8035906020019184602083028401116401000000008311171561096157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506121d1945050505050565b610536600480360360208110156109b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612227565b610536600480360360208110156109e857600080fd5b810190602081018135640100000000811115610a0357600080fd5b820183602082011115610a1557600080fd5b80359060200191846020830284011164010000000083111715610a3757600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061233e945050505050565b61053660048036036020811015610a8b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612394565b61053660048036036020811015610abe57600080fd5b503561241e565b61053660048036036020811015610adb57600080fd5b5035612b12565b61057160048036036020811015610af857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612c95565b61053660048036036020811015610b2b57600080fd5b810190602081018135640100000000811115610b4657600080fd5b820183602082011115610b5857600080fd5b80359060200191846020830284011164010000000083111715610b7a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612ced945050505050565b61053660048036036060811015610bce57600080fd5b5080359073ffffffffffffffffffffffffffffffffffffffff6020820135169060400135612d1d565b61057160048036036020811015610c0d57600080fd5b5035612d96565b610536612da3565b61053660048036036060811015610c3257600080fd5b50803590602081013590604001351515612dc2565b610536612ee3565b61053660048036036020811015610c6557600080fd5b5035612ffa565b61053660048036036060811015610c8257600080fd5b5080359073ffffffffffffffffffffffffffffffffffffffff6020820135169060400135613042565b6105716130bb565b61053660048036036020811015610cc957600080fd5b810190602081018135640100000000811115610ce457600080fd5b820183602082011115610cf657600080fd5b80359060200191846020830284011164010000000083111715610d1857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506130c1945050505050565b61053660048036036020811015610d6c57600080fd5b810190602081018135640100000000811115610d8757600080fd5b820183602082011115610d9957600080fd5b80359060200191846020830284011164010000000083111715610dbb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613117945050505050565b61053660048036036020811015610e0f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661316d565b6105406131f7565b61057160048036036040811015610e4a57600080fd5b5080359060200135613213565b61053660048036036060811015610e6d57600080fd5b508035906020810135906040013573ffffffffffffffffffffffffffffffffffffffff1661330f565b61057160048036036020811015610eac57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613617565b610f0260048036036040811015610edf57600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16613673565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b6105716136c2565b6105716136c8565b6105716136ce565b61057160048036036040811015610f6857600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff166136d4565b610571613848565b61053660048036036020811015610fa957600080fd5b503561384e565b61053660048036036020811015610fc657600080fd5b5035613860565b61100060048036036020811015610fe357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166138a8565b604080519115158252519081900360200190f35b6105716004803603602081101561102a57600080fd5b50356138bd565b6105716138ca565b6105366004803603602081101561104f57600080fd5b50356138d0565b610571613918565b6105366004803603602081101561107457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661391e565b6105406139a8565b6110c2600480360360608110156110af57600080fd5b50803590602081013590604001356139c4565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b6105716004803603602081101561110357600080fd5b5035613bd6565b6110006004803603602081101561112057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613be3565b6105716004803603602081101561115357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613bf8565b6105366004803603602081101561118657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613c0a565b610571600480360360208110156111b957600080fd5b5035613d04565b610540613d11565b6111fb600480360360208110156111de57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613d2d565b60408051938452602084019290925282820152519081900360600190f35b6105716004803603604081101561122f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516613d4e565b6105366004803603602081101561126a57600080fd5b5035613d8a565b610540613dd2565b610571613dee565b6105366004803603602081101561129757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613df4565b610536600480360360208110156112ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613ec6565b610536600480360360208110156112fd57600080fd5b5035614067565b6105366004803603602081101561131a57600080fd5b50356140af565b3360009081526001602052604090205460ff168061135b5750336113436131f7565b73ffffffffffffffffffffffffffffffffffffffff16145b61136457600080fd5b601455565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60195490565b6000818152601b6020908152604080832033845290915281206003810154156113bb5760030154430390506113c4565b60040154430390505b919050565b60165481565b60028054141561144057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002808190555060006019848154811061145657fe5b60009182526020808320878452601b825260408085203380875290845281862073ffffffffffffffffffffffffffffffffffffffff89168752601c9094528186209086529420825460049094029091019450909291861115611503576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614b346021913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516156115435733600090815260018301602052604090208054879003905560038201805487900390555b805486900381556115538761241e565b61155c876141e5565b8515611af657825461156e90876144dc565b835560038301541561158b57600383015443036005840155611598565b6004830154430360058401555b600c6000815481106115a657fe5b9060005260206000200154836005015414806115c55750826006015443145b1561165e576116233361160460646115fe600e6000815481106115e457fe5b90600052602060002001548b6140f790919063ffffffff16565b90614553565b865473ffffffffffffffffffffffffffffffffffffffff1691906145d4565b600554600f80546116599273ffffffffffffffffffffffffffffffffffffffff1691611604916064916115fe916000906115e457fe5b611a98565b600c60018154811061166c57fe5b90600052602060002001548360050154101580156116a65750600d60008154811061169357fe5b9060005260206000200154836005015411155b156116fd576116c53361160460646115fe600e6001815481106115e457fe5b600554600f80546116599273ffffffffffffffffffffffffffffffffffffffff1691611604916064916115fe9160019081106115e457fe5b600c60028154811061170b57fe5b90600052602060002001548360050154101580156117455750600d60018154811061173257fe5b9060005260206000200154836005015411155b1561179c576117643361160460646115fe600e6002815481106115e457fe5b600554600f80546116599273ffffffffffffffffffffffffffffffffffffffff1691611604916064916115fe9160029081106115e457fe5b600c6003815481106117aa57fe5b90600052602060002001548360050154101580156117e45750600d6002815481106117d157fe5b9060005260206000200154836005015411155b1561183b576118033361160460646115fe600e6003815481106115e457fe5b600554600f80546116599273ffffffffffffffffffffffffffffffffffffffff1691611604916064916115fe9160039081106115e457fe5b600c60048154811061184957fe5b90600052602060002001548360050154101580156118835750600d60038154811061187057fe5b9060005260206000200154836005015411155b156118da576118a23361160460646115fe600e6004815481106115e457fe5b600554600f80546116599273ffffffffffffffffffffffffffffffffffffffff1691611604916064916115fe9160049081106115e457fe5b600c6005815481106118e857fe5b90600052602060002001548360050154101580156119225750600d60048154811061190f57fe5b9060005260206000200154836005015411155b1561197f57611942336116046103e86115fe600e6005815481106115e457fe5b611659600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116046103e86115fe600f6005815481106115e457fe5b600c60068154811061198d57fe5b90600052602060002001548360050154101580156119c75750600d6005815481106119b457fe5b9060005260206000200154836005015411155b15611a20576119e7336116046127106115fe600e6006815481106115e457fe5b600554600f80546116599273ffffffffffffffffffffffffffffffffffffffff169161160491612710916115fe9160069081106115e457fe5b600c600781548110611a2e57fe5b906000526020600020015483600501541115611a9857611a5f336116046127106115fe600e6007815481106115e457fe5b600554600f8054611a989273ffffffffffffffffffffffffffffffffffffffff169161160491612710916115fe9160079081106115e457fe5b60038401548354611ab39164e8d4a51000916115fe916140f7565b6001840155604080518781529051889133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a34360038401555b505060016002555050505050565b60198181548110611b1157fe5b6000918252602090912060049091020180546001820154600283015460039093015473ffffffffffffffffffffffffffffffffffffffff9092169350919084565b601e5481565b600080611b686001430343613213565b905082611b8557600954611b7d9082906140f7565b9150506113c4565b611b7d601e546115fe60196001870381548110611b9e57fe5b906000526020600020906004020160010154611bc5600954866140f790919063ffffffff16565b906140f7565b611bd3614661565b73ffffffffffffffffffffffffffffffffffffffff16611bf16131f7565b73ffffffffffffffffffffffffffffffffffffffff1614611c7357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152601d6020526040902054829060ff1615611cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614b9c6028913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152601a602052604090205415611d70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614b0b6029913960400191505060405180910390fd5b8115611d7e57611d7e612da3565b60006013544311611d9157601354611d93565b435b601e54909150611da39086614171565b601e556019805473ffffffffffffffffffffffffffffffffffffffff9586166000818152601a6020908152604080832060019586019055601d825280832080547ffffffffffffffffffffffffffffffffff