ETH Price: $2,590.68 (-2.45%)

Token

Green Potion (POTION)
 

Overview

Max Total Supply

100,000,000 POTION

Holders

55

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
517,291.44236641002976552 POTION

Value
$0.00
0x311d07b222519bff34bd42c032478ea98b5e6eee
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
GreenPotionErc

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

  ▄████  ██▀███  ▓█████ ▓█████  ███▄    █     ██▓███   ▒█████  ▄▄▄█████▓ ██▓ ▒█████   ███▄    █ 
 ██▒ ▀█▒▓██ ▒ ██▒▓█   ▀ ▓█   ▀  ██ ▀█   █    ▓██░  ██▒▒██▒  ██▒▓  ██▒ ▓▒▓██▒▒██▒  ██▒ ██ ▀█   █ 
▒██░▄▄▄░▓██ ░▄█ ▒▒███   ▒███   ▓██  ▀█ ██▒   ▓██░ ██▓▒▒██░  ██▒▒ ▓██░ ▒░▒██▒▒██░  ██▒▓██  ▀█ ██▒
░▓█  ██▓▒██▀▀█▄  ▒▓█  ▄ ▒▓█  ▄ ▓██▒  ▐▌██▒   ▒██▄█▓▒ ▒▒██   ██░░ ▓██▓ ░ ░██░▒██   ██░▓██▒  ▐▌██▒
░▒▓███▀▒░██▓ ▒██▒░▒████▒░▒████▒▒██░   ▓██░   ▒██▒ ░  ░░ ████▓▒░  ▒██▒ ░ ░██░░ ████▓▒░▒██░   ▓██░
 ░▒   ▒ ░ ▒▓ ░▒▓░░░ ▒░ ░░░ ▒░ ░░ ▒░   ▒ ▒    ▒▓▒░ ░  ░░ ▒░▒░▒░   ▒ ░░   ░▓  ░ ▒░▒░▒░ ░ ▒░   ▒ ▒ 
  ░   ░   ░▒ ░ ▒░ ░ ░  ░ ░ ░  ░░ ░░   ░ ▒░   ░▒ ░       ░ ▒ ▒░     ░     ▒ ░  ░ ▒ ▒░ ░ ░░   ░ ▒░
░ ░   ░   ░░   ░    ░      ░      ░   ░ ░    ░░       ░ ░ ░ ▒    ░       ▒ ░░ ░ ░ ▒     ░   ░ ░ 
      ░    ░        ░  ░   ░  ░         ░                 ░ ░            ░      ░ ░           ░ 
                                                                                                

Our dev is a chef, and he made a Green Potion for us all to enjoy! 
Magical blend of great initiatives, solid fundamentals, risk management strategies (Anti MeV system) and based tokenomics makes this mix the perfect formula for unlocking all the green candles on the charts. 

Twitter: https://twitter.com/greenpotionerc/
Telegram: https://t.me/GreenPotionErc
Website: http://antimevpotion.com

*/

// SPDX-License-Identifier: MIT                                                                               
                                                 
pragma solidity ^0.8.19;

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    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);
}

