ETH Price: $2,395.71 (-3.76%)

Contract

0x341998db59c7e2c8bDE5bbf650563516422d525E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve205550922024-08-18 11:03:5945 days ago1723979039IN
0x341998db...6422d525E
0 ETH0.000056251.20871274
Approve198956262024-05-18 8:25:35137 days ago1716020735IN
0x341998db...6422d525E
0 ETH0.000191014.10389812
Approve198074212024-05-06 0:18:35150 days ago1714954715IN
0x341998db...6422d525E
0 ETH0.000219434.71457041
Approve193687332024-03-05 11:41:59211 days ago1709638919IN
0x341998db...6422d525E
0 ETH0.0028274460.6695727
Approve193429432024-03-01 21:13:47215 days ago1709327627IN
0x341998db...6422d525E
0 ETH0.0026841757.59546032
Approve177300352023-07-19 21:52:23441 days ago1689803543IN
0x341998db...6422d525E
0 ETH0.0013852729.72428706
Approve168341802023-03-15 15:27:47567 days ago1678894067IN
0x341998db...6422d525E
0 ETH0.0008176533.62073557
Approve164013432023-01-14 0:05:11628 days ago1673654711IN
0x341998db...6422d525E
0 ETH0.0006623627.23555321
Approve158870252022-11-03 4:11:47699 days ago1667448707IN
0x341998db...6422d525E
0 ETH0.0003345213.75530309
Approve151236282022-07-11 20:51:35814 days ago1657572695IN
0x341998db...6422d525E
0 ETH0.000491320.20177739
Approve151235302022-07-11 20:31:59814 days ago1657571519IN
0x341998db...6422d525E
0 ETH0.0019400941.85562598
Approve146770292022-04-29 4:14:39887 days ago1651205679IN
0x341998db...6422d525E
0 ETH0.0021851746.88824345
Approve146004622022-04-17 3:36:11900 days ago1650166571IN
0x341998db...6422d525E
0 ETH0.0010590522.72458286
Transfer146003082022-04-17 3:01:35900 days ago1650164495IN
0x341998db...6422d525E
0 ETH0.0055936220.16838878
Approve145821722022-04-14 7:19:37902 days ago1649920777IN
0x341998db...6422d525E
0 ETH0.0020294443.54652814
Approve144817662022-03-29 14:58:19918 days ago1648565899IN
0x341998db...6422d525E
0 ETH0.0021903847
Approve144815572022-03-29 14:11:40918 days ago1648563100IN
0x341998db...6422d525E
0 ETH0.0016765535.97445347
Approve144377472022-03-22 18:33:36925 days ago1647974016IN
0x341998db...6422d525E
0 ETH0.001254951.5997406
Approve144321532022-03-21 21:35:32926 days ago1647898532IN
0x341998db...6422d525E
0 ETH0.0015411933.07
Approve144183022022-03-19 17:46:37928 days ago1647711997IN
0x341998db...6422d525E
0 ETH0.0010258722.01260074
Approve143870422022-03-14 20:59:01933 days ago1647291541IN
0x341998db...6422d525E
0 ETH0.001543233.11318076
Approve143805022022-03-13 20:42:53934 days ago1647204173IN
0x341998db...6422d525E
0 ETH0.0011786125.2899575
Approve143761002022-03-13 3:57:53934 days ago1647143873IN
0x341998db...6422d525E
0 ETH0.0009592420.5829294
Approve143509422022-03-09 6:09:27938 days ago1646806167IN
0x341998db...6422d525E
0 ETH0.0013970629.97726551
Approve142981192022-03-01 1:21:10947 days ago1646097670IN
0x341998db...6422d525E
0 ETH0.0038960983.6
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
146770462022-04-29 4:18:27887 days ago1651205907
0x341998db...6422d525E
0.02916599 ETH
146770462022-04-29 4:18:27887 days ago1651205907
0x341998db...6422d525E
0.02916599 ETH
146004672022-04-17 3:37:31900 days ago1650166651
0x341998db...6422d525E
0.03196524 ETH
146004672022-04-17 3:37:31900 days ago1650166651
0x341998db...6422d525E
0.03196524 ETH
146003082022-04-17 3:01:35900 days ago1650164495
0x341998db...6422d525E
0.0303204 ETH
146003082022-04-17 3:01:35900 days ago1650164495
0x341998db...6422d525E
0.0303204 ETH
145823232022-04-14 7:54:19902 days ago1649922859
0x341998db...6422d525E
0.03175113 ETH
145823232022-04-14 7:54:19902 days ago1649922859
0x341998db...6422d525E
0.03175113 ETH
145821822022-04-14 7:22:30902 days ago1649920950
0x341998db...6422d525E
0.03312093 ETH
145821822022-04-14 7:22:30902 days ago1649920950
0x341998db...6422d525E
0.03312093 ETH
145259842022-04-05 12:48:20911 days ago1649162900
0x341998db...6422d525E
0.03467375 ETH
145259842022-04-05 12:48:20911 days ago1649162900
0x341998db...6422d525E
0.03467375 ETH
143951902022-03-16 3:31:01932 days ago1647401461
0x341998db...6422d525E
0.03662272 ETH
143951902022-03-16 3:31:01932 days ago1647401461
0x341998db...6422d525E
0.03662272 ETH
142992462022-03-01 5:37:37946 days ago1646113057
0x341998db...6422d525E
0.03700873 ETH
142992462022-03-01 5:37:37946 days ago1646113057
0x341998db...6422d525E
0.03700873 ETH
142443272022-02-20 17:50:37955 days ago1645379437
0x341998db...6422d525E
0.03825261 ETH
142443272022-02-20 17:50:37955 days ago1645379437
0x341998db...6422d525E
0.03825261 ETH
142359112022-02-19 10:07:26956 days ago1645265246
0x341998db...6422d525E
0.04041373 ETH
142359112022-02-19 10:07:26956 days ago1645265246
0x341998db...6422d525E
0.04041373 ETH
142303362022-02-18 13:19:00957 days ago1645190340
0x341998db...6422d525E
0.04138432 ETH
142303362022-02-18 13:19:00957 days ago1645190340
0x341998db...6422d525E
0.04138432 ETH
142301992022-02-18 12:51:55957 days ago1645188715
0x341998db...6422d525E
0.04210119 ETH
142301992022-02-18 12:51:55957 days ago1645188715
0x341998db...6422d525E
0.04210119 ETH
142204232022-02-17 0:35:10959 days ago1645058110
0x341998db...6422d525E
0.04393013 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DINJA

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
 * 
 * $DINJA - DOGE NINJA SAMURAI
 *
 * 
 * 
 * 💻 Website: https://dinjatoken.com/
 * 💬 Telegram: http://t.me/dinjatoken
 * 🐦 Twitter: https://twitter.com/DinjaToken
 *
 *
 * ██████╗░██╗███╗░░██╗░░░░░██╗░█████╗░
 * ██╔══██╗██║████╗░██║░░░░░██║██╔══██╗
 * ██║░░██║██║██╔██╗██║░░░░░██║███████║
 * ██║░░██║██║██║╚████║██╗░░██║██╔══██║
 * ██████╔╝██║██║░╚███║╚█████╔╝██║░░██║
 * ╚═════╝░╚═╝╚═╝░░╚══╝░╚════╝░╚═╝░░╚═╝
 * 
 *          ▄              ▄    
 *         ▌▒█           ▄▀▒▌   
 *         ▌▒▒█        ▄▀▒▒▒▐   
 *        ▐▄█▒▒▀▀▀▀▄▄▄▀▒▒▒▒▒▐   
 *      ▄▄▀▒▒▒▒▒▒▒▒▒▒▒█▒▒▄█▒▐   
 *    ▄▀▒▒▒░░░▒▒▒░░░▒▒▒▀██▀▒▌   
 *   ▐▒▒▒▄▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▀▄▒▌  
 *   ▌░░▌█▀▒▒▒▒▒▄▀█▄▒▒▒▒▒▒▒█▒▐  
 *  ▐░░░▒▒▒▒▒▒▒▒▌██▀▒▒░░░▒▒▒▀▄▌ 
 *  ▌░▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░▒▒▒▒▌ 
 * ▌▒▒▒▄██▄▒▒▒▒▒▒▒▒░░░░░░░░▒▒▒▐ 
 * ▐▒▒▐▄█▄█▌▒▒▒▒▒▒▒▒▒▒░▒░▒░▒▒▒▒▌
 * ▐▒▒▐▀▐▀▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░▒░▒▒▐ 
 *  ▌▒▒▀▄▄▄▄▄▄▒▒▒▒▒▒▒▒░▒░▒░▒▒▒▌ 
 *  ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░▒▒▄▒▒▐  
 *   ▀▄▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░▒▄▒▒▒▒▌  
 *     ▀▄▒▒▒▒▒▒▒▒▒▒▄▄▄▀▒▒▒▒▄▀   
 *       ▀▄▄▄▄▄▄▀▀▀▒▒▒▒▒▄▄▀     
 *          ▀▀▀▀▀▀▀▀▀▀▀▀        
 *
 * 
 * Tokenomics:
 * 
 * Normal Buy Tax = 10% 
 * Normal Sell Tax = 10%
 * Early snipers/movers advantage will be limited.
 * Anti-dump Tokenomics where sell tax will be proportional to price impact
 * 
 * 10% of all taxes collected will be redistributed to reward the holders
 *
 * Max Tx at the start - 0.5% of the supply, Max Wallet 1.5% 
 * Tax will keep reducing by 1% every 400 transactions to make it more affordable 
 * and long-term growth of the project 
 * 
 * 
 * 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;
    }

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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 DINJA is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _bots;
    mapping (address => User) private trader;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    string private constant _name = unicode"DOGE NINJA SAMURAI";
    string private constant _symbol = unicode"DINJA";
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 1;
    uint256 private _teamFee = 6;
    uint256 private _launchTime;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    // uint256 private _maxBuyAmount;
    address payable private _FeeAddress;
    address payable private _marketingWalletAddress;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    // bool private _cooldownEnabled = true;
    bool private _communityMode = false;
    bool private inSwap = false;
    uint256 private _launchBlock = 0;
    // uint256 private buyLimitEnd;
    uint256 private _snipersTaxed = 0;
    uint256 private _transactionCount = 0;
    uint256 private _impactMultiplier = 1000;
    bool public swapAndLiquifyEnabled = true;
    uint256 private discountTaxFee = 0;

    //Keep it 0.5% of the supply
    uint256 public _maxTxAmount = 1000000000000 * 10**9;
    //1.5% of the supply
    uint256 public _maxWallet = 15000000000 * 10**9;

    uint256 public numTokensSellToAddToLiquidity = 2000000000 * 10**9;


    struct User {
        uint256 buyCD;
        bool exists;
    }

    // event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event CooldownEnabledUpdated(bool _cooldown);
    event FeeMultiplierUpdated(uint _multiplier);
    event FeeRateUpdated(uint _rate);

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address payable FeeAddress, address payable marketingWalletAddress) {
        _FeeAddress = FeeAddress;
        _marketingWalletAddress = marketingWalletAddress;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[FeeAddress] = true;
        _isExcludedFromFee[marketingWalletAddress] = true;
        emit Transfer(address(0), _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 snipersTaxed() public view returns (uint256) {
        return _snipersTaxed;
    }

    function taxDiscount() public view returns (uint256) {
        return discountTaxFee;
    }

    function transactionCount() public view returns (uint256) {
        return _transactionCount;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_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 tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    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");
        if(from != owner() && to != owner()) {
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            require(!_bots[from] && !_bots[to]);
            
            if(!trader[msg.sender].exists) {
                trader[msg.sender] = User(0,true);
            }
            uint256 totalFee = 10;
            // buy
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                require(amount + balanceOf(to) <= _maxWallet, "Cannot exceed max wallet");

                if(block.number < _launchBlock + 2) {
                    totalFee = 80;
                    _snipersTaxed++;
                } else if(block.timestamp > _launchTime + (2 minutes)) {
                    totalFee = 10;
                } else if (block.timestamp > _launchTime + (45 seconds)) {
                    totalFee = 20;
                } else {
                    totalFee = 40;
                }
                totalFee = totalFee - discountTaxFee;
                _taxFee = (totalFee).div(10);
                _teamFee = (totalFee.mul(9)).div(10);
                
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            // sell
            if(!inSwap && from != uniswapV2Pair && tradingOpen) {

                //price impact based sell tax
                uint256 amountImpactMultiplier = amount.mul(_impactMultiplier);
                uint256 priceImpact = amountImpactMultiplier.div(balanceOf(uniswapV2Pair).add(amount));
                
                if (priceImpact <= 10) {
                    totalFee = 10;
                } else if (priceImpact >= 40) {
                    totalFee = 40;
                } else if (priceImpact.mod(2) != 0) {
                    totalFee = ++priceImpact;
                } else {
                    totalFee = priceImpact;
                }
                
                totalFee = totalFee - discountTaxFee;

                _taxFee = (totalFee).div(10);
                _teamFee = (totalFee.mul(9)).div(10);

                //To limit big dumps by the contract before the sells
                if(contractTokenBalance >= _maxTxAmount) {
                    contractTokenBalance = _maxTxAmount;
                }

                // bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
                if (contractTokenBalance >= numTokensSellToAddToLiquidity) {
                    swapTokensForEth(numTokensSellToAddToLiquidity);
                }

                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to] || _communityMode){
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    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 sendETHToFee(uint256 amount) private {
        _marketingWalletAddress.transfer(amount);
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
        _transactionCount++;
        if (_transactionCount.mod(400) == 0) {
            if (discountTaxFee < 8) {
                discountTaxFee++;
            }
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    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);
        _maxTxAmount = 5000000001 * 10**9;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
        _launchTime = block.timestamp;
        _launchBlock = block.number;
    }

    function setMarketingWallet (address payable marketingWalletAddress) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[_marketingWalletAddress] = false;
        _marketingWalletAddress = marketingWalletAddress;
        _isExcludedFromFee[marketingWalletAddress] = true;
    }

    function removeTransactionLimits() external onlyOwner() {
        //Meaning no max limits on transaction, guardrail of maxWallet will come into picture
        _maxTxAmount = 1000000000000 * 10**9;
    }

    function increaseMaxWallet() external onlyOwner() {
        //Max wallet increased to 2% of the supply if at all it is ever required
        _maxWallet = 20000000000 * 10**9;
    }

    function setSwapThresholdAmount(uint256 SwapThresholdAmount) external onlyOwner() {
        require(SwapThresholdAmount > 1000000000, "Swap Threshold Amount cannot be less than 1 Billion");
        numTokensSellToAddToLiquidity = SwapThresholdAmount * 10**9;
    }
    
    function claimTokens () public onlyOwner {
        payable(_marketingWalletAddress).transfer(address(this).balance);
    }
    
    function claimOtherTokens(IERC20 tokenAddress, address walletaddress) external onlyOwner() {
        tokenAddress.transfer(walletaddress, tokenAddress.balanceOf(address(this)));
    }
    
    function clearStuckBalance (address payable walletaddress) external onlyOwner() {
        walletaddress.transfer(address(this).balance);
    }

    function excludeFromFee (address payable ad) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[ad] = true;
    }
    
    function includeToFee (address payable ad) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[ad] = false;
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        //Cannot set bots after 20 minutes of launch time making users fund SAFU
        if (block.timestamp < _launchTime + (20 minutes)) {
            for (uint i = 0; i < bots_.length; i++) {
                if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
                    _bots[bots_[i]] = true;
                }
            }
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        _bots[notbot] = false;
    }
    
    function isBot(address ad) public view returns (bool) {
        return _bots[ad];
    }
    
    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        // split the contract balance into halves
        // add the marketing wallet
        uint256 half = contractTokenBalance.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);

        // capture the contract's current ETH balance.
        // this is so that we can capture exactly the amount of ETH that the
        // swap creates, and not make the liquidity event include any ETH that
        // has been manually sent to the contract
        uint256 initialBalance = address(this).balance;

        // swap tokens for ETH
        swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered

        // how much ETH did we just swap into?
        uint256 newBalance = address(this).balance.sub(initialBalance);
        //90
        uint256 marketingshare = newBalance.mul(80).div(100);
        payable(_marketingWalletAddress).transfer(marketingshare);
        newBalance -= marketingshare;
        // add liquidity to uniswap
        addLiquidity(otherHalf, newBalance);
        
        emit SwapAndLiquify(half, newBalance, otherHalf);
    }

    function timeToBuy(address buyer) public view returns (uint) {
        return block.timestamp - trader[buyer].buyCD;
    }
    
    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress","type":"address"},{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"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":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","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":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"tokenAddress","type":"address"},{"internalType":"address","name":"walletaddress","type":"address"}],"name":"claimOtherTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"walletaddress","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","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 payable","name":"ad","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"increaseMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"removeTransactionLimits","outputs":[],"stateMutability":"nonpayable","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":"address payable","name":"marketingWalletAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"SwapThresholdAmount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipersTaxed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxDiscount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"timeToBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"transactionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b683635c9adc5dea00000600019620002da565b6200002990600019620002b6565b6008556001600a8190556006600b819055600d829055600e556012805462ffffff60a01b1916905560006013819055601481905560158190556103e86016556017805460ff1916909217909155601855683635c9adc5dea0000060195567d02ab486cedc0000601a55671bc16d674ec80000601b55348015620000ab57600080fd5b506040516200289a3803806200289a833981016040819052620000ce916200027f565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600f80546001600160a01b038085166001600160a01b0319928316179092556010805492841692909116919091179055600854600260006200014e3390565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160056000620001886200025360201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600590935281832080548516600190811790915586821684528284208054861682179055908516835291208054909216179055620001f43390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200024391815260200190565b60405180910390a35050620002fb565b6000546001600160a01b031690565b80516001600160a01b03811681146200027a57600080fd5b919050565b6000806040838503121562000292578182fd5b6200029d8362000262565b9150620002ad6020840162000262565b90509250929050565b600082821015620002d557634e487b7160e01b81526011600452602481fd5b500390565b600082620002f657634e487b7160e01b81526012600452602481fd5b500690565b61258f806200030b6000396000f3fe6080604052600436106102085760003560e01c806370a0823111610118578063b667110d116100a0578063c9567bf91161006f578063c9567bf9146105d2578063cf0848f7146105e7578063d12a768814610607578063db92dbb61461061d578063dd62ed3e1461063257600080fd5b8063b667110d14610573578063b77bf60014610588578063c1b207d51461059d578063c49b9a80146105b257600080fd5b806382247ec0116100e757806382247ec0146104c75780638da5cb5b146104dd57806395d89b4114610505578063a9059cbb14610533578063b515566a1461055357600080fd5b806370a082311461045c578063715018a61461047c578063764d72bf146104915780637d1db4a5146104b157600080fd5b8063313ce5671161019b578063437823ec1161016a578063437823ec146103cd57806348c54b9d146103ed5780634a74bb02146104025780635d098b381461041c57806368a3a6a51461043c57600080fd5b8063313ce567146103435780633ae7dc201461035f5780633bbac5791461037f5780633d75af99146103b857600080fd5b8063273123b7116101d7578063273123b7146102d757806327f3a72a146102f957806328d854911461030e57806329e04b4a1461032357600080fd5b806306fdde0314610214578063095ea7b31461026157806318160ddd1461029157806323b872dd146102b757600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b50604080518082019091526012815271444f4745204e494e4a412053414d5552414960701b60208201525b6040516102589190612343565b60405180910390f35b34801561026d57600080fd5b5061028161027c3660046121aa565b610678565b6040519015158152602001610258565b34801561029d57600080fd5b50683635c9adc5dea000005b604051908152602001610258565b3480156102c357600080fd5b506102816102d236600461216a565b61068f565b3480156102e357600080fd5b506102f76102f23660046120fa565b6106f8565b005b34801561030557600080fd5b506102a961074c565b34801561031a57600080fd5b506018546102a9565b34801561032f57600080fd5b506102f761033e3660046122e6565b61075c565b34801561034f57600080fd5b5060405160098152602001610258565b34801561036b57600080fd5b506102f761037a3660046122d4565b610809565b34801561038b57600080fd5b5061028161039a3660046120fa565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156103c457600080fd5b506014546102a9565b3480156103d957600080fd5b506102f76103e83660046120fa565b610937565b3480156103f957600080fd5b506102f761097b565b34801561040e57600080fd5b506017546102819060ff1681565b34801561042857600080fd5b506102f76104373660046120fa565b6109e1565b34801561044857600080fd5b506102a96104573660046120fa565b610a51565b34801561046857600080fd5b506102a96104773660046120fa565b610a74565b34801561048857600080fd5b506102f7610a96565b34801561049d57600080fd5b506102f76104ac3660046120fa565b610b0a565b3480156104bd57600080fd5b506102a960195481565b3480156104d357600080fd5b506102a9601a5481565b3480156104e957600080fd5b506000546040516001600160a01b039091168152602001610258565b34801561051157600080fd5b5060408051808201909152600581526444494e4a4160d81b602082015261024b565b34801561053f57600080fd5b5061028161054e3660046121aa565b610b6d565b34801561055f57600080fd5b506102f761056e3660046121d5565b610b7a565b34801561057f57600080fd5b506102f7610cd3565b34801561059457600080fd5b506015546102a9565b3480156105a957600080fd5b506102f7610d0c565b3480156105be57600080fd5b506102f76105cd36600461229c565b610d45565b3480156105de57600080fd5b506102f7610db6565b3480156105f357600080fd5b506102f76106023660046120fa565b611180565b34801561061357600080fd5b506102a9601b5481565b34801561062957600080fd5b506102a96111c1565b34801561063e57600080fd5b506102a961064d366004612132565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006106853384846111d9565b5060015b92915050565b600061069c8484846112fd565b6106ee84336106e985604051806060016040528060288152602001612532602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906118d7565b6111d9565b5060019392505050565b6000546001600160a01b0316331461072b5760405162461bcd60e51b815260040161072290612396565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b600061075730610a74565b905090565b6000546001600160a01b031633146107865760405162461bcd60e51b815260040161072290612396565b633b9aca0081116107f55760405162461bcd60e51b815260206004820152603360248201527f53776170205468726573686f6c6420416d6f756e742063616e6e6f74206265206044820152723632b9b9903a3430b71018902134b63634b7b760691b6064820152608401610722565b61080381633b9aca00612467565b601b5550565b6000546001600160a01b031633146108335760405162461bcd60e51b815260040161072290612396565b6040516370a0823160e01b81523060048201526001600160a01b0383169063a9059cbb90839083906370a082319060240160206040518083038186803b15801561087c57600080fd5b505afa158015610890573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b491906122fe565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156108fa57600080fd5b505af115801561090e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093291906122b8565b505050565b600f546001600160a01b0316336001600160a01b03161461095757600080fd5b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6000546001600160a01b031633146109a55760405162461bcd60e51b815260040161072290612396565b6010546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156109de573d6000803e3d6000fd5b50565b600f546001600160a01b0316336001600160a01b031614610a0157600080fd5b601080546001600160a01b03908116600090815260056020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6001600160a01b0381166000908152600760205260408120546106899042612486565b6001600160a01b03811660009081526002602052604081205461068990611911565b6000546001600160a01b03163314610ac05760405162461bcd60e51b815260040161072290612396565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b345760405162461bcd60e51b815260040161072290612396565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610b69573d6000803e3d6000fd5b5050565b60006106853384846112fd565b6000546001600160a01b03163314610ba45760405162461bcd60e51b815260040161072290612396565b600c54610bb3906104b061243b565b4210156109de5760005b8151811015610b695760125482516001600160a01b0390911690839083908110610bf757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031614158015610c56575060115482516001600160a01b0390911690839083908110610c4257634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031614155b15610cc157600160066000848481518110610c8157634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80610ccb8161249d565b915050610bbd565b6000546001600160a01b03163314610cfd5760405162461bcd60e51b815260040161072290612396565b6801158e460913d00000601a55565b6000546001600160a01b03163314610d365760405162461bcd60e51b815260040161072290612396565b683635c9adc5dea00000601955565b6000546001600160a01b03163314610d6f5760405162461bcd60e51b815260040161072290612396565b6017805460ff19168215159081179091556040519081527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599060200160405180910390a150565b6000546001600160a01b03163314610de05760405162461bcd60e51b815260040161072290612396565b601254600160a01b900460ff1615610e3a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610722565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610e773082683635c9adc5dea000006111d9565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee89190612116565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f3057600080fd5b505afa158015610f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f689190612116565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610fb057600080fd5b505af1158015610fc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe89190612116565b601280546001600160a01b0319166001600160a01b039283161790556011541663f305d719473061101881610a74565b60008061102d6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561109057600080fd5b505af11580156110a4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110c99190612316565b50506745639182808eca006019555060125460115460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b15801561112957600080fd5b505af115801561113d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116191906122b8565b50506012805460ff60a01b1916600160a01b17905542600c5543601355565b600f546001600160a01b0316336001600160a01b0316146111a057600080fd5b6001600160a01b03166000908152600560205260409020805460ff19169055565b601254600090610757906001600160a01b0316610a74565b6001600160a01b03831661123b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610722565b6001600160a01b03821661129c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610722565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113615760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610722565b6001600160a01b0382166113c35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610722565b600081116114255760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610722565b6000546001600160a01b0384811691161480159061145157506000546001600160a01b03838116911614155b15611866576019548111156114b95760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610722565b6001600160a01b03831660009081526006602052604090205460ff161580156114fb57506001600160a01b03821660009081526006602052604090205460ff16155b61150457600080fd5b3360009081526007602052604090206001015460ff1661155a576040805180820182526000808252600160208084018281523384526007909152939091209151825591519101805460ff19169115159190911790555b601254600a906001600160a01b03858116911614801561158857506011546001600160a01b03848116911614155b80156115ad57506001600160a01b03831660009081526005602052604090205460ff16155b1561171757601254600160a01b900460ff1661160b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610722565b601a5461161784610a74565b611621908461243b565b111561166f5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420657863656564206d61782077616c6c657400000000000000006044820152606401610722565b60135461167d90600261243b565b4310156116a157506014805460509160006116978361249d565b91905055506116df565b600c546116af90607861243b565b4211156116be5750600a6116df565b600c546116cc90602d61243b565b4211156116db575060146116df565b5060285b6018546116ec9082612486565b90506116f981600a611995565b600a9081556117139061170d8360096119d7565b90611995565b600b555b600061172230610a74565b601254909150600160b01b900460ff1615801561174d57506012546001600160a01b03868116911614155b80156117625750601254600160a01b900460ff165b1561186357600061177e601654856119d790919063ffffffff16565b6012549091506000906117b0906117a99087906117a3906001600160a01b0316610a74565b90611a56565b8390611995565b9050600a81116117c357600a93506117fb565b602881106117d457602893506117fb565b6117df816002611ab5565b156117f7576117ed8161249d565b90508093506117fb565b8093505b6018546118089085612486565b935061181584600a611995565b600a9081556118299061170d8660096119d7565b600b55601954831061183b5760195492505b601b54831061184f5761184f601b54611af7565b47801561185f5761185f47611c9c565b5050505b50505b6001600160a01b03831660009081526005602052604090205460019060ff16806118a857506001600160a01b03831660009081526005602052604090205460ff165b806118bc5750601254600160a81b900460ff165b156118c5575060005b6118d184848484611cd6565b50505050565b600081848411156118fb5760405162461bcd60e51b81526004016107229190612343565b5060006119088486612486565b95945050505050565b60006008548211156119785760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610722565b6000611982611d52565b905061198e8382611995565b9392505050565b600061198e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d75565b6000826119e657506000610689565b60006119f28385612467565b9050826119ff8583612453565b1461198e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610722565b600080611a63838561243b565b90508381101561198e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610722565b600061198e83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250611da3565b6012805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611b4d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611ba157600080fd5b505afa158015611bb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd99190612116565b81600181518110611bfa57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601154611c2091309116846111d9565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c599085906000908690309042906004016123cb565b600060405180830381600087803b158015611c7357600080fd5b505af1158015611c87573d6000803e3d6000fd5b50506012805460ff60b01b1916905550505050565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610b69573d6000803e3d6000fd5b80611ce357611ce3611dd7565b611cee848484611e05565b80611d0457611d04600d54600a55600e54600b55565b60158054906000611d148361249d565b9091555050601554611d2890610190611ab5565b6118d157600860185410156118d15760188054906000611d478361249d565b919050555050505050565b6000806000611d5f611efc565b9092509050611d6e8282611995565b9250505090565b60008183611d965760405162461bcd60e51b81526004016107229190612343565b5060006119088486612453565b60008183611dc45760405162461bcd60e51b81526004016107229190612343565b50611dcf83856124b8565b949350505050565b600a54158015611de75750600b54155b15611dee57565b600a8054600d55600b8054600e5560009182905555565b600080600080600080611e1787611f3e565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611e499087611f9b565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611e789086611a56565b6001600160a01b038916600090815260026020526040902055611e9a81611fdd565b611ea48483612027565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ee991815260200190565b60405180910390a3505050505050505050565b6008546000908190683635c9adc5dea00000611f188282611995565b821015611f3557505060085492683635c9adc5dea0000092509050565b90939092509050565b6000806000806000806000806000611f5b8a600a54600b5461204b565b9250925092506000611f6b611d52565b90506000806000611f7e8e87878761209a565b919e509c509a509598509396509194505050505091939550919395565b600061198e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118d7565b6000611fe7611d52565b90506000611ff583836119d7565b306000908152600260205260409020549091506120129082611a56565b30600090815260026020526040902055505050565b6008546120349083611f9b565b6008556009546120449082611a56565b6009555050565b600080808061205f606461170d89896119d7565b90506000612072606461170d8a896119d7565b9050600061208a826120848b86611f9b565b90611f9b565b9992985090965090945050505050565b60008080806120a988866119d7565b905060006120b788876119d7565b905060006120c588886119d7565b905060006120d7826120848686611f9b565b939b939a50919850919650505050505050565b80356120f58161250e565b919050565b60006020828403121561210b578081fd5b813561198e8161250e565b600060208284031215612127578081fd5b815161198e8161250e565b60008060408385031215612144578081fd5b823561214f8161250e565b9150602083013561215f8161250e565b809150509250929050565b60008060006060848603121561217e578081fd5b83356121898161250e565b925060208401356121998161250e565b929592945050506040919091013590565b600080604083850312156121bc578182fd5b82356121c78161250e565b946020939093013593505050565b600060208083850312156121e7578182fd5b823567ffffffffffffffff808211156121fe578384fd5b818501915085601f830112612211578384fd5b813581811115612223576122236124f8565b8060051b604051601f19603f83011681018181108582111715612248576122486124f8565b604052828152858101935084860182860187018a1015612266578788fd5b8795505b8386101561228f5761227b816120ea565b85526001959095019493860193860161226a565b5098975050505050505050565b6000602082840312156122ad578081fd5b813561198e81612523565b6000602082840312156122c9578081fd5b815161198e81612523565b60008060408385031215612144578182fd5b6000602082840312156122f7578081fd5b5035919050565b60006020828403121561230f578081fd5b5051919050565b60008060006060848603121561232a578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b8181101561236f57858101830151858201604001528201612353565b818111156123805783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561241a5784516001600160a01b0316835293830193918301916001016123f5565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561244e5761244e6124cc565b500190565b600082612462576124626124e2565b500490565b6000816000190483118215151615612481576124816124cc565b500290565b600082821015612498576124986124cc565b500390565b60006000198214156124b1576124b16124cc565b5060010190565b6000826124c7576124c76124e2565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146109de57600080fd5b80151581146109de57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203f7f227f0c5ec051fc09bc371151e3d022ac7405e05f36bf70c5ce0675b22b7c64736f6c634300080400330000000000000000000000002c34fa94478938efb2b7ed0c36db0682cbacbac10000000000000000000000002c34fa94478938efb2b7ed0c36db0682cbacbac1

