UNPKG

@project-monarch/contracts

Version:

Arch Token + 🧑‍🌾 Liquidity Mining contracts for Project Monarch & the Monarch Protocol

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": "60806040526000601e553480156200001657600080fd5b50604051620053b0380380620053b083398181016040526101e08110156200003d57600080fd5b815160208301516040808501516060860151608087015160a088015160c089015160e08a01516101008b01516101208c01516101408d01805199519b9d9a9c989b979a9699959894979396929591948301929184640100000000821115620000a457600080fd5b908301906020820185811115620000ba57600080fd5b8251866020820283011164010000000082111715620000d857600080fd5b82525081516020918201928201910280838360005b8381101562000107578181015183820152602001620000ed565b50505050905001604052602001805160405193929190846401000000008211156200013157600080fd5b9083019060208201858111156200014757600080fd5b82518660208202830111640100000000821117156200016557600080fd5b82525081516020918201928201910280838360005b83811015620001945781810151838201526020016200017a565b5050505090500160405260200180516040519392919084640100000000821115620001be57600080fd5b908301906020820185811115620001d457600080fd5b8251866020820283011164010000000082111715620001f257600080fd5b82525081516020918201928201910280838360005b838110156200022157818101518382015260200162000207565b50505050905001604052602001805160405193929190846401000000008211156200024b57600080fd5b9083019060208201858111156200026157600080fd5b82518660208202830111640100000000821117156200027f57600080fd5b82525081516020918201928201910280838360005b83811015620002ae57818101518382015260200162000294565b5050505090500160405260200180516040519392919084640100000000821115620002d857600080fd5b908301906020820185811115620002ee57600080fd5b82518660208202830111640100000000821117156200030c57600080fd5b82525081516020918201928201910280838360005b838110156200033b57818101518382015260200162000321565b5050505090500160405250505060006200035a6200060860201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060016002819055508e600360006101000a8154816001600160a01b0302191690836001600160a01b031602179055508d600560006101000a8154816001600160a01b0302191690836001600160a01b031602179055508c600660006101000a8154816001600160a01b0302191690836001600160a01b031602179055508b600760006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a600860006101000a8154816001600160a01b0302191690836001600160a01b031602179055508960098190555088601381905550866011819055508560128190555084600a9080519060200190620004a3929190620006ce565b508351620004b990600c906020870190620006ce565b508251620004cf90600d906020860190620006ce565b508151620004e590600e906020850190620006ce565b508051620004fb90600f906020840190620006ce565b5060005b600a54600019018110156200058f5760006200054c6001620005388d62000538866001018f6200060c60201b6200410d1790919060201c565b6200067360201b620041871790919060201c565b600b8054600181810183556000929092527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90191909155919091019050620004ff565b50620005b789620005386001600a80549050038b6200060c60201b6200410d1790919060201c565b6010555050600b80546001810182556000919091526000197f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db99091015550620007359b505050505050505050505050565b3390565b6000826200061d575060006200066d565b828202828482816200062b57fe5b04146200066a5760405162461bcd60e51b81526004018080602001828103825260218152602001806200538f6021913960400191505060405180910390fd5b90505b92915050565b6000828201838110156200066a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b8280548282559060005260206000209081019282156200070c579160200282015b828111156200070c578251825591602001919060010190620006ef565b506200071a9291506200071e565b5090565b5b808211156200071a57600081556001016200071f565b614c4a80620007456000396000f3fe608060405234801561001057600080fd5b50600436106105145760003560e01c8063847bdaa4116102a1578063c6929e531161016b578063d49e77cd116100e3578063ed9bdeda11610097578063f2fde38b1161007c578063f2fde38b146112b4578063f2ffc22c146112e7578063fb0754331461130457610514565b8063ed9bdeda14611279578063eda670481461128157610514565b8063dd77b9fd116100c8578063dd77b9fd14611219578063de98852414611254578063ec12173d1461127157610514565b8063d49e77cd146111c0578063d9608d8a146111c857610514565b8063cb0b8ca11161013a578063ce2529c91161011f578063ce2529c91461113d578063cf1c316a14611170578063d007db29146111a357610514565b8063cb0b8ca1146110ed578063cbd258b51461110a57610514565b8063c6929e5314611056578063c749d6141461105e578063c8a4271f14611091578063c8ed76801461109957610514565b8063975532dc11610219578063b6066962116101cd578063beff2a53116101b2578063beff2a5314611014578063c56a10ff14611031578063c663baa61461103957610514565b8063b606696214610fb0578063b918161114610fcd57610514565b806398969e82116101fe57806398969e8214610f52578063a02306f914610f8b578063ae169a5014610f9357610514565b8063975532dc14610f42578063980c2a9814610f4a57610514565b80638dbb1e3a11610270578063929c697111610255578063929c697114610e9657806393f1a40b14610ec957806395fdf25814610f3a57610514565b80638dbb1e3a14610e345780638dbdbe6d14610e5757610514565b8063847bdaa414610cb35780638cc883ce14610d565780638d88a90e14610df95780638da5cb5b14610e2c57610514565b80633c9d9267116103e25780635c5e490b1161035a57806364482f791161030e5780637c39c9c9116102f35780637c39c9c914610c4f57806382386d5814610c6c57806382796e9814610cab57610514565b806364482f7914610c1c578063715018a614610c4757610514565b80636066debd1161033f5780636066debd14610bb85780636245f08414610bf7578063630b5ba114610c1457610514565b80635c5e490b14610ae25780635eac623914610b1557610514565b8063485d7d94116103b15780634dbf85ca116103965780634dbf85ca14610a7557806351eb05a614610aa85780635312ea8e14610ac557610514565b8063485d7d941461099f5780634af0e3e1146109d257610514565b80633c9d9267146108ba5780633d479cd5146108c25780634179b4fb146108df57806346664064146108fc57610514565b80631eaaa045116104905780632fda773511610444578063354affb711610429578063354affb7146107dc57806336ebcde61461087f57806339b3e826146108b257610514565b80632fda77351461078c57806330fb8e0e146107a957610514565b8063245b211d11610475578063245b211d146106af57806324b95c3e146106cc5780632a7b0107146106e957610514565b80631eaaa0451461066657806322a376b0146106a757610514565b80630a67d518116104e75780631526fe27116104cc5780631526fe27146105e757806317caf6f1146106415780631d465c821461064957610514565b80630a67d518146105a05780630ad58d2f146105a857610514565b806301b689c01461051957806305268cff14610538578063081e3eda1461056957806309ae4d2c14610583575b600080fd5b6105366004803603602081101561052f57600080fd5b5035611321565b005b610540611369565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610571611385565b60408051918252519081900360200190f35b6105716004803603602081101561059957600080fd5b503561138b565b6105716113c9565b610536600480360360608110156105be57600080fd5b508035906020810135906040013573ffffffffffffffffffffffffffffffffffffffff166113cf565b610604600480360360208110156105fd57600080fd5b5035611b1a565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352838301919091526060830152519081900360800190f35b610571611b68565b6105716004803603602081101561065f57600080fd5b5035611b6e565b6105366004803603606081101561067c57600080fd5b5080359073ffffffffffffffffffffffffffffffffffffffff60208201351690604001351515611be1565b610540611f12565b610536600480360360208110156106c557600080fd5b5035611f2e565b610536600480360360208110156106e257600080fd5b5035611f76565b610536600480360360208110156106ff57600080fd5b81019060208101813564010000000081111561071a57600080fd5b82018360208201111561072c57600080fd5b8035906020019184602083028401116401000000008311171561074e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611fbe945050505050565b610571600480360360208110156107a257600080fd5b5035612018565b610536600480360360208110156107bf57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612036565b610536600480360360208110156107f257600080fd5b81019060208101813564010000000081111561080d57600080fd5b82018360208201111561081f57600080fd5b8035906020019184602083028401116401000000008311171561084157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506120c0945050505050565b6105716004803603602081101561089557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612116565b610571612170565b610540612176565b610536600480360360208110156108d857600080fd5b5035612192565b610571600480360360208110156108f557600080fd5b50356121da565b6105366004803603602081101561091257600080fd5b81019060208101813564010000000081111561092d57600080fd5b82018360208201111561093f57600080fd5b8035906020019184602083028401116401000000008311171561096157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506121e7945050505050565b610536600480360360208110156109b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661223d565b610536600480360360208110156109e857600080fd5b810190602081018135640100000000811115610a0357600080fd5b820183602082011115610a1557600080fd5b80359060200191846020830284011164010000000083111715610a3757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612354945050505050565b61053660048036036020811015610a8b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166123aa565b61053660048036036020811015610abe57600080fd5b5035612434565b61053660048036036020811015610adb57600080fd5b5035612b28565b61057160048036036020811015610af857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612cab565b61053660048036036020811015610b2b57600080fd5b810190602081018135640100000000811115610b4657600080fd5b820183602082011115610b5857600080fd5b80359060200191846020830284011164010000000083111715610b7a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612d03945050505050565b61053660048036036060811015610bce57600080fd5b5080359073ffffffffffffffffffffffffffffffffffffffff6020820135169060400135612d33565b61057160048036036020811015610c0d57600080fd5b5035612dac565b610536612db9565b61053660048036036060811015610c3257600080fd5b50803590602081013590604001351515612dd8565b610536612ef9565b61053660048036036020811015610c6557600080fd5b5035613010565b61053660048036036060811015610c8257600080fd5b5080359073ffffffffffffffffffffffffffffffffffffffff6020820135169060400135613058565b6105716130d1565b61053660048036036020811015610cc957600080fd5b810190602081018135640100000000811115610ce457600080fd5b820183602082011115610cf657600080fd5b80359060200191846020830284011164010000000083111715610d1857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506130d7945050505050565b61053660048036036020811015610d6c57600080fd5b810190602081018135640100000000811115610d8757600080fd5b820183602082011115610d9957600080fd5b80359060200191846020830284011164010000000083111715610dbb57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061312d945050505050565b61053660048036036020811015610e0f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613183565b61054061320d565b61057160048036036040811015610e4a57600080fd5b5080359060200135613229565b61053660048036036060811015610e6d57600080fd5b508035906020810135906040013573ffffffffffffffffffffffffffffffffffffffff16613325565b61057160048036036020811015610eac57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661362d565b610f0260048036036040811015610edf57600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16613689565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b6105716136d8565b6105716136de565b6105716136e4565b61057160048036036040811015610f6857600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff166136ea565b61057161385e565b61053660048036036020811015610fa957600080fd5b5035613864565b61053660048036036020811015610fc657600080fd5b5035613876565b61100060048036036020811015610fe357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166138be565b604080519115158252519081900360200190f35b6105716004803603602081101561102a57600080fd5b50356138d3565b6105716138e0565b6105366004803603602081101561104f57600080fd5b50356138e6565b61057161392e565b6105366004803603602081101561107457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613934565b6105406139be565b6110c2600480360360608110156110af57600080fd5b50803590602081013590604001356139da565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b6105716004803603602081101561110357600080fd5b5035613bec565b6110006004803603602081101561112057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613bf9565b6105716004803603602081101561115357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613c0e565b6105366004803603602081101561118657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613c20565b610571600480360360208110156111b957600080fd5b5035613d1a565b610540613d27565b6111fb600480360360208110156111de57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613d43565b60408051938452602084019290925282820152519081900360600190f35b6105716004803603604081101561122f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516613d64565b6105366004803603602081101561126a57600080fd5b5035613da0565b610540613de8565b610571613e04565b6105366004803603602081101561129757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613e0a565b610536600480360360208110156112ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613edc565b610536600480360360208110156112fd57600080fd5b503561407d565b6105366004803603602081101561131a57600080fd5b50356140c5565b3360009081526001602052604090205460ff168061135b57503361134361320d565b73ffffffffffffffffffffffffffffffffffffffff16145b61136457600080fd5b601455565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60195490565b6000818152601b6020908152604080832033845290915281206003810154156113bb5760030154430390506113c4565b60040154430390505b919050565b60165481565b60028054141561144057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002808190555060006019848154811061145657fe5b60009182526020808320878452601b825260408085203380875290845281862073ffffffffffffffffffffffffffffffffffffffff89168752601c909452818620908652942082546004909402909101945090929186111561151957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4d61737465724c6f6f7465723a3a77697468647261773a206e6f7420676f6f64604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8516156115595733600090815260018301602052604090208054879003905560038201805487900390555b8054869003815561156987612434565b611572876141fb565b8515611b0c57825461158490876144f2565b83556003830154156115a1576003830154430360058401556115ae565b6004830154430360058401555b600c6000815481106115bc57fe5b9060005260206000200154836005015414806115db5750826006015443145b15611674576116393361161a6064611614600e6000815481106115fa57fe5b90600052602060002001548b61410d90919063ffffffff16565b90614569565b865473ffffffffffffffffffffffffffffffffffffffff1691906145ea565b600554600f805461166f9273ffffffffffffffffffffffffffffffffffffffff169161161a91606491611614916000906115fa57fe5b611aae565b600c60018154811061168257fe5b90600052602060002001548360050154101580156116bc5750600d6000815481106116a957fe5b9060005260206000200154836005015411155b15611713576116db3361161a6064611614600e6001815481106115fa57fe5b600554600f805461166f9273ffffffffffffffffffffffffffffffffffffffff169161161a916064916116149160019081106115fa57fe5b600c60028154811061172157fe5b906000526020600020015483600501541015801561175b5750600d60018154811061174857fe5b9060005260206000200154836005015411155b156117b25761177a3361161a6064611614600e6002815481106115fa57fe5b600554600f805461166f9273ffffffffffffffffffffffffffffffffffffffff169161161a916064916116149160029081106115fa57fe5b600c6003815481106117c057fe5b90600052602060002001548360050154101580156117fa5750600d6002815481106117e757fe5b9060005260206000200154836005015411155b15611851576118193361161a6064611614600e6003815481106115fa57fe5b600554600f805461166f9273ffffffffffffffffffffffffffffffffffffffff169161161a916064916116149160039081106115fa57fe5b600c60048154811061185f57fe5b90600052602060002001548360050154101580156118995750600d60038154811061188657fe5b9060005260206000200154836005015411155b156118f0576118b83361161a6064611614600e6004815481106115fa57fe5b600554600f805461166f9273ffffffffffffffffffffffffffffffffffffffff169161161a916064916116149160049081106115fa57fe5b600c6005815481106118fe57fe5b90600052602060002001548360050154101580156119385750600d60048154811061192557fe5b9060005260206000200154836005015411155b15611995576119583361161a6103e8611614600e6005815481106115fa57fe5b61166f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661161a6103e8611614600f6005815481106115fa57fe5b600c6006815481106119a357fe5b90600052602060002001548360050154101580156119dd5750600d6005815481106119ca57fe5b9060005260206000200154836005015411155b15611a36576119fd3361161a612710611614600e6006815481106115fa57fe5b600554600f805461166f9273ffffffffffffffffffffffffffffffffffffffff169161161a91612710916116149160069081106115fa57fe5b600c600781548110611a4457fe5b906000526020600020015483600501541115611aae57611a753361161a612710611614600e6007815481106115fa57fe5b600554600f8054611aae9273ffffffffffffffffffffffffffffffffffffffff169161161a91612710916116149160079081106115fa57fe5b60038401548354611ac99164e8d4a51000916116149161410d565b6001840155604080518781529051889133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a34360038401555b505060016002555050505050565b60198181548110611b2757fe5b6000918252602090912060049091020180546001820154600283015460039093015473ffffffffffffffffffffffffffffffffffffffff9092169350919084565b601e5481565b600080611b7e6001430343613229565b905082611b9b57600954611b9390829061410d565b9150506113c4565b611b93601e5461161460196001870381548110611bb457fe5b906000526020600020906004020160010154611bdb6009548661410d90919063ffffffff16565b9061410d565b611be9614677565b73ffffffffffffffffffffffffffffffffffffffff16611c0761320d565b73ffffffffffffffffffffffffffffffffffffffff1614611c8957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152601d6020526040902054829060ff1615611d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180614b9c6027913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152601a602052604090205415611d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614bed6028913960400191505060405180910390fd5b8115611d9457611d94612db9565b60006013544311611da757601354611da9565b435b601e54909150611db99086614187565b601e556019805473ffffffffffffffffffffffffffffffffffffffff9586166000818152601a6020908152604080832060019586019055601d82528