ETH Price: $3,582.36 (-0.99%)

Token

ERC-20: Etalon (ETA)
 

Overview

Max Total Supply

902,406,188,755.166304208 ETA

Holders

107

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: ETA 5
Balance
0.000006175 ETA

Value
$0.00
0x0428e4aeea9b0d64e4675da8d7d660ba779cf206
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ETALON

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-06
*/

/*
                                                                                           Etalon Token ERC20                                                                                           
                                                                                         https://etalontoken.org                                                                                        
                                                                                         https://t.me/etalontoken                                                                                       
                                                                                      https://twitter.com/Etalontoken                                                                                   

                                                                       *%##### *##%%%###   #%#     +%:      -*%##%#-    %%*    %*                                                                       
                                                                       #@.        -@+     =@-@=    +@-     +@=    +@+   @#@=   @#                                                                       
                                                                       #@.        -@+     @* *@    +@-    .@%      %@.  @+=@-  @#                                                                       
                                                                       #@####:    -@+    +@. .@*   +@-    -@*      #@:  @* *@. @#                                                                       
                                                                       #@.        -@+   .@%===%@:  +@-    .@%      %@.  @*  #% @#                                                                       
                                                                       #@.        -@+   #@::::-@#  +@-     *@-    -@*   @*   %#%#                                                                       
                                                                       #@#####.   -@+  -@+     +@- +@%####. =%%**%%=    @*   .@@#                                                                       
                                                                                                               ..                                                                                       
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                  .:-:                                                                                                  
                                                                                                .:::===:                                                                                                
                                                                                              .:::::=====:                                                                                              
                                                                                            .-----::===++++-                                                                                            
                                                                                          .--------:==+++++++-                                                                                          
                                                                                        :-=---------+++++++****-                                                                                        
                                                                                      :======-------++++++*******=                                                                                      
                                                                                    :==========-----++++*******####=                                                                                    
                                                                                  :=++===========---++*******########=                                                                                  
                                                                                :+++++++============********######%%%%%+.                                                                               
                                                                              .=++**#%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@%%%##*:                                                                              
                                                                                        ..:::--==++++++==--:::..                                                                                        
                                                                               ....:::---===+++***####****+++====----:::...                                                                             
                                                                              :**####%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=                                                                              
                                                                                -*###%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=                                                                                
                                                                                  -##%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@+                                                                                  
                                                                                    -#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@+                                                                                    
                                                                                      =%%@@@@@@@@@@@@@@@@@@@@@@@@+                                                                                      
                                                                                        =%@@@@@@@@@@@@@@@@@@@@@+.                                                                                       
                                                                                          --=++**#%%%%##*++==-.                                                                                         
                                                                                                                                                                                                        
                                                                                               .:...-::-.                                                                                               
                                                                                                :#@@@@%=                                                                                                
                                                                                                  -%%-                                                                                                  
                                                                                                                                                                                                        
                                                                                                                                                                                                        
*/




// File: contracts/FastSellLimit.sol

pragma solidity ^0.8.7;

abstract contract FastSellLimit {
    mapping(address => uint256) public canSellTimes; // when accounts can sell tokens

    function updateCanSellTime(
        address account,
        uint256 balance,
        uint256 onePercent
    ) internal {
        canSellTimes[account] =
            block.timestamp +
            getTimeInterval(balance, onePercent);
    }

    function checkCanSellTime(address account) internal view {
        require(block.timestamp >= canSellTimes[account], "fast sell limit");
    }

    function getTimeInterval(uint256 balance, uint256 onePercent)
        private
        pure
        returns (uint256)
    {
        if (balance >= onePercent) return 24 hours; // if more 1% of total then 24 hours
        return (24 hours * balance) / onePercent;
    }

    function getLapsedCanSellTime(address account)
        external
        view
        returns (uint256)
    {
        uint256 canSellTime = canSellTimes[account];
        if (block.timestamp >= canSellTime) return 0;
        return canSellTime - block.timestamp;
    }
}

// File: contracts/Ownable.sol

pragma solidity ^0.8.7;

abstract contract Ownable {
    address _owner;

    modifier onlyOwner() {
        require(msg.sender == _owner);
        _;
    }

    constructor() {
        _owner = msg.sender;
    }

    function transferOwnership(address newOwner) external onlyOwner {
        _owner = newOwner;
    }
}

// File: contracts/IUniswapV2Factory.sol

pragma solidity ^0.8.7;

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);
}

// File: contracts/IUniswapV2Router02.sol

pragma solidity ^0.8.7;

interface IUniswapV2Router02 {
    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

// File: contracts/IERC20.sol

pragma solidity ^0.8.7;

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
// File: contracts/ERC20.sol

pragma solidity ^0.8.7;


abstract contract ERC20 is IERC20 {
    uint256 internal _totalSupply = 1e21;
    string _name;
    string _symbol;
    uint8 constant _decimals = 9;
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 internal constant INFINITY_ALLOWANCE = 2**256 - 1;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() external view returns (string memory) {
        return _name;
    }

    function symbol() external view returns (string memory) {
        return _symbol;
    }

    function decimals() external pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) external virtual override view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount);
        unchecked {
            _balances[from] = senderBalance - amount;
        }
        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }

    function allowance(address owner, address spender)
        external
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        external
        override
        returns (bool)
    {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount);
        if (currentAllowance == INFINITY_ALLOWANCE) return true;
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        return true;
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0));

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount);
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }
}

// File: contracts/MaxWalletDynamic.sol

pragma solidity ^0.8.7;


abstract contract MaxWalletDynamic {
    uint256 startMaxWallet;
    uint256 startTime; // last increment time
    uint256 constant maxBuyIncrementMinutesTimer = 2; // increment maxbuy minutes
    uint256 constant maxBuyIncrementPercentil = 1; // increment maxbyu percentil 1000=100%
    uint256 constant maxIncrements = 9; // maximum time incrementations
    uint256 maxBuyIncrementValue; // value for increment maxBuy

    function startMaxWalletDynamic(uint256 totalSupply) internal {
        startTime = block.timestamp;
        startMaxWallet = totalSupply / 1000;
        maxBuyIncrementValue = (totalSupply * maxBuyIncrementPercentil) / 1000;
    }

    function checkMaxWallet(uint256 walletSize) internal view {
        require(walletSize <= getMaxWallet(), "max wallet limit");
    }

    function getMaxWallet() public view returns (uint256) {
        uint256 incrementCount = (block.timestamp - startTime) /
            (maxBuyIncrementMinutesTimer * 1 minutes);
        if (incrementCount >= maxIncrements) incrementCount = maxIncrements;
        return startMaxWallet + maxBuyIncrementValue * incrementCount;
    }
}

// File: contracts/RewardableErc20.sol

pragma solidity ^0.8.7;



abstract contract RewardableErc20 is ERC20, MaxWalletDynamic {
    uint256 public constant rewardIntervalDays = 7; // reward interval time
    uint256 public rewardInterval; // current reward interwal
    uint256 public rewardIntervalStartRewards; // current reward interwal start rewards
    uint256 public rewardIntervalLapsedRewards; // current reward interwal lapsed rewards
    uint256 public rewardedTotal; // total rewarded
    uint256 rewardIntervalStartTime; // time, when current reward interval starts
    mapping(address => uint256) _lastClaimedReward; // reward interwals by account claims
    uint256 startRewardsAccountsBalance; // all accounts balance on change reward interval

    function tryNextRewardInterval() public {
        if (rewardLapsedTime() > 0) return;
        _nextRewardInterval();
    }

    function _startRewardIntervals() internal {
        _nextRewardInterval();
    }

    function _nextRewardInterval() internal {
        rewardIntervalStartRewards = _balances[address(this)];
        rewardIntervalLapsedRewards = rewardIntervalStartRewards;
        rewardIntervalStartTime = block.timestamp;
        startRewardsAccountsBalance = getAccountsBalance();
        ++rewardInterval;
    }

    function getRewardForBalanceThisRewardInterval(uint256 balance)
        external
        view
        returns (uint256)
    {
        return
            _getRewardForBalance(
                balance,
                rewardIntervalStartRewards,
                startRewardsAccountsBalance
            );
    }

    function getRewardForBalanceTotal(uint256 balance)
        external
        view
        returns (uint256)
    {
        return
            _getRewardForBalance(
                balance,
                _balances[address(this)],
                getAccountsBalance()
            );
    }

    function _getRewardForBalance(
        uint256 balance,
        uint256 startRewardsCount,
        uint256 startBalanceTotal
    ) public view returns (uint256) {
        // if has no rewards on pool
        if (startBalanceTotal == 0) return 0;
        // get reward
        uint256 reward = (startRewardsCount * balance) /
            startBalanceTotal;
        // max wallet limitation
        uint256 maxWallet = getMaxWallet();
        if (balance + reward > maxWallet) reward = maxWallet - balance;
        // return reward
        return reward;
    }

    /// @dev current available reward for account
    function getRewardCount(address account) external view returns (uint256) {
        if (rewardLapsedTime() == 0)
            return _getRewardForBalance(
                _balances[account],
                _balances[address(this)],
                getAccountsBalance()
            );
        if (_lastClaimedReward[account] == rewardInterval) return 0;
        return
            _getRewardForBalance(
                _balances[account],
                rewardIntervalStartRewards,
                startRewardsAccountsBalance
            );
    }

    function canClaimReward(address account) external view returns (bool) {
        return rewardLapsedTime() == 0 || _canClaimReward(account);
    }

    function _canClaimReward(address account) internal view returns (bool) {
        return
            _lastClaimedReward[account] < rewardInterval && rewardInterval != 1;
    }

    function _tryClaimReward(address account) internal {
        tryNextRewardInterval();
        if (!_canClaimReward(account)) return;
        _claimReward(account);
    }

    function claimReward(address account) external {
        tryNextRewardInterval();
        require(_canClaimReward(account), "can not claim reward now");
        _claimReward(account);
    }

    function _claimReward(address account) private {
        _lastClaimedReward[account] = rewardInterval;
        uint256 reward = _getRewardForBalance(
            _balances[account],
            rewardIntervalStartRewards,
            startRewardsAccountsBalance
        );
        uint256 balance = _balances[account];

        if (reward > rewardIntervalLapsedRewards) return;
        _balances[address(this)] -= reward;
        rewardIntervalLapsedRewards -= reward;
        _balances[account] = balance + reward;
        rewardedTotal += reward;
        emit Transfer(address(this), account, reward);
    }

    function rewardLapsedTime() public view returns (uint256) {
        uint256 nextIntervalTime = rewardIntervalStartTime +
            rewardIntervalDays *
            1 days;
        if (block.timestamp >= nextIntervalTime) return 0;
        return nextIntervalTime - block.timestamp;
    }

    function getAccountsBalance() public view virtual returns (uint256);
}

