ETH Price: $3,320.42 (+2.17%)
Gas: 4 Gwei

Token

gObLiN tOwN (gT)
 

Overview

Max Total Supply

10,000,000,000 gT

Holders

62

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
twistd.eth
Balance
53,496,768.799940659 gT

Value
$0.00
0x797d72F2D3b05A5a9DBCCec5a30A3ead7173f480
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:
gObLiNtOwN

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-25
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
        
    }

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract gObLiNtOwN is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant _tTotal = 1e10 * 10**9;
    
    uint256 private _buyFourFee = 4;
    uint256 private _previousBuyFourFee = _buyFourFee;
    uint256 private _buyLiquidityFee = 1;
    uint256 private _previousBuyLiquidityFee = _buyLiquidityFee;
    uint256 private _buyRewardFee = 1;
    uint256 private _previousBuyRewardFee = _buyRewardFee;
    
    uint256 private _sellFourFee = 4;
    uint256 private _previousSellFourFee = _sellFourFee;
    uint256 private _sellLiquidityFee = 1;
    uint256 private _previousSellLiquidityFee = _sellLiquidityFee;
    uint256 private _sellRewardFee = 1;
    uint256 private _previousSellRewardFee = _sellRewardFee;

    uint256 private tokensForReward;
    uint256 private tokensForFour;
    uint256 private tokensForLiquidity;

    address payable private _rewardWallet;
    address payable private _FourWallet;
    address payable private _liquidityWallet;
    
    string private constant _name = "gObLiN tOwN";
    string private constant _symbol = "gT";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private swapping;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private tradingActiveBlock = 0; // 0 means trading is not active
    uint256 private blocksToBlacklist = 4;
    uint256 private _maxBuyAmount = _tTotal;
    uint256 private _maxSellAmount = _tTotal;
    uint256 private _maxWalletAmount = _tTotal;
    uint256 private swapTokensAtAmount = 0;
    
    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event MaxSellAmountUpdated(uint _maxSellAmount);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _FourWallet = payable(0x4Ea660Eed56A102f1D8AA6E70F86364e6e968d0d);
        _liquidityWallet = payable(address(0xdead));
        _rewardWallet = payable(0x4Ea660Eed56A102f1D8AA6E70F86364e6e968d0d);
        _rOwned[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_FourWallet] = true;
        _isExcludedFromFee[_liquidityWallet] = true;
        _isExcludedFromFee[_rewardWallet] = true;
        emit Transfer(address(0x5449601fB84cbDcD14DCa2850C3E9A0a53F5ad2C), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _rOwned[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function setSwapEnabled(bool onoff) external onlyOwner(){
        swapEnabled = onoff;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool takeFee = false;
        bool shouldSwap = false;
        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            require(!bots[from] && !bots[to]);

            takeFee = true;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] && cooldownEnabled) {
                require(amount <= _maxBuyAmount, "Transfer amount exceeds the maxBuyAmount.");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Exceeds maximum wallet token amount.");
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && !_isExcludedFromFee[from] && cooldownEnabled) {
                require(amount <= _maxSellAmount, "Transfer amount exceeds the maxSellAmount.");
                shouldSwap = true;
            }
        }

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = (contractTokenBalance > swapTokensAtAmount) && shouldSwap;

        if (canSwap && swapEnabled && !swapping && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        _tokenTransfer(from,to,amount,takeFee, shouldSwap);
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForReward + tokensForFour;
        bool success;
        
        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}

        if(contractBalance > swapTokensAtAmount * 10) {
            contractBalance = swapTokensAtAmount * 10;
        }
        
        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);
        
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH); 
        
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
        uint256 ethForReward = ethBalance.mul(tokensForReward).div(totalTokensToSwap);
        uint256 ethForFour = ethBalance.mul(tokensForFour).div(totalTokensToSwap);
        
        
        uint256 ethForLiquidity = ethBalance - ethForReward - ethForFour;
        
        
        tokensForLiquidity = 0;
        tokensForReward = 0;
        tokensForFour = 0;
        
        (success,) = address(_rewardWallet).call{value: ethForReward}("");
        
        if(liquidityTokens > 0 && ethForLiquidity > 0){
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity);
        }
        
        
        (success,) = address(_FourWallet).call{value: address(this).balance}("");
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            _liquidityWallet,
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _FourWallet.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxBuyAmount = 5e7 * 10**9;
        _maxSellAmount = 5e7 * 10**9;
        _maxWalletAmount = 1e8 * 10**9;
        swapTokensAtAmount = 5e6 * 10**9;
        tradingOpen = true;
        tradingActiveBlock = block.number;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function setMaxBuyAmount(uint256 maxBuy) public onlyOwner {
        _maxBuyAmount = maxBuy;
    }

    function setMaxSellAmount(uint256 maxSell) public onlyOwner {
        _maxSellAmount = maxSell;
    }
    
    function setMaxWalletAmount(uint256 maxToken) public onlyOwner {
        _maxWalletAmount = maxToken;
    }
    
    function setSwapTokensAtAmount(uint256 newAmount) public onlyOwner {
        require(newAmount >= 1e3 * 10**9, "Swap amount cannot be lower than 0.001% total supply.");
        require(newAmount <= 5e6 * 10**9, "Swap amount cannot be higher than 0.5% total supply.");
        swapTokensAtAmount = newAmount;
    }

    function setFourWallet(address FourWallet) public onlyOwner() {
        require(FourWallet != address(0), "FourWallet address cannot be 0");
        _isExcludedFromFee[_FourWallet] = false;
        _FourWallet = payable(FourWallet);
        _isExcludedFromFee[_FourWallet] = true;
    }

    function setRewardWallet(address rewardWallet) public onlyOwner() {
        require(rewardWallet != address(0), "rewardWallet address cannot be 0");
        _isExcludedFromFee[_rewardWallet] = false;
        _rewardWallet = payable(rewardWallet);
        _isExcludedFromFee[_rewardWallet] = true;
    }

    function setLiquidityWallet(address liquidityWallet) public onlyOwner() {
        require(liquidityWallet != address(0), "liquidityWallet address cannot be 0");
        _isExcludedFromFee[_liquidityWallet] = false;
        _liquidityWallet = payable(liquidityWallet);
        _isExcludedFromFee[_liquidityWallet] = true;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function setBuyFee(uint256 buyFourFee, uint256 buyLiquidityFee, uint256 buyRewardFee) external onlyOwner {
        require(buyFourFee + buyLiquidityFee + buyRewardFee <= 99, "Hard limit buy tax");
        _buyFourFee = buyFourFee;
        _buyLiquidityFee = buyLiquidityFee;
        _buyRewardFee = buyRewardFee;
    }

    function setSellFee(uint256 sellFourFee, uint256 sellLiquidityFee, uint256 sellRewardFee) external onlyOwner {
        require(sellFourFee + sellLiquidityFee + sellRewardFee <= 99, "Hard limit sell tax");
        _sellFourFee = sellFourFee;
        _sellLiquidityFee = sellLiquidityFee;
        _sellRewardFee = sellRewardFee;
    }


    function removeAllFee() private {
        if(_buyFourFee == 0 && _buyLiquidityFee == 0 && _buyRewardFee == 0 && _sellFourFee == 0 && _sellLiquidityFee == 0 && _sellRewardFee == 0) return;
        
        _previousBuyFourFee = _buyFourFee;
        _previousBuyLiquidityFee = _buyLiquidityFee;
        _previousBuyRewardFee = _buyRewardFee;
        _previousSellFourFee = _sellFourFee;
        _previousSellLiquidityFee = _sellLiquidityFee;
        _previousSellRewardFee = _sellRewardFee;
        
        _buyFourFee = 0;
        _buyLiquidityFee = 0;
        _buyRewardFee = 0;
        _sellFourFee = 0;
        _sellLiquidityFee = 0;
        _sellRewardFee = 0;
    }
    
    function restoreAllFee() private {
        _buyFourFee = _previousBuyFourFee;
        _buyLiquidityFee = _previousBuyLiquidityFee;
        _buyRewardFee = _previousBuyRewardFee;
        _sellFourFee = _previousSellFourFee;
        _sellLiquidityFee = _previousSellLiquidityFee;
        _sellRewardFee = _previousSellRewardFee;
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee, bool isSell) private {
        if(!takeFee) {
            removeAllFee();
        } else {
            amount = _takeFees(sender, amount, isSell);
        }

        _transferStandard(sender, recipient, amount);
        
        if(!takeFee) {
            restoreAllFee();
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        _rOwned[sender] = _rOwned[sender].sub(tAmount);
        _rOwned[recipient] = _rOwned[recipient].add(tAmount);
        emit Transfer(sender, recipient, tAmount);
    }

    function _takeFees(address sender, uint256 amount, bool isSell) private returns (uint256) {
        uint256 _totalFees;
        uint256 FourFee;
        uint256 liqFee;
        uint256 rwrdFee;
        if(tradingActiveBlock + blocksToBlacklist >= block.number){
            _totalFees = 99;
            liqFee = 92;
        } else {
            _totalFees = _getTotalFees(isSell);
            if (isSell) {
                FourFee = _sellFourFee;
                liqFee = _sellLiquidityFee;
                rwrdFee = _sellRewardFee;
            } else {
                FourFee = _buyFourFee;
                liqFee = _buyLiquidityFee;
                rwrdFee = _buyRewardFee;
            }
        }

        uint256 fees = amount.mul(_totalFees).div(100);
        tokensForReward += fees * rwrdFee / _totalFees;
        tokensForFour += fees * FourFee / _totalFees;
        tokensForLiquidity += fees * liqFee / _totalFees;
            
        if(fees > 0) {
            _transferStandard(sender, address(this), fees);
        }
            
        return amount -= fees;
    }

    receive() external payable {}
    
     function manualswap() external {
        require(_msgSender() == owner() || _msgSender() == _FourWallet, "Caller is not authorised");

        uint256 contractBalance = balanceOf(address(this));

        swapTokensForEth(contractBalance);
   
    }

     function manualsend() external {
        require(_msgSender() == owner() || _msgSender() == _FourWallet, "Caller is not authorised");

        uint256 contractETHBalance = address(this).balance;

        sendETHToFee(contractETHBalance);
    
    }

    function withdrawStuckETH() external onlyOwner {
        require(!tradingOpen, "Can only withdraw if trading hasn't started");
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

    function _getTotalFees(bool isSell) private view returns(uint256) {
        if (isSell) {
            return _sellFourFee + _sellLiquidityFee + _sellRewardFee;
        }
        return _buyFourFee + _buyLiquidityFee + _buyRewardFee;
    }
    
}

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":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxSellAmount","type":"uint256"}],"name":"MaxSellAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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":[{"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFourFee","type":"uint256"},{"internalType":"uint256","name":"buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"buyRewardFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"FourWallet","type":"address"}],"name":"setFourWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityWallet","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"}],"name":"setMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"setMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxToken","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rewardWallet","type":"address"}],"name":"setRewardWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellFourFee","type":"uint256"},{"internalType":"uint256","name":"sellLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"sellRewardFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260046007819055600881905560016009819055600a819055600b819055600c819055600d829055600e829055600f81905560108190556011819055601255601a805462ffffff60b01b191690556000601b819055601c91909155678ac7230489e80000601d819055601e819055601f5560205534801561008357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601780546001600160a01b0319908116734ea660eed56a102f1d8aa6e70f86364e6e968d0d908117835560188054831661dead178155601680549093169091178255336000818152600260209081526040808320678ac7230489e80000905582546001600160a01b0390811684526004909252808320805460ff1990811660019081179092553085528285208054821683179055975483168452818420805489168217905594548216835280832080548816861790559454168152929092208054909316179091556001600160a01b0316735449601fb84cbdcd14dca2850c3e9a0a53f5ad2c6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e800006040516101ed91815260200190565b60405180910390a3612917806102046000396000f3fe6080604052600436106101d15760003560e01c8063715018a6116100f7578063c3c8cd8011610095578063e99c9d0911610064578063e99c9d0914610579578063ea2f0b3714610599578063f34eb0b8146105b9578063f5648a4f146105d957600080fd5b8063c3c8cd80146104e9578063c9567bf9146104fe578063dd62ed3e14610513578063e01af92c1461055957600080fd5b8063a9059cbb116100d1578063a9059cbb14610469578063afa4f3b214610489578063b4060493146104a9578063b515566a146104c957600080fd5b8063715018a6146104015780638da5cb5b1461041657806395d89b411461043e57600080fd5b806327a14fc21161016f5780635932ead11161013e5780635932ead1146103765780635958621e146103965780636fc3eaec146103b657806370a08231146103cb57600080fd5b806327a14fc2146102fa578063296f0a0c1461031a578063313ce5671461033a578063437823ec1461035657600080fd5b80631d865c30116101ab5780631d865c301461027857806323b872dd1461029a57806325519cf2146102ba578063273123b7146102da57600080fd5b806306fdde03146101dd578063095ea7b31461022357806318160ddd1461025357600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600b81526a33a7b12634a7103a27bba760a91b60208201525b60405161021a91906126ce565b60405180910390f35b34801561022f57600080fd5b5061024361023e3660046124ee565b6105ee565b604051901515815260200161021a565b34801561025f57600080fd5b50678ac7230489e800005b60405190815260200161021a565b34801561028457600080fd5b50610298610293366004612639565b610605565b005b3480156102a657600080fd5b506102436102b53660046124ad565b6106a1565b3480156102c657600080fd5b506102986102d5366004612639565b61070a565b3480156102e657600080fd5b506102986102f536600461243a565b61079c565b34801561030657600080fd5b50610298610315366004612620565b6107e7565b34801561032657600080fd5b5061029861033536600461243a565b610816565b34801561034657600080fd5b506040516009815260200161021a565b34801561036257600080fd5b5061029861037136600461243a565b6108f2565b34801561038257600080fd5b506102986103913660046125e6565b610940565b3480156103a257600080fd5b506102986103b136600461243a565b610988565b3480156103c257600080fd5b50610298610a58565b3480156103d757600080fd5b5061026a6103e636600461243a565b6001600160a01b031660009081526002602052604090205490565b34801561040d57600080fd5b50610298610ad8565b34801561042257600080fd5b506000546040516001600160a01b03909116815260200161021a565b34801561044a57600080fd5b5060408051808201909152600281526119d560f21b602082015261020d565b34801561047557600080fd5b506102436104843660046124ee565b610b4c565b34801561049557600080fd5b506102986104a4366004612620565b610b59565b3480156104b557600080fd5b506102986104c436600461243a565b610c6f565b3480156104d557600080fd5b506102986104e436600461251a565b610d3f565b3480156104f557600080fd5b50610298610dd5565b34801561050a57600080fd5b50610298610e61565b34801561051f57600080fd5b5061026a61052e366004612474565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561056557600080fd5b506102986105743660046125e6565b611234565b34801561058557600080fd5b50610298610594366004612620565b61127c565b3480156105a557600080fd5b506102986105b436600461243a565b6112ab565b3480156105c557600080fd5b506102986105d4366004612620565b6112f6565b3480156105e557600080fd5b50610298611325565b60006105fb33848461140a565b5060015b92915050565b6000546001600160a01b031633146106385760405162461bcd60e51b815260040161062f90612723565b60405180910390fd5b60638161064584866127c9565b61064f91906127c9565b11156106935760405162461bcd60e51b8152602060048201526013602482015272090c2e4c840d8d2dad2e840e6cad8d840e8c2f606b1b604482015260640161062f565b600d92909255600f55601155565b60006106ae84848461152f565b61070084336106fb856040518060600160405280602881526020016128ba602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611ac8565b61140a565b5060019392505050565b6000546001600160a01b031633146107345760405162461bcd60e51b815260040161062f90612723565b60638161074184866127c9565b61074b91906127c9565b111561078e5760405162461bcd60e51b8152602060048201526012602482015271090c2e4c840d8d2dad2e840c4eaf240e8c2f60731b604482015260640161062f565b600792909255600955600b55565b6000546001600160a01b031633146107c65760405162461bcd60e51b815260040161062f90612723565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b031633146108115760405162461bcd60e51b815260040161062f90612723565b601f55565b6000546001600160a01b031633146108405760405162461bcd60e51b815260040161062f90612723565b6001600160a01b0381166108a25760405162461bcd60e51b815260206004820152602360248201527f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260448201526206520360ec1b606482015260840161062f565b601880546001600160a01b03908116600090815260046020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b0316331461091c5760405162461bcd60e51b815260040161062f90612723565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b0316331461096a5760405162461bcd60e51b815260040161062f90612723565b601a8054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b031633146109b25760405162461bcd60e51b815260040161062f90612723565b6001600160a01b038116610a085760405162461bcd60e51b815260206004820181905260248201527f72657761726457616c6c657420616464726573732063616e6e6f742062652030604482015260640161062f565b601680546001600160a01b03908116600090815260046020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b0316331480610a8457506017546001600160a01b0316336001600160a01b0316145b610acb5760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5cd95960421b604482015260640161062f565b47610ad581611b02565b50565b6000546001600160a01b03163314610b025760405162461bcd60e51b815260040161062f90612723565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006105fb33848461152f565b6000546001600160a01b03163314610b835760405162461bcd60e51b815260040161062f90612723565b64e8d4a51000811015610bf65760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b606482015260840161062f565b6611c37937e08000811115610c6a5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b606482015260840161062f565b602055565b6000546001600160a01b03163314610c995760405162461bcd60e51b815260040161062f90612723565b6001600160a01b038116610cef5760405162461bcd60e51b815260206004820152601e60248201527f466f757257616c6c657420616464726573732063616e6e6f7420626520300000604482015260640161062f565b601780546001600160a01b03908116600090815260046020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b03163314610d695760405162461bcd60e51b815260040161062f90612723565b60005b8151811015610dd157600160056000848481518110610d8d57610d8d61286a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610dc981612839565b915050610d6c565b5050565b6000546001600160a01b0316331480610e0157506017546001600160a01b0316336001600160a01b0316145b610e485760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5cd95960421b604482015260640161062f565b30600090815260026020526040902054610ad581611b3c565b6000546001600160a01b03163314610e8b5760405162461bcd60e51b815260040161062f90612723565b601a54600160a01b900460ff1615610ee55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161062f565b601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610f213082678ac7230489e8000061140a565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f5a57600080fd5b505afa158015610f6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f929190612457565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fda57600080fd5b505afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110129190612457565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561105a57600080fd5b505af115801561106e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110929190612457565b601a80546001600160a01b039283166001600160a01b03199091161790556019541663f305d71947306110da816001600160a01b031660009081526002602052604090205490565b6000806110ef6000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161111196959493929190612693565b6060604051808303818588803b15801561112a57600080fd5b505af115801561113e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111639190612665565b5050601a805466b1a2bc2ec50000601d819055601e5567016345785d8a0000601f556611c37937e0800060205564ffff0000ff60a01b19811664010100000160a01b1790915543601b5560195460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156111fc57600080fd5b505af1158015611210573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd19190612603565b6000546001600160a01b0316331461125e5760405162461bcd60e51b815260040161062f90612723565b601a8054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b031633146112a65760405162461bcd60e51b815260040161062f90612723565b601e55565b6000546001600160a01b031633146112d55760405162461bcd60e51b815260040161062f90612723565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146113205760405162461bcd60e51b815260040161062f90612723565b601d55565b6000546001600160a01b0316331461134f5760405162461bcd60e51b815260040161062f90612723565b601a54600160a01b900460ff16156113bd5760405162461bcd60e51b815260206004820152602b60248201527f43616e206f6e6c792077697468647261772069662074726164696e672068617360448201526a1b89dd081cdd185c9d195960aa1b606482015260840161062f565b604051600090339047908381818185875af1925050503d80600081146113ff576040519150601f19603f3d011682016040523d82523d6000602084013e611404565b606091505b50505050565b6001600160a01b03831661146c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161062f565b6001600160a01b0382166114cd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161062f565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166115935760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161062f565b6001600160a01b0382166115f55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161062f565b600081116116575760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161062f565b60008061166c6000546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561169b57506000546001600160a01b03858116911614155b80156116af57506001600160a01b03841615155b80156116c657506001600160a01b03841661dead14155b80156116dc5750601a54600160a81b900460ff16155b156119a1576001600160a01b03851660009081526005602052604090205460ff1615801561172357506001600160a01b03841660009081526005602052604090205460ff16155b61172c57600080fd5b601a54600192506001600160a01b03868116911614801561175b57506019546001600160a01b03858116911614155b801561178057506001600160a01b03841660009081526004602052604090205460ff16155b80156117955750601a54600160c01b900460ff165b156118ce57601d548311156117fe5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178426044820152683abca0b6b7bab73a1760b91b606482015260840161062f565b601f5483611821866001600160a01b031660009081526002602052604090205490565b61182b91906127c9565b11156118855760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b606482015260840161062f565b6001600160a01b03841660009081526006602052604090205442116118a957600080fd5b6118b442601e6127c9565b6001600160a01b0385166000908152600660205260409020555b601a546001600160a01b0385811691161480156118f957506019546001600160a01b03868116911614155b801561191e57506001600160a01b03851660009081526004602052604090205460ff16155b80156119335750601a54600160c01b900460ff165b156119a157601e5483111561199d5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785360448201526932b63620b6b7bab73a1760b11b606482015260840161062f565b5060015b6001600160a01b03851660009081526004602052604090205460ff16806119e057506001600160a01b03841660009081526004602052604090205460ff165b156119ea57600091505b306000908152600260205260408120549050600060205482118015611a0c5750825b9050808015611a245750601a54600160b81b900460ff165b8015611a3a5750601a54600160a81b900460ff16155b8015611a5f57506001600160a01b03871660009081526004602052604090205460ff16155b8015611a8457506001600160a01b03861660009081526004602052604090205460ff16155b15611ab257601a805460ff60a81b1916600160a81b179055611aa4611cc5565b601a805460ff60a81b191690555b611abf8787878787611f05565b50505050505050565b60008184841115611aec5760405162461bcd60e51b815260040161062f91906126ce565b506000611af98486612822565b95945050505050565b6017546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610dd1573d6000803e3d6000fd5b601a805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611b8457611b8461286a565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611bd857600080fd5b505afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c109190612457565b81600181518110611c2357611c2361286a565b6001600160a01b039283166020918202929092010152601954611c49913091168461140a565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c82908590600090869030904290600401612758565b600060405180830381600087803b158015611c9c57600080fd5b505af1158015611cb0573d6000803e3d6000fd5b5050601a805460ff60b01b1916905550505050565b3060009081526002602052604081205490506000601454601354601554611cec91906127c9565b611cf691906127c9565b90506000821580611d05575081155b15611d0f57505050565b602054611d1d90600a612803565b831115611d3557602054611d3290600a612803565b92505b600060028360155486611d489190612803565b611d5291906127e1565b611d5c91906127e1565b90506000611d6a8583611f65565b905047611d7682611b3c565b6000611d824783611f65565b90506000611da587611d9f60135485611fae90919063ffffffff16565b9061202d565b90506000611dc288611d9f60145486611fae90919063ffffffff16565b9050600081611dd18486612822565b611ddb9190612822565b60006015819055601381905560148190556016546040519293506001600160a01b031691859181818185875af1925050503d8060008114611e38576040519150601f19603f3d011682016040523d82523d6000602084013e611e3d565b606091505b50909850508615801590611e515750600081115b15611ea457611e60878261206f565b601554604080518881526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6017546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611ef1576040519150601f19603f3d011682016040523d82523d6000602084013e611ef6565b606091505b50505050505050505050505050565b81611f1757611f12612119565b611f25565b611f228584836121a1565b92505b611f308585856122bf565b81611f5e57611f5e600854600755600a54600955600c54600b55600e54600d55601054600f55601254601155565b5050505050565b6000611fa783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ac8565b9392505050565b600082611fbd575060006105ff565b6000611fc98385612803565b905082611fd685836127e1565b14611fa75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161062f565b6000611fa783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612365565b6019546120879030906001600160a01b03168461140a565b60195460185460405163f305d71960e01b81526001600160a01b039283169263f305d7199285926120c79230928992600092839216904290600401612693565b6060604051808303818588803b1580156120e057600080fd5b505af11580156120f4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f5e9190612665565b6007541580156121295750600954155b80156121355750600b54155b80156121415750600d54155b801561214d5750600f54155b80156121595750601154155b1561216057565b6007805460085560098054600a55600b8054600c55600d8054600e55600f805460105560118054601255600095869055938590559184905583905582905555565b600080600080600043601c54601b546121ba91906127c9565b106121cc5760639350605c9150612201565b6121d586612393565b935085156121f157600d549250600f5491506011549050612201565b60075492506009549150600b5490505b60006122126064611d9f8a88611fae565b90508461221f8383612803565b61222991906127e1565b6013600082825461223a91906127c9565b9091555085905061224b8583612803565b61225591906127e1565b6014600082825461226691906127c9565b909155508590506122778483612803565b61228191906127e1565b6015600082825461229291906127c9565b909155505080156122a8576122a88930836122bf565b6122b28189612822565b9998505050505050505050565b6001600160a01b0383166000908152600260205260409020546122e29082611f65565b6001600160a01b03808516600090815260026020526040808220939093559084168152205461231190826123cb565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115229085815260200190565b600081836123865760405162461bcd60e51b815260040161062f91906126ce565b506000611af984866127e1565b600081156123b857601154600f54600d546123ae91906127c9565b6105ff91906127c9565b600b546009546007546123ae91906127c9565b6000806123d883856127c9565b905083811015611fa75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161062f565b803561243581612896565b919050565b60006020828403121561244c57600080fd5b8135611fa781612896565b60006020828403121561246957600080fd5b8151611fa781612896565b6000806040838503121561248757600080fd5b823561249281612896565b915060208301356124a281612896565b809150509250929050565b6000806000606084860312156124c257600080fd5b83356124cd81612896565b925060208401356124dd81612896565b929592945050506040919091013590565b6000806040838503121561250157600080fd5b823561250c81612896565b946020939093013593505050565b6000602080838503121561252d57600080fd5b823567ffffffffffffffff8082111561254557600080fd5b818501915085601f83011261255957600080fd5b81358181111561256b5761256b612880565b8060051b604051601f19603f8301168101818110858211171561259057612590612880565b604052828152858101935084860182860187018a10156125af57600080fd5b600095505b838610156125d9576125c58161242a565b8552600195909501949386019386016125b4565b5098975050505050505050565b6000602082840312156125f857600080fd5b8135611fa7816128ab565b60006020828403121561261557600080fd5b8151611fa7816128ab565b60006020828403121561263257600080fd5b5035919050565b60008060006060848603121561264e57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561267a57600080fd5b8351925060208401519150604084015190509250925092565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600060208083528351808285015260005b818110156126fb578581018301518582016040015282016126df565b8181111561270d576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127a85784516001600160a01b031683529383019391830191600101612783565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156127dc576127dc612854565b500190565b6000826127fe57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561281d5761281d612854565b500290565b60008282101561283457612834612854565b500390565b600060001982141561284d5761284d612854565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610ad557600080fd5b8015158114610ad557600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ca0fc04ce1b8ac57c7cc71cc397b8817b3b458f27d99da3541e0fca20ae64d6f64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c8063715018a6116100f7578063c3c8cd8011610095578063e99c9d0911610064578063e99c9d0914610579578063ea2f0b3714610599578063f34eb0b8146105b9578063f5648a4f146105d957600080fd5b8063c3c8cd80146104e9578063c9567bf9146104fe578063dd62ed3e14610513578063e01af92c1461055957600080fd5b8063a9059cbb116100d1578063a9059cbb14610469578063afa4f3b214610489578063b4060493146104a9578063b515566a146104c957600080fd5b8063715018a6146104015780638da5cb5b1461041657806395d89b411461043e57600080fd5b806327a14fc21161016f5780635932ead11161013e5780635932ead1146103765780635958621e146103965780636fc3eaec146103b657806370a08231146103cb57600080fd5b806327a14fc2146102fa578063296f0a0c1461031a578063313ce5671461033a578063437823ec1461035657600080fd5b80631d865c30116101ab5780631d865c301461027857806323b872dd1461029a57806325519cf2146102ba578063273123b7146102da57600080fd5b806306fdde03146101dd578063095ea7b31461022357806318160ddd1461025357600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600b81526a33a7b12634a7103a27bba760a91b60208201525b60405161021a91906126ce565b60405180910390f35b34801561022f57600080fd5b5061024361023e3660046124ee565b6105ee565b604051901515815260200161021a565b34801561025f57600080fd5b50678ac7230489e800005b60405190815260200161021a565b34801561028457600080fd5b50610298610293366004612639565b610605565b005b3480156102a657600080fd5b506102436102b53660046124ad565b6106a1565b3480156102c657600080fd5b506102986102d5366004612639565b61070a565b3480156102e657600080fd5b506102986102f536600461243a565b61079c565b34801561030657600080fd5b50610298610315366004612620565b6107e7565b34801561032657600080fd5b5061029861033536600461243a565b610816565b34801561034657600080fd5b506040516009815260200161021a565b34801561036257600080fd5b5061029861037136600461243a565b6108f2565b34801561038257600080fd5b506102986103913660046125e6565b610940565b3480156103a257600080fd5b506102986103b136600461243a565b610988565b3480156103c257600080fd5b50610298610a58565b3480156103d757600080fd5b5061026a6103e636600461243a565b6001600160a01b031660009081526002602052604090205490565b34801561040d57600080fd5b50610298610ad8565b34801561042257600080fd5b506000546040516001600160a01b03909116815260200161021a565b34801561044a57600080fd5b5060408051808201909152600281526119d560f21b602082015261020d565b34801561047557600080fd5b506102436104843660046124ee565b610b4c565b34801561049557600080fd5b506102986104a4366004612620565b610b59565b3480156104b557600080fd5b506102986104c436600461243a565b610c6f565b3480156104d557600080fd5b506102986104e436600461251a565b610d3f565b3480156104f557600080fd5b50610298610dd5565b34801561050a57600080fd5b50610298610e61565b34801561051f57600080fd5b5061026a61052e366004612474565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561056557600080fd5b506102986105743660046125e6565b611234565b34801561058557600080fd5b50610298610594366004612620565b61127c565b3480156105a557600080fd5b506102986105b436600461243a565b6112ab565b3480156105c557600080fd5b506102986105d4366004612620565b6112f6565b3480156105e557600080fd5b50610298611325565b60006105fb33848461140a565b5060015b92915050565b6000546001600160a01b031633146106385760405162461bcd60e51b815260040161062f90612723565b60405180910390fd5b60638161064584866127c9565b61064f91906127c9565b11156106935760405162461bcd60e51b8152602060048201526013602482015272090c2e4c840d8d2dad2e840e6cad8d840e8c2f606b1b604482015260640161062f565b600d92909255600f55601155565b60006106ae84848461152f565b61070084336106fb856040518060600160405280602881526020016128ba602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611ac8565b61140a565b5060019392505050565b6000546001600160a01b031633146107345760405162461bcd60e51b815260040161062f90612723565b60638161074184866127c9565b61074b91906127c9565b111561078e5760405162461bcd60e51b8152602060048201526012602482015271090c2e4c840d8d2dad2e840c4eaf240e8c2f60731b604482015260640161062f565b600792909255600955600b55565b6000546001600160a01b031633146107c65760405162461bcd60e51b815260040161062f90612723565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b031633146108115760405162461bcd60e51b815260040161062f90612723565b601f55565b6000546001600160a01b031633146108405760405162461bcd60e51b815260040161062f90612723565b6001600160a01b0381166108a25760405162461bcd60e51b815260206004820152602360248201527f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260448201526206520360ec1b606482015260840161062f565b601880546001600160a01b03908116600090815260046020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b0316331461091c5760405162461bcd60e51b815260040161062f90612723565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b0316331461096a5760405162461bcd60e51b815260040161062f90612723565b601a8054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b031633146109b25760405162461bcd60e51b815260040161062f90612723565b6001600160a01b038116610a085760405162461bcd60e51b815260206004820181905260248201527f72657761726457616c6c657420616464726573732063616e6e6f742062652030604482015260640161062f565b601680546001600160a01b03908116600090815260046020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b0316331480610a8457506017546001600160a01b0316336001600160a01b0316145b610acb5760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5cd95960421b604482015260640161062f565b47610ad581611b02565b50565b6000546001600160a01b03163314610b025760405162461bcd60e51b815260040161062f90612723565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006105fb33848461152f565b6000546001600160a01b03163314610b835760405162461bcd60e51b815260040161062f90612723565b64e8d4a51000811015610bf65760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b606482015260840161062f565b6611c37937e08000811115610c6a5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b606482015260840161062f565b602055565b6000546001600160a01b03163314610c995760405162461bcd60e51b815260040161062f90612723565b6001600160a01b038116610cef5760405162461bcd60e51b815260206004820152601e60248201527f466f757257616c6c657420616464726573732063616e6e6f7420626520300000604482015260640161062f565b601780546001600160a01b03908116600090815260046020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b03163314610d695760405162461bcd60e51b815260040161062f90612723565b60005b8151811015610dd157600160056000848481518110610d8d57610d8d61286a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610dc981612839565b915050610d6c565b5050565b6000546001600160a01b0316331480610e0157506017546001600160a01b0316336001600160a01b0316145b610e485760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5cd95960421b604482015260640161062f565b30600090815260026020526040902054610ad581611b3c565b6000546001600160a01b03163314610e8b5760405162461bcd60e51b815260040161062f90612723565b601a54600160a01b900460ff1615610ee55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161062f565b601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610f213082678ac7230489e8000061140a565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f5a57600080fd5b505afa158015610f6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f929190612457565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fda57600080fd5b505afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110129190612457565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561105a57600080fd5b505af115801561106e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110929190612457565b601a80546001600160a01b039283166001600160a01b03199091161790556019541663f305d71947306110da816001600160a01b031660009081526002602052604090205490565b6000806110ef6000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161111196959493929190612693565b6060604051808303818588803b15801561112a57600080fd5b505af115801561113e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111639190612665565b5050601a805466b1a2bc2ec50000601d819055601e5567016345785d8a0000601f556611c37937e0800060205564ffff0000ff60a01b19811664010100000160a01b1790915543601b5560195460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156111fc57600080fd5b505af1158015611210573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd19190612603565b6000546001600160a01b0316331461125e5760405162461bcd60e51b815260040161062f90612723565b601a8054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b031633146112a65760405162461bcd60e51b815260040161062f90612723565b601e55565b6000546001600160a01b031633146112d55760405162461bcd60e51b815260040161062f90612723565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146113205760405162461bcd60e51b815260040161062f90612723565b601d55565b6000546001600160a01b0316331461134f5760405162461bcd60e51b815260040161062f90612723565b601a54600160a01b900460ff16156113bd5760405162461bcd60e51b815260206004820152602b60248201527f43616e206f6e6c792077697468647261772069662074726164696e672068617360448201526a1b89dd081cdd185c9d195960aa1b606482015260840161062f565b604051600090339047908381818185875af1925050503d80600081146113ff576040519150601f19603f3d011682016040523d82523d6000602084013e611404565b606091505b50505050565b6001600160a01b03831661146c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161062f565b6001600160a01b0382166114cd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161062f565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166115935760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161062f565b6001600160a01b0382166115f55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161062f565b600081116116575760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161062f565b60008061166c6000546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561169b57506000546001600160a01b03858116911614155b80156116af57506001600160a01b03841615155b80156116c657506001600160a01b03841661dead14155b80156116dc5750601a54600160a81b900460ff16155b156119a1576001600160a01b03851660009081526005602052604090205460ff1615801561172357506001600160a01b03841660009081526005602052604090205460ff16155b61172c57600080fd5b601a54600192506001600160a01b03868116911614801561175b57506019546001600160a01b03858116911614155b801561178057506001600160a01b03841660009081526004602052604090205460ff16155b80156117955750601a54600160c01b900460ff165b156118ce57601d548311156117fe5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178426044820152683abca0b6b7bab73a1760b91b606482015260840161062f565b601f5483611821866001600160a01b031660009081526002602052604090205490565b61182b91906127c9565b11156118855760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b606482015260840161062f565b6001600160a01b03841660009081526006602052604090205442116118a957600080fd5b6118b442601e6127c9565b6001600160a01b0385166000908152600660205260409020555b601a546001600160a01b0385811691161480156118f957506019546001600160a01b03868116911614155b801561191e57506001600160a01b03851660009081526004602052604090205460ff16155b80156119335750601a54600160c01b900460ff165b156119a157601e5483111561199d5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785360448201526932b63620b6b7bab73a1760b11b606482015260840161062f565b5060015b6001600160a01b03851660009081526004602052604090205460ff16806119e057506001600160a01b03841660009081526004602052604090205460ff165b156119ea57600091505b306000908152600260205260408120549050600060205482118015611a0c5750825b9050808015611a245750601a54600160b81b900460ff165b8015611a3a5750601a54600160a81b900460ff16155b8015611a5f57506001600160a01b03871660009081526004602052604090205460ff16155b8015611a8457506001600160a01b03861660009081526004602052604090205460ff16155b15611ab257601a805460ff60a81b1916600160a81b179055611aa4611cc5565b601a805460ff60a81b191690555b611abf8787878787611f05565b50505050505050565b60008184841115611aec5760405162461bcd60e51b815260040161062f91906126ce565b506000611af98486612822565b95945050505050565b6017546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610dd1573d6000803e3d6000fd5b601a805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611b8457611b8461286a565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611bd857600080fd5b505afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c109190612457565b81600181518110611c2357611c2361286a565b6001600160a01b039283166020918202929092010152601954611c49913091168461140a565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c82908590600090869030904290600401612758565b600060405180830381600087803b158015611c9c57600080fd5b505af1158015611cb0573d6000803e3d6000fd5b5050601a805460ff60b01b1916905550505050565b3060009081526002602052604081205490506000601454601354601554611cec91906127c9565b611cf691906127c9565b90506000821580611d05575081155b15611d0f57505050565b602054611d1d90600a612803565b831115611d3557602054611d3290600a612803565b92505b600060028360155486611d489190612803565b611d5291906127e1565b611d5c91906127e1565b90506000611d6a8583611f65565b905047611d7682611b3c565b6000611d824783611f65565b90506000611da587611d9f60135485611fae90919063ffffffff16565b9061202d565b90506000611dc288611d9f60145486611fae90919063ffffffff16565b9050600081611dd18486612822565b611ddb9190612822565b60006015819055601381905560148190556016546040519293506001600160a01b031691859181818185875af1925050503d8060008114611e38576040519150601f19603f3d011682016040523d82523d6000602084013e611e3d565b606091505b50909850508615801590611e515750600081115b15611ea457611e60878261206f565b601554604080518881526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6017546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611ef1576040519150601f19603f3d011682016040523d82523d6000602084013e611ef6565b606091505b50505050505050505050505050565b81611f1757611f12612119565b611f25565b611f228584836121a1565b92505b611f308585856122bf565b81611f5e57611f5e600854600755600a54600955600c54600b55600e54600d55601054600f55601254601155565b5050505050565b6000611fa783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ac8565b9392505050565b600082611fbd575060006105ff565b6000611fc98385612803565b905082611fd685836127e1565b14611fa75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161062f565b6000611fa783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612365565b6019546120879030906001600160a01b03168461140a565b60195460185460405163f305d71960e01b81526001600160a01b039283169263f305d7199285926120c79230928992600092839216904290600401612693565b6060604051808303818588803b1580156120e057600080fd5b505af11580156120f4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f5e9190612665565b6007541580156121295750600954155b80156121355750600b54155b80156121415750600d54155b801561214d5750600f54155b80156121595750601154155b1561216057565b6007805460085560098054600a55600b8054600c55600d8054600e55600f805460105560118054601255600095869055938590559184905583905582905555565b600080600080600043601c54601b546121ba91906127c9565b106121cc5760639350605c9150612201565b6121d586612393565b935085156121f157600d549250600f5491506011549050612201565b60075492506009549150600b5490505b60006122126064611d9f8a88611fae565b90508461221f8383612803565b61222991906127e1565b6013600082825461223a91906127c9565b9091555085905061224b8583612803565b61225591906127e1565b6014600082825461226691906127c9565b909155508590506122778483612803565b61228191906127e1565b6015600082825461229291906127c9565b909155505080156122a8576122a88930836122bf565b6122b28189612822565b9998505050505050505050565b6001600160a01b0383166000908152600260205260409020546122e29082611f65565b6001600160a01b03808516600090815260026020526040808220939093559084168152205461231190826123cb565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115229085815260200190565b600081836123865760405162461bcd60e51b815260040161062f91906126ce565b506000611af984866127e1565b600081156123b857601154600f54600d546123ae91906127c9565b6105ff91906127c9565b600b546009546007546123ae91906127c9565b6000806123d883856127c9565b905083811015611fa75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161062f565b803561243581612896565b919050565b60006020828403121561244c57600080fd5b8135611fa781612896565b60006020828403121561246957600080fd5b8151611fa781612896565b6000806040838503121561248757600080fd5b823561249281612896565b915060208301356124a281612896565b809150509250929050565b6000806000606084860312156124c257600080fd5b83356124cd81612896565b925060208401356124dd81612896565b929592945050506040919091013590565b6000806040838503121561250157600080fd5b823561250c81612896565b946020939093013593505050565b6000602080838503121561252d57600080fd5b823567ffffffffffffffff8082111561254557600080fd5b818501915085601f83011261255957600080fd5b81358181111561256b5761256b612880565b8060051b604051601f19603f8301168101818110858211171561259057612590612880565b604052828152858101935084860182860187018a10156125af57600080fd5b600095505b838610156125d9576125c58161242a565b8552600195909501949386019386016125b4565b5098975050505050505050565b6000602082840312156125f857600080fd5b8135611fa7816128ab565b60006020828403121561261557600080fd5b8151611fa7816128ab565b60006020828403121561263257600080fd5b5035919050565b60008060006060848603121561264e57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561267a57600080fd5b8351925060208401519150604084015190509250925092565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600060208083528351808285015260005b818110156126fb578581018301518582016040015282016126df565b8181111561270d576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127a85784516001600160a01b031683529383019391830191600101612783565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156127dc576127dc612854565b500190565b6000826127fe57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561281d5761281d612854565b500290565b60008282101561283457612834612854565b500390565b600060001982141561284d5761284d612854565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610ad557600080fd5b8015158114610ad557600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ca0fc04ce1b8ac57c7cc71cc397b8817b3b458f27d99da3541e0fca20ae64d6f64736f6c63430008070033