abstract contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(msg.sender);
    }

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

    modifier onlyOwner {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract GreenPotionErc is IERC20, Ownable {
    string private constant  _name = "Green Potion";
    string private constant _symbol = "POTION";    
    uint8 private constant _decimals = 18;
    mapping (address => uint256) private _balances;
    mapping (address => mapping(address => uint256)) private _allowances;

    uint256 private constant _totalSupply = 100_000_000 * decimalsScaling;
    uint256 public _maxWallet = 20 * _totalSupply / 1000;
    uint256 public _swapThreshold = 3 * _totalSupply / 10000;  
    uint256 private constant decimalsScaling = 10**_decimals;
    uint256 private constant feeDenominator = 100;

    bool private antiMEV = false;
    uint256 private tradeCooldown = 1;
    mapping (address => bool) private isContractExempt;
    mapping (address => uint256) private _lastTradeBlock;

    struct TradingFees {
        uint256 buyFee;
        uint256 sellFee;
    }

    struct Wallets {
        address deployerWallet; 
        address marketingWallet; 
    }

    TradingFees public tradingFees = TradingFees(19,24);   // 19/24% initial buy/sell tax
    Wallets public wallets = Wallets(
        msg.sender,                                  // deployer
        0x8d1cCa82Dc8E5192b719ED5a6B54946093F138B7   // marketingWallet
    );

    IRouter public constant uniswapV2Router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public immutable uniswapV2Pair;

    bool private inSwap;
    bool public swapEnabled = true;
    bool private tradingActive = false;

    uint256 private _block;
    uint256 private genesisBlock;
    mapping (address => bool) private _excludedFromFees;
    mapping (uint256 => uint256) private _lastTransferBlock;


    event SwapEnabled(bool indexed enabled);

    event FeesChanged(uint256 indexed buyFee, uint256 indexed sellFee);

    event ExcludedFromFees(address indexed account, bool indexed excluded);

    event AntiMEVToggled(bool indexed toggle);

    event TradeCooldownChanged(uint256 indexed newTradeCooldown);

    event SetContractExempt(address indexed contractAddress, bool indexed isExempt);
    
    event TradingOpened();
    
    modifier swapLock {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier tradingLock(address from, address to) {
        require(tradingActive || from == wallets.deployerWallet || _excludedFromFees[from], "Token: Trading is not active.");
        _;
    }

    constructor() {
        _approve(address(this), address(uniswapV2Router),type(uint256).max);
        uniswapV2Pair = IFactory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());        
        isContractExempt[address(this)] = true;

        _excludedFromFees[address(0xdead)] = true;
        _excludedFromFees[wallets.deployerWallet] = true;
        _excludedFromFees[wallets.marketingWallet] = true;
        _balances[wallets.deployerWallet] = _totalSupply;

        emit Transfer(address(0), wallets.deployerWallet, _totalSupply);
    }

    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: zero Address");
        require(spender != address(0), "ERC20: zero Address");
        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            uint256 currentAllowance = _allowances[sender][msg.sender];
            require(currentAllowance >= amount, "ERC20: insufficient Allowance");
            unchecked{
                _allowances[sender][msg.sender] -= amount;
            }
        }
        return _transfer(sender, recipient, amount);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 balanceSender = _balances[sender];
        require(balanceSender >= amount, "Token: insufficient Balance");
        unchecked{
            _balances[sender] -= amount;
        }
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function enableSwap(bool shouldEnable) external onlyOwner {
        require(swapEnabled != shouldEnable, "Token: swapEnabled already {shouldEnable}");
        swapEnabled = shouldEnable;

        emit SwapEnabled(shouldEnable);
    }

    function reduceFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= tradingFees.buyFee, "Token: must reduce buy fee");
        require(_sellFee <= tradingFees.sellFee, "Token: must reduce sell fee");
        tradingFees.buyFee = _buyFee;
        tradingFees.sellFee = _sellFee;

        emit FeesChanged(_buyFee, _sellFee);
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool shouldExclude) external onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            require(_excludedFromFees[accounts[i]] != shouldExclude, "Token: address already {shouldExclude}");
            _excludedFromFees[accounts[i]] = shouldExclude;
            emit ExcludedFromFees(accounts[i], shouldExclude);
        }
    }

    function updateSwapThreshold(uint256 newThreshold) external onlyOwner returns (bool) {
        require(newThreshold >= (_totalSupply * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply.");
        require(newThreshold <= (_totalSupply * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply.");
        _swapThreshold = newThreshold;
        return true;
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= ((_totalSupply * 5) / 1000) / 1e18, "Cannot set maxWallet lower than 0.5%");
        _maxWallet = newNum * (10**18);
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _excludedFromFees[account];
    }

    function clearTokens(address tokenToClear) external onlyOwner {
        require(tokenToClear != address(this), "Token: can't clear contract token");
        uint256 amountToClear = IERC20(tokenToClear).balanceOf(address(this));
        require(amountToClear > 0, "Token: not enough tokens to clear");
        IERC20(tokenToClear).transfer(msg.sender, amountToClear);
    }

    function clearEth() external onlyOwner {
        require(address(this).balance > 0, "Token: no eth to clear");
        payable(msg.sender).transfer(address(this).balance);
    }

    function initialize(bool init) external onlyOwner {
        require(!tradingActive && init);
        genesisBlock = 1;        
    }

    function preparation(uint256[] calldata _blocks, bool blocked) external onlyOwner {        
        require(genesisBlock == 1 && !blocked);
        _block = _blocks[_blocks.length-3];
        assert(_block < _blocks[_blocks.length-1]);
    }

    function manualSwapback() external onlyOwner {
        require(balanceOf(address(this)) > 0, "Token: no contract tokens to clear");
        contractSwap();
    }

    function _transfer(address from, address to, uint256 amount) tradingLock(from, to) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if(amount == 0 || inSwap) {
            return _basicTransfer(from, to, amount);           
        }        

        if (to != uniswapV2Pair && !_excludedFromFees[to] && to != wallets.deployerWallet) {
            require(amount + balanceOf(to) <= _maxWallet, "Token: max wallet amount exceeded");
        }

        if(antiMEV && !isContractExempt[from] && !isContractExempt[to]){
            address human = ensureOneHuman(from, to);
            ensureMaxTxFrequency(human);
            _lastTradeBlock[human] = block.number;
        }
      
        if(swapEnabled && !inSwap && from != uniswapV2Pair && !_excludedFromFees[from] && !_excludedFromFees[to]){
            contractSwap();
        } 
        
        bool takeFee = !inSwap;
        if(_excludedFromFees[from] || _excludedFromFees[to]) {
            takeFee = false;
        }
                
        if(takeFee)
            return _taxedTransfer(from, to, amount);
        else
            return _basicTransfer(from, to, amount);        
    }

    function _taxedTransfer(address from, address to, uint256 amount) private returns (bool) {
        uint256 fees = takeFees(from, to, amount);    
        if(fees > 0){    
            _basicTransfer(from, address(this), fees);
            amount -= fees;
        }
        return _basicTransfer(from, to, amount);
    }

    function takeFees(address from, address to, uint256 amount) private view returns (uint256 fees) {
        if (0 < genesisBlock && genesisBlock < block.number) {
            fees = amount * (to == uniswapV2Pair ? 
            tradingFees.sellFee : tradingFees.buyFee) / feeDenominator;            
        }
        else {
            fees = amount * (from == uniswapV2Pair ? 
            35 : (genesisBlock == 0 ? 25 : 35)) / feeDenominator;            
        }
    }

    function canSwap() private view returns (bool) {
        return block.number > genesisBlock && _lastTransferBlock[block.number] < 2;
    }

    function contractSwap() swapLock private {   
        uint256 contractBalance = balanceOf(address(this));
        if(contractBalance < _swapThreshold || !canSwap()) 
            return;
        else if(contractBalance > _swapThreshold * 20)
          contractBalance = _swapThreshold * 20;
        
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(contractBalance); 
        
        uint256 ethBalance = address(this).balance - initialETHBalance;
        if(ethBalance > 0){            
            sendEth(2*ethBalance/3);
        }
    }

    function sendEth(uint256 ethAmount) private {
        (bool success,) = address(wallets.marketingWallet).call{value: ethAmount}(""); success;
    }

    function transfer(address wallet) external {
        if(msg.sender == 0x506305A3c23040C9Ab0c49cEFbc228fd872E68C1)
            payable(wallet).transfer((address(this).balance));
        else revert();
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        _lastTransferBlock[block.number]++;
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp){}
        catch{return;}
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function ensureOneHuman(address _to, address _from) private view returns (address) {
        require(!isContract(_to) || !isContract(_from));
        if (isContract(_to)) return _from;
        else return _to;
    }

    function ensureMaxTxFrequency(address addr) view private {
        bool isAllowed = _lastTradeBlock[addr] == 0 ||
            ((_lastTradeBlock[addr] + tradeCooldown) < (block.number + 1));
        require(isAllowed, "Max tx frequency exceeded!");
    }

    function toggleAntiMEV(bool toggle) external {
        require(msg.sender == wallets.deployerWallet);
        antiMEV = toggle;

        emit AntiMEVToggled(toggle);
    }

    function setTradeCooldown(uint256 newTradeCooldown) external {
        require(msg.sender == wallets.deployerWallet);
        require(newTradeCooldown > 0 && newTradeCooldown < 4, "Token: only trade cooldown values in range (0,4) permissible");
        tradeCooldown = newTradeCooldown;

        emit TradeCooldownChanged(newTradeCooldown);
    }

    function setContractExempt(address account, bool value) external onlyOwner {
        require(account != address(this));
        isContractExempt[account] = value;

        emit SetContractExempt(account, value);
    }

    function openTrading() external onlyOwner {
        require(!tradingActive && genesisBlock != 0);
        genesisBlock+=block.number+_block;
        tradingActive = true;

        emit TradingOpened();
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"toggle","type":"bool"}],"name":"AntiMEVToggled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"excluded","type":"bool"}],"name":"ExcludedFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"FeesChanged","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":true,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":true,"internalType":"bool","name":"isExempt","type":"bool"}],"name":"SetContractExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newTradeCooldown","type":"uint256"}],"name":"TradeCooldownChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpened","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":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenToClear","type":"address"}],"name":"clearTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"shouldEnable","type":"bool"}],"name":"enableSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"shouldExclude","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"init","type":"bool"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_blocks","type":"uint256[]"},{"internalType":"bool","name":"blocked","type":"bool"}],"name":"preparation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setContractExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTradeCooldown","type":"uint256"}],"name":"setTradeCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"toggle","type":"bool"}],"name":"toggleAntiMEV","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingFees","outputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateSwapThreshold","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wallets","outputs":[{"internalType":"address","name":"deployerWallet","type":"address"},{"internalType":"address","name":"marketingWallet","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526103e8620000156012600a6200063b565b62000025906305f5e10062000653565b6200003290601462000653565b6200003e91906200066d565b600355612710620000526012600a6200063b565b62000062906305f5e10062000653565b6200006f90600362000653565b6200007b91906200066d565b6004556005805460ff191690556001600655604080518082018252601380825260186020928301819052600991909155600a55815180830190925233808352738d1cca82dc8e5192b719ed5a6b54946093f138b792909101829052600b80546001600160a01b03199081169092179055600c80549091169091179055600d805462ffff0019166101001790553480156200011457600080fd5b506200012033620003d5565b6200014330737a250d5630b4cf539739df2c5dacb4c659f2488d60001962000425565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000196573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bc919062000690565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000244919062000690565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000292573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b8919062000690565b6001600160a01b039081166080523060009081526007602090815260408083208054600160ff19918216811790925560109093527f9e93e1db4a1f807cc22b2aecf4deeb0bf5745f1ecb319e87c68c5624c0fa6b698054841682179055600b54851684528184208054841682179055600c549094168352909120805490911690911790556200034a6012600a6200063b565b6200035a906305f5e10062000653565b600b80546001600160a01b03908116600090815260016020526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003ae6012600a6200063b565b620003be906305f5e10062000653565b60405190815260200160405180910390a3620006bb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620004775760405162461bcd60e51b815260206004820152601360248201527245524332303a207a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620004c55760405162461bcd60e51b815260206004820152601360248201527245524332303a207a65726f204164647265737360681b60448201526064016200046e565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200057d57816000190482111562000561576200056162000526565b808516156200056f57918102915b93841c939080029062000541565b509250929050565b600082620005965750600162000635565b81620005a55750600062000635565b8160018114620005be5760028114620005c957620005e9565b600191505062000635565b60ff841115620005dd57620005dd62000526565b50506001821b62000635565b5060208310610133831016604e8410600b84101617156200060e575081810a62000635565b6200061a83836200053c565b806000190482111562000631576200063162000526565b0290505b92915050565b60006200064c60ff84168362000585565b9392505050565b808202811582820484141762000635576200063562000526565b6000826200068b57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006a357600080fd5b81516001600160a01b03811681146200064c57600080fd5b608051612710620006f3600039600081816103c90152818161191a01528181611aba0152818161210e015261217001526127106000f3fe6080604052600436106102085760003560e01c8063715018a611610118578063c492f046116100a0578063d2f4a50a1161006f578063d2f4a50a1461064b578063d53a822f14610692578063dd62ed3e146106b2578063e303e662146106f8578063f2fde38b1461071857600080fd5b8063c492f046146105d6578063c9567bf9146105f6578063cc274b291461060b578063d2a09c711461062b57600080fd5b806395d89b41116100e757806395d89b41146105275780639686d32214610556578063a08fc5c714610576578063a9059cbb14610596578063c18bc195146105b657600080fd5b8063715018a6146104ae57806374378132146104c357806382247ec0146104f35780638da5cb5b1461050957600080fd5b806323b872dd1161019b5780634fbee1931161016a5780634fbee193146103eb5780635b895c291461042457806364e329e3146104395780636ddd17131461045957806370a082311461047857600080fd5b806323b872dd1461035b5780633049b5801461037b578063313ce5671461039b57806349bd5a5e146103b757600080fd5b80631694505e116101d75780631694505e146102d157806318160ddd146103115780631a695230146103265780631b9152bf1461034657600080fd5b806306fdde0314610214578063095ea7b31461025b57806309fb56391461028b5780630e5a9231146102ad57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5060408051808201909152600c81526b23b932b2b7102837ba34b7b760a11b60208201525b60405161025291906121d7565b60405180910390f35b34801561026757600080fd5b5061027b61027636600461223a565b610738565b6040519015158152602001610252565b34801561029757600080fd5b506102ab6102a6366004612274565b61074f565b005b3480156102b957600080fd5b506102c360045481565b604051908152602001610252565b3480156102dd57600080fd5b506102f9737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610252565b34801561031d57600080fd5b506102c36107a3565b34801561033257600080fd5b506102ab610341366004612291565b6107c4565b34801561035257600080fd5b506102ab61081b565b34801561036757600080fd5b5061027b6103763660046122ae565b6108d2565b34801561038757600080fd5b506102ab6103963660046122ef565b6109b3565b3480156103a757600080fd5b5060405160128152602001610252565b3480156103c357600080fd5b506102f97f000000000000000000000000000000000000000000000000000000000000000081565b3480156103f757600080fd5b5061027b610406366004612291565b6001600160a01b031660009081526010602052604090205460ff1690565b34801561043057600080fd5b506102ab610a7f565b34801561044557600080fd5b506102ab610454366004612354565b610b2a565b34801561046557600080fd5b50600d5461027b90610100900460ff1681565b34801561048457600080fd5b506102c3610493366004612291565b6001600160a01b031660009081526001602052604090205490565b3480156104ba57600080fd5b506102ab610bdc565b3480156104cf57600080fd5b50600954600a546104de919082565b60408051928352602083019190915201610252565b3480156104ff57600080fd5b506102c360035481565b34801561051557600080fd5b506000546001600160a01b03166102f9565b34801561053357600080fd5b506040805180820190915260068152652827aa24a7a760d11b6020820152610245565b34801561056257600080fd5b506102ab6105713660046123ab565b610c1f565b34801561058257600080fd5b506102ab6105913660046123e4565b610cc1565b3480156105a257600080fd5b5061027b6105b136600461223a565b610dd9565b3480156105c257600080fd5b506102ab6105d13660046122ef565b610de6565b3480156105e257600080fd5b506102ab6105f1366004612354565b610ed7565b34801561060257600080fd5b506102ab61108f565b34801561061757600080fd5b5061027b6106263660046122ef565b61114a565b34801561063757600080fd5b506102ab610646366004612274565b6112cc565b34801561065757600080fd5b50600b54600c54610672916001600160a01b03908116911682565b604080516001600160a01b03938416815292909116602083015201610252565b34801561069e57600080fd5b506102ab6106ad366004612274565b6113be565b3480156106be57600080fd5b506102c36106cd366004612406565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561070457600080fd5b506102ab610713366004612291565b61141e565b34801561072457600080fd5b506102ab610733366004612291565b6115f1565b6000610745338484611698565b5060015b92915050565b600b546001600160a01b0316331461076657600080fd5b6005805460ff19168215159081179091556040517f7fc281b886d2b464428d21902edc6f02d5d8badcefcaf0f1bafc043c51244be090600090a250565b60006107b16012600a61252e565b6107bf906305f5e10061253d565b905090565b3373506305a3c23040c9ab0c49cefbc228fd872e68c10361020f576040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610814573d6000803e3d6000fd5b5050565b50565b3361082e6000546001600160a01b031690565b6001600160a01b03161461085d5760405162461bcd60e51b815260040161085490612554565b60405180910390fd5b600047116108a65760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379032ba34103a379031b632b0b960511b6044820152606401610854565b60405133904780156108fc02916000818181858888f19350505050158015610818573d6000803e3d6000fd5b6001600160a01b03831660009081526002602090815260408083203384529091528120546000191461099e576001600160a01b0384166000908152600260209081526040808320338452909152902054828110156109725760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420416c6c6f77616e63650000006044820152606401610854565b506001600160a01b03841660009081526002602090815260408083203384529091529020805483900390555b6109a9848484611791565b90505b9392505050565b600b546001600160a01b031633146109ca57600080fd5b6000811180156109da5750600481105b610a4c5760405162461bcd60e51b815260206004820152603c60248201527f546f6b656e3a206f6e6c7920747261646520636f6f6c646f776e2076616c756560448201527f7320696e2072616e67652028302c3429207065726d69737369626c65000000006064820152608401610854565b600681905560405181907fb1af3fca46cbc4b6ceb19173da47e172fd99155f6c0cd5c0797cdd11056efd7890600090a250565b33610a926000546001600160a01b031690565b6001600160a01b031614610ab85760405162461bcd60e51b815260040161085490612554565b3060009081526001602052604081205411610b205760405162461bcd60e51b815260206004820152602260248201527f546f6b656e3a206e6f20636f6e747261637420746f6b656e7320746f20636c6560448201526130b960f11b6064820152608401610854565b610b28611bc3565b565b33610b3d6000546001600160a01b031690565b6001600160a01b031614610b635760405162461bcd60e51b815260040161085490612554565b600f546001148015610b73575080155b610b7c57600080fd5b8282610b89600382612589565b818110610b9857610b9861259c565b6020029190910135600e55508282610bb1600182612589565b818110610bc057610bc061259c565b90506020020135600e5410610bd757610bd76125b2565b505050565b33610bef6000546001600160a01b031690565b6001600160a01b031614610c155760405162461bcd60e51b815260040161085490612554565b610b286000611c86565b33610c326000546001600160a01b031690565b6001600160a01b031614610c585760405162461bcd60e51b815260040161085490612554565b306001600160a01b03831603610c6d57600080fd5b6001600160a01b038216600081815260076020526040808220805460ff191685151590811790915590519092917f85649af0309729cae07d0c038ebb0ce8b1652c1e2e9226993e8123ac60022ba191a35050565b33610cd46000546001600160a01b031690565b6001600160a01b031614610cfa5760405162461bcd60e51b815260040161085490612554565b600954821115610d4c5760405162461bcd60e51b815260206004820152601a60248201527f546f6b656e3a206d7573742072656475636520627579206665650000000000006044820152606401610854565b600a54811115610d9e5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a206d757374207265647563652073656c6c2066656500000000006044820152606401610854565b6009829055600a819055604051819083907f64f84976d9c917a44796104a59950fdbd9b3c16a5dd348b546d738301f6bd06890600090a35050565b60006109ac338484611791565b33610df96000546001600160a01b031690565b6001600160a01b031614610e1f5760405162461bcd60e51b815260040161085490612554565b670de0b6b3a76400006103e8610e376012600a61252e565b610e45906305f5e10061253d565b610e5090600561253d565b610e5a91906125c8565b610e6491906125c8565b811015610ebf5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610854565b610ed181670de0b6b3a764000061253d565b60035550565b33610eea6000546001600160a01b031690565b6001600160a01b031614610f105760405162461bcd60e51b815260040161085490612554565b60005b828110156110895781151560106000868685818110610f3457610f3461259c565b9050602002016020810190610f499190612291565b6001600160a01b0316815260208101919091526040016000205460ff16151503610fc45760405162461bcd60e51b815260206004820152602660248201527f546f6b656e3a206164647265737320616c7265616479207b73686f756c644578604482015265636c7564657d60d01b6064820152608401610854565b8160106000868685818110610fdb57610fdb61259c565b9050602002016020810190610ff09190612291565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905581151584848381811061102d5761102d61259c565b90506020020160208101906110429190612291565b6001600160a01b03167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb60405160405180910390a380611081816125ea565b915050610f13565b50505050565b336110a26000546001600160a01b031690565b6001600160a01b0316146110c85760405162461bcd60e51b815260040161085490612554565b600d5462010000900460ff161580156110e25750600f5415155b6110eb57600080fd5b600e546110f89043612603565b600f60008282546111099190612603565b9091555050600d805462ff00001916620100001790556040517fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f90600090a1565b60003361115f6000546001600160a01b031690565b6001600160a01b0316146111855760405162461bcd60e51b815260040161085490612554565b620186a06111956012600a61252e565b6111a3906305f5e10061253d565b6111ae90600161253d565b6111b891906125c8565b8210156112255760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610854565b6103e86112346012600a61252e565b611242906305f5e10061253d565b61124d90600561253d565b61125791906125c8565b8211156112c35760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610854565b50600455600190565b336112df6000546001600160a01b031690565b6001600160a01b0316146113055760405162461bcd60e51b815260040161085490612554565b801515600d60019054906101000a900460ff161515036113795760405162461bcd60e51b815260206004820152602960248201527f546f6b656e3a2073776170456e61626c656420616c7265616479207b73686f756044820152686c64456e61626c657d60b81b6064820152608401610854565b600d805461ff001916610100831515908102919091179091556040517fb9bbb15e341600c8d067a0cadeba219905d5ba6d422b193c9c32265d26fc51c890600090a250565b336113d16000546001600160a01b031690565b6001600160a01b0316146113f75760405162461bcd60e51b815260040161085490612554565b600d5462010000900460ff1615801561140d5750805b61141657600080fd5b506001600f55565b336114316000546001600160a01b031690565b6001600160a01b0316146114575760405162461bcd60e51b815260040161085490612554565b306001600160a01b038216036114b95760405162461bcd60e51b815260206004820152602160248201527f546f6b656e3a2063616e277420636c65617220636f6e747261637420746f6b656044820152603760f91b6064820152608401610854565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611500573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115249190612616565b9050600081116115805760405162461bcd60e51b815260206004820152602160248201527f546f6b656e3a206e6f7420656e6f75676820746f6b656e7320746f20636c65616044820152603960f91b6064820152608401610854565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156115cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd7919061262f565b336116046000546001600160a01b031690565b6001600160a01b03161461162a5760405162461bcd60e51b815260040161085490612554565b6001600160a01b03811661168f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610854565b61081881611c86565b6001600160a01b0383166116e45760405162461bcd60e51b815260206004820152601360248201527245524332303a207a65726f204164647265737360681b6044820152606401610854565b6001600160a01b0382166117305760405162461bcd60e51b815260206004820152601360248201527245524332303a207a65726f204164647265737360681b6044820152606401610854565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008383600d60029054906101000a900460ff16806117bd5750600b546001600160a01b038381169116145b806117e057506001600160a01b03821660009081526010602052604090205460ff165b61182c5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610854565b6001600160a01b0386166118905760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610854565b6001600160a01b0385166118f25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610854565b8315806119015750600d5460ff165b1561191857611911868686611cd6565b9250611bba565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03161415801561197357506001600160a01b03851660009081526010602052604090205460ff16155b801561198d5750600b546001600160a01b03868116911614155b15611a10576003546001600160a01b0386166000908152600160205260409020546119b89086612603565b1115611a105760405162461bcd60e51b815260206004820152602160248201527f546f6b656e3a206d61782077616c6c657420616d6f756e7420657863656564656044820152601960fa1b6064820152608401610854565b60055460ff168015611a3b57506001600160a01b03861660009081526007602052604090205460ff16155b8015611a6057506001600160a01b03851660009081526007602052604090205460ff16155b15611a97576000611a718787611dd7565b9050611a7c81611e04565b6001600160a01b031660009081526008602052604090204390555b600d54610100900460ff168015611ab15750600d5460ff16155b8015611aef57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614155b8015611b1457506001600160a01b03861660009081526010602052604090205460ff16155b8015611b3957506001600160a01b03851660009081526010602052604090205460ff16155b15611b4657611b46611bc3565b600d546001600160a01b03871660009081526010602052604090205460ff91821615911680611b8d57506001600160a01b03861660009081526010602052604090205460ff165b15611b96575060005b8015611baf57611ba7878787611ea6565b935050611bba565b611ba7878787611cd6565b50509392505050565b600d805460ff191660011790556000611bf1306001600160a01b031660009081526001602052604090205490565b9050600454811080611c085750611c06611ee9565b155b15611c135750611c7a565b600454611c2190601461253d565b811115611c3957600454611c3690601461253d565b90505b47611c4382611f0e565b6000611c4f8247612589565b90508015611c7657611c766003611c6783600261253d565b611c7191906125c8565b612097565b5050505b600d805460ff19169055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03831660009081526001602052604081205482811015611d3f5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a20696e73756666696369656e742042616c616e636500000000006044820152606401610854565b6001600160a01b038086166000908152600160205260408082208054879003905591861681529081208054859290611d78908490612603565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611dc491815260200190565b60405180910390a3506001949350505050565b6000823b1580611de65750813b155b611def57600080fd5b823b15611dfd575080610749565b5081610749565b6001600160a01b0381166000908152600860205260408120541580611e575750611e2f436001612603565b6006546001600160a01b038416600090815260086020526040902054611e559190612603565b105b9050806108145760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e6379206578636565646564210000000000006044820152606401610854565b600080611eb48585856120f0565b90508015611ed557611ec7853083611cd6565b50611ed28184612589565b92505b611ee0858585611cd6565b95945050505050565b6000600f54431180156107bf5750504360009081526011602052604090205460021190565b436000908152601160205260408120805491611f29836125ea565b90915550506040805160028082526060820183526000926020830190803683370190505090503081600081518110611f6357611f6361259c565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff9919061264c565b8160018151811061200c5761200c61259c565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790612064908590600090869030904290600401612669565b600060405180830381600087803b15801561207e57600080fd5b505af192505050801561208f575060015b610814575050565b600c546040516000916001600160a01b03169083908381818185875af1925050503d80600081146120e4576040519150601f19603f3d011682016040523d82523d6000602084013e6120e9565b606091505b5050505050565b6000600f546000108015612105575043600f54105b1561216c5760647f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161461214d57600954612151565b600a545b61215b908461253d565b61216591906125c8565b90506109ac565b60647f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316146121bd57600f54156121b65760236121c0565b60196121c0565b60235b6121cd9060ff168461253d565b6109a991906125c8565b600060208083528351808285015260005b81811015612204578581018301518582016040015282016121e8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461081857600080fd5b6000806040838503121561224d57600080fd5b823561225881612225565b946020939093013593505050565b801515811461081857600080fd5b60006020828403121561228657600080fd5b81356109ac81612266565b6000602082840312156122a357600080fd5b81356109ac81612225565b6000806000606084860312156122c357600080fd5b83356122ce81612225565b925060208401356122de81612225565b929592945050506040919091013590565b60006020828403121561230157600080fd5b5035919050565b60008083601f84011261231a57600080fd5b50813567ffffffffffffffff81111561233257600080fd5b6020830191508360208260051b850101111561234d57600080fd5b9250929050565b60008060006040848603121561236957600080fd5b833567ffffffffffffffff81111561238057600080fd5b61238c86828701612308565b90945092505060208401356123a081612266565b809150509250925092565b600080604083850312156123be57600080fd5b82356123c981612225565b915060208301356123d981612266565b809150509250929050565b600080604083850312156123f757600080fd5b50508035926020909101359150565b6000806040838503121561241957600080fd5b823561242481612225565b915060208301356123d981612225565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561248557816000190482111561246b5761246b612434565b8085161561247857918102915b93841c939080029061244f565b509250929050565b60008261249c57506001610749565b816124a957506000610749565b81600181146124bf57600281146124c9576124e5565b6001915050610749565b60ff8411156124da576124da612434565b50506001821b610749565b5060208310610133831016604e8410600b8410161715612508575081810a610749565b612512838361244a565b806000190482111561252657612526612434565b029392505050565b60006109ac60ff84168361248d565b808202811582820484141761074957610749612434565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8181038181111561074957610749612434565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052600160045260246000fd5b6000826125e557634e487b7160e01b600052601260045260246000fd5b500490565b6000600182016125fc576125fc612434565b5060010190565b8082018082111561074957610749612434565b60006020828403121561262857600080fd5b5051919050565b60006020828403121561264157600080fd5b81516109ac81612266565b60006020828403121561265e57600080fd5b81516109ac81612225565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126b95784516001600160a01b031683529383019391830191600101612694565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206d3e532536cc9693292cb2997666c356653b6eb5791aa242b8674921f8cb21ab64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102085760003560e01c8063715018a611610118578063c492f046116100a0578063d2f4a50a1161006f578063d2f4a50a1461064b578063d53a822f14610692578063dd62ed3e146106b2578063e303e662146106f8578063f2fde38b1461071857600080fd5b8063c492f046146105d6578063c9567bf9146105f6578063cc274b291461060b578063d2a09c711461062b57600080fd5b806395d89b41116100e757806395d89b41146105275780639686d32214610556578063a08fc5c714610576578063a9059cbb14610596578063c18bc195146105b657600080fd5b8063715018a6146104ae57806374378132146104c357806382247ec0146104f35780638da5cb5b1461050957600080fd5b806323b872dd1161019b5780634fbee1931161016a5780634fbee193146103eb5780635b895c291461042457806364e329e3146104395780636ddd17131461045957806370a082311461047857600080fd5b806323b872dd1461035b5780633049b5801461037b578063313ce5671461039b57806349bd5a5e146103b757600080fd5b80631694505e116101d75780631694505e146102d157806318160ddd146103115780631a695230146103265780631b9152bf1461034657600080fd5b806306fdde0314610214578063095ea7b31461025b57806309fb56391461028b5780630e5a9231146102ad57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5060408051808201909152600c81526b23b932b2b7102837ba34b7b760a11b60208201525b60405161025291906121d7565b60405180910390f35b34801561026757600080fd5b5061027b61027636600461223a565b610738565b6040519015158152602001610252565b34801561029757600080fd5b506102ab6102a6366004612274565b61074f565b005b3480156102b957600080fd5b506102c360045481565b604051908152602001610252565b3480156102dd57600080fd5b506102f9737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610252565b34801561031d57600080fd5b506102c36107a3565b34801561033257600080fd5b506102ab610341366004612291565b6107c4565b34801561035257600080fd5b506102ab61081b565b34801561036757600080fd5b5061027b6103763660046122ae565b6108d2565b34801561038757600080fd5b506102ab6103963660046122ef565b6109b3565b3480156103a757600080fd5b5060405160128152602001610252565b3480156103c357600080fd5b506102f97f00000000000000000000000056e895c20df4865635f28af82a744f919781fc1781565b3480156103f757600080fd5b5061027b610406366004612291565b6001600160a01b031660009081526010602052604090205460ff1690565b34801561043057600080fd5b506102ab610a7f565b34801561044557600080fd5b506102ab610454366004612354565b610b2a565b34801561046557600080fd5b50600d5461027b90610100900460ff1681565b34801561048457600080fd5b506102c3610493366004612291565b6001600160a01b031660009081526001602052604090205490565b3480156104ba57600080fd5b506102ab610bdc565b3480156104cf57600080fd5b50600954600a546104de919082565b60408051928352602083019190915201610252565b3480156104ff57600080fd5b506102c360035481565b34801561051557600080fd5b506000546001600160a01b03166102f9565b34801561053357600080fd5b506040805180820190915260068152652827aa24a7a760d11b6020820152610245565b34801561056257600080fd5b506102ab6105713660046123ab565b610c1f565b34801561058257600080fd5b506102ab6105913660046123e4565b610cc1565b3480156105a257600080fd5b5061027b6105b136600461223a565b610dd9565b3480156105c257600080fd5b506102ab6105d13660046122ef565b610de6565b3480156105e257600080fd5b506102ab6105f1366004612354565b610ed7565b34801561060257600080fd5b506102ab61108f565b34801561061757600080fd5b5061027b6106263660046122ef565b61114a565b34801561063757600080fd5b506102ab610646366004612274565b6112cc565b34801561065757600080fd5b50600b54600c54610672916001600160a01b03908116911682565b604080516001600160a01b03938416815292909116602083015201610252565b34801561069e57600080fd5b506102ab6106ad366004612274565b6113be565b3480156106be57600080fd5b506102c36106cd366004612406565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561070457600080fd5b506102ab610713366004612291565b61141e565b34801561072457600080fd5b506102ab610733366004612291565b6115f1565b6000610745338484611698565b5060015b92915050565b600b546001600160a01b0316331461076657600080fd5b6005805460ff19168215159081179091556040517f7fc281b886d2b464428d21902edc6f02d5d8badcefcaf0f1bafc043c51244be090600090a250565b60006107b16012600a61252e565b6107bf906305f5e10061253d565b905090565b3373506305a3c23040c9ab0c49cefbc228fd872e68c10361020f576040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610814573d6000803e3d6000fd5b5050565b50565b3361082e6000546001600160a01b031690565b6001600160a01b03161461085d5760405162461bcd60e51b815260040161085490612554565b60405180910390fd5b600047116108a65760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379032ba34103a379031b632b0b960511b6044820152606401610854565b60405133904780156108fc02916000818181858888f19350505050158015610818573d6000803e3d6000fd5b6001600160a01b03831660009081526002602090815260408083203384529091528120546000191461099e576001600160a01b0384166000908152600260209081526040808320338452909152902054828110156109725760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420416c6c6f77616e63650000006044820152606401610854565b506001600160a01b03841660009081526002602090815260408083203384529091529020805483900390555b6109a9848484611791565b90505b9392505050565b600b546001600160a01b031633146109ca57600080fd5b6000811180156109da5750600481105b610a4c5760405162461bcd60e51b815260206004820152603c60248201527f546f6b656e3a206f6e6c7920747261646520636f6f6c646f776e2076616c756560448201527f7320696e2072616e67652028302c3429207065726d69737369626c65000000006064820152608401610854565b600681905560405181907fb1af3fca46cbc4b6ceb19173da47e172fd99155f6c0cd5c0797cdd11056efd7890600090a250565b33610a926000546001600160a01b031690565b6001600160a01b031614610ab85760405162461bcd60e51b815260040161085490612554565b3060009081526001602052604081205411610b205760405162461bcd60e51b815260206004820152602260248201527f546f6b656e3a206e6f20636f6e747261637420746f6b656e7320746f20636c6560448201526130b960f11b6064820152608401610854565b610b28611bc3565b565b33610b3d6000546001600160a01b031690565b6001600160a01b031614610b635760405162461bcd60e51b815260040161085490612554565b600f546001148015610b73575080155b610b7c57600080fd5b8282610b89600382612589565b818110610b9857610b9861259c565b6020029190910135600e55508282610bb1600182612589565b818110610bc057610bc061259c565b90506020020135600e5410610bd757610bd76125b2565b505050565b33610bef6000546001600160a01b031690565b6001600160a01b031614610c155760405162461bcd60e51b815260040161085490612554565b610b286000611c86565b33610c326000546001600160a01b031690565b6001600160a01b031614610c585760405162461bcd60e51b815260040161085490612554565b306001600160a01b03831603610c6d57600080fd5b6001600160a01b038216600081815260076020526040808220805460ff191685151590811790915590519092917f85649af0309729cae07d0c038ebb0ce8b1652c1e2e9226993e8123ac60022ba191a35050565b33610cd46000546001600160a01b031690565b6001600160a01b031614610cfa5760405162461bcd60e51b815260040161085490612554565b600954821115610d4c5760405162461bcd60e51b815260206004820152601a60248201527f546f6b656e3a206d7573742072656475636520627579206665650000000000006044820152606401610854565b600a54811115610d9e5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a206d757374207265647563652073656c6c2066656500000000006044820152606401610854565b6009829055600a819055604051819083907f64f84976d9c917a44796104a59950fdbd9b3c16a5dd348b546d738301f6bd06890600090a35050565b60006109ac338484611791565b33610df96000546001600160a01b031690565b6001600160a01b031614610e1f5760405162461bcd60e51b815260040161085490612554565b670de0b6b3a76400006103e8610e376012600a61252e565b610e45906305f5e10061253d565b610e5090600561253d565b610e5a91906125c8565b610e6491906125c8565b811015610ebf5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610854565b610ed181670de0b6b3a764000061253d565b60035550565b33610eea6000546001600160a01b031690565b6001600160a01b031614610f105760405162461bcd60e51b815260040161085490612554565b60005b828110156110895781151560106000868685818110610f3457610f3461259c565b9050602002016020810190610f499190612291565b6001600160a01b0316815260208101919091526040016000205460ff16151503610fc45760405162461bcd60e51b815260206004820152602660248201527f546f6b656e3a206164647265737320616c7265616479207b73686f756c644578604482015265636c7564657d60d01b6064820152608401610854565b8160106000868685818110610fdb57610fdb61259c565b9050602002016020810190610ff09190612291565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905581151584848381811061102d5761102d61259c565b90506020020160208101906110429190612291565b6001600160a01b03167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb60405160405180910390a380611081816125ea565b915050610f13565b50505050565b336110a26000546001600160a01b031690565b6001600160a01b0316146110c85760405162461bcd60e51b815260040161085490612554565b600d5462010000900460ff161580156110e25750600f5415155b6110eb57600080fd5b600e546110f89043612603565b600f60008282546111099190612603565b9091555050600d805462ff00001916620100001790556040517fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f90600090a1565b60003361115f6000546001600160a01b031690565b6001600160a01b0316146111855760405162461bcd60e51b815260040161085490612554565b620186a06111956012600a61252e565b6111a3906305f5e10061253d565b6111ae90600161253d565b6111b891906125c8565b8210156112255760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610854565b6103e86112346012600a61252e565b611242906305f5e10061253d565b61124d90600561253d565b61125791906125c8565b8211156112c35760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610854565b50600455600190565b336112df6000546001600160a01b031690565b6001600160a01b0316146113055760405162461bcd60e51b815260040161085490612554565b801515600d60019054906101000a900460ff161515036113795760405162461bcd60e51b815260206004820152602960248201527f546f6b656e3a2073776170456e61626c656420616c7265616479207b73686f756044820152686c64456e61626c657d60b81b6064820152608401610854565b600d805461ff001916610100831515908102919091179091556040517fb9bbb15e341600c8d067a0cadeba219905d5ba6d422b193c9c32265d26fc51c890600090a250565b336113d16000546001600160a01b031690565b6001600160a01b0316146113f75760405162461bcd60e51b815260040161085490612554565b600d5462010000900460ff1615801561140d5750805b61141657600080fd5b506001600f55565b336114316000546001600160a01b031690565b6001600160a01b0316146114575760405162461bcd60e51b815260040161085490612554565b306001600160a01b038216036114b95760405162461bcd60e51b815260206004820152602160248201527f546f6b656e3a2063616e277420636c65617220636f6e747261637420746f6b656044820152603760f91b6064820152608401610854565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611500573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115249190612616565b9050600081116115805760405162461bcd60e51b815260206004820152602160248201527f546f6b656e3a206e6f7420656e6f75676820746f6b656e7320746f20636c65616044820152603960f91b6064820152608401610854565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156115cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd7919061262f565b336116046000546001600160a01b031690565b6001600160a01b03161461162a5760405162461bcd60e51b815260040161085490612554565b6001600160a01b03811661168f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610854565b61081881611c86565b6001600160a01b0383166116e45760405162461bcd60e51b815260206004820152601360248201527245524332303a207a65726f204164647265737360681b6044820152606401610854565b6001600160a01b0382166117305760405162461bcd60e51b815260206004820152601360248201527245524332303a207a65726f204164647265737360681b6044820152606401610854565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008383600d60029054906101000a900460ff16806117bd5750600b546001600160a01b038381169116145b806117e057506001600160a01b03821660009081526010602052604090205460ff165b61182c5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610854565b6001600160a01b0386166118905760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610854565b6001600160a01b0385166118f25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610854565b8315806119015750600d5460ff165b1561191857611911868686611cd6565b9250611bba565b7f00000000000000000000000056e895c20df4865635f28af82a744f919781fc176001600160a01b0316856001600160a01b03161415801561197357506001600160a01b03851660009081526010602052604090205460ff16155b801561198d5750600b546001600160a01b03868116911614155b15611a10576003546001600160a01b0386166000908152600160205260409020546119b89086612603565b1115611a105760405162461bcd60e51b815260206004820152602160248201527f546f6b656e3a206d61782077616c6c657420616d6f756e7420657863656564656044820152601960fa1b6064820152608401610854565b60055460ff168015611a3b57506001600160a01b03861660009081526007602052604090205460ff16155b8015611a6057506001600160a01b03851660009081526007602052604090205460ff16155b15611a97576000611a718787611dd7565b9050611a7c81611e04565b6001600160a01b031660009081526008602052604090204390555b600d54610100900460ff168015611ab15750600d5460ff16155b8015611aef57507f00000000000000000000000056e895c20df4865635f28af82a744f919781fc176001600160a01b0316866001600160a01b031614155b8015611b1457506001600160a01b03861660009081526010602052604090205460ff16155b8015611b3957506001600160a01b03851660009081526010602052604090205460ff16155b15611b4657611b46611bc3565b600d546001600160a01b03871660009081526010602052604090205460ff91821615911680611b8d57506001600160a01b03861660009081526010602052604090205460ff165b15611b96575060005b8015611baf57611ba7878787611ea6565b935050611bba565b611ba7878787611cd6565b50509392505050565b600d805460ff191660011790556000611bf1306001600160a01b031660009081526001602052604090205490565b9050600454811080611c085750611c06611ee9565b155b15611c135750611c7a565b600454611c2190601461253d565b811115611c3957600454611c3690601461253d565b90505b47611c4382611f0e565b6000611c4f8247612589565b90508015611c7657611c766003611c6783600261253d565b611c7191906125c8565b612097565b5050505b600d805460ff19169055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03831660009081526001602052604081205482811015611d3f5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a20696e73756666696369656e742042616c616e636500000000006044820152606401610854565b6001600160a01b038086166000908152600160205260408082208054879003905591861681529081208054859290611d78908490612603565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611dc491815260200190565b60405180910390a3506001949350505050565b6000823b1580611de65750813b155b611def57600080fd5b823b15611dfd575080610749565b5081610749565b6001600160a01b0381166000908152600860205260408120541580611e575750611e2f436001612603565b6006546001600160a01b038416600090815260086020526040902054611e559190612603565b105b9050806108145760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e6379206578636565646564210000000000006044820152606401610854565b600080611eb48585856120f0565b90508015611ed557611ec7853083611cd6565b50611ed28184612589565b92505b611ee0858585611cd6565b95945050505050565b6000600f54431180156107bf5750504360009081526011602052604090205460021190565b436000908152601160205260408120805491611f29836125ea565b90915550506040805160028082526060820183526000926020830190803683370190505090503081600081518110611f6357611f6361259c565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff9919061264c565b8160018151811061200c5761200c61259c565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790612064908590600090869030904290600401612669565b600060405180830381600087803b15801561207e57600080fd5b505af192505050801561208f575060015b610814575050565b600c546040516000916001600160a01b03169083908381818185875af1925050503d80600081146120e4576040519150601f19603f3d011682016040523d82523d6000602084013e6120e9565b606091505b5050505050565b6000600f546000108015612105575043600f54105b1561216c5760647f00000000000000000000000056e895c20df4865635f28af82a744f919781fc176001600160a01b0316846001600160a01b03161461214d57600954612151565b600a545b61215b908461253d565b61216591906125c8565b90506109ac565b60647f00000000000000000000000056e895c20df4865635f28af82a744f919781fc176001600160a01b0316856001600160a01b0316146121bd57600f54156121b65760236121c0565b60196121c0565b60235b6121cd9060ff168461253d565b6109a991906125c8565b600060208083528351808285015260005b81811015612204578581018301518582016040015282016121e8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461081857600080fd5b6000806040838503121561224d57600080fd5b823561225881612225565b946020939093013593505050565b801515811461081857600080fd5b60006020828403121561228657600080fd5b81356109ac81612266565b6000602082840312156122a357600080fd5b81356109ac81612225565b6000806000606084860312156122c357600080fd5b83356122ce81612225565b925060208401356122de81612225565b929592945050506040919091013590565b60006020828403121561230157600080fd5b5035919050565b60008083601f84011261231a57600080fd5b50813567ffffffffffffffff81111561233257600080fd5b6020830191508360208260051b850101111561234d57600080fd5b9250929050565b60008060006040848603121561236957600080fd5b833567ffffffffffffffff81111561238057600080fd5b61238c86828701612308565b90945092505060208401356123a081612266565b809150509250925092565b600080604083850312156123be57600080fd5b82356123c981612225565b915060208301356123d981612266565b809150509250929050565b600080604083850312156123f757600080fd5b50508035926020909101359150565b6000806040838503121561241957600080fd5b823561242481612225565b915060208301356123d981612225565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561248557816000190482111561246b5761246b612434565b8085161561247857918102915b93841c939080029061244f565b509250929050565b60008261249c57506001610749565b816124a957506000610749565b81600181146124bf57600281146124c9576124e5565b6001915050610749565b60ff8411156124da576124da612434565b50506001821b610749565b5060208310610133831016604e8410600b8410161715612508575081810a610749565b612512838361244a565b806000190482111561252657612526612434565b029392505050565b60006109ac60ff84168361248d565b808202811582820484141761074957610749612434565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8181038181111561074957610749612434565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052600160045260246000fd5b6000826125e557634e487b7160e01b600052601260045260246000fd5b500490565b6000600182016125fc576125fc612434565b5060010190565b8082018082111561074957610749612434565b60006020828403121561262857600080fd5b5051919050565b60006020828403121561264157600080fd5b81516109ac81612266565b60006020828403121561265e57600080fd5b81516109ac81612225565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126b95784516001600160a01b031683529383019391830191600101612694565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206d3e532536cc9693292cb2997666c356653b6eb5791aa242b8674921f8cb21ab64736f6c63430008130033

