ETH Price: $3,115.45 (+1.57%)

Token

ASTROBOT (ASTROBOT)
 

Overview

Max Total Supply

10,000,000 ASTROBOT

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.503250878046981977 ASTROBOT

Value
$0.00
0x820Ecb05FF888614b339192e52Ed92F1C8cDaD7a
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:
Astrobot

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

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

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Astrobot is ERC20, Ownable {

    uint256 public marketingFeeOnBuy    = 300;
    uint256 public marketingFeeOnSell   = 300;

    uint256 public revenueFeeOnBuy      = 100;
    uint256 public revenueFeeOnSell     = 100;

    uint256 public jackPotFeeOnBuy      = 100;
    uint256 public jackPotFeeOnSell     = 100;

    uint256 public buyFee               = 500;
    uint256 public sellFee              = 500;

    address public marketingWallet = 0x6c28DF7F8e08dE7FF01cD964B2dD826A066e3aE2;
    address public revenueWallet = 0xB8E0455020694500F30EefD2238Abc679b0b5f7A;

    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair;
    
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    uint256 public jackPotBalance = 0;

    bool    private swapping;
    uint256 public swapTokensAtAmount;

    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public automatedMarketMakerPairs;

    struct LastBuyer {
        address buyer;
        uint256 amount;
        uint256 time;
    }

    LastBuyer public lastBuyerInfo;
    uint256 public jackPotLimit = 5_000 * (10 ** 18);
    bool public jackPotDistrobuted = false;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event JackPOT(address indexed winner, uint256 amount);
    event NewEntry(address indexed wallet, uint256 indexed blocktime, uint256 indexed amount);

    constructor () ERC20("ASTROBOT", "ASTROBOT")
    {   
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair   = _uniswapV2Pair;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        _setAutomatedMarketMakerPair(_uniswapV2Pair, true);

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[DEAD] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[marketingWallet] = true;
        _isExcludedFromFees[revenueWallet] = true;
        
        _isExcludedFromMaxWalletLimit[owner()] = true;
        _isExcludedFromMaxWalletLimit[DEAD] = true;
        _isExcludedFromMaxWalletLimit[address(this)] = true;
        _isExcludedFromMaxWalletLimit[marketingWallet] = true;
        _isExcludedFromMaxWalletLimit[revenueWallet] = true;
        _isExcludedFromMaxWalletLimit[address(0)] = true;
        
        _mint(owner(), 10e6 * (10 ** 18));
        swapTokensAtAmount = totalSupply() / 600;
        lastBuyerInfo.buyer = owner();
        lastBuyerInfo.amount = 0;
        lastBuyerInfo.time = block.timestamp;
    }

    receive() external payable {

}

    function sendETH(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        require(automatedMarketMakerPairs[pair] != value, "Automated market maker pair is already set to that value");
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal  override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        if(amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if( canSwap &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            uint256 marketingShare = marketingFeeOnBuy + marketingFeeOnSell;
            uint256 revenueShare = revenueFeeOnBuy + revenueFeeOnSell;
            uint256 jackPotShare = jackPotFeeOnBuy + jackPotFeeOnSell;
            uint256 totalShare = marketingShare + revenueShare + jackPotShare;
            
            uint256 initialBalance = address(this).balance;

            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();

            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                contractTokenBalance,
                0, // accept any amount of ETH
                path,
                address(this),
                block.timestamp);

            uint256 newBalance = address(this).balance - initialBalance;
            
            uint256 marketingAmount = newBalance * marketingShare / totalShare;
            sendETH(payable(marketingWallet), marketingAmount);
            
            uint256 revenueAmount = newBalance * revenueShare / totalShare;
            sendETH(payable(revenueWallet), revenueAmount);

            uint256 jackPotAmount = newBalance * jackPotShare / totalShare;
            jackPotBalance += jackPotAmount;
            
            swapping = false;
        }

        bool takeFee = !swapping;

        if((_isExcludedFromFees[from] || _isExcludedFromFees[to]) || ( from != uniswapV2Pair && to != uniswapV2Pair)){
            takeFee = false;
        }

        if(takeFee) {
            uint256 _totalFees = 0;
            if(from == uniswapV2Pair) {
                _totalFees = buyFee;
            } else if(to == uniswapV2Pair) {
                _totalFees = sellFee;
            }

            if (_totalFees > 0) {
                uint256 fees = amount * _totalFees / 10000;
                amount = amount - fees;

                super._transfer(from, address(this), fees);
            }

        }

        if (maxWalletLimitEnabled) 
        {
            if (_isExcludedFromMaxWalletLimit[from]  == false && 
                _isExcludedFromMaxWalletLimit[to]    == false &&
                to != uniswapV2Pair
            ) {
                uint balance  = balanceOf(to);
                require(
                    balance + amount <= maxWalletAmount(), 
                    "MaxWallet: Recipient exceeds the maxWalletAmount"
                );
            }
        }

        super._transfer(from, to, amount);
        checkWinners(from, to, amount);
    }

    function checkWinners(address from, address to, uint256 amount) internal{
        if (lastBuyerInfo.time + 15 minutes <= block.timestamp && jackPotBalance > 0 && !jackPotDistrobuted) {
            uint256 transferAmount = (jackPotBalance * 50) / 100;
            
            if (transferAmount > 0) {
                jackPotBalance -= transferAmount;
                sendETH(payable(lastBuyerInfo.buyer), transferAmount);
                emit JackPOT(lastBuyerInfo.buyer, transferAmount);
            }
            jackPotDistrobuted = true;
        }
        if (amount >= jackPotLimit && to != uniswapV2Pair && from == uniswapV2Pair) { 
            lastBuyerInfo.buyer = to;
            lastBuyerInfo.amount = amount;
            lastBuyerInfo.time = block.timestamp;
            emit NewEntry(to, block.timestamp, amount);
            jackPotDistrobuted = false;
        }
    }

    //=======MaxWallet=======//
    mapping(address => bool) private _isExcludedFromMaxWalletLimit;
    bool    public maxWalletLimitEnabled = true;
    uint256 private maxWalletLimitRate   = 6;

    event ExcludedFromMaxWalletLimit(address indexed account, bool isExcluded);

    function isExcludedFromMaxWalletLimit(address account) public view returns(bool) {
        return _isExcludedFromMaxWalletLimit[account];
    }

    function maxWalletAmount() public view returns (uint256) {
        return totalSupply() * maxWalletLimitRate / 1000;
    }

    function setExcludeFromMaxWallet(address account, bool exclude) external onlyOwner {
        require(_isExcludedFromMaxWalletLimit[account] != exclude, "Account is already set to that state");
        _isExcludedFromMaxWalletLimit[account] = exclude;
        emit ExcludedFromMaxWalletLimit(account, exclude);
    }

    function setMaxWalletLimitEnabled(bool enable) external onlyOwner {
        maxWalletLimitEnabled = enable;
    }

    function airdrop(address[] memory addresses, uint256[] memory amounts) external {
        require(addresses.length == amounts.length, "Arrays must be equal");
        uint256 totalAmount;
        
        for (uint256 i = 0; i < amounts.length; i++) {
            totalAmount += amounts[i];
        }

        require(balanceOf(msg.sender) >= totalAmount, "Not enough tokens");

        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(_msgSender(), addresses[i], amounts[i]);
        }

    }

    function airdropETH(address[] memory addresses, uint256[] memory amounts) external payable {
        require(addresses.length == amounts.length, "Arrays must be equal");
        uint256 totalAmount;
        
        for (uint256 i = 0; i < amounts.length; i++) {
            totalAmount += amounts[i];
        }

        require(msg.value >= totalAmount, "Not enough ETH");

        for (uint256 i = 0; i < addresses.length; i++) {
            sendETH(payable(addresses[i]), amounts[i]);
        }

    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromMaxWalletLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"winner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"JackPOT","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"wallet","type":"address"},{"indexed":true,"internalType":"uint256","name":"blocktime","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NewEntry","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackPotBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackPotDistrobuted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackPotFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackPotFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackPotLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastBuyerInfo","outputs":[{"internalType":"address","name":"buyer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"time","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revenueFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revenueFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revenueWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setMaxWalletLimitEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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 IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261012c6006818155600791909155606460088190556009819055600a819055600b556101f4600c819055600d55600e80546001600160a01b0319908116736c28df7f8e08de7ff01cd964b2dd826a066e3ae217909155600f8054821673b8e0455020694500f30eefd2238abc679b0b5f7a1790556012805490911661dead179055600060135569010f0cf064dd59200000601b55601c805460ff19908116909155601e80549091166001179055601f55348015620000c157600080fd5b506040805180820182526008808252671054d51493d093d560c21b6020808401829052845180860190955291845290830152906003620001028382620008a1565b506004620001118282620008a1565b505050600062000126620004f760201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f491906200096d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000242573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026891906200096d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dc91906200096d565b601080546001600160a01b038086166001600160a01b0319928316811790935560118054918516919092161790559091506200031d903090600019620004fb565b6200032a81600162000627565b600160166000620003436005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556012548216815260169093528183208054851660019081179091553084528284208054861682179055600e54821684528284208054861682179055600f54909116835290822080549093168117909255601d90620003d76005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560125482168152601d9093528183208054851660019081179091553084528284208054861682179055600e54821684528284208054861682179055600f54909116835290822080548416821790559080527f0a51588b1664495f089dd83d2d26f247920f94a57a4a09f20cf068efc8f82bd48054909216179055620004a8620004966005546001600160a01b031690565b6a084595161401484a00000062000713565b610258620004b560025490565b620004c191906200099f565b6015555050600554601880546001600160a01b0319166001600160a01b03909216919091179055600060195542601a55620009ea565b3390565b6001600160a01b038316620005635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620005c65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200055a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526017602052604090205481151560ff909116151503620006bf5760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c7565000000000000000060648201526084016200055a565b6001600160a01b038216600081815260176020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0382166200076b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200055a565b80600260008282546200077f9190620009c2565b90915550506001600160a01b03821660009081526020819052604081208054839290620007ae908490620009c2565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200082857607f821691505b6020821081036200084957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007f857600081815260208120601f850160051c81016020861015620008785750805b601f850160051c820191505b81811015620008995782815560010162000884565b505050505050565b81516001600160401b03811115620008bd57620008bd620007fd565b620008d581620008ce845462000813565b846200084f565b602080601f8311600181146200090d5760008415620008f45750858301515b600019600386901b1c1916600185901b17855562000899565b600085815260208120601f198616915b828110156200093e578886015182559484019460019091019084016200091d565b50858210156200095d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200098057600080fd5b81516001600160a01b03811681146200099857600080fd5b9392505050565b600082620009bd57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620009e457634e487b7160e01b600052601160045260246000fd5b92915050565b611f1280620009fa6000396000f3fe60806040526004361061023f5760003560e01c8063672434821161012e578063a457c2d7116100ab578063c1a380061161006f578063c1a38006146106d7578063dc4c7dbc146106ea578063dd62ed3e14610700578063e2f4560514610746578063f2fde38b1461075c57600080fd5b8063a457c2d714610619578063a8a69b9d14610639578063a9059cbb14610672578063aa4bde2814610692578063b62496f5146106a757600080fd5b806375f0a874116100f257806375f0a874146105905780638da5cb5b146105b0578063929f1360146105ce57806395441947146105ee57806395d89b411461060457600080fd5b806367243482146104ed5780636f26b13c1461050f57806370a082311461052f578063715018a61461056557806375d3fc411461057a57600080fd5b806343d314e9116101bc57806349bd5a5e1161018057806349bd5a5e1461044e5780634f0490dc1461046e5780634fbee193146104845780635fc2e596146104bd57806361efee39146104d357600080fd5b806343d314e91461039f57806344478425146103ec578063461e5d3f1461040c5780634706240214610422578063482ebd981461043857600080fd5b806322f75ca61161020357806322f75ca61461031757806323b872dd1461032d5780632b14ca561461034d578063313ce56714610363578063395093511461037f57600080fd5b806306fdde031461024b578063095ea7b3146102765780631694505e146102a657806318160ddd146102de57806321a9d82a146102fd57600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5061026061077c565b60405161026d9190611986565b60405180910390f35b34801561028257600080fd5b506102966102913660046119ec565b61080e565b604051901515815260200161026d565b3480156102b257600080fd5b506010546102c6906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b3480156102ea57600080fd5b506002545b60405190815260200161026d565b34801561030957600080fd5b50601e546102969060ff1681565b34801561032357600080fd5b506102ef60135481565b34801561033957600080fd5b50610296610348366004611a18565b610825565b34801561035957600080fd5b506102ef600d5481565b34801561036f57600080fd5b506040516012815260200161026d565b34801561038b57600080fd5b5061029661039a3660046119ec565b6108db565b3480156103ab57600080fd5b50601854601954601a546103c7926001600160a01b0316919083565b604080516001600160a01b03909416845260208401929092529082015260600161026d565b3480156103f857600080fd5b50600f546102c6906001600160a01b031681565b34801561041857600080fd5b506102ef60095481565b34801561042e57600080fd5b506102ef600c5481565b34801561044457600080fd5b506102ef601b5481565b34801561045a57600080fd5b506011546102c6906001600160a01b031681565b34801561047a57600080fd5b506102ef600b5481565b34801561049057600080fd5b5061029661049f366004611a59565b6001600160a01b031660009081526016602052604090205460ff1690565b3480156104c957600080fd5b506102ef60065481565b3480156104df57600080fd5b50601c546102969060ff1681565b3480156104f957600080fd5b5061050d610508366004611b53565b610917565b005b34801561051b57600080fd5b5061050d61052a366004611c2a565b610a5a565b34801561053b57600080fd5b506102ef61054a366004611a59565b6001600160a01b031660009081526020819052604090205490565b34801561057157600080fd5b5061050d610a97565b34801561058657600080fd5b506102ef60085481565b34801561059c57600080fd5b50600e546102c6906001600160a01b031681565b3480156105bc57600080fd5b506005546001600160a01b03166102c6565b3480156105da57600080fd5b5061050d6105e9366004611c45565b610b0b565b3480156105fa57600080fd5b506102ef600a5481565b34801561061057600080fd5b50610260610c10565b34801561062557600080fd5b506102966106343660046119ec565b610c1f565b34801561064557600080fd5b50610296610654366004611a59565b6001600160a01b03166000908152601d602052604090205460ff1690565b34801561067e57600080fd5b5061029661068d3660046119ec565b610cb8565b34801561069e57600080fd5b506102ef610cc5565b3480156106b357600080fd5b506102966106c2366004611a59565b60176020526000908152604090205460ff1681565b61050d6106e5366004611b53565b610cef565b3480156106f657600080fd5b506102ef60075481565b34801561070c57600080fd5b506102ef61071b366004611c7a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561075257600080fd5b506102ef60155481565b34801561076857600080fd5b5061050d610777366004611a59565b610e19565b60606003805461078b90611cb3565b80601f01602080910402602001604051908101604052809291908181526020018280546107b790611cb3565b80156108045780601f106107d957610100808354040283529160200191610804565b820191906000526020600020905b8154815290600101906020018083116107e757829003601f168201915b5050505050905090565b600061081b338484610f04565b5060015b92915050565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001981146108c557828110156108b85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108c58533858403610f04565b6108d0858585611028565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161081b918590610912908690611d03565b610f04565b805182511461095f5760405162461bcd60e51b8152602060048201526014602482015273105c9c985e5cc81b5d5cdd08189948195c5d585b60621b60448201526064016108af565b6000805b82518110156109a55782818151811061097e5761097e611d16565b6020026020010151826109919190611d03565b91508061099d81611d2c565b915050610963565b50336000908152602081905260409020548111156109f95760405162461bcd60e51b81526020600482015260116024820152704e6f7420656e6f75676820746f6b656e7360781b60448201526064016108af565b60005b8351811015610a5457610a4233858381518110610a1b57610a1b611d16565b6020026020010151858481518110610a3557610a35611d16565b6020026020010151611028565b80610a4c81611d2c565b9150506109fc565b50505050565b6005546001600160a01b03163314610a845760405162461bcd60e51b81526004016108af90611d45565b601e805460ff1916911515919091179055565b6005546001600160a01b03163314610ac15760405162461bcd60e51b81526004016108af90611d45565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610b355760405162461bcd60e51b81526004016108af90611d45565b6001600160a01b0382166000908152601d602052604090205481151560ff909116151503610bb15760405162461bcd60e51b8152602060048201526024808201527f4163636f756e7420697320616c72656164792073657420746f207468617420736044820152637461746560e01b60648201526084016108af565b6001600160a01b0382166000818152601d6020908152604091829020805460ff191685151590811790915591519182527f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c910160405180910390a25050565b60606004805461078b90611cb3565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610ca15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108af565b610cae3385858403610f04565b5060019392505050565b600061081b338484611028565b60006103e8601f54610cd660025490565b610ce09190611d7a565b610cea9190611d91565b905090565b8051825114610d375760405162461bcd60e51b8152602060048201526014602482015273105c9c985e5cc81b5d5cdd08189948195c5d585b60621b60448201526064016108af565b6000805b8251811015610d7d57828181518110610d5657610d56611d16565b602002602001015182610d699190611d03565b915080610d7581611d2c565b915050610d3b565b5080341015610dbf5760405162461bcd60e51b815260206004820152600e60248201526d09cdee840cadcdeeaced0408aa8960931b60448201526064016108af565b60005b8351811015610a5457610e07848281518110610de057610de0611d16565b6020026020010151848381518110610dfa57610dfa611d16565b602002602001015161159e565b80610e1181611d2c565b915050610dc2565b6005546001600160a01b03163314610e435760405162461bcd60e51b81526004016108af90611d45565b6001600160a01b038116610ea85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108af565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610f665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108af565b6001600160a01b038216610fc75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661104e5760405162461bcd60e51b81526004016108af90611db3565b6001600160a01b0382166110745760405162461bcd60e51b81526004016108af90611df8565b8060000361108d57611088838360006116b7565b505050565b30600090815260208190526040902054601554811080159081906110b4575060145460ff16155b80156110d957506001600160a01b03851660009081526017602052604090205460ff16155b80156110fe57506001600160a01b03851660009081526016602052604090205460ff16155b801561112357506001600160a01b03841660009081526016602052604090205460ff16155b1561137f576014805460ff1916600117905560075460065460009161114791611d03565b9050600060095460085461115b9190611d03565b90506000600b54600a5461116f9190611d03565b905060008161117e8486611d03565b6111889190611d03565b604080516002808252606082018352929350479260009260208301908036833701905050905030816000815181106111c2576111c2611d16565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561121b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123f9190611e3b565b8160018151811061125257611252611d16565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611298908b90600090869030904290600401611e58565b600060405180830381600087803b1580156112b257600080fd5b505af11580156112c6573d6000803e3d6000fd5b50505050600082476112d89190611ec9565b90506000846112e78984611d7a565b6112f19190611d91565b600e5490915061130a906001600160a01b03168261159e565b6000856113178985611d7a565b6113219190611d91565b600f5490915061133a906001600160a01b03168261159e565b6000866113478986611d7a565b6113519190611d91565b905080601360008282546113659190611d03565b90915550506014805460ff19169055505050505050505050505b6014546001600160a01b03861660009081526016602052604090205460ff918216159116806113c657506001600160a01b03851660009081526016602052604090205460ff165b806113f857506011546001600160a01b038781169116148015906113f857506011546001600160a01b03868116911614155b15611401575060005b8015611480576011546000906001600160a01b03908116908816036114295750600c54611444565b6011546001600160a01b03908116908716036114445750600d545b801561147e5760006127106114598388611d7a565b6114639190611d91565b905061146f8187611ec9565b955061147c8830836116b7565b505b505b601e5460ff1615611580576001600160a01b0386166000908152601d602052604090205460ff161580156114cd57506001600160a01b0385166000908152601d602052604090205460ff16155b80156114e757506011546001600160a01b03868116911614155b15611580576001600160a01b03851660009081526020819052604090205461150d610cc5565b6115178683611d03565b111561157e5760405162461bcd60e51b815260206004820152603060248201527f4d617857616c6c65743a20526563697069656e7420657863656564732074686560448201526f081b585e15d85b1b195d105b5bdd5b9d60821b60648201526084016108af565b505b61158b8686866116b7565b61159686868661180b565b505050505050565b804710156115ee5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108af565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461163b576040519150601f19603f3d011682016040523d82523d6000602084013e611640565b606091505b50509050806110885760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108af565b6001600160a01b0383166116dd5760405162461bcd60e51b81526004016108af90611db3565b6001600160a01b0382166117035760405162461bcd60e51b81526004016108af90611df8565b6001600160a01b0383166000908152602081905260409020548181101561177b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108af565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906117b2908490611d03565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117fe91815260200190565b60405180910390a3610a54565b601a54429061181c90610384611d03565b1115801561182c57506000601354115b801561183b5750601c5460ff16155b156118e4576000606460135460326118539190611d7a565b61185d9190611d91565b905080156118d55780601360008282546118779190611ec9565b9091555050601854611892906001600160a01b03168261159e565b6018546040518281526001600160a01b03909116907f794c0a60c6b1dab08acbdd0cb2b54ec0c29e059839c8f720be6e1ec2bc0487f49060200160405180910390a25b50601c805460ff191660011790555b601b54811015801561190457506011546001600160a01b03838116911614155b801561191d57506011546001600160a01b038481169116145b1561108857601880546001600160a01b0319166001600160a01b038416908117909155601982905542601a8190556040518392907fc636ca1005fc6454dfb44053046512fb54887d7778dd23ecf1d09cf75216a5d390600090a4601c805460ff19169055505050565b600060208083528351808285015260005b818110156119b357858101830151858201604001528201611997565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146119e957600080fd5b50565b600080604083850312156119ff57600080fd5b8235611a0a816119d4565b946020939093013593505050565b600080600060608486031215611a2d57600080fd5b8335611a38816119d4565b92506020840135611a48816119d4565b929592945050506040919091013590565b600060208284031215611a6b57600080fd5b8135611a76816119d4565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611abc57611abc611a7d565b604052919050565b600067ffffffffffffffff821115611ade57611ade611a7d565b5060051b60200190565b600082601f830112611af957600080fd5b81356020611b0e611b0983611ac4565b611a93565b82815260059290921b84018101918181019086841115611b2d57600080fd5b8286015b84811015611b485780358352918301918301611b31565b509695505050505050565b60008060408385031215611b6657600080fd5b823567ffffffffffffffff80821115611b7e57600080fd5b818501915085601f830112611b9257600080fd5b81356020611ba2611b0983611ac4565b82815260059290921b84018101918181019089841115611bc157600080fd5b948201945b83861015611be8578535611bd9816119d4565b82529482019490820190611bc6565b96505086013592505080821115611bfe57600080fd5b50611c0b85828601611ae8565b9150509250929050565b80358015158114611c2557600080fd5b919050565b600060208284031215611c3c57600080fd5b611a7682611c15565b60008060408385031215611c5857600080fd5b8235611c63816119d4565b9150611c7160208401611c15565b90509250929050565b60008060408385031215611c8d57600080fd5b8235611c98816119d4565b91506020830135611ca8816119d4565b809150509250929050565b600181811c90821680611cc757607f821691505b602082108103611ce757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561081f5761081f611ced565b634e487b7160e01b600052603260045260246000fd5b600060018201611d3e57611d3e611ced565b5060010190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761081f5761081f611ced565b600082611dae57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600060208284031215611e4d57600080fd5b8151611a76816119d4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ea85784516001600160a01b031683529383019391830191600101611e83565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561081f5761081f611ced56fea2646970667358221220ba1b3c18b3ad4e170a2cbdf158779f7a50b988b8485673618b2a0919dc5adde964736f6c63430008110033

Deployed Bytecode

0x60806040526004361061023f5760003560e01c8063672434821161012e578063a457c2d7116100ab578063c1a380061161006f578063c1a38006146106d7578063dc4c7dbc146106ea578063dd62ed3e14610700578063e2f4560514610746578063f2fde38b1461075c57600080fd5b8063a457c2d714610619578063a8a69b9d14610639578063a9059cbb14610672578063aa4bde2814610692578063b62496f5146106a757600080fd5b806375f0a874116100f257806375f0a874146105905780638da5cb5b146105b0578063929f1360146105ce57806395441947146105ee57806395d89b411461060457600080fd5b806367243482146104ed5780636f26b13c1461050f57806370a082311461052f578063715018a61461056557806375d3fc411461057a57600080fd5b806343d314e9116101bc57806349bd5a5e1161018057806349bd5a5e1461044e5780634f0490dc1461046e5780634fbee193146104845780635fc2e596146104bd57806361efee39146104d357600080fd5b806343d314e91461039f57806344478425146103ec578063461e5d3f1461040c5780634706240214610422578063482ebd981461043857600080fd5b806322f75ca61161020357806322f75ca61461031757806323b872dd1461032d5780632b14ca561461034d578063313ce56714610363578063395093511461037f57600080fd5b806306fdde031461024b578063095ea7b3146102765780631694505e146102a657806318160ddd146102de57806321a9d82a146102fd57600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5061026061077c565b60405161026d9190611986565b60405180910390f35b34801561028257600080fd5b506102966102913660046119ec565b61080e565b604051901515815260200161026d565b3480156102b257600080fd5b506010546102c6906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b3480156102ea57600080fd5b506002545b60405190815260200161026d565b34801561030957600080fd5b50601e546102969060ff1681565b34801561032357600080fd5b506102ef60135481565b34801561033957600080fd5b50610296610348366004611a18565b610825565b34801561035957600080fd5b506102ef600d5481565b34801561036f57600080fd5b506040516012815260200161026d565b34801561038b57600080fd5b5061029661039a3660046119ec565b6108db565b3480156103ab57600080fd5b50601854601954601a546103c7926001600160a01b0316919083565b604080516001600160a01b03909416845260208401929092529082015260600161026d565b3480156103f857600080fd5b50600f546102c6906001600160a01b031681565b34801561041857600080fd5b506102ef60095481565b34801561042e57600080fd5b506102ef600c5481565b34801561044457600080fd5b506102ef601b5481565b34801561045a57600080fd5b506011546102c6906001600160a01b031681565b34801561047a57600080fd5b506102ef600b5481565b34801561049057600080fd5b5061029661049f366004611a59565b6001600160a01b031660009081526016602052604090205460ff1690565b3480156104c957600080fd5b506102ef60065481565b3480156104df57600080fd5b50601c546102969060ff1681565b3480156104f957600080fd5b5061050d610508366004611b53565b610917565b005b34801561051b57600080fd5b5061050d61052a366004611c2a565b610a5a565b34801561053b57600080fd5b506102ef61054a366004611a59565b6001600160a01b031660009081526020819052604090205490565b34801561057157600080fd5b5061050d610a97565b34801561058657600080fd5b506102ef60085481565b34801561059c57600080fd5b50600e546102c6906001600160a01b031681565b3480156105bc57600080fd5b506005546001600160a01b03166102c6565b3480156105da57600080fd5b5061050d6105e9366004611c45565b610b0b565b3480156105fa57600080fd5b506102ef600a5481565b34801561061057600080fd5b50610260610c10565b34801561062557600080fd5b506102966106343660046119ec565b610c1f565b34801561064557600080fd5b50610296610654366004611a59565b6001600160a01b03166000908152601d602052604090205460ff1690565b34801561067e57600080fd5b5061029661068d3660046119ec565b610cb8565b34801561069e57600080fd5b506102ef610cc5565b3480156106b357600080fd5b506102966106c2366004611a59565b60176020526000908152604090205460ff1681565b61050d6106e5366004611b53565b610cef565b3480156106f657600080fd5b506102ef60075481565b34801561070c57600080fd5b506102ef61071b366004611c7a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561075257600080fd5b506102ef60155481565b34801561076857600080fd5b5061050d610777366004611a59565b610e19565b60606003805461078b90611cb3565b80601f01602080910402602001604051908101604052809291908181526020018280546107b790611cb3565b80156108045780601f106107d957610100808354040283529160200191610804565b820191906000526020600020905b8154815290600101906020018083116107e757829003601f168201915b5050505050905090565b600061081b338484610f04565b5060015b92915050565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001981146108c557828110156108b85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108c58533858403610f04565b6108d0858585611028565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161081b918590610912908690611d03565b610f04565b805182511461095f5760405162461bcd60e51b8152602060048201526014602482015273105c9c985e5cc81b5d5cdd08189948195c5d585b60621b60448201526064016108af565b6000805b82518110156109a55782818151811061097e5761097e611d16565b6020026020010151826109919190611d03565b91508061099d81611d2c565b915050610963565b50336000908152602081905260409020548111156109f95760405162461bcd60e51b81526020600482015260116024820152704e6f7420656e6f75676820746f6b656e7360781b60448201526064016108af565b60005b8351811015610a5457610a4233858381518110610a1b57610a1b611d16565b6020026020010151858481518110610a3557610a35611d16565b6020026020010151611028565b80610a4c81611d2c565b9150506109fc565b50505050565b6005546001600160a01b03163314610a845760405162461bcd60e51b81526004016108af90611d45565b601e805460ff1916911515919091179055565b6005546001600160a01b03163314610ac15760405162461bcd60e51b81526004016108af90611d45565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610b355760405162461bcd60e51b81526004016108af90611d45565b6001600160a01b0382166000908152601d602052604090205481151560ff909116151503610bb15760405162461bcd60e51b8152602060048201526024808201527f4163636f756e7420697320616c72656164792073657420746f207468617420736044820152637461746560e01b60648201526084016108af565b6001600160a01b0382166000818152601d6020908152604091829020805460ff191685151590811790915591519182527f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c910160405180910390a25050565b60606004805461078b90611cb3565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610ca15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108af565b610cae3385858403610f04565b5060019392505050565b600061081b338484611028565b60006103e8601f54610cd660025490565b610ce09190611d7a565b610cea9190611d91565b905090565b8051825114610d375760405162461bcd60e51b8152602060048201526014602482015273105c9c985e5cc81b5d5cdd08189948195c5d585b60621b60448201526064016108af565b6000805b8251811015610d7d57828181518110610d5657610d56611d16565b602002602001015182610d699190611d03565b915080610d7581611d2c565b915050610d3b565b5080341015610dbf5760405162461bcd60e51b815260206004820152600e60248201526d09cdee840cadcdeeaced0408aa8960931b60448201526064016108af565b60005b8351811015610a5457610e07848281518110610de057610de0611d16565b6020026020010151848381518110610dfa57610dfa611d16565b602002602001015161159e565b80610e1181611d2c565b915050610dc2565b6005546001600160a01b03163314610e435760405162461bcd60e51b81526004016108af90611d45565b6001600160a01b038116610ea85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108af565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610f665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108af565b6001600160a01b038216610fc75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661104e5760405162461bcd60e51b81526004016108af90611db3565b6001600160a01b0382166110745760405162461bcd60e51b81526004016108af90611df8565b8060000361108d57611088838360006116b7565b505050565b30600090815260208190526040902054601554811080159081906110b4575060145460ff16155b80156110d957506001600160a01b03851660009081526017602052604090205460ff16155b80156110fe57506001600160a01b03851660009081526016602052604090205460ff16155b801561112357506001600160a01b03841660009081526016602052604090205460ff16155b1561137f576014805460ff1916600117905560075460065460009161114791611d03565b9050600060095460085461115b9190611d03565b90506000600b54600a5461116f9190611d03565b905060008161117e8486611d03565b6111889190611d03565b604080516002808252606082018352929350479260009260208301908036833701905050905030816000815181106111c2576111c2611d16565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561121b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123f9190611e3b565b8160018151811061125257611252611d16565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611298908b90600090869030904290600401611e58565b600060405180830381600087803b1580156112b257600080fd5b505af11580156112c6573d6000803e3d6000fd5b50505050600082476112d89190611ec9565b90506000846112e78984611d7a565b6112f19190611d91565b600e5490915061130a906001600160a01b03168261159e565b6000856113178985611d7a565b6113219190611d91565b600f5490915061133a906001600160a01b03168261159e565b6000866113478986611d7a565b6113519190611d91565b905080601360008282546113659190611d03565b90915550506014805460ff19169055505050505050505050505b6014546001600160a01b03861660009081526016602052604090205460ff918216159116806113c657506001600160a01b03851660009081526016602052604090205460ff165b806113f857506011546001600160a01b038781169116148015906113f857506011546001600160a01b03868116911614155b15611401575060005b8015611480576011546000906001600160a01b03908116908816036114295750600c54611444565b6011546001600160a01b03908116908716036114445750600d545b801561147e5760006127106114598388611d7a565b6114639190611d91565b905061146f8187611ec9565b955061147c8830836116b7565b505b505b601e5460ff1615611580576001600160a01b0386166000908152601d602052604090205460ff161580156114cd57506001600160a01b0385166000908152601d602052604090205460ff16155b80156114e757506011546001600160a01b03868116911614155b15611580576001600160a01b03851660009081526020819052604090205461150d610cc5565b6115178683611d03565b111561157e5760405162461bcd60e51b815260206004820152603060248201527f4d617857616c6c65743a20526563697069656e7420657863656564732074686560448201526f081b585e15d85b1b195d105b5bdd5b9d60821b60648201526084016108af565b505b61158b8686866116b7565b61159686868661180b565b505050505050565b804710156115ee5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108af565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461163b576040519150601f19603f3d011682016040523d82523d6000602084013e611640565b606091505b50509050806110885760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108af565b6001600160a01b0383166116dd5760405162461bcd60e51b81526004016108af90611db3565b6001600160a01b0382166117035760405162461bcd60e51b81526004016108af90611df8565b6001600160a01b0383166000908152602081905260409020548181101561177b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108af565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906117b2908490611d03565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117fe91815260200190565b60405180910390a3610a54565b601a54429061181c90610384611d03565b1115801561182c57506000601354115b801561183b5750601c5460ff16155b156118e4576000606460135460326118539190611d7a565b61185d9190611d91565b905080156118d55780601360008282546118779190611ec9565b9091555050601854611892906001600160a01b03168261159e565b6018546040518281526001600160a01b03909116907f794c0a60c6b1dab08acbdd0cb2b54ec0c29e059839c8f720be6e1ec2bc0487f49060200160405180910390a25b50601c805460ff191660011790555b601b54811015801561190457506011546001600160a01b03838116911614155b801561191d57506011546001600160a01b038481169116145b1561108857601880546001600160a01b0319166001600160a01b038416908117909155601982905542601a8190556040518392907fc636ca1005fc6454dfb44053046512fb54887d7778dd23ecf1d09cf75216a5d390600090a4601c805460ff19169055505050565b600060208083528351808285015260005b818110156119b357858101830151858201604001528201611997565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146119e957600080fd5b50565b600080604083850312156119ff57600080fd5b8235611a0a816119d4565b946020939093013593505050565b600080600060608486031215611a2d57600080fd5b8335611a38816119d4565b92506020840135611a48816119d4565b929592945050506040919091013590565b600060208284031215611a6b57600080fd5b8135611a76816119d4565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611abc57611abc611a7d565b604052919050565b600067ffffffffffffffff821115611ade57611ade611a7d565b5060051b60200190565b600082601f830112611af957600080fd5b81356020611b0e611b0983611ac4565b611a93565b82815260059290921b84018101918181019086841115611b2d57600080fd5b8286015b84811015611b485780358352918301918301611b31565b509695505050505050565b60008060408385031215611b6657600080fd5b823567ffffffffffffffff80821115611b7e57600080fd5b818501915085601f830112611b9257600080fd5b81356020611ba2611b0983611ac4565b82815260059290921b84018101918181019089841115611bc157600080fd5b948201945b83861015611be8578535611bd9816119d4565b82529482019490820190611bc6565b96505086013592505080821115611bfe57600080fd5b50611c0b85828601611ae8565b9150509250929050565b80358015158114611c2557600080fd5b919050565b600060208284031215611c3c57600080fd5b611a7682611c15565b60008060408385031215611c5857600080fd5b8235611c63816119d4565b9150611c7160208401611c15565b90509250929050565b60008060408385031215611c8d57600080fd5b8235611c98816119d4565b91506020830135611ca8816119d4565b809150509250929050565b600181811c90821680611cc757607f821691505b602082108103611ce757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561081f5761081f611ced565b634e487b7160e01b600052603260045260246000fd5b600060018201611d3e57611d3e611ced565b5060010190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761081f5761081f611ced565b600082611dae57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600060208284031215611e4d57600080fd5b8151611a76816119d4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ea85784516001600160a01b031683529383019391830191600101611e83565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561081f5761081f611ced56fea2646970667358221220ba1b3c18b3ad4e170a2cbdf158779f7a50b988b8485673618b2a0919dc5adde964736f6c63430008110033

Deployed Bytecode Sourcemap

15405:10099:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2733:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3647:169;;;;;;;;;;-1:-1:-1;3647:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3647:169:0;1023:187:1;16006:41:0;;;;;;;;;;-1:-1:-1;16006:41:0;;;;-1:-1:-1;;;;;16006:41:0;;;;;;-1:-1:-1;;;;;1406:32:1;;;1388:51;;1376:2;1361:18;16006:41:0;1215:230:1;3054:108:0;;;;;;;;;;-1:-1:-1;3142:12:0;;3054:108;;;1596:25:1;;;1584:2;1569:18;3054:108:0;1450:177:1;23529:43:0;;;;;;;;;;-1:-1:-1;23529:43:0;;;;;;;;16168:33;;;;;;;;;;;;;;;;3824:573;;;;;;;;;;-1:-1:-1;3824:573:0;;;;;:::i;:::-;;:::i;15792:41::-;;;;;;;;;;;;;;;;2953:93;;;;;;;;;;-1:-1:-1;2953:93:0;;3036:2;2235:36:1;;2223:2;2208:18;2953:93:0;2093:184:1;4405:215:0;;;;;;;;;;-1:-1:-1;4405:215:0;;;;;:::i;:::-;;:::i;16515:30::-;;;;;;;;;;-1:-1:-1;16515:30:0;;;;;;;;-1:-1:-1;;;;;16515:30:0;;;;;;;;;-1:-1:-1;;;;;2502:32:1;;;2484:51;;2566:2;2551:18;;2544:34;;;;2594:18;;;2587:34;2472:2;2457:18;16515:30:0;2282:345:1;15924:73:0;;;;;;;;;;-1:-1:-1;15924:73:0;;;;-1:-1:-1;;;;;15924:73:0;;;15596:41;;;;;;;;;;;;;;;;15744;;;;;;;;;;;;;;;;16552:48;;;;;;;;;;;;;;;;16054:29;;;;;;;;;;-1:-1:-1;16054:29:0;;;;-1:-1:-1;;;;;16054:29:0;;;15694:41;;;;;;;;;;;;;;;;19047:125;;;;;;;;;;-1:-1:-1;19047:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;19136:28:0;19112:4;19136:28;;;:19;:28;;;;;;;;;19047:125;15450:41;;;;;;;;;;;;;;;;16607:38;;;;;;;;;;-1:-1:-1;16607:38:0;;;;;;;;24446:529;;;;;;;;;;-1:-1:-1;24446:529:0;;;;;:::i;:::-;;:::i;:::-;;24323:115;;;;;;;;;;-1:-1:-1;24323:115:0;;;;;:::i;:::-;;:::i;3170:127::-;;;;;;;;;;-1:-1:-1;3170:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3271:18:0;3244:7;3271:18;;;;;;;;;;;;3170:127;1920:148;;;;;;;;;;;;;:::i;15548:41::-;;;;;;;;;;;;;;;;15842:75;;;;;;;;;;-1:-1:-1;15842:75:0;;;;-1:-1:-1;;;;;15842:75:0;;;1706:79;;;;;;;;;;-1:-1:-1;1771:6:0;;-1:-1:-1;;;;;1771:6:0;1706:79;;23996:319;;;;;;;;;;-1:-1:-1;23996:319:0;;;;;:::i;:::-;;:::i;15646:41::-;;;;;;;;;;;;;;;;2841:104;;;;;;;;;;;;;:::i;4628:413::-;;;;;;;;;;-1:-1:-1;4628:413:0;;;;;:::i;:::-;;:::i;23711:145::-;;;;;;;;;;-1:-1:-1;23711:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;23810:38:0;23786:4;23810:38;;;:29;:38;;;;;;;;;23711:145;3305:175;;;;;;;;;;-1:-1:-1;3305:175:0;;;;;:::i;:::-;;:::i;23864:124::-;;;;;;;;;;;;;:::i;16343:58::-;;;;;;;;;;-1:-1:-1;16343:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;24983:518;;;;;;:::i;:::-;;:::i;15498:41::-;;;;;;;;;;;;;;;;3488:151;;;;;;;;;;-1:-1:-1;3488:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3604:18:0;;;3577:7;3604:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3488:151;16241:33;;;;;;;;;;;;;;;;2076:244;;;;;;;;;;-1:-1:-1;2076:244:0;;;;;:::i;:::-;;:::i;2733:100::-;2787:13;2820:5;2813:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2733:100;:::o;3647:169::-;3730:4;3747:39;1109:10;3770:7;3779:6;3747:8;:39::i;:::-;-1:-1:-1;3804:4:0;3647:169;;;;;:::o;3824:573::-;-1:-1:-1;;;;;4008:19:0;;3964:4;4008:19;;;:11;:19;;;;;;;;1109:10;4008:33;;;;;;;;-1:-1:-1;;4056:37:0;;4052:265;;4138:6;4118:16;:26;;4110:79;;;;-1:-1:-1;;;4110:79:0;;7229:2:1;4110:79:0;;;7211:21:1;7268:2;7248:18;;;7241:30;7307:34;7287:18;;;7280:62;-1:-1:-1;;;7358:18:1;;;7351:38;7406:19;;4110:79:0;;;;;;;;;4233:57;4242:6;1109:10;4283:6;4264:16;:25;4233:8;:57::i;:::-;4329:36;4339:6;4347:9;4358:6;4329:9;:36::i;:::-;-1:-1:-1;4385:4:0;;3824:573;-1:-1:-1;;;;3824:573:0:o;4405:215::-;1109:10;4493:4;4542:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4542:34:0;;;;;;;;;;4493:4;;4510:80;;4533:7;;4542:47;;4579:10;;4542:47;:::i;:::-;4510:8;:80::i;24446:529::-;24565:7;:14;24545:9;:16;:34;24537:67;;;;-1:-1:-1;;;24537:67:0;;7900:2:1;24537:67:0;;;7882:21:1;7939:2;7919:18;;;7912:30;-1:-1:-1;;;7958:18:1;;;7951:50;8018:18;;24537:67:0;7698:344:1;24537:67:0;24615:19;;24655:97;24679:7;:14;24675:1;:18;24655:97;;;24730:7;24738:1;24730:10;;;;;;;;:::i;:::-;;;;;;;24715:25;;;;;:::i;:::-;;-1:-1:-1;24695:3:0;;;;:::i;:::-;;;;24655:97;;;-1:-1:-1;24782:10:0;3244:7;3271:18;;;;;;;;;;;24797:11;-1:-1:-1;24772:36:0;24764:66;;;;-1:-1:-1;;;24764:66:0;;8521:2:1;24764:66:0;;;8503:21:1;8560:2;8540:18;;;8533:30;-1:-1:-1;;;8579:18:1;;;8572:47;8636:18;;24764:66:0;8319:341:1;24764:66:0;24848:9;24843:123;24867:9;:16;24863:1;:20;24843:123;;;24905:49;1109:10;24929:9;24939:1;24929:12;;;;;;;;:::i;:::-;;;;;;;24943:7;24951:1;24943:10;;;;;;;;:::i;:::-;;;;;;;24905:9;:49::i;:::-;24885:3;;;;:::i;:::-;;;;24843:123;;;;24526:449;24446:529;;:::o;24323:115::-;1833:6;;-1:-1:-1;;;;;1833:6:0;1109:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;24400:21:::1;:30:::0;;-1:-1:-1;;24400:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24323:115::o;1920:148::-;1833:6;;-1:-1:-1;;;;;1833:6:0;1109:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;2011:6:::1;::::0;1990:40:::1;::::0;2027:1:::1;::::0;-1:-1:-1;;;;;2011:6:0::1;::::0;1990:40:::1;::::0;2027:1;;1990:40:::1;2041:6;:19:::0;;-1:-1:-1;;;;;;2041:19:0::1;::::0;;1920:148::o;23996:319::-;1833:6;;-1:-1:-1;;;;;1833:6:0;1109:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24098:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;:49;::::1;;:38;::::0;;::::1;:49;;::::0;24090:98:::1;;;::::0;-1:-1:-1;;;24090:98:0;;9228:2:1;24090:98:0::1;::::0;::::1;9210:21:1::0;9267:2;9247:18;;;9240:30;9306:34;9286:18;;;9279:62;-1:-1:-1;;;9357:18:1;;;9350:34;9401:19;;24090:98:0::1;9026:400:1::0;24090:98:0::1;-1:-1:-1::0;;;;;24199:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;;;;:48;;-1:-1:-1;;24199:48:0::1;::::0;::::1;;::::0;;::::1;::::0;;;24263:44;;1163:41:1;;;24263:44:0::1;::::0;1136:18:1;24263:44:0::1;;;;;;;23996:319:::0;;:::o;2841:104::-;2897:13;2930:7;2923:14;;;;;:::i;4628:413::-;1109:10;4721:4;4765:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4765:34:0;;;;;;;;;;4818:35;;;;4810:85;;;;-1:-1:-1;;;4810:85:0;;9633:2:1;4810:85:0;;;9615:21:1;9672:2;9652:18;;;9645:30;9711:34;9691:18;;;9684:62;-1:-1:-1;;;9762:18:1;;;9755:35;9807:19;;4810:85:0;9431:401:1;4810:85:0;4931:67;1109:10;4954:7;4982:15;4963:16;:34;4931:8;:67::i;:::-;-1:-1:-1;5029:4:0;;4628:413;-1:-1:-1;;;4628:413:0:o;3305:175::-;3391:4;3408:42;1109:10;3432:9;3443:6;3408:9;:42::i;23864:124::-;23912:7;23976:4;23955:18;;23939:13;3142:12;;;3054:108;23939:13;:34;;;;:::i;:::-;:41;;;;:::i;:::-;23932:48;;23864:124;:::o;24983:518::-;25113:7;:14;25093:9;:16;:34;25085:67;;;;-1:-1:-1;;;25085:67:0;;7900:2:1;25085:67:0;;;7882:21:1;7939:2;7919:18;;;7912:30;-1:-1:-1;;;7958:18:1;;;7951:50;8018:18;;25085:67:0;7698:344:1;25085:67:0;25163:19;;25203:97;25227:7;:14;25223:1;:18;25203:97;;;25278:7;25286:1;25278:10;;;;;;;;:::i;:::-;;;;;;;25263:25;;;;;:::i;:::-;;-1:-1:-1;25243:3:0;;;;:::i;:::-;;;;25203:97;;;;25333:11;25320:9;:24;;25312:51;;;;-1:-1:-1;;;25312:51:0;;10434:2:1;25312:51:0;;;10416:21:1;10473:2;10453:18;;;10446:30;-1:-1:-1;;;10492:18:1;;;10485:44;10546:18;;25312:51:0;10232:338:1;25312:51:0;25381:9;25376:116;25400:9;:16;25396:1;:20;25376:116;;;25438:42;25454:9;25464:1;25454:12;;;;;;;;:::i;:::-;;;;;;;25469:7;25477:1;25469:10;;;;;;;;:::i;:::-;;;;;;;25438:7;:42::i;:::-;25418:3;;;;:::i;:::-;;;;25376:116;;2076:244;1833:6;;-1:-1:-1;;;;;1833:6:0;1109:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2165:22:0;::::1;2157:73;;;::::0;-1:-1:-1;;;2157:73:0;;10777:2:1;2157:73:0::1;::::0;::::1;10759:21:1::0;10816:2;10796:18;;;10789:30;10855:34;10835:18;;;10828:62;-1:-1:-1;;;10906:18:1;;;10899:36;10952:19;;2157:73:0::1;10575:402:1::0;2157:73:0::1;2267:6;::::0;2246:38:::1;::::0;-1:-1:-1;;;;;2246:38:0;;::::1;::::0;2267:6:::1;::::0;2246:38:::1;::::0;2267:6:::1;::::0;2246:38:::1;2295:6;:17:::0;;-1:-1:-1;;;;;;2295:17:0::1;-1:-1:-1::0;;;;;2295:17:0;;;::::1;::::0;;;::::1;::::0;;2076:244::o;6796:380::-;-1:-1:-1;;;;;6932:19:0;;6924:68;;;;-1:-1:-1;;;6924:68:0;;11184:2:1;6924:68:0;;;11166:21:1;11223:2;11203:18;;;11196:30;11262:34;11242:18;;;11235:62;-1:-1:-1;;;11313:18:1;;;11306:34;11357:19;;6924:68:0;10982:400:1;6924:68:0;-1:-1:-1;;;;;7011:21:0;;7003:68;;;;-1:-1:-1;;;7003:68:0;;11589:2:1;7003:68:0;;;11571:21:1;11628:2;11608:18;;;11601:30;11667:34;11647:18;;;11640:62;-1:-1:-1;;;11718:18:1;;;11711:32;11760:19;;7003:68:0;11387:398:1;7003:68:0;-1:-1:-1;;;;;7084:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7136:32;;1596:25:1;;;7136:32:0;;1569:18:1;7136:32:0;;;;;;;6796:380;;;:::o;19180:3331::-;-1:-1:-1;;;;;19313:18:0;;19305:68;;;;-1:-1:-1;;;19305:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19392:16:0;;19384:64;;;;-1:-1:-1;;;19384:64:0;;;;;;;:::i;:::-;19462:6;19472:1;19462:11;19459:92;;19490:28;19506:4;19512:2;19516:1;19490:15;:28::i;:::-;19180:3331;;;:::o;19459:92::-;19604:4;19555:28;3271:18;;;;;;;;;;;19662;;19638:42;;;;;;;19697:33;;-1:-1:-1;19722:8:0;;;;19721:9;19697:33;:82;;;;-1:-1:-1;;;;;;19748:31:0;;;;;;:25;:31;;;;;;;;19747:32;19697:82;:125;;;;-1:-1:-1;;;;;;19797:25:0;;;;;;:19;:25;;;;;;;;19796:26;19697:125;:166;;;;-1:-1:-1;;;;;;19840:23:0;;;;;;:19;:23;;;;;;;;19839:24;19697:166;19693:1563;;;19890:8;:15;;-1:-1:-1;;19890:15:0;19901:4;19890:15;;;19967:18;;19947:17;;19890:8;;19947:38;;;:::i;:::-;19922:63;;20000:20;20041:16;;20023:15;;:34;;;;:::i;:::-;20000:57;;20072:20;20113:16;;20095:15;;:34;;;;:::i;:::-;20072:57;-1:-1:-1;20144:18:0;20072:57;20165:29;20182:12;20165:14;:29;:::i;:::-;:44;;;;:::i;:::-;20325:16;;;20339:1;20325:16;;;;;;;;20144:65;;-1:-1:-1;20263:21:0;;20238:22;;20325:16;;;;;;;;;;-1:-1:-1;20325:16:0;20301:40;;20374:4;20356;20361:1;20356:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20356:23:0;;;:7;;;;;;;;;;:23;;;;20404:15;;:22;;;-1:-1:-1;;;20404:22:0;;;;:15;;;;;:20;;:22;;;;;20356:7;;20404:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20394:4;20399:1;20394:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20394:32:0;;;:7;;;;;;;;;:32;20443:15;;:243;;-1:-1:-1;;;20443:243:0;;:15;;;:66;;:243;;20528:20;;20443:15;;20615:4;;20646;;20670:15;;20443:243;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20703:18;20748:14;20724:21;:38;;;;:::i;:::-;20703:59;-1:-1:-1;20791:23:0;20847:10;20817:27;20830:14;20703:59;20817:27;:::i;:::-;:40;;;;:::i;:::-;20888:15;;20791:66;;-1:-1:-1;20872:50:0;;-1:-1:-1;;;;;20888:15:0;20791:66;20872:7;:50::i;:::-;20951:21;21003:10;20975:25;20988:12;20975:10;:25;:::i;:::-;:38;;;;:::i;:::-;21044:13;;20951:62;;-1:-1:-1;21028:46:0;;-1:-1:-1;;;;;21044:13:0;20951:62;21028:7;:46::i;:::-;21091:21;21143:10;21115:25;21128:12;21115:10;:25;:::i;:::-;:38;;;;:::i;:::-;21091:62;;21186:13;21168:14;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;;21228:8:0;:16;;-1:-1:-1;;21228:16:0;;;-1:-1:-1;;;;;;;;;;19693:1563:0;21284:8;;-1:-1:-1;;;;;21309:25:0;;21268:12;21309:25;;;:19;:25;;;;;;21284:8;;;;21283:9;;21309:25;;:52;;-1:-1:-1;;;;;;21338:23:0;;;;;;:19;:23;;;;;;;;21309:52;21308:105;;;-1:-1:-1;21376:13:0;;-1:-1:-1;;;;;21368:21:0;;;21376:13;;21368:21;;;;:44;;-1:-1:-1;21399:13:0;;-1:-1:-1;;;;;21393:19:0;;;21399:13;;21393:19;;21368:44;21305:151;;;-1:-1:-1;21439:5:0;21305:151;21471:7;21468:459;;;21543:13;;21495:18;;-1:-1:-1;;;;;21543:13:0;;;21535:21;;;;21532:165;;-1:-1:-1;21590:6:0;;21532:165;;;21627:13;;-1:-1:-1;;;;;21627:13:0;;;21621:19;;;;21618:79;;-1:-1:-1;21674:7:0;;21618:79;21717:14;;21713:201;;21752:12;21789:5;21767:19;21776:10;21767:6;:19;:::i;:::-;:27;;;;:::i;:::-;21752:42;-1:-1:-1;21822:13:0;21752:42;21822:6;:13;:::i;:::-;21813:22;;21856:42;21872:4;21886;21893;21856:15;:42::i;:::-;21733:181;21713:201;21480:447;21468:459;21943:21;;;;21939:478;;;-1:-1:-1;;;;;21995:35:0;;;;;;:29;:35;;;;;;;;:45;;;:112;;-1:-1:-1;;;;;;22062:33:0;;;;;;:29;:33;;;;;;;;:45;21995:112;:152;;;;-1:-1:-1;22134:13:0;;-1:-1:-1;;;;;22128:19:0;;;22134:13;;22128:19;;21995:152;21991:415;;;-1:-1:-1;;;;;3271:18:0;;22182:12;3271:18;;;;;;;;;;;22280:17;:15;:17::i;:::-;22260:16;22270:6;22260:7;:16;:::i;:::-;:37;;22230:160;;;;-1:-1:-1;;;22230:160:0;;14176:2:1;22230:160:0;;;14158:21:1;14215:2;14195:18;;;14188:30;14254:34;14234:18;;;14227:62;-1:-1:-1;;;14305:18:1;;;14298:46;14361:19;;22230:160:0;13974:412:1;22230:160:0;22163:243;21991:415;22429:33;22445:4;22451:2;22455:6;22429:15;:33::i;:::-;22473:30;22486:4;22492:2;22496:6;22473:12;:30::i;:::-;19294:3217;;;19180:3331;;;:::o;18408:315::-;18521:6;18496:21;:31;;18488:73;;;;-1:-1:-1;;;18488:73:0;;14593:2:1;18488:73:0;;;14575:21:1;14632:2;14612:18;;;14605:30;14671:31;14651:18;;;14644:59;14720:18;;18488:73:0;14391:353:1;18488:73:0;18575:12;18593:9;-1:-1:-1;;;;;18593:14:0;18615:6;18593:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18574:52;;;18645:7;18637:78;;;;-1:-1:-1;;;18637:78:0;;15161:2:1;18637:78:0;;;15143:21:1;15200:2;15180:18;;;15173:30;15239:34;15219:18;;;15212:62;15310:28;15290:18;;;15283:56;15356:19;;18637:78:0;14959:422:1;5049:733:0;-1:-1:-1;;;;;5189:20:0;;5181:70;;;;-1:-1:-1;;;5181:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5270:23:0;;5262:71;;;;-1:-1:-1;;;5262:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5430:17:0;;5406:21;5430:17;;;;;;;;;;;5466:23;;;;5458:74;;;;-1:-1:-1;;;5458:74:0;;15588:2:1;5458:74:0;;;15570:21:1;15627:2;15607:18;;;15600:30;15666:34;15646:18;;;15639:62;-1:-1:-1;;;15717:18:1;;;15710:36;15763:19;;5458:74:0;15386:402:1;5458:74:0;-1:-1:-1;;;;;5568:17:0;;;:9;:17;;;;;;;;;;;5588:22;;;5568:42;;5632:20;;;;;;;;:30;;5604:6;;5568:9;5632:30;;5604:6;;5632:30;:::i;:::-;;;;;;;;5697:9;-1:-1:-1;;;;;5680:35:0;5689:6;-1:-1:-1;;;;;5680:35:0;;5708:6;5680:35;;;;1596:25:1;;1584:2;1569:18;;1450:177;5680:35:0;;;;;;;;5728:46;19180:3331;22519:900;22606:18;;22641:15;;22606:31;;22627:10;22606:31;:::i;:::-;:50;;:72;;;;;22677:1;22660:14;;:18;22606:72;:95;;;;-1:-1:-1;22683:18:0;;;;22682:19;22606:95;22602:479;;;22718:22;22767:3;22744:14;;22761:2;22744:19;;;;:::i;:::-;22743:27;;;;:::i;:::-;22718:52;-1:-1:-1;22803:18:0;;22799:231;;22860:14;22842;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;;22909:13:0;:19;22893:53;;-1:-1:-1;;;;;22909:19:0;22931:14;22893:7;:53::i;:::-;22978:13;:19;22970:44;;1596:25:1;;;-1:-1:-1;;;;;22978:19:0;;;;22970:44;;1584:2:1;1569:18;22970:44:0;;;;;;;22799:231;-1:-1:-1;23044:18:0;:25;;-1:-1:-1;;23044:25:0;23065:4;23044:25;;;22602:479;23105:12;;23095:6;:22;;:45;;;;-1:-1:-1;23127:13:0;;-1:-1:-1;;;;;23121:19:0;;;23127:13;;23121:19;;23095:45;:70;;;;-1:-1:-1;23152:13:0;;-1:-1:-1;;;;;23144:21:0;;;23152:13;;23144:21;23095:70;23091:321;;;23183:13;:24;;-1:-1:-1;;;;;;23183:24:0;-1:-1:-1;;;;;23183:24:0;;;;;;;;23222:20;:29;;;23287:15;23266:18;:36;;;23322:37;;23222:29;;23183:24;23322:37;;-1:-1:-1;;23322:37:0;23374:18;:26;;-1:-1:-1;;23374:26:0;;;22519:900;;;:::o;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;622:70;567:131;:::o;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;1632:456::-;1709:6;1717;1725;1778:2;1766:9;1757:7;1753:23;1749:32;1746:52;;;1794:1;1791;1784:12;1746:52;1833:9;1820:23;1852:31;1877:5;1852:31;:::i;:::-;1902:5;-1:-1:-1;1959:2:1;1944:18;;1931:32;1972:33;1931:32;1972:33;:::i;:::-;1632:456;;2024:7;;-1:-1:-1;;;2078:2:1;2063:18;;;;2050:32;;1632:456::o;2840:247::-;2899:6;2952:2;2940:9;2931:7;2927:23;2923:32;2920:52;;;2968:1;2965;2958:12;2920:52;3007:9;2994:23;3026:31;3051:5;3026:31;:::i;:::-;3076:5;2840:247;-1:-1:-1;;;2840:247:1:o;3092:127::-;3153:10;3148:3;3144:20;3141:1;3134:31;3184:4;3181:1;3174:15;3208:4;3205:1;3198:15;3224:275;3295:2;3289:9;3360:2;3341:13;;-1:-1:-1;;3337:27:1;3325:40;;3395:18;3380:34;;3416:22;;;3377:62;3374:88;;;3442:18;;:::i;:::-;3478:2;3471:22;3224:275;;-1:-1:-1;3224:275:1:o;3504:183::-;3564:4;3597:18;3589:6;3586:30;3583:56;;;3619:18;;:::i;:::-;-1:-1:-1;3664:1:1;3660:14;3676:4;3656:25;;3504:183::o;3692:662::-;3746:5;3799:3;3792:4;3784:6;3780:17;3776:27;3766:55;;3817:1;3814;3807:12;3766:55;3853:6;3840:20;3879:4;3903:60;3919:43;3959:2;3919:43;:::i;:::-;3903:60;:::i;:::-;3997:15;;;4083:1;4079:10;;;;4067:23;;4063:32;;;4028:12;;;;4107:15;;;4104:35;;;4135:1;4132;4125:12;4104:35;4171:2;4163:6;4159:15;4183:142;4199:6;4194:3;4191:15;4183:142;;;4265:17;;4253:30;;4303:12;;;;4216;;4183:142;;;-1:-1:-1;4343:5:1;3692:662;-1:-1:-1;;;;;;3692:662:1:o;4359:1215::-;4477:6;4485;4538:2;4526:9;4517:7;4513:23;4509:32;4506:52;;;4554:1;4551;4544:12;4506:52;4594:9;4581:23;4623:18;4664:2;4656:6;4653:14;4650:34;;;4680:1;4677;4670:12;4650:34;4718:6;4707:9;4703:22;4693:32;;4763:7;4756:4;4752:2;4748:13;4744:27;4734:55;;4785:1;4782;4775:12;4734:55;4821:2;4808:16;4843:4;4867:60;4883:43;4923:2;4883:43;:::i;4867:60::-;4961:15;;;5043:1;5039:10;;;;5031:19;;5027:28;;;4992:12;;;;5067:19;;;5064:39;;;5099:1;5096;5089:12;5064:39;5123:11;;;;5143:217;5159:6;5154:3;5151:15;5143:217;;;5239:3;5226:17;5256:31;5281:5;5256:31;:::i;:::-;5300:18;;5176:12;;;;5338;;;;5143:217;;;5379:5;-1:-1:-1;;5422:18:1;;5409:32;;-1:-1:-1;;5453:16:1;;;5450:36;;;5482:1;5479;5472:12;5450:36;;5505:63;5560:7;5549:8;5538:9;5534:24;5505:63;:::i;:::-;5495:73;;;4359:1215;;;;;:::o;5579:160::-;5644:20;;5700:13;;5693:21;5683:32;;5673:60;;5729:1;5726;5719:12;5673:60;5579:160;;;:::o;5744:180::-;5800:6;5853:2;5841:9;5832:7;5828:23;5824:32;5821:52;;;5869:1;5866;5859:12;5821:52;5892:26;5908:9;5892:26;:::i;5929:315::-;5994:6;6002;6055:2;6043:9;6034:7;6030:23;6026:32;6023:52;;;6071:1;6068;6061:12;6023:52;6110:9;6097:23;6129:31;6154:5;6129:31;:::i;:::-;6179:5;-1:-1:-1;6203:35:1;6234:2;6219:18;;6203:35;:::i;:::-;6193:45;;5929:315;;;;;:::o;6249:388::-;6317:6;6325;6378:2;6366:9;6357:7;6353:23;6349:32;6346:52;;;6394:1;6391;6384:12;6346:52;6433:9;6420:23;6452:31;6477:5;6452:31;:::i;:::-;6502:5;-1:-1:-1;6559:2:1;6544:18;;6531:32;6572:33;6531:32;6572:33;:::i;:::-;6624:7;6614:17;;;6249:388;;;;;:::o;6642:380::-;6721:1;6717:12;;;;6764;;;6785:61;;6839:4;6831:6;6827:17;6817:27;;6785:61;6892:2;6884:6;6881:14;6861:18;6858:38;6855:161;;6938:10;6933:3;6929:20;6926:1;6919:31;6973:4;6970:1;6963:15;7001:4;6998:1;6991:15;6855:161;;6642:380;;;:::o;7436:127::-;7497:10;7492:3;7488:20;7485:1;7478:31;7528:4;7525:1;7518:15;7552:4;7549:1;7542:15;7568:125;7633:9;;;7654:10;;;7651:36;;;7667:18;;:::i;8047:127::-;8108:10;8103:3;8099:20;8096:1;8089:31;8139:4;8136:1;8129:15;8163:4;8160:1;8153:15;8179:135;8218:3;8239:17;;;8236:43;;8259:18;;:::i;:::-;-1:-1:-1;8306:1:1;8295:13;;8179:135::o;8665:356::-;8867:2;8849:21;;;8886:18;;;8879:30;8945:34;8940:2;8925:18;;8918:62;9012:2;8997:18;;8665:356::o;9837:168::-;9910:9;;;9941;;9958:15;;;9952:22;;9938:37;9928:71;;9979:18;;:::i;10010:217::-;10050:1;10076;10066:132;;10120:10;10115:3;10111:20;10108:1;10101:31;10155:4;10152:1;10145:15;10183:4;10180:1;10173:15;10066:132;-1:-1:-1;10212:9:1;;10010:217::o;11790:401::-;11992:2;11974:21;;;12031:2;12011:18;;;12004:30;12070:34;12065:2;12050:18;;12043:62;-1:-1:-1;;;12136:2:1;12121:18;;12114:35;12181:3;12166:19;;11790:401::o;12196:399::-;12398:2;12380:21;;;12437:2;12417:18;;;12410:30;12476:34;12471:2;12456:18;;12449:62;-1:-1:-1;;;12542:2:1;12527:18;;12520:33;12585:3;12570:19;;12196:399::o;12600:251::-;12670:6;12723:2;12711:9;12702:7;12698:23;12694:32;12691:52;;;12739:1;12736;12729:12;12691:52;12771:9;12765:16;12790:31;12815:5;12790:31;:::i;12856:980::-;13118:4;13166:3;13155:9;13151:19;13197:6;13186:9;13179:25;13223:2;13261:6;13256:2;13245:9;13241:18;13234:34;13304:3;13299:2;13288:9;13284:18;13277:31;13328:6;13363;13357:13;13394:6;13386;13379:22;13432:3;13421:9;13417:19;13410:26;;13471:2;13463:6;13459:15;13445:29;;13492:1;13502:195;13516:6;13513:1;13510:13;13502:195;;;13581:13;;-1:-1:-1;;;;;13577:39:1;13565:52;;13672:15;;;;13637:12;;;;13613:1;13531:9;13502:195;;;-1:-1:-1;;;;;;;13753:32:1;;;;13748:2;13733:18;;13726:60;-1:-1:-1;;;13817:3:1;13802:19;13795:35;13714:3;12856:980;-1:-1:-1;;;12856:980:1:o;13841:128::-;13908:9;;;13929:11;;;13926:37;;;13943:18;;:::i

Swarm Source

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