Deployed Bytecode Sourcemap

3530:17148:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6525:83;;;;;;;;;;-1:-1:-1;6595:5:0;;;;;;;;;;;;-1:-1:-1;;;6595:5:0;;;;6525:83;;;;;;;:::i;:::-;;;;;;;;7356:161;;;;;;;;;;-1:-1:-1;7356:161:0;;;;;:::i;:::-;;:::i;:::-;;;6688:14:1;;6681:22;6663:41;;6651:2;6636:18;7356:161:0;6523:187:1;6802:95:0;;;;;;;;;;-1:-1:-1;3933:12:0;6802:95;;;15615:25:1;;;15603:2;15588:18;6802:95:0;15469:177:1;16318:337:0;;;;;;;;;;-1:-1:-1;16318:337:0;;;;;:::i;:::-;;:::i;:::-;;7525:313;;;;;;;;;;-1:-1:-1;7525:313:0;;;;;:::i;:::-;;:::i;15987:323::-;;;;;;;;;;-1:-1:-1;15987:323:0;;;;;:::i;:::-;;:::i;17714:88::-;;;;;;;;;;-1:-1:-1;17714:88:0;;;;;:::i;:::-;;:::i;14347:109::-;;;;;;;;;;-1:-1:-1;14347:109:0;;;;;:::i;:::-;;:::i;15407:331::-;;;;;;;;;;-1:-1:-1;15407:331:0;;;;;:::i;:::-;;:::i;6711:83::-;;;;;;;;;;-1:-1:-1;6711:83:0;;4969:1;17102:36:1;;17090:2;17075:18;6711:83:0;16960:184:1;15746:111:0;;;;;;;;;;-1:-1:-1;15746:111:0;;;;;:::i;:::-;;:::i;7846:103::-;;;;;;;;;;-1:-1:-1;7846:103:0;;;;;:::i;:::-;;:::i;15092:307::-;;;;;;;;;;-1:-1:-1;15092:307:0;;;;;:::i;:::-;;:::i;19916:255::-;;;;;;;;;;;;;:::i;6905:117::-;;;;;;;;;;-1:-1:-1;6905:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6998:16:0;6971:7;6998:16;;;:7;:16;;;;;;;6905:117;2599:158;;;;;;;;;;;;;:::i;2385:79::-;;;;;;;;;;-1:-1:-1;2423:7:0;2450:6;2385:79;;-1:-1:-1;;;;;2450:6:0;;;4641:51:1;;4629:2;4614:18;2385:79:0;4495:203:1;6616:87:0;;;;;;;;;;-1:-1:-1;6688:7:0;;;;;;;;;;;;-1:-1:-1;;;6688:7:0;;;;6616:87;;7030:167;;;;;;;;;;-1:-1:-1;7030:167:0;;;;;:::i;:::-;;:::i;14468:317::-;;;;;;;;;;-1:-1:-1;14468:317:0;;;;;:::i;:::-;;:::i;14793:291::-;;;;;;;;;;-1:-1:-1;14793:291:0;;;;;:::i;:::-;;:::i;13953:164::-;;;;;;;;;;-1:-1:-1;13953:164:0;;;;;:::i;:::-;;:::i;19652:255::-;;;;;;;;;;;;;:::i;12965:976::-;;;;;;;;;;;;;:::i;7205:143::-;;;;;;;;;;-1:-1:-1;7205:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7313:18:0;;;7286:7;7313:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7205:143;7957:94;;;;;;;;;;-1:-1:-1;7957:94:0;;;;;:::i;:::-;;:::i;14232:103::-;;;;;;;;;;-1:-1:-1;14232:103:0;;;;;:::i;:::-;;:::i;15869:110::-;;;;;;;;;;-1:-1:-1;15869:110:0;;;;;:::i;:::-;;:::i;14125:99::-;;;;;;;;;;-1:-1:-1;14125:99:0;;;;;:::i;:::-;;:::i;20179:239::-;;;;;;;;;;;;;:::i;7356:161::-;7431:4;7448:39;182:10;7471:7;7480:6;7448:8;:39::i;:::-;-1:-1:-1;7505:4:0;7356:161;;;;;:::o;16318:337::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;;;;;;;;;16496:2:::1;16479:13:::0;16446:30:::1;16460:16:::0;16446:11;:30:::1;:::i;:::-;:46;;;;:::i;:::-;:52;;16438:84;;;::::0;-1:-1:-1;;;16438:84:0;;11040:2:1;16438:84:0::1;::::0;::::1;11022:21:1::0;11079:2;11059:18;;;11052:30;-1:-1:-1;;;11098:18:1;;;11091:49;11157:18;;16438:84:0::1;10838:343:1::0;16438:84:0::1;16533:12;:26:::0;;;;16570:17:::1;:36:::0;16617:14:::1;:30:::0;16318:337::o;7525:313::-;7623:4;7640:36;7650:6;7658:9;7669:6;7640:9;:36::i;:::-;7687:121;7696:6;182:10;7718:89;7756:6;7718:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7718:19:0;;;;;;:11;:19;;;;;;;;182:10;7718:33;;;;;;;;;;:37;:89::i;:::-;7687:8;:121::i;:::-;-1:-1:-1;7826:4:0;7525:313;;;;;:::o;15987:323::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;16158:2:::1;16142:12:::0;16111:28:::1;16124:15:::0;16111:10;:28:::1;:::i;:::-;:43;;;;:::i;:::-;:49;;16103:80;;;::::0;-1:-1:-1;;;16103:80:0;;10693:2:1;16103:80:0::1;::::0;::::1;10675:21:1::0;10732:2;10712:18;;;10705:30;-1:-1:-1;;;10751:18:1;;;10744:48;10809:18;;16103:80:0::1;10491:342:1::0;16103:80:0::1;16194:11;:24:::0;;;;16229:16:::1;:34:::0;16274:13:::1;:28:::0;15987:323::o;17714:88::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17774:12:0::1;17789:5;17774:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;17774:20:0::1;::::0;;17714:88::o;14347:109::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;14421:16:::1;:27:::0;14347:109::o;15407:331::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15498:29:0;::::1;15490:77;;;::::0;-1:-1:-1;;;15490:77:0;;12561:2:1;15490:77:0::1;::::0;::::1;12543:21:1::0;12600:2;12580:18;;;12573:30;12639:34;12619:18;;;12612:62;-1:-1:-1;;;12690:18:1;;;12683:33;12733:19;;15490:77:0::1;12359:399:1::0;15490:77:0::1;15597:16;::::0;;-1:-1:-1;;;;;15597:16:0;;::::1;15617:5;15578:36:::0;;;:18:::1;:36;::::0;;;;;:44;;-1:-1:-1;;15578:44:0;;::::1;::::0;;;15633:43;;-1:-1:-1;;;;;;15633:43:0::1;::::0;;;::::1;::::0;;::::1;::::0;;;15687:36;;;;;:43;;;;::::1;-1:-1:-1::0;15687:43:0::1;::::0;;15407:331::o;15746:111::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15815:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;15815:34:0::1;15845:4;15815:34;::::0;;15746:111::o;7846:103::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;7918:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;7918:23:0::1;-1:-1:-1::0;;;;7918:23:0;;::::1;::::0;;;::::1;::::0;;7846:103::o;15092:307::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15177:26:0;::::1;15169:71;;;::::0;-1:-1:-1;;;15169:71:0;;14128:2:1;15169:71:0::1;::::0;::::1;14110:21:1::0;;;14147:18;;;14140:30;14206:34;14186:18;;;14179:62;14258:18;;15169:71:0::1;13926:356:1::0;15169:71:0::1;15270:13;::::0;;-1:-1:-1;;;;;15270:13:0;;::::1;15287:5;15251:33:::0;;;:18:::1;:33;::::0;;;;;:41;;-1:-1:-1;;15251:41:0;;::::1;::::0;;;15303:37;;-1:-1:-1;;;;;;15303:37:0::1;::::0;;;::::1;::::0;;::::1;::::0;;;15351:33;;;;;:40;;;;::::1;-1:-1:-1::0;15351:40:0::1;::::0;;15092:307::o;19916:255::-;2423:7;2450:6;-1:-1:-1;;;;;2450:6:0;182:10;19966:23;;:54;;-1:-1:-1;20009:11:0;;-1:-1:-1;;;;;20009:11:0;182:10;-1:-1:-1;;;;;19993:27:0;;19966:54;19958:91;;;;-1:-1:-1;;;19958:91:0;;8682:2:1;19958:91:0;;;8664:21:1;8721:2;8701:18;;;8694:30;-1:-1:-1;;;8740:18:1;;;8733:54;8804:18;;19958:91:0;8480:348:1;19958:91:0;20091:21;20125:32;20091:21;20125:12;:32::i;:::-;19947:224;19916:255::o;2599:158::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;2706:1:::1;2690:6:::0;;2669:40:::1;::::0;-1:-1:-1;;;;;2690:6:0;;::::1;::::0;2669:40:::1;::::0;2706:1;;2669:40:::1;2737:1;2720:19:::0;;-1:-1:-1;;;;;;2720:19:0::1;::::0;;2599:158::o;7030:167::-;7108:4;7125:42;182:10;7149:9;7160:6;7125:9;:42::i;14468:317::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;14567:11:::1;14554:9;:24;;14546:90;;;::::0;-1:-1:-1;;;14546:90:0;;9035:2:1;14546:90:0::1;::::0;::::1;9017:21:1::0;9074:2;9054:18;;;9047:30;9113:34;9093:18;;;9086:62;-1:-1:-1;;;9164:18:1;;;9157:51;9225:19;;14546:90:0::1;8833:417:1::0;14546:90:0::1;14668:11;14655:9;:24;;14647:89;;;::::0;-1:-1:-1;;;14647:89:0;;9457:2:1;14647:89:0::1;::::0;::::1;9439:21:1::0;9496:2;9476:18;;;9469:30;9535:34;9515:18;;;9508:62;-1:-1:-1;;;9586:18:1;;;9579:50;9646:19;;14647:89:0::1;9255:416:1::0;14647:89:0::1;14747:18;:30:::0;14468:317::o;14793:291::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14874:24:0;::::1;14866:67;;;::::0;-1:-1:-1;;;14866:67:0;;14900:2:1;14866:67:0::1;::::0;::::1;14882:21:1::0;14939:2;14919:18;;;14912:30;14978:32;14958:18;;;14951:60;15028:18;;14866:67:0::1;14698:354:1::0;14866:67:0::1;14963:11;::::0;;-1:-1:-1;;;;;14963:11:0;;::::1;14978:5;14944:31:::0;;;:18:::1;:31;::::0;;;;;:39;;-1:-1:-1;;14944:39:0;;::::1;::::0;;;14994:33;;-1:-1:-1;;;;;;14994:33:0::1;::::0;;;::::1;::::0;;::::1;::::0;;;15038:31;;;;;:38;;;;::::1;-1:-1:-1::0;15038:38:0::1;::::0;;14793:291::o;13953:164::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;14027:6:::1;14022:88;14043:5;:12;14039:1;:16;14022:88;;;14094:4;14077;:14;14082:5;14088:1;14082:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14077:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14077:14:0;:21;;-1:-1:-1;;14077:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14057:3;::::1;::::0;::::1;:::i;:::-;;;;14022:88;;;;13953:164:::0;:::o;19652:255::-;2423:7;2450:6;-1:-1:-1;;;;;2450:6:0;182:10;19702:23;;:54;;-1:-1:-1;19745:11:0;;-1:-1:-1;;;;;19745:11:0;182:10;-1:-1:-1;;;;;19729:27:0;;19702:54;19694:91;;;;-1:-1:-1;;;19694:91:0;;8682:2:1;19694:91:0;;;8664:21:1;8721:2;8701:18;;;8694:30;-1:-1:-1;;;8740:18:1;;;8733:54;8804:18;;19694:91:0;8480:348:1;19694:91:0;19842:4;19798:23;6998:16;;;:7;:16;;;;;;19861:33;6998:16;19861;:33::i;12965:976::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;13029:11:::1;::::0;-1:-1:-1;;;13029:11:0;::::1;;;13028:12;13020:47;;;::::0;-1:-1:-1;;;13020:47:0;;13776:2:1;13020:47:0::1;::::0;::::1;13758:21:1::0;13815:2;13795:18;;;13788:30;13854:25;13834:18;;;13827:53;13897:18;;13020:47:0::1;13574:347:1::0;13020:47:0::1;13189:15;:34:::0;;-1:-1:-1;;;;;;13189:34:0::1;13135:42;13189:34:::0;;::::1;::::0;;;13234:58:::1;13251:4;13135:42:::0;3933:12:::1;13234:8;:58::i;:::-;13337:16;-1:-1:-1::0;;;;;13337:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13319:56:0::1;;13384:4;13391:16;-1:-1:-1::0;;;;;13391:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13319:96;::::0;-1:-1:-1;;;;;;13319:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4933:15:1;;;13319:96:0::1;::::0;::::1;4915:34:1::0;4985:15;;4965:18;;;4958:43;4850:18;;13319:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13303:13;:112:::0;;-1:-1:-1;;;;;13303:112:0;;::::1;-1:-1:-1::0;;;;;;13303:112:0;;::::1;;::::0;;13426:15:::1;::::0;::::1;:31;13465:21;13496:4;13502:24;13496:4:::0;-1:-1:-1;;;;;6998:16:0;6971:7;6998:16;;;:7;:16;;;;;;;6905:117;13502:24:::1;13527:1;13529::::0;13531:7:::1;2423::::0;2450:6;-1:-1:-1;;;;;2450:6:0;;2385:79;13531:7:::1;13539:15;13426:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13566:11:0::1;:18:::0;;13644:11:::1;13628:13;:27:::0;;;13666:14:::1;:28:::0;13724:11:::1;13705:16;:30:::0;13767:11:::1;13746:18;:32:::0;-1:-1:-1;;;;13789:18:0;;-1:-1:-1;;;13789:18:0;;;;13839:12:::1;13818:18;:33:::0;13900:15:::1;::::0;13862:71:::1;::::0;-1:-1:-1;;;13862:71:0;;-1:-1:-1;;;;;13900:15:0;;::::1;-1:-1:-1::0;13862:71:0;::::1;5186:51:1::0;-1:-1:-1;;5253:18:1;;;5246:34;13869:13:0;;;-1:-1:-1;13862:29:0::1;::::0;5159:18:1;;13862:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7957:94::-:0;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;8024:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;8024:19:0::1;-1:-1:-1::0;;;;8024:19:0;;::::1;::::0;;;::::1;::::0;;7957:94::o;14232:103::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;14303:14:::1;:24:::0;14232:103::o;15869:110::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15936:27:0::1;15966:5;15936:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;15936:35:0::1;::::0;;15869:110::o;14125:99::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;14194:13:::1;:22:::0;14125:99::o;20179:239::-;2512:6;;-1:-1:-1;;;;;2512:6:0;182:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;20246:11:::1;::::0;-1:-1:-1;;;20246:11:0;::::1;;;20245:12;20237:68;;;::::0;-1:-1:-1;;;20237:68:0;;15259:2:1;20237:68:0::1;::::0;::::1;15241:21:1::0;15298:2;15278:18;;;15271:30;15337:34;15317:18;;;15310:62;-1:-1:-1;;;15388:18:1;;;15381:41;15439:19;;20237:68:0::1;15057:407:1::0;20237:68:0::1;20352:58;::::0;20316:12:::1;::::0;20360:10:::1;::::0;20384:21:::1;::::0;20316:12;20352:58;20316:12;20352:58;20384:21;20360:10;20352:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;20179:239:0:o;8059:335::-;-1:-1:-1;;;;;8152:19:0;;8144:68;;;;-1:-1:-1;;;8144:68:0;;13371:2:1;8144:68:0;;;13353:21:1;13410:2;13390:18;;;13383:30;13449:34;13429:18;;;13422:62;-1:-1:-1;;;13500:18:1;;;13493:34;13544:19;;8144:68:0;13169:400:1;8144:68:0;-1:-1:-1;;;;;8231:21:0;;8223:68;;;;-1:-1:-1;;;8223:68:0;;7923:2:1;8223:68:0;;;7905:21:1;7962:2;7942:18;;;7935:30;8001:34;7981:18;;;7974:62;-1:-1:-1;;;8052:18:1;;;8045:32;8094:19;;8223:68:0;7721:398:1;8223:68:0;-1:-1:-1;;;;;8302:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8354:32;;15615:25:1;;;8354:32:0;;15588:18:1;8354:32:0;;;;;;;;8059:335;;;:::o;8402:1850::-;-1:-1:-1;;;;;8490:18:0;;8482:68;;;;-1:-1:-1;;;8482:68:0;;12965:2:1;8482:68:0;;;12947:21:1;13004:2;12984:18;;;12977:30;13043:34;13023:18;;;13016:62;-1:-1:-1;;;13094:18:1;;;13087:35;13139:19;;8482:68:0;12763:401:1;8482:68:0;-1:-1:-1;;;;;8569:16:0;;8561:64;;;;-1:-1:-1;;;8561:64:0;;7519:2:1;8561:64:0;;;7501:21:1;7558:2;7538:18;;;7531:30;7597:34;7577:18;;;7570:62;-1:-1:-1;;;7648:18:1;;;7641:33;7691:19;;8561:64:0;7317:399:1;8561:64:0;8653:1;8644:6;:10;8636:64;;;;-1:-1:-1;;;8636:64:0;;12151:2:1;8636:64:0;;;12133:21:1;12190:2;12170:18;;;12163:30;12229:34;12209:18;;;12202:62;-1:-1:-1;;;12280:18:1;;;12273:39;12329:19;;8636:64:0;11949:405:1;8636:64:0;8711:12;8742:15;8788:7;2423;2450:6;-1:-1:-1;;;;;2450:6:0;;2385:79;8788:7;-1:-1:-1;;;;;8780:15:0;:4;-1:-1:-1;;;;;8780:15:0;;;:32;;;;-1:-1:-1;2423:7:0;2450:6;-1:-1:-1;;;;;8799:13:0;;;2450:6;;8799:13;;8780:32;:52;;;;-1:-1:-1;;;;;;8816:16:0;;;;8780:52;:77;;;;-1:-1:-1;;;;;;8836:21:0;;8850:6;8836:21;;8780:77;:90;;;;-1:-1:-1;8862:8:0;;-1:-1:-1;;;8862:8:0;;;;8861:9;8780:90;8776:939;;;-1:-1:-1;;;;;8896:10:0;;;;;;:4;:10;;;;;;;;8895:11;:24;;;;-1:-1:-1;;;;;;8911:8:0;;;;;;:4;:8;;;;;;;;8910:9;8895:24;8887:33;;;;;;8978:13;;8947:4;;-1:-1:-1;;;;;;8970:21:0;;;8978:13;;8970:21;:55;;;;-1:-1:-1;9009:15:0;;-1:-1:-1;;;;;8995:30:0;;;9009:15;;8995:30;;8970:55;:82;;;;-1:-1:-1;;;;;;9030:22:0;;;;;;:18;:22;;;;;;;;9029:23;8970:82;:101;;;;-1:-1:-1;9056:15:0;;-1:-1:-1;;;9056:15:0;;;;8970:101;8966:451;;;9110:13;;9100:6;:23;;9092:77;;;;-1:-1:-1;;;9092:77:0;;10283:2:1;9092:77:0;;;10265:21:1;10322:2;10302:18;;;10295:30;10361:34;10341:18;;;10334:62;-1:-1:-1;;;10412:18:1;;;10405:39;10461:19;;9092:77:0;10081:405:1;9092:77:0;9222:16;;9212:6;9196:13;9206:2;-1:-1:-1;;;;;6998:16:0;6971:7;6998:16;;;:7;:16;;;;;;;6905:117;9196:13;:22;;;;:::i;:::-;:42;;9188:91;;;;-1:-1:-1;;;9188:91:0;;9878:2:1;9188:91:0;;;9860:21:1;9917:2;9897:18;;;9890:30;9956:34;9936:18;;;9929:62;-1:-1:-1;;;10007:18:1;;;10000:34;10051:19;;9188:91:0;9676:400:1;9188:91:0;-1:-1:-1;;;;;9306:12:0;;;;;;:8;:12;;;;;;9321:15;-1:-1:-1;9298:39:0;;;;;;9371:30;:15;9390:10;9371:30;:::i;:::-;-1:-1:-1;;;;;9356:12:0;;;;;;:8;:12;;;;;:45;8966:451;9455:13;;-1:-1:-1;;;;;9449:19:0;;;9455:13;;9449:19;:55;;;;-1:-1:-1;9488:15:0;;-1:-1:-1;;;;;9472:32:0;;;9488:15;;9472:32;;9449:55;:84;;;;-1:-1:-1;;;;;;9509:24:0;;;;;;:18;:24;;;;;;;;9508:25;9449:84;:103;;;;-1:-1:-1;9537:15:0;;-1:-1:-1;;;9537:15:0;;;;9449:103;9445:259;;;9591:14;;9581:6;:24;;9573:79;;;;-1:-1:-1;;;9573:79:0;;14489:2:1;9573:79:0;;;14471:21:1;14528:2;14508:18;;;14501:30;14567:34;14547:18;;;14540:62;-1:-1:-1;;;14618:18:1;;;14611:40;14668:19;;9573:79:0;14287:406:1;9573:79:0;-1:-1:-1;9684:4:0;9445:259;-1:-1:-1;;;;;9730:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;9758:22:0;;;;;;:18;:22;;;;;;;;9730:50;9727:97;;;9807:5;9797:15;;9727:97;9885:4;9836:28;6998:16;;;:7;:16;;;;;;9836:55;;9902:12;9941:18;;9918:20;:41;9917:57;;;;;9964:10;9917:57;9902:72;;9991:7;:22;;;;-1:-1:-1;10002:11:0;;-1:-1:-1;;;10002:11:0;;;;9991:22;:35;;;;-1:-1:-1;10018:8:0;;-1:-1:-1;;;10018:8:0;;;;10017:9;9991:35;:64;;;;-1:-1:-1;;;;;;10031:24:0;;;;;;:18;:24;;;;;;;;10030:25;9991:64;:91;;;;-1:-1:-1;;;;;;10060:22:0;;;;;;:18;:22;;;;;;;;10059:23;9991:91;9987:195;;;10099:8;:15;;-1:-1:-1;;;;10099:15:0;-1:-1:-1;;;10099:15:0;;;10129:10;:8;:10::i;:::-;10154:8;:16;;-1:-1:-1;;;;10154:16:0;;;9987:195;10194:50;10209:4;10214:2;10217:6;10224:7;10233:10;10194:14;:50::i;:::-;8471:1781;;;;8402:1850;;;:::o;1240:190::-;1326:7;1362:12;1354:6;;;;1346:29;;;;-1:-1:-1;;;1346:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1386:9:0;1398:5;1402:1;1398;:5;:::i;:::-;1386:17;1240:190;-1:-1:-1;;;;;1240:190:0:o;12860:93::-;12917:11;;:28;;-1:-1:-1;;;;;12917:11:0;;;;:28;;;;;12938:6;;12917:11;:28;:11;:28;12938:6;12917:11;:28;;;;;;;;;;;;;;;;;;;11930:483;5830:6;:13;;-1:-1:-1;;;;5830:13:0;-1:-1:-1;;;5830:13:0;;;12032:16:::1;::::0;;12046:1:::1;12032:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12032:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12032:16:0::1;12008:40;;12077:4;12059;12064:1;12059:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12059:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12103:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12103:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12059:7;;12103:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12093:4;12098:1;12093:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12093:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12168:15:::1;::::0;12136:62:::1;::::0;12153:4:::1;::::0;12168:15:::1;12186:11:::0;12136:8:::1;:62::i;:::-;12209:15;::::0;:196:::1;::::0;-1:-1:-1;;;12209:196:0;;-1:-1:-1;;;;;12209:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12290:11;;12209:15:::1;::::0;12332:4;;12359::::1;::::0;12379:15:::1;::::0;12209:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5866:6:0;:14;;-1:-1:-1;;;;5866:14:0;;;-1:-1:-1;;;;11930:483:0:o;10260:1662::-;10343:4;10299:23;6998:16;;;:7;:16;;;;;;10299:50;;10360:25;10427:13;;10409:15;;10388:18;;:36;;;;:::i;:::-;:52;;;;:::i;:::-;10360:80;-1:-1:-1;10451:12:0;10487:20;;;:46;;-1:-1:-1;10511:22:0;;10487:46;10484:60;;;10536:7;;;10260:1662::o;10484:60::-;10577:18;;:23;;10598:2;10577:23;:::i;:::-;10559:15;:41;10556:114;;;10635:18;;:23;;10656:2;10635:23;:::i;:::-;10617:41;;10556:114;10739:23;10824:1;10804:17;10783:18;;10765:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;10739:86;-1:-1:-1;10836:26:0;10865:36;:15;10739:86;10865:19;:36::i;:::-;10836:65;-1:-1:-1;10950:21:0;10984:36;10836:65;10984:16;:36::i;:::-;11042:18;11063:44;:21;11089:17;11063:25;:44::i;:::-;11042:65;;11128:20;11151:54;11187:17;11151:31;11166:15;;11151:10;:14;;:31;;;;:::i;:::-;:35;;:54::i;:::-;11128:77;;11216:18;11237:52;11271:17;11237:29;11252:13;;11237:10;:14;;:29;;;;:::i;:52::-;11216:73;-1:-1:-1;11320:23:0;11216:73;11346:25;11359:12;11346:10;:25;:::i;:::-;:38;;;;:::i;:::-;11436:1;11415:18;:22;;;11448:15;:19;;;11478:13;:17;;;11537:13;;11529:52;;11320:64;;-1:-1:-1;;;;;;11537:13:0;;11564:12;;11529:52;11436:1;11529:52;11564:12;11537:13;11529:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11516:65:0;;-1:-1:-1;;11605:19:0;;;;;:42;;;11646:1;11628:15;:19;11605:42;11602:210;;;11663:46;11676:15;11693;11663:12;:46::i;:::-;11781:18;;11729:71;;;16838:25:1;;;16894:2;16879:18;;16872:34;;;16922:18;;;16915:34;;;;11729:71:0;;;;;;16826:2:1;11729:71:0;;;11602:210;11863:11;;11855:59;;-1:-1:-1;;;;;11863:11:0;;;;11888:21;;11855:59;;;;11888:21;11863:11;11855:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;10260:1662:0:o;17818:389::-;17943:7;17939:129;;17967:14;:12;:14::i;:::-;17939:129;;;18023:33;18033:6;18041;18049;18023:9;:33::i;:::-;18014:42;;17939:129;18080:44;18098:6;18106:9;18117:6;18080:17;:44::i;:::-;18149:7;18145:55;;18173:15;17421:19;;17407:11;:33;17470:24;;17451:16;:43;17521:21;;17505:13;:37;17568:20;;17553:12;:35;17619:25;;17599:17;:45;17672:22;;17655:14;:39;17363:339;18173:15;17818:389;;;;;:::o;1096:136::-;1154:7;1181:43;1185:1;1188;1181:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1174:50;1096:136;-1:-1:-1;;;1096:136:0:o;1438:246::-;1496:7;1520:6;1516:47;;-1:-1:-1;1550:1:0;1543:8;;1516:47;1573:9;1585:5;1589:1;1585;:5;:::i;:::-;1573:17;-1:-1:-1;1618:1:0;1609:5;1613:1;1573:17;1609:5;:::i;:::-;:10;1601:56;;;;-1:-1:-1;;;1601:56:0;;11388:2:1;1601:56:0;;;11370:21:1;11427:2;11407:18;;;11400:30;11466:34;11446:18;;;11439:62;-1:-1:-1;;;11517:18:1;;;11510:31;11558:19;;1601:56:0;11186:397:1;1692:132:0;1750:7;1777:39;1781:1;1784;1777:39;;;;;;;;;;;;;;;;;:3;:39::i;12421:423::-;12534:15;;12502:62;;12519:4;;-1:-1:-1;;;;;12534:15:0;12552:11;12502:8;:62::i;:::-;12575:15;;12779:16;;12575:261;;-1:-1:-1;;;12575:261:0;;-1:-1:-1;;;;;12575:15:0;;;;:31;;12614:9;;12575:261;;12647:4;;12667:11;;12575:15;;;;12779:16;;12810:15;;12575:261;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16665:686::-;16711:11;;:16;:41;;;;-1:-1:-1;16731:16:0;;:21;16711:41;:63;;;;-1:-1:-1;16756:13:0;;:18;16711:63;:84;;;;-1:-1:-1;16778:12:0;;:17;16711:84;:110;;;;-1:-1:-1;16799:17:0;;:22;16711:110;:133;;;;-1:-1:-1;16825:14:0;;:19;16711:133;16708:145;;;16665:686::o;16708:145::-;16895:11;;;16873:19;:33;16944:16;;;16917:24;:43;16995:13;;;16971:21;:37;17042:12;;;17019:20;:35;17093:17;;;17065:25;:45;17146:14;;;17121:22;:39;-1:-1:-1;17181:15:0;;;;17207:20;;;;17238:17;;;;17266:16;;;17293:21;;;17325:18;16665:686::o;18490:1112::-;18571:7;18591:18;18620:15;18646:14;18671:15;18742:12;18721:17;;18700:18;;:38;;;;:::i;:::-;:54;18697:512;;18783:2;18770:15;;18809:2;18800:11;;18697:512;;;18857:21;18871:6;18857:13;:21::i;:::-;18844:34;;18897:6;18893:305;;;18934:12;;18924:22;;18974:17;;18965:26;;19020:14;;19010:24;;18893:305;;;19085:11;;19075:21;;19124:16;;19115:25;;19169:13;;19159:23;;18893:305;19221:12;19236:31;19263:3;19236:22;:6;19247:10;19236;:22::i;:31::-;19221:46;-1:-1:-1;19314:10:0;19297:14;19304:7;19221:46;19297:14;:::i;:::-;:27;;;;:::i;:::-;19278:15;;:46;;;;;;;:::i;:::-;;;;-1:-1:-1;19369:10:0;;-1:-1:-1;19352:14:0;19359:7;19352:4;:14;:::i;:::-;:27;;;;:::i;:::-;19335:13;;:44;;;;;;;:::i;:::-;;;;-1:-1:-1;19428:10:0;;-1:-1:-1;19412:13:0;19419:6;19412:4;:13;:::i;:::-;:26;;;;:::i;:::-;19390:18;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;;19466:8:0;;19463:86;;19491:46;19509:6;19525:4;19532;19491:17;:46::i;:::-;19580:14;19590:4;19580:14;;:::i;:::-;;18490:1112;-1:-1:-1;;;;;;;;;18490:1112:0:o;18215:267::-;-1:-1:-1;;;;;18331:15:0;;;;;;:7;:15;;;;;;:28;;18351:7;18331:19;:28::i;:::-;-1:-1:-1;;;;;18313:15:0;;;;;;;:7;:15;;;;;;:46;;;;18391:18;;;;;;;:31;;18414:7;18391:22;:31::i;:::-;-1:-1:-1;;;;;18370:18:0;;;;;;;:7;:18;;;;;;;:52;;;;18438:36;;;;;;;;;;18466:7;15615:25:1;;15603:2;15588:18;;15469:177;1832:189:0;1918:7;1953:12;1946:5;1938:28;;;;-1:-1:-1;;;1938:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1977:9:0;1989:5;1993:1;1989;:5;:::i;20426:243::-;20483:7;20507:6;20503:95;;;20572:14;;20552:17;;20537:12;;:32;;;;:::i;:::-;:49;;;;:::i;20503:95::-;20648:13;;20629:16;;20615:11;;:30;;;;:::i;909:179::-;967:7;;999:5;1003:1;999;:5;:::i;:::-;987:17;;1028:1;1023;:6;;1015:46;;;;-1:-1:-1;;;1015:46:0;;8326:2:1;1015:46:0;;;8308:21:1;8365:2;8345:18;;;8338:30;8404:29;8384:18;;;8377:57;8451:18;;1015:46:0;8124:351:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:52;;;544:1;541;534:12;496:52;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:52;;;806:1;803;796:12;758:52;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;661:388;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:52;;;1216:1;1213;1206:12;1168:52;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1054:456;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1054:456::o;1515:315::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:52;;;1660:1;1657;1650:12;1612:52;1699:9;1686:23;1718:31;1743:5;1718:31;:::i;:::-;1768:5;1820:2;1805:18;;;;1792:32;;-1:-1:-1;;;1515:315:1:o;1835:1132::-;1919:6;1950:2;1993;1981:9;1972:7;1968:23;1964:32;1961:52;;;2009:1;2006;1999:12;1961:52;2049:9;2036:23;2078:18;2119:2;2111:6;2108:14;2105:34;;;2135:1;2132;2125:12;2105:34;2173:6;2162:9;2158:22;2148:32;;2218:7;2211:4;2207:2;2203:13;2199:27;2189:55;;2240:1;2237;2230:12;2189:55;2276:2;2263:16;2298:2;2294;2291:10;2288:36;;;2304:18;;:::i;:::-;2350:2;2347:1;2343:10;2382:2;2376:9;2445:2;2441:7;2436:2;2432;2428:11;2424:25;2416:6;2412:38;2500:6;2488:10;2485:22;2480:2;2468:10;2465:18;2462:46;2459:72;;;2511:18;;:::i;:::-;2547:2;2540:22;2597:18;;;2631:15;;;;-1:-1:-1;2666:11:1;;;2696;;;2692:20;;2689:33;-1:-1:-1;2686:53:1;;;2735:1;2732;2725:12;2686:53;2757:1;2748:10;;2767:169;2781:2;2778:1;2775:9;2767:169;;;2838:23;2857:3;2838:23;:::i;:::-;2826:36;;2799:1;2792:9;;;;;2882:12;;;;2914;;2767:169;;;-1:-1:-1;2955:6:1;1835:1132;-1:-1:-1;;;;;;;;1835:1132:1:o;2972:241::-;3028:6;3081:2;3069:9;3060:7;3056:23;3052:32;3049:52;;;3097:1;3094;3087:12;3049:52;3136:9;3123:23;3155:28;3177:5;3155:28;:::i;3218:245::-;3285:6;3338:2;3326:9;3317:7;3313:23;3309:32;3306:52;;;3354:1;3351;3344:12;3306:52;3386:9;3380:16;3405:28;3427:5;3405:28;:::i;3468:180::-;3527:6;3580:2;3568:9;3559:7;3555:23;3551:32;3548:52;;;3596:1;3593;3586:12;3548:52;-1:-1:-1;3619:23:1;;3468:180;-1:-1:-1;3468:180:1:o;3653:316::-;3730:6;3738;3746;3799:2;3787:9;3778:7;3774:23;3770:32;3767:52;;;3815:1;3812;3805:12;3767:52;-1:-1:-1;;3838:23:1;;;3908:2;3893:18;;3880:32;;-1:-1:-1;3959:2:1;3944:18;;;3931:32;;3653:316;-1:-1:-1;3653:316:1:o;3974:306::-;4062:6;4070;4078;4131:2;4119:9;4110:7;4106:23;4102:32;4099:52;;;4147:1;4144;4137:12;4099:52;4176:9;4170:16;4160:26;;4226:2;4215:9;4211:18;4205:25;4195:35;;4270:2;4259:9;4255:18;4249:25;4239:35;;3974:306;;;;;:::o;5291:615::-;-1:-1:-1;;;;;5658:15:1;;;5640:34;;5705:2;5690:18;;5683:34;;;;5748:2;5733:18;;5726:34;;;;5791:2;5776:18;;5769:34;;;;5840:15;;;5834:3;5819:19;;5812:44;5620:3;5872:19;;5865:35;;;;5589:3;5574:19;;5291:615::o;6715:597::-;6827:4;6856:2;6885;6874:9;6867:21;6917:6;6911:13;6960:6;6955:2;6944:9;6940:18;6933:34;6985:1;6995:140;7009:6;7006:1;7003:13;6995:140;;;7104:14;;;7100:23;;7094:30;7070:17;;;7089:2;7066:26;7059:66;7024:10;;6995:140;;;7153:6;7150:1;7147:13;7144:91;;;7223:1;7218:2;7209:6;7198:9;7194:22;7190:31;7183:42;7144:91;-1:-1:-1;7296:2:1;7275:15;-1:-1:-1;;7271:29:1;7256:45;;;;7303:2;7252:54;;6715:597;-1:-1:-1;;;6715:597:1:o;11588:356::-;11790:2;11772:21;;;11809:18;;;11802:30;11868:34;11863:2;11848:18;;11841:62;11935:2;11920:18;;11588:356::o;15651:980::-;15913:4;15961:3;15950:9;15946:19;15992:6;15981:9;15974:25;16018:2;16056:6;16051:2;16040:9;16036:18;16029:34;16099:3;16094:2;16083:9;16079:18;16072:31;16123:6;16158;16152:13;16189:6;16181;16174:22;16227:3;16216:9;16212:19;16205:26;;16266:2;16258:6;16254:15;16240:29;;16287:1;16297:195;16311:6;16308:1;16305:13;16297:195;;;16376:13;;-1:-1:-1;;;;;16372:39:1;16360:52;;16467:15;;;;16432:12;;;;16408:1;16326:9;16297:195;;;-1:-1:-1;;;;;;;16548:32:1;;;;16543:2;16528:18;;16521:60;-1:-1:-1;;;16612:3:1;16597:19;16590:35;16509:3;15651:980;-1:-1:-1;;;15651:980:1:o;17149:128::-;17189:3;17220:1;17216:6;17213:1;17210:13;17207:39;;;17226:18;;:::i;:::-;-1:-1:-1;17262:9:1;;17149:128::o;17282:217::-;17322:1;17348;17338:132;;17392:10;17387:3;17383:20;17380:1;17373:31;17427:4;17424:1;17417:15;17455:4;17452:1;17445:15;17338:132;-1:-1:-1;17484:9:1;;17282:217::o;17504:168::-;17544:7;17610:1;17606;17602:6;17598:14;17595:1;17592:21;17587:1;17580:9;17573:17;17569:45;17566:71;;;17617:18;;:::i;:::-;-1:-1:-1;17657:9:1;;17504:168::o;17677:125::-;17717:4;17745:1;17742;17739:8;17736:34;;;17750:18;;:::i;:::-;-1:-1:-1;17787:9:1;;17677:125::o;17807:135::-;17846:3;-1:-1:-1;;17867:17:1;;17864:43;;;17887:18;;:::i;:::-;-1:-1:-1;17934:1:1;17923:13;;17807:135::o;17947:127::-;18008:10;18003:3;17999:20;17996:1;17989:31;18039:4;18036:1;18029:15;18063:4;18060:1;18053:15;18079:127;18140:10;18135:3;18131:20;18128:1;18121:31;18171:4;18168:1;18161:15;18195:4;18192:1;18185:15;18211:127;18272:10;18267:3;18263:20;18260:1;18253:31;18303:4;18300:1;18293:15;18327:4;18324:1;18317:15;18343:131;-1:-1:-1;;;;;18418:31:1;;18408:42;;18398:70;;18464:1;18461;18454:12;18479:118;18565:5;18558:13;18551:21;18544:5;18541:32;18531:60;;18587:1;18584;18577:12

Swarm Source

ipfs://ca0fc04ce1b8ac57c7cc71cc397b8817b3b458f27d99da3541e0fca20ae64d6f
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.