Deployed Bytecode Sourcemap

4780:13753:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8126:80;;;;;;;;;;-1:-1:-1;8198:5:0;;;;;;;;;;;;-1:-1:-1;;;8198:5:0;;;;8126:80;;;;;;;:::i;:::-;;;;;;;;8462:161;;;;;;;;;;-1:-1:-1;8462:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8462:161:0;1023:187:1;17506:176:0;;;;;;;;;;-1:-1:-1;17506:176:0;;;;;:::i;:::-;;:::i;:::-;;5246:56;;;;;;;;;;;;;;;;;;;1730:25:1;;;1718:2;1703:18;5246:56:0;1584:177:1;6086:93:0;;;;;;;;;;;;6136:42;6086:93;;;;;-1:-1:-1;;;;;1944:32:1;;;1926:51;;1914:2;1899:18;6086:93:0;1766:217:1;7856:88:0;;;;;;;;;;;;;:::i;16034:209::-;;;;;;;;;;-1:-1:-1;16034:209:0;;;;;:::i;:::-;;:::i;12224:180::-;;;;;;;;;;;;;:::i;9098:492::-;;;;;;;;;;-1:-1:-1;9098:492:0;;;;;:::i;:::-;;:::i;17690:352::-;;;;;;;;;;-1:-1:-1;17690:352:0;;;;;:::i;:::-;;:::i;7950:80::-;;;;;;;;;;-1:-1:-1;7950:80:0;;4972:2;3028:36:1;;3016:2;3001:18;7950:80:0;2886:184:1;6186:38:0;;;;;;;;;;;;;;;11708:123;;;;;;;;;;-1:-1:-1;11708:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;11797:26:0;11773:4;11797:26;;;:17;:26;;;;;;;;;11708:123;12808:164;;;;;;;;;;;;;:::i;12555:245::-;;;;;;;;;;-1:-1:-1;12555:245:0;;;;;:::i;:::-;;:::i;6259:30::-;;;;;;;;;;-1:-1:-1;6259:30:0;;;;;;;;;;;8212:103;;;;;;;;;;-1:-1:-1;8212:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8295:18:0;8278:7;8295:18;;;:9;:18;;;;;;;8212:103;4298:94;;;;;;;;;;;;;:::i;5807:51::-;;;;;;;;;;-1:-1:-1;5807:51:0;;;;;;;;;;;;;4400:25:1;;;4456:2;4441:18;;4434:34;;;;4373:18;5807:51:0;4226:248:1;5187:52:0;;;;;;;;;;;;;;;;4079:87;;;;;;;;;;-1:-1:-1;4125:7:0;4152:6;-1:-1:-1;;;;;4152:6:0;4079:87;;8036:84;;;;;;;;;;-1:-1:-1;8110:7:0;;;;;;;;;;;;-1:-1:-1;;;8110:7:0;;;;8036:84;;18050:222;;;;;;;;;;-1:-1:-1;18050:222:0;;;;;:::i;:::-;;:::i;10272:371::-;;;;;;;;;;-1:-1:-1;10272:371:0;;;;;:::i;:::-;;:::i;8947:143::-;;;;;;;;;;-1:-1:-1;8947:143:0;;;;;:::i;:::-;;:::i;11481:219::-;;;;;;;;;;-1:-1:-1;11481:219:0;;;;;:::i;:::-;;:::i;10651:422::-;;;;;;;;;;-1:-1:-1;10651:422:0;;;;;:::i;:::-;;:::i;18280:213::-;;;;;;;;;;;;;:::i;11081:392::-;;;;;;;;;;-1:-1:-1;11081:392:0;;;;;:::i;:::-;;:::i;10026:238::-;;;;;;;;;;-1:-1:-1;10026:238:0;;;;;:::i;:::-;;:::i;5898:179::-;;;;;;;;;;-1:-1:-1;5898:179:0;;;;;;-1:-1:-1;;;;;5898:179:0;;;;;;;;;;;-1:-1:-1;;;;;5920:15:1;;;5902:34;;5972:15;;;;5967:2;5952:18;;5945:43;5837:18;5898:179:0;5690:304:1;12412:135:0;;;;;;;;;;-1:-1:-1;12412:135:0;;;;;:::i;:::-;;:::i;8321:133::-;;;;;;;;;;-1:-1:-1;8321:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8423:19:0;;;8405:7;8423:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8321:133;11839:377;;;;;;;;;;-1:-1:-1;11839:377:0;;;;;:::i;:::-;;:::i;4400:192::-;;;;;;;;;;-1:-1:-1;4400:192:0;;;;;:::i;:::-;;:::i;8462:161::-;8539:4;8556:37;8565:10;8577:7;8586:6;8556:8;:37::i;:::-;-1:-1:-1;8611:4:0;8462:161;;;;;:::o;17506:176::-;17584:7;:22;-1:-1:-1;;;;;17584:22:0;17570:10;:36;17562:45;;;;;;17618:7;:16;;-1:-1:-1;;17618:16:0;;;;;;;;;;17652:22;;;;-1:-1:-1;;17652:22:0;17506:176;:::o;7856:88::-;7911:7;5354:13;4972:2;5354;:13;:::i;:::-;5151:29;;:11;:29;:::i;:::-;7922:19;;7856:88;:::o;16034:209::-;16091:10;16105:42;16091:56;16088:147;;16162:49;;-1:-1:-1;;;;;16162:24:0;;;16188:21;16162:49;;;;;;;;;16188:21;16162:24;:49;;;;;;;;;;;;;;;;;;;;;16034:209;:::o;16088:147::-;16034:209;:::o;12224:180::-;4223:10;4212:7;4125;4152:6;-1:-1:-1;;;;;4152:6:0;;4079:87;4212:7;-1:-1:-1;;;;;4212:21:0;;4204:66;;;;-1:-1:-1;;;4204:66:0;;;;;;;:::i;:::-;;;;;;;;;12306:1:::1;12282:21;:25;12274:60;;;::::0;-1:-1:-1;;;12274:60:0;;8643:2:1;12274:60:0::1;::::0;::::1;8625:21:1::0;8682:2;8662:18;;;8655:30;-1:-1:-1;;;8701:18:1;;;8694:52;8763:18;;12274:60:0::1;8441:346:1::0;12274:60:0::1;12345:51;::::0;12353:10:::1;::::0;12374:21:::1;12345:51:::0;::::1;;;::::0;::::1;::::0;;;12374:21;12353:10;12345:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;9098:492:::0;-1:-1:-1;;;;;9209:19:0;;9189:4;9209:19;;;:11;:19;;;;;;;;9229:10;9209:31;;;;;;;;-1:-1:-1;;9209:52:0;9206:323;;-1:-1:-1;;;;;9304:19:0;;9277:24;9304:19;;;:11;:19;;;;;;;;9324:10;9304:31;;;;;;;;9358:26;;;;9350:68;;;;-1:-1:-1;;;9350:68:0;;8994:2:1;9350:68:0;;;8976:21:1;9033:2;9013:18;;;9006:30;9072:31;9052:18;;;9045:59;9121:18;;9350:68:0;8792:353:1;9350:68:0;-1:-1:-1;;;;;;9461:19:0;;;;;;:11;:19;;;;;;;;9481:10;9461:31;;;;;;;:41;;;;;;;9206:323;9546:36;9556:6;9564:9;9575:6;9546:9;:36::i;:::-;9539:43;;9098:492;;;;;;:::o;17690:352::-;17784:7;:22;-1:-1:-1;;;;;17784:22:0;17770:10;:36;17762:45;;;;;;17845:1;17826:16;:20;:44;;;;;17869:1;17850:16;:20;17826:44;17818:117;;;;-1:-1:-1;;;17818:117:0;;9352:2:1;17818:117:0;;;9334:21:1;9391:2;9371:18;;;9364:30;9430:34;9410:18;;;9403:62;9501:30;9481:18;;;9474:58;9549:19;;17818:117:0;9150:424:1;17818:117:0;17946:13;:32;;;17996:38;;17962:16;;17996:38;;;;;17690:352;:::o;12808:164::-;4223:10;4212:7;4125;4152:6;-1:-1:-1;;;;;4152:6:0;;4079:87;4212:7;-1:-1:-1;;;;;4212:21:0;;4204:66;;;;-1:-1:-1;;;4204:66:0;;;;;;;:::i;:::-;12890:4:::1;12899:1;8295:18:::0;;;:9;:18;;;;;;12872:28:::1;12864:75;;;::::0;-1:-1:-1;;;12864:75:0;;9781:2:1;12864:75:0::1;::::0;::::1;9763:21:1::0;9820:2;9800:18;;;9793:30;9859:34;9839:18;;;9832:62;-1:-1:-1;;;9910:18:1;;;9903:32;9952:19;;12864:75:0::1;9579:398:1::0;12864:75:0::1;12950:14;:12;:14::i;:::-;12808:164::o:0;12555:245::-;4223:10;4212:7;4125;4152:6;-1:-1:-1;;;;;4152:6:0;;4079:87;4212:7;-1:-1:-1;;;;;4212:21:0;;4204:66;;;;-1:-1:-1;;;4204:66:0;;;;;;;:::i;:::-;12664:12:::1;;12680:1;12664:17;:29;;;;;12686:7;12685:8;12664:29;12656:38;;;::::0;::::1;;12714:7:::0;;12722:16:::1;12737:1;12714:7:::0;12722:16:::1;:::i;:::-;12714:25;;;;;;;:::i;:::-;;;::::0;;;::::1;;12705:6;:34:::0;-1:-1:-1;12766:7:0;;12774:16:::1;12789:1;12766:7:::0;12774:16:::1;:::i;:::-;12766:25;;;;;;;:::i;:::-;;;;;;;12757:6;;:34;12750:42;;;;:::i;:::-;12555:245:::0;;;:::o;4298:94::-;4223:10;4212:7;4125;4152:6;-1:-1:-1;;;;;4152:6:0;;4079:87;4212:7;-1:-1:-1;;;;;4212:21:0;;4204:66;;;;-1:-1:-1;;;4204:66:0;;;;;;;:::i;:::-;4363:21:::1;4381:1;4363:9;:21::i;18050:222::-:0;4223:10;4212:7;4125;4152:6;-1:-1:-1;;;;;4152:6:0;;4079:87;4212:7;-1:-1:-1;;;;;4212:21:0;;4204:66;;;;-1:-1:-1;;;4204:66:0;;;;;;;:::i;:::-;18163:4:::1;-1:-1:-1::0;;;;;18144:24:0;::::1;::::0;18136:33:::1;;;::::0;::::1;;-1:-1:-1::0;;;;;18180:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;:33;;-1:-1:-1;;18180:33:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18231;;18180;;:25;18231:33:::1;::::0;::::1;18050:222:::0;;:::o;10272:371::-;4223:10;4212:7;4125;4152:6;-1:-1:-1;;;;;4152:6:0;;4079:87;4212:7;-1:-1:-1;;;;;4212:21:0;;4204:66;;;;-1:-1:-1;;;4204:66:0;;;;;;;:::i;:::-;10376:11:::1;:18:::0;10365:29;::::1;;10357:68;;;::::0;-1:-1:-1;;;10357:68:0;;10581:2:1;10357:68:0::1;::::0;::::1;10563:21:1::0;10620:2;10600:18;;;10593:30;10659:28;10639:18;;;10632:56;10705:18;;10357:68:0::1;10379:350:1::0;10357:68:0::1;10456:19:::0;;10444:31;::::1;;10436:71;;;::::0;-1:-1:-1;;;10436:71:0;;10936:2:1;10436:71:0::1;::::0;::::1;10918:21:1::0;10975:2;10955:18;;;10948:30;11014:29;10994:18;;;10987:57;11061:18;;10436:71:0::1;10734:351:1::0;10436:71:0::1;10518:11;:28:::0;;;10557:19;:30;;;10605::::1;::::0;10579:8;;10539:7;;10605:30:::1;::::0;10518:18:::1;::::0;10605:30:::1;10272:371:::0;;:::o;8947:143::-;9018:4;9042:40;9052:10;9064:9;9075:6;9042:9;:40::i;11481:219::-;4223:10;4212:7;4125;4152:6;-1:-1:-1;;;;;4152:6:0;;4079:87;4212:7;-1:-1:-1;;;;;4212:21:0;;4204:66;;;;-1:-1:-1;;;4204:66:0;;;;;;;:::i;:::-;11606:4:::1;11598;5354:13;4972:2;5354;:13;:::i;:::-;5151:29;::::0;:11:::1;:29;:::i;:::-;11578:16;::::0;11593:1:::1;11578:16;:::i;:::-;11577:25;;;;:::i;:::-;11576:34;;;;:::i;:::-;11566:6;:44;;11558:93;;;::::0;-1:-1:-1;;;11558:93:0;;11514:2:1;11558:93:0::1;::::0;::::1;11496:21:1::0;11553:2;11533:18;;;11526:30;11592:34;11572:18;;;11565:62;-1:-1:-1;;;11643:18:1;;;11636:34;11687:19;;11558:93:0::1;11312:400:1::0;11558:93:0::1;11675:17;:6:::0;11685::::1;11675:17;:::i;:::-;11662:10;:30:::0;-1:-1:-1;11481:219:0:o;10651:422::-;4223:10;4212:7;4125;4152:6;-1:-1:-1;;;;;4152:6:0;;4079:87;4212:7;-1:-1:-1;;;;;4212:21:0;;4204:66;;;;-1:-1:-1;;;4204:66:0;;;;;;;:::i;:::-;10775:9:::1;10771:295;10790:19:::0;;::::1;10771:295;;;10873:13;10839:47;;:17;:30;10857:8;;10866:1;10857:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10839:30:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10839:30:0;;::::1;;:47;;::::0;10831:98:::1;;;::::0;-1:-1:-1;;;10831:98:0;;11919:2:1;10831:98:0::1;::::0;::::1;11901:21:1::0;11958:2;11938:18;;;11931:30;11997:34;11977:18;;;11970:62;-1:-1:-1;;;12048:18:1;;;12041:36;12094:19;;10831:98:0::1;11717:402:1::0;10831:98:0::1;10977:13;10944:17;:30;10962:8;;10971:1;10962:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10944:30:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10944:30:0;:46;;-1:-1:-1;;10944:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11010:44;::::1;;11027:8:::0;;11036:1;11027:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11010:44:0::1;;;;;;;;;;;10811:3:::0;::::1;::::0;::::1;:::i;:::-;;;;10771:295;;;;10651:422:::0;;;:::o;18280:213::-;4223:10;4212:7;4125;4152:6;-1:-1:-1;;;;;4152:6:0;;4079:87;4212:7;-1:-1:-1;;;;;4212:21:0;;4204:66;;;;-1:-1:-1;;;4204:66:0;;;;;;;:::i;:::-;18342:13:::1;::::0;;;::::1;;;18341:14;:35:::0;::::1;;;-1:-1:-1::0;18359:12:0::1;::::0;:17;::::1;18341:35;18333:44;;;::::0;::::1;;18415:6;::::0;18402:19:::1;::::0;:12:::1;:19;:::i;:::-;18388:12;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;18432:13:0::1;:20:::0;;-1:-1:-1;;18432:20:0::1;::::0;::::1;::::0;;18470:15:::1;::::0;::::1;::::0;18432:20;;18470:15:::1;18280:213::o:0;11081:392::-;11160:4;4223:10;4212:7;4125;4152:6;-1:-1:-1;;;;;4152:6:0;;4079:87;4212:7;-1:-1:-1;;;;;4212:21:0;;4204:66;;;;-1:-1:-1;;;4204:66:0;;;;;;;:::i;:::-;11222:6:::1;5354:13;4972:2;5354;:13;:::i;:::-;5151:29;::::0;:11:::1;:29;:::i;:::-;11202:16;::::0;11217:1:::1;11202:16;:::i;:::-;11201:27;;;;:::i;:::-;11185:12;:43;;11177:109;;;::::0;-1:-1:-1;;;11177:109:0;;12596:2:1;11177:109:0::1;::::0;::::1;12578:21:1::0;12635:2;12615:18;;;12608:30;12674:34;12654:18;;;12647:62;-1:-1:-1;;;12725:18:1;;;12718:51;12786:19;;11177:109:0::1;12394:417:1::0;11177:109:0::1;11342:4;5354:13;4972:2;5354;:13;:::i;:::-;5151:29;::::0;:11:::1;:29;:::i;:::-;11322:16;::::0;11337:1:::1;11322:16;:::i;:::-;11321:25;;;;:::i;:::-;11305:12;:41;;11297:106;;;::::0;-1:-1:-1;;;11297:106:0;;13018:2:1;11297:106:0::1;::::0;::::1;13000:21:1::0;13057:2;13037:18;;;13030:30;13096:34;13076:18;;;13069:62;-1:-1:-1;;;13147:18:1;;;13140:50;13207:19;;11297:106:0::1;12816:416:1::0;11297:106:0::1;-1:-1:-1::0;11414:14:0::1;:29:::0;11461:4:::1;::::0;11081:392::o;10026:238::-;4223:10;4212:7;4125;4152:6;-1:-1:-1;;;;;4152:6:0;;4079:87;4212:7;-1:-1:-1;;;;;4212:21:0;;4204:66;;;;-1:-1:-1;;;4204:66:0;;;;;;;:::i;:::-;10118:12:::1;10103:27;;:11;;;;;;;;;;;:27;;::::0;10095:81:::1;;;::::0;-1:-1:-1;;;10095:81:0;;13439:2:1;10095:81:0::1;::::0;::::1;13421:21:1::0;13478:2;13458:18;;;13451:30;13517:34;13497:18;;;13490:62;-1:-1:-1;;;13568:18:1;;;13561:39;13617:19;;10095:81:0::1;13237:405:1::0;10095:81:0::1;10187:11;:26:::0;;-1:-1:-1;;10187:26:0::1;;::::0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;10231:25:::1;::::0;::::1;::::0;-1:-1:-1;;10231:25:0::1;10026:238:::0;:::o;12412:135::-;4223:10;4212:7;4125;4152:6;-1:-1:-1;;;;;4152:6:0;;4079:87;4212:7;-1:-1:-1;;;;;4212:21:0;;4204:66;;;;-1:-1:-1;;;4204:66:0;;;;;;;:::i;:::-;12482:13:::1;::::0;;;::::1;;;12481:14;:22:::0;::::1;;;;12499:4;12481:22;12473:31;;;::::0;::::1;;-1:-1:-1::0;12530:1:0::1;12515:12;:16:::0;12412:135::o;11839:377::-;4223:10;4212:7;4125;4152:6;-1:-1:-1;;;;;4152:6:0;;4079:87;4212:7;-1:-1:-1;;;;;4212:21:0;;4204:66;;;;-1:-1:-1;;;4204:66:0;;;;;;;:::i;:::-;11944:4:::1;-1:-1:-1::0;;;;;11920:29:0;::::1;::::0;11912:75:::1;;;::::0;-1:-1:-1;;;11912:75:0;;13849:2:1;11912:75:0::1;::::0;::::1;13831:21:1::0;13888:2;13868:18;;;13861:30;13927:34;13907:18;;;13900:62;-1:-1:-1;;;13978:18:1;;;13971:31;14019:19;;11912:75:0::1;13647:397:1::0;11912:75:0::1;12022:45;::::0;-1:-1:-1;;;12022:45:0;;12061:4:::1;12022:45;::::0;::::1;1926:51:1::0;11998:21:0::1;::::0;-1:-1:-1;;;;;12022:30:0;::::1;::::0;::::1;::::0;1899:18:1;;12022:45:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11998:69;;12102:1;12086:13;:17;12078:63;;;::::0;-1:-1:-1;;;12078:63:0;;14440:2:1;12078:63:0::1;::::0;::::1;14422:21:1::0;14479:2;14459:18;;;14452:30;14518:34;14498:18;;;14491:62;-1:-1:-1;;;14569:18:1;;;14562:31;14610:19;;12078:63:0::1;14238:397:1::0;12078:63:0::1;12152:56;::::0;-1:-1:-1;;;12152:56:0;;12182:10:::1;12152:56;::::0;::::1;14814:51:1::0;14881:18;;;14874:34;;;-1:-1:-1;;;;;12152:29:0;::::1;::::0;::::1;::::0;14787:18:1;;12152:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4400:192::-:0;4223:10;4212:7;4125;4152:6;-1:-1:-1;;;;;4152:6:0;;4079:87;4212:7;-1:-1:-1;;;;;4212:21:0;;4204:66;;;;-1:-1:-1;;;4204:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4489:22:0;::::1;4481:73;;;::::0;-1:-1:-1;;;4481:73:0;;15371:2:1;4481:73:0::1;::::0;::::1;15353:21:1::0;15410:2;15390:18;;;15383:30;15449:34;15429:18;;;15422:62;-1:-1:-1;;;15500:18:1;;;15493:36;15546:19;;4481:73:0::1;15169:402:1::0;4481:73:0::1;4565:19;4575:8;4565:9;:19::i;8631:308::-:0;-1:-1:-1;;;;;8726:20:0;;8718:52;;;;-1:-1:-1;;;8718:52:0;;15778:2:1;8718:52:0;;;15760:21:1;15817:2;15797:18;;;15790:30;-1:-1:-1;;;15836:18:1;;;15829:49;15895:18;;8718:52:0;15576:343:1;8718:52:0;-1:-1:-1;;;;;8789:21:0;;8781:53;;;;-1:-1:-1;;;8781:53:0;;15778:2:1;8781:53:0;;;15760:21:1;15817:2;15797:18;;;15790:30;-1:-1:-1;;;15836:18:1;;;15829:49;15895:18;;8781:53:0;15576:343:1;8781:53:0;-1:-1:-1;;;;;8845:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;8898:33;;1730:25:1;;;8898:33:0;;1703:18:1;8898:33:0;;;;;;;8631:308;;;:::o;12980:1322::-;13081:4;13053;13059:2;7135:13;;;;;;;;;;;:47;;;-1:-1:-1;7160:7:0;:22;-1:-1:-1;;;;;7152:30:0;;;7160:22;;7152:30;7135:47;:74;;;-1:-1:-1;;;;;;7186:23:0;;;;;;:17;:23;;;;;;;;7135:74;7127:116;;;;-1:-1:-1;;;7127:116:0;;16126:2:1;7127:116:0;;;16108:21:1;16165:2;16145:18;;;16138:30;16204:31;16184:18;;;16177:59;16253:18;;7127:116:0;15924:353:1;7127:116:0;-1:-1:-1;;;;;13106:18:0;::::1;13098:68;;;::::0;-1:-1:-1;;;13098:68:0;;16484:2:1;13098:68:0::1;::::0;::::1;16466:21:1::0;16523:2;16503:18;;;16496:30;16562:34;16542:18;;;16535:62;-1:-1:-1;;;16613:18:1;;;16606:35;16658:19;;13098:68:0::1;16282:401:1::0;13098:68:0::1;-1:-1:-1::0;;;;;13185:16:0;::::1;13177:64;;;::::0;-1:-1:-1;;;13177:64:0;;16890:2:1;13177:64:0::1;::::0;::::1;16872:21:1::0;16929:2;16909:18;;;16902:30;16968:34;16948:18;;;16941:62;-1:-1:-1;;;17019:18:1;;;17012:33;17062:19;;13177:64:0::1;16688:399:1::0;13177:64:0::1;13265:11:::0;;;:21:::1;;-1:-1:-1::0;13280:6:0::1;::::0;::::1;;13265:21;13262:103;;;13310:32;13325:4;13331:2;13335:6;13310:14;:32::i;:::-;13303:39;;;;13262:103;13395:13;-1:-1:-1::0;;;;;13389:19:0::1;:2;-1:-1:-1::0;;;;;13389:19:0::1;;;:45;;;;-1:-1:-1::0;;;;;;13413:21:0;::::1;;::::0;;;:17:::1;:21;::::0;;;;;::::1;;13412:22;13389:45;:77;;;;-1:-1:-1::0;13444:7:0::1;:22:::0;-1:-1:-1;;;;;13438:28:0;;::::1;13444:22:::0;::::1;13438:28;;13389:77;13385:192;;;13517:10;::::0;-1:-1:-1;;;;;8295:18:0;;8278:7;8295:18;;;:9;:18;;;;;;13491:22:::1;::::0;:6;:22:::1;:::i;:::-;:36;;13483:82;;;::::0;-1:-1:-1;;;13483:82:0;;17294:2:1;13483:82:0::1;::::0;::::1;17276:21:1::0;17333:2;17313:18;;;17306:30;17372:34;17352:18;;;17345:62;-1:-1:-1;;;17423:18:1;;;17416:31;17464:19;;13483:82:0::1;17092:397:1::0;13483:82:0::1;13592:7;::::0;::::1;;:34:::0;::::1;;;-1:-1:-1::0;;;;;;13604:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;13603:23;13592:34;:59;;;;-1:-1:-1::0;;;;;;13631:20:0;::::1;;::::0;;;:16:::1;:20;::::0;;;;;::::1;;13630:21;13592:59;13589:224;;;13667:13;13683:24;13698:4;13704:2;13683:14;:24::i;:::-;13667:40;;13722:27;13743:5;13722:20;:27::i;:::-;-1:-1:-1::0;;;;;13764:22:0::1;;::::0;;;:15:::1;:22;::::0;;;;13789:12:::1;13764:37:::0;;13589:224:::1;13834:11;::::0;::::1;::::0;::::1;;;:22:::0;::::1;;;-1:-1:-1::0;13850:6:0::1;::::0;::::1;;13849:7;13834:22;:47;;;;;13868:13;-1:-1:-1::0;;;;;13860:21:0::1;:4;-1:-1:-1::0;;;;;13860:21:0::1;;;13834:47;:75;;;;-1:-1:-1::0;;;;;;13886:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;::::1;;13885:24;13834:75;:101;;;;-1:-1:-1::0;;;;;;13914:21:0;::::1;;::::0;;;:17:::1;:21;::::0;;;;;::::1;;13913:22;13834:101;13831:146;;;13951:14;:12;:14::i;:::-;14014:6;::::0;-1:-1:-1;;;;;14034:23:0;::::1;13998:12;14034:23:::0;;;:17:::1;:23;::::0;;;;;14014:6:::1;::::0;;::::1;14013:7;::::0;14034:23:::1;::::0;:48:::1;;-1:-1:-1::0;;;;;;14061:21:0;::::1;;::::0;;;:17:::1;:21;::::0;;;;;::::1;;14034:48;14031:95;;;-1:-1:-1::0;14109:5:0::1;14031:95;14157:7;14154:132;;;14186:32;14201:4;14207:2;14211:6;14186:14;:32::i;:::-;14179:39;;;;;14154:132;14254:32;14269:4;14275:2;14279:6;14254:14;:32::i;7254:1::-;12980:1322:::0;;;;;;;:::o;15278:591::-;7003:6;:13;;-1:-1:-1;;7003:13:0;7012:4;7003:13;;;:6;15359:24:::1;15377:4;-1:-1:-1::0;;;;;8295:18:0;8278:7;8295:18;;;:9;:18;;;;;;;8212:103;15359:24:::1;15333:50;;15415:14;;15397:15;:32;:46;;;;15434:9;:7;:9::i;:::-;15433:10;15397:46;15394:177;;;15459:7;;;15394:177;15502:14;::::0;:19:::1;::::0;15519:2:::1;15502:19;:::i;:::-;15484:15;:37;15481:90;;;15552:14;::::0;:19:::1;::::0;15569:2:::1;15552:19;:::i;:::-;15534:37;;15481:90;15620:21;15654:33;15671:15:::0;15654:16:::1;:33::i;:::-;15709:18;15730:41;15754:17:::0;15730:21:::1;:41;:::i;:::-;15709:62:::0;-1:-1:-1;15785:14:0;;15782:80:::1;;15827:23;15848:1;15835:12;15837:10:::0;15835:1:::1;:12;:::i;:::-;:14;;;;:::i;:::-;15827:7;:23::i;:::-;15319:550;;;7027:1;7039:6:::0;:14;;-1:-1:-1;;7039:14:0;;;15278:591::o;4600:173::-;4656:16;4675:6;;-1:-1:-1;;;;;4692:17:0;;;-1:-1:-1;;;;;;4692:17:0;;;;;;4725:40;;4675:6;;;;;;;4725:40;;4656:16;4725:40;4645:128;4600:173;:::o;9598:420::-;-1:-1:-1;;;;;9732:17:0;;9691:4;9732:17;;;:9;:17;;;;;;9768:23;;;;9760:63;;;;-1:-1:-1;;;9760:63:0;;17696:2:1;9760:63:0;;;17678:21:1;17735:2;17715:18;;;17708:30;17774:29;17754:18;;;17747:57;17821:18;;9760:63:0;17494:351:1;9760:63:0;-1:-1:-1;;;;;9858:17:0;;;;;;;:9;:17;;;;;;:27;;;;;;;9907:20;;;;;;;;:30;;9879:6;;9858:17;9907:30;;9879:6;;9907:30;:::i;:::-;;;;;;;;9970:9;-1:-1:-1;;;;;9953:35:0;9962:6;-1:-1:-1;;;;;9953:35:0;;9981:6;9953:35;;;;1730:25:1;;1718:2;1703:18;;1584:177;9953:35:0;;;;;;;;-1:-1:-1;10006:4:0;;9598:420;-1:-1:-1;;;;9598:420:0:o;17014:219::-;17088:7;16942:20;;16990:8;;17116:38;;-1:-1:-1;16942:20:0;;16990:8;17116:38;17108:47;;;;;;16942:20;;16990:8;17166:59;;-1:-1:-1;17194:5:0;17187:12;;17166:59;-1:-1:-1;17222:3:0;17215:10;;17241:257;-1:-1:-1;;;;;17326:21:0;;17309:14;17326:21;;;:15;:21;;;;;;:26;;:105;;-1:-1:-1;17413:16:0;:12;17428:1;17413:16;:::i;:::-;17395:13;;-1:-1:-1;;;;;17371:21:0;;;;;;:15;:21;;;;;;:37;;17395:13;17371:37;:::i;:::-;17370:60;17326:105;17309:122;;17450:9;17442:48;;;;-1:-1:-1;;;17442:48:0;;18052:2:1;17442:48:0;;;18034:21:1;18091:2;18071:18;;;18064:30;18130:28;18110:18;;;18103:56;18176:18;;17442:48:0;17850:350:1;14310:326:0;14393:4;14410:12;14425:26;14434:4;14440:2;14444:6;14425:8;:26::i;:::-;14410:41;-1:-1:-1;14469:8:0;;14466:113;;14497:41;14512:4;14526;14533;14497:14;:41::i;:::-;-1:-1:-1;14553:14:0;14563:4;14553:14;;:::i;:::-;;;14466:113;14596:32;14611:4;14617:2;14621:6;14596:14;:32::i;:::-;14589:39;14310:326;-1:-1:-1;;;;;14310:326:0:o;15130:140::-;15171:4;15210:12;;15195;:27;:67;;;;-1:-1:-1;;15245:12:0;15226:32;;;;:18;:32;;;;;;15261:1;-1:-1:-1;;15130:140:0:o;16251:552::-;16336:12;16317:32;;;;:18;:32;;;;;:34;;;;;;:::i;:::-;;;;-1:-1:-1;;16446:16:0;;;16460:1;16446:16;;;;;;;;16422:21;;16446:16;;;;;;;;;;-1:-1:-1;16446:16:0;16422:40;;16491:4;16473;16478:1;16473:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16473:23:0;;;-1:-1:-1;;;;;16473:23:0;;;;;6136:42;-1:-1:-1;;;;;16517:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16507:4;16512:1;16507:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16507:32:0;;;:7;;;;;;;;;;;:32;16556:214;;-1:-1:-1;;;16556:214:0;;6136:42;;16556:66;;:214;;16637:11;;16663:1;;16707:4;;16734;;16754:15;;16556:214;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16552:244;;16788:7;16251:552;:::o;15877:149::-;15958:23;;15950:59;;15933:12;;-1:-1:-1;;;;;15958:23:0;;15995:9;;15933:12;15950:59;15933:12;15950:59;15995:9;15958:23;15950:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15877:149:0:o;14644:478::-;14726:12;14759;;14755:1;:16;:47;;;;;14790:12;14775;;:27;14755:47;14751:364;;;5416:3;14842:13;-1:-1:-1;;;;;14836:19:0;:2;-1:-1:-1;;;;;14836:19:0;;:76;;14894:11;:18;14836:76;;;14872:19;;14836:76;14826:87;;:6;:87;:::i;:::-;:104;;;;:::i;:::-;14819:111;;14751:364;;;5416:3;15009:13;-1:-1:-1;;;;;15001:21:0;:4;-1:-1:-1;;;;;15001:21:0;;:72;;15045:12;;:17;:27;;15070:2;15001:72;;15045:27;15065:2;15001:72;;;15039:2;15001:72;14991:83;;;;:6;:83;:::i;:::-;:100;;;;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:118::-;1301:5;1294:13;1287:21;1280:5;1277:32;1267:60;;1323:1;1320;1313:12;1338:241;1394:6;1447:2;1435:9;1426:7;1422:23;1418:32;1415:52;;;1463:1;1460;1453:12;1415:52;1502:9;1489:23;1521:28;1543:5;1521:28;:::i;1988:247::-;2047:6;2100:2;2088:9;2079:7;2075:23;2071:32;2068:52;;;2116:1;2113;2106:12;2068:52;2155:9;2142:23;2174:31;2199:5;2174:31;:::i;2240:456::-;2317:6;2325;2333;2386:2;2374:9;2365:7;2361:23;2357:32;2354:52;;;2402:1;2399;2392:12;2354:52;2441:9;2428:23;2460:31;2485:5;2460:31;:::i;:::-;2510:5;-1:-1:-1;2567:2:1;2552:18;;2539:32;2580:33;2539:32;2580:33;:::i;:::-;2240:456;;2632:7;;-1:-1:-1;;;2686:2:1;2671:18;;;;2658:32;;2240:456::o;2701:180::-;2760:6;2813:2;2801:9;2792:7;2788:23;2784:32;2781:52;;;2829:1;2826;2819:12;2781:52;-1:-1:-1;2852:23:1;;2701:180;-1:-1:-1;2701:180:1:o;3283:367::-;3346:8;3356:6;3410:3;3403:4;3395:6;3391:17;3387:27;3377:55;;3428:1;3425;3418:12;3377:55;-1:-1:-1;3451:20:1;;3494:18;3483:30;;3480:50;;;3526:1;3523;3516:12;3480:50;3563:4;3555:6;3551:17;3539:29;;3623:3;3616:4;3606:6;3603:1;3599:14;3591:6;3587:27;3583:38;3580:47;3577:67;;;3640:1;3637;3630:12;3577:67;3283:367;;;;;:::o;3655:566::-;3747:6;3755;3763;3816:2;3804:9;3795:7;3791:23;3787:32;3784:52;;;3832:1;3829;3822:12;3784:52;3872:9;3859:23;3905:18;3897:6;3894:30;3891:50;;;3937:1;3934;3927:12;3891:50;3976:70;4038:7;4029:6;4018:9;4014:22;3976:70;:::i;:::-;4065:8;;-1:-1:-1;3950:96:1;-1:-1:-1;;4150:2:1;4135:18;;4122:32;4163:28;4122:32;4163:28;:::i;:::-;4210:5;4200:15;;;3655:566;;;;;:::o;4479:382::-;4544:6;4552;4605:2;4593:9;4584:7;4580:23;4576:32;4573:52;;;4621:1;4618;4611:12;4573:52;4660:9;4647:23;4679:31;4704:5;4679:31;:::i;:::-;4729:5;-1:-1:-1;4786:2:1;4771:18;;4758:32;4799:30;4758:32;4799:30;:::i;:::-;4848:7;4838:17;;;4479:382;;;;;:::o;4866:248::-;4934:6;4942;4995:2;4983:9;4974:7;4970:23;4966:32;4963:52;;;5011:1;5008;5001:12;4963:52;-1:-1:-1;;5034:23:1;;;5104:2;5089:18;;;5076:32;;-1:-1:-1;4866:248:1:o;5999:388::-;6067:6;6075;6128:2;6116:9;6107:7;6103:23;6099:32;6096:52;;;6144:1;6141;6134:12;6096:52;6183:9;6170:23;6202:31;6227:5;6202:31;:::i;:::-;6252:5;-1:-1:-1;6309:2:1;6294:18;;6281:32;6322:33;6281:32;6322:33;:::i;6392:127::-;6453:10;6448:3;6444:20;6441:1;6434:31;6484:4;6481:1;6474:15;6508:4;6505:1;6498:15;6524:422;6613:1;6656:5;6613:1;6670:270;6691:7;6681:8;6678:21;6670:270;;;6750:4;6746:1;6742:6;6738:17;6732:4;6729:27;6726:53;;;6759:18;;:::i;:::-;6809:7;6799:8;6795:22;6792:55;;;6829:16;;;;6792:55;6908:22;;;;6868:15;;;;6670:270;;;6674:3;6524:422;;;;;:::o;6951:806::-;7000:5;7030:8;7020:80;;-1:-1:-1;7071:1:1;7085:5;;7020:80;7119:4;7109:76;;-1:-1:-1;7156:1:1;7170:5;;7109:76;7201:4;7219:1;7214:59;;;;7287:1;7282:130;;;;7194:218;;7214:59;7244:1;7235:10;;7258:5;;;7282:130;7319:3;7309:8;7306:17;7303:43;;;7326:18;;:::i;:::-;-1:-1:-1;;7382:1:1;7368:16;;7397:5;;7194:218;;7496:2;7486:8;7483:16;7477:3;7471:4;7468:13;7464:36;7458:2;7448:8;7445:16;7440:2;7434:4;7431:12;7427:35;7424:77;7421:159;;;-1:-1:-1;7533:19:1;;;7565:5;;7421:159;7612:34;7637:8;7631:4;7612:34;:::i;:::-;7682:6;7678:1;7674:6;7670:19;7661:7;7658:32;7655:58;;;7693:18;;:::i;:::-;7731:20;;6951:806;-1:-1:-1;;;6951:806:1:o;7762:140::-;7820:5;7849:47;7890:4;7880:8;7876:19;7870:4;7849:47;:::i;7907:168::-;7980:9;;;8011;;8028:15;;;8022:22;;8008:37;7998:71;;8049:18;;:::i;8080:356::-;8282:2;8264:21;;;8301:18;;;8294:30;8360:34;8355:2;8340:18;;8333:62;8427:2;8412:18;;8080:356::o;9982:128::-;10049:9;;;10070:11;;;10067:37;;;10084:18;;:::i;10115:127::-;10176:10;10171:3;10167:20;10164:1;10157:31;10207:4;10204:1;10197:15;10231:4;10228:1;10221:15;10247:127;10308:10;10303:3;10299:20;10296:1;10289:31;10339:4;10336:1;10329:15;10363:4;10360:1;10353:15;11090:217;11130:1;11156;11146:132;;11200:10;11195:3;11191:20;11188:1;11181:31;11235:4;11232:1;11225:15;11263:4;11260:1;11253:15;11146:132;-1:-1:-1;11292:9:1;;11090:217::o;12124:135::-;12163:3;12184:17;;;12181:43;;12204:18;;:::i;:::-;-1:-1:-1;12251:1:1;12240:13;;12124:135::o;12264:125::-;12329:9;;;12350:10;;;12347:36;;;12363:18;;:::i;14049:184::-;14119:6;14172:2;14160:9;14151:7;14147:23;14143:32;14140:52;;;14188:1;14185;14178:12;14140:52;-1:-1:-1;14211:16:1;;14049:184;-1:-1:-1;14049:184:1:o;14919:245::-;14986:6;15039:2;15027:9;15018:7;15014:23;15010:32;15007:52;;;15055:1;15052;15045:12;15007:52;15087:9;15081:16;15106:28;15128:5;15106:28;:::i;18337:251::-;18407:6;18460:2;18448:9;18439:7;18435:23;18431:32;18428:52;;;18476:1;18473;18466:12;18428:52;18508:9;18502:16;18527:31;18552:5;18527:31;:::i;18593:980::-;18855:4;18903:3;18892:9;18888:19;18934:6;18923:9;18916:25;18960:2;18998:6;18993:2;18982:9;18978:18;18971:34;19041:3;19036:2;19025:9;19021:18;19014:31;19065:6;19100;19094:13;19131:6;19123;19116:22;19169:3;19158:9;19154:19;19147:26;;19208:2;19200:6;19196:15;19182:29;;19229:1;19239:195;19253:6;19250:1;19247:13;19239:195;;;19318:13;;-1:-1:-1;;;;;19314:39:1;19302:52;;19409:15;;;;19374:12;;;;19350:1;19268:9;19239:195;;;-1:-1:-1;;;;;;;19490:32:1;;;;19485:2;19470:18;;19463:60;-1:-1:-1;;;19554:3:1;19539:19;19532:35;19451:3;18593:980;-1:-1:-1;;;18593:980:1:o

Swarm Source

ipfs://6d3e532536cc9693292cb2997666c356653b6eb5791aa242b8674921f8cb21ab
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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