// File: contracts/TradableErc20.sol

pragma solidity ^0.8.7;






abstract contract TradableErc20 is RewardableErc20, FastSellLimit, Ownable {
    IUniswapV2Router02 internal constant _uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public uniswapV2Pair;
    bool public tradingEnable = false;
    mapping(address => bool) _isExcludedFromFee;
    address public constant BURN_ADDRESS =
        0x000000000000000000000000000000000000dEaD;

    constructor(string memory name_, string memory symbol_)
        ERC20(name_, symbol_)
    {
        _isExcludedFromFee[address(0)] = true;
        _isExcludedFromFee[BURN_ADDRESS] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[msg.sender] = true;
    }

    receive() external payable {}

    function makeLiquidity() public onlyOwner {
        require(uniswapV2Pair == address(0));
        _startRewardIntervals();
        address pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
            address(this),
            _uniswapV2Router.WETH()
        );
        uint256 initialLiquidity = getSupplyForMakeLiquidity();
        _balances[address(this)] = initialLiquidity;
        emit Transfer(address(0), address(this), initialLiquidity);
        _allowances[address(this)][
            address(_uniswapV2Router)
        ] = INFINITY_ALLOWANCE;
        _isExcludedFromFee[pair] = true;
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            initialLiquidity,
            0,
            0,
            msg.sender,
            block.timestamp
        );

        uniswapV2Pair = pair;
        startMaxWalletDynamic(initialLiquidity);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        // claim rewards
        if (from != uniswapV2Pair && !_isExcludedFromFee[from])
            _tryClaimReward(from);
        if (to != uniswapV2Pair && !_isExcludedFromFee[to]) _tryClaimReward(to);

        require(_balances[from] >= amount, "not enough token for transfer");
        require(to != address(0), "incorrect address");

        // buy
        if (from == uniswapV2Pair && !_isExcludedFromFee[to]) {
            require(tradingEnable, "trading disabled");
            // get taxes
            amount = _getFeeBuy(from, to, amount);
            // check max wallet
            checkMaxWallet(_balances[to] + amount);
        }
        // sell
        else if (
            uniswapV2Pair != address(0) &&
            to == uniswapV2Pair &&
            !_isExcludedFromFee[from]
        ) {
            require(tradingEnable, "trading disabled");
            // can sell timer
            checkCanSellTime(from);
            updateCanSellTime(from, _balances[from], _totalSupply / 100);
            // fee
            amount = _getFeeSell(from, amount);
        }
        // transfer from wallet to wallet
        else {
            if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                // can sell timer
                checkCanSellTime(from);
                updateCanSellTime(from, _balances[from], _totalSupply / 100);
                // get taxes
                amount = _getFeeTransfer(from, amount);
                // check max wallet
                checkMaxWallet(_balances[to] + amount);
            }
        }

        // transfer
        super._transfer(from, to, amount);
        if (to == address(BURN_ADDRESS)) _totalSupply -= amount;
    }

    function getBFee(uint256 amount) public view returns (uint256) {
        uint256 onePercent = _totalSupply / 100;
        if (amount >= onePercent) return amount / 5; // if more 1% of total then fee 20%
        return (amount * amount) / (5 * onePercent);
    }

    function getCFee(uint256 walletSize, uint256 amount)
        public
        view
        returns (uint256)
    {
        uint256 onePercent = _totalSupply / 100;
        if (walletSize >= onePercent) return amount / 10; // if more 1% of liquidity then fee 10%
        return (amount * walletSize) / (10 * onePercent);
    }

    function getIFee(uint256 amount)
        public
        view
        returns (uint256)
    {
        uint256 count = (_balances[uniswapV2Pair]) / 12; // 8.33% i.e. 30% fee is for 5% liquidity
        if (amount >= count) return amount / 2; // if more 8.33% of liquidity then fee 50%
        return (amount * amount) / (2 * count);
    }

    function getFeeBuy(address account, uint256 amount)
        public
        view
        returns (uint256)
    {
        uint256 a = amount / 100;
        uint256 b = getBFee(amount);
        uint256 c = getCFee(_balances[account] + amount, amount);
        return a + b + c;
    }

    function getFeeSell(address account, uint256 amount)
        public
        view
        returns (uint256)
    {
        uint256 c = getCFee(_balances[account], amount);
        uint256 i = getIFee(amount);
        return c + i;
    }

    function getFeeTransfer(address account, uint256 amount)
        public
        view
        returns (uint256)
    {
        return getCFee(_balances[account] + amount, amount);
    }

    function _getFeeBuy(address pair, address to, uint256 amount)
        private
        returns (uint256)
    {
        return _arrangeFee(pair, amount, getFeeBuy(to, amount));
    }

    function _getFeeSell(address from, uint256 amount)
        private
        returns (uint256)
    {
        return _arrangeFee(from, amount, getFeeSell(from, amount));
    }

    function _getFeeTransfer(address from, uint256 amount)
        private
        returns (uint256)
    {
        return _arrangeFee(from, amount, getFeeTransfer(from, amount));
    }

    function _arrangeFee(
        address from,
        uint256 amount,
        uint256 fee
    ) private returns (uint256) {
        uint256 reward = fee / 2;
        uint256 burn = fee - reward;
        amount -= fee;
        _balances[from] -= fee;
        _balances[address(this)] += reward;
        _balances[BURN_ADDRESS] += burn;
        _totalSupply -= burn;
        emit Transfer(from, address(this), reward);
        emit Transfer(from, BURN_ADDRESS, burn);
        return amount;
    }

    function setExcludeFromFee(address[] memory accounts, bool value)
        external
        onlyOwner
    {
        for (uint256 i = 0; i < accounts.length; ++i) {
            _isExcludedFromFee[accounts[i]] = value;
        }
    }

    function setTradingEnable(bool value) external onlyOwner {
        tradingEnable = value;
    }

    function getSupplyForMakeLiquidity() internal virtual returns (uint256);
}

// File: contracts/ETALON.sol

pragma solidity ^0.8.7;