Deployed Bytecode

0x6080604052600436106102085760003560e01c806370a0823111610118578063b667110d116100a0578063c9567bf91161006f578063c9567bf9146105d2578063cf0848f7146105e7578063d12a768814610607578063db92dbb61461061d578063dd62ed3e1461063257600080fd5b8063b667110d14610573578063b77bf60014610588578063c1b207d51461059d578063c49b9a80146105b257600080fd5b806382247ec0116100e757806382247ec0146104c75780638da5cb5b146104dd57806395d89b4114610505578063a9059cbb14610533578063b515566a1461055357600080fd5b806370a082311461045c578063715018a61461047c578063764d72bf146104915780637d1db4a5146104b157600080fd5b8063313ce5671161019b578063437823ec1161016a578063437823ec146103cd57806348c54b9d146103ed5780634a74bb02146104025780635d098b381461041c57806368a3a6a51461043c57600080fd5b8063313ce567146103435780633ae7dc201461035f5780633bbac5791461037f5780633d75af99146103b857600080fd5b8063273123b7116101d7578063273123b7146102d757806327f3a72a146102f957806328d854911461030e57806329e04b4a1461032357600080fd5b806306fdde0314610214578063095ea7b31461026157806318160ddd1461029157806323b872dd146102b757600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b50604080518082019091526012815271444f4745204e494e4a412053414d5552414960701b60208201525b6040516102589190612343565b60405180910390f35b34801561026d57600080fd5b5061028161027c3660046121aa565b610678565b6040519015158152602001610258565b34801561029d57600080fd5b50683635c9adc5dea000005b604051908152602001610258565b3480156102c357600080fd5b506102816102d236600461216a565b61068f565b3480156102e357600080fd5b506102f76102f23660046120fa565b6106f8565b005b34801561030557600080fd5b506102a961074c565b34801561031a57600080fd5b506018546102a9565b34801561032f57600080fd5b506102f761033e3660046122e6565b61075c565b34801561034f57600080fd5b5060405160098152602001610258565b34801561036b57600080fd5b506102f761037a3660046122d4565b610809565b34801561038b57600080fd5b5061028161039a3660046120fa565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156103c457600080fd5b506014546102a9565b3480156103d957600080fd5b506102f76103e83660046120fa565b610937565b3480156103f957600080fd5b506102f761097b565b34801561040e57600080fd5b506017546102819060ff1681565b34801561042857600080fd5b506102f76104373660046120fa565b6109e1565b34801561044857600080fd5b506102a96104573660046120fa565b610a51565b34801561046857600080fd5b506102a96104773660046120fa565b610a74565b34801561048857600080fd5b506102f7610a96565b34801561049d57600080fd5b506102f76104ac3660046120fa565b610b0a565b3480156104bd57600080fd5b506102a960195481565b3480156104d357600080fd5b506102a9601a5481565b3480156104e957600080fd5b506000546040516001600160a01b039091168152602001610258565b34801561051157600080fd5b5060408051808201909152600581526444494e4a4160d81b602082015261024b565b34801561053f57600080fd5b5061028161054e3660046121aa565b610b6d565b34801561055f57600080fd5b506102f761056e3660046121d5565b610b7a565b34801561057f57600080fd5b506102f7610cd3565b34801561059457600080fd5b506015546102a9565b3480156105a957600080fd5b506102f7610d0c565b3480156105be57600080fd5b506102f76105cd36600461229c565b610d45565b3480156105de57600080fd5b506102f7610db6565b3480156105f357600080fd5b506102f76106023660046120fa565b611180565b34801561061357600080fd5b506102a9601b5481565b34801561062957600080fd5b506102a96111c1565b34801561063e57600080fd5b506102a961064d366004612132565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006106853384846111d9565b5060015b92915050565b600061069c8484846112fd565b6106ee84336106e985604051806060016040528060288152602001612532602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906118d7565b6111d9565b5060019392505050565b6000546001600160a01b0316331461072b5760405162461bcd60e51b815260040161072290612396565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b600061075730610a74565b905090565b6000546001600160a01b031633146107865760405162461bcd60e51b815260040161072290612396565b633b9aca0081116107f55760405162461bcd60e51b815260206004820152603360248201527f53776170205468726573686f6c6420416d6f756e742063616e6e6f74206265206044820152723632b9b9903a3430b71018902134b63634b7b760691b6064820152608401610722565b61080381633b9aca00612467565b601b5550565b6000546001600160a01b031633146108335760405162461bcd60e51b815260040161072290612396565b6040516370a0823160e01b81523060048201526001600160a01b0383169063a9059cbb90839083906370a082319060240160206040518083038186803b15801561087c57600080fd5b505afa158015610890573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b491906122fe565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156108fa57600080fd5b505af115801561090e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093291906122b8565b505050565b600f546001600160a01b0316336001600160a01b03161461095757600080fd5b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6000546001600160a01b031633146109a55760405162461bcd60e51b815260040161072290612396565b6010546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156109de573d6000803e3d6000fd5b50565b600f546001600160a01b0316336001600160a01b031614610a0157600080fd5b601080546001600160a01b03908116600090815260056020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6001600160a01b0381166000908152600760205260408120546106899042612486565b6001600160a01b03811660009081526002602052604081205461068990611911565b6000546001600160a01b03163314610ac05760405162461bcd60e51b815260040161072290612396565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b345760405162461bcd60e51b815260040161072290612396565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610b69573d6000803e3d6000fd5b5050565b60006106853384846112fd565b6000546001600160a01b03163314610ba45760405162461bcd60e51b815260040161072290612396565b600c54610bb3906104b061243b565b4210156109de5760005b8151811015610b695760125482516001600160a01b0390911690839083908110610bf757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031614158015610c56575060115482516001600160a01b0390911690839083908110610c4257634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031614155b15610cc157600160066000848481518110610c8157634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80610ccb8161249d565b915050610bbd565b6000546001600160a01b03163314610cfd5760405162461bcd60e51b815260040161072290612396565b6801158e460913d00000601a55565b6000546001600160a01b03163314610d365760405162461bcd60e51b815260040161072290612396565b683635c9adc5dea00000601955565b6000546001600160a01b03163314610d6f5760405162461bcd60e51b815260040161072290612396565b6017805460ff19168215159081179091556040519081527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599060200160405180910390a150565b6000546001600160a01b03163314610de05760405162461bcd60e51b815260040161072290612396565b601254600160a01b900460ff1615610e3a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610722565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610e773082683635c9adc5dea000006111d9565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee89190612116565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f3057600080fd5b505afa158015610f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f689190612116565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610fb057600080fd5b505af1158015610fc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe89190612116565b601280546001600160a01b0319166001600160a01b039283161790556011541663f305d719473061101881610a74565b60008061102d6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561109057600080fd5b505af11580156110a4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110c99190612316565b50506745639182808eca006019555060125460115460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b15801561112957600080fd5b505af115801561113d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116191906122b8565b50506012805460ff60a01b1916600160a01b17905542600c5543601355565b600f546001600160a01b0316336001600160a01b0316146111a057600080fd5b6001600160a01b03166000908152600560205260409020805460ff19169055565b601254600090610757906001600160a01b0316610a74565b6001600160a01b03831661123b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610722565b6001600160a01b03821661129c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610722565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113615760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610722565b6001600160a01b0382166113c35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610722565b600081116114255760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610722565b6000546001600160a01b0384811691161480159061145157506000546001600160a01b03838116911614155b15611866576019548111156114b95760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610722565b6001600160a01b03831660009081526006602052604090205460ff161580156114fb57506001600160a01b03821660009081526006602052604090205460ff16155b61150457600080fd5b3360009081526007602052604090206001015460ff1661155a576040805180820182526000808252600160208084018281523384526007909152939091209151825591519101805460ff19169115159190911790555b601254600a906001600160a01b03858116911614801561158857506011546001600160a01b03848116911614155b80156115ad57506001600160a01b03831660009081526005602052604090205460ff16155b1561171757601254600160a01b900460ff1661160b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610722565b601a5461161784610a74565b611621908461243b565b111561166f5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420657863656564206d61782077616c6c657400000000000000006044820152606401610722565b60135461167d90600261243b565b4310156116a157506014805460509160006116978361249d565b91905055506116df565b600c546116af90607861243b565b4211156116be5750600a6116df565b600c546116cc90602d61243b565b4211156116db575060146116df565b5060285b6018546116ec9082612486565b90506116f981600a611995565b600a9081556117139061170d8360096119d7565b90611995565b600b555b600061172230610a74565b601254909150600160b01b900460ff1615801561174d57506012546001600160a01b03868116911614155b80156117625750601254600160a01b900460ff165b1561186357600061177e601654856119d790919063ffffffff16565b6012549091506000906117b0906117a99087906117a3906001600160a01b0316610a74565b90611a56565b8390611995565b9050600a81116117c357600a93506117fb565b602881106117d457602893506117fb565b6117df816002611ab5565b156117f7576117ed8161249d565b90508093506117fb565b8093505b6018546118089085612486565b935061181584600a611995565b600a9081556118299061170d8660096119d7565b600b55601954831061183b5760195492505b601b54831061184f5761184f601b54611af7565b47801561185f5761185f47611c9c565b5050505b50505b6001600160a01b03831660009081526005602052604090205460019060ff16806118a857506001600160a01b03831660009081526005602052604090205460ff165b806118bc5750601254600160a81b900460ff165b156118c5575060005b6118d184848484611cd6565b50505050565b600081848411156118fb5760405162461bcd60e51b81526004016107229190612343565b5060006119088486612486565b95945050505050565b60006008548211156119785760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610722565b6000611982611d52565b905061198e8382611995565b9392505050565b600061198e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d75565b6000826119e657506000610689565b60006119f28385612467565b9050826119ff8583612453565b1461198e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610722565b600080611a63838561243b565b90508381101561198e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610722565b600061198e83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250611da3565b6012805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611b4d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611ba157600080fd5b505afa158015611bb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd99190612116565b81600181518110611bfa57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601154611c2091309116846111d9565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c599085906000908690309042906004016123cb565b600060405180830381600087803b158015611c7357600080fd5b505af1158015611c87573d6000803e3d6000fd5b50506012805460ff60b01b1916905550505050565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610b69573d6000803e3d6000fd5b80611ce357611ce3611dd7565b611cee848484611e05565b80611d0457611d04600d54600a55600e54600b55565b60158054906000611d148361249d565b9091555050601554611d2890610190611ab5565b6118d157600860185410156118d15760188054906000611d478361249d565b919050555050505050565b6000806000611d5f611efc565b9092509050611d6e8282611995565b9250505090565b60008183611d965760405162461bcd60e51b81526004016107229190612343565b5060006119088486612453565b60008183611dc45760405162461bcd60e51b81526004016107229190612343565b50611dcf83856124b8565b949350505050565b600a54158015611de75750600b54155b15611dee57565b600a8054600d55600b8054600e5560009182905555565b600080600080600080611e1787611f3e565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611e499087611f9b565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611e789086611a56565b6001600160a01b038916600090815260026020526040902055611e9a81611fdd565b611ea48483612027565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ee991815260200190565b60405180910390a3505050505050505050565b6008546000908190683635c9adc5dea00000611f188282611995565b821015611f3557505060085492683635c9adc5dea0000092509050565b90939092509050565b6000806000806000806000806000611f5b8a600a54600b5461204b565b9250925092506000611f6b611d52565b90506000806000611f7e8e87878761209a565b919e509c509a509598509396509194505050505091939550919395565b600061198e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118d7565b6000611fe7611d52565b90506000611ff583836119d7565b306000908152600260205260409020549091506120129082611a56565b30600090815260026020526040902055505050565b6008546120349083611f9b565b6008556009546120449082611a56565b6009555050565b600080808061205f606461170d89896119d7565b90506000612072606461170d8a896119d7565b9050600061208a826120848b86611f9b565b90611f9b565b9992985090965090945050505050565b60008080806120a988866119d7565b905060006120b788876119d7565b905060006120c588886119d7565b905060006120d7826120848686611f9b565b939b939a50919850919650505050505050565b80356120f58161250e565b919050565b60006020828403121561210b578081fd5b813561198e8161250e565b600060208284031215612127578081fd5b815161198e8161250e565b60008060408385031215612144578081fd5b823561214f8161250e565b9150602083013561215f8161250e565b809150509250929050565b60008060006060848603121561217e578081fd5b83356121898161250e565b925060208401356121998161250e565b929592945050506040919091013590565b600080604083850312156121bc578182fd5b82356121c78161250e565b946020939093013593505050565b600060208083850312156121e7578182fd5b823567ffffffffffffffff808211156121fe578384fd5b818501915085601f830112612211578384fd5b813581811115612223576122236124f8565b8060051b604051601f19603f83011681018181108582111715612248576122486124f8565b604052828152858101935084860182860187018a1015612266578788fd5b8795505b8386101561228f5761227b816120ea565b85526001959095019493860193860161226a565b5098975050505050505050565b6000602082840312156122ad578081fd5b813561198e81612523565b6000602082840312156122c9578081fd5b815161198e81612523565b60008060408385031215612144578182fd5b6000602082840312156122f7578081fd5b5035919050565b60006020828403121561230f578081fd5b5051919050565b60008060006060848603121561232a578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b8181101561236f57858101830151858201604001528201612353565b818111156123805783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561241a5784516001600160a01b0316835293830193918301916001016123f5565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561244e5761244e6124cc565b500190565b600082612462576124626124e2565b500490565b6000816000190483118215151615612481576124816124cc565b500290565b600082821015612498576124986124cc565b500390565b60006000198214156124b1576124b16124cc565b5060010190565b6000826124c7576124c76124e2565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146109de57600080fd5b80151581146109de57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203f7f227f0c5ec051fc09bc371151e3d022ac7405e05f36bf70c5ce0675b22b7c64736f6c63430008040033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000002c34fa94478938efb2b7ed0c36db0682cbacbac10000000000000000000000002c34fa94478938efb2b7ed0c36db0682cbacbac1

