More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 3,133 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Fees | 17363858 | 563 days ago | IN | 0 ETH | 0.00094301 | ||||
Unstake | 16219096 | 724 days ago | IN | 0 ETH | 0.00078399 | ||||
Unstake | 16169786 | 730 days ago | IN | 0 ETH | 0.00152932 | ||||
Unstake | 16011641 | 753 days ago | IN | 0 ETH | 0.00057852 | ||||
Unstake | 15949419 | 761 days ago | IN | 0 ETH | 0.00081559 | ||||
Unstake | 15912159 | 766 days ago | IN | 0 ETH | 0.00125303 | ||||
Unstake | 15879666 | 771 days ago | IN | 0 ETH | 0.00057583 | ||||
Unstake | 15624492 | 807 days ago | IN | 0 ETH | 0.00053324 | ||||
Unstake | 15328039 | 852 days ago | IN | 0 ETH | 0.00180984 | ||||
Unstake | 15298728 | 857 days ago | IN | 0 ETH | 0.00032061 | ||||
Unstake | 15265798 | 862 days ago | IN | 0 ETH | 0.00038601 | ||||
Unstake | 15190615 | 874 days ago | IN | 0 ETH | 0.00071056 | ||||
Unstake | 15114974 | 886 days ago | IN | 0 ETH | 0.00042162 | ||||
Unstake | 15077234 | 891 days ago | IN | 0 ETH | 0.00086292 | ||||
Unstake | 14823196 | 935 days ago | IN | 0 ETH | 0.00091553 | ||||
Unstake | 14817251 | 936 days ago | IN | 0 ETH | 0.00069464 | ||||
Unstake | 14809584 | 937 days ago | IN | 0 ETH | 0.00123114 | ||||
Unstake | 14799064 | 939 days ago | IN | 0 ETH | 0.00145063 | ||||
Unstake | 14782983 | 941 days ago | IN | 0 ETH | 0.00093908 | ||||
Unstake | 14670141 | 959 days ago | IN | 0 ETH | 0.0030936 | ||||
Unstake | 14658132 | 961 days ago | IN | 0 ETH | 0.00246541 | ||||
Unstake | 14656491 | 961 days ago | IN | 0 ETH | 0.00130315 | ||||
Unstake | 14656491 | 961 days ago | IN | 0 ETH | 0.00254785 | ||||
Unstake | 14638529 | 964 days ago | IN | 0 ETH | 0.00160921 | ||||
Unstake | 14628688 | 966 days ago | IN | 0 ETH | 0.00193342 |
Loading...
Loading
Contract Name:
DNXEGGFarmZero
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-08-06 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.4; library SafeMath { /** * @dev Multiplies two unsigned integers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath#mul: OVERFLOW"); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, "SafeMath#div: DIVISION_BY_ZERO"); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath#sub: UNDERFLOW"); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath#add: OVERFLOW"); return c; } /** * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "SafeMath#mod: DIVISION_BY_ZERO"); return a % b; } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } 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 ); } 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)); } } /** **************************************************************************** * @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 constant private 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 immutable internal LINK; address immutable private vrfCoordinator; // Nonces for each VRF key from which randomness has been requested. // // Must stay in sync with VRFCoordinator[_keyHash][this] mapping(bytes32 /* keyHash */ => uint256 /* 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); } } contract DNXEGGFarmZero is VRFConsumerBase, Ownable { using SafeMath for uint256; struct StakerInfo { uint256 amount; uint256 startStakeTime; uint16 claimedEggs; uint256 claimedTickets; } uint256 public maximumStakers; // points generated per LP token per second staked uint256 public currentStakers; uint256 public minimumStake; uint256 public maximumStake; uint256 public stakingFee; IERC20 dnxcToken; // token being staked address private _rewardDistributor; uint256[] timeTable; mapping(address => StakerInfo) public stakerInfo; bytes32 internal keyHash; uint256 internal fee; uint256 public randomResult; bool paused; constructor(uint16 _maximumStakers, uint256 _minimumStake, uint256 _maximumStake, uint256 _stakingFee, IERC20 _dnxcToken) VRFConsumerBase( 0xf0d54349aDdcf704F77AE15b96510dEA15cb7952, // VRF Coordinator 0x514910771AF9Ca656af840dff83E8264EcF986CA // LINK Token ) { keyHash = 0xAA77729D3466CA35AE8D28B3BBAC7CC36A5031EFDC430821C02BC31A238AF445; fee = 2 * 10 ** 18; // 0.1 LINK (Varies by network) maximumStakers = _maximumStakers; minimumStake = _minimumStake; maximumStake = _maximumStake; stakingFee = _stakingFee; paused = true; timeTable = [ 120, 120, 120, 119, 119, 119, 119, 118, 118, 118, 118, 118, 117, 117, 117, 117, 116, 116, 116, 116, 115, 115, 115, 115, 115, 114, 114, 114, 114, 113, 113, 113, 113, 113, 112, 112, 112, 112, 111, 111, 111, 111, 110, 110, 110, 110, 110, 109, 109, 109, 109, 108, 108, 108, 108, 108, 107, 107, 107, 107, 106, 106, 106, 106, 105, 105, 105, 105, 105, 104, 104, 104, 104, 103, 103, 103, 103, 103, 102, 102, 102, 102, 101, 101, 101, 101, 101, 100, 100, 100, 100, 99, 99, 99, 99, 98, 98, 98, 98, 98, 97, 97, 97, 97, 96, 96, 96, 96, 96, 95, 95, 95, 95, 94, 94, 94, 94, 93, 93, 93, 93, 93, 92, 92, 92, 92, 91, 91, 91, 91, 91, 90, 90, 90, 90, 89, 89, 89, 89, 88, 88, 88, 88, 88, 87, 87, 87, 87, 86, 86, 86, 86, 86, 85, 85, 85, 85, 84, 84, 84, 84, 84, 83, 83, 83, 83, 82, 82, 82, 82, 81, 81, 81, 81, 81, 80, 80, 80, 80, 79, 79, 79, 79, 79, 78, 78, 78, 78, 77, 77, 77, 77, 76, 76, 76, 76, 76, 75, 75, 75, 75, 74, 74, 74, 74, 74, 73, 73, 73, 73, 72, 72, 72, 72, 71, 71, 71, 71, 71, 70, 70, 70, 70, 69, 69, 69, 69, 69, 68, 68, 68, 68, 67, 67, 67, 67, 67, 66, 66, 66, 66, 65, 65, 65, 65, 64, 64, 64, 64, 64, 63, 63, 63, 63, 62, 62, 62, 62, 62, 61, 61, 61, 61, 60, 60, 60, 60, 59, 59, 59, 59, 59, 58, 58, 58, 58, 57, 57, 57, 57, 57, 56, 56, 56, 56, 55, 55, 55, 55, 54, 54, 54, 54, 54, 53, 53, 53, 53, 52, 52, 52, 52, 52, 51, 51, 51, 51, 50, 50, 50, 50, 50, 49, 49, 49, 49, 48, 48, 48, 48, 47, 47, 47, 47, 47, 46, 46, 46, 46, 45, 45, 45, 45, 45, 44, 44, 44, 44, 43, 43, 43, 43, 42, 42, 42, 42, 42, 41, 41, 41, 41, 40, 40, 40, 40, 40, 39, 39, 39, 39, 38, 38, 38, 38, 37, 37, 37, 37, 37, 36, 36, 36, 36, 35, 35, 35, 35, 35, 34, 34, 34, 34, 33, 33, 33, 33, 33, 32, 32, 32, 32, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29, 29, 29, 29, 28, 28, 28, 28, 28, 27, 27, 27, 27, 26, 26, 26, 26, 25, 25, 25, 25, 25, 24, 24, 24, 24, 23, 23, 23, 23, 23, 22, 22, 22, 22, 21, 21, 21, 21, 20, 20, 20, 20, 20, 19, 19, 19, 19, 18, 18, 18]; dnxcToken = _dnxcToken; _rewardDistributor = address(owner()); } function changeMaximumStakers(uint256 _max) onlyOwner public { maximumStakers = _max; } function changePause(bool _pause) onlyOwner public { paused = _pause; } function changeDistributor(address _address) onlyOwner public { _rewardDistributor = _address; } function changeStakingFees(uint256 _stakingFee) onlyOwner public { stakingFee = _stakingFee; } function stake(uint256 _amount) public payable { require (paused == false, "E09"); require (currentStakers <= maximumStakers, "E03"); StakerInfo storage user = stakerInfo[msg.sender]; require (user.amount.add(_amount) >= minimumStake, "E01"); require (dnxcToken.transferFrom(msg.sender, address(this), _amount), "E02"); if(user.amount == 0) { require (msg.value >= stakingFee, "E04"); user.startStakeTime = block.timestamp; currentStakers = currentStakers.add(1); } user.amount = user.amount.add(_amount); } function unstake() public { StakerInfo storage user = stakerInfo[msg.sender]; require(user.amount > 0, "E06"); dnxcToken.transfer( msg.sender, user.amount ); if (user.claimedEggs == 0) { currentStakers = currentStakers - 1; } user.amount = 0; user.claimedEggs = 0; user.claimedTickets = 0; user.startStakeTime = 0; delete stakerInfo[msg.sender]; } function claimEgg(address _recipent) public { require(msg.sender == _rewardDistributor, "E03"); StakerInfo storage user = stakerInfo[_recipent]; require(isEggClaimable(_recipent), "E07"); require(user.claimedEggs < 1, "E05"); user.claimedEggs = 1; } function claimTickets(address _recipent) public { require(msg.sender == _rewardDistributor, "E03"); StakerInfo storage user = stakerInfo[_recipent]; require(countTicketsClaimable(_recipent) > 0, "E08"); user.claimedTickets = user.claimedTickets.add(countTicketsClaimable(_recipent)); } function countTicketsClaimable(address _user) public view returns (uint256) { StakerInfo storage user = stakerInfo[_user]; uint256 eligibleTicketsPerRound = user.amount.div(100000000000000000000); uint256 weeksAfterStakingStarted = ( block.timestamp - user.startStakeTime ).div(7 days); uint256 totalTickets = eligibleTicketsPerRound.mul(weeksAfterStakingStarted); return totalTickets.sub(user.claimedTickets); } function isEggClaimable(address _user) public view returns (bool) { StakerInfo storage user = stakerInfo[_user]; require(user.claimedEggs < 1, "E05"); uint256 cappedAmount = user.amount; if (cappedAmount > maximumStake) { cappedAmount = maximumStake; } uint256 ratio = cappedAmount.sub(minimumStake).div(10000000000000000000); if (ratio > 450) { ratio = 450; } return (block.timestamp >user.startStakeTime + ( timeTable[ratio] * 1 days )); } function getDeliveryTimeForEgg(address _user) public view returns (uint256) { StakerInfo storage user = stakerInfo[_user]; uint256 cappedAmount = user.amount; if (cappedAmount > maximumStake) { cappedAmount = maximumStake; } uint256 ratio = cappedAmount.sub(minimumStake).div(10000000000000000000); if (ratio > 450) { ratio = 450; } return (user.startStakeTime + ( timeTable[ratio] * 1 days )); } function getDeliveryTimeForEggByAmount(uint256 _amount) public view returns (uint256) { uint256 cappedAmount = _amount; if (cappedAmount > maximumStake) { cappedAmount = maximumStake; } if (cappedAmount == 0) { return 0; } uint256 ratio = cappedAmount.sub(minimumStake).div(10000000000000000000); if (ratio > 450) { ratio = 450; } return (( timeTable[ratio] * 1 days )); } function getTimestampOfStartedStaking(address _user) public view returns (uint256) { StakerInfo storage user = stakerInfo[_user]; return user.startStakeTime; } /** * Requests randomness for distribution */ function getRandomNumber() public onlyOwner returns (bytes32 requestId) { require(LINK.balanceOf(address(this)) > fee, "Not enough LINK - fill contract with faucet"); return requestRandomness(keyHash, fee); } function fulfillRandomness(bytes32 requestId, uint256 randomness) internal override { randomResult = randomness; } function withdrawLink() onlyOwner external { require(LINK.transfer(msg.sender, LINK.balanceOf(address(this))), "Unable to transfer"); } function withdrawFees() onlyOwner external { require(payable(msg.sender).send(address(this).balance)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint16","name":"_maximumStakers","type":"uint16"},{"internalType":"uint256","name":"_minimumStake","type":"uint256"},{"internalType":"uint256","name":"_maximumStake","type":"uint256"},{"internalType":"uint256","name":"_stakingFee","type":"uint256"},{"internalType":"contract IERC20","name":"_dnxcToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"changeDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_max","type":"uint256"}],"name":"changeMaximumStakers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_pause","type":"bool"}],"name":"changePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_stakingFee","type":"uint256"}],"name":"changeStakingFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_recipent","type":"address"}],"name":"claimEgg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_recipent","type":"address"}],"name":"claimTickets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"countTicketsClaimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentStakers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getDeliveryTimeForEgg","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"getDeliveryTimeForEggByAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRandomNumber","outputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getTimestampOfStartedStaking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isEggClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumStakers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"randomResult","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakerInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"startStakeTime","type":"uint256"},{"internalType":"uint16","name":"claimedEggs","type":"uint16"},{"internalType":"uint256","name":"claimedTickets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawLink","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c06040523480156200001157600080fd5b50604051620045b8380380620045b8833981810160405281019062000037919062001570565b73f0d54349addcf704f77ae15b96510dea15cb795273514910771af9ca656af840dff83e8264ecf986ca8173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050620000f1620000e5620013bd60201b60201c565b620013c560201b60201c565b7faa77729d3466ca35ae8d28b3bbac7cc36a5031efdc430821c02bc31a238af44560001b600b81905550671bc16d674ec80000600c819055508461ffff166002819055508360048190555082600581905550816006819055506001600e60006101000a81548160ff021916908315150217905550604051806138600160405280607860ff168152602001607860ff168152602001607860ff168152602001607760ff168152602001607760ff168152602001607760ff168152602001607760ff168152602001607660ff168152602001607660ff168152602001607660ff168152602001607660ff168152602001607660ff168152602001607560ff168152602001607560ff168152602001607560ff168152602001607560ff168152602001607460ff168152602001607460ff168152602001607460ff168152602001607460ff168152602001607360ff168152602001607360ff168152602001607360ff168152602001607360ff168152602001607360ff168152602001607260ff168152602001607260ff168152602001607260ff168152602001607260ff168152602001607160ff168152602001607160ff168152602001607160ff168152602001607160ff168152602001607160ff168152602001607060ff168152602001607060ff168152602001607060ff168152602001607060ff168152602001606f60ff168152602001606f60ff168152602001606f60ff168152602001606f60ff168152602001606e60ff168152602001606e60ff168152602001606e60ff168152602001606e60ff168152602001606e60ff168152602001606d60ff168152602001606d60ff168152602001606d60ff168152602001606d60ff168152602001606c60ff168152602001606c60ff168152602001606c60ff168152602001606c60ff168152602001606c60ff168152602001606b60ff168152602001606b60ff168152602001606b60ff168152602001606b60ff168152602001606a60ff168152602001606a60ff168152602001606a60ff168152602001606a60ff168152602001606960ff168152602001606960ff168152602001606960ff168152602001606960ff168152602001606960ff168152602001606860ff168152602001606860ff168152602001606860ff168152602001606860ff168152602001606760ff168152602001606760ff168152602001606760ff168152602001606760ff168152602001606760ff168152602001606660ff168152602001606660ff168152602001606660ff168152602001606660ff168152602001606560ff168152602001606560ff168152602001606560ff168152602001606560ff168152602001606560ff168152602001606460ff168152602001606460ff168152602001606460ff168152602001606460ff168152602001606360ff168152602001606360ff168152602001606360ff168152602001606360ff168152602001606260ff168152602001606260ff168152602001606260ff168152602001606260ff168152602001606260ff168152602001606160ff168152602001606160ff168152602001606160ff168152602001606160ff168152602001606060ff168152602001606060ff168152602001606060ff168152602001606060ff168152602001606060ff168152602001605f60ff168152602001605f60ff168152602001605f60ff168152602001605f60ff168152602001605e60ff168152602001605e60ff168152602001605e60ff168152602001605e60ff168152602001605d60ff168152602001605d60ff168152602001605d60ff168152602001605d60ff168152602001605d60ff168152602001605c60ff168152602001605c60ff168152602001605c60ff168152602001605c60ff168152602001605b60ff168152602001605b60ff168152602001605b60ff168152602001605b60ff168152602001605b60ff168152602001605a60ff168152602001605a60ff168152602001605a60ff168152602001605a60ff168152602001605960ff168152602001605960ff168152602001605960ff168152602001605960ff168152602001605860ff168152602001605860ff168152602001605860ff168152602001605860ff168152602001605860ff168152602001605760ff168152602001605760ff168152602001605760ff168152602001605760ff168152602001605660ff168152602001605660ff168152602001605660ff168152602001605660ff168152602001605660ff168152602001605560ff168152602001605560ff168152602001605560ff168152602001605560ff168152602001605460ff168152602001605460ff168152602001605460ff168152602001605460ff168152602001605460ff168152602001605360ff168152602001605360ff168152602001605360ff168152602001605360ff168152602001605260ff168152602001605260ff168152602001605260ff168152602001605260ff168152602001605160ff168152602001605160ff168152602001605160ff168152602001605160ff168152602001605160ff168152602001605060ff168152602001605060ff168152602001605060ff168152602001605060ff168152602001604f60ff168152602001604f60ff168152602001604f60ff168152602001604f60ff168152602001604f60ff168152602001604e60ff168152602001604e60ff168152602001604e60ff168152602001604e60ff168152602001604d60ff168152602001604d60ff168152602001604d60ff168152602001604d60ff168152602001604c60ff168152602001604c60ff168152602001604c60ff168152602001604c60ff168152602001604c60ff168152602001604b60ff168152602001604b60ff168152602001604b60ff168152602001604b60ff168152602001604a60ff168152602001604a60ff168152602001604a60ff168152602001604a60ff168152602001604a60ff168152602001604960ff168152602001604960ff168152602001604960ff168152602001604960ff168152602001604860ff168152602001604860ff168152602001604860ff168152602001604860ff168152602001604760ff168152602001604760ff168152602001604760ff168152602001604760ff168152602001604760ff168152602001604660ff168152602001604660ff168152602001604660ff168152602001604660ff168152602001604560ff168152602001604560ff168152602001604560ff168152602001604560ff168152602001604560ff168152602001604460ff168152602001604460ff168152602001604460ff168152602001604460ff168152602001604360ff168152602001604360ff168152602001604360ff168152602001604360ff168152602001604360ff168152602001604260ff168152602001604260ff168152602001604260ff168152602001604260ff168152602001604160ff168152602001604160ff168152602001604160ff168152602001604160ff168152602001604060ff168152602001604060ff168152602001604060ff168152602001604060ff168152602001604060ff168152602001603f60ff168152602001603f60ff168152602001603f60ff168152602001603f60ff168152602001603e60ff168152602001603e60ff168152602001603e60ff168152602001603e60ff168152602001603e60ff168152602001603d60ff168152602001603d60ff168152602001603d60ff168152602001603d60ff168152602001603c60ff168152602001603c60ff168152602001603c60ff168152602001603c60ff168152602001603b60ff168152602001603b60ff168152602001603b60ff168152602001603b60ff168152602001603b60ff168152602001603a60ff168152602001603a60ff168152602001603a60ff168152602001603a60ff168152602001603960ff168152602001603960ff168152602001603960ff168152602001603960ff168152602001603960ff168152602001603860ff168152602001603860ff168152602001603860ff168152602001603860ff168152602001603760ff168152602001603760ff168152602001603760ff168152602001603760ff168152602001603660ff168152602001603660ff168152602001603660ff168152602001603660ff168152602001603660ff168152602001603560ff168152602001603560ff168152602001603560ff168152602001603560ff168152602001603460ff168152602001603460ff168152602001603460ff168152602001603460ff168152602001603460ff168152602001603360ff168152602001603360ff168152602001603360ff168152602001603360ff168152602001603260ff168152602001603260ff168152602001603260ff168152602001603260ff168152602001603260ff168152602001603160ff168152602001603160ff168152602001603160ff168152602001603160ff168152602001603060ff168152602001603060ff168152602001603060ff168152602001603060ff168152602001602f60ff168152602001602f60ff168152602001602f60ff168152602001602f60ff168152602001602f60ff168152602001602e60ff168152602001602e60ff168152602001602e60ff168152602001602e60ff168152602001602d60ff168152602001602d60ff168152602001602d60ff168152602001602d60ff168152602001602d60ff168152602001602c60ff168152602001602c60ff168152602001602c60ff168152602001602c60ff168152602001602b60ff168152602001602b60ff168152602001602b60ff168152602001602b60ff168152602001602a60ff168152602001602a60ff168152602001602a60ff168152602001602a60ff168152602001602a60ff168152602001602960ff168152602001602960ff168152602001602960ff168152602001602960ff168152602001602860ff168152602001602860ff168152602001602860ff168152602001602860ff168152602001602860ff168152602001602760ff168152602001602760ff168152602001602760ff168152602001602760ff168152602001602660ff168152602001602660ff168152602001602660ff168152602001602660ff168152602001602560ff168152602001602560ff168152602001602560ff168152602001602560ff168152602001602560ff168152602001602460ff168152602001602460ff168152602001602460ff168152602001602460ff168152602001602360ff168152602001602360ff168152602001602360ff168152602001602360ff168152602001602360ff168152602001602260ff168152602001602260ff168152602001602260ff168152602001602260ff168152602001602160ff168152602001602160ff168152602001602160ff168152602001602160ff168152602001602160ff168152602001602060ff168152602001602060ff168152602001602060ff168152602001602060ff168152602001601f60ff168152602001601f60ff168152602001601f60ff168152602001601f60ff168152602001601e60ff168152602001601e60ff168152602001601e60ff168152602001601e60ff168152602001601e60ff168152602001601d60ff168152602001601d60ff168152602001601d60ff168152602001601d60ff168152602001601c60ff168152602001601c60ff168152602001601c60ff168152602001601c60ff168152602001601c60ff168152602001601b60ff168152602001601b60ff168152602001601b60ff168152602001601b60ff168152602001601a60ff168152602001601a60ff168152602001601a60ff168152602001601a60ff168152602001601960ff168152602001601960ff168152602001601960ff168152602001601960ff168152602001601960ff168152602001601860ff168152602001601860ff168152602001601860ff168152602001601860ff168152602001601760ff168152602001601760ff168152602001601760ff168152602001601760ff168152602001601760ff168152602001601660ff168152602001601660ff168152602001601660ff168152602001601660ff168152602001601560ff168152602001601560ff168152602001601560ff168152602001601560ff168152602001601460ff168152602001601460ff168152602001601460ff168152602001601460ff168152602001601460ff168152602001601360ff168152602001601360ff168152602001601360ff168152602001601360ff168152602001601260ff168152602001601260ff168152602001601260ff168152506009906101c362001320929190620014b5565b5080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620013726200148b60201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050620016a0565b600033905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054828255906000526020600020908101928215620014f9579160200282015b82811115620014f8578251829060ff16905591602001919060010190620014d6565b5b5090506200150891906200150c565b5090565b5b80821115620015275760008160009055506001016200150d565b5090565b6000815190506200153c8162001652565b92915050565b60008151905062001553816200166c565b92915050565b6000815190506200156a8162001686565b92915050565b600080600080600060a086880312156200158957600080fd5b6000620015998882890162001542565b9550506020620015ac8882890162001559565b9450506040620015bf8882890162001559565b9350506060620015d28882890162001559565b9250506080620015e5888289016200152b565b9150509295509295909350565b6000620015ff8262001628565b9050919050565b60006200161382620015f2565b9050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6200165d8162001606565b81146200166957600080fd5b50565b62001677816200161a565b81146200168357600080fd5b50565b620016918162001648565b81146200169d57600080fd5b50565b60805160601c60a05160601c612ed0620016e860003960008181610f5c0152611e52015260008181610cac01528181610ce9015281816116f50152611e160152612ed06000f3fe60806040526004361061019c5760003560e01c8063930ef76c116100ec578063cec628fd1161008a578063e9a9903d11610064578063e9a9903d14610582578063ec5ffac2146105ab578063eff98843146105d6578063f2fde38b146106015761019c565b8063cec628fd146104f1578063dbdff2c11461051a578063e5661ed7146105455761019c565b8063a4a27ff0116100c6578063a4a27ff014610444578063a694fc3a14610481578063b5c6b4531461049d578063b667c806146104c85761019c565b8063930ef76c146103b557806394985ddd146103f257806397990d1e1461041b5761019c565b8063715018a6116101595780638bbc9d11116101335780638bbc9d111461030b5780638da5cb5b146103365780638dc654a2146103615780638f19b312146103785761019c565b8063715018a6146102a05780637df427a9146102b7578063802cd15f146102e25761019c565b80632def6620146101a1578063356cc0d1146101b857806342619f66146101f5578063476343ee146102205780634e745f1f146102375780635d4fead314610277575b600080fd5b3480156101ad57600080fd5b506101b661062a565b005b3480156101c457600080fd5b506101df60048036038101906101da919061205e565b61084d565b6040516101ec9190612858565b60405180910390f35b34801561020157600080fd5b5061020a610917565b6040516102179190612858565b60405180910390f35b34801561022c57600080fd5b5061023561091d565b005b34801561024357600080fd5b5061025e6004803603810190610259919061205e565b6109d9565b60405161026e9493929190612873565b60405180910390f35b34801561028357600080fd5b5061029e60048036038101906102999190612087565b610a17565b005b3480156102ac57600080fd5b506102b5610ab0565b005b3480156102c357600080fd5b506102cc610b38565b6040516102d99190612858565b60405180910390f35b3480156102ee57600080fd5b506103096004803603810190610304919061205e565b610b3e565b005b34801561031757600080fd5b50610320610bfe565b60405161032d9190612858565b60405180910390f35b34801561034257600080fd5b5061034b610c04565b60405161035891906124bb565b60405180910390f35b34801561036d57600080fd5b50610376610c2e565b005b34801561038457600080fd5b5061039f600480360381019061039a9190612115565b610e40565b6040516103ac9190612858565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d7919061205e565b610f09565b6040516103e99190612858565b60405180910390f35b3480156103fe57600080fd5b50610419600480360381019061041491906120d9565b610f5a565b005b34801561042757600080fd5b50610442600480360381019061043d9190612115565b610ff6565b005b34801561045057600080fd5b5061046b6004803603810190610466919061205e565b61107c565b6040516104789190612858565b60405180910390f35b61049b60048036038101906104969190612115565b611188565b005b3480156104a957600080fd5b506104b261144e565b6040516104bf9190612858565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea9190612115565b611454565b005b3480156104fd57600080fd5b506105186004803603810190610513919061205e565b6114da565b005b34801561052657600080fd5b5061052f611672565b60405161053c919061258f565b60405180910390f35b34801561055157600080fd5b5061056c6004803603810190610567919061205e565b6117ef565b6040516105799190612574565b60405180910390f35b34801561058e57600080fd5b506105a960048036038101906105a4919061205e565b611956565b005b3480156105b757600080fd5b506105c0611a9f565b6040516105cd9190612858565b60405180910390f35b3480156105e257600080fd5b506105eb611aa5565b6040516105f89190612858565b60405180910390f35b34801561060d57600080fd5b506106286004803603810190610623919061205e565b611aab565b005b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154116106b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab90612658565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3383600001546040518363ffffffff1660e01b815260040161071592919061250d565b602060405180830381600087803b15801561072f57600080fd5b505af1158015610743573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076791906120b0565b5060008160020160009054906101000a900461ffff1661ffff16141561079d57600160035461079691906129c6565b6003819055505b6000816000018190555060008160020160006101000a81548161ffff021916908361ffff1602179055506000816003018190555060008160010181905550600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549061ffff02191690556003820160009055505050565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006108b368056bc75e2d631000008360000154611ba390919063ffffffff16565b905060006108dc62093a808460010154426108ce91906129c6565b611ba390919063ffffffff16565b905060006108f38284611c0190919063ffffffff16565b905061090c846003015482611c7c90919063ffffffff16565b945050505050919050565b600d5481565b610925611cdb565b73ffffffffffffffffffffffffffffffffffffffff16610943610c04565b73ffffffffffffffffffffffffffffffffffffffff1614610999576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610990906127d8565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050506109d757600080fd5b565b600a6020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900461ffff16908060030154905084565b610a1f611cdb565b73ffffffffffffffffffffffffffffffffffffffff16610a3d610c04565b73ffffffffffffffffffffffffffffffffffffffff1614610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a906127d8565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b610ab8611cdb565b73ffffffffffffffffffffffffffffffffffffffff16610ad6610c04565b73ffffffffffffffffffffffffffffffffffffffff1614610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b23906127d8565b60405180910390fd5b610b366000611ce3565b565b60035481565b610b46611cdb565b73ffffffffffffffffffffffffffffffffffffffff16610b64610c04565b73ffffffffffffffffffffffffffffffffffffffff1614610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb1906127d8565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c36611cdb565b73ffffffffffffffffffffffffffffffffffffffff16610c54610c04565b73ffffffffffffffffffffffffffffffffffffffff1614610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca1906127d8565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d4091906124bb565b60206040518083038186803b158015610d5857600080fd5b505afa158015610d6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d90919061213e565b6040518363ffffffff1660e01b8152600401610dad92919061250d565b602060405180830381600087803b158015610dc757600080fd5b505af1158015610ddb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dff91906120b0565b610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3590612798565b60405180910390fd5b565b600080829050600554811115610e565760055490505b6000811415610e69576000915050610f04565b6000610e9a678ac7230489e80000610e8c60045485611c7c90919063ffffffff16565b611ba390919063ffffffff16565b90506101c2811115610eac576101c290505b6201518060098281548110610eea577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154610eff919061296c565b925050505b919050565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010154915050919050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf906127f8565b60405180910390fd5b610ff28282611da9565b5050565b610ffe611cdb565b73ffffffffffffffffffffffffffffffffffffffff1661101c610c04565b73ffffffffffffffffffffffffffffffffffffffff1614611072576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611069906127d8565b60405180910390fd5b8060028190555050565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015490506005548111156110d95760055490505b600061110a678ac7230489e800006110fc60045485611c7c90919063ffffffff16565b611ba390919063ffffffff16565b90506101c281111561111c576101c290505b620151806009828154811061115a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015461116f919061296c565b836001015461117e91906128e5565b9350505050919050565b60001515600e60009054906101000a900460ff161515146111de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d590612638565b60405180910390fd5b6002546003541115611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c90612758565b60405180910390fd5b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600454611282838360000154611db490919063ffffffff16565b10156112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba90612618565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611322939291906124d6565b602060405180830381600087803b15801561133c57600080fd5b505af1158015611350573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137491906120b0565b6113b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113aa90612738565b60405180910390fd5b60008160000154141561142b57600654341015611405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fc90612778565b60405180910390fd5b4281600101819055506114246001600354611db490919063ffffffff16565b6003819055505b611442828260000154611db490919063ffffffff16565b81600001819055505050565b60055481565b61145c611cdb565b73ffffffffffffffffffffffffffffffffffffffff1661147a610c04565b73ffffffffffffffffffffffffffffffffffffffff16146114d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c7906127d8565b60405180910390fd5b8060068190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461156a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156190612758565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506115b6826117ef565b6115f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ec906126f8565b60405180910390fd5b60018160020160009054906101000a900461ffff1661ffff161061164e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164590612698565b60405180910390fd5b60018160020160006101000a81548161ffff021916908361ffff1602179055505050565b600061167c611cdb565b73ffffffffffffffffffffffffffffffffffffffff1661169a610c04565b73ffffffffffffffffffffffffffffffffffffffff16146116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e7906127d8565b60405180910390fd5b600c547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161174c91906124bb565b60206040518083038186803b15801561176457600080fd5b505afa158015611778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179c919061213e565b116117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d3906126b8565b60405180910390fd5b6117ea600b54600c54611e12565b905090565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060018160020160009054906101000a900461ffff1661ffff161061188c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188390612698565b60405180910390fd5b6000816000015490506005548111156118a55760055490505b60006118d6678ac7230489e800006118c860045485611c7c90919063ffffffff16565b611ba390919063ffffffff16565b90506101c28111156118e8576101c290505b6201518060098281548110611926577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015461193b919061296c565b836001015461194a91906128e5565b42119350505050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd90612758565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000611a348361084d565b11611a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6b906127b8565b60405180910390fd5b611a93611a808361084d565b8260030154611db490919063ffffffff16565b81600301819055505050565b60045481565b60065481565b611ab3611cdb565b73ffffffffffffffffffffffffffffffffffffffff16611ad1610c04565b73ffffffffffffffffffffffffffffffffffffffff1614611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e906127d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8e90612678565b60405180910390fd5b611ba081611ce3565b50565b6000808211611be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bde90612818565b60405180910390fd5b60008284611bf5919061293b565b90508091505092915050565b600080831415611c145760009050611c76565b60008284611c22919061296c565b9050828482611c31919061293b565b14611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6890612718565b60405180910390fd5b809150505b92915050565b600082821115611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb8906126d8565b60405180910390fd5b60008284611ccf91906129c6565b90508091505092915050565b600033905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600d819055505050565b6000808284611dc391906128e5565b905083811015611e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dff90612838565b60405180910390fd5b8091505092915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634000aea07f000000000000000000000000000000000000000000000000000000000000000084866000604051602001611e869291906125aa565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611eb393929190612536565b602060405180830381600087803b158015611ecd57600080fd5b505af1158015611ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0591906120b0565b506000611f278460003060008089815260200190815260200160002054611f71565b9050600160008086815260200190815260200160002054611f4891906128e5565b60008086815260200190815260200160002081905550611f688482611fad565b91505092915050565b600084848484604051602001611f8a94939291906125d3565b6040516020818303038152906040528051906020012060001c9050949350505050565b60008282604051602001611fc292919061248f565b60405160208183030381529060405280519060200120905092915050565b600081359050611fef81612e3e565b92915050565b60008135905061200481612e55565b92915050565b60008151905061201981612e55565b92915050565b60008135905061202e81612e6c565b92915050565b60008135905061204381612e83565b92915050565b60008151905061205881612e83565b92915050565b60006020828403121561207057600080fd5b600061207e84828501611fe0565b91505092915050565b60006020828403121561209957600080fd5b60006120a784828501611ff5565b91505092915050565b6000602082840312156120c257600080fd5b60006120d08482850161200a565b91505092915050565b600080604083850312156120ec57600080fd5b60006120fa8582860161201f565b925050602061210b85828601612034565b9150509250929050565b60006020828403121561212757600080fd5b600061213584828501612034565b91505092915050565b60006020828403121561215057600080fd5b600061215e84828501612049565b91505092915050565b612170816129fa565b82525050565b61217f81612a0c565b82525050565b61218e81612a18565b82525050565b6121a56121a082612a18565b612a8d565b82525050565b60006121b6826128b8565b6121c081856128c3565b93506121d0818560208601612a5a565b6121d981612aff565b840191505092915050565b60006121f16003836128d4565b91506121fc82612b10565b602082019050919050565b60006122146003836128d4565b915061221f82612b39565b602082019050919050565b60006122376003836128d4565b915061224282612b62565b602082019050919050565b600061225a6026836128d4565b915061226582612b8b565b604082019050919050565b600061227d6003836128d4565b915061228882612bda565b602082019050919050565b60006122a0602b836128d4565b91506122ab82612c03565b604082019050919050565b60006122c36017836128d4565b91506122ce82612c52565b602082019050919050565b60006122e66003836128d4565b91506122f182612c7b565b602082019050919050565b60006123096016836128d4565b915061231482612ca4565b602082019050919050565b600061232c6003836128d4565b915061233782612ccd565b602082019050919050565b600061234f6003836128d4565b915061235a82612cf6565b602082019050919050565b60006123726003836128d4565b915061237d82612d1f565b602082019050919050565b60006123956012836128d4565b91506123a082612d48565b602082019050919050565b60006123b86003836128d4565b91506123c382612d71565b602082019050919050565b60006123db6020836128d4565b91506123e682612d9a565b602082019050919050565b60006123fe601f836128d4565b915061240982612dc3565b602082019050919050565b6000612421601e836128d4565b915061242c82612dec565b602082019050919050565b60006124446016836128d4565b915061244f82612e15565b602082019050919050565b61246381612a22565b82525050565b61247281612a50565b82525050565b61248961248482612a50565b612a97565b82525050565b600061249b8285612194565b6020820191506124ab8284612478565b6020820191508190509392505050565b60006020820190506124d06000830184612167565b92915050565b60006060820190506124eb6000830186612167565b6124f86020830185612167565b6125056040830184612469565b949350505050565b60006040820190506125226000830185612167565b61252f6020830184612469565b9392505050565b600060608201905061254b6000830186612167565b6125586020830185612469565b818103604083015261256a81846121ab565b9050949350505050565b60006020820190506125896000830184612176565b92915050565b60006020820190506125a46000830184612185565b92915050565b60006040820190506125bf6000830185612185565b6125cc6020830184612469565b9392505050565b60006080820190506125e86000830187612185565b6125f56020830186612469565b6126026040830185612167565b61260f6060830184612469565b95945050505050565b60006020820190508181036000830152612631816121e4565b9050919050565b6000602082019050818103600083015261265181612207565b9050919050565b600060208201905081810360008301526126718161222a565b9050919050565b600060208201905081810360008301526126918161224d565b9050919050565b600060208201905081810360008301526126b181612270565b9050919050565b600060208201905081810360008301526126d181612293565b9050919050565b600060208201905081810360008301526126f1816122b6565b9050919050565b60006020820190508181036000830152612711816122d9565b9050919050565b60006020820190508181036000830152612731816122fc565b9050919050565b600060208201905081810360008301526127518161231f565b9050919050565b6000602082019050818103600083015261277181612342565b9050919050565b6000602082019050818103600083015261279181612365565b9050919050565b600060208201905081810360008301526127b181612388565b9050919050565b600060208201905081810360008301526127d1816123ab565b9050919050565b600060208201905081810360008301526127f1816123ce565b9050919050565b60006020820190508181036000830152612811816123f1565b9050919050565b6000602082019050818103600083015261283181612414565b9050919050565b6000602082019050818103600083015261285181612437565b9050919050565b600060208201905061286d6000830184612469565b92915050565b60006080820190506128886000830187612469565b6128956020830186612469565b6128a2604083018561245a565b6128af6060830184612469565b95945050505050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006128f082612a50565b91506128fb83612a50565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129305761292f612aa1565b5b828201905092915050565b600061294682612a50565b915061295183612a50565b92508261296157612960612ad0565b5b828204905092915050565b600061297782612a50565b915061298283612a50565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129bb576129ba612aa1565b5b828202905092915050565b60006129d182612a50565b91506129dc83612a50565b9250828210156129ef576129ee612aa1565b5b828203905092915050565b6000612a0582612a30565b9050919050565b60008115159050919050565b6000819050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015612a78578082015181840152602081019050612a5d565b83811115612a87576000848401525b50505050565b6000819050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f4530310000000000000000000000000000000000000000000000000000000000600082015250565b7f4530390000000000000000000000000000000000000000000000000000000000600082015250565b7f4530360000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4530350000000000000000000000000000000000000000000000000000000000600082015250565b7f4e6f7420656e6f756768204c494e4b202d2066696c6c20636f6e74726163742060008201527f7769746820666175636574000000000000000000000000000000000000000000602082015250565b7f536166654d617468237375623a20554e444552464c4f57000000000000000000600082015250565b7f4530370000000000000000000000000000000000000000000000000000000000600082015250565b7f536166654d617468236d756c3a204f564552464c4f5700000000000000000000600082015250565b7f4530320000000000000000000000000000000000000000000000000000000000600082015250565b7f4530330000000000000000000000000000000000000000000000000000000000600082015250565b7f4530340000000000000000000000000000000000000000000000000000000000600082015250565b7f556e61626c6520746f207472616e736665720000000000000000000000000000600082015250565b7f4530380000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4f6e6c7920565246436f6f7264696e61746f722063616e2066756c66696c6c00600082015250565b7f536166654d617468236469763a204449564953494f4e5f42595f5a45524f0000600082015250565b7f536166654d617468236164643a204f564552464c4f5700000000000000000000600082015250565b612e47816129fa565b8114612e5257600080fd5b50565b612e5e81612a0c565b8114612e6957600080fd5b50565b612e7581612a18565b8114612e8057600080fd5b50565b612e8c81612a50565b8114612e9757600080fd5b5056fea264697066735822122099ce557c9c0e173382e411498e09192f70f94a27ca76632a31f09695043e87b664736f6c6343000804003300000000000000000000000000000000000000000000000000000000000009c400000000000000000000000000000000000000000000001b1ae4d6e2ef50000000000000000000000000000000000000000000000000010f0cf064dd59200000000000000000000000000000000000000000000000000000001550f7dca7000000000000000000000000000020a8cec5fffea65be7122bcab2ffe32ed4ebf03a
Deployed Bytecode
0x60806040526004361061019c5760003560e01c8063930ef76c116100ec578063cec628fd1161008a578063e9a9903d11610064578063e9a9903d14610582578063ec5ffac2146105ab578063eff98843146105d6578063f2fde38b146106015761019c565b8063cec628fd146104f1578063dbdff2c11461051a578063e5661ed7146105455761019c565b8063a4a27ff0116100c6578063a4a27ff014610444578063a694fc3a14610481578063b5c6b4531461049d578063b667c806146104c85761019c565b8063930ef76c146103b557806394985ddd146103f257806397990d1e1461041b5761019c565b8063715018a6116101595780638bbc9d11116101335780638bbc9d111461030b5780638da5cb5b146103365780638dc654a2146103615780638f19b312146103785761019c565b8063715018a6146102a05780637df427a9146102b7578063802cd15f146102e25761019c565b80632def6620146101a1578063356cc0d1146101b857806342619f66146101f5578063476343ee146102205780634e745f1f146102375780635d4fead314610277575b600080fd5b3480156101ad57600080fd5b506101b661062a565b005b3480156101c457600080fd5b506101df60048036038101906101da919061205e565b61084d565b6040516101ec9190612858565b60405180910390f35b34801561020157600080fd5b5061020a610917565b6040516102179190612858565b60405180910390f35b34801561022c57600080fd5b5061023561091d565b005b34801561024357600080fd5b5061025e6004803603810190610259919061205e565b6109d9565b60405161026e9493929190612873565b60405180910390f35b34801561028357600080fd5b5061029e60048036038101906102999190612087565b610a17565b005b3480156102ac57600080fd5b506102b5610ab0565b005b3480156102c357600080fd5b506102cc610b38565b6040516102d99190612858565b60405180910390f35b3480156102ee57600080fd5b506103096004803603810190610304919061205e565b610b3e565b005b34801561031757600080fd5b50610320610bfe565b60405161032d9190612858565b60405180910390f35b34801561034257600080fd5b5061034b610c04565b60405161035891906124bb565b60405180910390f35b34801561036d57600080fd5b50610376610c2e565b005b34801561038457600080fd5b5061039f600480360381019061039a9190612115565b610e40565b6040516103ac9190612858565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d7919061205e565b610f09565b6040516103e99190612858565b60405180910390f35b3480156103fe57600080fd5b50610419600480360381019061041491906120d9565b610f5a565b005b34801561042757600080fd5b50610442600480360381019061043d9190612115565b610ff6565b005b34801561045057600080fd5b5061046b6004803603810190610466919061205e565b61107c565b6040516104789190612858565b60405180910390f35b61049b60048036038101906104969190612115565b611188565b005b3480156104a957600080fd5b506104b261144e565b6040516104bf9190612858565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea9190612115565b611454565b005b3480156104fd57600080fd5b506105186004803603810190610513919061205e565b6114da565b005b34801561052657600080fd5b5061052f611672565b60405161053c919061258f565b60405180910390f35b34801561055157600080fd5b5061056c6004803603810190610567919061205e565b6117ef565b6040516105799190612574565b60405180910390f35b34801561058e57600080fd5b506105a960048036038101906105a4919061205e565b611956565b005b3480156105b757600080fd5b506105c0611a9f565b6040516105cd9190612858565b60405180910390f35b3480156105e257600080fd5b506105eb611aa5565b6040516105f89190612858565b60405180910390f35b34801561060d57600080fd5b506106286004803603810190610623919061205e565b611aab565b005b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154116106b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab90612658565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3383600001546040518363ffffffff1660e01b815260040161071592919061250d565b602060405180830381600087803b15801561072f57600080fd5b505af1158015610743573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076791906120b0565b5060008160020160009054906101000a900461ffff1661ffff16141561079d57600160035461079691906129c6565b6003819055505b6000816000018190555060008160020160006101000a81548161ffff021916908361ffff1602179055506000816003018190555060008160010181905550600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549061ffff02191690556003820160009055505050565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006108b368056bc75e2d631000008360000154611ba390919063ffffffff16565b905060006108dc62093a808460010154426108ce91906129c6565b611ba390919063ffffffff16565b905060006108f38284611c0190919063ffffffff16565b905061090c846003015482611c7c90919063ffffffff16565b945050505050919050565b600d5481565b610925611cdb565b73ffffffffffffffffffffffffffffffffffffffff16610943610c04565b73ffffffffffffffffffffffffffffffffffffffff1614610999576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610990906127d8565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050506109d757600080fd5b565b600a6020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900461ffff16908060030154905084565b610a1f611cdb565b73ffffffffffffffffffffffffffffffffffffffff16610a3d610c04565b73ffffffffffffffffffffffffffffffffffffffff1614610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a906127d8565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b610ab8611cdb565b73ffffffffffffffffffffffffffffffffffffffff16610ad6610c04565b73ffffffffffffffffffffffffffffffffffffffff1614610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b23906127d8565b60405180910390fd5b610b366000611ce3565b565b60035481565b610b46611cdb565b73ffffffffffffffffffffffffffffffffffffffff16610b64610c04565b73ffffffffffffffffffffffffffffffffffffffff1614610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb1906127d8565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c36611cdb565b73ffffffffffffffffffffffffffffffffffffffff16610c54610c04565b73ffffffffffffffffffffffffffffffffffffffff1614610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca1906127d8565b60405180910390fd5b7f000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb337f000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d4091906124bb565b60206040518083038186803b158015610d5857600080fd5b505afa158015610d6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d90919061213e565b6040518363ffffffff1660e01b8152600401610dad92919061250d565b602060405180830381600087803b158015610dc757600080fd5b505af1158015610ddb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dff91906120b0565b610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3590612798565b60405180910390fd5b565b600080829050600554811115610e565760055490505b6000811415610e69576000915050610f04565b6000610e9a678ac7230489e80000610e8c60045485611c7c90919063ffffffff16565b611ba390919063ffffffff16565b90506101c2811115610eac576101c290505b6201518060098281548110610eea577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154610eff919061296c565b925050505b919050565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010154915050919050565b7f000000000000000000000000f0d54349addcf704f77ae15b96510dea15cb795273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf906127f8565b60405180910390fd5b610ff28282611da9565b5050565b610ffe611cdb565b73ffffffffffffffffffffffffffffffffffffffff1661101c610c04565b73ffffffffffffffffffffffffffffffffffffffff1614611072576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611069906127d8565b60405180910390fd5b8060028190555050565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015490506005548111156110d95760055490505b600061110a678ac7230489e800006110fc60045485611c7c90919063ffffffff16565b611ba390919063ffffffff16565b90506101c281111561111c576101c290505b620151806009828154811061115a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015461116f919061296c565b836001015461117e91906128e5565b9350505050919050565b60001515600e60009054906101000a900460ff161515146111de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d590612638565b60405180910390fd5b6002546003541115611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c90612758565b60405180910390fd5b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600454611282838360000154611db490919063ffffffff16565b10156112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba90612618565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611322939291906124d6565b602060405180830381600087803b15801561133c57600080fd5b505af1158015611350573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137491906120b0565b6113b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113aa90612738565b60405180910390fd5b60008160000154141561142b57600654341015611405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fc90612778565b60405180910390fd5b4281600101819055506114246001600354611db490919063ffffffff16565b6003819055505b611442828260000154611db490919063ffffffff16565b81600001819055505050565b60055481565b61145c611cdb565b73ffffffffffffffffffffffffffffffffffffffff1661147a610c04565b73ffffffffffffffffffffffffffffffffffffffff16146114d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c7906127d8565b60405180910390fd5b8060068190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461156a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156190612758565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506115b6826117ef565b6115f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ec906126f8565b60405180910390fd5b60018160020160009054906101000a900461ffff1661ffff161061164e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164590612698565b60405180910390fd5b60018160020160006101000a81548161ffff021916908361ffff1602179055505050565b600061167c611cdb565b73ffffffffffffffffffffffffffffffffffffffff1661169a610c04565b73ffffffffffffffffffffffffffffffffffffffff16146116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e7906127d8565b60405180910390fd5b600c547f000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161174c91906124bb565b60206040518083038186803b15801561176457600080fd5b505afa158015611778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179c919061213e565b116117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d3906126b8565b60405180910390fd5b6117ea600b54600c54611e12565b905090565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060018160020160009054906101000a900461ffff1661ffff161061188c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188390612698565b60405180910390fd5b6000816000015490506005548111156118a55760055490505b60006118d6678ac7230489e800006118c860045485611c7c90919063ffffffff16565b611ba390919063ffffffff16565b90506101c28111156118e8576101c290505b6201518060098281548110611926577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015461193b919061296c565b836001015461194a91906128e5565b42119350505050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd90612758565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000611a348361084d565b11611a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6b906127b8565b60405180910390fd5b611a93611a808361084d565b8260030154611db490919063ffffffff16565b81600301819055505050565b60045481565b60065481565b611ab3611cdb565b73ffffffffffffffffffffffffffffffffffffffff16611ad1610c04565b73ffffffffffffffffffffffffffffffffffffffff1614611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e906127d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8e90612678565b60405180910390fd5b611ba081611ce3565b50565b6000808211611be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bde90612818565b60405180910390fd5b60008284611bf5919061293b565b90508091505092915050565b600080831415611c145760009050611c76565b60008284611c22919061296c565b9050828482611c31919061293b565b14611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6890612718565b60405180910390fd5b809150505b92915050565b600082821115611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb8906126d8565b60405180910390fd5b60008284611ccf91906129c6565b90508091505092915050565b600033905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600d819055505050565b6000808284611dc391906128e5565b905083811015611e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dff90612838565b60405180910390fd5b8091505092915050565b60007f000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff16634000aea07f000000000000000000000000f0d54349addcf704f77ae15b96510dea15cb795284866000604051602001611e869291906125aa565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401611eb393929190612536565b602060405180830381600087803b158015611ecd57600080fd5b505af1158015611ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0591906120b0565b506000611f278460003060008089815260200190815260200160002054611f71565b9050600160008086815260200190815260200160002054611f4891906128e5565b60008086815260200190815260200160002081905550611f688482611fad565b91505092915050565b600084848484604051602001611f8a94939291906125d3565b6040516020818303038152906040528051906020012060001c9050949350505050565b60008282604051602001611fc292919061248f565b60405160208183030381529060405280519060200120905092915050565b600081359050611fef81612e3e565b92915050565b60008135905061200481612e55565b92915050565b60008151905061201981612e55565b92915050565b60008135905061202e81612e6c565b92915050565b60008135905061204381612e83565b92915050565b60008151905061205881612e83565b92915050565b60006020828403121561207057600080fd5b600061207e84828501611fe0565b91505092915050565b60006020828403121561209957600080fd5b60006120a784828501611ff5565b91505092915050565b6000602082840312156120c257600080fd5b60006120d08482850161200a565b91505092915050565b600080604083850312156120ec57600080fd5b60006120fa8582860161201f565b925050602061210b85828601612034565b9150509250929050565b60006020828403121561212757600080fd5b600061213584828501612034565b91505092915050565b60006020828403121561215057600080fd5b600061215e84828501612049565b91505092915050565b612170816129fa565b82525050565b61217f81612a0c565b82525050565b61218e81612a18565b82525050565b6121a56121a082612a18565b612a8d565b82525050565b60006121b6826128b8565b6121c081856128c3565b93506121d0818560208601612a5a565b6121d981612aff565b840191505092915050565b60006121f16003836128d4565b91506121fc82612b10565b602082019050919050565b60006122146003836128d4565b915061221f82612b39565b602082019050919050565b60006122376003836128d4565b915061224282612b62565b602082019050919050565b600061225a6026836128d4565b915061226582612b8b565b604082019050919050565b600061227d6003836128d4565b915061228882612bda565b602082019050919050565b60006122a0602b836128d4565b91506122ab82612c03565b604082019050919050565b60006122c36017836128d4565b91506122ce82612c52565b602082019050919050565b60006122e66003836128d4565b91506122f182612c7b565b602082019050919050565b60006123096016836128d4565b915061231482612ca4565b602082019050919050565b600061232c6003836128d4565b915061233782612ccd565b602082019050919050565b600061234f6003836128d4565b915061235a82612cf6565b602082019050919050565b60006123726003836128d4565b915061237d82612d1f565b602082019050919050565b60006123956012836128d4565b91506123a082612d48565b602082019050919050565b60006123b86003836128d4565b91506123c382612d71565b602082019050919050565b60006123db6020836128d4565b91506123e682612d9a565b602082019050919050565b60006123fe601f836128d4565b915061240982612dc3565b602082019050919050565b6000612421601e836128d4565b915061242c82612dec565b602082019050919050565b60006124446016836128d4565b915061244f82612e15565b602082019050919050565b61246381612a22565b82525050565b61247281612a50565b82525050565b61248961248482612a50565b612a97565b82525050565b600061249b8285612194565b6020820191506124ab8284612478565b6020820191508190509392505050565b60006020820190506124d06000830184612167565b92915050565b60006060820190506124eb6000830186612167565b6124f86020830185612167565b6125056040830184612469565b949350505050565b60006040820190506125226000830185612167565b61252f6020830184612469565b9392505050565b600060608201905061254b6000830186612167565b6125586020830185612469565b818103604083015261256a81846121ab565b9050949350505050565b60006020820190506125896000830184612176565b92915050565b60006020820190506125a46000830184612185565b92915050565b60006040820190506125bf6000830185612185565b6125cc6020830184612469565b9392505050565b60006080820190506125e86000830187612185565b6125f56020830186612469565b6126026040830185612167565b61260f6060830184612469565b95945050505050565b60006020820190508181036000830152612631816121e4565b9050919050565b6000602082019050818103600083015261265181612207565b9050919050565b600060208201905081810360008301526126718161222a565b9050919050565b600060208201905081810360008301526126918161224d565b9050919050565b600060208201905081810360008301526126b181612270565b9050919050565b600060208201905081810360008301526126d181612293565b9050919050565b600060208201905081810360008301526126f1816122b6565b9050919050565b60006020820190508181036000830152612711816122d9565b9050919050565b60006020820190508181036000830152612731816122fc565b9050919050565b600060208201905081810360008301526127518161231f565b9050919050565b6000602082019050818103600083015261277181612342565b9050919050565b6000602082019050818103600083015261279181612365565b9050919050565b600060208201905081810360008301526127b181612388565b9050919050565b600060208201905081810360008301526127d1816123ab565b9050919050565b600060208201905081810360008301526127f1816123ce565b9050919050565b60006020820190508181036000830152612811816123f1565b9050919050565b6000602082019050818103600083015261283181612414565b9050919050565b6000602082019050818103600083015261285181612437565b9050919050565b600060208201905061286d6000830184612469565b92915050565b60006080820190506128886000830187612469565b6128956020830186612469565b6128a2604083018561245a565b6128af6060830184612469565b95945050505050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006128f082612a50565b91506128fb83612a50565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129305761292f612aa1565b5b828201905092915050565b600061294682612a50565b915061295183612a50565b92508261296157612960612ad0565b5b828204905092915050565b600061297782612a50565b915061298283612a50565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129bb576129ba612aa1565b5b828202905092915050565b60006129d182612a50565b91506129dc83612a50565b9250828210156129ef576129ee612aa1565b5b828203905092915050565b6000612a0582612a30565b9050919050565b60008115159050919050565b6000819050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015612a78578082015181840152602081019050612a5d565b83811115612a87576000848401525b50505050565b6000819050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f4530310000000000000000000000000000000000000000000000000000000000600082015250565b7f4530390000000000000000000000000000000000000000000000000000000000600082015250565b7f4530360000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4530350000000000000000000000000000000000000000000000000000000000600082015250565b7f4e6f7420656e6f756768204c494e4b202d2066696c6c20636f6e74726163742060008201527f7769746820666175636574000000000000000000000000000000000000000000602082015250565b7f536166654d617468237375623a20554e444552464c4f57000000000000000000600082015250565b7f4530370000000000000000000000000000000000000000000000000000000000600082015250565b7f536166654d617468236d756c3a204f564552464c4f5700000000000000000000600082015250565b7f4530320000000000000000000000000000000000000000000000000000000000600082015250565b7f4530330000000000000000000000000000000000000000000000000000000000600082015250565b7f4530340000000000000000000000000000000000000000000000000000000000600082015250565b7f556e61626c6520746f207472616e736665720000000000000000000000000000600082015250565b7f4530380000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4f6e6c7920565246436f6f7264696e61746f722063616e2066756c66696c6c00600082015250565b7f536166654d617468236469763a204449564953494f4e5f42595f5a45524f0000600082015250565b7f536166654d617468236164643a204f564552464c4f5700000000000000000000600082015250565b612e47816129fa565b8114612e5257600080fd5b50565b612e5e81612a0c565b8114612e6957600080fd5b50565b612e7581612a18565b8114612e8057600080fd5b50565b612e8c81612a50565b8114612e9757600080fd5b5056fea264697066735822122099ce557c9c0e173382e411498e09192f70f94a27ca76632a31f09695043e87b664736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000009c400000000000000000000000000000000000000000000001b1ae4d6e2ef50000000000000000000000000000000000000000000000000010f0cf064dd59200000000000000000000000000000000000000000000000000000001550f7dca7000000000000000000000000000020a8cec5fffea65be7122bcab2ffe32ed4ebf03a
-----Decoded View---------------
Arg [0] : _maximumStakers (uint16): 2500
Arg [1] : _minimumStake (uint256): 500000000000000000000
Arg [2] : _maximumStake (uint256): 5000000000000000000000
Arg [3] : _stakingFee (uint256): 6000000000000000
Arg [4] : _dnxcToken (address): 0x20a8CEC5fffea65Be7122BCaB2FFe32ED4Ebf03a
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000009c4
Arg [1] : 00000000000000000000000000000000000000000000001b1ae4d6e2ef500000
Arg [2] : 00000000000000000000000000000000000000000000010f0cf064dd59200000
Arg [3] : 000000000000000000000000000000000000000000000000001550f7dca70000
Arg [4] : 00000000000000000000000020a8cec5fffea65be7122bcab2ffe32ed4ebf03a
Deployed Bytecode Sourcemap
19999:8845:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24582:520;;;;;;;;;;;;;:::i;:::-;;25763:462;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20740:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28715:118;;;;;;;;;;;;;:::i;:::-;;20627:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;23578:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3539:94;;;;;;;;;;;;;:::i;:::-;;20354:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23675:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20261:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2888:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28554:149;;;;;;;;;;;;;:::i;:::-;;27371:536;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27913:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19759:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23471:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26821:538;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23917:653;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20424:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23797:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25114:299;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28171:231;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26237:572;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25425:326;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20390:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20458:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3788:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24582:520;24629:23;24655:10;:22;24666:10;24655:22;;;;;;;;;;;;;;;24629:48;;24710:1;24696:4;:11;;;:15;24688:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;24730:9;;;;;;;;;;;:18;;;24763:10;24788:4;:11;;;24730:80;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24855:1;24835:4;:16;;;;;;;;;;;;:21;;;24831:89;;;24907:1;24890:14;;:18;;;;:::i;:::-;24873:14;:35;;;;24831:89;24954:1;24940:4;:11;;:15;;;;24985:1;24966:4;:16;;;:20;;;;;;;;;;;;;;;;;;25019:1;24997:4;:19;;:23;;;;25053:1;25031:4;:19;;:23;;;;25072:10;:22;25083:10;25072:22;;;;;;;;;;;;;;;;25065:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24582:520;:::o;25763:462::-;25830:7;25850:23;25876:10;:17;25887:5;25876:17;;;;;;;;;;;;;;;25850:43;;25904:31;25938:38;25954:21;25938:4;:11;;;:15;;:38;;;;:::i;:::-;25904:72;;25987:32;26022:53;26068:6;26042:4;:19;;;26024:15;:37;;;;:::i;:::-;26022:45;;:53;;;;:::i;:::-;25987:88;;26086:20;26109:53;26137:24;26109:23;:27;;:53;;;;:::i;:::-;26086:76;;26180:37;26197:4;:19;;;26180:12;:16;;:37;;;;:::i;:::-;26173:44;;;;;;25763:462;;;:::o;20740:27::-;;;;:::o;28715:118::-;3119:12;:10;:12::i;:::-;3108:23;;:7;:5;:7::i;:::-;:23;;;3100:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28785:10:::1;28777:24;;:47;28802:21;28777:47;;;;;;;;;;;;;;;;;;;;;;;28769:56;;;::::0;::::1;;28715:118::o:0;20627:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;23578:85::-;3119:12;:10;:12::i;:::-;3108:23;;:7;:5;:7::i;:::-;:23;;;3100:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23649:6:::1;23640;;:15;;;;;;;;;;;;;;;;;;23578:85:::0;:::o;3539:94::-;3119:12;:10;:12::i;:::-;3108:23;;:7;:5;:7::i;:::-;:23;;;3100:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3604:21:::1;3622:1;3604:9;:21::i;:::-;3539:94::o:0;20354:29::-;;;;:::o;23675:110::-;3119:12;:10;:12::i;:::-;3108:23;;:7;:5;:7::i;:::-;:23;;;3100:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23769:8:::1;23748:18;;:29;;;;;;;;;;;;;;;;;;23675:110:::0;:::o;20261:29::-;;;;:::o;2888:87::-;2934:7;2961:6;;;;;;;;;;;2954:13;;2888:87;:::o;28554:149::-;3119:12;:10;:12::i;:::-;3108:23;;:7;:5;:7::i;:::-;:23;;;3100:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28616:4:::1;:13;;;28630:10;28642:4;:14;;;28665:4;28642:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28616:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28608:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;28554:149::o:0;27371:536::-;27448:7;27478:20;27501:7;27478:30;;27538:12;;27523;:27;27519:87;;;27582:12;;27567:27;;27519:87;27646:1;27630:12;:17;27626:58;;;27671:1;27664:8;;;;;27626:58;27704:13;27720:56;27755:20;27720:30;27737:12;;27720;:16;;:30;;;;:::i;:::-;:34;;:56;;;;:::i;:::-;27704:72;;27799:3;27791:5;:11;27787:55;;;27827:3;27819:11;;27787:55;27890:6;27871:9;27881:5;27871:16;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;27861:38;;;;27371:536;;;;:::o;27913:182::-;27987:7;28007:23;28033:10;:17;28044:5;28033:17;;;;;;;;;;;;;;;28007:43;;28068:4;:19;;;28061:26;;;27913:182;;;:::o;19759:233::-;19889:14;19875:28;;:10;:28;;;19867:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;19946:40;19964:9;19975:10;19946:17;:40::i;:::-;19759:233;;:::o;23471:101::-;3119:12;:10;:12::i;:::-;3108:23;;:7;:5;:7::i;:::-;:23;;;3100:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23560:4:::1;23543:14;:21;;;;23471:101:::0;:::o;26821:538::-;26888:7;26918:23;26944:10;:17;26955:5;26944:17;;;;;;;;;;;;;;;26918:43;;26972:20;26995:4;:11;;;26972:34;;27036:12;;27021;:27;27017:87;;;27080:12;;27065:27;;27017:87;27134:13;27150:56;27185:20;27150:30;27167:12;;27150;:16;;:30;;;;:::i;:::-;:34;;:56;;;;:::i;:::-;27134:72;;27229:3;27221:5;:11;27217:55;;;27257:3;27249:11;;27217:55;27342:6;27323:9;27333:5;27323:16;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;27299:4;:19;;;:51;;;;:::i;:::-;27291:60;;;;;26821:538;;;:::o;23917:653::-;23994:5;23984:15;;:6;;;;;;;;;;;:15;;;23975:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;24045:14;;24027;;:32;;24018:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;24088:23;24114:10;:22;24125:10;24114:22;;;;;;;;;;;;;;;24088:48;;24184:12;;24156:24;24172:7;24156:4;:11;;;:15;;:24;;;;:::i;:::-;:40;;24147:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;24224:9;;;;;;;;;;;:22;;;24247:10;24267:4;24274:7;24224:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24215:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;24329:1;24314:4;:11;;;:16;24311:193;;;24369:10;;24356:9;:23;;24347:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;24424:15;24402:4;:19;;:37;;;;24471:21;24490:1;24471:14;;:18;;:21;;;;:::i;:::-;24454:14;:38;;;;24311:193;24538:24;24554:7;24538:4;:11;;;:15;;:24;;;;:::i;:::-;24524:4;:11;;:38;;;;23917:653;;:::o;20424:27::-;;;;:::o;23797:108::-;3119:12;:10;:12::i;:::-;3108:23;;:7;:5;:7::i;:::-;:23;;;3100:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23886:11:::1;23873:10;:24;;;;23797:108:::0;:::o;25114:299::-;25191:18;;;;;;;;;;;25177:32;;:10;:32;;;25169:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25228:23;25254:10;:21;25265:9;25254:21;;;;;;;;;;;;;;;25228:47;;25294:25;25309:9;25294:14;:25::i;:::-;25286:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;25365:1;25346:4;:16;;;;;;;;;;;;:20;;;25338:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;25404:1;25385:4;:16;;;:20;;;;;;;;;;;;;;;;;;25114:299;;:::o;28171:231::-;28224:17;3119:12;:10;:12::i;:::-;3108:23;;:7;:5;:7::i;:::-;:23;;;3100:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28294:3:::1;;28262:4;:14;;;28285:4;28262:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;28254:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;28363:31;28381:7;;28390:3;;28363:17;:31::i;:::-;28356:38;;28171:231:::0;:::o;26237:572::-;26297:4;26314:23;26340:10;:17;26351:5;26340:17;;;;;;;;;;;;;;;26314:43;;26395:1;26376:4;:16;;;;;;;;;;;;:20;;;26368:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;26415:20;26438:4;:11;;;26415:34;;26479:12;;26464;:27;26460:87;;;26523:12;;26508:27;;26460:87;26567:13;26583:56;26618:20;26583:30;26600:12;;26583;:16;;:30;;;;:::i;:::-;:34;;:56;;;;:::i;:::-;26567:72;;26662:3;26654:5;:11;26650:55;;;26690:3;26682:11;;26650:55;26792:6;26773:9;26783:5;26773:16;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;26749:4;:19;;;:51;;;;:::i;:::-;26732:15;:68;26724:77;;;;;26237:572;;;:::o;25425:326::-;25506:18;;;;;;;;;;;25492:32;;:10;:32;;;25484:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25543:23;25569:10;:21;25580:9;25569:21;;;;;;;;;;;;;;;25543:47;;25644:1;25609:32;25631:9;25609:21;:32::i;:::-;:36;25601:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;25686:57;25710:32;25732:9;25710:21;:32::i;:::-;25686:4;:19;;;:23;;:57;;;;:::i;:::-;25664:4;:19;;:79;;;;25425:326;;:::o;20390:27::-;;;;:::o;20458:25::-;;;;:::o;3788:192::-;3119:12;:10;:12::i;:::-;3108:23;;:7;:5;:7::i;:::-;:23;;;3100:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3897:1:::1;3877:22;;:8;:22;;;;3869:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3953:19;3963:8;3953:9;:19::i;:::-;3788:192:::0;:::o;709:315::-;767:7;858:1;854;:5;846:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;901:9;917:1;913;:5;;;;:::i;:::-;901:17;;1017:1;1010:8;;;709:315;;;;:::o;163:419::-;221:7;454:1;449;:6;445:37;;;473:1;466:8;;;;445:37;490:9;506:1;502;:5;;;;:::i;:::-;490:17;;531:1;526;522;:5;;;;:::i;:::-;:10;514:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;575:1;568:8;;;163:419;;;;;:::o;1154:163::-;1212:7;1241:1;1236;:6;;1228:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;1277:9;1293:1;1289;:5;;;;:::i;:::-;1277:17;;1310:1;1303:8;;;1154:163;;;;:::o;1901:98::-;1954:7;1981:10;1974:17;;1901:98;:::o;3988:173::-;4044:16;4063:6;;;;;;;;;;;4044:25;;4089:8;4080:6;;:17;;;;;;;;;;;;;;;;;;4144:8;4113:40;;4134:8;4113:40;;;;;;;;;;;;3988:173;;:::o;28414:128::-;28524:10;28509:12;:25;;;;28414:128;;:::o;1397:163::-;1455:7;1471:9;1487:1;1483;:5;;;;:::i;:::-;1471:17;;1508:1;1503;:6;;1495:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;1552:1;1545:8;;;1397:163;;;;:::o;17823:1077::-;17933:17;17968:4;:20;;;17989:14;18005:4;18022:8;16653:1;18011:43;;;;;;;;;:::i;:::-;;;;;;;;;;;;;17968:87;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18290:15;18309:82;18326:8;16653:1;18367:4;18374:6;:16;18381:8;18374:16;;;;;;;;;;;;18309;:82::i;:::-;18290:101;;18847:1;18828:6;:16;18835:8;18828:16;;;;;;;;;;;;:20;;;;:::i;:::-;18809:6;:16;18816:8;18809:16;;;;;;;;;;;:39;;;;18862:32;18876:8;18886:7;18862:13;:32::i;:::-;18855:39;;;17823:1077;;;;:::o;9169:279::-;9339:7;9400:8;9410:9;9421:10;9433:6;9389:51;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9379:62;;;;;;9371:71;;9364:78;;9169:279;;;;;;:::o;9839:215::-;9964:7;10023:8;10033:13;10006:41;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9996:52;;;;;;9989:59;;9839:215;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:137::-;345:5;376:6;370:13;361:22;;392:30;416:5;392:30;:::i;:::-;351:77;;;;:::o;434:139::-;480:5;518:6;505:20;496:29;;534:33;561:5;534:33;:::i;:::-;486:87;;;;:::o;579:139::-;625:5;663:6;650:20;641:29;;679:33;706:5;679:33;:::i;:::-;631:87;;;;:::o;724:143::-;781:5;812:6;806:13;797:22;;828:33;855:5;828:33;:::i;:::-;787:80;;;;:::o;873:262::-;932:6;981:2;969:9;960:7;956:23;952:32;949:2;;;997:1;994;987:12;949:2;1040:1;1065:53;1110:7;1101:6;1090:9;1086:22;1065:53;:::i;:::-;1055:63;;1011:117;939:196;;;;:::o;1141:256::-;1197:6;1246:2;1234:9;1225:7;1221:23;1217:32;1214:2;;;1262:1;1259;1252:12;1214:2;1305:1;1330:50;1372:7;1363:6;1352:9;1348:22;1330:50;:::i;:::-;1320:60;;1276:114;1204:193;;;;:::o;1403:278::-;1470:6;1519:2;1507:9;1498:7;1494:23;1490:32;1487:2;;;1535:1;1532;1525:12;1487:2;1578:1;1603:61;1656:7;1647:6;1636:9;1632:22;1603:61;:::i;:::-;1593:71;;1549:125;1477:204;;;;:::o;1687:407::-;1755:6;1763;1812:2;1800:9;1791:7;1787:23;1783:32;1780:2;;;1828:1;1825;1818:12;1780:2;1871:1;1896:53;1941:7;1932:6;1921:9;1917:22;1896:53;:::i;:::-;1886:63;;1842:117;1998:2;2024:53;2069:7;2060:6;2049:9;2045:22;2024:53;:::i;:::-;2014:63;;1969:118;1770:324;;;;;:::o;2100:262::-;2159:6;2208:2;2196:9;2187:7;2183:23;2179:32;2176:2;;;2224:1;2221;2214:12;2176:2;2267:1;2292:53;2337:7;2328:6;2317:9;2313:22;2292:53;:::i;:::-;2282:63;;2238:117;2166:196;;;;:::o;2368:284::-;2438:6;2487:2;2475:9;2466:7;2462:23;2458:32;2455:2;;;2503:1;2500;2493:12;2455:2;2546:1;2571:64;2627:7;2618:6;2607:9;2603:22;2571:64;:::i;:::-;2561:74;;2517:128;2445:207;;;;:::o;2658:118::-;2745:24;2763:5;2745:24;:::i;:::-;2740:3;2733:37;2723:53;;:::o;2782:109::-;2863:21;2878:5;2863:21;:::i;:::-;2858:3;2851:34;2841:50;;:::o;2897:118::-;2984:24;3002:5;2984:24;:::i;:::-;2979:3;2972:37;2962:53;;:::o;3021:157::-;3126:45;3146:24;3164:5;3146:24;:::i;:::-;3126:45;:::i;:::-;3121:3;3114:58;3104:74;;:::o;3184:360::-;3270:3;3298:38;3330:5;3298:38;:::i;:::-;3352:70;3415:6;3410:3;3352:70;:::i;:::-;3345:77;;3431:52;3476:6;3471:3;3464:4;3457:5;3453:16;3431:52;:::i;:::-;3508:29;3530:6;3508:29;:::i;:::-;3503:3;3499:39;3492:46;;3274:270;;;;;:::o;3550:365::-;3692:3;3713:66;3777:1;3772:3;3713:66;:::i;:::-;3706:73;;3788:93;3877:3;3788:93;:::i;:::-;3906:2;3901:3;3897:12;3890:19;;3696:219;;;:::o;3921:365::-;4063:3;4084:66;4148:1;4143:3;4084:66;:::i;:::-;4077:73;;4159:93;4248:3;4159:93;:::i;:::-;4277:2;4272:3;4268:12;4261:19;;4067:219;;;:::o;4292:365::-;4434:3;4455:66;4519:1;4514:3;4455:66;:::i;:::-;4448:73;;4530:93;4619:3;4530:93;:::i;:::-;4648:2;4643:3;4639:12;4632:19;;4438:219;;;:::o;4663:366::-;4805:3;4826:67;4890:2;4885:3;4826:67;:::i;:::-;4819:74;;4902:93;4991:3;4902:93;:::i;:::-;5020:2;5015:3;5011:12;5004:19;;4809:220;;;:::o;5035:365::-;5177:3;5198:66;5262:1;5257:3;5198:66;:::i;:::-;5191:73;;5273:93;5362:3;5273:93;:::i;:::-;5391:2;5386:3;5382:12;5375:19;;5181:219;;;:::o;5406:366::-;5548:3;5569:67;5633:2;5628:3;5569:67;:::i;:::-;5562:74;;5645:93;5734:3;5645:93;:::i;:::-;5763:2;5758:3;5754:12;5747:19;;5552:220;;;:::o;5778:366::-;5920:3;5941:67;6005:2;6000:3;5941:67;:::i;:::-;5934:74;;6017:93;6106:3;6017:93;:::i;:::-;6135:2;6130:3;6126:12;6119:19;;5924:220;;;:::o;6150:365::-;6292:3;6313:66;6377:1;6372:3;6313:66;:::i;:::-;6306:73;;6388:93;6477:3;6388:93;:::i;:::-;6506:2;6501:3;6497:12;6490:19;;6296:219;;;:::o;6521:366::-;6663:3;6684:67;6748:2;6743:3;6684:67;:::i;:::-;6677:74;;6760:93;6849:3;6760:93;:::i;:::-;6878:2;6873:3;6869:12;6862:19;;6667:220;;;:::o;6893:365::-;7035:3;7056:66;7120:1;7115:3;7056:66;:::i;:::-;7049:73;;7131:93;7220:3;7131:93;:::i;:::-;7249:2;7244:3;7240:12;7233:19;;7039:219;;;:::o;7264:365::-;7406:3;7427:66;7491:1;7486:3;7427:66;:::i;:::-;7420:73;;7502:93;7591:3;7502:93;:::i;:::-;7620:2;7615:3;7611:12;7604:19;;7410:219;;;:::o;7635:365::-;7777:3;7798:66;7862:1;7857:3;7798:66;:::i;:::-;7791:73;;7873:93;7962:3;7873:93;:::i;:::-;7991:2;7986:3;7982:12;7975:19;;7781:219;;;:::o;8006:366::-;8148:3;8169:67;8233:2;8228:3;8169:67;:::i;:::-;8162:74;;8245:93;8334:3;8245:93;:::i;:::-;8363:2;8358:3;8354:12;8347:19;;8152:220;;;:::o;8378:365::-;8520:3;8541:66;8605:1;8600:3;8541:66;:::i;:::-;8534:73;;8616:93;8705:3;8616:93;:::i;:::-;8734:2;8729:3;8725:12;8718:19;;8524:219;;;:::o;8749:366::-;8891:3;8912:67;8976:2;8971:3;8912:67;:::i;:::-;8905:74;;8988:93;9077:3;8988:93;:::i;:::-;9106:2;9101:3;9097:12;9090:19;;8895:220;;;:::o;9121:366::-;9263:3;9284:67;9348:2;9343:3;9284:67;:::i;:::-;9277:74;;9360:93;9449:3;9360:93;:::i;:::-;9478:2;9473:3;9469:12;9462:19;;9267:220;;;:::o;9493:366::-;9635:3;9656:67;9720:2;9715:3;9656:67;:::i;:::-;9649:74;;9732:93;9821:3;9732:93;:::i;:::-;9850:2;9845:3;9841:12;9834:19;;9639:220;;;:::o;9865:366::-;10007:3;10028:67;10092:2;10087:3;10028:67;:::i;:::-;10021:74;;10104:93;10193:3;10104:93;:::i;:::-;10222:2;10217:3;10213:12;10206:19;;10011:220;;;:::o;10237:115::-;10322:23;10339:5;10322:23;:::i;:::-;10317:3;10310:36;10300:52;;:::o;10358:118::-;10445:24;10463:5;10445:24;:::i;:::-;10440:3;10433:37;10423:53;;:::o;10482:157::-;10587:45;10607:24;10625:5;10607:24;:::i;:::-;10587:45;:::i;:::-;10582:3;10575:58;10565:74;;:::o;10645:397::-;10785:3;10800:75;10871:3;10862:6;10800:75;:::i;:::-;10900:2;10895:3;10891:12;10884:19;;10913:75;10984:3;10975:6;10913:75;:::i;:::-;11013:2;11008:3;11004:12;10997:19;;11033:3;11026:10;;10789:253;;;;;:::o;11048:222::-;11141:4;11179:2;11168:9;11164:18;11156:26;;11192:71;11260:1;11249:9;11245:17;11236:6;11192:71;:::i;:::-;11146:124;;;;:::o;11276:442::-;11425:4;11463:2;11452:9;11448:18;11440:26;;11476:71;11544:1;11533:9;11529:17;11520:6;11476:71;:::i;:::-;11557:72;11625:2;11614:9;11610:18;11601:6;11557:72;:::i;:::-;11639;11707:2;11696:9;11692:18;11683:6;11639:72;:::i;:::-;11430:288;;;;;;:::o;11724:332::-;11845:4;11883:2;11872:9;11868:18;11860:26;;11896:71;11964:1;11953:9;11949:17;11940:6;11896:71;:::i;:::-;11977:72;12045:2;12034:9;12030:18;12021:6;11977:72;:::i;:::-;11850:206;;;;;:::o;12062:529::-;12229:4;12267:2;12256:9;12252:18;12244:26;;12280:71;12348:1;12337:9;12333:17;12324:6;12280:71;:::i;:::-;12361:72;12429:2;12418:9;12414:18;12405:6;12361:72;:::i;:::-;12480:9;12474:4;12470:20;12465:2;12454:9;12450:18;12443:48;12508:76;12579:4;12570:6;12508:76;:::i;:::-;12500:84;;12234:357;;;;;;:::o;12597:210::-;12684:4;12722:2;12711:9;12707:18;12699:26;;12735:65;12797:1;12786:9;12782:17;12773:6;12735:65;:::i;:::-;12689:118;;;;:::o;12813:222::-;12906:4;12944:2;12933:9;12929:18;12921:26;;12957:71;13025:1;13014:9;13010:17;13001:6;12957:71;:::i;:::-;12911:124;;;;:::o;13041:332::-;13162:4;13200:2;13189:9;13185:18;13177:26;;13213:71;13281:1;13270:9;13266:17;13257:6;13213:71;:::i;:::-;13294:72;13362:2;13351:9;13347:18;13338:6;13294:72;:::i;:::-;13167:206;;;;;:::o;13379:553::-;13556:4;13594:3;13583:9;13579:19;13571:27;;13608:71;13676:1;13665:9;13661:17;13652:6;13608:71;:::i;:::-;13689:72;13757:2;13746:9;13742:18;13733:6;13689:72;:::i;:::-;13771;13839:2;13828:9;13824:18;13815:6;13771:72;:::i;:::-;13853;13921:2;13910:9;13906:18;13897:6;13853:72;:::i;:::-;13561:371;;;;;;;:::o;13938:419::-;14104:4;14142:2;14131:9;14127:18;14119:26;;14191:9;14185:4;14181:20;14177:1;14166:9;14162:17;14155:47;14219:131;14345:4;14219:131;:::i;:::-;14211:139;;14109:248;;;:::o;14363:419::-;14529:4;14567:2;14556:9;14552:18;14544:26;;14616:9;14610:4;14606:20;14602:1;14591:9;14587:17;14580:47;14644:131;14770:4;14644:131;:::i;:::-;14636:139;;14534:248;;;:::o;14788:419::-;14954:4;14992:2;14981:9;14977:18;14969:26;;15041:9;15035:4;15031:20;15027:1;15016:9;15012:17;15005:47;15069:131;15195:4;15069:131;:::i;:::-;15061:139;;14959:248;;;:::o;15213:419::-;15379:4;15417:2;15406:9;15402:18;15394:26;;15466:9;15460:4;15456:20;15452:1;15441:9;15437:17;15430:47;15494:131;15620:4;15494:131;:::i;:::-;15486:139;;15384:248;;;:::o;15638:419::-;15804:4;15842:2;15831:9;15827:18;15819:26;;15891:9;15885:4;15881:20;15877:1;15866:9;15862:17;15855:47;15919:131;16045:4;15919:131;:::i;:::-;15911:139;;15809:248;;;:::o;16063:419::-;16229:4;16267:2;16256:9;16252:18;16244:26;;16316:9;16310:4;16306:20;16302:1;16291:9;16287:17;16280:47;16344:131;16470:4;16344:131;:::i;:::-;16336:139;;16234:248;;;:::o;16488:419::-;16654:4;16692:2;16681:9;16677:18;16669:26;;16741:9;16735:4;16731:20;16727:1;16716:9;16712:17;16705:47;16769:131;16895:4;16769:131;:::i;:::-;16761:139;;16659:248;;;:::o;16913:419::-;17079:4;17117:2;17106:9;17102:18;17094:26;;17166:9;17160:4;17156:20;17152:1;17141:9;17137:17;17130:47;17194:131;17320:4;17194:131;:::i;:::-;17186:139;;17084:248;;;:::o;17338:419::-;17504:4;17542:2;17531:9;17527:18;17519:26;;17591:9;17585:4;17581:20;17577:1;17566:9;17562:17;17555:47;17619:131;17745:4;17619:131;:::i;:::-;17611:139;;17509:248;;;:::o;17763:419::-;17929:4;17967:2;17956:9;17952:18;17944:26;;18016:9;18010:4;18006:20;18002:1;17991:9;17987:17;17980:47;18044:131;18170:4;18044:131;:::i;:::-;18036:139;;17934:248;;;:::o;18188:419::-;18354:4;18392:2;18381:9;18377:18;18369:26;;18441:9;18435:4;18431:20;18427:1;18416:9;18412:17;18405:47;18469:131;18595:4;18469:131;:::i;:::-;18461:139;;18359:248;;;:::o;18613:419::-;18779:4;18817:2;18806:9;18802:18;18794:26;;18866:9;18860:4;18856:20;18852:1;18841:9;18837:17;18830:47;18894:131;19020:4;18894:131;:::i;:::-;18886:139;;18784:248;;;:::o;19038:419::-;19204:4;19242:2;19231:9;19227:18;19219:26;;19291:9;19285:4;19281:20;19277:1;19266:9;19262:17;19255:47;19319:131;19445:4;19319:131;:::i;:::-;19311:139;;19209:248;;;:::o;19463:419::-;19629:4;19667:2;19656:9;19652:18;19644:26;;19716:9;19710:4;19706:20;19702:1;19691:9;19687:17;19680:47;19744:131;19870:4;19744:131;:::i;:::-;19736:139;;19634:248;;;:::o;19888:419::-;20054:4;20092:2;20081:9;20077:18;20069:26;;20141:9;20135:4;20131:20;20127:1;20116:9;20112:17;20105:47;20169:131;20295:4;20169:131;:::i;:::-;20161:139;;20059:248;;;:::o;20313:419::-;20479:4;20517:2;20506:9;20502:18;20494:26;;20566:9;20560:4;20556:20;20552:1;20541:9;20537:17;20530:47;20594:131;20720:4;20594:131;:::i;:::-;20586:139;;20484:248;;;:::o;20738:419::-;20904:4;20942:2;20931:9;20927:18;20919:26;;20991:9;20985:4;20981:20;20977:1;20966:9;20962:17;20955:47;21019:131;21145:4;21019:131;:::i;:::-;21011:139;;20909:248;;;:::o;21163:419::-;21329:4;21367:2;21356:9;21352:18;21344:26;;21416:9;21410:4;21406:20;21402:1;21391:9;21387:17;21380:47;21444:131;21570:4;21444:131;:::i;:::-;21436:139;;21334:248;;;:::o;21588:222::-;21681:4;21719:2;21708:9;21704:18;21696:26;;21732:71;21800:1;21789:9;21785:17;21776:6;21732:71;:::i;:::-;21686:124;;;;:::o;21816:549::-;21991:4;22029:3;22018:9;22014:19;22006:27;;22043:71;22111:1;22100:9;22096:17;22087:6;22043:71;:::i;:::-;22124:72;22192:2;22181:9;22177:18;22168:6;22124:72;:::i;:::-;22206:70;22272:2;22261:9;22257:18;22248:6;22206:70;:::i;:::-;22286:72;22354:2;22343:9;22339:18;22330:6;22286:72;:::i;:::-;21996:369;;;;;;;:::o;22371:98::-;22422:6;22456:5;22450:12;22440:22;;22429:40;;;:::o;22475:168::-;22558:11;22592:6;22587:3;22580:19;22632:4;22627:3;22623:14;22608:29;;22570:73;;;;:::o;22649:169::-;22733:11;22767:6;22762:3;22755:19;22807:4;22802:3;22798:14;22783:29;;22745:73;;;;:::o;22824:305::-;22864:3;22883:20;22901:1;22883:20;:::i;:::-;22878:25;;22917:20;22935:1;22917:20;:::i;:::-;22912:25;;23071:1;23003:66;22999:74;22996:1;22993:81;22990:2;;;23077:18;;:::i;:::-;22990:2;23121:1;23118;23114:9;23107:16;;22868:261;;;;:::o;23135:185::-;23175:1;23192:20;23210:1;23192:20;:::i;:::-;23187:25;;23226:20;23244:1;23226:20;:::i;:::-;23221:25;;23265:1;23255:2;;23270:18;;:::i;:::-;23255:2;23312:1;23309;23305:9;23300:14;;23177:143;;;;:::o;23326:348::-;23366:7;23389:20;23407:1;23389:20;:::i;:::-;23384:25;;23423:20;23441:1;23423:20;:::i;:::-;23418:25;;23611:1;23543:66;23539:74;23536:1;23533:81;23528:1;23521:9;23514:17;23510:105;23507:2;;;23618:18;;:::i;:::-;23507:2;23666:1;23663;23659:9;23648:20;;23374:300;;;;:::o;23680:191::-;23720:4;23740:20;23758:1;23740:20;:::i;:::-;23735:25;;23774:20;23792:1;23774:20;:::i;:::-;23769:25;;23813:1;23810;23807:8;23804:2;;;23818:18;;:::i;:::-;23804:2;23863:1;23860;23856:9;23848:17;;23725:146;;;;:::o;23877:96::-;23914:7;23943:24;23961:5;23943:24;:::i;:::-;23932:35;;23922:51;;;:::o;23979:90::-;24013:7;24056:5;24049:13;24042:21;24031:32;;24021:48;;;:::o;24075:77::-;24112:7;24141:5;24130:16;;24120:32;;;:::o;24158:89::-;24194:7;24234:6;24227:5;24223:18;24212:29;;24202:45;;;:::o;24253:126::-;24290:7;24330:42;24323:5;24319:54;24308:65;;24298:81;;;:::o;24385:77::-;24422:7;24451:5;24440:16;;24430:32;;;:::o;24468:307::-;24536:1;24546:113;24560:6;24557:1;24554:13;24546:113;;;24645:1;24640:3;24636:11;24630:18;24626:1;24621:3;24617:11;24610:39;24582:2;24579:1;24575:10;24570:15;;24546:113;;;24677:6;24674:1;24671:13;24668:2;;;24757:1;24748:6;24743:3;24739:16;24732:27;24668:2;24517:258;;;;:::o;24781:79::-;24820:7;24849:5;24838:16;;24828:32;;;:::o;24866:79::-;24905:7;24934:5;24923:16;;24913:32;;;:::o;24951:180::-;24999:77;24996:1;24989:88;25096:4;25093:1;25086:15;25120:4;25117:1;25110:15;25137:180;25185:77;25182:1;25175:88;25282:4;25279:1;25272:15;25306:4;25303:1;25296:15;25323:102;25364:6;25415:2;25411:7;25406:2;25399:5;25395:14;25391:28;25381:38;;25371:54;;;:::o;25431:153::-;25571:5;25567:1;25559:6;25555:14;25548:29;25537:47;:::o;25590:153::-;25730:5;25726:1;25718:6;25714:14;25707:29;25696:47;:::o;25749:153::-;25889:5;25885:1;25877:6;25873:14;25866:29;25855:47;:::o;25908:225::-;26048:34;26044:1;26036:6;26032:14;26025:58;26117:8;26112:2;26104:6;26100:15;26093:33;26014:119;:::o;26139:153::-;26279:5;26275:1;26267:6;26263:14;26256:29;26245:47;:::o;26298:230::-;26438:34;26434:1;26426:6;26422:14;26415:58;26507:13;26502:2;26494:6;26490:15;26483:38;26404:124;:::o;26534:173::-;26674:25;26670:1;26662:6;26658:14;26651:49;26640:67;:::o;26713:153::-;26853:5;26849:1;26841:6;26837:14;26830:29;26819:47;:::o;26872:172::-;27012:24;27008:1;27000:6;26996:14;26989:48;26978:66;:::o;27050:153::-;27190:5;27186:1;27178:6;27174:14;27167:29;27156:47;:::o;27209:153::-;27349:5;27345:1;27337:6;27333:14;27326:29;27315:47;:::o;27368:153::-;27508:5;27504:1;27496:6;27492:14;27485:29;27474:47;:::o;27527:168::-;27667:20;27663:1;27655:6;27651:14;27644:44;27633:62;:::o;27701:153::-;27841:5;27837:1;27829:6;27825:14;27818:29;27807:47;:::o;27860:182::-;28000:34;27996:1;27988:6;27984:14;27977:58;27966:76;:::o;28048:181::-;28188:33;28184:1;28176:6;28172:14;28165:57;28154:75;:::o;28235:180::-;28375:32;28371:1;28363:6;28359:14;28352:56;28341:74;:::o;28421:172::-;28561:24;28557:1;28549:6;28545:14;28538:48;28527:66;:::o;28599:122::-;28672:24;28690:5;28672:24;:::i;:::-;28665:5;28662:35;28652:2;;28711:1;28708;28701:12;28652:2;28642:79;:::o;28727:116::-;28797:21;28812:5;28797:21;:::i;:::-;28790:5;28787:32;28777:2;;28833:1;28830;28823:12;28777:2;28767:76;:::o;28849:122::-;28922:24;28940:5;28922:24;:::i;:::-;28915:5;28912:35;28902:2;;28961:1;28958;28951:12;28902:2;28892:79;:::o;28977:122::-;29050:24;29068:5;29050:24;:::i;:::-;29043:5;29040:35;29030:2;;29089:1;29086;29079:12;29030:2;29020:79;:::o
Swarm Source
ipfs://99ce557c9c0e173382e411498e09192f70f94a27ca76632a31f09695043e87b6
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.000789 | 449,650 | $354.85 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.