contract ETALON is TradableErc20 {
    constructor() TradableErc20("Etalon", "ETA") {}

    function getSupplyForMakeLiquidity()
        internal
        view
        override
        returns (uint256)
    {
        return _totalSupply;
    }

    function getAccountsBalance() public view override returns (uint256) {
        return
            _totalSupply - _balances[uniswapV2Pair] - _balances[address(this)];
    }

    function balanceOf(address account)
        external
        view
        override
        returns (uint256)
    {
        if (_isExcludedFromFee[account] || !this.canClaimReward(account))
            return _balances[account];
        return _balances[account] + this.getRewardCount(account);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BURN_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"startRewardsCount","type":"uint256"},{"internalType":"uint256","name":"startBalanceTotal","type":"uint256"}],"name":"_getRewardForBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"canClaimReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"canSellTimes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getAccountsBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getBFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"walletSize","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getCFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getFeeTransfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getIFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getLapsedCanSellTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getRewardCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"name":"getRewardForBalanceThisRewardInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"name":"getRewardForBalanceTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"makeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardIntervalDays","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardIntervalLapsedRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardIntervalStartRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardLapsedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardedTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setTradingEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tryNextRewardInterval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000556011805460ff60a01b191690553480156200002b57600080fd5b50604080518082018252600681526522ba30b637b760d11b60208083019182528351808501909452600384526245544160e81b90840152815191929183918391620000799160019162000131565b5080516200008f90600290602084019062000131565b5050601080546001600160a01b0319163390811790915560126020527f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b805460ff1990811660019081179092557f1120e10407cab1193d7c5139d9aae5536deb3d83e855f25f8e42f811c01f56f78054821683179055306000908152604080822080548416851790559381529290922080549092161790555062000214915050565b8280546200013f90620001d7565b90600052602060002090601f016020900481019282620001635760008555620001ae565b82601f106200017e57805160ff1916838001178555620001ae565b82800160010185558215620001ae579182015b82811115620001ae57825182559160200191906001019062000191565b50620001bc929150620001c0565b5090565b5b80821115620001bc5760008155600101620001c1565b600181811c90821680620001ec57607f821691505b602082108114156200020e57634e487b7160e01b600052602260045260246000fd5b50919050565b611fde80620002246000396000f3fe6080604052600436106102345760003560e01c80638295a3c71161012e578063d19a4ed7116100ab578063e70b5db41161006f578063e70b5db414610685578063f2fde38b1461069a578063f7dcc6c4146106ba578063f95fa9cf146106cf578063fccc2813146106ef57600080fd5b8063d19a4ed7146105bf578063d1faf5c8146105df578063d279c191146105ff578063d929ae5e1461061f578063dd62ed3e1461063f57600080fd5b8063b203919e116100f2578063b203919e14610549578063b60838fd1461055e578063be861ee614610574578063bec4de3f14610594578063c8d1349c146105aa57600080fd5b80638295a3c7146104c957806395d89b41146104de5780639fffeefb146104f3578063a1a7797114610509578063a9059cbb1461052957600080fd5b806323b872dd116101bc57806349bd5a5e1161018057806349bd5a5e14610402578063555eeca81461043a5780636c90b57f1461046757806370a08231146104895780637439c236146104a957600080fd5b806323b872dd14610370578063313ce56714610390578063330932eb146103ac5780633afb2b45146103cc5780633b863082146103e257600080fd5b80630fa604e4116102035780630fa604e4146102e557806314a343b1146102fa5780631693e8d41461031a57806318160ddd1461033b5780631a7951971461035057600080fd5b8063046335d01461024057806305e605671461027557806306fdde03146102a3578063095ea7b3146102c557600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061026061025b366004611b62565b610705565b60405190151581526020015b60405180910390f35b34801561028157600080fd5b50610295610290366004611d5a565b610725565b60405190815260200161026c565b3480156102af57600080fd5b506102b8610788565b60405161026c9190611e08565b3480156102d157600080fd5b506102606102e0366004611c16565b61081a565b3480156102f157600080fd5b50610295610830565b34801561030657600080fd5b50610295610315366004611dae565b610885565b34801561032657600080fd5b5060115461026090600160a01b900460ff1681565b34801561034757600080fd5b50600054610295565b34801561035c57600080fd5b5061029561036b366004611c16565b6108e0565b34801561037c57600080fd5b5061026061038b366004611bd5565b610927565b34801561039c57600080fd5b506040516009815260200161026c565b3480156103b857600080fd5b506102956103c7366004611c16565b610991565b3480156103d857600080fd5b5061029560095481565b3480156103ee57600080fd5b506102956103fd366004611d5a565b6109bf565b34801561040e57600080fd5b50601154610422906001600160a01b031681565b6040516001600160a01b03909116815260200161026c565b34801561044657600080fd5b50610295610455366004611b62565b600f6020526000908152604090205481565b34801561047357600080fd5b50610487610482366004611c42565b6109dd565b005b34801561049557600080fd5b506102956104a4366004611b62565b610a5e565b3480156104b557600080fd5b506104876104c4366004611d20565b610bb3565b3480156104d557600080fd5b50610487610be8565b3480156104ea57600080fd5b506102b8610c04565b3480156104ff57600080fd5b50610295600a5481565b34801561051557600080fd5b50610295610524366004611b62565b610c13565b34801561053557600080fd5b50610260610544366004611c16565b610ca2565b34801561055557600080fd5b50610487610caf565b34801561056a57600080fd5b50610295600b5481565b34801561058057600080fd5b5061029561058f366004611d8c565b610fda565b3480156105a057600080fd5b5061029560085481565b3480156105b657600080fd5b50610295600781565b3480156105cb57600080fd5b506102956105da366004611d5a565b61102f565b3480156105eb57600080fd5b506102956105fa366004611d5a565b611040565b34801561060b57600080fd5b5061048761061a366004611b62565b611071565b34801561062b57600080fd5b5061029561063a366004611b62565b6110df565b34801561064b57600080fd5b5061029561065a366004611b9c565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561069157600080fd5b50610295611112565b3480156106a657600080fd5b506104876106b5366004611b62565b611150565b3480156106c657600080fd5b50610295611189565b3480156106db57600080fd5b506102956106ea366004611c16565b6111c2565b3480156106fb57600080fd5b5061042261dead81565b600061070f611189565b158061071f575061071f82611230565b92915050565b6011546001600160a01b0316600090815260036020526040812054819061074e90600c90611e75565b905080831061076957610762600284611e75565b9392505050565b610774816002611e97565b61077e8480611e97565b6107629190611e75565b60606001805461079790611ecd565b80601f01602080910402602001604051908101604052809291908181526020018280546107c390611ecd565b80156108105780601f106107e557610100808354040283529160200191610810565b820191906000526020600020905b8154815290600101906020018083116107f357829003601f168201915b5050505050905090565b6000610827338484611263565b50600192915050565b60008061083f6002603c611e97565b60065461084c9042611eb6565b6108569190611e75565b905060098110610864575060095b806007546108729190611e97565b60055461087f9190611e5d565b91505090565b60008161089457506000610762565b6000826108a18686611e97565b6108ab9190611e75565b905060006108b7610830565b9050806108c48388611e5d565b11156108d7576108d48682611eb6565b91505b50949350505050565b6001600160a01b03821660009081526003602052604081205481906109059084610fda565b9050600061091284610725565b905061091e8183611e5d565b95945050505050565b60006109348484846112c5565b6001600160a01b03841660009081526004602090815260408083203384529091529020548281101561096557600080fd5b600019811415610979576001915050610762565b6109868533858403611263565b506001949350505050565b6001600160a01b038216600090815260036020526040812054610762906109b9908490611e5d565b83610fda565b3060009081526003602052604081205461071f908390610315611112565b6010546001600160a01b031633146109f457600080fd5b60005b8251811015610a59578160126000858481518110610a1757610a17611f39565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055610a5281611f08565b90506109f7565b505050565b6001600160a01b03811660009081526012602052604081205460ff1680610af857506040516246335d60e41b81526001600160a01b0383166004820152309063046335d09060240160206040518083038186803b158015610abe57600080fd5b505afa158015610ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af69190611d3d565b155b15610b1957506001600160a01b031660009081526003602052604090205490565b60405163a1a7797160e01b81526001600160a01b0383166004820152309063a1a779719060240160206040518083038186803b158015610b5857600080fd5b505afa158015610b6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b909190611d73565b6001600160a01b03831660009081526003602052604090205461071f9190611e5d565b6010546001600160a01b03163314610bca57600080fd5b60118054911515600160a01b0260ff60a01b19909216919091179055565b6000610bf2611189565b1115610bfa57565b610c0261169c565b565b60606002805461079790611ecd565b6000610c1d611189565b610c4e576001600160a01b0382166000908152600360205260408082205430835291205461071f9190610315611112565b6008546001600160a01b0383166000908152600d60205260409020541415610c7857506000919050565b6001600160a01b038216600090815260036020526040902054600954600e5461071f929190610885565b60006108273384846112c5565b6010546001600160a01b03163314610cc657600080fd5b6011546001600160a01b031615610cdc57600080fd5b610ce4610bfa565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d3357600080fd5b505afa158015610d47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6b9190611b7f565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dc757600080fd5b505afa158015610ddb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dff9190611b7f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610e4757600080fd5b505af1158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7f9190611b7f565b90506000610e8c60005490565b30600081815260036020526040808220849055519293509091600080516020611f8983398151915290610ec29085815260200190565b60405180910390a3306000818152600460208181526040808420737a250d5630b4cf539739df2c5dacb4c659f2488d80865290835281852060001990556001600160a01b03881685526012909252808420805460ff191660011790555163f305d71960e01b815291820193909352602481018490526044810182905260648101919091523360848201524260a482015263f305d71990479060c4016060604051808303818588803b158015610f7657600080fd5b505af1158015610f8a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610faf9190611dda565b5050601180546001600160a01b0319166001600160a01b03851617905550610fd6816116d9565b5050565b6000806064600054610fec9190611e75565b905080841061100857611000600a84611e75565b91505061071f565b61101381600a611e97565b61101d8585611e97565b6110279190611e75565b949350505050565b600061071f82600954600e54610885565b60008060646000546110529190611e75565b905080831061106657610762600584611e75565b610774816005611e97565b611079610be8565b61108281611230565b6110d35760405162461bcd60e51b815260206004820152601860248201527f63616e206e6f7420636c61696d20726577617264206e6f77000000000000000060448201526064015b60405180910390fd5b6110dc8161170a565b50565b6001600160a01b0381166000908152600f60205260408120544281116111085750600092915050565b6107624282611eb6565b30600090815260036020526040808220546011546001600160a01b031683529082205482546111419190611eb6565b61114b9190611eb6565b905090565b6010546001600160a01b0316331461116757600080fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b60008061119a600762015180611e97565b600c546111a79190611e5d565b90508042106111b857600091505090565b61087f4282611eb6565b6000806111d0606484611e75565b905060006111dd84611040565b6001600160a01b0386166000908152600360205260408120549192509061120f90611209908790611e5d565b86610fda565b90508061121c8385611e5d565b6112269190611e5d565b9695505050505050565b6008546001600160a01b0382166000908152600d6020526040812054909111801561071f57506008546001141592915050565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6011546001600160a01b038481169116148015906112fc57506001600160a01b03831660009081526012602052604090205460ff16155b1561130a5761130a83611817565b6011546001600160a01b0383811691161480159061134157506001600160a01b03821660009081526012602052604090205460ff16155b1561134f5761134f82611817565b6001600160a01b0383166000908152600360205260409020548111156113b75760405162461bcd60e51b815260206004820152601d60248201527f6e6f7420656e6f75676820746f6b656e20666f72207472616e7366657200000060448201526064016110ca565b6001600160a01b0382166114015760405162461bcd60e51b8152602060048201526011602482015270696e636f7272656374206164647265737360781b60448201526064016110ca565b6011546001600160a01b03848116911614801561143757506001600160a01b03821660009081526012602052604090205460ff16155b156114c857601154600160a01b900460ff166114885760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b60448201526064016110ca565b61149383838361182f565b6001600160a01b0383166000908152600360205260409020549091506114c3906114be908390611e5d565b611845565b611663565b6011546001600160a01b0316158015906114ef57506011546001600160a01b038381169116145b801561151457506001600160a01b03831660009081526012602052604090205460ff16155b156115b157601154600160a01b900460ff166115655760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b60448201526064016110ca565b61156e8361188f565b6001600160a01b03831660009081526003602052604081205490546115a091859161159b90606490611e75565b6118e9565b6115aa838261191e565b9050611663565b6001600160a01b03831660009081526012602052604090205460ff161580156115f357506001600160a01b03821660009081526012602052604090205460ff16155b15611663576116018361188f565b6001600160a01b038316600090815260036020526040812054905461162e91859161159b90606490611e75565b611638838261192f565b6001600160a01b038316600090815260036020526040902054909150611663906114be908390611e5d565b61166e838383611940565b6001600160a01b03821661dead1415610a5957806000808282546116929190611eb6565b9091555050505050565b306000908152600360205260409020546009819055600a5542600c556116c0611112565b600e55600880546000906116d390611f08565b90915550565b426006556116e96103e882611e75565b6005556103e86116fa600183611e97565b6117049190611e75565b60075550565b6008546001600160a01b0382166000908152600d60209081526040808320939093556003905290812054600954600e54611745929190610885565b6001600160a01b038316600090815260036020526040902054600a549192509082111561177157505050565b3060009081526003602052604081208054849290611790908490611eb6565b9250508190555081600a60008282546117a99190611eb6565b909155506117b990508282611e5d565b6001600160a01b038416600090815260036020526040812091909155600b80548492906117e7908490611e5d565b90915550506040518281526001600160a01b038416903090600080516020611f89833981519152906020016112b8565b61181f610be8565b61182881611230565b6110d35750565b6000611027848361184086866111c2565b6119e5565b61184d610830565b8111156110dc5760405162461bcd60e51b815260206004820152601060248201526f1b585e081dd85b1b195d081b1a5b5a5d60821b60448201526064016110ca565b6001600160a01b0381166000908152600f60205260409020544210156110dc5760405162461bcd60e51b815260206004820152600f60248201526e19985cdd081cd95b1b081b1a5b5a5d608a1b60448201526064016110ca565b6118f38282611b26565b6118fd9042611e5d565b6001600160a01b039093166000908152600f60205260409020929092555050565b6000610762838361184086866108e0565b600061076283836118408686610991565b6001600160a01b0383166000908152600360205260409020548181101561196657600080fd5b6001600160a01b0380851660009081526003602052604080822085850390559185168152908120805484929061199d908490611e5d565b92505081905550826001600160a01b0316846001600160a01b0316600080516020611f89833981519152846040516119d791815260200190565b60405180910390a350505050565b6000806119f3600284611e75565b90506000611a018285611eb6565b9050611a0d8486611eb6565b6001600160a01b038716600090815260036020526040812080549297508692909190611a3a908490611eb6565b90915550503060009081526003602052604081208054849290611a5e908490611e5d565b909155505061dead600090815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054839290611aa1908490611e5d565b9250508190555080600080828254611ab99190611eb6565b909155505060405182815230906001600160a01b03881690600080516020611f898339815191529060200160405180910390a360405181815261dead906001600160a01b03881690600080516020611f898339815191529060200160405180910390a35092949350505050565b6000818310611b3957506201518061071f565b8161077e8462015180611e97565b8035611b5281611f65565b919050565b8035611b5281611f7a565b600060208284031215611b7457600080fd5b813561076281611f65565b600060208284031215611b9157600080fd5b815161076281611f65565b60008060408385031215611baf57600080fd5b8235611bba81611f65565b91506020830135611bca81611f65565b809150509250929050565b600080600060608486031215611bea57600080fd5b8335611bf581611f65565b92506020840135611c0581611f65565b929592945050506040919091013590565b60008060408385031215611c2957600080fd5b8235611c3481611f65565b946020939093013593505050565b60008060408385031215611c5557600080fd5b823567ffffffffffffffff80821115611c6d57600080fd5b818501915085601f830112611c8157600080fd5b8135602082821115611c9557611c95611f4f565b8160051b604051601f19603f83011681018181108682111715611cba57611cba611f4f565b604052838152828101945085830182870184018b1015611cd957600080fd5b600096505b84871015611d0357611cef81611b47565b865260019690960195948301948301611cde565b509650611d139050878201611b57565b9450505050509250929050565b600060208284031215611d3257600080fd5b813561076281611f7a565b600060208284031215611d4f57600080fd5b815161076281611f7a565b600060208284031215611d6c57600080fd5b5035919050565b600060208284031215611d8557600080fd5b5051919050565b60008060408385031215611d9f57600080fd5b50508035926020909101359150565b600080600060608486031215611dc357600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611def57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611e3557858101830151858201604001528201611e19565b81811115611e47576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115611e7057611e70611f23565b500190565b600082611e9257634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611eb157611eb1611f23565b500290565b600082821015611ec857611ec8611f23565b500390565b600181811c90821680611ee157607f821691505b60208210811415611f0257634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611f1c57611f1c611f23565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146110dc57600080fd5b80151581146110dc57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212202b078296eb8cac9d2c9807c96260d96f0c76c4e5aaa1e236a70cf3401054c86564736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102345760003560e01c80638295a3c71161012e578063d19a4ed7116100ab578063e70b5db41161006f578063e70b5db414610685578063f2fde38b1461069a578063f7dcc6c4146106ba578063f95fa9cf146106cf578063fccc2813146106ef57600080fd5b8063d19a4ed7146105bf578063d1faf5c8146105df578063d279c191146105ff578063d929ae5e1461061f578063dd62ed3e1461063f57600080fd5b8063b203919e116100f2578063b203919e14610549578063b60838fd1461055e578063be861ee614610574578063bec4de3f14610594578063c8d1349c146105aa57600080fd5b80638295a3c7146104c957806395d89b41146104de5780639fffeefb146104f3578063a1a7797114610509578063a9059cbb1461052957600080fd5b806323b872dd116101bc57806349bd5a5e1161018057806349bd5a5e14610402578063555eeca81461043a5780636c90b57f1461046757806370a08231146104895780637439c236146104a957600080fd5b806323b872dd14610370578063313ce56714610390578063330932eb146103ac5780633afb2b45146103cc5780633b863082146103e257600080fd5b80630fa604e4116102035780630fa604e4146102e557806314a343b1146102fa5780631693e8d41461031a57806318160ddd1461033b5780631a7951971461035057600080fd5b8063046335d01461024057806305e605671461027557806306fdde03146102a3578063095ea7b3146102c557600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061026061025b366004611b62565b610705565b60405190151581526020015b60405180910390f35b34801561028157600080fd5b50610295610290366004611d5a565b610725565b60405190815260200161026c565b3480156102af57600080fd5b506102b8610788565b60405161026c9190611e08565b3480156102d157600080fd5b506102606102e0366004611c16565b61081a565b3480156102f157600080fd5b50610295610830565b34801561030657600080fd5b50610295610315366004611dae565b610885565b34801561032657600080fd5b5060115461026090600160a01b900460ff1681565b34801561034757600080fd5b50600054610295565b34801561035c57600080fd5b5061029561036b366004611c16565b6108e0565b34801561037c57600080fd5b5061026061038b366004611bd5565b610927565b34801561039c57600080fd5b506040516009815260200161026c565b3480156103b857600080fd5b506102956103c7366004611c16565b610991565b3480156103d857600080fd5b5061029560095481565b3480156103ee57600080fd5b506102956103fd366004611d5a565b6109bf565b34801561040e57600080fd5b50601154610422906001600160a01b031681565b6040516001600160a01b03909116815260200161026c565b34801561044657600080fd5b50610295610455366004611b62565b600f6020526000908152604090205481565b34801561047357600080fd5b50610487610482366004611c42565b6109dd565b005b34801561049557600080fd5b506102956104a4366004611b62565b610a5e565b3480156104b557600080fd5b506104876104c4366004611d20565b610bb3565b3480156104d557600080fd5b50610487610be8565b3480156104ea57600080fd5b506102b8610c04565b3480156104ff57600080fd5b50610295600a5481565b34801561051557600080fd5b50610295610524366004611b62565b610c13565b34801561053557600080fd5b50610260610544366004611c16565b610ca2565b34801561055557600080fd5b50610487610caf565b34801561056a57600080fd5b50610295600b5481565b34801561058057600080fd5b5061029561058f366004611d8c565b610fda565b3480156105a057600080fd5b5061029560085481565b3480156105b657600080fd5b50610295600781565b3480156105cb57600080fd5b506102956105da366004611d5a565b61102f565b3480156105eb57600080fd5b506102956105fa366004611d5a565b611040565b34801561060b57600080fd5b5061048761061a366004611b62565b611071565b34801561062b57600080fd5b5061029561063a366004611b62565b6110df565b34801561064b57600080fd5b5061029561065a366004611b9c565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561069157600080fd5b50610295611112565b3480156106a657600080fd5b506104876106b5366004611b62565b611150565b3480156106c657600080fd5b50610295611189565b3480156106db57600080fd5b506102956106ea366004611c16565b6111c2565b3480156106fb57600080fd5b5061042261dead81565b600061070f611189565b158061071f575061071f82611230565b92915050565b6011546001600160a01b0316600090815260036020526040812054819061074e90600c90611e75565b905080831061076957610762600284611e75565b9392505050565b610774816002611e97565b61077e8480611e97565b6107629190611e75565b60606001805461079790611ecd565b80601f01602080910402602001604051908101604052809291908181526020018280546107c390611ecd565b80156108105780601f106107e557610100808354040283529160200191610810565b820191906000526020600020905b8154815290600101906020018083116107f357829003601f168201915b5050505050905090565b6000610827338484611263565b50600192915050565b60008061083f6002603c611e97565b60065461084c9042611eb6565b6108569190611e75565b905060098110610864575060095b806007546108729190611e97565b60055461087f9190611e5d565b91505090565b60008161089457506000610762565b6000826108a18686611e97565b6108ab9190611e75565b905060006108b7610830565b9050806108c48388611e5d565b11156108d7576108d48682611eb6565b91505b50949350505050565b6001600160a01b03821660009081526003602052604081205481906109059084610fda565b9050600061091284610725565b905061091e8183611e5d565b95945050505050565b60006109348484846112c5565b6001600160a01b03841660009081526004602090815260408083203384529091529020548281101561096557600080fd5b600019811415610979576001915050610762565b6109868533858403611263565b506001949350505050565b6001600160a01b038216600090815260036020526040812054610762906109b9908490611e5d565b83610fda565b3060009081526003602052604081205461071f908390610315611112565b6010546001600160a01b031633146109f457600080fd5b60005b8251811015610a59578160126000858481518110610a1757610a17611f39565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055610a5281611f08565b90506109f7565b505050565b6001600160a01b03811660009081526012602052604081205460ff1680610af857506040516246335d60e41b81526001600160a01b0383166004820152309063046335d09060240160206040518083038186803b158015610abe57600080fd5b505afa158015610ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af69190611d3d565b155b15610b1957506001600160a01b031660009081526003602052604090205490565b60405163a1a7797160e01b81526001600160a01b0383166004820152309063a1a779719060240160206040518083038186803b158015610b5857600080fd5b505afa158015610b6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b909190611d73565b6001600160a01b03831660009081526003602052604090205461071f9190611e5d565b6010546001600160a01b03163314610bca57600080fd5b60118054911515600160a01b0260ff60a01b19909216919091179055565b6000610bf2611189565b1115610bfa57565b610c0261169c565b565b60606002805461079790611ecd565b6000610c1d611189565b610c4e576001600160a01b0382166000908152600360205260408082205430835291205461071f9190610315611112565b6008546001600160a01b0383166000908152600d60205260409020541415610c7857506000919050565b6001600160a01b038216600090815260036020526040902054600954600e5461071f929190610885565b60006108273384846112c5565b6010546001600160a01b03163314610cc657600080fd5b6011546001600160a01b031615610cdc57600080fd5b610ce4610bfa565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d3357600080fd5b505afa158015610d47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6b9190611b7f565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dc757600080fd5b505afa158015610ddb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dff9190611b7f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610e4757600080fd5b505af1158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7f9190611b7f565b90506000610e8c60005490565b30600081815260036020526040808220849055519293509091600080516020611f8983398151915290610ec29085815260200190565b60405180910390a3306000818152600460208181526040808420737a250d5630b4cf539739df2c5dacb4c659f2488d80865290835281852060001990556001600160a01b03881685526012909252808420805460ff191660011790555163f305d71960e01b815291820193909352602481018490526044810182905260648101919091523360848201524260a482015263f305d71990479060c4016060604051808303818588803b158015610f7657600080fd5b505af1158015610f8a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610faf9190611dda565b5050601180546001600160a01b0319166001600160a01b03851617905550610fd6816116d9565b5050565b6000806064600054610fec9190611e75565b905080841061100857611000600a84611e75565b91505061071f565b61101381600a611e97565b61101d8585611e97565b6110279190611e75565b949350505050565b600061071f82600954600e54610885565b60008060646000546110529190611e75565b905080831061106657610762600584611e75565b610774816005611e97565b611079610be8565b61108281611230565b6110d35760405162461bcd60e51b815260206004820152601860248201527f63616e206e6f7420636c61696d20726577617264206e6f77000000000000000060448201526064015b60405180910390fd5b6110dc8161170a565b50565b6001600160a01b0381166000908152600f60205260408120544281116111085750600092915050565b6107624282611eb6565b30600090815260036020526040808220546011546001600160a01b031683529082205482546111419190611eb6565b61114b9190611eb6565b905090565b6010546001600160a01b0316331461116757600080fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b60008061119a600762015180611e97565b600c546111a79190611e5d565b90508042106111b857600091505090565b61087f4282611eb6565b6000806111d0606484611e75565b905060006111dd84611040565b6001600160a01b0386166000908152600360205260408120549192509061120f90611209908790611e5d565b86610fda565b90508061121c8385611e5d565b6112269190611e5d565b9695505050505050565b6008546001600160a01b0382166000908152600d6020526040812054909111801561071f57506008546001141592915050565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6011546001600160a01b038481169116148015906112fc57506001600160a01b03831660009081526012602052604090205460ff16155b1561130a5761130a83611817565b6011546001600160a01b0383811691161480159061134157506001600160a01b03821660009081526012602052604090205460ff16155b1561134f5761134f82611817565b6001600160a01b0383166000908152600360205260409020548111156113b75760405162461bcd60e51b815260206004820152601d60248201527f6e6f7420656e6f75676820746f6b656e20666f72207472616e7366657200000060448201526064016110ca565b6001600160a01b0382166114015760405162461bcd60e51b8152602060048201526011602482015270696e636f7272656374206164647265737360781b60448201526064016110ca565b6011546001600160a01b03848116911614801561143757506001600160a01b03821660009081526012602052604090205460ff16155b156114c857601154600160a01b900460ff166114885760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b60448201526064016110ca565b61149383838361182f565b6001600160a01b0383166000908152600360205260409020549091506114c3906114be908390611e5d565b611845565b611663565b6011546001600160a01b0316158015906114ef57506011546001600160a01b038381169116145b801561151457506001600160a01b03831660009081526012602052604090205460ff16155b156115b157601154600160a01b900460ff166115655760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b60448201526064016110ca565b61156e8361188f565b6001600160a01b03831660009081526003602052604081205490546115a091859161159b90606490611e75565b6118e9565b6115aa838261191e565b9050611663565b6001600160a01b03831660009081526012602052604090205460ff161580156115f357506001600160a01b03821660009081526012602052604090205460ff16155b15611663576116018361188f565b6001600160a01b038316600090815260036020526040812054905461162e91859161159b90606490611e75565b611638838261192f565b6001600160a01b038316600090815260036020526040902054909150611663906114be908390611e5d565b61166e838383611940565b6001600160a01b03821661dead1415610a5957806000808282546116929190611eb6565b9091555050505050565b306000908152600360205260409020546009819055600a5542600c556116c0611112565b600e55600880546000906116d390611f08565b90915550565b426006556116e96103e882611e75565b6005556103e86116fa600183611e97565b6117049190611e75565b60075550565b6008546001600160a01b0382166000908152600d60209081526040808320939093556003905290812054600954600e54611745929190610885565b6001600160a01b038316600090815260036020526040902054600a549192509082111561177157505050565b3060009081526003602052604081208054849290611790908490611eb6565b9250508190555081600a60008282546117a99190611eb6565b909155506117b990508282611e5d565b6001600160a01b038416600090815260036020526040812091909155600b80548492906117e7908490611e5d565b90915550506040518281526001600160a01b038416903090600080516020611f89833981519152906020016112b8565b61181f610be8565b61182881611230565b6110d35750565b6000611027848361184086866111c2565b6119e5565b61184d610830565b8111156110dc5760405162461bcd60e51b815260206004820152601060248201526f1b585e081dd85b1b195d081b1a5b5a5d60821b60448201526064016110ca565b6001600160a01b0381166000908152600f60205260409020544210156110dc5760405162461bcd60e51b815260206004820152600f60248201526e19985cdd081cd95b1b081b1a5b5a5d608a1b60448201526064016110ca565b6118f38282611b26565b6118fd9042611e5d565b6001600160a01b039093166000908152600f60205260409020929092555050565b6000610762838361184086866108e0565b600061076283836118408686610991565b6001600160a01b0383166000908152600360205260409020548181101561196657600080fd5b6001600160a01b0380851660009081526003602052604080822085850390559185168152908120805484929061199d908490611e5d565b92505081905550826001600160a01b0316846001600160a01b0316600080516020611f89833981519152846040516119d791815260200190565b60405180910390a350505050565b6000806119f3600284611e75565b90506000611a018285611eb6565b9050611a0d8486611eb6565b6001600160a01b038716600090815260036020526040812080549297508692909190611a3a908490611eb6565b90915550503060009081526003602052604081208054849290611a5e908490611e5d565b909155505061dead600090815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054839290611aa1908490611e5d565b9250508190555080600080828254611ab99190611eb6565b909155505060405182815230906001600160a01b03881690600080516020611f898339815191529060200160405180910390a360405181815261dead906001600160a01b03881690600080516020611f898339815191529060200160405180910390a35092949350505050565b6000818310611b3957506201518061071f565b8161077e8462015180611e97565b8035611b5281611f65565b919050565b8035611b5281611f7a565b600060208284031215611b7457600080fd5b813561076281611f65565b600060208284031215611b9157600080fd5b815161076281611f65565b60008060408385031215611baf57600080fd5b8235611bba81611f65565b91506020830135611bca81611f65565b809150509250929050565b600080600060608486031215611bea57600080fd5b8335611bf581611f65565b92506020840135611c0581611f65565b929592945050506040919091013590565b60008060408385031215611c2957600080fd5b8235611c3481611f65565b946020939093013593505050565b60008060408385031215611c5557600080fd5b823567ffffffffffffffff80821115611c6d57600080fd5b818501915085601f830112611c8157600080fd5b8135602082821115611c9557611c95611f4f565b8160051b604051601f19603f83011681018181108682111715611cba57611cba611f4f565b604052838152828101945085830182870184018b1015611cd957600080fd5b600096505b84871015611d0357611cef81611b47565b865260019690960195948301948301611cde565b509650611d139050878201611b57565b9450505050509250929050565b600060208284031215611d3257600080fd5b813561076281611f7a565b600060208284031215611d4f57600080fd5b815161076281611f7a565b600060208284031215611d6c57600080fd5b5035919050565b600060208284031215611d8557600080fd5b5051919050565b60008060408385031215611d9f57600080fd5b50508035926020909101359150565b600080600060608486031215611dc357600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611def57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611e3557858101830151858201604001528201611e19565b81811115611e47576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115611e7057611e70611f23565b500190565b600082611e9257634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611eb157611eb1611f23565b500290565b600082821015611ec857611ec8611f23565b500390565b600181811c90821680611ee157607f821691505b60208210811415611f0257634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611f1c57611f1c611f23565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146110dc57600080fd5b80151581146110dc57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212202b078296eb8cac9d2c9807c96260d96f0c76c4e5aaa1e236a70cf3401054c86564736f6c63430008070033

