Contract Overview
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
MATIC_BOOST
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2022-01-02 */ // File: @chainlink/contracts/src/v0.8/VRFRequestIDBase.sol pragma solidity ^0.8.0; contract VRFRequestIDBase { /** * @notice returns the seed which is actually input to the VRF coordinator * * @dev To prevent repetition of VRF output due to repetition of the * @dev user-supplied seed, that seed is combined in a hash with the * @dev user-specific nonce, and the address of the consuming contract. The * @dev risk of repetition is mostly mitigated by inclusion of a blockhash in * @dev the final seed, but the nonce does protect against repetition in * @dev requests which are included in a single block. * * @param _userSeed VRF seed input provided by user * @param _requester Address of the requesting contract * @param _nonce User-specific nonce at the time of the request */ function makeVRFInputSeed( bytes32 _keyHash, uint256 _userSeed, address _requester, uint256 _nonce ) internal pure returns (uint256) { return uint256(keccak256(abi.encode(_keyHash, _userSeed, _requester, _nonce))); } /** * @notice Returns the id for this request * @param _keyHash The serviceAgreement ID to be used for this request * @param _vRFInputSeed The seed to be passed directly to the VRF * @return The id for this request * * @dev Note that _vRFInputSeed is not the seed passed by the consuming * @dev contract, but the one generated by makeVRFInputSeed */ function makeRequestId(bytes32 _keyHash, uint256 _vRFInputSeed) internal pure returns (bytes32) { return keccak256(abi.encodePacked(_keyHash, _vRFInputSeed)); } } // File: @chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol pragma solidity ^0.8.0; interface LinkTokenInterface { function allowance(address owner, address spender) external view returns (uint256 remaining); function approve(address spender, uint256 value) external returns (bool success); function balanceOf(address owner) external view returns (uint256 balance); function decimals() external view returns (uint8 decimalPlaces); function decreaseApproval(address spender, uint256 addedValue) external returns (bool success); function increaseApproval(address spender, uint256 subtractedValue) external; function name() external view returns (string memory tokenName); function symbol() external view returns (string memory tokenSymbol); function totalSupply() external view returns (uint256 totalTokensIssued); function transfer(address to, uint256 value) external returns (bool success); function transferAndCall( address to, uint256 value, bytes calldata data ) external returns (bool success); function transferFrom( address from, address to, uint256 value ) external returns (bool success); } // File: @chainlink/contracts/src/v0.8/VRFConsumerBase.sol pragma solidity ^0.8.0; /** **************************************************************************** * @notice Interface for contracts using VRF randomness * ***************************************************************************** * @dev PURPOSE * * @dev Reggie the Random Oracle (not his real job) wants to provide randomness * @dev to Vera the verifier in such a way that Vera can be sure he's not * @dev making his output up to suit himself. Reggie provides Vera a public key * @dev to which he knows the secret key. Each time Vera provides a seed to * @dev Reggie, he gives back a value which is computed completely * @dev deterministically from the seed and the secret key. * * @dev Reggie provides a proof by which Vera can verify that the output was * @dev correctly computed once Reggie tells it to her, but without that proof, * @dev the output is indistinguishable to her from a uniform random sample * @dev from the output space. * * @dev The purpose of this contract is to make it easy for unrelated contracts * @dev to talk to Vera the verifier about the work Reggie is doing, to provide * @dev simple access to a verifiable source of randomness. * ***************************************************************************** * @dev USAGE * * @dev Calling contracts must inherit from VRFConsumerBase, and can * @dev initialize VRFConsumerBase's attributes in their constructor as * @dev shown: * * @dev contract VRFConsumer { * @dev constuctor(<other arguments>, address _vrfCoordinator, address _link) * @dev VRFConsumerBase(_vrfCoordinator, _link) public { * @dev <initialization with other arguments goes here> * @dev } * @dev } * * @dev The oracle will have given you an ID for the VRF keypair they have * @dev committed to (let's call it keyHash), and have told you the minimum LINK * @dev price for VRF service. Make sure your contract has sufficient LINK, and * @dev call requestRandomness(keyHash, fee, seed), where seed is the input you * @dev want to generate randomness from. * * @dev Once the VRFCoordinator has received and validated the oracle's response * @dev to your request, it will call your contract's fulfillRandomness method. * * @dev The randomness argument to fulfillRandomness is the actual random value * @dev generated from your seed. * * @dev The requestId argument is generated from the keyHash and the seed by * @dev makeRequestId(keyHash, seed). If your contract could have concurrent * @dev requests open, you can use the requestId to track which seed is * @dev associated with which randomness. See VRFRequestIDBase.sol for more * @dev details. (See "SECURITY CONSIDERATIONS" for principles to keep in mind, * @dev if your contract could have multiple requests in flight simultaneously.) * * @dev Colliding `requestId`s are cryptographically impossible as long as seeds * @dev differ. (Which is critical to making unpredictable randomness! See the * @dev next section.) * * ***************************************************************************** * @dev SECURITY CONSIDERATIONS * * @dev A method with the ability to call your fulfillRandomness method directly * @dev could spoof a VRF response with any random value, so it's critical that * @dev it cannot be directly called by anything other than this base contract * @dev (specifically, by the VRFConsumerBase.rawFulfillRandomness method). * * @dev For your users to trust that your contract's random behavior is free * @dev from malicious interference, it's best if you can write it so that all * @dev behaviors implied by a VRF response are executed *during* your * @dev fulfillRandomness method. If your contract must store the response (or * @dev anything derived from it) and use it later, you must ensure that any * @dev user-significant behavior which depends on that stored value cannot be * @dev manipulated by a subsequent VRF request. * * @dev Similarly, both miners and the VRF oracle itself have some influence * @dev over the order in which VRF responses appear on the blockchain, so if * @dev your contract could have multiple VRF requests in flight simultaneously, * @dev you must ensure that the order in which the VRF responses arrive cannot * @dev be used to manipulate your contract's user-significant behavior. * * @dev Since the ultimate input to the VRF is mixed with the block hash of the * @dev block in which the request is made, user-provided seeds have no impact * @dev on its economic security properties. They are only included for API * @dev compatability with previous versions of this contract. * * @dev Since the block hash of the block which contains the requestRandomness * @dev call is mixed into the input to the VRF *last*, a sufficiently powerful * @dev miner could, in principle, fork the blockchain to evict the block * @dev containing the request, forcing the request to be included in a * @dev different block with a different hash, and therefore a different input * @dev to the VRF. However, such an attack would incur a substantial economic * @dev cost. This cost scales with the number of blocks the VRF oracle waits * @dev until it calls responds to a request. */ abstract contract VRFConsumerBase is VRFRequestIDBase { /** * @notice fulfillRandomness handles the VRF response. Your contract must * @notice implement it. See "SECURITY CONSIDERATIONS" above for important * @notice principles to keep in mind when implementing your fulfillRandomness * @notice method. * * @dev VRFConsumerBase expects its subcontracts to have a method with this * @dev signature, and will call it once it has verified the proof * @dev associated with the randomness. (It is triggered via a call to * @dev rawFulfillRandomness, below.) * * @param requestId The Id initially returned by requestRandomness * @param randomness the VRF output */ function fulfillRandomness(bytes32 requestId, uint256 randomness) internal virtual; /** * @dev In order to keep backwards compatibility we have kept the user * seed field around. We remove the use of it because given that the blockhash * enters later, it overrides whatever randomness the used seed provides. * Given that it adds no security, and can easily lead to misunderstandings, * we have removed it from usage and can now provide a simpler API. */ uint256 private constant USER_SEED_PLACEHOLDER = 0; /** * @notice requestRandomness initiates a request for VRF output given _seed * * @dev The fulfillRandomness method receives the output, once it's provided * @dev by the Oracle, and verified by the vrfCoordinator. * * @dev The _keyHash must already be registered with the VRFCoordinator, and * @dev the _fee must exceed the fee specified during registration of the * @dev _keyHash. * * @dev The _seed parameter is vestigial, and is kept only for API * @dev compatibility with older versions. It can't *hurt* to mix in some of * @dev your own randomness, here, but it's not necessary because the VRF * @dev oracle will mix the hash of the block containing your request into the * @dev VRF seed it ultimately uses. * * @param _keyHash ID of public key against which randomness is generated * @param _fee The amount of LINK to send with the request * * @return requestId unique ID for this request * * @dev The returned requestId can be used to distinguish responses to * @dev concurrent requests. It is passed as the first argument to * @dev fulfillRandomness. */ function requestRandomness(bytes32 _keyHash, uint256 _fee) internal returns (bytes32 requestId) { LINK.transferAndCall(vrfCoordinator, _fee, abi.encode(_keyHash, USER_SEED_PLACEHOLDER)); // This is the seed passed to VRFCoordinator. The oracle will mix this with // the hash of the block containing this request to obtain the seed/input // which is finally passed to the VRF cryptographic machinery. uint256 vRFSeed = makeVRFInputSeed(_keyHash, USER_SEED_PLACEHOLDER, address(this), nonces[_keyHash]); // nonces[_keyHash] must stay in sync with // VRFCoordinator.nonces[_keyHash][this], which was incremented by the above // successful LINK.transferAndCall (in VRFCoordinator.randomnessRequest). // This provides protection against the user repeating their input seed, // which would result in a predictable/duplicate output, if multiple such // requests appeared in the same block. nonces[_keyHash] = nonces[_keyHash] + 1; return makeRequestId(_keyHash, vRFSeed); } LinkTokenInterface internal immutable LINK; address private immutable vrfCoordinator; // Nonces for each VRF key from which randomness has been requested. // // Must stay in sync with VRFCoordinator[_keyHash][this] mapping(bytes32 => uint256) /* keyHash */ /* nonce */ private nonces; /** * @param _vrfCoordinator address of VRFCoordinator contract * @param _link address of LINK token contract * * @dev https://docs.chain.link/docs/link-token-contracts */ constructor(address _vrfCoordinator, address _link) { vrfCoordinator = _vrfCoordinator; LINK = LinkTokenInterface(_link); } // rawFulfillRandomness is called by VRFCoordinator when it receives a valid VRF // proof. rawFulfillRandomness then calls fulfillRandomness, after validating // the origin of the call function rawFulfillRandomness(bytes32 requestId, uint256 randomness) external { require(msg.sender == vrfCoordinator, "Only VRFCoordinator can fulfill"); fulfillRandomness(requestId, randomness); } } // File: contracts/MATIC_BOOST.sol pragma solidity ^0.8.0; contract MATIC_BOOST is VRFConsumerBase { using SafeMath for uint256; uint256 public random; bytes32 internal linkKeyHash; uint256 internal linkFee; bytes32 internal linkRequestId; uint256 public constant MIN_INVESTMENT = 10 ether; uint256 public constant REFERRAL_BONUS = 5; uint256 public constant COMPOUND_BONUS = 10; uint256 public constant DEV_FEE = 8; uint256 public constant PERCENTS_DIVIDER = 100; uint256 public constant TIME_STEP = 1 days; uint256 public constant BOOST_DELAY = 1 days; uint256 public constant PLAN_LENGTH = 9999999999; uint256 public constant PLAN_ROI_DAILY = 3; uint256[10] internal BOOSTS; uint256 public totalDeposits; uint256 public totalInvested; uint256 public totalReferrals; uint256 public totalBoosts; struct Plan { uint256 time; uint256 percent; } struct Deposit { uint256 amount; uint256 start; uint256 compoundExtension; } struct User { Deposit[] deposits; uint256 checkpoint; address referrer; uint256 referrals; uint256 referral; uint256 totalReferral; uint256 withdrawn; uint256 compounded; uint256 boost; uint256 totalBoost; uint256 lastBoosted; uint256 boostPercent; } mapping(address => User) internal users; address payable public ceo1; address payable public ceo2; event NewUser(address user); event NewDeposit(address indexed user, uint256 amount); event Referral(address indexed referrer, address indexed referral, uint256 amount); event Compound(address indexed user, uint256 amount); event Boost(address indexed user, uint256 amount); event Withdraw(address indexed user, uint256 amount); constructor() VRFConsumerBase(0x3d2341ADb2D31f1c5530cDC622016af293177AE0, 0xb0897686c545045aFc77CF20eC7A532E3120E0F1) { ceo1 = payable(msg.sender); ceo2 = payable(0xc2d5B2EeD93475F4E2782A2eAC2463c568e03327); linkKeyHash = 0xf86195cf7690c55907b2b611ebb7343a6f649bff128701cc542f0569e2c549da; linkFee = 0.0001 ether; linkRequestId = 0; // 4 boost options: // * 10% boost: 4/10 chance // * 50% boost: 3/10 chance // * 100% boost: 2/10 chance // * 300% boost: 1/10 chance BOOSTS[0] = 10; BOOSTS[1] = 50; BOOSTS[2] = 10; BOOSTS[3] = 10; BOOSTS[4] = 50; BOOSTS[5] = 100; BOOSTS[6] = 100; BOOSTS[7] = 300; BOOSTS[8] = 50; BOOSTS[9] = 10; } function invest(address referrer) public payable { uint256 amount = msg.value; require(amount >= MIN_INVESTMENT, "Less than min amount"); uint256 devFee = amount.mul(DEV_FEE).div(PERCENTS_DIVIDER); uint256 devFee2 = devFee.div(2); ceo1.transfer(devFee2); ceo2.transfer(devFee.sub(devFee2)); User storage user = users[msg.sender]; if (user.referrer == address(0) && users[referrer].deposits.length > 0 && referrer != msg.sender) { user.referrer = referrer; users[referrer].referrals = users[referrer].referrals.add(1); } if (user.referrer != address(0)) { uint256 referralBonus = amount.mul(REFERRAL_BONUS).div(PERCENTS_DIVIDER); // 5% deposit ref bonus users[user.referrer].referral = users[user.referrer].referral.add(referralBonus); users[user.referrer].totalReferral = users[user.referrer].totalReferral.add(referralBonus); totalReferrals = totalReferrals.add(referralBonus); emit Referral(user.referrer, msg.sender, amount); } if (user.deposits.length == 0) { user.checkpoint = block.timestamp; user.lastBoosted = block.timestamp; emit NewUser(msg.sender); } user.deposits.push(Deposit(amount, block.timestamp, 0)); totalDeposits = totalDeposits.add(1); totalInvested = totalInvested.add(amount); emit NewDeposit(msg.sender, amount); } function compound() public { uint256 compounded = 0; uint256 referralBonus = 0; User storage user = users[msg.sender]; for (uint256 i = 0; i < user.deposits.length; i++) { uint256 finish = (user.deposits[i].start.add(PLAN_LENGTH.mul(1 days))).add(user.deposits[i].compoundExtension); if (user.checkpoint < finish) { uint256 share = user.deposits[i].amount.mul(PLAN_ROI_DAILY).div(PERCENTS_DIVIDER); uint256 from = user.deposits[i].start > user.checkpoint ? user.deposits[i].start : user.checkpoint; uint256 to = finish < block.timestamp ? finish : block.timestamp; if (from < to) { uint256 compoundPeriod = to.sub(from); uint256 compoundAmount = share.mul(compoundPeriod).div(TIME_STEP); referralBonus = referralBonus.add(compoundAmount.mul(COMPOUND_BONUS).div(PERCENTS_DIVIDER)); // 10% compound ref bonus user.deposits[i].compoundExtension = user.deposits[i].compoundExtension.add(compoundPeriod); user.deposits[i].amount = user.deposits[i].amount.add(compoundAmount); user.compounded = user.compounded.add(compoundAmount); compounded = compounded.add(compoundAmount); } } } require(compounded > 0, "Nothing to compound"); if(user.referrer != address(0)) { users[user.referrer].referral = users[user.referrer].referral.add(referralBonus); users[user.referrer].totalReferral = users[user.referrer].totalReferral.add(referralBonus); totalReferrals = totalReferrals.add(referralBonus); //emit Referral(user.referrer, msg.sender, amount); } user.checkpoint = block.timestamp; emit Compound(msg.sender, compounded); } function boost() public { require(getUserCanBoost(msg.sender), "Can only boost once every 24 hours"); randomBoost(); uint256 boostPercent = BOOSTS[random % 10]; User storage user = users[msg.sender]; uint256 boosted = 0; for (uint256 i = 0; i < user.deposits.length; i++) { uint256 finish = (user.deposits[i].start.add(PLAN_LENGTH.mul(1 days))).add(user.deposits[i].compoundExtension); if (user.checkpoint < finish) { uint256 share = user.deposits[i].amount.mul(PLAN_ROI_DAILY).div(PERCENTS_DIVIDER); boosted = boosted.add(share.mul(boostPercent).div(PERCENTS_DIVIDER)); } } user.boostPercent = boostPercent; user.boost = user.boost.add(boosted); user.totalBoost = user.totalBoost.add(boosted); user.lastBoosted = block.timestamp; totalBoosts = totalBoosts.add(boosted); emit Boost(msg.sender, boosted); } function withdraw() public { User storage user = users[msg.sender]; uint256 divAmount = getUserDividends(msg.sender); uint256 referralBonus = getUserReferralBonus(msg.sender); uint256 boostBonus = getUserBoostBonus(msg.sender); uint256 totalAmount = divAmount; user.referral = 0; totalAmount = totalAmount.add(referralBonus); user.boost = 0; totalAmount = totalAmount.add(boostBonus); require(totalAmount > 0, "User has no dividends"); uint256 available = getContractBalance(); if (available < totalAmount) { user.referral = totalAmount.sub(available); user.totalReferral = user.totalReferral.add(user.referral); totalAmount = available; } user.checkpoint = block.timestamp; user.withdrawn = user.withdrawn.add(totalAmount); payable(msg.sender).transfer(totalAmount); emit Withdraw(msg.sender, totalAmount); } function getUserDividends(address userAddress) public view returns (uint256) { User storage user = users[userAddress]; uint256 totalAmount = 0; for (uint256 i = 0; i < user.deposits.length; i++) { uint256 finish = (user.deposits[i].start.add(PLAN_LENGTH.mul(1 days))).add(user.deposits[i].compoundExtension); if (user.checkpoint < finish) { uint256 share = user.deposits[i].amount.mul(PLAN_ROI_DAILY).div(PERCENTS_DIVIDER); uint256 from = user.deposits[i].start > user.checkpoint ? user.deposits[i].start : user.checkpoint; uint256 to = finish < block.timestamp ? finish : block.timestamp; if (from < to) { totalAmount = totalAmount.add(share.mul(to.sub(from)).div(TIME_STEP)); } } } return totalAmount; } function getUserTotalWithdrawn(address userAddress) public view returns (uint256) { return users[userAddress].withdrawn; } function getUserCheckpoint(address userAddress) public view returns (uint256) { return users[userAddress].checkpoint; } function getUserLastBoosted(address userAddress) public view returns (uint256) { return users[userAddress].lastBoosted; } function getUserBoostPercent(address userAddress) public view returns (uint256) { return users[userAddress].boostPercent; } function getUserCanBoost(address userAddress) public view returns (bool) { return (block.timestamp.sub(getUserLastBoosted(userAddress)) >= BOOST_DELAY); } function getUserReferrer(address userAddress) public view returns (address) { return users[userAddress].referrer; } function getUserReferralBonus(address userAddress) public view returns (uint256) { return users[userAddress].referral; } function getUserTotalReferralBonus(address userAddress) public view returns (uint256) { return users[userAddress].totalReferral; } function getUserReferralWithdrawn(address userAddress) public view returns (uint256) { return users[userAddress].totalReferral.sub(users[userAddress].referral); } function getUserBoostBonus(address userAddress) public view returns (uint256) { return users[userAddress].boost; } function getUserTotalBoostBonus(address userAddress) public view returns (uint256) { return users[userAddress].totalBoost; } function getUserAmountOfDeposits(address userAddress) public view returns (uint256) { return users[userAddress].deposits.length; } function getUserTotalDeposits(address userAddress) public view returns (uint256 amount) { for (uint256 i = 0; i < users[userAddress].deposits.length; i++) { amount = amount.add(users[userAddress].deposits[i].amount); } } function getUserDepositInfo(address userAddress, uint256 index) public view returns (uint256 percent, uint256 amount, uint256 start, uint256 finish) { User storage user = users[userAddress]; percent = PLAN_ROI_DAILY; amount = user.deposits[index].amount; start = user.deposits[index].start; finish = user.deposits[index].start.add(PLAN_LENGTH.mul(1 days)); } function getUserInfo(address userAddress) public view returns (uint256 userTotalDeposits, uint256 userTotalWithdrawn, uint256 userTotalReferrals, uint256 userTotalBoosts) { return (getUserTotalDeposits(userAddress), getUserTotalWithdrawn(userAddress), getUserTotalReferralBonus(userAddress), getUserTotalBoostBonus(userAddress)); } function getUserCompounded(address userAddress) public view returns (uint256) { return users[userAddress].compounded; } function getContractBalance() public view returns (uint256) { return address(this).balance; } function isContract(address addr) internal view returns (bool) { uint256 size; assembly { size := extcodesize(addr) } return size > 0; } function randomBoost() internal { require(LINK.balanceOf(address(this)) >= linkFee, "NOT ENOUGH LINK"); requestRandomness(linkKeyHash, linkFee); } function fulfillRandomness(bytes32 requestId, uint256 result) internal override { random = result; linkRequestId = requestId; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); uint256 c = a / b; return c; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Boost","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Compound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NewDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"}],"name":"NewUser","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"address","name":"referral","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Referral","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"BOOST_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COMPOUND_BONUS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_INVESTMENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERCENTS_DIVIDER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PLAN_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PLAN_ROI_DAILY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REFERRAL_BONUS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIME_STEP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"boost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ceo1","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ceo2","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserAmountOfDeposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserBoostBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserBoostPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserCanBoost","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserCheckpoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserCompounded","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getUserDepositInfo","outputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"finish","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserInfo","outputs":[{"internalType":"uint256","name":"userTotalDeposits","type":"uint256"},{"internalType":"uint256","name":"userTotalWithdrawn","type":"uint256"},{"internalType":"uint256","name":"userTotalReferrals","type":"uint256"},{"internalType":"uint256","name":"userTotalBoosts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserLastBoosted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserReferralBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserReferralWithdrawn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserReferrer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserTotalBoostBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserTotalDeposits","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserTotalReferralBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserTotalWithdrawn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"referrer","type":"address"}],"name":"invest","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"random","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"randomness","type":"uint256"}],"name":"rawFulfillRandomness","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalBoosts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDeposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInvested","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReferrals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c060405234801561001057600080fd5b50733d2341adb2d31f1c5530cdc622016af293177ae060a05273b0897686c545045afc77cf20ec7a532e3120e0f160805260148054336001600160a01b0319918216179091556015805473c2d5b2eed93475f4e2782a2eac2463c568e0332792169190911790557ff86195cf7690c55907b2b611ebb7343a6f649bff128701cc542f0569e2c549da600255655af3107a40006003556000600455600a6005819055603260068190556007829055600882905560098190556064808355600b5561012c600c55600d55600e5560805160a051611c3261010e60003960008181610f6d01526118bb0152600081816117c4015261188c0152611c326000f3fe6080604052600436106102305760003560e01c8063782cf9d71161012e578063c0806b03116100ab578063d7ffca911161006f578063d7ffca91146106d8578063e1913c8114610711578063e85abe0914610726578063f69e20461461075f578063fb4cb32b1461077457600080fd5b8063c0806b0314610624578063cc60cc4f14610644578063cf417ccd1461067d578063d66e54e1146106ad578063d7206d5d146106c357600080fd5b806394985ddd116100f257806394985ddd14610584578063a66f42c0146105a4578063a8aeb6c2146105b9578063b91c4daf146105ef578063b9477b0e1461060457600080fd5b8063782cf9d7146104a35780637bd90ac1146104dc5780637d882097146105155780637e3abeea1461052b5780638c682c1e1461054b57600080fd5b8063436a88c1116101bc5780635e02d5e0116101805780635e02d5e0146103fa5780635ec01e4d1461041a5780636386c1c7146104305780636bb18556146104705780636f9fb98a1461049057600080fd5b8063436a88c1146103415780634462b6e3146103565780634ef8ff331461038f5780635216aeec146103ab57806357f4cdd1146103c157600080fd5b80631cbfc463116102035780631cbfc463146102a8578063228f0ff9146102bf57806332bc298c146102a857806336144c9a146102d85780633ccfd60b1461032c57600080fd5b806301c234a81461023557806303f9c7931461025d578063040a772e14610272578063196f491414610292575b600080fd5b34801561024157600080fd5b5061024a606481565b6040519081526020015b60405180910390f35b61027061026b366004611a1b565b6107ad565b005b34801561027e57600080fd5b5061024a61028d366004611a1b565b610b4d565b34801561029e57600080fd5b5061024a60115481565b3480156102b457600080fd5b5061024a6201518081565b3480156102cb57600080fd5b5061024a6402540be3ff81565b3480156102e457600080fd5b506103146102f3366004611a1b565b6001600160a01b039081166000908152601360205260409020600201541690565b6040516001600160a01b039091168152602001610254565b34801561033857600080fd5b50610270610d07565b34801561034d57600080fd5b5061024a600881565b34801561036257600080fd5b5061024a610371366004611a1b565b6001600160a01b03166000908152601360205260409020600a015490565b34801561039b57600080fd5b5061024a678ac7230489e8000081565b3480156103b757600080fd5b5061024a60105481565b3480156103cd57600080fd5b5061024a6103dc366004611a1b565b6001600160a01b031660009081526013602052604090206005015490565b34801561040657600080fd5b50601454610314906001600160a01b031681565b34801561042657600080fd5b5061024a60015481565b34801561043c57600080fd5b5061045061044b366004611a1b565b610e63565b604080519485526020850193909352918301526060820152608001610254565b34801561047c57600080fd5b5061024a61048b366004611a1b565b610eab565b34801561049c57600080fd5b504761024a565b3480156104af57600080fd5b5061024a6104be366004611a1b565b6001600160a01b031660009081526013602052604090206009015490565b3480156104e857600080fd5b5061024a6104f7366004611a1b565b6001600160a01b031660009081526013602052604090206007015490565b34801561052157600080fd5b5061024a600f5481565b34801561053757600080fd5b5061024a610546366004611a1b565b610edd565b34801561055757600080fd5b5061024a610566366004611a1b565b6001600160a01b031660009081526013602052604090206008015490565b34801561059057600080fd5b5061027061059f366004611a36565b610f62565b3480156105b057600080fd5b50610270610feb565b3480156105c557600080fd5b5061024a6105d4366004611a1b565b6001600160a01b031660009081526013602052604090205490565b3480156105fb57600080fd5b5061024a600381565b34801561061057600080fd5b50601554610314906001600160a01b031681565b34801561063057600080fd5b5061045061063f366004611a58565b611191565b34801561065057600080fd5b5061024a61065f366004611a1b565b6001600160a01b03166000908152601360205260409020600b015490565b34801561068957600080fd5b5061069d610698366004611a1b565b611242565b6040519015158152602001610254565b3480156106b957600080fd5b5061024a60125481565b3480156106cf57600080fd5b5061024a600a81565b3480156106e457600080fd5b5061024a6106f3366004611a1b565b6001600160a01b031660009081526013602052604090206001015490565b34801561071d57600080fd5b5061024a600581565b34801561073257600080fd5b5061024a610741366004611a1b565b6001600160a01b031660009081526013602052604090206004015490565b34801561076b57600080fd5b5061027061127c565b34801561078057600080fd5b5061024a61078f366004611a1b565b6001600160a01b031660009081526013602052604090206006015490565b34678ac7230489e800008110156108025760405162461bcd60e51b815260206004820152601460248201527313195cdcc81d1a185b881b5a5b88185b5bdd5b9d60621b60448201526064015b60405180910390fd5b600061081a6064610814846008611604565b9061168a565b9050600061082982600261168a565b6014546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610864573d6000803e3d6000fd5b506015546001600160a01b03166108fc61087e84846116ef565b6040518115909202916000818181858888f193505050501580156108a6573d6000803e3d6000fd5b5033600090815260136020526040902060028101546001600160a01b03161580156108e857506001600160a01b03851660009081526013602052604090205415155b80156108fd57506001600160a01b0385163314155b1561095c576002810180546001600160a01b0319166001600160a01b03871690811790915560009081526013602052604090206003015461093f90600161174d565b6001600160a01b0386166000908152601360205260409020600301555b60028101546001600160a01b031615610a5f5760006109816064610814876005611604565b60028301546001600160a01b03166000908152601360205260409020600401549091506109ae908261174d565b6002830180546001600160a01b0390811660009081526013602052604080822060040194909455915416815220600501546109e9908261174d565b60028301546001600160a01b0316600090815260136020526040902060050155601154610a16908261174d565b601155600282015460405186815233916001600160a01b0316907faeecfcda1271d292db728294b8ae465871ec039d51404caf49a7eb0ade51770a9060200160405180910390a3505b8054610aa6574260018201819055600a8201556040513381527f7ee9b70bf129b91a237044ce07c93c79f5562b96b53c04f7edaf7c9d6711f3d89060200160405180910390a15b60408051606081018252858152426020808301918252600093830184815285546001818101885587875292909520935160039095029093019384559051838201559051600290920191909155600f54610afe9161174d565b600f55601054610b0e908561174d565b60105560405184815233907f2cb77763bc1e8490c1a904905c4d74b4269919aca114464f4bb4d911e60de3649060200160405180910390a25050505050565b6001600160a01b038116600090815260136020526040812081805b8254811015610cff576000610bf6846000018381548110610b8b57610b8b611a82565b906000526020600020906003020160020154610bf0610bbb620151806402540be3ff61160490919063ffffffff16565b876000018681548110610bd057610bd0611a82565b90600052602060002090600302016001015461174d90919063ffffffff16565b9061174d565b90508084600101541015610cec576000610c3c60646108146003886000018781548110610c2557610c25611a82565b600091825260209091206003909102015490611604565b905060008560010154866000018581548110610c5a57610c5a611a82565b90600052602060002090600302016001015411610c7b578560010154610ca3565b856000018481548110610c9057610c90611a82565b9060005260206000209060030201600101545b90506000428410610cb45742610cb6565b835b905080821015610ce857610ce5610cde62015180610814610cd785876116ef565b8790611604565b879061174d565b95505b5050505b5080610cf781611aae565b915050610b68565b509392505050565b33600081815260136020526040812091610d2090610b4d565b3360009081526013602052604081206004808201546008909201549086019290925591925082610d50818461174d565b600060088701559050610d63818361174d565b905060008111610dad5760405162461bcd60e51b81526020600482015260156024820152745573657220686173206e6f206469766964656e647360581b60448201526064016107f9565b4781811015610dde57610dc082826116ef565b600487018190556005870154610dd59161174d565b60058701559050805b4260018701556006860154610df3908361174d565b6006870155604051339083156108fc029084906000818181858888f19350505050158015610e25573d6000803e3d6000fd5b5060405182815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649060200160405180910390a2505050505050565b600080600080610e7285610edd565b6001600160a01b039590951660009081526013602052604090206006810154600582015460099092015496979096919550909350915050565b6001600160a01b03811660009081526013602052604081206004810154600590910154610ed7916116ef565b92915050565b6000805b6001600160a01b038316600090815260136020526040902054811015610f5c576001600160a01b03831660009081526013602052604090208054610f48919083908110610f3057610f30611a82565b6000918252602090912060039091020154839061174d565b915080610f5481611aae565b915050610ee1565b50919050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610fda5760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920565246436f6f7264696e61746f722063616e2066756c66696c6c0060448201526064016107f9565b610fe78282600155600455565b5050565b610ff433611242565b61104b5760405162461bcd60e51b815260206004820152602260248201527f43616e206f6e6c7920626f6f7374206f6e636520657665727920323420686f75604482015261727360f01b60648201526084016107f9565b6110536117ac565b60006005600a6001546110669190611adf565b600a811061107657611076611a82565b0154336000908152601360205260408120919250805b82548110156111105760006110af846000018381548110610b8b57610b8b611a82565b905080846001015410156110fd5760006110de60646108146003886000018781548110610c2557610c25611a82565b90506110f96110f26064610814848a611604565b859061174d565b9350505b508061110881611aae565b91505061108c565b50600b82018390556008820154611127908261174d565b6008830155600982015461113b908261174d565b600983015542600a830155601254611153908261174d565b60125560405181815233907fe31c25a8c942cffbe38e830ad0320372c461b098e910c8ee77567f287ca603fe906020015b60405180910390a2505050565b6001600160a01b038216600090815260136020526040812080546003929182918291908190879081106111c6576111c6611a82565b90600052602060002090600302016000015493508060000186815481106111ef576111ef611a82565b9060005260206000209060030201600101549250611236611221620151806402540be3ff61160490919063ffffffff16565b826000018881548110610bd057610bd0611a82565b91505092959194509250565b60006201518061127461126d846001600160a01b03166000908152601360205260409020600a015490565b42906116ef565b101592915050565b3360009081526013602052604081208190815b81548110156114dc5760006112f78360000183815481106112b2576112b2611a82565b906000526020600020906003020160020154610bf06112e2620151806402540be3ff61160490919063ffffffff16565b866000018681548110610bd057610bd0611a82565b905080836001015410156114c957600061132660646108146003876000018781548110610c2557610c25611a82565b90506000846001015485600001858154811061134457611344611a82565b9060005260206000209060030201600101541161136557846001015461138d565b84600001848154811061137a5761137a611a82565b9060005260206000209060030201600101545b9050600042841061139e57426113a0565b835b9050808210156114c55760006113b682846116ef565b905060006113cb620151806108148785611604565b90506113e76113e0606461081484600a611604565b8a9061174d565b98506114228289600001898154811061140257611402611a82565b90600052602060002090600302016002015461174d90919063ffffffff16565b88600001888154811061143757611437611a82565b90600052602060002090600302016002018190555061147c8189600001898154811061146557611465611a82565b60009182526020909120600390910201549061174d565b88600001888154811061149157611491611a82565b600091825260209091206003909102015560078801546114b1908261174d565b60078901556114c08a8261174d565b995050505b5050505b50806114d481611aae565b91505061128f565b50600083116115235760405162461bcd60e51b8152602060048201526013602482015272139bdd1a1a5b99c81d1bc818dbdb5c1bdd5b99606a1b60448201526064016107f9565b60028101546001600160a01b0316156115cc5760028101546001600160a01b0316600090815260136020526040902060040154611560908361174d565b6002820180546001600160a01b03908116600090815260136020526040808220600401949094559154168152206005015461159b908361174d565b60028201546001600160a01b03166000908152601360205260409020600501556011546115c8908361174d565b6011555b42600182015560405183815233907f169f1815ebdea059aac3bb00ec9a9594c7a5ffcb64a17e8392b5d84909a1455690602001611184565b60008261161357506000610ed7565b600061161f8385611af3565b90508261162c8583611b12565b146116835760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107f9565b9392505050565b60008082116116db5760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f00000000000060448201526064016107f9565b60006116e78385611b12565b949350505050565b6000828211156117415760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f77000060448201526064016107f9565b60006116e78385611b26565b60008061175a8385611b3d565b9050838110156116835760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107f9565b6003546040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611813573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118379190611b55565b10156118775760405162461bcd60e51b815260206004820152600f60248201526e4e4f5420454e4f554748204c494e4b60881b60448201526064016107f9565b611885600254600354611888565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634000aea07f0000000000000000000000000000000000000000000000000000000000000000848660006040516020016118f8929190918252602082015260400190565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161192593929190611b6e565b6020604051808303816000875af1158015611944573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119689190611bda565b5060008381526020818152604080832054815180840188905280830185905230606082015260808082018390528351808303909101815260a0909101909252815191830191909120868452929091526119c2906001611b3d565b60008581526020818152604091829020929092558051808301879052808201849052815180820383018152606090910190915280519101206116e7565b80356001600160a01b0381168114611a1657600080fd5b919050565b600060208284031215611a2d57600080fd5b611683826119ff565b60008060408385031215611a4957600080fd5b50508035926020909101359150565b60008060408385031215611a6b57600080fd5b611a74836119ff565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611ac257611ac2611a98565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611aee57611aee611ac9565b500690565b6000816000190483118215151615611b0d57611b0d611a98565b500290565b600082611b2157611b21611ac9565b500490565b600082821015611b3857611b38611a98565b500390565b60008219821115611b5057611b50611a98565b500190565b600060208284031215611b6757600080fd5b5051919050565b60018060a01b038416815260006020848184015260606040840152835180606085015260005b81811015611bb057858101830151858201608001528201611b94565b81811115611bc2576000608083870101525b50601f01601f19169290920160800195945050505050565b600060208284031215611bec57600080fd5b8151801515811461168357600080fdfea2646970667358221220461ef01debfbeb16db5778c3a094f37c5bbe2636665ca847bcbec294c3b5971164736f6c634300080b0033
Deployed ByteCode Sourcemap
12876:12217:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13286:46;;;;;;;;;;;;13329:3;13286:46;;;;;160:25:1;;;148:2;133:18;13286:46:0;;;;;;;;15522:1469;;;;;;:::i;:::-;;:::i;:::-;;20728:827;;;;;;;;;;-1:-1:-1;20728:827:0;;;;;:::i;:::-;;:::i;13651:29::-;;;;;;;;;;;;;;;;13388:44;;;;;;;;;;;;13426:6;13388:44;;13441:48;;;;;;;;;;;;13479:10;13441:48;;22302:127;;;;;;;;;;-1:-1:-1;22302:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;22394:18:0;;;22369:7;22394:18;;;:5;:18;;;;;:27;;;;;22302:127;;;;-1:-1:-1;;;;;729:32:1;;;711:51;;699:2;684:18;22302:127:0;565:203:1;19757:963:0;;;;;;;;;;;;;:::i;13244:35::-;;;;;;;;;;;;13278:1;13244:35;;21844:133;;;;;;;;;;-1:-1:-1;21844:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;21939:18:0;21914:7;21939:18;;;:5;:18;;;;;:30;;;;21844:133;13089:49;;;;;;;;;;;;13130:8;13089:49;;13616:28;;;;;;;;;;;;;;;;22577:142;;;;;;;;;;-1:-1:-1;22577:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;22679:18:0;22654:7;22679:18;;;:5;:18;;;;;:32;;;;22577:142;14300:27;;;;;;;;;;-1:-1:-1;14300:27:0;;;;-1:-1:-1;;;;;14300:27:0;;;12956:21;;;;;;;;;;;;;;;;24000:343;;;;;;;;;;-1:-1:-1;24000:343:0;;;;;:::i;:::-;;:::i;:::-;;;;1228:25:1;;;1284:2;1269:18;;1262:34;;;;1312:18;;;1305:34;1370:2;1355:18;;1348:34;1215:3;1200:19;24000:343:0;997:391:1;22727:174:0;;;;;;;;;;-1:-1:-1;22727:174:0;;;;;:::i;:::-;;:::i;24490:105::-;;;;;;;;;;-1:-1:-1;24566:21:0;24490:105;;23043:136;;;;;;;;;;-1:-1:-1;23043:136:0;;;;;:::i;:::-;-1:-1:-1;;;;;23142:18:0;23117:7;23142:18;;;:5;:18;;;;;:29;;;;23043:136;24351:131;;;;;;;;;;-1:-1:-1;24351:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;24445:18:0;24420:7;24445:18;;;:5;:18;;;;;:29;;;;24351:131;13581:28;;;;;;;;;;;;;;;;23336:248;;;;;;;;;;-1:-1:-1;23336:248:0;;;;;:::i;:::-;;:::i;22909:126::-;;;;;;;;;;-1:-1:-1;22909:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;23003:18:0;22978:7;23003:18;;;:5;:18;;;;;:24;;;;22909:126;12590:210;;;;;;;;;;-1:-1:-1;12590:210:0;;;;;:::i;:::-;;:::i;18796:953::-;;;;;;;;;;;;;:::i;23187:141::-;;;;;;;;;;-1:-1:-1;23187:141:0;;;;;:::i;:::-;-1:-1:-1;;;;;23286:18:0;23262:7;23286:18;;;:5;:18;;;;;:34;;23187:141;13496:42;;;;;;;;;;;;13537:1;13496:42;;14334:27;;;;;;;;;;-1:-1:-1;14334:27:0;;;;-1:-1:-1;;;;;14334:27:0;;;23592:400;;;;;;;;;;-1:-1:-1;23592:400:0;;;;;:::i;:::-;;:::i;21985:135::-;;;;;;;;;;-1:-1:-1;21985:135:0;;;;;:::i;:::-;-1:-1:-1;;;;;22081:18:0;22056:7;22081:18;;;:5;:18;;;;;:31;;;;21985:135;22128:166;;;;;;;;;;-1:-1:-1;22128:166:0;;;;;:::i;:::-;;:::i;:::-;;;2070:14:1;;2063:22;2045:41;;2033:2;2018:18;22128:166:0;1905:187:1;13687:26:0;;;;;;;;;;;;;;;;13194:43;;;;;;;;;;;;13235:2;13194:43;;21705:131;;;;;;;;;;-1:-1:-1;21705:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;21799:18:0;21774:7;21799:18;;;:5;:18;;;;;:29;;;;21705:131;13145:42;;;;;;;;;;;;13186:1;13145:42;;22437:132;;;;;;;;;;-1:-1:-1;22437:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;22534:18:0;22509:7;22534:18;;;:5;:18;;;;;:27;;;;22437:132;16999:1789;;;;;;;;;;;;;:::i;21563:134::-;;;;;;;;;;-1:-1:-1;21563:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;21661:18:0;21636:7;21661:18;;;:5;:18;;;;;:28;;;;21563:134;15522:1469;15597:9;13130:8;15623:24;;;15615:57;;;;-1:-1:-1;;;15615:57:0;;2299:2:1;15615:57:0;;;2281:21:1;2338:2;2318:18;;;2311:30;-1:-1:-1;;;2357:18:1;;;2350:50;2417:18;;15615:57:0;;;;;;;;;15683:14;15700:41;13329:3;15700:19;:6;13278:1;15700:10;:19::i;:::-;:23;;:41::i;:::-;15683:58;-1:-1:-1;15750:15:0;15768:13;15683:58;15779:1;15768:10;:13::i;:::-;15792:4;;:22;;15750:31;;-1:-1:-1;;;;;;15792:4:0;;:22;;;;;15750:31;;15792:4;:22;:4;:22;15750:31;15792:4;:22;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15823:4:0;;-1:-1:-1;;;;;15823:4:0;:34;15837:19;:6;15848:7;15837:10;:19::i;:::-;15823:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15894:10:0;15868:17;15888;;;:5;:17;;;;;15920:13;;;;-1:-1:-1;;;;;15920:13:0;:27;:66;;;;-1:-1:-1;;;;;;15951:15:0;;15985:1;15951:15;;;:5;:15;;;;;:31;:35;;15920:66;:92;;;;-1:-1:-1;;;;;;15990:22:0;;16002:10;15990:22;;15920:92;15916:214;;;16025:13;;;:24;;-1:-1:-1;;;;;;16025:24:0;-1:-1:-1;;;;;16025:24:0;;;;;;;;-1:-1:-1;16088:15:0;;;:5;:15;;;;;:25;;;:32;;-1:-1:-1;16088:29:0;:32::i;:::-;-1:-1:-1;;;;;16060:15:0;;;;;;:5;:15;;;;;:25;;:60;15916:214;16144:13;;;;-1:-1:-1;;;;;16144:13:0;:27;16140:462;;16184:21;16208:48;13329:3;16208:26;:6;13186:1;16208:10;:26::i;:48::-;16329:13;;;;-1:-1:-1;;;;;16329:13:0;16323:20;;;;:5;:20;;;;;:29;;;16184:72;;-1:-1:-1;16323:48:0;;16184:72;16323:33;:48::i;:::-;16297:13;;;;;-1:-1:-1;;;;;16297:13:0;;;16291:20;;;;:5;:20;;;;;;:29;;:80;;;;16425:13;;;16419:20;;;:34;;;:53;;16458:13;16419:38;:53::i;:::-;16388:13;;;;-1:-1:-1;;;;;16388:13:0;16382:20;;;;:5;:20;;;;;:34;;:90;16500:14;;:33;;16519:13;16500:18;:33::i;:::-;16483:14;:50;16558:13;;;;16549:43;;160:25:1;;;16573:10:0;;-1:-1:-1;;;;;16558:13:0;;16549:43;;148:2:1;133:18;16549:43:0;;;;;;;16173:429;16140:462;16616:20;;16612:165;;16672:15;16654;;;:33;;;16698:16;;;:34;16748:19;;16756:10;711:51:1;;16748:19:0;;699:2:1;684:18;16748:19:0;;;;;;;16612:165;16806:35;;;;;;;;;;;16822:15;16806:35;;;;;;;16787:13;16806:35;;;;;;16787:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16869:13;;:20;;:17;:20::i;:::-;16853:13;:36;16914:13;;:25;;16932:6;16914:17;:25::i;:::-;16898:13;:41;16953:30;;160:25:1;;;16964:10:0;;16953:30;;148:2:1;133:18;16953:30:0;;;;;;;15571:1420;;;;15522:1469;:::o;20728:827::-;-1:-1:-1;;;;;20834:18:0;;20796:7;20834:18;;;:5;:18;;;;;20796:7;;20895:624;20919:20;;20915:24;;20895:624;;;20956:14;20973:93;21031:4;:13;;21045:1;21031:16;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;;20974:51;21001:23;21017:6;13479:10;21001:15;;:23;;;;:::i;:::-;20974:4;:13;;20988:1;20974:16;;;;;;;;:::i;:::-;;;;;;;;;;;:22;;;:26;;:51;;;;:::i;:::-;20973:57;;:93::i;:::-;20956:110;;21097:6;21079:4;:15;;;:24;21075:435;;;21116:13;21132:65;13329:3;21132:43;13537:1;21132:4;:13;;21146:1;21132:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:23;;:27;:43::i;:65::-;21116:81;;21208:12;21248:4;:15;;;21223:4;:13;;21237:1;21223:16;;;;;;;;:::i;:::-;;;;;;;;;;;:22;;;:40;:83;;21291:4;:15;;;21223:83;;;21266:4;:13;;21280:1;21266:16;;;;;;;;:::i;:::-;;;;;;;;;;;:22;;;21223:83;21208:98;;21317:10;21339:15;21330:6;:24;:51;;21366:15;21330:51;;;21357:6;21330:51;21317:64;;21403:2;21396:4;:9;21392:109;;;21434:55;21450:38;13375:6;21450:23;21460:12;:2;21467:4;21460:6;:12::i;:::-;21450:5;;:9;:23::i;:38::-;21434:11;;:15;:55::i;:::-;21420:69;;21392:109;21105:405;;;21075:435;-1:-1:-1;20941:3:0;;;;:::i;:::-;;;;20895:624;;;-1:-1:-1;21536:11:0;20728:827;-1:-1:-1;;;20728:827:0:o;19757:963::-;19819:10;19793:17;19813;;;:5;:17;;;;;;19859:28;;:16;:28::i;:::-;19941:10;19896:21;22534:18;;;:5;:18;;;;;:27;;;;;23003:24;;;;;20064:13;;;:17;;;;19839:48;;-1:-1:-1;19839:48:0;20104:30;19839:48;22534:27;20104:15;:30::i;:::-;20162:1;20149:10;;;:14;20090:44;-1:-1:-1;20186:27:0;20090:44;20202:10;20186:15;:27::i;:::-;20172:41;;20246:1;20232:11;:15;20224:49;;;;-1:-1:-1;;;20224:49:0;;3052:2:1;20224:49:0;;;3034:21:1;3091:2;3071:18;;;3064:30;-1:-1:-1;;;3110:18:1;;;3103:51;3171:18;;20224:49:0;2850:345:1;20224:49:0;24566:21;20337:23;;;20333:180;;;20386:26;:11;20402:9;20386:15;:26::i;:::-;20370:13;;;:42;;;20438:18;;;;:37;;:22;:37::i;:::-;20417:18;;;:58;20494:9;-1:-1:-1;20494:9:0;20333:180;20541:15;20523;;;:33;20582:14;;;;:31;;20601:11;20582:18;:31::i;:::-;20565:14;;;:48;20624:41;;20632:10;;20624:41;;;;;20653:11;;20624:41;;;;20653:11;20632:10;20624:41;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20679:33:0;;160:25:1;;;20688:10:0;;20679:33;;148:2:1;133:18;20679:33:0;;;;;;;19784:936;;;;;;19757:963::o;24000:343::-;24063:25;24090:26;24118;24146:23;24188:33;24209:11;24188:20;:33::i;:::-;-1:-1:-1;;;;;21661:18:0;;;;21636:7;21661:18;;;:5;:18;;;;;:28;;;;22679:32;;;;23142:29;;;;;24180:155;;21661:28;;22679:32;;-1:-1:-1;23142:29:0;;-1:-1:-1;24000:343:0;-1:-1:-1;;24000:343:0:o;22727:174::-;-1:-1:-1;;;;;22865:18:0;;22803:7;22865:18;;;:5;:18;;;;;:27;;;;22828:32;;;;;:65;;:36;:65::i;:::-;22821:72;22727:174;-1:-1:-1;;22727:174:0:o;23336:248::-;23408:14;;23433:144;-1:-1:-1;;;;;23457:18:0;;;;;;:5;:18;;;;;:34;23453:38;;23433:144;;;-1:-1:-1;;;;;23529:18:0;;;;;;:5;:18;;;;;:30;;23518:49;;23529:18;23557:1;;23529:30;;;;;;:::i;:::-;;;;;;;;;;;;;;:37;23518:6;;:10;:49::i;:::-;23509:58;-1:-1:-1;23493:3:0;;;;:::i;:::-;;;;23433:144;;;;23336:248;;;:::o;12590:210::-;12683:10;-1:-1:-1;;;;;12697:14:0;12683:28;;12675:72;;;;-1:-1:-1;;;12675:72:0;;3402:2:1;12675:72:0;;;3384:21:1;3441:2;3421:18;;;3414:30;3480:33;3460:18;;;3453:61;3531:18;;12675:72:0;3200:355:1;12675:72:0;12754:40;12772:9;12783:10;25035:6;:15;25059:13;:25;24946:144;12754:40;12590:210;;:::o;18796:953::-;18837:27;18853:10;18837:15;:27::i;:::-;18829:74;;;;-1:-1:-1;;;18829:74:0;;3762:2:1;18829:74:0;;;3744:21:1;3801:2;3781:18;;;3774:30;3840:34;3820:18;;;3813:62;-1:-1:-1;;;3891:18:1;;;3884:32;3933:19;;18829:74:0;3560:398:1;18829:74:0;18914:13;:11;:13::i;:::-;18936:20;18959:6;18975:2;18966:6;;:11;;;;:::i;:::-;18959:19;;;;;;;:::i;:::-;;;19015:10;18989:17;19009;;;:5;:17;;;;;18959:19;;-1:-1:-1;18989:17:0;19065:404;19089:20;;19085:24;;19065:404;;;19126:14;19143:93;19201:4;:13;;19215:1;19201:16;;;;;;;;:::i;19143:93::-;19126:110;;19269:6;19251:4;:15;;;:24;19247:214;;;19289:13;19305:65;13329:3;19305:43;13537:1;19305:4;:13;;19319:1;19305:16;;;;;;;;:::i;:65::-;19289:81;-1:-1:-1;19393:58:0;19405:45;13329:3;19405:23;19289:81;19415:12;19405:9;:23::i;:45::-;19393:7;;:11;:58::i;:::-;19383:68;;19277:184;19247:214;-1:-1:-1;19111:3:0;;;;:::i;:::-;;;;19065:404;;;-1:-1:-1;19479:17:0;;;:32;;;19533:10;;;;:23;;19548:7;19533:14;:23::i;:::-;19520:10;;;:36;19583:15;;;;:28;;19603:7;19583:19;:28::i;:::-;19565:15;;;:46;19639:15;19620:16;;;:34;19677:11;;:24;;19693:7;19677:15;:24::i;:::-;19663:11;:38;19715:26;;160:25:1;;;19721:10:0;;19715:26;;148:2:1;133:18;19715:26:0;;;;;;;;18820:929;;;18796:953::o;23592:400::-;-1:-1:-1;;;;;23770:18:0;;23677:15;23770:18;;;:5;:18;;;;;23841:20;;13537:1;;23677:15;;;;;23770:18;;;23855:5;;23841:20;;;;;;:::i;:::-;;;;;;;;;;;:27;;;23832:36;;23885:4;:13;;23899:5;23885:20;;;;;;;;:::i;:::-;;;;;;;;;;;:26;;;23877:34;;23929:55;23960:23;23976:6;13479:10;23960:15;;:23;;;;:::i;:::-;23929:4;:13;;23943:5;23929:20;;;;;;;;:::i;:55::-;23920:64;;23741:251;23592:400;;;;;;;:::o;22128:166::-;22195:4;13426:6;22218:52;22238:31;22257:11;-1:-1:-1;;;;;21939:18:0;21914:7;21939:18;;;:5;:18;;;;;:30;;;;21844:133;22238:31;22218:15;;:19;:52::i;:::-;:67;;;22128:166;-1:-1:-1;;22128:166:0:o;16999:1789::-;17126:10;17035:18;17120:17;;;:5;:17;;;;;17035:18;;;17148:1120;17172:20;;17168:24;;17148:1120;;;17209:14;17226:93;17284:4;:13;;17298:1;17284:16;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;;17227:51;17254:23;17270:6;13479:10;17254:15;;:23;;;;:::i;:::-;17227:4;:13;;17241:1;17227:16;;;;;;;;:::i;17226:93::-;17209:110;;17352:6;17334:4;:15;;;:24;17330:929;;;17372:13;17388:65;13329:3;17388:43;13537:1;17388:4;:13;;17402:1;17388:16;;;;;;;;:::i;:65::-;17372:81;;17464:12;17504:4;:15;;;17479:4;:13;;17493:1;17479:16;;;;;;;;:::i;:::-;;;;;;;;;;;:22;;;:40;:83;;17547:4;:15;;;17479:83;;;17522:4;:13;;17536:1;17522:16;;;;;;;;:::i;:::-;;;;;;;;;;;:22;;;17479:83;17464:98;;17573:10;17595:15;17586:6;:24;:51;;17622:15;17586:51;;;17613:6;17586:51;17573:64;;17663:2;17656:4;:9;17652:597;;;17680:22;17705:12;:2;17712:4;17705:6;:12::i;:::-;17680:37;-1:-1:-1;17730:22:0;17755:40;13375:6;17755:25;:5;17680:37;17755:9;:25::i;:40::-;17730:65;-1:-1:-1;17826:75:0;17844:56;13329:3;17844:34;17730:65;13235:2;17844:18;:34::i;:56::-;17826:13;;:17;:75::i;:::-;17810:91;;17977:54;18016:14;17977:4;:13;;17991:1;17977:16;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;;:38;;:54;;;;:::i;:::-;17940:4;:13;;17954:1;17940:16;;;;;;;;:::i;:::-;;;;;;;;;;;:34;;:91;;;;18070:43;18098:14;18070:4;:13;;18084:1;18070:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:23;;:27;:43::i;:::-;18044:4;:13;;18058:1;18044:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:69;18144:15;;;;:35;;18164:14;18144:19;:35::i;:::-;18126:15;;;:53;18207:30;:10;18222:14;18207;:30::i;:::-;18194:43;;17667:582;;17652:597;17360:899;;;17330:929;-1:-1:-1;17194:3:0;;;;:::i;:::-;;;;17148:1120;;;;18299:1;18286:10;:14;18278:46;;;;-1:-1:-1;;;18278:46:0;;4414:2:1;18278:46:0;;;4396:21:1;4453:2;4433:18;;;4426:30;-1:-1:-1;;;4472:18:1;;;4465:49;4531:18;;18278:46:0;4212:343:1;18278:46:0;18338:13;;;;-1:-1:-1;;;;;18338:13:0;:27;18335:356;;18416:13;;;;-1:-1:-1;;;;;18416:13:0;18410:20;;;;:5;:20;;;;;:29;;;:48;;18444:13;18410:33;:48::i;:::-;18384:13;;;;;-1:-1:-1;;;;;18384:13:0;;;18378:20;;;;:5;:20;;;;;;:29;;:80;;;;18512:13;;;18506:20;;;:34;;;:53;;18545:13;18506:38;:53::i;:::-;18475:13;;;;-1:-1:-1;;;;;18475:13:0;18469:20;;;;:5;:20;;;;;:34;;:90;18587:14;;:33;;18606:13;18587:18;:33::i;:::-;18570:14;:50;18335:356;18719:15;18701;;;:33;18748:32;;160:25:1;;;18757:10:0;;18748:32;;148:2:1;133:18;18748:32:0;14:177:1;25464:220:0;25522:7;25542:6;25538:39;;-1:-1:-1;25568:1:0;25561:8;;25538:39;25583:9;25595:5;25599:1;25595;:5;:::i;:::-;25583:17;-1:-1:-1;25624:1:0;25615:5;25619:1;25583:17;25615:5;:::i;:::-;:10;25607:56;;;;-1:-1:-1;;;25607:56:0;;5060:2:1;25607:56:0;;;5042:21:1;5099:2;5079:18;;;5072:30;5138:34;5118:18;;;5111:62;-1:-1:-1;;;5189:18:1;;;5182:31;5230:19;;25607:56:0;4858:397:1;25607:56:0;25677:1;25464:220;-1:-1:-1;;;25464:220:0:o;25692:163::-;25750:7;25778:1;25774;:5;25766:44;;;;-1:-1:-1;;;25766:44:0;;5462:2:1;25766:44:0;;;5444:21:1;5501:2;5481:18;;;5474:30;5540:28;5520:18;;;5513:56;5586:18;;25766:44:0;5260:350:1;25766:44:0;25817:9;25829:5;25833:1;25829;:5;:::i;:::-;25817:17;25692:163;-1:-1:-1;;;;25692:163:0:o;25290:168::-;25348:7;25377:1;25372;:6;;25364:49;;;;-1:-1:-1;;;25364:49:0;;5817:2:1;25364:49:0;;;5799:21:1;5856:2;5836:18;;;5829:30;5895:32;5875:18;;;5868:60;5945:18;;25364:49:0;5615:354:1;25364:49:0;25420:9;25432:5;25436:1;25432;:5;:::i;25119:165::-;25177:7;;25205:5;25209:1;25205;:5;:::i;:::-;25193:17;;25230:1;25225;:6;;25217:46;;;;-1:-1:-1;;;25217:46:0;;6439:2:1;25217:46:0;;;6421:21:1;6478:2;6458:18;;;6451:30;6517:29;6497:18;;;6490:57;6564:18;;25217:46:0;6237:351:1;24773:165:0;24855:7;;24822:29;;-1:-1:-1;;;24822:29:0;;24845:4;24822:29;;;711:51:1;24822:4:0;-1:-1:-1;;;;;24822:14:0;;;;684:18:1;;24822:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;24814:68;;;;-1:-1:-1;;;24814:68:0;;6984:2:1;24814:68:0;;;6966:21:1;7023:2;7003:18;;;6996:30;-1:-1:-1;;;7042:18:1;;;7035:45;7097:18;;24814:68:0;6782:339:1;24814:68:0;24891:39;24909:11;;24922:7;;24891:17;:39::i;:::-;;24773:165::o;10707:1034::-;10784:17;10810:4;-1:-1:-1;;;;;10810:20:0;;10831:14;10847:4;10864:8;9537:1;10853:43;;;;;;;;7300:25:1;;;7356:2;7341:18;;7334:34;7288:2;7273:18;;7126:248;10853:43:0;;;;;;;;;;;;;10810:87;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;11132:15:0;11215:16;;;;;;;;;;;;1032:51;;;;;8663:25:1;;;8704:18;;;8697:34;;;11208:4:0;8747:18:1;;;8740:60;8816:18;;;;8809:34;;;1032:51:0;;;;;;;;;;8635:19:1;;;;1032:51:0;;;1022:62;;;;;;;;;11669:16;;;;;;;:20;;11688:1;11669:20;:::i;:::-;11650:6;:16;;;;;;;;;;;;:39;;;;1602:41;;;;;9011:19:1;;;9046:12;;;9039:28;;;1602:41:0;;;;;;;;;9083:12:1;;;;1602:41:0;;;1592:52;;;;;11703:32;1482:168;196:173:1;264:20;;-1:-1:-1;;;;;313:31:1;;303:42;;293:70;;359:1;356;349:12;293:70;196:173;;;:::o;374:186::-;433:6;486:2;474:9;465:7;461:23;457:32;454:52;;;502:1;499;492:12;454:52;525:29;544:9;525:29;:::i;1393:248::-;1461:6;1469;1522:2;1510:9;1501:7;1497:23;1493:32;1490:52;;;1538:1;1535;1528:12;1490:52;-1:-1:-1;;1561:23:1;;;1631:2;1616:18;;;1603:32;;-1:-1:-1;1393:248:1:o;1646:254::-;1714:6;1722;1775:2;1763:9;1754:7;1750:23;1746:32;1743:52;;;1791:1;1788;1781:12;1743:52;1814:29;1833:9;1814:29;:::i;:::-;1804:39;1890:2;1875:18;;;;1862:32;;-1:-1:-1;;;1646:254:1:o;2446:127::-;2507:10;2502:3;2498:20;2495:1;2488:31;2538:4;2535:1;2528:15;2562:4;2559:1;2552:15;2578:127;2639:10;2634:3;2630:20;2627:1;2620:31;2670:4;2667:1;2660:15;2694:4;2691:1;2684:15;2710:135;2749:3;-1:-1:-1;;2770:17:1;;2767:43;;;2790:18;;:::i;:::-;-1:-1:-1;2837:1:1;2826:13;;2710:135::o;3963:127::-;4024:10;4019:3;4015:20;4012:1;4005:31;4055:4;4052:1;4045:15;4079:4;4076:1;4069:15;4095:112;4127:1;4153;4143:35;;4158:18;;:::i;:::-;-1:-1:-1;4192:9:1;;4095:112::o;4560:168::-;4600:7;4666:1;4662;4658:6;4654:14;4651:1;4648:21;4643:1;4636:9;4629:17;4625:45;4622:71;;;4673:18;;:::i;:::-;-1:-1:-1;4713:9:1;;4560:168::o;4733:120::-;4773:1;4799;4789:35;;4804:18;;:::i;:::-;-1:-1:-1;4838:9:1;;4733:120::o;5974:125::-;6014:4;6042:1;6039;6036:8;6033:34;;;6047:18;;:::i;:::-;-1:-1:-1;6084:9:1;;5974:125::o;6104:128::-;6144:3;6175:1;6171:6;6168:1;6165:13;6162:39;;;6181:18;;:::i;:::-;-1:-1:-1;6217:9:1;;6104:128::o;6593:184::-;6663:6;6716:2;6704:9;6695:7;6691:23;6687:32;6684:52;;;6732:1;6729;6722:12;6684:52;-1:-1:-1;6755:16:1;;6593:184;-1:-1:-1;6593:184:1:o;7379:766::-;7611:1;7607;7602:3;7598:11;7594:19;7586:6;7582:32;7571:9;7564:51;7545:4;7634:2;7672:6;7667:2;7656:9;7652:18;7645:34;7715:2;7710;7699:9;7695:18;7688:30;7747:6;7741:13;7790:6;7785:2;7774:9;7770:18;7763:34;7815:1;7825:141;7839:6;7836:1;7833:13;7825:141;;;7935:14;;;7931:23;;7925:30;7900:17;;;7919:3;7896:27;7889:67;7854:10;;7825:141;;;7984:6;7981:1;7978:13;7975:92;;;8055:1;8049:3;8040:6;8029:9;8025:22;8021:32;8014:43;7975:92;-1:-1:-1;8128:2:1;8107:15;-1:-1:-1;;8103:29:1;8088:45;;;;8135:3;8084:55;;7379:766;-1:-1:-1;;;;;7379:766:1:o;8150:277::-;8217:6;8270:2;8258:9;8249:7;8245:23;8241:32;8238:52;;;8286:1;8283;8276:12;8238:52;8318:9;8312:16;8371:5;8364:13;8357:21;8350:5;8347:32;8337:60;;8393:1;8390;8383:12
Swarm Source
ipfs://461ef01debfbeb16db5778c3a094f37c5bbe2636665ca847bcbec294c3b59711
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.