-----Decoded View---------------
Arg [0] : FeeAddress (address): 0x2C34FA94478938efB2B7Ed0c36dB0682CbAcBAc1
Arg [1] : marketingWalletAddress (address): 0x2C34FA94478938efB2B7Ed0c36dB0682CbAcBAc1

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000002c34fa94478938efb2b7ed0c36db0682cbacbac1
Arg [1] : 0000000000000000000000002c34fa94478938efb2b7ed0c36db0682cbacbac1


Deployed Bytecode Sourcemap

6659:18235:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9620:83;;;;;;;;;;-1:-1:-1;9690:5:0;;;;;;;;;;;;-1:-1:-1;;;9690:5:0;;;;9620:83;;;;;;;:::i;:::-;;;;;;;;10783:161;;;;;;;;;;-1:-1:-1;10783:161:0;;;;;:::i;:::-;;:::i;:::-;;;6557:14:1;;6550:22;6532:41;;6520:2;6505:18;10783:161:0;6487:92:1;9897:95:0;;;;;;;;;;-1:-1:-1;7156:21:0;9897:95;;;12783:25:1;;;12771:2;12756:18;9897:95:0;12738:76:1;10952:313:0;;;;;;;;;;-1:-1:-1;10952:313:0;;;;;:::i;:::-;;:::i;22432:89::-;;;;;;;;;;-1:-1:-1;22432:89:0;;;;;:::i;:::-;;:::i;:::-;;22634:100;;;;;;;;;;;;;:::i;10101:93::-;;;;;;;;;;-1:-1:-1;10172:14:0;;10101:93;;20891:267;;;;;;;;;;-1:-1:-1;20891:267:0;;;;;:::i;:::-;;:::i;9806:83::-;;;;;;;;;;-1:-1:-1;9806:83:0;;7429:1;13949:36:1;;13937:2;13922:18;9806:83:0;13904:87:1;21306:185:0;;;;;;;;;;-1:-1:-1;21306:185:0;;;;;:::i;:::-;;:::i;22533:89::-;;;;;;;;;;-1:-1:-1;22533:89:0;;;;;:::i;:::-;-1:-1:-1;;;;;22605:9:0;22581:4;22605:9;;;:5;:9;;;;;;;;;22533:89;10000:93;;;;;;;;;;-1:-1:-1;10072:13:0;;10000:93;;21655:149;;;;;;;;;;-1:-1:-1;21655:149:0;;;;;:::i;:::-;;:::i;21170:124::-;;;;;;;;;;;;;:::i;8226:40::-;;;;;;;;;;-1:-1:-1;8226:40:0;;;;;;;;20164:314;;;;;;;;;;-1:-1:-1;20164:314:0;;;;;:::i;:::-;;:::i;24654:124::-;;;;;;;;;;-1:-1:-1;24654:124:0;;;;;:::i;:::-;;:::i;10311:138::-;;;;;;;;;;-1:-1:-1;10311:138:0;;;;;:::i;:::-;;:::i;5738:148::-;;;;;;;;;;;;;:::i;21503:144::-;;;;;;;;;;-1:-1:-1;21503:144:0;;;;;:::i;:::-;;:::i;8350:51::-;;;;;;;;;;;;;;;;8434:47;;;;;;;;;;;;;;;;5524:79;;;;;;;;;;-1:-1:-1;5562:7:0;5589:6;5524:79;;-1:-1:-1;;;;;5589:6:0;;;5130:51:1;;5118:2;5103:18;5524:79:0;5085:102:1;9711:87:0;;;;;;;;;;-1:-1:-1;9783:7:0;;;;;;;;;;;;-1:-1:-1;;;9783:7:0;;;;9711:87;;10457:167;;;;;;;;;;-1:-1:-1;10457:167:0;;;;;:::i;:::-;;:::i;21976:444::-;;;;;;;;;;-1:-1:-1;21976:444:0;;;;;:::i;:::-;;:::i;20700:183::-;;;;;;;;;;;;;:::i;10202:101::-;;;;;;;;;;-1:-1:-1;10278:17:0;;10202:101;;20486:206;;;;;;;;;;;;;:::i;23263:171::-;;;;;;;;;;-1:-1:-1;23263:171:0;;;;;:::i;:::-;;:::i;19325:831::-;;;;;;;;;;;;;:::i;21816:148::-;;;;;;;;;;-1:-1:-1;21816:148:0;;;;;:::i;:::-;;:::i;8490:65::-;;;;;;;;;;;;;;;;24790:101;;;;;;;;;;;;;:::i;10632:143::-;;;;;;;;;;-1:-1:-1;10632:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;10740:18:0;;;10713:7;10740:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10632:143;10783:161;10858:4;10875:39;3013:10;10898:7;10907:6;10875:8;:39::i;:::-;-1:-1:-1;10932:4:0;10783:161;;;;;:::o;10952:313::-;11050:4;11067:36;11077:6;11085:9;11096:6;11067:9;:36::i;:::-;11114:121;11123:6;3013:10;11145:89;11183:6;11145:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11145:19:0;;;;;;:11;:19;;;;;;;;3013:10;11145:33;;;;;;;;;;:37;:89::i;:::-;11114:8;:121::i;:::-;-1:-1:-1;11253:4:0;10952:313;;;;;:::o;22432:89::-;5651:6;;-1:-1:-1;;;;;5651:6:0;3013:10;5651:22;5643:67;;;;-1:-1:-1;;;5643:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;22492:13:0::1;22508:5;22492:13:::0;;;:5:::1;:13;::::0;;;;:21;;-1:-1:-1;;22492:21:0::1;::::0;;22432:89::o;22634:100::-;22678:4;22702:24;22720:4;22702:9;:24::i;:::-;22695:31;;22634:100;:::o;20891:267::-;5651:6;;-1:-1:-1;;;;;5651:6:0;3013:10;5651:22;5643:67;;;;-1:-1:-1;;;5643:67:0;;;;;;;:::i;:::-;21014:10:::1;20992:19;:32;20984:96;;;::::0;-1:-1:-1;;;20984:96:0;;9321:2:1;20984:96:0::1;::::0;::::1;9303:21:1::0;9360:2;9340:18;;;9333:30;9399:34;9379:18;;;9372:62;-1:-1:-1;;;9450:18:1;;;9443:49;9509:19;;20984:96:0::1;9293:241:1::0;20984:96:0::1;21123:27;:19:::0;21145:5:::1;21123:27;:::i;:::-;21091:29;:59:::0;-1:-1:-1;20891:267:0:o;21306:185::-;5651:6;;-1:-1:-1;;;;;5651:6:0;3013:10;5651:22;5643:67;;;;-1:-1:-1;;;5643:67:0;;;;;;;:::i;:::-;21445:37:::1;::::0;-1:-1:-1;;;21445:37:0;;21476:4:::1;21445:37;::::0;::::1;5130:51:1::0;-1:-1:-1;;;;;21408:21:0;::::1;::::0;::::1;::::0;21430:13;;21408:21;;21445:22:::1;::::0;5103:18:1;;21445:37:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21408:75;::::0;-1:-1:-1;;;;;;21408:75:0::1;::::0;;;;;;-1:-1:-1;;;;;5693:32:1;;;21408:75:0::1;::::0;::::1;5675:51:1::0;5742:18;;;5735:34;5648:18;;21408:75:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21306:185:::0;;:::o;21655:149::-;21744:11;;-1:-1:-1;;;;;21744:11:0;3013:10;-1:-1:-1;;;;;21728:27:0;;21720:36;;;;;;-1:-1:-1;;;;;21767:22:0;;;;;:18;:22;;;;;:29;;-1:-1:-1;;21767:29:0;21792:4;21767:29;;;21655:149::o;21170:124::-;5651:6;;-1:-1:-1;;;;;5651:6:0;3013:10;5651:22;5643:67;;;;-1:-1:-1;;;5643:67:0;;;;;;;:::i;:::-;21230:23:::1;::::0;21222:64:::1;::::0;-1:-1:-1;;;;;21230:23:0;;::::1;::::0;21264:21:::1;21222:64:::0;::::1;;;::::0;21230:23:::1;21222:64:::0;21230:23;21222:64;21264:21;21230:23;21222:64;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21170:124::o:0;20164:314::-;20277:11;;-1:-1:-1;;;;;20277:11:0;3013:10;-1:-1:-1;;;;;20261:27:0;;20253:36;;;;;;20319:23;;;-1:-1:-1;;;;;20319:23:0;;;20346:5;20300:43;;;:18;:43;;;;;;:51;;-1:-1:-1;;20300:51:0;;;;;;20362:48;;-1:-1:-1;;;;;;20362:48:0;;;;;;;;;;;20421:42;;;;;:49;;;;;-1:-1:-1;20421:49:0;;;20164:314::o;24654:124::-;-1:-1:-1;;;;;24751:13:0;;24709:4;24751:13;;;:6;:13;;;;;:19;24733:37;;:15;:37;:::i;10311:138::-;-1:-1:-1;;;;;10424:16:0;;10377:7;10424:16;;;:7;:16;;;;;;10404:37;;:19;:37::i;5738:148::-;5651:6;;-1:-1:-1;;;;;5651:6:0;3013:10;5651:22;5643:67;;;;-1:-1:-1;;;5643:67:0;;;;;;;:::i;:::-;5845:1:::1;5829:6:::0;;5808:40:::1;::::0;-1:-1:-1;;;;;5829:6:0;;::::1;::::0;5808:40:::1;::::0;5845:1;;5808:40:::1;5876:1;5859:19:::0;;-1:-1:-1;;;;;;5859:19:0::1;::::0;;5738:148::o;21503:144::-;5651:6;;-1:-1:-1;;;;;5651:6:0;3013:10;5651:22;5643:67;;;;-1:-1:-1;;;5643:67:0;;;;;;;:::i;:::-;21594:45:::1;::::0;-1:-1:-1;;;;;21594:22:0;::::1;::::0;21617:21:::1;21594:45:::0;::::1;;;::::0;::::1;::::0;;;21617:21;21594:22;:45;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21503:144:::0;:::o;10457:167::-;10535:4;10552:42;3013:10;10576:9;10587:6;10552:9;:42::i;21976:444::-;5651:6;;-1:-1:-1;;;;;5651:6:0;3013:10;5651:22;5643:67;;;;-1:-1:-1;;;5643:67:0;;;;;;;:::i;:::-;22149:11:::1;::::0;:26:::1;::::0;22164:10:::1;22149:26;:::i;:::-;22131:15;:44;22127:286;;;22197:6;22192:210;22213:5;:12;22209:1;:16;22192:210;;;22267:13;::::0;22255:8;;-1:-1:-1;;;;;22267:13:0;;::::1;::::0;22255:5;;22261:1;;22255:8;::::1;;;-1:-1:-1::0;;;22255:8:0::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;22255:25:0::1;;;:65;;;;-1:-1:-1::0;22304:15:0::1;::::0;22284:8;;-1:-1:-1;;;;;22304:15:0;;::::1;::::0;22284:5;;22290:1;;22284:8;::::1;;;-1:-1:-1::0;;;22284:8:0::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;22284:36:0::1;;;22255:65;22251:136;;;22363:4;22345:5;:15;22351:5;22357:1;22351:8;;;;;;-1:-1:-1::0;;;22351:8:0::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;22345:15:0::1;-1:-1:-1::0;;;;;22345:15:0::1;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;22251:136;22227:3:::0;::::1;::::0;::::1;:::i;:::-;;;;22192:210;;20700:183:::0;5651:6;;-1:-1:-1;;;;;5651:6:0;3013:10;5651:22;5643:67;;;;-1:-1:-1;;;5643:67:0;;;;;;;:::i;:::-;20856:19:::1;20843:10;:32:::0;20700:183::o;20486:206::-;5651:6;;-1:-1:-1;;;;;5651:6:0;3013:10;5651:22;5643:67;;;;-1:-1:-1;;;5643:67:0;;;;;;;:::i;:::-;20663:21:::1;20648:12;:36:::0;20486:206::o;23263:171::-;5651:6;;-1:-1:-1;;;;;5651:6:0;3013:10;5651:22;5643:67;;;;-1:-1:-1;;;5643:67:0;;;;;;;:::i;:::-;23340:21:::1;:32:::0;;-1:-1:-1;;23340:32:0::1;::::0;::::1;;::::0;;::::1;::::0;;;23388:38:::1;::::0;6532:41:1;;;23388:38:0::1;::::0;6520:2:1;6505:18;23388:38:0::1;;;;;;;23263:171:::0;:::o;19325:831::-;5651:6;;-1:-1:-1;;;;;5651:6:0;3013:10;5651:22;5643:67;;;;-1:-1:-1;;;5643:67:0;;;;;;;:::i;:::-;19389:11:::1;::::0;-1:-1:-1;;;19389:11:0;::::1;;;19388:12;19380:47;;;::::0;-1:-1:-1;;;19380:47:0;;12134:2:1;19380:47:0::1;::::0;::::1;12116:21:1::0;12173:2;12153:18;;;12146:30;12212:25;12192:18;;;12185:53;12255:18;;19380:47:0::1;12106:173:1::0;19380:47:0::1;19549:15;:34:::0;;-1:-1:-1;;;;;;19549:34:0::1;19495:42;19549:34:::0;;::::1;::::0;;;19594:58:::1;19611:4;19495:42:::0;7156:21:::1;19594:8;:58::i;:::-;19697:16;-1:-1:-1::0;;;;;19697:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19679:56:0::1;;19744:4;19751:16;-1:-1:-1::0;;;;;19751:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19679:96;::::0;-1:-1:-1;;;;;;19679:96:0::1;::::0;;;;;;-1:-1:-1;;;;;5422:15:1;;;19679:96:0::1;::::0;::::1;5404:34:1::0;5474:15;;5454:18;;;5447:43;5339:18;;19679:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19663:13;:112:::0;;-1:-1:-1;;;;;;19663:112:0::1;-1:-1:-1::0;;;;;19663:112:0;;::::1;;::::0;;19786:15:::1;::::0;::::1;:31;19825:21;19856:4;19862:24;19856:4:::0;19862:9:::1;:24::i;:::-;19887:1;19889::::0;19891:7:::1;5562::::0;5589:6;-1:-1:-1;;;;;5589:6:0;;5524:79;19891:7:::1;19786:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;19786:129:0;;;-1:-1:-1;;;;;6139:15:1;;;19786:129:0::1;::::0;::::1;6121:34:1::0;6171:18;;;6164:34;;;;6214:18;;;6207:34;;;;6257:18;;;6250:34;6321:15;;;6300:19;;;6293:44;19899:15:0::1;6353:19:1::0;;;6346:35;6055:19;;19786:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;19941:18:0::1;19926:12;:33:::0;-1:-1:-1;19977:13:0::1;::::0;20008:15:::1;::::0;19970:71:::1;::::0;-1:-1:-1;;;19970:71:0;;-1:-1:-1;;;;;20008:15:0;;::::1;19970:71;::::0;::::1;5675:51:1::0;-1:-1:-1;;5742:18:1;;;5735:34;19977:13:0;::::1;::::0;19970:29:::1;::::0;5648:18:1;;19970:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;20052:11:0::1;:18:::0;;-1:-1:-1;;;;20052:18:0::1;-1:-1:-1::0;;;20052:18:0::1;::::0;;20095:15:::1;20081:11;:29:::0;20136:12:::1;20121;:27:::0;19325:831::o;21816:148::-;21903:11;;-1:-1:-1;;;;;21903:11:0;3013:10;-1:-1:-1;;;;;21887:27:0;;21879:36;;;;;;-1:-1:-1;;;;;21926:22:0;21951:5;21926:22;;;:18;:22;;;;;:30;;-1:-1:-1;;21926:30:0;;;21816:148::o;24790:101::-;24869:13;;24835:4;;24859:24;;-1:-1:-1;;;;;24869:13:0;24859:9;:24::i;11880:335::-;-1:-1:-1;;;;;11973:19:0;;11965:68;;;;-1:-1:-1;;;11965:68:0;;11729:2:1;11965:68:0;;;11711:21:1;11768:2;11748:18;;;11741:30;11807:34;11787:18;;;11780:62;-1:-1:-1;;;11858:18:1;;;11851:34;11902:19;;11965:68:0;11701:226:1;11965:68:0;-1:-1:-1;;;;;12052:21:0;;12044:68;;;;-1:-1:-1;;;12044:68:0;;8209:2:1;12044:68:0;;;8191:21:1;8248:2;8228:18;;;8221:30;8287:34;8267:18;;;8260:62;-1:-1:-1;;;8338:18:1;;;8331:32;8380:19;;12044:68:0;8181:224:1;12044:68:0;-1:-1:-1;;;;;12123:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12175:32;;12783:25:1;;;12175:32:0;;12756:18:1;12175:32:0;;;;;;;11880:335;;;:::o;12227:3423::-;-1:-1:-1;;;;;12315:18:0;;12307:68;;;;-1:-1:-1;;;12307:68:0;;11323:2:1;12307:68:0;;;11305:21:1;11362:2;11342:18;;;11335:30;11401:34;11381:18;;;11374:62;-1:-1:-1;;;11452:18:1;;;11445:35;11497:19;;12307:68:0;11295:227:1;12307:68:0;-1:-1:-1;;;;;12394:16:0;;12386:64;;;;-1:-1:-1;;;12386:64:0;;7394:2:1;12386:64:0;;;7376:21:1;7433:2;7413:18;;;7406:30;7472:34;7452:18;;;7445:62;-1:-1:-1;;;7523:18:1;;;7516:33;7566:19;;12386:64:0;7366:225:1;12386:64:0;12478:1;12469:6;:10;12461:64;;;;-1:-1:-1;;;12461:64:0;;10913:2:1;12461:64:0;;;10895:21:1;10952:2;10932:18;;;10925:30;10991:34;10971:18;;;10964:62;-1:-1:-1;;;11042:18:1;;;11035:39;11091:19;;12461:64:0;10885:231:1;12461:64:0;5562:7;5589:6;-1:-1:-1;;;;;12539:15:0;;;5589:6;;12539:15;;;;:32;;-1:-1:-1;5562:7:0;5589:6;-1:-1:-1;;;;;12558:13:0;;;5589:6;;12558:13;;12539:32;12536:2892;;;12606:12;;12596:6;:22;;12588:75;;;;-1:-1:-1;;;12588:75:0;;9741:2:1;12588:75:0;;;9723:21:1;9780:2;9760:18;;;9753:30;9819:34;9799:18;;;9792:62;-1:-1:-1;;;9870:18:1;;;9863:38;9918:19;;12588:75:0;9713:230:1;12588:75:0;-1:-1:-1;;;;;12687:11:0;;;;;;:5;:11;;;;;;;;12686:12;:26;;;;-1:-1:-1;;;;;;12703:9:0;;;;;;:5;:9;;;;;;;;12702:10;12686:26;12678:35;;;;;;12753:10;12746:18;;;;:6;:18;;;;;:25;;;;;12742:99;;12813:12;;;;;;;;-1:-1:-1;12813:12:0;;;12820:4;12813:12;;;;;;;12799:10;12792:18;;:6;:18;;;;;;;:33;;;;;;;;;;-1:-1:-1;;12792:33:0;;;;;;;;;;12742:99;12922:13;;12874:2;;-1:-1:-1;;;;;12914:21:0;;;12922:13;;12914:21;:55;;;;-1:-1:-1;12953:15:0;;-1:-1:-1;;;;;12939:30:0;;;12953:15;;12939:30;;12914:55;:82;;;;-1:-1:-1;;;;;;12974:22:0;;;;;;:18;:22;;;;;;;;12973:23;12914:82;12911:871;;;13025:11;;-1:-1:-1;;;13025:11:0;;;;13017:48;;;;-1:-1:-1;;;13017:48:0;;12486:2:1;13017:48:0;;;12468:21:1;12525:2;12505:18;;;12498:30;12564:26;12544:18;;;12537:54;12608:18;;13017:48:0;12458:174:1;13017:48:0;13118:10;;13101:13;13111:2;13101:9;:13::i;:::-;13092:22;;:6;:22;:::i;:::-;:36;;13084:73;;;;-1:-1:-1;;;13084:73:0;;8968:2:1;13084:73:0;;;8950:21:1;9007:2;8987:18;;;8980:30;9046:26;9026:18;;;9019:54;9090:18;;13084:73:0;8940:174:1;13084:73:0;13196:12;;:16;;13211:1;13196:16;:::i;:::-;13181:12;:31;13178:414;;;-1:-1:-1;13273:13:0;:15;;13248:2;;13273:13;:15;;;:::i;:::-;;;;;;13178:414;;;13335:11;;:25;;13350:9;13335:25;:::i;:::-;13317:15;:43;13314:278;;;-1:-1:-1;13396:2:0;13314:278;;;13446:11;;:26;;13461:10;13446:26;:::i;:::-;13428:15;:44;13424:168;;;-1:-1:-1;13508:2:0;13424:168;;;-1:-1:-1;13570:2:0;13424:168;13632:14;;13621:25;;:8;:25;:::i;:::-;13610:36;-1:-1:-1;13675:18:0;13610:36;13690:2;13675:14;:18::i;:::-;13665:7;:28;;;13723:25;;13724:15;:8;13737:1;13724:12;:15::i;:::-;13723:21;;:25::i;:::-;13712:8;:36;12911:871;13796:28;13827:24;13845:4;13827:9;:24::i;:::-;13893:6;;13796:55;;-1:-1:-1;;;;13893:6:0;;;;13892:7;:32;;;;-1:-1:-1;13911:13:0;;-1:-1:-1;;;;;13903:21:0;;;13911:13;;13903:21;;13892:32;:47;;;;-1:-1:-1;13928:11:0;;-1:-1:-1;;;13928:11:0;;;;13892:47;13889:1528;;;14009:30;14042:29;14053:17;;14042:6;:10;;:29;;;;:::i;:::-;14149:13;;14009:62;;-1:-1:-1;14090:19:0;;14112:64;;14139:36;;14168:6;;14139:24;;-1:-1:-1;;;;;14149:13:0;14139:9;:24::i;:::-;:28;;:36::i;:::-;14112:22;;:26;:64::i;:::-;14090:86;;14232:2;14217:11;:17;14213:337;;14270:2;14259:13;;14213:337;;;14317:2;14302:11;:17;14298:252;;14355:2;14344:13;;14298:252;;;14387:18;:11;14403:1;14387:15;:18::i;:::-;:23;14383:167;;14446:13;;;:::i;:::-;;;;14435:24;;14383:167;;;14519:11;14508:22;;14383:167;14608:14;;14597:25;;:8;:25;:::i;:::-;14586:36;-1:-1:-1;14653:18:0;14586:36;14668:2;14653:14;:18::i;:::-;14643:7;:28;;;14701:25;;14702:15;:8;14715:1;14702:12;:15::i;14701:25::-;14690:8;:36;14845:12;;14821:36;;14818:119;;14905:12;;14882:35;;14818:119;15087:29;;15063:20;:53;15059:149;;15141:47;15158:29;;15141:16;:47::i;:::-;15257:21;15300:22;;15297:105;;15347:35;15360:21;15347:12;:35::i;:::-;13889:1528;;;;12536:2892;;;-1:-1:-1;;;;;15473:24:0;;15438:12;15473:24;;;:18;:24;;;;;;15453:4;;15473:24;;;:50;;-1:-1:-1;;;;;;15501:22:0;;;;;;:18;:22;;;;;;;;15473:50;:68;;;-1:-1:-1;15527:14:0;;-1:-1:-1;;;15527:14:0;;;;15473:68;15470:114;;;-1:-1:-1;15567:5:0;15470:114;15604:38;15619:4;15624:2;15627:6;15634:7;15604:14;:38::i;:::-;12227:3423;;;;:::o;4070:190::-;4156:7;4192:12;4184:6;;;;4176:29;;;;-1:-1:-1;;;4176:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4216:9:0;4228:5;4232:1;4228;:5;:::i;:::-;4216:17;4070:190;-1:-1:-1;;;;;4070:190:0:o;11273:254::-;11340:7;11379;;11368;:18;;11360:73;;;;-1:-1:-1;;;11360:73:0;;7798:2:1;11360:73:0;;;7780:21:1;7837:2;7817:18;;;7810:30;7876:34;7856:18;;;7849:62;-1:-1:-1;;;7927:18:1;;;7920:40;7977:19;;11360:73:0;7770:232:1;11360:73:0;11444:19;11467:10;:8;:10::i;:::-;11444:33;-1:-1:-1;11495:24:0;:7;11444:33;11495:11;:24::i;:::-;11488:31;11273:254;-1:-1:-1;;;11273:254:0:o;4521:132::-;4579:7;4606:39;4610:1;4613;4606:39;;;;;;;;;;;;;;;;;:3;:39::i;4268:245::-;4326:7;4349:6;4346:46;;-1:-1:-1;4379:1:0;4372:8;;4346:46;4402:9;4414:5;4418:1;4414;:5;:::i;:::-;4402:17;-1:-1:-1;4447:1:0;4438:5;4442:1;4402:17;4438:5;:::i;:::-;:10;4430:56;;;;-1:-1:-1;;;4430:56:0;;10150:2:1;4430:56:0;;;10132:21:1;10189:2;10169:18;;;10162:30;10228:34;10208:18;;;10201:62;-1:-1:-1;;;10279:18:1;;;10272:31;10320:19;;4430:56:0;10122:223:1;3739:179:0;3797:7;;3829:5;3833:1;3829;:5;:::i;:::-;3817:17;;3858:1;3853;:6;;3845:46;;;;-1:-1:-1;;;3845:46:0;;8612:2:1;3845:46:0;;;8594:21:1;8651:2;8631:18;;;8624:30;8690:29;8670:18;;;8663:57;8737:18;;3845:46:0;8584:177:1;4858:130:0;4916:7;4943:37;4947:1;4950;4943:37;;;;;;;;;;;;;;;;;:3;:37::i;15658:483::-;9060:6;:13;;-1:-1:-1;;;;9060:13:0;-1:-1:-1;;;9060:13:0;;;15760:16:::1;::::0;;15774:1:::1;15760:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15760:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15760:16:0::1;15736:40;;15805:4;15787;15792:1;15787:7;;;;;;-1:-1:-1::0;;;15787:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;15787:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15831:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;15831:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;15787:7;;15831:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15821:4;15826:1;15821:7;;;;;;-1:-1:-1::0;;;15821:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;15821:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;15896:15:::1;::::0;15864:62:::1;::::0;15881:4:::1;::::0;15896:15:::1;15914:11:::0;15864:8:::1;:62::i;:::-;15937:15;::::0;:196:::1;::::0;-1:-1:-1;;;15937:196:0;;-1:-1:-1;;;;;15937:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;16018:11;;15937:15:::1;::::0;16060:4;;16087::::1;::::0;16107:15:::1;::::0;15937:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9096:6:0;:14;;-1:-1:-1;;;;9096:14:0;;;-1:-1:-1;;;;15658:483:0:o;16157:105::-;16214:23;;:40;;-1:-1:-1;;;;;16214:23:0;;;;:40;;;;;16247:6;;16214:23;:40;:23;:40;16247:6;16214:23;:40;;;;;;;;;;;;;;;;;;;16274:441;16386:7;16382:40;;16408:14;:12;:14::i;:::-;16433:44;16451:6;16459:9;16470:6;16433:17;:44::i;:::-;16492:7;16488:41;;16514:15;11811;;11801:7;:25;11848:16;;11837:8;:27;11757:115;16514:15;16540:17;:19;;;:17;:19;;;:::i;:::-;;;;-1:-1:-1;;16574:17:0;;:26;;16596:3;16574:21;:26::i;:::-;16570:138;;16643:1;16626:14;;:18;16622:75;;;16665:14;:16;;;:14;:16;;;:::i;:::-;;;;;;16274:441;;;;:::o;18056:163::-;18097:7;18118:15;18135;18154:19;:17;:19::i;:::-;18117:56;;-1:-1:-1;18117:56:0;-1:-1:-1;18191:20:0;18117:56;;18191:11;:20::i;:::-;18184:27;;;;18056:163;:::o;4661:189::-;4747:7;4782:12;4775:5;4767:28;;;;-1:-1:-1;;;4767:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4806:9:0;4818:5;4822:1;4818;:5;:::i;4996:166::-;5082:7;5118:12;5110:6;5102:29;;;;-1:-1:-1;;;5102:29:0;;;;;;;;:::i;:::-;-1:-1:-1;5149:5:0;5153:1;5149;:5;:::i;:::-;5142:12;4996:166;-1:-1:-1;;;;4996:166:0:o;11535:210::-;11581:7;;:12;:29;;;;-1:-1:-1;11597:8:0;;:13;11581:29;11578:41;;;11535:210::o;11578:41::-;11647:7;;;11629:15;:25;11684:8;;;11665:16;:27;-1:-1:-1;11703:11:0;;;;11725:12;11535:210::o;16723:490::-;16822:15;16839:23;16864:12;16878:23;16903:12;16917:13;16934:19;16945:7;16934:10;:19::i;:::-;-1:-1:-1;;;;;16982:15:0;;;;;;:7;:15;;;;;;16821:132;;-1:-1:-1;16821:132:0;;-1:-1:-1;16821:132:0;;-1:-1:-1;16821:132:0;-1:-1:-1;16821:132:0;-1:-1:-1;16821:132:0;-1:-1:-1;16982:28:0;;16821:132;16982:19;:28::i;:::-;-1:-1:-1;;;;;16964:15:0;;;;;;;:7;:15;;;;;;:46;;;;17042:18;;;;;;;:39;;17065:15;17042:22;:39::i;:::-;-1:-1:-1;;;;;17021:18:0;;;;;;:7;:18;;;;;:60;17095:16;17105:5;17095:9;:16::i;:::-;17122:23;17134:4;17140;17122:11;:23::i;:::-;17178:9;-1:-1:-1;;;;;17161:44:0;17170:6;-1:-1:-1;;;;;17161:44:0;;17189:15;17161:44;;;;12783:25:1;;12771:2;12756:18;;12738:76;17161:44:0;;;;;;;;16723:490;;;;;;;;;:::o;18227:255::-;18324:7;;18277;;;;7156:21;18391:20;18324:7;7156:21;18391:11;:20::i;:::-;18381:7;:30;18378:60;;;-1:-1:-1;;18421:7:0;;;7156:21;;-1:-1:-1;18227:255:0;-1:-1:-1;18227:255:0:o;18378:60::-;18457:7;;18466;;-1:-1:-1;18227:255:0;-1:-1:-1;18227:255:0:o;17221:468::-;17280:7;17289;17298;17307;17316;17325;17346:23;17371:12;17385:13;17402:39;17414:7;17423;;17432:8;;17402:11;:39::i;:::-;17345:96;;;;;;17452:19;17475:10;:8;:10::i;:::-;17452:33;;17497:15;17514:23;17539:12;17555:46;17567:7;17576:4;17582:5;17589:11;17555;:46::i;:::-;17496:105;;-1:-1:-1;17496:105:0;-1:-1:-1;17496:105:0;-1:-1:-1;17652:15:0;;-1:-1:-1;17669:4:0;;-1:-1:-1;17675:5:0;;-1:-1:-1;;;;;17221:468:0;;;;;;;:::o;3926:136::-;3984:7;4011:43;4015:1;4018;4011:43;;;;;;;;;;;;;;;;;:3;:43::i;18907:214::-;18960:19;18983:10;:8;:10::i;:::-;18960:33;-1:-1:-1;19004:13:0;19020:22;:5;18960:33;19020:9;:22::i;:::-;19096:4;19080:22;;;;:7;:22;;;;;;19004:38;;-1:-1:-1;19080:33:0;;19004:38;19080:26;:33::i;:::-;19071:4;19055:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;18907:214:0:o;19129:147::-;19207:7;;:17;;19219:4;19207:11;:17::i;:::-;19197:7;:27;19248:10;;:20;;19263:4;19248:14;:20::i;:::-;19235:10;:33;-1:-1:-1;;19129:147:0:o;17697:351::-;17790:7;;;;17843:28;17867:3;17843:19;:7;17855:6;17843:11;:19::i;:28::-;17828:43;-1:-1:-1;17882:13:0;17898:29;17923:3;17898:20;:7;17910;17898:11;:20::i;:29::-;17882:45;-1:-1:-1;17938:23:0;17964:28;17882:45;17964:17;:7;17976:4;17964:11;:17::i;:::-;:21;;:28::i;:::-;17938:54;18028:4;;-1:-1:-1;18034:5:0;;-1:-1:-1;17697:351:0;;-1:-1:-1;;;;;17697:351:0:o;18490:409::-;18600:7;;;;18656:24;:7;18668:11;18656;:24::i;:::-;18638:42;-1:-1:-1;18691:12:0;18706:21;:4;18715:11;18706:8;:21::i;:::-;18691:36;-1:-1:-1;18738:13:0;18754:22;:5;18764:11;18754:9;:22::i;:::-;18738:38;-1:-1:-1;18787:23:0;18813:28;18738:38;18813:17;:7;18825:4;18813:11;:17::i;:28::-;18860:7;;;;-1:-1:-1;18886:4:0;;-1:-1:-1;18490:409:0;;-1:-1:-1;;;;;;;18490:409:0:o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:257::-;212:6;265:2;253:9;244:7;240:23;236:32;233:2;;;286:6;278;271:22;233:2;330:9;317:23;349:31;374:5;349:31;:::i;415:261::-;485:6;538:2;526:9;517:7;513:23;509:32;506:2;;;559:6;551;544:22;506:2;596:9;590:16;615:31;640:5;615:31;:::i;951:398::-;1019:6;1027;1080:2;1068:9;1059:7;1055:23;1051:32;1048:2;;;1101:6;1093;1086:22;1048:2;1145:9;1132:23;1164:31;1189:5;1164:31;:::i;:::-;1214:5;-1:-1:-1;1271:2:1;1256:18;;1243:32;1284:33;1243:32;1284:33;:::i;:::-;1336:7;1326:17;;;1038:311;;;;;:::o;1354:466::-;1431:6;1439;1447;1500:2;1488:9;1479:7;1475:23;1471:32;1468:2;;;1521:6;1513;1506:22;1468:2;1565:9;1552:23;1584:31;1609:5;1584:31;:::i;:::-;1634:5;-1:-1:-1;1691:2:1;1676:18;;1663:32;1704:33;1663:32;1704:33;:::i;:::-;1458:362;;1756:7;;-1:-1:-1;;;1810:2:1;1795:18;;;;1782:32;;1458:362::o;1825:325::-;1893:6;1901;1954:2;1942:9;1933:7;1929:23;1925:32;1922:2;;;1975:6;1967;1960:22;1922:2;2019:9;2006:23;2038:31;2063:5;2038:31;:::i;:::-;2088:5;2140:2;2125:18;;;;2112:32;;-1:-1:-1;;;1912:238:1:o;2155:1177::-;2239:6;2270:2;2313;2301:9;2292:7;2288:23;2284:32;2281:2;;;2334:6;2326;2319:22;2281:2;2379:9;2366:23;2408:18;2449:2;2441:6;2438:14;2435:2;;;2470:6;2462;2455:22;2435:2;2513:6;2502:9;2498:22;2488:32;;2558:7;2551:4;2547:2;2543:13;2539:27;2529:2;;2585:6;2577;2570:22;2529:2;2626;2613:16;2648:2;2644;2641:10;2638:2;;;2654:18;;:::i;:::-;2700:2;2697:1;2693:10;2732:2;2726:9;2795:2;2791:7;2786:2;2782;2778:11;2774:25;2766:6;2762:38;2850:6;2838:10;2835:22;2830:2;2818:10;2815:18;2812:46;2809:2;;;2861:18;;:::i;:::-;2897:2;2890:22;2947:18;;;2981:15;;;;-1:-1:-1;3016:11:1;;;3046;;;3042:20;;3039:33;-1:-1:-1;3036:2:1;;;3090:6;3082;3075:22;3036:2;3117:6;3108:15;;3132:169;3146:2;3143:1;3140:9;3132:169;;;3203:23;3222:3;3203:23;:::i;:::-;3191:36;;3164:1;3157:9;;;;;3247:12;;;;3279;;3132:169;;;-1:-1:-1;3320:6:1;2250:1082;-1:-1:-1;;;;;;;;2250:1082:1:o;3337:251::-;3393:6;3446:2;3434:9;3425:7;3421:23;3417:32;3414:2;;;3467:6;3459;3452:22;3414:2;3511:9;3498:23;3530:28;3552:5;3530:28;:::i;3593:255::-;3660:6;3713:2;3701:9;3692:7;3688:23;3684:32;3681:2;;;3734:6;3726;3719:22;3681:2;3771:9;3765:16;3790:28;3812:5;3790:28;:::i;3853:411::-;3934:6;3942;3995:2;3983:9;3974:7;3970:23;3966:32;3963:2;;;4016:6;4008;4001:22;4269:190;4328:6;4381:2;4369:9;4360:7;4356:23;4352:32;4349:2;;;4402:6;4394;4387:22;4349:2;-1:-1:-1;4430:23:1;;4339:120;-1:-1:-1;4339:120:1:o;4464:194::-;4534:6;4587:2;4575:9;4566:7;4562:23;4558:32;4555:2;;;4608:6;4600;4593:22;4555:2;-1:-1:-1;4636:16:1;;4545:113;-1:-1:-1;4545:113:1:o;4663:316::-;4751:6;4759;4767;4820:2;4808:9;4799:7;4795:23;4791:32;4788:2;;;4841:6;4833;4826:22;4788:2;4875:9;4869:16;4859:26;;4925:2;4914:9;4910:18;4904:25;4894:35;;4969:2;4958:9;4954:18;4948:25;4938:35;;4778:201;;;;;:::o;6584:603::-;6696:4;6725:2;6754;6743:9;6736:21;6786:6;6780:13;6829:6;6824:2;6813:9;6809:18;6802:34;6854:4;6867:140;6881:6;6878:1;6875:13;6867:140;;;6976:14;;;6972:23;;6966:30;6942:17;;;6961:2;6938:26;6931:66;6896:10;;6867:140;;;7025:6;7022:1;7019:13;7016:2;;;7095:4;7090:2;7081:6;7070:9;7066:22;7062:31;7055:45;7016:2;-1:-1:-1;7171:2:1;7150:15;-1:-1:-1;;7146:29:1;7131:45;;;;7178:2;7127:54;;6705:482;-1:-1:-1;;;6705:482:1:o;10350:356::-;10552:2;10534:21;;;10571:18;;;10564:30;10630:34;10625:2;10610:18;;10603:62;10697:2;10682:18;;10524:182::o;12819:983::-;13081:4;13129:3;13118:9;13114:19;13160:6;13149:9;13142:25;13186:2;13224:6;13219:2;13208:9;13204:18;13197:34;13267:3;13262:2;13251:9;13247:18;13240:31;13291:6;13326;13320:13;13357:6;13349;13342:22;13395:3;13384:9;13380:19;13373:26;;13434:2;13426:6;13422:15;13408:29;;13455:4;13468:195;13482:6;13479:1;13476:13;13468:195;;;13547:13;;-1:-1:-1;;;;;13543:39:1;13531:52;;13638:15;;;;13603:12;;;;13579:1;13497:9;13468:195;;;-1:-1:-1;;;;;;;13719:32:1;;;;13714:2;13699:18;;13692:60;-1:-1:-1;;;13783:3:1;13768:19;13761:35;13680:3;13090:712;-1:-1:-1;;;13090:712:1:o;13996:128::-;14036:3;14067:1;14063:6;14060:1;14057:13;14054:2;;;14073:18;;:::i;:::-;-1:-1:-1;14109:9:1;;14044:80::o;14129:120::-;14169:1;14195;14185:2;;14200:18;;:::i;:::-;-1:-1:-1;14234:9:1;;14175:74::o;14254:168::-;14294:7;14360:1;14356;14352:6;14348:14;14345:1;14342:21;14337:1;14330:9;14323:17;14319:45;14316:2;;;14367:18;;:::i;:::-;-1:-1:-1;14407:9:1;;14306:116::o;14427:125::-;14467:4;14495:1;14492;14489:8;14486:2;;;14500:18;;:::i;:::-;-1:-1:-1;14537:9:1;;14476:76::o;14557:135::-;14596:3;-1:-1:-1;;14617:17:1;;14614:2;;;14637:18;;:::i;:::-;-1:-1:-1;14684:1:1;14673:13;;14604:88::o;14697:112::-;14729:1;14755;14745:2;;14760:18;;:::i;:::-;-1:-1:-1;14794:9:1;;14735:74::o;14814:127::-;14875:10;14870:3;14866:20;14863:1;14856:31;14906:4;14903:1;14896:15;14930:4;14927:1;14920:15;14946:127;15007:10;15002:3;14998:20;14995:1;14988:31;15038:4;15035:1;15028:15;15062:4;15059:1;15052:15;15078:127;15139:10;15134:3;15130:20;15127:1;15120:31;15170:4;15167:1;15160:15;15194:4;15191:1;15184:15;15210:131;-1:-1:-1;;;;;15285:31:1;;15275:42;;15265:2;;15331:1;15328;15321:12;15346:118;15432:5;15425:13;15418:21;15411:5;15408:32;15398:2;;15454:1;15451;15444:12

Swarm Source

ipfs://3f7f227f0c5ec051fc09bc371151e3d022ac7405e05f36bf70c5ce0675b22b7c

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.