ETH Price: $2,457.05 (+0.77%)

Token

Kukulkan (KUKUL)
 

Overview

Max Total Supply

10,000,000,000 KUKUL

Holders

41

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.31871415 KUKUL

Value
$0.00
0xc0fbc08dfae399736b2a9ceb20a7c7cd29b3d59d
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:
Kukulkan

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-15
*/

/*
Kukulkan - About Face
https://t.me/Kukulkaneth
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

contract Kukulkan is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant _tTotal = 1e10 * 10**9;
    
    uint256 private _buyMarketingFee = 3;
    uint256 private _previousBuyMarketingFee = _buyMarketingFee;
    uint256 private _buyLiquidityFee = 3;
    uint256 private _previousBuyLiquidityFee = _buyLiquidityFee;
    
    uint256 private _sellMarketingFee = 3;
    uint256 private _previousSellMarketingFee = _sellMarketingFee;
    uint256 private _sellLiquidityFee = 3;
    uint256 private _previousSellLiquidityFee = _sellLiquidityFee;

    uint256 private tokensForMarketing;
    uint256 private tokensForLiquidity;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function setMarketingWallet(address MarketingWallet) public onlyOwner() {
        require(MarketingWallet != address(0), "MarketingWallet address cannot be 0");
        _isExcludedFromFee[_MarketingWallet] = false;
        _MarketingWallet = payable(MarketingWallet);
        _isExcludedFromFee[_MarketingWallet] = true;
    }


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

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

    function setBuyFee(uint256 buyMarketingFee, uint256 buyLiquidityFee) external onlyOwner {
        require(buyMarketingFee + buyLiquidityFee <= 6, "Must keep buy taxes below 6%");
        _buyMarketingFee = buyMarketingFee;
        _buyLiquidityFee = buyLiquidityFee;
    }

    function setSellFee(uint256 sellMarketingFee, uint256 sellLiquidityFee) external onlyOwner {
        require(sellMarketingFee + sellLiquidityFee <= 6, "Must keep sell taxes below 6%");
        _sellMarketingFee = sellMarketingFee;
        _sellLiquidityFee = sellLiquidityFee;
    }

    function setBlocksToBlacklist(uint256 blocks) public onlyOwner {
        blocksToBlacklist = blocks;
    }

    function removeAllFee() private {
        if(_buyMarketingFee == 0 && _buyLiquidityFee == 0 && _sellMarketingFee == 0 && _sellLiquidityFee == 0) return;
        
        _previousBuyMarketingFee = _buyMarketingFee;
        _previousBuyLiquidityFee = _buyLiquidityFee;
        _previousSellMarketingFee = _sellMarketingFee;
        _previousSellLiquidityFee = _sellLiquidityFee;
        
        _buyMarketingFee = 0;
        _buyLiquidityFee = 0;
        _sellMarketingFee = 0;
        _sellLiquidityFee = 0;
    }
    
    function restoreAllFee() private {
        _buyMarketingFee = _previousBuyMarketingFee;
        _buyLiquidityFee = _previousBuyLiquidityFee;
        _sellMarketingFee = _previousSellMarketingFee;
        _sellLiquidityFee = _previousSellLiquidityFee;
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee, bool isSell) private {
        if(!takeFee) {
            removeAllFee();
        } else {
            amount = _takeFees(sender, amount, isSell);
        }

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

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

    function _takeFees(address sender, uint256 amount, bool isSell) private returns (uint256) {
        uint256 _totalFees;
        uint256 mrktFee;
        uint256 liqFee;
        if(tradingActiveBlock + blocksToBlacklist >= block.number){
            _totalFees = 99;
            mrktFee = 99;
        } else {
            _totalFees = _getTotalFees(isSell);
            if (isSell) {
                mrktFee = _sellMarketingFee;
                liqFee = _sellLiquidityFee;
            } else {
                mrktFee = _buyMarketingFee;
                liqFee = _buyLiquidityFee;
            }
        }

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

    receive() external payable {}
    
    function manualswap() public onlyOwner() {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() public onlyOwner() {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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

    function _getTotalFees(bool isSell) private view returns(uint256) {
        if (isSell) {
            return _sellMarketingFee + _sellLiquidityFee;
        }
        return _buyMarketingFee + _buyLiquidityFee;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxSellAmount","type":"uint256"}],"name":"MaxSellAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"setBlocksToBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyMarketingFee","type":"uint256"},{"internalType":"uint256","name":"buyLiquidityFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityWallet","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"MarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"}],"name":"setMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"setMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxToken","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellMarketingFee","type":"uint256"},{"internalType":"uint256","name":"sellLiquidityFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526003600781905560088181556009829055600a829055600b829055600c829055600d829055600e919091556014805462ffffff60b01b1916905560006015819055601691909155678ac7230489e8000060178190556018819055601955601a553480156200007157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601180546001600160a01b03199081167375da201a150160fe73ad22fb79470ddd9b0169241790915560128054909116734a2933677597839297854638bb246f09052af6a4179055678ac7230489e8000060026000620001103390565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600460006200014a6200022a60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526004909352818320805485166001908117909155601154821684528284208054861682179055601254909116835291208054909216179055620001bb3390565b6001600160a01b0316732b32f801e7731851a2cdee44f5e56c2f190039b46001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e800006040516200021c91815260200190565b60405180910390a362000239565b6000546001600160a01b031690565b6126c880620002496000396000f3fe6080604052600436106101d15760003560e01c80638da5cb5b116100f7578063dd62ed3e11610095578063ea2f0b3711610064578063ea2f0b3714610579578063f34eb0b814610599578063f5648a4f146105b9578063fb0ecfa4146105ce57600080fd5b8063dd62ed3e146104d3578063e01af92c14610519578063e6f7ef4d14610539578063e99c9d091461055957600080fd5b8063afa4f3b2116100d1578063afa4f3b214610469578063b515566a14610489578063c3c8cd80146104a9578063c9567bf9146104be57600080fd5b80638da5cb5b146103f357806395d89b411461041b578063a9059cbb1461044957600080fd5b8063313ce5671161016f5780636ac9a8701161013e5780636ac9a870146103735780636fc3eaec1461039357806370a08231146103a8578063715018a6146103de57600080fd5b8063313ce567146102f7578063437823ec146103135780635932ead1146103335780635d098b381461035357600080fd5b806323b872dd116101ab57806323b872dd14610275578063273123b71461029557806327a14fc2146102b7578063296f0a0c146102d757600080fd5b806306fdde03146101dd578063095ea7b31461022057806318160ddd1461025057600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600881526725bab5bab635b0b760c11b60208201525b604051610217919061249a565b60405180910390f35b34801561022c57600080fd5b5061024061023b3660046122cf565b6105ee565b6040519015158152602001610217565b34801561025c57600080fd5b50678ac7230489e800005b604051908152602001610217565b34801561028157600080fd5b5061024061029036600461228f565b610605565b3480156102a157600080fd5b506102b56102b036600461221f565b61066e565b005b3480156102c357600080fd5b506102b56102d23660046123f9565b6106c2565b3480156102e357600080fd5b506102b56102f236600461221f565b6106f1565b34801561030357600080fd5b5060405160098152602001610217565b34801561031f57600080fd5b506102b561032e36600461221f565b6107cd565b34801561033f57600080fd5b506102b561034e3660046123c1565b61081b565b34801561035f57600080fd5b506102b561036e36600461221f565b610863565b34801561037f57600080fd5b506102b561038e366004612411565b61093f565b34801561039f57600080fd5b506102b56109ce565b3480156103b457600080fd5b506102676103c336600461221f565b6001600160a01b031660009081526002602052604090205490565b3480156103ea57600080fd5b506102b5610a05565b3480156103ff57600080fd5b506000546040516001600160a01b039091168152602001610217565b34801561042757600080fd5b5060408051808201909152600581526412d552d55360da1b602082015261020a565b34801561045557600080fd5b506102406104643660046122cf565b610a79565b34801561047557600080fd5b506102b56104843660046123f9565b610a86565b34801561049557600080fd5b506102b56104a43660046122fa565b610b9c565b3480156104b557600080fd5b506102b5610c40565b3480156104ca57600080fd5b506102b5610c83565b3480156104df57600080fd5b506102676104ee366004612257565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561052557600080fd5b506102b56105343660046123c1565b611056565b34801561054557600080fd5b506102b56105543660046123f9565b61109e565b34801561056557600080fd5b506102b56105743660046123f9565b6110cd565b34801561058557600080fd5b506102b561059436600461221f565b6110fc565b3480156105a557600080fd5b506102b56105b43660046123f9565b611147565b3480156105c557600080fd5b506102b5611176565b3480156105da57600080fd5b506102b56105e9366004612411565b61125b565b60006105fb3384846112ea565b5060015b92915050565b600061061284848461140f565b610664843361065f8560405180606001604052806028815260200161266b602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906119a8565b6112ea565b5060019392505050565b6000546001600160a01b031633146106a15760405162461bcd60e51b8152600401610698906124ed565b60405180910390fd5b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b031633146106ec5760405162461bcd60e51b8152600401610698906124ed565b601955565b6000546001600160a01b0316331461071b5760405162461bcd60e51b8152600401610698906124ed565b6001600160a01b03811661077d5760405162461bcd60e51b815260206004820152602360248201527f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260448201526206520360ec1b6064820152608401610698565b601280546001600160a01b03908116600090815260046020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b031633146107f75760405162461bcd60e51b8152600401610698906124ed565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146108455760405162461bcd60e51b8152600401610698906124ed565b60148054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b0316331461088d5760405162461bcd60e51b8152600401610698906124ed565b6001600160a01b0381166108ef5760405162461bcd60e51b815260206004820152602360248201527f4d61726b6574696e6757616c6c657420616464726573732063616e6e6f74206260448201526206520360ec1b6064820152608401610698565b601180546001600160a01b03908116600090815260046020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b031633146109695760405162461bcd60e51b8152600401610698906124ed565b60066109758284612592565b11156109c35760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b6565702073656c6c2074617865732062656c6f772036250000006044820152606401610698565b600b91909155600d55565b6000546001600160a01b031633146109f85760405162461bcd60e51b8152600401610698906124ed565b47610a02816119e2565b50565b6000546001600160a01b03163314610a2f5760405162461bcd60e51b8152600401610698906124ed565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006105fb33848461140f565b6000546001600160a01b03163314610ab05760405162461bcd60e51b8152600401610698906124ed565b64e8d4a51000811015610b235760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610698565b6611c37937e08000811115610b975760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610698565b601a55565b6000546001600160a01b03163314610bc65760405162461bcd60e51b8152600401610698906124ed565b60005b8151811015610c3c57600160056000848481518110610bf857634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c3481612600565b915050610bc9565b5050565b6000546001600160a01b03163314610c6a5760405162461bcd60e51b8152600401610698906124ed565b30600090815260026020526040902054610a0281611a1c565b6000546001600160a01b03163314610cad5760405162461bcd60e51b8152600401610698906124ed565b601454600160a01b900460ff1615610d075760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610698565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610d433082678ac7230489e800006112ea565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7c57600080fd5b505afa158015610d90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db4919061223b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dfc57600080fd5b505afa158015610e10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e34919061223b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610e7c57600080fd5b505af1158015610e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb4919061223b565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610efc816001600160a01b031660009081526002602052604090205490565b600080610f116000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610f339695949392919061245f565b6060604051808303818588803b158015610f4c57600080fd5b505af1158015610f60573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f859190612432565b50506014805466b1a2bc2ec50000601781905560185567016345785d8a00006019556611c37937e08000601a5564ffff0000ff60a01b19811664010100000160a01b179091554360155560135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561101e57600080fd5b505af1158015611032573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c91906123dd565b6000546001600160a01b031633146110805760405162461bcd60e51b8152600401610698906124ed565b60148054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b031633146110c85760405162461bcd60e51b8152600401610698906124ed565b601655565b6000546001600160a01b031633146110f75760405162461bcd60e51b8152600401610698906124ed565b601855565b6000546001600160a01b031633146111265760405162461bcd60e51b8152600401610698906124ed565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146111715760405162461bcd60e51b8152600401610698906124ed565b601755565b6000546001600160a01b031633146111a05760405162461bcd60e51b8152600401610698906124ed565b601454600160a01b900460ff161561120e5760405162461bcd60e51b815260206004820152602b60248201527f43616e206f6e6c792077697468647261772069662074726164696e672068617360448201526a1b89dd081cdd185c9d195960aa1b6064820152608401610698565b604051600090339047908381818185875af1925050503d8060008114611250576040519150601f19603f3d011682016040523d82523d6000602084013e611255565b606091505b50505050565b6000546001600160a01b031633146112855760405162461bcd60e51b8152600401610698906124ed565b60066112918284612592565b11156112df5760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b656570206275792074617865732062656c6f77203625000000006044820152606401610698565b600791909155600955565b6001600160a01b03831661134c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610698565b6001600160a01b0382166113ad5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610698565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166114735760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610698565b6001600160a01b0382166114d55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610698565b600081116115375760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610698565b60008061154c6000546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561157b57506000546001600160a01b03858116911614155b801561158f57506001600160a01b03841615155b80156115a657506001600160a01b03841661dead14155b80156115bc5750601454600160a81b900460ff16155b15611881576001600160a01b03851660009081526005602052604090205460ff1615801561160357506001600160a01b03841660009081526005602052604090205460ff16155b61160c57600080fd5b601454600192506001600160a01b03868116911614801561163b57506013546001600160a01b03858116911614155b801561166057506001600160a01b03841660009081526004602052604090205460ff16155b80156116755750601454600160c01b900460ff165b156117ae576017548311156116de5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178426044820152683abca0b6b7bab73a1760b91b6064820152608401610698565b60195483611701866001600160a01b031660009081526002602052604090205490565b61170b9190612592565b11156117655760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610698565b6001600160a01b038416600090815260066020526040902054421161178957600080fd5b61179442601e612592565b6001600160a01b0385166000908152600660205260409020555b6014546001600160a01b0385811691161480156117d957506013546001600160a01b03868116911614155b80156117fe57506001600160a01b03851660009081526004602052604090205460ff16155b80156118135750601454600160c01b900460ff165b156118815760185483111561187d5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785360448201526932b63620b6b7bab73a1760b11b6064820152608401610698565b5060015b6001600160a01b03851660009081526004602052604090205460ff16806118c057506001600160a01b03841660009081526004602052604090205460ff165b156118ca57600091505b3060009081526002602052604081205490506000601a54821180156118ec5750825b90508080156119045750601454600160b81b900460ff165b801561191a5750601454600160a81b900460ff16155b801561193f57506001600160a01b03871660009081526004602052604090205460ff16155b801561196457506001600160a01b03861660009081526004602052604090205460ff16155b15611992576014805460ff60a81b1916600160a81b179055611984611bc1565b6014805460ff60a81b191690555b61199f8787878787611d70565b50505050505050565b600081848411156119cc5760405162461bcd60e51b8152600401610698919061249a565b5060006119d984866125e9565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610c3c573d6000803e3d6000fd5b6014805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611a7257634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611ac657600080fd5b505afa158015611ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afe919061223b565b81600181518110611b1f57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601354611b4591309116846112ea565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b7e908590600090869030904290600401612522565b600060405180830381600087803b158015611b9857600080fd5b505af1158015611bac573d6000803e3d6000fd5b50506014805460ff60b01b1916905550505050565b3060009081526002602052604081205490506000600f54601054611be59190612592565b90506000821580611bf4575081155b15611bfe57505050565b601a54611c0c90600a6125ca565b831115611c2457601a54611c2190600a6125ca565b92505b600060028360105486611c3791906125ca565b611c4191906125aa565b611c4b91906125aa565b90506000611c598583611dc4565b905047611c6582611a1c565b6000611c714783611dc4565b90506000611c9487611c8e600f5485611e0d90919063ffffffff16565b90611e8c565b90506000611ca282846125e9565b60006010819055600f5590508515801590611cbd5750600081115b15611d1057611ccc8682611ece565b601054604080518781526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6011546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611d5d576040519150601f19603f3d011682016040523d82523d6000602084013e611d62565b606091505b505050505050505050505050565b81611d8257611d7d611f78565b611d90565b611d8d858483611fd3565b92505b611d9b8585856120b4565b81611dbd57611dbd600854600755600a54600955600c54600b55600e54600d55565b5050505050565b6000611e0683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119a8565b9392505050565b600082611e1c575060006105ff565b6000611e2883856125ca565b905082611e3585836125aa565b14611e065760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610698565b6000611e0683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061215a565b601354611ee69030906001600160a01b0316846112ea565b60135460125460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611f26923092899260009283921690429060040161245f565b6060604051808303818588803b158015611f3f57600080fd5b505af1158015611f53573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dbd9190612432565b600754158015611f885750600954155b8015611f945750600b54155b8015611fa05750600d54155b15611fa757565b6007805460085560098054600a55600b8054600c55600d8054600e556000938490559183905582905555565b60008060008043601654601554611fea9190612592565b10611ffc576063925060639150612023565b61200585612188565b9250841561201a575050600b54600d54612023565b50506007546009545b60006120346064611c8e8987611e0d565b90508361204184836125ca565b61204b91906125aa565b600f600082825461205c9190612592565b9091555084905061206d83836125ca565b61207791906125aa565b601060008282546120889190612592565b9091555050801561209e5761209e8830836120b4565b6120a881886125e9565b98975050505050505050565b6001600160a01b0383166000908152600260205260409020546120d79082611dc4565b6001600160a01b03808516600090815260026020526040808220939093559084168152205461210690826121b0565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114029085815260200190565b6000818361217b5760405162461bcd60e51b8152600401610698919061249a565b5060006119d984866125aa565b600081156121a057600d54600b546105ff9190612592565b6009546007546105ff9190612592565b6000806121bd8385612592565b905083811015611e065760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610698565b803561221a81612647565b919050565b600060208284031215612230578081fd5b8135611e0681612647565b60006020828403121561224c578081fd5b8151611e0681612647565b60008060408385031215612269578081fd5b823561227481612647565b9150602083013561228481612647565b809150509250929050565b6000806000606084860312156122a3578081fd5b83356122ae81612647565b925060208401356122be81612647565b929592945050506040919091013590565b600080604083850312156122e1578182fd5b82356122ec81612647565b946020939093013593505050565b6000602080838503121561230c578182fd5b823567ffffffffffffffff80821115612323578384fd5b818501915085601f830112612336578384fd5b81358181111561234857612348612631565b8060051b604051601f19603f8301168101818110858211171561236d5761236d612631565b604052828152858101935084860182860187018a101561238b578788fd5b8795505b838610156123b4576123a08161220f565b85526001959095019493860193860161238f565b5098975050505050505050565b6000602082840312156123d2578081fd5b8135611e068161265c565b6000602082840312156123ee578081fd5b8151611e068161265c565b60006020828403121561240a578081fd5b5035919050565b60008060408385031215612423578182fd5b50508035926020909101359150565b600080600060608486031215612446578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6000602080835283518082850152825b818110156124c6578581018301518582016040015282016124aa565b818111156124d75783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156125715784516001600160a01b03168352938301939183019160010161254c565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156125a5576125a561261b565b500190565b6000826125c557634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156125e4576125e461261b565b500290565b6000828210156125fb576125fb61261b565b500390565b60006000198214156126145761261461261b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a0257600080fd5b8015158114610a0257600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122081045119336a0a17cb33efa0df5e2c20bdfa1c7bb6659583090d9ee7e51ef6e564736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80638da5cb5b116100f7578063dd62ed3e11610095578063ea2f0b3711610064578063ea2f0b3714610579578063f34eb0b814610599578063f5648a4f146105b9578063fb0ecfa4146105ce57600080fd5b8063dd62ed3e146104d3578063e01af92c14610519578063e6f7ef4d14610539578063e99c9d091461055957600080fd5b8063afa4f3b2116100d1578063afa4f3b214610469578063b515566a14610489578063c3c8cd80146104a9578063c9567bf9146104be57600080fd5b80638da5cb5b146103f357806395d89b411461041b578063a9059cbb1461044957600080fd5b8063313ce5671161016f5780636ac9a8701161013e5780636ac9a870146103735780636fc3eaec1461039357806370a08231146103a8578063715018a6146103de57600080fd5b8063313ce567146102f7578063437823ec146103135780635932ead1146103335780635d098b381461035357600080fd5b806323b872dd116101ab57806323b872dd14610275578063273123b71461029557806327a14fc2146102b7578063296f0a0c146102d757600080fd5b806306fdde03146101dd578063095ea7b31461022057806318160ddd1461025057600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600881526725bab5bab635b0b760c11b60208201525b604051610217919061249a565b60405180910390f35b34801561022c57600080fd5b5061024061023b3660046122cf565b6105ee565b6040519015158152602001610217565b34801561025c57600080fd5b50678ac7230489e800005b604051908152602001610217565b34801561028157600080fd5b5061024061029036600461228f565b610605565b3480156102a157600080fd5b506102b56102b036600461221f565b61066e565b005b3480156102c357600080fd5b506102b56102d23660046123f9565b6106c2565b3480156102e357600080fd5b506102b56102f236600461221f565b6106f1565b34801561030357600080fd5b5060405160098152602001610217565b34801561031f57600080fd5b506102b561032e36600461221f565b6107cd565b34801561033f57600080fd5b506102b561034e3660046123c1565b61081b565b34801561035f57600080fd5b506102b561036e36600461221f565b610863565b34801561037f57600080fd5b506102b561038e366004612411565b61093f565b34801561039f57600080fd5b506102b56109ce565b3480156103b457600080fd5b506102676103c336600461221f565b6001600160a01b031660009081526002602052604090205490565b3480156103ea57600080fd5b506102b5610a05565b3480156103ff57600080fd5b506000546040516001600160a01b039091168152602001610217565b34801561042757600080fd5b5060408051808201909152600581526412d552d55360da1b602082015261020a565b34801561045557600080fd5b506102406104643660046122cf565b610a79565b34801561047557600080fd5b506102b56104843660046123f9565b610a86565b34801561049557600080fd5b506102b56104a43660046122fa565b610b9c565b3480156104b557600080fd5b506102b5610c40565b3480156104ca57600080fd5b506102b5610c83565b3480156104df57600080fd5b506102676104ee366004612257565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561052557600080fd5b506102b56105343660046123c1565b611056565b34801561054557600080fd5b506102b56105543660046123f9565b61109e565b34801561056557600080fd5b506102b56105743660046123f9565b6110cd565b34801561058557600080fd5b506102b561059436600461221f565b6110fc565b3480156105a557600080fd5b506102b56105b43660046123f9565b611147565b3480156105c557600080fd5b506102b5611176565b3480156105da57600080fd5b506102b56105e9366004612411565b61125b565b60006105fb3384846112ea565b5060015b92915050565b600061061284848461140f565b610664843361065f8560405180606001604052806028815260200161266b602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906119a8565b6112ea565b5060019392505050565b6000546001600160a01b031633146106a15760405162461bcd60e51b8152600401610698906124ed565b60405180910390fd5b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b031633146106ec5760405162461bcd60e51b8152600401610698906124ed565b601955565b6000546001600160a01b0316331461071b5760405162461bcd60e51b8152600401610698906124ed565b6001600160a01b03811661077d5760405162461bcd60e51b815260206004820152602360248201527f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260448201526206520360ec1b6064820152608401610698565b601280546001600160a01b03908116600090815260046020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b031633146107f75760405162461bcd60e51b8152600401610698906124ed565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146108455760405162461bcd60e51b8152600401610698906124ed565b60148054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b0316331461088d5760405162461bcd60e51b8152600401610698906124ed565b6001600160a01b0381166108ef5760405162461bcd60e51b815260206004820152602360248201527f4d61726b6574696e6757616c6c657420616464726573732063616e6e6f74206260448201526206520360ec1b6064820152608401610698565b601180546001600160a01b03908116600090815260046020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b031633146109695760405162461bcd60e51b8152600401610698906124ed565b60066109758284612592565b11156109c35760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b6565702073656c6c2074617865732062656c6f772036250000006044820152606401610698565b600b91909155600d55565b6000546001600160a01b031633146109f85760405162461bcd60e51b8152600401610698906124ed565b47610a02816119e2565b50565b6000546001600160a01b03163314610a2f5760405162461bcd60e51b8152600401610698906124ed565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006105fb33848461140f565b6000546001600160a01b03163314610ab05760405162461bcd60e51b8152600401610698906124ed565b64e8d4a51000811015610b235760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610698565b6611c37937e08000811115610b975760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610698565b601a55565b6000546001600160a01b03163314610bc65760405162461bcd60e51b8152600401610698906124ed565b60005b8151811015610c3c57600160056000848481518110610bf857634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c3481612600565b915050610bc9565b5050565b6000546001600160a01b03163314610c6a5760405162461bcd60e51b8152600401610698906124ed565b30600090815260026020526040902054610a0281611a1c565b6000546001600160a01b03163314610cad5760405162461bcd60e51b8152600401610698906124ed565b601454600160a01b900460ff1615610d075760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610698565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610d433082678ac7230489e800006112ea565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7c57600080fd5b505afa158015610d90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db4919061223b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dfc57600080fd5b505afa158015610e10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e34919061223b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610e7c57600080fd5b505af1158015610e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb4919061223b565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610efc816001600160a01b031660009081526002602052604090205490565b600080610f116000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610f339695949392919061245f565b6060604051808303818588803b158015610f4c57600080fd5b505af1158015610f60573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f859190612432565b50506014805466b1a2bc2ec50000601781905560185567016345785d8a00006019556611c37937e08000601a5564ffff0000ff60a01b19811664010100000160a01b179091554360155560135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561101e57600080fd5b505af1158015611032573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c91906123dd565b6000546001600160a01b031633146110805760405162461bcd60e51b8152600401610698906124ed565b60148054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b031633146110c85760405162461bcd60e51b8152600401610698906124ed565b601655565b6000546001600160a01b031633146110f75760405162461bcd60e51b8152600401610698906124ed565b601855565b6000546001600160a01b031633146111265760405162461bcd60e51b8152600401610698906124ed565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146111715760405162461bcd60e51b8152600401610698906124ed565b601755565b6000546001600160a01b031633146111a05760405162461bcd60e51b8152600401610698906124ed565b601454600160a01b900460ff161561120e5760405162461bcd60e51b815260206004820152602b60248201527f43616e206f6e6c792077697468647261772069662074726164696e672068617360448201526a1b89dd081cdd185c9d195960aa1b6064820152608401610698565b604051600090339047908381818185875af1925050503d8060008114611250576040519150601f19603f3d011682016040523d82523d6000602084013e611255565b606091505b50505050565b6000546001600160a01b031633146112855760405162461bcd60e51b8152600401610698906124ed565b60066112918284612592565b11156112df5760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b656570206275792074617865732062656c6f77203625000000006044820152606401610698565b600791909155600955565b6001600160a01b03831661134c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610698565b6001600160a01b0382166113ad5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610698565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166114735760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610698565b6001600160a01b0382166114d55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610698565b600081116115375760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610698565b60008061154c6000546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561157b57506000546001600160a01b03858116911614155b801561158f57506001600160a01b03841615155b80156115a657506001600160a01b03841661dead14155b80156115bc5750601454600160a81b900460ff16155b15611881576001600160a01b03851660009081526005602052604090205460ff1615801561160357506001600160a01b03841660009081526005602052604090205460ff16155b61160c57600080fd5b601454600192506001600160a01b03868116911614801561163b57506013546001600160a01b03858116911614155b801561166057506001600160a01b03841660009081526004602052604090205460ff16155b80156116755750601454600160c01b900460ff165b156117ae576017548311156116de5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178426044820152683abca0b6b7bab73a1760b91b6064820152608401610698565b60195483611701866001600160a01b031660009081526002602052604090205490565b61170b9190612592565b11156117655760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610698565b6001600160a01b038416600090815260066020526040902054421161178957600080fd5b61179442601e612592565b6001600160a01b0385166000908152600660205260409020555b6014546001600160a01b0385811691161480156117d957506013546001600160a01b03868116911614155b80156117fe57506001600160a01b03851660009081526004602052604090205460ff16155b80156118135750601454600160c01b900460ff165b156118815760185483111561187d5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785360448201526932b63620b6b7bab73a1760b11b6064820152608401610698565b5060015b6001600160a01b03851660009081526004602052604090205460ff16806118c057506001600160a01b03841660009081526004602052604090205460ff165b156118ca57600091505b3060009081526002602052604081205490506000601a54821180156118ec5750825b90508080156119045750601454600160b81b900460ff165b801561191a5750601454600160a81b900460ff16155b801561193f57506001600160a01b03871660009081526004602052604090205460ff16155b801561196457506001600160a01b03861660009081526004602052604090205460ff16155b15611992576014805460ff60a81b1916600160a81b179055611984611bc1565b6014805460ff60a81b191690555b61199f8787878787611d70565b50505050505050565b600081848411156119cc5760405162461bcd60e51b8152600401610698919061249a565b5060006119d984866125e9565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610c3c573d6000803e3d6000fd5b6014805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611a7257634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611ac657600080fd5b505afa158015611ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afe919061223b565b81600181518110611b1f57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601354611b4591309116846112ea565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b7e908590600090869030904290600401612522565b600060405180830381600087803b158015611b9857600080fd5b505af1158015611bac573d6000803e3d6000fd5b50506014805460ff60b01b1916905550505050565b3060009081526002602052604081205490506000600f54601054611be59190612592565b90506000821580611bf4575081155b15611bfe57505050565b601a54611c0c90600a6125ca565b831115611c2457601a54611c2190600a6125ca565b92505b600060028360105486611c3791906125ca565b611c4191906125aa565b611c4b91906125aa565b90506000611c598583611dc4565b905047611c6582611a1c565b6000611c714783611dc4565b90506000611c9487611c8e600f5485611e0d90919063ffffffff16565b90611e8c565b90506000611ca282846125e9565b60006010819055600f5590508515801590611cbd5750600081115b15611d1057611ccc8682611ece565b601054604080518781526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6011546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611d5d576040519150601f19603f3d011682016040523d82523d6000602084013e611d62565b606091505b505050505050505050505050565b81611d8257611d7d611f78565b611d90565b611d8d858483611fd3565b92505b611d9b8585856120b4565b81611dbd57611dbd600854600755600a54600955600c54600b55600e54600d55565b5050505050565b6000611e0683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119a8565b9392505050565b600082611e1c575060006105ff565b6000611e2883856125ca565b905082611e3585836125aa565b14611e065760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610698565b6000611e0683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061215a565b601354611ee69030906001600160a01b0316846112ea565b60135460125460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611f26923092899260009283921690429060040161245f565b6060604051808303818588803b158015611f3f57600080fd5b505af1158015611f53573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dbd9190612432565b600754158015611f885750600954155b8015611f945750600b54155b8015611fa05750600d54155b15611fa757565b6007805460085560098054600a55600b8054600c55600d8054600e556000938490559183905582905555565b60008060008043601654601554611fea9190612592565b10611ffc576063925060639150612023565b61200585612188565b9250841561201a575050600b54600d54612023565b50506007546009545b60006120346064611c8e8987611e0d565b90508361204184836125ca565b61204b91906125aa565b600f600082825461205c9190612592565b9091555084905061206d83836125ca565b61207791906125aa565b601060008282546120889190612592565b9091555050801561209e5761209e8830836120b4565b6120a881886125e9565b98975050505050505050565b6001600160a01b0383166000908152600260205260409020546120d79082611dc4565b6001600160a01b03808516600090815260026020526040808220939093559084168152205461210690826121b0565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114029085815260200190565b6000818361217b5760405162461bcd60e51b8152600401610698919061249a565b5060006119d984866125aa565b600081156121a057600d54600b546105ff9190612592565b6009546007546105ff9190612592565b6000806121bd8385612592565b905083811015611e065760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610698565b803561221a81612647565b919050565b600060208284031215612230578081fd5b8135611e0681612647565b60006020828403121561224c578081fd5b8151611e0681612647565b60008060408385031215612269578081fd5b823561227481612647565b9150602083013561228481612647565b809150509250929050565b6000806000606084860312156122a3578081fd5b83356122ae81612647565b925060208401356122be81612647565b929592945050506040919091013590565b600080604083850312156122e1578182fd5b82356122ec81612647565b946020939093013593505050565b6000602080838503121561230c578182fd5b823567ffffffffffffffff80821115612323578384fd5b818501915085601f830112612336578384fd5b81358181111561234857612348612631565b8060051b604051601f19603f8301168101818110858211171561236d5761236d612631565b604052828152858101935084860182860187018a101561238b578788fd5b8795505b838610156123b4576123a08161220f565b85526001959095019493860193860161238f565b5098975050505050505050565b6000602082840312156123d2578081fd5b8135611e068161265c565b6000602082840312156123ee578081fd5b8151611e068161265c565b60006020828403121561240a578081fd5b5035919050565b60008060408385031215612423578182fd5b50508035926020909101359150565b600080600060608486031215612446578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6000602080835283518082850152825b818110156124c6578581018301518582016040015282016124aa565b818111156124d75783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156125715784516001600160a01b03168352938301939183019160010161254c565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156125a5576125a561261b565b500190565b6000826125c557634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156125e4576125e461261b565b500290565b6000828210156125fb576125fb61261b565b500390565b60006000198214156126145761261461261b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a0257600080fd5b8015158114610a0257600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122081045119336a0a17cb33efa0df5e2c20bdfa1c7bb6659583090d9ee7e51ef6e564736f6c63430008040033

Deployed Bytecode Sourcemap

3578:15749:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6243:83;;;;;;;;;;-1:-1:-1;6313:5:0;;;;;;;;;;;;-1:-1:-1;;;6313:5:0;;;;6243:83;;;;;;;:::i;:::-;;;;;;;;7074:161;;;;;;;;;;-1:-1:-1;7074:161:0;;;;;:::i;:::-;;:::i;:::-;;;6765:14:1;;6758:22;6740:41;;6728:2;6713:18;7074:161:0;6695:92:1;6520:95:0;;;;;;;;;;-1:-1:-1;3979:12:0;6520:95;;;15049:25:1;;;15037:2;15022:18;6520:95:0;15004:76:1;7243:313:0;;;;;;;;;;-1:-1:-1;7243:313:0;;;;;:::i;:::-;;:::i;16745:88::-;;;;;;;;;;-1:-1:-1;16745:88:0;;;;;:::i;:::-;;:::i;:::-;;13873:109;;;;;;;;;;-1:-1:-1;13873:109:0;;;;;:::i;:::-;;:::i;14660:331::-;;;;;;;;;;-1:-1:-1;14660:331:0;;;;;:::i;:::-;;:::i;6429:83::-;;;;;;;;;;-1:-1:-1;6429:83:0;;4770:1;16539:36:1;;16527:2;16512:18;6429:83:0;16494:87:1;14999:111:0;;;;;;;;;;-1:-1:-1;14999:111:0;;;;;:::i;:::-;;:::i;7564:103::-;;;;;;;;;;-1:-1:-1;7564:103:0;;;;;:::i;:::-;;:::i;14319:331::-;;;;;;;;;;-1:-1:-1;14319:331:0;;;;;:::i;:::-;;:::i;15524:286::-;;;;;;;;;;-1:-1:-1;15524:286:0;;;;;:::i;:::-;;:::i;18696:153::-;;;;;;;;;;;;;:::i;6623:117::-;;;;;;;;;;-1:-1:-1;6623:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6716:16:0;6689:7;6716:16;;;:7;:16;;;;;;;6623:117;2657:148;;;;;;;;;;;;;:::i;2443:79::-;;;;;;;;;;-1:-1:-1;2481:7:0;2508:6;2443:79;;-1:-1:-1;;;;;2508:6:0;;;4718:51:1;;4706:2;4691:18;2443:79:0;4673:102:1;6334:87:0;;;;;;;;;;-1:-1:-1;6406:7:0;;;;;;;;;;;;-1:-1:-1;;;6406:7:0;;;;6334:87;;6748:167;;;;;;;;;;-1:-1:-1;6748:167:0;;;;;:::i;:::-;;:::i;13994:317::-;;;;;;;;;;-1:-1:-1;13994:317:0;;;;;:::i;:::-;;:::i;13479:164::-;;;;;;;;;;-1:-1:-1;13479:164:0;;;;;:::i;:::-;;:::i;18530:154::-;;;;;;;;;;;;;:::i;12491:976::-;;;;;;;;;;;;;:::i;6923:143::-;;;;;;;;;;-1:-1:-1;6923:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7031:18:0;;;7004:7;7031:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6923:143;7675:94;;;;;;;;;;-1:-1:-1;7675:94:0;;;;;:::i;:::-;;:::i;15818:108::-;;;;;;;;;;-1:-1:-1;15818:108:0;;;;;:::i;:::-;;:::i;13758:103::-;;;;;;;;;;-1:-1:-1;13758:103:0;;;;;:::i;:::-;;:::i;15122:110::-;;;;;;;;;;-1:-1:-1;15122:110:0;;;;;:::i;:::-;;:::i;13651:99::-;;;;;;;;;;-1:-1:-1;13651:99:0;;;;;:::i;:::-;;:::i;18857:239::-;;;;;;;;;;;;;:::i;15240:276::-;;;;;;;;;;-1:-1:-1;15240:276:0;;;;;:::i;:::-;;:::i;7074:161::-;7149:4;7166:39;241:10;7189:7;7198:6;7166:8;:39::i;:::-;-1:-1:-1;7223:4:0;7074:161;;;;;:::o;7243:313::-;7341:4;7358:36;7368:6;7376:9;7387:6;7358:9;:36::i;:::-;7405:121;7414:6;241:10;7436:89;7474:6;7436:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7436:19:0;;;;;;:11;:19;;;;;;;;241:10;7436:33;;;;;;;;;;:37;:89::i;:::-;7405:8;:121::i;:::-;-1:-1:-1;7544:4:0;7243:313;;;;;:::o;16745:88::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;16805:12:0::1;16820:5;16805:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;16805:20:0::1;::::0;;16745:88::o;13873:109::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;13947:16:::1;:27:::0;13873:109::o;14660:331::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14751:29:0;::::1;14743:77;;;::::0;-1:-1:-1;;;14743:77:0;;12311:2:1;14743:77:0::1;::::0;::::1;12293:21:1::0;12350:2;12330:18;;;12323:30;12389:34;12369:18;;;12362:62;-1:-1:-1;;;12440:18:1;;;12433:33;12483:19;;14743:77:0::1;12283:225:1::0;14743:77:0::1;14850:16;::::0;;-1:-1:-1;;;;;14850:16:0;;::::1;14870:5;14831:36:::0;;;:18:::1;:36;::::0;;;;;:44;;-1:-1:-1;;14831:44:0;;::::1;::::0;;;14886:43;;-1:-1:-1;;;;;;14886:43:0::1;::::0;;;::::1;::::0;;::::1;::::0;;;14940:36;;;;;:43;;;;::::1;-1:-1:-1::0;14940:43:0::1;::::0;;14660:331::o;14999:111::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15068:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;15068:34:0::1;15098:4;15068:34;::::0;;14999:111::o;7564:103::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;7636:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;7636:23:0::1;-1:-1:-1::0;;;;7636:23:0;;::::1;::::0;;;::::1;::::0;;7564:103::o;14319:331::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14410:29:0;::::1;14402:77;;;::::0;-1:-1:-1;;;14402:77:0;;14289:2:1;14402:77:0::1;::::0;::::1;14271:21:1::0;14328:2;14308:18;;;14301:30;14367:34;14347:18;;;14340:62;-1:-1:-1;;;14418:18:1;;;14411:33;14461:19;;14402:77:0::1;14261:225:1::0;14402:77:0::1;14509:16;::::0;;-1:-1:-1;;;;;14509:16:0;;::::1;14529:5;14490:36:::0;;;:18:::1;:36;::::0;;;;;:44;;-1:-1:-1;;14490:44:0;;::::1;::::0;;;14545:43;;-1:-1:-1;;;;;;14545:43:0::1;::::0;;;::::1;::::0;;::::1;::::0;;;14599:36;;;;;:43;;;;::::1;-1:-1:-1::0;14599:43:0::1;::::0;;14319:331::o;15524:286::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;15673:1:::1;15634:35;15653:16:::0;15634;:35:::1;:::i;:::-;:40;;15626:82;;;::::0;-1:-1:-1;;;15626:82:0;;10780:2:1;15626:82:0::1;::::0;::::1;10762:21:1::0;10819:2;10799:18;;;10792:30;10858:31;10838:18;;;10831:59;10907:18;;15626:82:0::1;10752:179:1::0;15626:82:0::1;15719:17;:36:::0;;;;15766:17:::1;:36:::0;15524:286::o;18696:153::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;18777:21:::1;18809:32;18777:21:::0;18809:12:::1;:32::i;:::-;2640:1;18696:153::o:0;2657:148::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;2764:1:::1;2748:6:::0;;2727:40:::1;::::0;-1:-1:-1;;;;;2748:6:0;;::::1;::::0;2727:40:::1;::::0;2764:1;;2727:40:::1;2795:1;2778:19:::0;;-1:-1:-1;;;;;;2778:19:0::1;::::0;;2657:148::o;6748:167::-;6826:4;6843:42;241:10;6867:9;6878:6;6843:9;:42::i;13994:317::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;14093:11:::1;14080:9;:24;;14072:90;;;::::0;-1:-1:-1;;;14072:90:0;;9122:2:1;14072:90:0::1;::::0;::::1;9104:21:1::0;9161:2;9141:18;;;9134:30;9200:34;9180:18;;;9173:62;-1:-1:-1;;;9251:18:1;;;9244:51;9312:19;;14072:90:0::1;9094:243:1::0;14072:90:0::1;14194:11;14181:9;:24;;14173:89;;;::::0;-1:-1:-1;;;14173:89:0;;9544:2:1;14173:89:0::1;::::0;::::1;9526:21:1::0;9583:2;9563:18;;;9556:30;9622:34;9602:18;;;9595:62;-1:-1:-1;;;9673:18:1;;;9666:50;9733:19;;14173:89:0::1;9516:242:1::0;14173:89:0::1;14273:18;:30:::0;13994:317::o;13479:164::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;13553:6:::1;13548:88;13569:5;:12;13565:1;:16;13548:88;;;13620:4;13603;:14;13608:5;13614:1;13608:8;;;;;;-1:-1:-1::0;;;13608:8:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13603:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13603:14:0;:21;;-1:-1:-1;;13603:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13583:3;::::1;::::0;::::1;:::i;:::-;;;;13548:88;;;;13479:164:::0;:::o;18530:154::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;18626:4:::1;18582:23;6716:16:::0;;;:7;:16;;;;;;18643:33:::1;6716:16:::0;18643::::1;:33::i;12491:976::-:0;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;12555:11:::1;::::0;-1:-1:-1;;;12555:11:0;::::1;;;12554:12;12546:47;;;::::0;-1:-1:-1;;;12546:47:0;;13526:2:1;12546:47:0::1;::::0;::::1;13508:21:1::0;13565:2;13545:18;;;13538:30;13604:25;13584:18;;;13577:53;13647:18;;12546:47:0::1;13498:173:1::0;12546:47:0::1;12715:15;:34:::0;;-1:-1:-1;;;;;;12715:34:0::1;12661:42;12715:34:::0;;::::1;::::0;;;12760:58:::1;12777:4;12661:42:::0;3979:12:::1;12760:8;:58::i;:::-;12863:16;-1:-1:-1::0;;;;;12863:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12845:56:0::1;;12910:4;12917:16;-1:-1:-1::0;;;;;12917:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12845:96;::::0;-1:-1:-1;;;;;;12845:96:0::1;::::0;;;;;;-1:-1:-1;;;;;5010:15:1;;;12845:96:0::1;::::0;::::1;4992:34:1::0;5062:15;;5042:18;;;5035:43;4927:18;;12845:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12829:13;:112:::0;;-1:-1:-1;;;;;12829:112:0;;::::1;-1:-1:-1::0;;;;;;12829:112:0;;::::1;;::::0;;12952:15:::1;::::0;::::1;:31;12991:21;13022:4;13028:24;13022:4:::0;-1:-1:-1;;;;;6716:16:0;6689:7;6716:16;;;:7;:16;;;;;;;6623:117;13028:24:::1;13053:1;13055::::0;13057:7:::1;2481::::0;2508:6;-1:-1:-1;;;;;2508:6:0;;2443:79;13057:7:::1;13065:15;12952:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13092:11:0::1;:18:::0;;13170:11:::1;13092;13154:27:::0;;;13121:15:::1;13192:28:::0;13250:11:::1;13231:16;:30:::0;13293:11:::1;13272:18;:32:::0;-1:-1:-1;;;;13315:18:0;;-1:-1:-1;;;13315:18:0;;;;13365:12:::1;13344:18;:33:::0;13426:15:::1;::::0;13388:71:::1;::::0;-1:-1:-1;;;13388:71:0;;-1:-1:-1;;;;;13426:15:0;;::::1;-1:-1:-1::0;13388:71:0;::::1;5263:51:1::0;-1:-1:-1;;5330:18:1;;;5323:34;13395:13:0;;;-1:-1:-1;13388:29:0::1;::::0;5236:18:1;;13388:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7675:94::-:0;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;7742:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;7742:19:0::1;-1:-1:-1::0;;;;7742:19:0;;::::1;::::0;;;::::1;::::0;;7675:94::o;15818:108::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;15892:17:::1;:26:::0;15818:108::o;13758:103::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;13829:14:::1;:24:::0;13758:103::o;15122:110::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15189:27:0::1;15219:5;15189:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;15189:35:0::1;::::0;;15122:110::o;13651:99::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;13720:13:::1;:22:::0;13651:99::o;18857:239::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;18924:11:::1;::::0;-1:-1:-1;;;18924:11:0;::::1;;;18923:12;18915:68;;;::::0;-1:-1:-1;;;18915:68:0;;14693:2:1;18915:68:0::1;::::0;::::1;14675:21:1::0;14732:2;14712:18;;;14705:30;14771:34;14751:18;;;14744:62;-1:-1:-1;;;14822:18:1;;;14815:41;14873:19;;18915:68:0::1;14665:233:1::0;18915:68:0::1;19030:58;::::0;18994:12:::1;::::0;19038:10:::1;::::0;19062:21:::1;::::0;18994:12;19030:58;18994:12;19030:58;19062:21;19038:10;19030:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;18857:239:0:o;15240:276::-;2570:6;;-1:-1:-1;;;;;2570:6:0;241:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;15384:1:::1;15347:33;15365:15:::0;15347;:33:::1;:::i;:::-;:38;;15339:79;;;::::0;-1:-1:-1;;;15339:79:0;;8409:2:1;15339:79:0::1;::::0;::::1;8391:21:1::0;8448:2;8428:18;;;8421:30;8487;8467:18;;;8460:58;8535:18;;15339:79:0::1;8381:178:1::0;15339:79:0::1;15429:16;:34:::0;;;;15474:16:::1;:34:::0;15240:276::o;7777:335::-;-1:-1:-1;;;;;7870:19:0;;7862:68;;;;-1:-1:-1;;;7862:68:0;;13121:2:1;7862:68:0;;;13103:21:1;13160:2;13140:18;;;13133:30;13199:34;13179:18;;;13172:62;-1:-1:-1;;;13250:18:1;;;13243:34;13294:19;;7862:68:0;13093:226:1;7862:68:0;-1:-1:-1;;;;;7949:21:0;;7941:68;;;;-1:-1:-1;;;7941:68:0;;8006:2:1;7941:68:0;;;7988:21:1;8045:2;8025:18;;;8018:30;8084:34;8064:18;;;8057:62;-1:-1:-1;;;8135:18:1;;;8128:32;8177:19;;7941:68:0;7978:224:1;7941:68:0;-1:-1:-1;;;;;8020:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8072:32;;15049:25:1;;;8072:32:0;;15022:18:1;8072:32:0;;;;;;;;7777:335;;;:::o;8120:1850::-;-1:-1:-1;;;;;8208:18:0;;8200:68;;;;-1:-1:-1;;;8200:68:0;;12715:2:1;8200:68:0;;;12697:21:1;12754:2;12734:18;;;12727:30;12793:34;12773:18;;;12766:62;-1:-1:-1;;;12844:18:1;;;12837:35;12889:19;;8200:68:0;12687:227:1;8200:68:0;-1:-1:-1;;;;;8287:16:0;;8279:64;;;;-1:-1:-1;;;8279:64:0;;7602:2:1;8279:64:0;;;7584:21:1;7641:2;7621:18;;;7614:30;7680:34;7660:18;;;7653:62;-1:-1:-1;;;7731:18:1;;;7724:33;7774:19;;8279:64:0;7574:225:1;8279:64:0;8371:1;8362:6;:10;8354:64;;;;-1:-1:-1;;;8354:64:0;;11901:2:1;8354:64:0;;;11883:21:1;11940:2;11920:18;;;11913:30;11979:34;11959:18;;;11952:62;-1:-1:-1;;;12030:18:1;;;12023:39;12079:19;;8354:64:0;11873:231:1;8354:64:0;8429:12;8460:15;8506:7;2481;2508:6;-1:-1:-1;;;;;2508:6:0;;2443:79;8506:7;-1:-1:-1;;;;;8498:15:0;:4;-1:-1:-1;;;;;8498:15:0;;;:32;;;;-1:-1:-1;2481:7:0;2508:6;-1:-1:-1;;;;;8517:13:0;;;2508:6;;8517:13;;8498:32;:52;;;;-1:-1:-1;;;;;;8534:16:0;;;;8498:52;:77;;;;-1:-1:-1;;;;;;8554:21:0;;8568:6;8554:21;;8498:77;:90;;;;-1:-1:-1;8580:8:0;;-1:-1:-1;;;8580:8:0;;;;8579:9;8498:90;8494:939;;;-1:-1:-1;;;;;8614:10:0;;;;;;:4;:10;;;;;;;;8613:11;:24;;;;-1:-1:-1;;;;;;8629:8:0;;;;;;:4;:8;;;;;;;;8628:9;8613:24;8605:33;;;;;;8696:13;;8665:4;;-1:-1:-1;;;;;;8688:21:0;;;8696:13;;8688:21;:55;;;;-1:-1:-1;8727:15:0;;-1:-1:-1;;;;;8713:30:0;;;8727:15;;8713:30;;8688:55;:82;;;;-1:-1:-1;;;;;;8748:22:0;;;;;;:18;:22;;;;;;;;8747:23;8688:82;:101;;;;-1:-1:-1;8774:15:0;;-1:-1:-1;;;8774:15:0;;;;8688:101;8684:451;;;8828:13;;8818:6;:23;;8810:77;;;;-1:-1:-1;;;8810:77:0;;10370:2:1;8810:77:0;;;10352:21:1;10409:2;10389:18;;;10382:30;10448:34;10428:18;;;10421:62;-1:-1:-1;;;10499:18:1;;;10492:39;10548:19;;8810:77:0;10342:231:1;8810:77:0;8940:16;;8930:6;8914:13;8924:2;-1:-1:-1;;;;;6716:16:0;6689:7;6716:16;;;:7;:16;;;;;;;6623:117;8914:13;:22;;;;:::i;:::-;:42;;8906:91;;;;-1:-1:-1;;;8906:91:0;;9965:2:1;8906:91:0;;;9947:21:1;10004:2;9984:18;;;9977:30;10043:34;10023:18;;;10016:62;-1:-1:-1;;;10094:18:1;;;10087:34;10138:19;;8906:91:0;9937:226:1;8906:91:0;-1:-1:-1;;;;;9024:12:0;;;;;;:8;:12;;;;;;9039:15;-1:-1:-1;9016:39:0;;;;;;9089:30;:15;9108:10;9089:30;:::i;:::-;-1:-1:-1;;;;;9074:12:0;;;;;;:8;:12;;;;;:45;8684:451;9173:13;;-1:-1:-1;;;;;9167:19:0;;;9173:13;;9167:19;:55;;;;-1:-1:-1;9206:15:0;;-1:-1:-1;;;;;9190:32:0;;;9206:15;;9190:32;;9167:55;:84;;;;-1:-1:-1;;;;;;9227:24:0;;;;;;:18;:24;;;;;;;;9226:25;9167:84;:103;;;;-1:-1:-1;9255:15:0;;-1:-1:-1;;;9255:15:0;;;;9167:103;9163:259;;;9309:14;;9299:6;:24;;9291:79;;;;-1:-1:-1;;;9291:79:0;;13878:2:1;9291:79:0;;;13860:21:1;13917:2;13897:18;;;13890:30;13956:34;13936:18;;;13929:62;-1:-1:-1;;;14007:18:1;;;14000:40;14057:19;;9291:79:0;13850:232:1;9291:79:0;-1:-1:-1;9402:4:0;9163:259;-1:-1:-1;;;;;9448:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;9476:22:0;;;;;;:18;:22;;;;;;;;9448:50;9445:97;;;9525:5;9515:15;;9445:97;9603:4;9554:28;6716:16;;;:7;:16;;;;;;9554:55;;9620:12;9659:18;;9636:20;:41;9635:57;;;;;9682:10;9635:57;9620:72;;9709:7;:22;;;;-1:-1:-1;9720:11:0;;-1:-1:-1;;;9720:11:0;;;;9709:22;:35;;;;-1:-1:-1;9736:8:0;;-1:-1:-1;;;9736:8:0;;;;9735:9;9709:35;:64;;;;-1:-1:-1;;;;;;9749:24:0;;;;;;:18;:24;;;;;;;;9748:25;9709:64;:91;;;;-1:-1:-1;;;;;;9778:22:0;;;;;;:18;:22;;;;;;;;9777:23;9709:91;9705:195;;;9817:8;:15;;-1:-1:-1;;;;9817:15:0;-1:-1:-1;;;9817:15:0;;;9847:10;:8;:10::i;:::-;9872:8;:16;;-1:-1:-1;;;;9872:16:0;;;9705:195;9912:50;9927:4;9932:2;9935:6;9942:7;9951:10;9912:14;:50::i;:::-;8120:1850;;;;;;;:::o;1298:190::-;1384:7;1420:12;1412:6;;;;1404:29;;;;-1:-1:-1;;;1404:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1444:9:0;1456:5;1460:1;1456;:5;:::i;:::-;1444:17;1298:190;-1:-1:-1;;;;;1298:190:0:o;12381:98::-;12438:16;;:33;;-1:-1:-1;;;;;12438:16:0;;;;:33;;;;;12464:6;;12438:16;:33;:16;:33;12464:6;12438:16;:33;;;;;;;;;;;;;;;;;;;11451:483;5631:6;:13;;-1:-1:-1;;;;5631:13:0;-1:-1:-1;;;5631:13:0;;;11553:16:::1;::::0;;11567:1:::1;11553:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11553:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11553:16:0::1;11529:40;;11598:4;11580;11585:1;11580:7;;;;;;-1:-1:-1::0;;;11580:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;11580:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11624:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11624:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11580:7;;11624:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11614:4;11619:1;11614:7;;;;;;-1:-1:-1::0;;;11614:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;11614:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11689:15:::1;::::0;11657:62:::1;::::0;11674:4:::1;::::0;11689:15:::1;11707:11:::0;11657:8:::1;:62::i;:::-;11730:15;::::0;:196:::1;::::0;-1:-1:-1;;;11730:196:0;;-1:-1:-1;;;;;11730:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11811:11;;11730:15:::1;::::0;11853:4;;11880::::1;::::0;11900:15:::1;::::0;11730:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5667:6:0;:14;;-1:-1:-1;;;;5667:14:0;;;-1:-1:-1;;;;11451:483:0:o;9978:1465::-;10061:4;10017:23;6716:16;;;:7;:16;;;;;;10017:50;;10078:25;10127:18;;10106;;:39;;;;:::i;:::-;10078:67;-1:-1:-1;10156:12:0;10192:20;;;:46;;-1:-1:-1;10216:22:0;;10192:46;10189:60;;;10241:7;;;9978:1465::o;10189:60::-;10282:18;;:23;;10303:2;10282:23;:::i;:::-;10264:15;:41;10261:114;;;10340:18;;:23;;10361:2;10340:23;:::i;:::-;10322:41;;10261:114;10444:23;10529:1;10509:17;10488:18;;10470:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;10444:86;-1:-1:-1;10541:26:0;10570:36;:15;10444:86;10570:19;:36::i;:::-;10541:65;-1:-1:-1;10655:21:0;10689:36;10541:65;10689:16;:36::i;:::-;10747:18;10768:44;:21;10794:17;10768:25;:44::i;:::-;10747:65;;10833:23;10859:57;10898:17;10859:34;10874:18;;10859:10;:14;;:34;;;;:::i;:::-;:38;;:57::i;:::-;10833:83;-1:-1:-1;10947:23:0;10973:28;10833:83;10973:10;:28;:::i;:::-;11053:1;11032:18;:22;;;11065:18;:22;10947:54;-1:-1:-1;11121:19:0;;;;;:42;;;11162:1;11144:15;:19;11121:42;11118:210;;;11179:46;11192:15;11209;11179:12;:46::i;:::-;11297:18;;11245:71;;;16275:25:1;;;16331:2;16316:18;;16309:34;;;16359:18;;;16352:34;;;;11245:71:0;;;;;;16263:2:1;11245:71:0;;;11118:210;11379:16;;11371:64;;-1:-1:-1;;;;;11379:16:0;;;;11409:21;;11371:64;;;;11409:21;11379:16;11371:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;9978:1465:0:o;16849:389::-;16974:7;16970:129;;16998:14;:12;:14::i;:::-;16970:129;;;17054:33;17064:6;17072;17080;17054:9;:33::i;:::-;17045:42;;16970:129;17111:44;17129:6;17137:9;17148:6;17111:17;:44::i;:::-;17180:7;17176:55;;17204:15;16535:24;;16516:16;:43;16589:24;;16570:16;:43;16644:25;;16624:17;:45;16700:25;;16680:17;:45;16472:261;17204:15;16849:389;;;;;:::o;1154:136::-;1212:7;1239:43;1243:1;1246;1239:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1232:50;1154:136;-1:-1:-1;;;1154:136:0:o;1496:246::-;1554:7;1578:6;1574:47;;-1:-1:-1;1608:1:0;1601:8;;1574:47;1631:9;1643:5;1647:1;1643;:5;:::i;:::-;1631:17;-1:-1:-1;1676:1:0;1667:5;1671:1;1631:17;1667:5;:::i;:::-;:10;1659:56;;;;-1:-1:-1;;;1659:56:0;;11138:2:1;1659:56:0;;;11120:21:1;11177:2;11157:18;;;11150:30;11216:34;11196:18;;;11189:62;-1:-1:-1;;;11267:18:1;;;11260:31;11308:19;;1659:56:0;11110:223:1;1750:132:0;1808:7;1835:39;1839:1;1842;1835:39;;;;;;;;;;;;;;;;;:3;:39::i;11942:423::-;12055:15;;12023:62;;12040:4;;-1:-1:-1;;;;;12055:15:0;12073:11;12023:8;:62::i;:::-;12096:15;;12300:16;;12096:261;;-1:-1:-1;;;12096:261:0;;-1:-1:-1;;;;;12096:15:0;;;;:31;;12135:9;;12096:261;;12168:4;;12188:11;;12096:15;;;;12300:16;;12331:15;;12096:261;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15934:526::-;15980:16;;:21;:46;;;;-1:-1:-1;16005:16:0;;:21;15980:46;:72;;;;-1:-1:-1;16030:17:0;;:22;15980:72;:98;;;;-1:-1:-1;16056:17:0;;:22;15980:98;15977:110;;;15934:526::o;15977:110::-;16134:16;;;16107:24;:43;16188:16;;;16161:24;:43;16243:17;;;16215:25;:45;16299:17;;;16271:25;:45;-1:-1:-1;16337:20:0;;;;16368;;;;16399:21;;;16431;15934:526::o;17521:960::-;17602:7;17622:18;17651:15;17677:14;17747:12;17726:17;;17705:18;;:38;;;;:::i;:::-;:54;17702:438;;17788:2;17775:15;;17815:2;17805:12;;17702:438;;;17863:21;17877:6;17863:13;:21::i;:::-;17850:34;;17903:6;17899:230;;;-1:-1:-1;;17940:17:0;;17985;;17899:230;;;-1:-1:-1;;18053:16:0;;18097;;17899:230;18152:12;18167:31;18194:3;18167:22;:6;18178:10;18167;:22::i;:31::-;18152:46;-1:-1:-1;18248:10:0;18231:14;18238:7;18152:46;18231:14;:::i;:::-;:27;;;;:::i;:::-;18209:18;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;18307:10:0;;-1:-1:-1;18291:13:0;18298:6;18291:4;:13;:::i;:::-;:26;;;;:::i;:::-;18269:18;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;;18345:8:0;;18342:86;;18370:46;18388:6;18404:4;18411;18370:17;:46::i;:::-;18459:14;18469:4;18459:14;;:::i;:::-;;17521:960;-1:-1:-1;;;;;;;;17521:960:0:o;17246:267::-;-1:-1:-1;;;;;17362:15:0;;;;;;:7;:15;;;;;;:28;;17382:7;17362:19;:28::i;:::-;-1:-1:-1;;;;;17344:15:0;;;;;;;:7;:15;;;;;;:46;;;;17422:18;;;;;;;:31;;17445:7;17422:22;:31::i;:::-;-1:-1:-1;;;;;17401:18:0;;;;;;;:7;:18;;;;;;;:52;;;;17469:36;;;;;;;;;;17497:7;15049:25:1;;15037:2;15022:18;;15004:76;1890:189:0;1976:7;2011:12;2004:5;1996:28;;;;-1:-1:-1;;;1996:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2035:9:0;2047:5;2051:1;2047;:5;:::i;19104:220::-;19161:7;19185:6;19181:83;;;19235:17;;19215;;:37;;;;:::i;19181:83::-;19300:16;;19281;;:35;;;;:::i;967:179::-;1025:7;;1057:5;1061:1;1057;:5;:::i;:::-;1045:17;;1086:1;1081;:6;;1073:46;;;;-1:-1:-1;;;1073:46:0;;8766:2:1;1073:46:0;;;8748:21:1;8805:2;8785:18;;;8778:30;8844:29;8824:18;;;8817:57;8891:18;;1073:46:0;8738:177:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:257::-;212:6;265:2;253:9;244:7;240:23;236:32;233:2;;;286:6;278;271:22;233:2;330:9;317:23;349:31;374:5;349:31;:::i;415:261::-;485:6;538:2;526:9;517:7;513:23;509:32;506:2;;;559:6;551;544:22;506:2;596:9;590:16;615:31;640:5;615:31;:::i;681:398::-;749:6;757;810:2;798:9;789:7;785:23;781:32;778:2;;;831:6;823;816:22;778:2;875:9;862:23;894:31;919:5;894:31;:::i;:::-;944:5;-1:-1:-1;1001:2:1;986:18;;973:32;1014:33;973:32;1014:33;:::i;:::-;1066:7;1056:17;;;768:311;;;;;:::o;1084:466::-;1161:6;1169;1177;1230:2;1218:9;1209:7;1205:23;1201:32;1198:2;;;1251:6;1243;1236:22;1198:2;1295:9;1282:23;1314:31;1339:5;1314:31;:::i;:::-;1364:5;-1:-1:-1;1421:2:1;1406:18;;1393:32;1434:33;1393:32;1434:33;:::i;:::-;1188:362;;1486:7;;-1:-1:-1;;;1540:2:1;1525:18;;;;1512:32;;1188:362::o;1555:325::-;1623:6;1631;1684:2;1672:9;1663:7;1659:23;1655:32;1652:2;;;1705:6;1697;1690:22;1652:2;1749:9;1736:23;1768:31;1793:5;1768:31;:::i;:::-;1818:5;1870:2;1855:18;;;;1842:32;;-1:-1:-1;;;1642:238:1:o;1885:1177::-;1969:6;2000:2;2043;2031:9;2022:7;2018:23;2014:32;2011:2;;;2064:6;2056;2049:22;2011:2;2109:9;2096:23;2138:18;2179:2;2171:6;2168:14;2165:2;;;2200:6;2192;2185:22;2165:2;2243:6;2232:9;2228:22;2218:32;;2288:7;2281:4;2277:2;2273:13;2269:27;2259:2;;2315:6;2307;2300:22;2259:2;2356;2343:16;2378:2;2374;2371:10;2368:2;;;2384:18;;:::i;:::-;2430:2;2427:1;2423:10;2462:2;2456:9;2525:2;2521:7;2516:2;2512;2508:11;2504:25;2496:6;2492:38;2580:6;2568:10;2565:22;2560:2;2548:10;2545:18;2542:46;2539:2;;;2591:18;;:::i;:::-;2627:2;2620:22;2677:18;;;2711:15;;;;-1:-1:-1;2746:11:1;;;2776;;;2772:20;;2769:33;-1:-1:-1;2766:2:1;;;2820:6;2812;2805:22;2766:2;2847:6;2838:15;;2862:169;2876:2;2873:1;2870:9;2862:169;;;2933:23;2952:3;2933:23;:::i;:::-;2921:36;;2894:1;2887:9;;;;;2977:12;;;;3009;;2862:169;;;-1:-1:-1;3050:6:1;1980:1082;-1:-1:-1;;;;;;;;1980:1082:1:o;3067:251::-;3123:6;3176:2;3164:9;3155:7;3151:23;3147:32;3144:2;;;3197:6;3189;3182:22;3144:2;3241:9;3228:23;3260:28;3282:5;3260:28;:::i;3323:255::-;3390:6;3443:2;3431:9;3422:7;3418:23;3414:32;3411:2;;;3464:6;3456;3449:22;3411:2;3501:9;3495:16;3520:28;3542:5;3520:28;:::i;3583:190::-;3642:6;3695:2;3683:9;3674:7;3670:23;3666:32;3663:2;;;3716:6;3708;3701:22;3663:2;-1:-1:-1;3744:23:1;;3653:120;-1:-1:-1;3653:120:1:o;3778:258::-;3846:6;3854;3907:2;3895:9;3886:7;3882:23;3878:32;3875:2;;;3928:6;3920;3913:22;3875:2;-1:-1:-1;;3956:23:1;;;4026:2;4011:18;;;3998:32;;-1:-1:-1;3865:171:1:o;4041:316::-;4129:6;4137;4145;4198:2;4186:9;4177:7;4173:23;4169:32;4166:2;;;4219:6;4211;4204:22;4166:2;4253:9;4247:16;4237:26;;4303:2;4292:9;4288:18;4282:25;4272:35;;4347:2;4336:9;4332:18;4326:25;4316:35;;4156:201;;;;;:::o;5368:615::-;-1:-1:-1;;;;;5735:15:1;;;5717:34;;5782:2;5767:18;;5760:34;;;;5825:2;5810:18;;5803:34;;;;5868:2;5853:18;;5846:34;;;;5917:15;;;5911:3;5896:19;;5889:44;5697:3;5949:19;;5942:35;;;;5666:3;5651:19;;5633:350::o;6792:603::-;6904:4;6933:2;6962;6951:9;6944:21;6994:6;6988:13;7037:6;7032:2;7021:9;7017:18;7010:34;7062:4;7075:140;7089:6;7086:1;7083:13;7075:140;;;7184:14;;;7180:23;;7174:30;7150:17;;;7169:2;7146:26;7139:66;7104:10;;7075:140;;;7233:6;7230:1;7227:13;7224:2;;;7303:4;7298:2;7289:6;7278:9;7274:22;7270:31;7263:45;7224:2;-1:-1:-1;7379:2:1;7358:15;-1:-1:-1;;7354:29:1;7339:45;;;;7386:2;7335:54;;6913:482;-1:-1:-1;;;6913:482:1:o;11338:356::-;11540:2;11522:21;;;11559:18;;;11552:30;11618:34;11613:2;11598:18;;11591:62;11685:2;11670:18;;11512:182::o;15085:983::-;15347:4;15395:3;15384:9;15380:19;15426:6;15415:9;15408:25;15452:2;15490:6;15485:2;15474:9;15470:18;15463:34;15533:3;15528:2;15517:9;15513:18;15506:31;15557:6;15592;15586:13;15623:6;15615;15608:22;15661:3;15650:9;15646:19;15639:26;;15700:2;15692:6;15688:15;15674:29;;15721:4;15734:195;15748:6;15745:1;15742:13;15734:195;;;15813:13;;-1:-1:-1;;;;;15809:39:1;15797:52;;15904:15;;;;15869:12;;;;15845:1;15763:9;15734:195;;;-1:-1:-1;;;;;;;15985:32:1;;;;15980:2;15965:18;;15958:60;-1:-1:-1;;;16049:3:1;16034:19;16027:35;15946:3;15356:712;-1:-1:-1;;;15356:712:1:o;16586:128::-;16626:3;16657:1;16653:6;16650:1;16647:13;16644:2;;;16663:18;;:::i;:::-;-1:-1:-1;16699:9:1;;16634:80::o;16719:217::-;16759:1;16785;16775:2;;-1:-1:-1;;;16810:31:1;;16864:4;16861:1;16854:15;16892:4;16817:1;16882:15;16775:2;-1:-1:-1;16921:9:1;;16765:171::o;16941:168::-;16981:7;17047:1;17043;17039:6;17035:14;17032:1;17029:21;17024:1;17017:9;17010:17;17006:45;17003:2;;;17054:18;;:::i;:::-;-1:-1:-1;17094:9:1;;16993:116::o;17114:125::-;17154:4;17182:1;17179;17176:8;17173:2;;;17187:18;;:::i;:::-;-1:-1:-1;17224:9:1;;17163:76::o;17244:135::-;17283:3;-1:-1:-1;;17304:17:1;;17301:2;;;17324:18;;:::i;:::-;-1:-1:-1;17371:1:1;17360:13;;17291:88::o;17384:127::-;17445:10;17440:3;17436:20;17433:1;17426:31;17476:4;17473:1;17466:15;17500:4;17497:1;17490:15;17516:127;17577:10;17572:3;17568:20;17565:1;17558:31;17608:4;17605:1;17598:15;17632:4;17629:1;17622:15;17648:131;-1:-1:-1;;;;;17723:31:1;;17713:42;;17703:2;;17769:1;17766;17759:12;17784:118;17870:5;17863:13;17856:21;17849:5;17846:32;17836:2;;17892:1;17889;17882:12

Swarm Source

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