Deployed Bytecode Sourcemap

28292:753:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19600:147;;;;;;;;;;-1:-1:-1;19600:147:0;;;;;:::i;:::-;;:::i;:::-;;;6224:14:1;;6217:22;6199:41;;6187:2;6172:18;19600:147:0;;;;;;;;25618:344;;;;;;;;;;-1:-1:-1;25618:344:0;;;;;:::i;:::-;;:::i;:::-;;;9090:25:1;;;9078:2;9063:18;25618:344:0;8944:177:1;12595:85:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13866:193::-;;;;;;;;;;-1:-1:-1;13866:193:0;;;;;:::i;:::-;;:::i;16096:334::-;;;;;;;;;;;;;:::i;18401:573::-;;;;;;;;;;-1:-1:-1;18401:573:0;;;;;:::i;:::-;;:::i;21660:33::-;;;;;;;;;;-1:-1:-1;21660:33:0;;;;-1:-1:-1;;;21660:33:0;;;;;;12878:102;;;;;;;;;;-1:-1:-1;12933:7:0;12960:12;12878:102;;26267:242;;;;;;;;;;-1:-1:-1;26267:242:0;;;;;:::i;:::-;;:::i;14295:504::-;;;;;;;;;;-1:-1:-1;14295:504:0;;;;;:::i;:::-;;:::i;12785:85::-;;;;;;;;;;-1:-1:-1;12785:85:0;;12269:1;9268:36:1;;9256:2;9241:18;12785:85:0;9126:184:1;26517:189:0;;;;;;;;;;-1:-1:-1;26517:189:0;;;;;:::i;:::-;;:::i;16718:41::-;;;;;;;;;;;;;;;;18096:297;;;;;;;;;;-1:-1:-1;18096:297:0;;;;;:::i;:::-;;:::i;21625:28::-;;;;;;;;;;-1:-1:-1;21625:28:0;;;;-1:-1:-1;;;;;21625:28:0;;;;;;-1:-1:-1;;;;;5094:32:1;;;5076:51;;5064:2;5049:18;21625:28:0;4930:203:1;8204:47:0;;;;;;;;;;-1:-1:-1;8204:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;27800:238;;;;;;;;;;-1:-1:-1;27800:238:0;;;;;:::i;:::-;;:::i;:::-;;28734:308;;;;;;;;;;-1:-1:-1;28734:308:0;;;;;:::i;:::-;;:::i;28046:97::-;;;;;;;;;;-1:-1:-1;28046:97:0;;;;;:::i;:::-;;:::i;17219:125::-;;;;;;;;;;;;;:::i;12688:89::-;;;;;;;;;;;;;:::i;16807:42::-;;;;;;;;;;;;;;;;19033:559;;;;;;;;;;-1:-1:-1;19033:559:0;;;;;:::i;:::-;;:::i;13081:199::-;;;;;;;;;;-1:-1:-1;13081:199:0;;;;;:::i;:::-;;:::i;22191:942::-;;;;;;;;;;;;;:::i;16898:28::-;;;;;;;;;;;;;;;;25279:331;;;;;;;;;;-1:-1:-1;25279:331:0;;;;;:::i;:::-;;:::i;16655:29::-;;;;;;;;;;;;;;;;16578:46;;;;;;;;;;;;16623:1;16578:46;;17769:319;;;;;;;;;;-1:-1:-1;17769:319:0;;;;;:::i;:::-;;:::i;25006:265::-;;;;;;;;;;-1:-1:-1;25006:265:0;;;;;:::i;:::-;;:::i;20121:193::-;;;;;;;;;;-1:-1:-1;20121:193:0;;;;;:::i;:::-;;:::i;8982:275::-;;;;;;;;;;-1:-1:-1;8982:275:0;;;;;:::i;:::-;;:::i;13672:186::-;;;;;;;;;;-1:-1:-1;13672:186:0;;;;;:::i;:::-;-1:-1:-1;;;;;13823:18:0;;;13791:7;13823:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13672:186;28552:174;;;;;;;;;;;;;:::i;9530:100::-;;;;;;;;;;-1:-1:-1;9530:100:0;;;;;:::i;:::-;;:::i;20954:295::-;;;;;;;;;;;;;:::i;25970:289::-;;;;;;;;;;-1:-1:-1;25970:289:0;;;;;:::i;:::-;;:::i;21750:90::-;;;;;;;;;;;;21798:42;21750:90;;19600:147;19664:4;19688:18;:16;:18::i;:::-;:23;;:51;;;19715:24;19731:7;19715:15;:24::i;:::-;19681:58;19600:147;-1:-1:-1;;19600:147:0:o;25618:344::-;25751:13;;-1:-1:-1;;;;;25751:13:0;25699:7;25741:24;;;:9;:24;;;;;;25699:7;;25740:31;;25769:2;;25740:31;:::i;:::-;25724:47;;25838:5;25828:6;:15;25824:38;;25852:10;25861:1;25852:6;:10;:::i;:::-;25845:17;25618:344;-1:-1:-1;;;25618:344:0:o;25824:38::-;25944:9;25948:5;25944:1;:9;:::i;:::-;25924:15;25933:6;;25924:15;:::i;:::-;25923:31;;;;:::i;12595:85::-;12634:13;12667:5;12660:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12595:85;:::o;13866:193::-;13970:4;13992:37;14001:10;14013:7;14022:6;13992:8;:37::i;:::-;-1:-1:-1;14047:4:0;13866:193;;;;:::o;16096:334::-;16141:7;;16232:39;15444:1;16262:9;16232:39;:::i;:::-;16205:9;;16187:27;;:15;:27;:::i;:::-;16186:86;;;;:::i;:::-;16161:111;;15605:1;16287:14;:31;16283:67;;-1:-1:-1;15605:1:0;16283:67;16408:14;16385:20;;:37;;;;:::i;:::-;16368:14;;:54;;;;:::i;:::-;16361:61;;;16096:334;:::o;18401:573::-;18557:7;18619:22;18615:36;;-1:-1:-1;18650:1:0;18643:8;;18615:36;18685:14;18747:17;18703:27;18723:7;18703:17;:27;:::i;:::-;18702:62;;;;:::i;:::-;18685:79;;18809:17;18829:14;:12;:14::i;:::-;18809:34;-1:-1:-1;18809:34:0;18858:16;18868:6;18858:7;:16;:::i;:::-;:28;18854:62;;;18897:19;18909:7;18897:9;:19;:::i;:::-;18888:28;;18854:62;-1:-1:-1;18960:6:0;18401:573;-1:-1:-1;;;;18401:573:0:o;26267:242::-;-1:-1:-1;;;;;26413:18:0;;26368:7;26413:18;;;:9;:18;;;;;;26368:7;;26405:35;;26433:6;26405:7;:35::i;:::-;26393:47;;26451:9;26463:15;26471:6;26463:7;:15::i;:::-;26451:27;-1:-1:-1;26496:5:0;26451:27;26496:1;:5;:::i;:::-;26489:12;26267:242;-1:-1:-1;;;;;26267:242:0:o;14295:504::-;14429:4;14446:36;14456:6;14464:9;14475:6;14446:9;:36::i;:::-;-1:-1:-1;;;;;14522:19:0;;14495:24;14522:19;;;:11;:19;;;;;;;;14542:10;14522:31;;;;;;;;14572:26;;;;14564:35;;;;;;-1:-1:-1;;14614:16:0;:38;14610:55;;;14661:4;14654:11;;;;;14610:55;14701;14710:6;14718:10;14749:6;14730:16;:25;14701:8;:55::i;:::-;-1:-1:-1;14787:4:0;;14295:504;-1:-1:-1;;;;14295:504:0:o;26517:189::-;-1:-1:-1;;;;;26662:18:0;;26622:7;26662:18;;;:9;:18;;;;;;26654:44;;26662:27;;26683:6;;26662:27;:::i;:::-;26691:6;26654:7;:44::i;18096:297::-;18325:4;18197:7;18307:24;;;:9;:24;;;;;;18242:143;;18281:7;;18350:20;:18;:20::i;27800:238::-;9435:6;;-1:-1:-1;;;;;9435:6:0;9421:10;:20;9413:29;;;;;;27924:9:::1;27919:112;27943:8;:15;27939:1;:19;27919:112;;;28014:5;27980:18;:31;27999:8;28008:1;27999:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;27980:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;27980:31:0;:39;;-1:-1:-1;;27980:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27960:3:::1;::::0;::::1;:::i;:::-;;;27919:112;;;;27800:238:::0;;:::o;28734:308::-;-1:-1:-1;;;;;28867:27:0;;28838:7;28867:27;;;:18;:27;;;;;;;;;:60;;-1:-1:-1;28899:28:0;;-1:-1:-1;;;28899:28:0;;-1:-1:-1;;;;;5094:32:1;;28899:28:0;;;5076:51:1;28899:4:0;;:19;;5049:18:1;;28899:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28898:29;28867:60;28863:104;;;-1:-1:-1;;;;;;28949:18:0;;;;;:9;:18;;;;;;;28734:308::o;28863:104::-;29006:28;;-1:-1:-1;;;29006:28:0;;-1:-1:-1;;;;;5094:32:1;;29006:28:0;;;5076:51:1;29006:4:0;;:19;;5049:18:1;;29006:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;28985:18:0;;;;;;:9;:18;;;;;;:49;;;;:::i;28046:97::-;9435:6;;-1:-1:-1;;;;;9435:6:0;9421:10;:20;9413:29;;;;;;28114:13:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;28114:21:0::1;-1:-1:-1::0;;;;28114:21:0;;::::1;::::0;;;::::1;::::0;;28046:97::o;17219:125::-;17295:1;17274:18;:16;:18::i;:::-;:22;17270:35;;;17219:125::o;17270:35::-;17315:21;:19;:21::i;:::-;17219:125::o;12688:89::-;12729:13;12762:7;12755:14;;;;;:::i;19033:559::-;19097:7;19121:18;:16;:18::i;:::-;19117:203;;-1:-1:-1;;;;;19205:18:0;;;;;;:9;:18;;;;;;;19260:4;19242:24;;;;;19166:154;;19205:18;19285:20;:18;:20::i;19117:203::-;19366:14;;-1:-1:-1;;;;;19335:27:0;;;;;;:18;:27;;;;;;:45;19331:59;;;-1:-1:-1;19389:1:0;;19033:559;-1:-1:-1;19033:559:0:o;19331:59::-;-1:-1:-1;;;;;19460:18:0;;;;;;:9;:18;;;;;;19497:26;;19542:27;;19421:163;;19460:18;19497:26;19421:20;:163::i;13081:199::-;13188:4;13210:40;13220:10;13232:9;13243:6;13210:9;:40::i;22191:942::-;9435:6;;-1:-1:-1;;;;;9435:6:0;9421:10;:20;9413:29;;;;;;22252:13:::1;::::0;-1:-1:-1;;;;;22252:13:0::1;:27:::0;22244:36:::1;;;::::0;::::1;;22291:23;:21;:23::i;:::-;22325:12;21575:42;-1:-1:-1::0;;;;;22358:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22340:56:0::1;;22419:4;21575:42;-1:-1:-1::0;;;;;22439:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22340:133;::::0;-1:-1:-1;;;;;;22340:133:0::1;::::0;;;;;;-1:-1:-1;;;;;5368:15:1;;;22340:133:0::1;::::0;::::1;5350:34:1::0;5420:15;;5400:18;;;5393:43;5285:18;;22340:133:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22325:148;;22484:24;22511:27;12933:7:::0;12960:12;;12878:102;22511:27:::1;22567:4;22549:24;::::0;;;:9:::1;:24;::::0;;;;;:43;;;22608:53;22484:54;;-1:-1:-1;22567:4:0;;-1:-1:-1;;;;;;;;;;;22608:53:0;::::1;::::0;22484:54;9090:25:1;;9078:2;9063:18;;8944:177;22608:53:0::1;;;;;;;;22692:4;22672:26;::::0;;;:11:::1;:26;::::0;;;;;;;21575:42:::1;22672:77:::0;;;;;;;;;-1:-1:-1;;22672:98:0;;-1:-1:-1;;;;;22781:24:0;::::1;::::0;;:18:::1;:24:::0;;;;;;:31;;-1:-1:-1;;22781:31:0::1;22808:4;22781:31;::::0;;22823:219;-1:-1:-1;;;22823:219:0;;;;::::1;5788:34:1::0;;;;5838:18;;;5831:34;;;5881:18;;;5874:34;;;5924:18;;;5917:34;;;;22991:10:0::1;5967:19:1::0;;;5960:44;23016:15:0::1;6020:19:1::0;;;6013:35;22823:32:0::1;::::0;22863:21:::1;::::0;5722:19:1;;22823:219:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;23055:13:0::1;:20:::0;;-1:-1:-1;;;;;;23055:20:0::1;-1:-1:-1::0;;;;;23055:20:0;::::1;;::::0;;-1:-1:-1;23086:39:0::1;23108:16:::0;23086:21:::1;:39::i;:::-;22233:900;;22191:942::o:0;25279:331::-;25380:7;25405:18;25441:3;25426:12;;:18;;;;:::i;:::-;25405:39;;25473:10;25459;:24;25455:48;;25492:11;25501:2;25492:6;:11;:::i;:::-;25485:18;;;;;25455:48;25586:15;25591:10;25586:2;:15;:::i;:::-;25562:19;25571:10;25562:6;:19;:::i;:::-;25561:41;;;;:::i;:::-;25554:48;25279:331;-1:-1:-1;;;;25279:331:0:o;17769:319::-;17883:7;17928:152;17967:7;17993:26;;18038:27;;17928:20;:152::i;25006:265::-;25060:7;25080:18;25116:3;25101:12;;:18;;;;:::i;:::-;25080:39;;25144:10;25134:6;:20;25130:43;;25163:10;25172:1;25163:6;:10;:::i;25130:43::-;25248:14;25252:10;25248:1;:14;:::i;20121:193::-;20179:23;:21;:23::i;:::-;20221:24;20237:7;20221:15;:24::i;:::-;20213:61;;;;-1:-1:-1;;;20213:61:0;;8793:2:1;20213:61:0;;;8775:21:1;8832:2;8812:18;;;8805:30;8871:26;8851:18;;;8844:54;8915:18;;20213:61:0;;;;;;;;;20285:21;20298:7;20285:12;:21::i;:::-;20121:193;:::o;8982:275::-;-1:-1:-1;;;;;9126:21:0;;9079:7;9126:21;;;:12;:21;;;;;;9162:15;:30;-1:-1:-1;9158:44:0;;-1:-1:-1;9201:1:0;;8982:275;-1:-1:-1;;8982:275:0:o;9158:44::-;9220:29;9234:15;9220:11;:29;:::i;28552:174::-;28712:4;28612:7;28694:24;;;:9;:24;;;;;;;28677:13;;-1:-1:-1;;;;;28677:13:0;28667:24;;;;;;28652:12;;:39;;28667:24;28652:39;:::i;:::-;:66;;;;:::i;:::-;28632:86;;28552:174;:::o;9530:100::-;9435:6;;-1:-1:-1;;;;;9435:6:0;9421:10;:20;9413:29;;;;;;9605:6:::1;:17:::0;;-1:-1:-1;;;;;;9605:17:0::1;-1:-1:-1::0;;;;;9605:17:0;;;::::1;::::0;;;::::1;::::0;;9530:100::o;20954:295::-;21003:7;;21089:40;16623:1;21123:6;21089:40;:::i;:::-;21050:23;;:79;;;;:::i;:::-;21023:106;;21163:16;21144:15;:35;21140:49;;21188:1;21181:8;;;20954:295;:::o;21140:49::-;21207:34;21226:15;21207:16;:34;:::i;25970:289::-;26070:7;;26107:12;26116:3;26107:6;:12;:::i;:::-;26095:24;;26130:9;26142:15;26150:6;26142:7;:15::i;:::-;-1:-1:-1;;;;;26188:18:0;;26168:9;26188:18;;;:9;:18;;;;;;26130:27;;-1:-1:-1;26168:9:0;26180:44;;26188:27;;26209:6;;26188:27;:::i;:::-;26217:6;26180:7;:44::i;:::-;26168:56;-1:-1:-1;26168:56:0;26242:5;26246:1;26242;:5;:::i;:::-;:9;;;;:::i;:::-;26235:16;25970:289;-1:-1:-1;;;;;;25970:289:0:o;19755:177::-;19887:14;;-1:-1:-1;;;;;19857:27:0;;19820:4;19857:27;;;:18;:27;;;;;;19820:4;;-1:-1:-1;19857:67:0;;;;;19905:14;;19923:1;19905:19;;19837:87;19755:177;-1:-1:-1;;19755:177:0:o;14067:220::-;-1:-1:-1;;;;;14195:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14247:32;;9090:25:1;;;14247:32:0;;9063:18:1;14247:32:0;;;;;;;;14067:220;;;:::o;23141:1857::-;23303:13;;-1:-1:-1;;;;;23295:21:0;;;23303:13;;23295:21;;;;:50;;-1:-1:-1;;;;;;23321:24:0;;;;;;:18;:24;;;;;;;;23320:25;23295:50;23291:90;;;23360:21;23376:4;23360:15;:21::i;:::-;23402:13;;-1:-1:-1;;;;;23396:19:0;;;23402:13;;23396:19;;;;:46;;-1:-1:-1;;;;;;23420:22:0;;;;;;:18;:22;;;;;;;;23419:23;23396:46;23392:71;;;23444:19;23460:2;23444:15;:19::i;:::-;-1:-1:-1;;;;;23484:15:0;;;;;;:9;:15;;;;;;:25;-1:-1:-1;23484:25:0;23476:67;;;;-1:-1:-1;;;23476:67:0;;7055:2:1;23476:67:0;;;7037:21:1;7094:2;7074:18;;;7067:30;7133:31;7113:18;;;7106:59;7182:18;;23476:67:0;6853:353:1;23476:67:0;-1:-1:-1;;;;;23562:16:0;;23554:46;;;;-1:-1:-1;;;23554:46:0;;7758:2:1;23554:46:0;;;7740:21:1;7797:2;7777:18;;;7770:30;-1:-1:-1;;;7816:18:1;;;7809:47;7873:18;;23554:46:0;7556:341:1;23554:46:0;23641:13;;-1:-1:-1;;;;;23633:21:0;;;23641:13;;23633:21;:48;;;;-1:-1:-1;;;;;;23659:22:0;;;;;;:18;:22;;;;;;;;23658:23;23633:48;23629:1229;;;23706:13;;-1:-1:-1;;;23706:13:0;;;;23698:42;;;;-1:-1:-1;;;23698:42:0;;7413:2:1;23698:42:0;;;7395:21:1;7452:2;7432:18;;;7425:30;-1:-1:-1;;;7471:18:1;;;7464:46;7527:18;;23698:42:0;7211:340:1;23698:42:0;23790:28;23801:4;23807:2;23811:6;23790:10;:28::i;:::-;-1:-1:-1;;;;;23881:13:0;;;;;;:9;:13;;;;;;23781:37;;-1:-1:-1;23866:38:0;;23881:22;;23781:37;;23881:22;:::i;:::-;23866:14;:38::i;:::-;23629:1229;;;23966:13;;-1:-1:-1;;;;;23966:13:0;:27;;;;:63;;-1:-1:-1;24016:13:0;;-1:-1:-1;;;;;24010:19:0;;;24016:13;;24010:19;23966:63;:105;;;;-1:-1:-1;;;;;;24047:24:0;;;;;;:18;:24;;;;;;;;24046:25;23966:105;23948:910;;;24106:13;;-1:-1:-1;;;24106:13:0;;;;24098:42;;;;-1:-1:-1;;;24098:42:0;;7413:2:1;24098:42:0;;;7395:21:1;7452:2;7432:18;;;7425:30;-1:-1:-1;;;7471:18:1;;;7464:46;7527:18;;24098:42:0;7211:340:1;24098:42:0;24186:22;24203:4;24186:16;:22::i;:::-;-1:-1:-1;;;;;24247:15:0;;;;;;:9;:15;;;;;;24264:12;;24223:60;;24241:4;;24264:18;;24279:3;;24264:18;:::i;:::-;24223:17;:60::i;:::-;24327:25;24339:4;24345:6;24327:11;:25::i;:::-;24318:34;;23948:910;;;-1:-1:-1;;;;;24442:24:0;;;;;;:18;:24;;;;;;;;24441:25;:52;;;;-1:-1:-1;;;;;;24471:22:0;;;;;;:18;:22;;;;;;;;24470:23;24441:52;24437:410;;;24549:22;24566:4;24549:16;:22::i;:::-;-1:-1:-1;;;;;24614:15:0;;;;;;:9;:15;;;;;;24631:12;;24590:60;;24608:4;;24631:18;;24646:3;;24631:18;:::i;24590:60::-;24708:29;24724:4;24730:6;24708:15;:29::i;:::-;-1:-1:-1;;;;;24808:13:0;;;;;;:9;:13;;;;;;24699:38;;-1:-1:-1;24793:38:0;;24808:22;;24699:38;;24808:22;:::i;24793:38::-;24891:33;24907:4;24913:2;24917:6;24891:15;:33::i;:::-;-1:-1:-1;;;;;24939:27:0;;21798:42;24939:27;24935:55;;;24984:6;24968:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;23141:1857:0;;;:::o;17442:319::-;17540:4;17522:24;;;;:9;:24;;;;;;17493:26;:53;;;17557:27;:56;17650:15;17624:23;:41;17706:20;:18;:20::i;:::-;17676:27;:50;17739:14;17737:16;;17739:14;;17737:16;;;:::i;:::-;;;;-1:-1:-1;17442:319:0:o;15712:234::-;15796:15;15784:9;:27;15839:18;15853:4;15839:11;:18;:::i;:::-;15822:14;:35;15934:4;15892:38;15524:1;15892:11;:38;:::i;:::-;15891:47;;;;:::i;:::-;15868:20;:70;-1:-1:-1;15712:234:0:o;20322:624::-;20410:14;;-1:-1:-1;;;;;20380:27:0;;;;;;:18;:27;;;;;;;;:44;;;;20487:9;:18;;;;;;20520:26;;20561:27;;20452:147;;20487:18;20520:26;20452:20;:147::i;:::-;-1:-1:-1;;;;;20628:18:0;;20610:15;20628:18;;;:9;:18;;;;;;20672:27;;20435:164;;-1:-1:-1;20628:18:0;20663:36;;20659:49;;;20701:7;;20322:624;:::o;20659:49::-;20736:4;20718:24;;;;:9;:24;;;;;:34;;20746:6;;20718:24;:34;;20746:6;;20718:34;:::i;:::-;;;;;;;;20794:6;20763:27;;:37;;;;;;;:::i;:::-;;;;-1:-1:-1;20832:16:0;;-1:-1:-1;20842:6:0;20832:7;:16;:::i;:::-;-1:-1:-1;;;;;20811:18:0;;;;;;:9;:18;;;;;:37;;;;20859:13;:23;;20876:6;;20811:18;20859:23;;20876:6;;20859:23;:::i;:::-;;;;-1:-1:-1;;20898:40:0;;9090:25:1;;;-1:-1:-1;;;;;20898:40:0;;;20915:4;;-1:-1:-1;;;;;;;;;;;20898:40:0;9078:2:1;9063:18;20898:40:0;8944:177:1;19940:173:0;20002:23;:21;:23::i;:::-;20041:24;20057:7;20041:15;:24::i;:::-;20036:38;;19940:173;:::o;26714:185::-;26811:7;26843:48;26855:4;26861:6;26869:21;26879:2;26883:6;26869:9;:21::i;:::-;26843:11;:48::i;15954:134::-;16045:14;:12;:14::i;:::-;16031:10;:28;;16023:57;;;;-1:-1:-1;;;16023:57:0;;8104:2:1;16023:57:0;;;8086:21:1;8143:2;8123:18;;;8116:30;-1:-1:-1;;;8162:18:1;;;8155:46;8218:18;;16023:57:0;7902:340:1;8548:144:0;-1:-1:-1;;;;;8643:21:0;;;;;;:12;:21;;;;;;8624:15;:40;;8616:68;;;;-1:-1:-1;;;8616:68:0;;8449:2:1;8616:68:0;;;8431:21:1;8488:2;8468:18;;;8461:30;-1:-1:-1;;;8507:18:1;;;8500:45;8562:18;;8616:68:0;8247:339:1;8293:247:0;8496:36;8512:7;8521:10;8496:15;:36::i;:::-;8465:67;;:15;:67;:::i;:::-;-1:-1:-1;;;;;8428:21:0;;;;;;;:12;:21;;;;;:104;;;;-1:-1:-1;;8293:247:0:o;26907:177::-;26993:7;27025:51;27037:4;27043:6;27051:24;27062:4;27068:6;27051:10;:24::i;27092:185::-;27182:7;27214:55;27226:4;27232:6;27240:28;27255:4;27261:6;27240:14;:28::i;13288:376::-;-1:-1:-1;;;;;13435:15:0;;13411:21;13435:15;;;:9;:15;;;;;;13469:23;;;;13461:32;;;;;;-1:-1:-1;;;;;13529:15:0;;;;;;;:9;:15;;;;;;13547:22;;;13529:40;;13591:13;;;;;;;;:23;;13563:6;;13529:15;13591:23;;13563:6;;13591:23;:::i;:::-;;;;;;;;13645:2;-1:-1:-1;;;;;13630:26:0;13639:4;-1:-1:-1;;;;;13630:26:0;-1:-1:-1;;;;;;;;;;;13649:6:0;13630:26;;;;9090:25:1;;9078:2;9063:18;;8944:177;13630:26:0;;;;;;;;13400:264;13288:376;;;:::o;27285:507::-;27400:7;;27437;27443:1;27437:3;:7;:::i;:::-;27420:24;-1:-1:-1;27455:12:0;27470;27420:24;27470:3;:12;:::i;:::-;27455:27;-1:-1:-1;27493:13:0;27503:3;27493:13;;:::i;:::-;-1:-1:-1;;;;;27517:15:0;;;;;;:9;:15;;;;;:22;;27493:13;;-1:-1:-1;27536:3:0;;27517:15;;;:22;;27536:3;;27517:22;:::i;:::-;;;;-1:-1:-1;;27568:4:0;27550:24;;;;:9;:24;;;;;:34;;27578:6;;27550:24;:34;;27578:6;;27550:34;:::i;:::-;;;;-1:-1:-1;;21798:42:0;27595:23;;;;:9;:23;;;:31;;27622:4;;27595:23;:31;;27622:4;;27595:31;:::i;:::-;;;;;;;;27653:4;27637:12;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;27673:37:0;;9090:25:1;;;27696:4:0;;-1:-1:-1;;;;;27673:37:0;;;-1:-1:-1;;;;;;;;;;;27673:37:0;9078:2:1;9063:18;27673:37:0;;;;;;;27726:34;;9090:25:1;;;21798:42:0;;-1:-1:-1;;;;;27726:34:0;;;-1:-1:-1;;;;;;;;;;;27726:34:0;9078:2:1;9063:18;27726:34:0;;;;;;;-1:-1:-1;27778:6:0;;27285:507;-1:-1:-1;;;;27285:507:0:o;8700:274::-;8811:7;8851:10;8840:7;:21;8836:42;;-1:-1:-1;8870:8:0;8863:15;;8836:42;8956:10;8934:18;8945:7;8934:8;:18;:::i;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:128::-;218:20;;247:28;218:20;247:28;:::i;286:247::-;345:6;398:2;386:9;377:7;373:23;369:32;366:52;;;414:1;411;404:12;366:52;453:9;440:23;472:31;497:5;472:31;:::i;538:251::-;608:6;661:2;649:9;640:7;636:23;632:32;629:52;;;677:1;674;667:12;629:52;709:9;703:16;728:31;753:5;728:31;:::i;794:388::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;978:9;965:23;997:31;1022:5;997:31;:::i;:::-;1047:5;-1:-1:-1;1104:2:1;1089:18;;1076:32;1117:33;1076:32;1117:33;:::i;:::-;1169:7;1159:17;;;794:388;;;;;:::o;1187:456::-;1264:6;1272;1280;1333:2;1321:9;1312:7;1308:23;1304:32;1301:52;;;1349:1;1346;1339:12;1301:52;1388:9;1375:23;1407:31;1432:5;1407:31;:::i;:::-;1457:5;-1:-1:-1;1514:2:1;1499:18;;1486:32;1527:33;1486:32;1527:33;:::i;:::-;1187:456;;1579:7;;-1:-1:-1;;;1633:2:1;1618:18;;;;1605:32;;1187:456::o;1648:315::-;1716:6;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;1953:2;1938:18;;;;1925:32;;-1:-1:-1;;;1648:315:1:o;1968:1202::-;2058:6;2066;2119:2;2107:9;2098:7;2094:23;2090:32;2087:52;;;2135:1;2132;2125:12;2087:52;2175:9;2162:23;2204:18;2245:2;2237:6;2234:14;2231:34;;;2261:1;2258;2251:12;2231:34;2299:6;2288:9;2284:22;2274:32;;2344:7;2337:4;2333:2;2329:13;2325:27;2315:55;;2366:1;2363;2356:12;2315:55;2402:2;2389:16;2424:4;2447:2;2443;2440:10;2437:36;;;2453:18;;:::i;:::-;2499:2;2496:1;2492:10;2531:2;2525:9;2594:2;2590:7;2585:2;2581;2577:11;2573:25;2565:6;2561:38;2649:6;2637:10;2634:22;2629:2;2617:10;2614:18;2611:46;2608:72;;;2660:18;;:::i;:::-;2696:2;2689:22;2746:18;;;2780:15;;;;-1:-1:-1;2815:11:1;;;2845;;;2841:20;;2838:33;-1:-1:-1;2835:53:1;;;2884:1;2881;2874:12;2835:53;2906:1;2897:10;;2916:169;2930:2;2927:1;2924:9;2916:169;;;2987:23;3006:3;2987:23;:::i;:::-;2975:36;;2948:1;2941:9;;;;;3031:12;;;;3063;;2916:169;;;-1:-1:-1;3104:6:1;-1:-1:-1;3129:35:1;;-1:-1:-1;3145:18:1;;;3129:35;:::i;:::-;3119:45;;;;;;1968:1202;;;;;:::o;3175:241::-;3231:6;3284:2;3272:9;3263:7;3259:23;3255:32;3252:52;;;3300:1;3297;3290:12;3252:52;3339:9;3326:23;3358:28;3380:5;3358:28;:::i;3421:245::-;3488:6;3541:2;3529:9;3520:7;3516:23;3512:32;3509:52;;;3557:1;3554;3547:12;3509:52;3589:9;3583:16;3608:28;3630:5;3608:28;:::i;3671:180::-;3730:6;3783:2;3771:9;3762:7;3758:23;3754:32;3751:52;;;3799:1;3796;3789:12;3751:52;-1:-1:-1;3822:23:1;;3671:180;-1:-1:-1;3671:180:1:o;3856:184::-;3926:6;3979:2;3967:9;3958:7;3954:23;3950:32;3947:52;;;3995:1;3992;3985:12;3947:52;-1:-1:-1;4018:16:1;;3856:184;-1:-1:-1;3856:184:1:o;4045:248::-;4113:6;4121;4174:2;4162:9;4153:7;4149:23;4145:32;4142:52;;;4190:1;4187;4180:12;4142:52;-1:-1:-1;;4213:23:1;;;4283:2;4268:18;;;4255:32;;-1:-1:-1;4045:248:1:o;4298:316::-;4375:6;4383;4391;4444:2;4432:9;4423:7;4419:23;4415:32;4412:52;;;4460:1;4457;4450:12;4412:52;-1:-1:-1;;4483:23:1;;;4553:2;4538:18;;4525:32;;-1:-1:-1;4604:2:1;4589:18;;;4576:32;;4298:316;-1:-1:-1;4298:316:1:o;4619:306::-;4707:6;4715;4723;4776:2;4764:9;4755:7;4751:23;4747:32;4744:52;;;4792:1;4789;4782:12;4744:52;4821:9;4815:16;4805:26;;4871:2;4860:9;4856:18;4850:25;4840:35;;4915:2;4904:9;4900:18;4894:25;4884:35;;4619:306;;;;;:::o;6251:597::-;6363:4;6392:2;6421;6410:9;6403:21;6453:6;6447:13;6496:6;6491:2;6480:9;6476:18;6469:34;6521:1;6531:140;6545:6;6542:1;6539:13;6531:140;;;6640:14;;;6636:23;;6630:30;6606:17;;;6625:2;6602:26;6595:66;6560:10;;6531:140;;;6689:6;6686:1;6683:13;6680:91;;;6759:1;6754:2;6745:6;6734:9;6730:22;6726:31;6719:42;6680:91;-1:-1:-1;6832:2:1;6811:15;-1:-1:-1;;6807:29:1;6792:45;;;;6839:2;6788:54;;6251:597;-1:-1:-1;;;6251:597:1:o;9315:128::-;9355:3;9386:1;9382:6;9379:1;9376:13;9373:39;;;9392:18;;:::i;:::-;-1:-1:-1;9428:9:1;;9315:128::o;9448:217::-;9488:1;9514;9504:132;;9558:10;9553:3;9549:20;9546:1;9539:31;9593:4;9590:1;9583:15;9621:4;9618:1;9611:15;9504:132;-1:-1:-1;9650:9:1;;9448:217::o;9670:168::-;9710:7;9776:1;9772;9768:6;9764:14;9761:1;9758:21;9753:1;9746:9;9739:17;9735:45;9732:71;;;9783:18;;:::i;:::-;-1:-1:-1;9823:9:1;;9670:168::o;9843:125::-;9883:4;9911:1;9908;9905:8;9902:34;;;9916:18;;:::i;:::-;-1:-1:-1;9953:9:1;;9843:125::o;9973:380::-;10052:1;10048:12;;;;10095;;;10116:61;;10170:4;10162:6;10158:17;10148:27;;10116:61;10223:2;10215:6;10212:14;10192:18;10189:38;10186:161;;;10269:10;10264:3;10260:20;10257:1;10250:31;10304:4;10301:1;10294:15;10332:4;10329:1;10322:15;10186:161;;9973:380;;;:::o;10358:135::-;10397:3;-1:-1:-1;;10418:17:1;;10415:43;;;10438:18;;:::i;:::-;-1:-1:-1;10485:1:1;10474:13;;10358:135::o;10498:127::-;10559:10;10554:3;10550:20;10547:1;10540:31;10590:4;10587:1;10580:15;10614:4;10611:1;10604:15;10630:127;10691:10;10686:3;10682:20;10679:1;10672:31;10722:4;10719:1;10712:15;10746:4;10743:1;10736:15;10762:127;10823:10;10818:3;10814:20;10811:1;10804:31;10854:4;10851:1;10844:15;10878:4;10875:1;10868:15;10894:131;-1:-1:-1;;;;;10969:31:1;;10959:42;;10949:70;;11015:1;11012;11005:12;11030:118;11116:5;11109:13;11102:21;11095:5;11092:32;11082:60;;11138:1;11135;11128:12

Swarm Source

ipfs://2b078296eb8cac9d2c9807c96260d96f0c76c4e5aaa1e236a70cf3401054c865
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.