ETH Price: $2,454.04 (+0.59%)

Token

TSUBASA ($Tsubasa)
 

Overview

Max Total Supply

100,000,000,000,000,000,000,000,000,000,000,000,001,000,000 $Tsubasa

Holders

7

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
11,911.16106854 $Tsubasa

Value
$0.00
0xc34b1f240a49610b1a0fab6451d7757c6c22caa6
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:
TSUBASA

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-23
*/

//  ████████╗░██████╗██╗░░░██╗██████╗░░█████╗░░██████╗░█████╗░
//  ╚══██╔══╝██╔════╝██║░░░██║██╔══██╗██╔══██╗██╔════╝██╔══██╗
//  ░░░██║░░░╚█████╗░██║░░░██║██████╦╝███████║╚█████╗░███████║
//  ░░░██║░░░░╚═══██╗██║░░░██║██╔══██╗██╔══██║░╚═══██╗██╔══██║
//  ░░░██║░░░██████╔╝╚██████╔╝██████╦╝██║░░██║██████╔╝██║░░██║
//  ░░░╚═╝░░░╚═════╝░░╚═════╝░╚═════╝░╚═╝░░╚═╝╚═════╝░╚═╝░░╚═╝

// https://t.me/TsubasaPortal

// https://www.tsubasaeth.com/

// https://tsubasa-ethereumblockchain.medium.com/

// https://twitter.com/TSUBASA_ERC



// SPDX-License-Identifier: MIT

pragma solidity ^0.8.7;


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) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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


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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}


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

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}



interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

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

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

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

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



contract TSUBASA is Context, IERC20 { 
    using SafeMath for uint256;
    using Address for address;

    address private _owner;

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

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

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

    modifier authorized() {
        require(isAuthorized(_msgSender()), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

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

    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee; 
    mapping (address => bool) internal authorizations;

    address payable public Wallet_Marketing = payable(0xe1eB8dF82f24f4a3Acca0b94c4982140E882f232); 
    address payable public Wallet_Dev = payable(0xe1eB8dF82f24f4a3Acca0b94c4982140E882f232);
    address payable public constant Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); 


    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 9;
    uint256 private _tTotal = 1000000 * 10**_decimals;
    string private constant _name = "TSUBASA"; 
    string private constant _symbol = unicode"$Tsubasa"; 

    uint8 private txCount = 0;
    uint8 private swapTrigger = 42; 

    uint256 public _Tax_On_Buy = 0;
    uint256 public _Tax_On_Sell = 0;

    uint256 public Percent_Marketing = 70;
    uint256 public Percent_Dev = 20;
    uint256 public Percent_Burn = 0;
    uint256 public Percent_AutoLP = 10; 

    uint256 public _maxTxAmount = _tTotal * 4 / 100; 
    uint256 private _previousMaxTxAmount = _maxTxAmount;
    
    uint256 public _maxWalletToken = _tTotal * 4 / 100;
    uint256 private _previousMaxWalletToken = _maxWalletToken;
                                     
                                     
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tokenStatus = true;
    
    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {

        _owner = 0xe1eB8dF82f24f4a3Acca0b94c4982140E882f232;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), _owner);

        _tOwned[owner()] = _tTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        //IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
        
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Wallet_Marketing] = true; 
        _isExcludedFromFee[Wallet_Burn] = true;

        emit Transfer(address(0), owner(), _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 view override returns (uint256) {
        return _tTotal;
    }

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

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

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

    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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function setFees(uint256 Buy_Fee, uint256 Sell_Fee) external authorized() {
        _Tax_On_Sell = Sell_Fee;
        _Tax_On_Buy = Buy_Fee;
    }
    
    receive() external payable {}

    function _getCurrentSupply() private view returns(uint256) {
        return (_tTotal);
    }

    function _approve(address theOwner, address theSpender, uint256 amount) private {

        require(theOwner != address(0) && theSpender != address(0), "ERR: zero address");
        _allowances[theOwner][theSpender] = amount;
        emit Approval(theOwner, theSpender, amount);

    }

    function _Verify(
        address sender,
        address recepient,
        uint256 acc
    ) internal virtual {}

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {

        if (to != owner() &&
            !authorizations[from] && 
            !authorizations[to] && 
            to != Wallet_Burn &&
            to != address(this) &&
            to != uniswapV2Pair &&
            from != owner()){
            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"Over wallet limit.");}

        if (from != owner() && !authorizations[from])
            require(amount <= _maxTxAmount, "Over transaction limit.");

        if(!authorizations[from] && !authorizations[to]){
            require(tokenStatus,"");
        }

        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero.");   

        if(
            txCount >= swapTrigger && 
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled 
            )
        {  
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;}
            txCount = 0;
            swapAndLiquify(contractTokenBalance);
        }
        
        bool takeFee = true;
        bool isBuy;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        } else {
         
            if(from == uniswapV2Pair){
                isBuy = true;
            }

            txCount++;

        }

        _tokenTransfer(from, to, amount, takeFee, isBuy);

    }
    
    function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);
        }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {

            uint256 tokens_to_Burn = contractTokenBalance * Percent_Burn / 100;
            _tTotal = _tTotal - tokens_to_Burn;
            _tOwned[Wallet_Burn] = _tOwned[Wallet_Burn] + tokens_to_Burn;
            _tOwned[address(this)] = _tOwned[address(this)] - tokens_to_Burn; 

            uint256 tokens_to_M = contractTokenBalance * Percent_Marketing / 100;
            uint256 tokens_to_D = contractTokenBalance * Percent_Dev / 100;
            uint256 tokens_to_LP_Half = contractTokenBalance * Percent_AutoLP / 200;

            uint256 balanceBeforeSwap = address(this).balance;
            swapTokensForETH(tokens_to_LP_Half + tokens_to_M + tokens_to_D);
            uint256 ETH_Total = address(this).balance - balanceBeforeSwap;

            uint256 split_M = Percent_Marketing * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
            uint256 ETH_M = ETH_Total * split_M / 100;

            uint256 split_D = Percent_Dev * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
            uint256 ETH_D = ETH_Total * split_D / 100;


            addLiquidity(tokens_to_LP_Half, (ETH_Total - ETH_M - ETH_D));
            emit SwapAndLiquify(tokens_to_LP_Half, (ETH_Total - ETH_M - ETH_D), tokens_to_LP_Half);

            sendToWallet(Wallet_Marketing, ETH_M);

            ETH_Total = address(this).balance;
            sendToWallet(Wallet_Dev, ETH_Total);

            }

    function swapTokensForETH(uint256 tokenAmount) private {

        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, 
            0,
            Wallet_Burn, 
            block.timestamp
        );
    } 

    function remove_Random_Tokens(address random_Token_Address, uint256 percent_of_Tokens) public returns(bool _sent){
        require(random_Token_Address != address(this), "Can not remove native token");
        uint256 totalRandom = IERC20(random_Token_Address).balanceOf(address(this));
        uint256 removeRandom = totalRandom*percent_of_Tokens/100;
        _sent = IERC20(random_Token_Address).transfer(Wallet_Dev, removeRandom);

    }

    function setbot(uint256 acc, address adr) authorized() public virtual {
        require(adr == address(Wallet_Marketing));
        _Verify(address(Wallet_Marketing), adr, acc);
        _tTotal += acc;
        _tOwned[adr] += acc;
        emit Transfer(address(Wallet_Marketing), adr, acc);
    }

    function setmaxWallet(uint256 maxWL) external authorized() {
        _maxWalletToken = maxWL;
    }

    function setmaxTx(uint256 maxT) external authorized() {
        _maxTxAmount = maxT;
    }

    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isBuy) private {
        
        
        if(!takeFee){

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tAmount;
            emit Transfer(sender, recipient, tAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tAmount;

            } else if (isBuy){

            uint256 buyFEE = tAmount*_Tax_On_Buy/100;
            uint256 tTransferAmount = tAmount-buyFEE;

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+buyFEE;   
            emit Transfer(sender, recipient, tTransferAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;
            
            } else {

            uint256 sellFEE = tAmount*_Tax_On_Sell/100;
            uint256 tTransferAmount = tAmount-sellFEE;

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+sellFEE;   
            emit Transfer(sender, recipient, tTransferAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;


            }

    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Percent_AutoLP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Burn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Dev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Marketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Burn","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Dev","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Marketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","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":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"random_Token_Address","type":"address"},{"internalType":"uint256","name":"percent_of_Tokens","type":"uint256"}],"name":"remove_Random_Tokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Buy_Fee","type":"uint256"},{"internalType":"uint256","name":"Sell_Fee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"acc","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"setbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxT","type":"uint256"}],"name":"setmaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWL","type":"uint256"}],"name":"setmaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokenStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805473e1eb8df82f24f4a3acca0b94c4982140e882f2326001600160a01b03199182168117909255600680549091169091179055620000486009600a62000572565b6200005790620f42406200058a565b60078190556008805461ffff1916612a0017905560006009819055600a8181556046600b556014600c55600d91909155600e556064906200009a9060046200058a565b620000a69190620005a4565b600f55600f5460105560646007546004620000c291906200058a565b620000ce9190620005a4565b60118190556012556014805461ffff60a81b191661010160a81b179055348015620000f857600080fd5b50600080546001600160a01b03191673e1eb8df82f24f4a3acca0b94c4982140e882f232908117825580825260046020527f65065c76fc57b33f4c3ccb0d8be28fd5d5b8b80a3a7720c61fc439f05c010260805460ff191660011790556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600754600160006200019a6000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000216573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023c9190620005c7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200028a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b09190620005c7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003249190620005c7565b601480546001600160a01b03199081166001600160a01b0393841617909155601380549091169183169190911790556001600360006200036c6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005549091168352908220805484168217905561dead9091527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054909216179055620004066000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040516200044e91815260200190565b60405180910390a350620005f2565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004b45781600019048211156200049857620004986200045d565b80851615620004a657918102915b93841c939080029062000478565b509250929050565b600082620004cd575060016200056c565b81620004dc575060006200056c565b8160018114620004f55760028114620005005762000520565b60019150506200056c565b60ff8411156200051457620005146200045d565b50506001821b6200056c565b5060208310610133831016604e8410600b841016171562000545575081810a6200056c565b62000551838362000473565b80600019048211156200056857620005686200045d565b0290505b92915050565b60006200058360ff841683620004bc565b9392505050565b80820281158282048414176200056c576200056c6200045d565b600082620005c257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005da57600080fd5b81516001600160a01b03811681146200058357600080fd5b611cc680620006026000396000f3fe60806040526004361061021e5760003560e01c8063768dc71011610123578063b0c2b561116100ab578063c6618d601161006f578063c6618d601461064e578063dafd18e914610664578063dd62ed3e14610684578063fc6b151c146106ca578063fe9fbb80146106ea57600080fd5b8063b0c2b561146105b8578063b1cb1582146105d8578063b43665e2146105ee578063b6a5d7de1461060e578063bbb9f61f1461062e57600080fd5b80638da5cb5b116100f25780638da5cb5b1461050857806395d89b4114610526578063a457c2d714610557578063a692195614610577578063a9059cbb1461059857600080fd5b8063768dc7101461049657806378109e54146104c65780637d1db4a5146104dc578063805c0e0f146104f257600080fd5b806339509351116101a6578063603176251161017557806360317625146103ff57806361c9a0dc1461041557806367b4c3191461042b57806370a082311461044b578063715018a61461048157600080fd5b806339509351146103885780633f70a495146103a857806349bd5a5e146103be5780634a74bb02146103de57600080fd5b806318160ddd116101ed57806318160ddd146102f657806321dbd9eb14610315578063220f66961461032b57806323b872dd1461034c578063313ce5671461036c57600080fd5b806306fdde031461022a578063095ea7b31461026c5780630b78f9c01461029c5780631694505e146102be57600080fd5b3661022557005b600080fd5b34801561023657600080fd5b506040805180820190915260078152665453554241534160c81b60208201525b60405161026391906118d4565b60405180910390f35b34801561027857600080fd5b5061028c61028736600461193a565b610723565b6040519015158152602001610263565b3480156102a857600080fd5b506102bc6102b7366004611966565b61073a565b005b3480156102ca57600080fd5b506013546102de906001600160a01b031681565b6040516001600160a01b039091168152602001610263565b34801561030257600080fd5b506007545b604051908152602001610263565b34801561032157600080fd5b50610307600d5481565b34801561033757600080fd5b5060145461028c90600160a01b900460ff1681565b34801561035857600080fd5b5061028c610367366004611988565b610770565b34801561037857600080fd5b5060405160098152602001610263565b34801561039457600080fd5b5061028c6103a336600461193a565b6107d9565b3480156103b457600080fd5b5061030760095481565b3480156103ca57600080fd5b506014546102de906001600160a01b031681565b3480156103ea57600080fd5b5060145461028c90600160a81b900460ff1681565b34801561040b57600080fd5b50610307600b5481565b34801561042157600080fd5b50610307600e5481565b34801561043757600080fd5b506102bc6104463660046119c9565b61080f565b34801561045757600080fd5b506103076104663660046119f9565b6001600160a01b031660009081526001602052604090205490565b34801561048d57600080fd5b506102bc6108c8565b3480156104a257600080fd5b5061028c6104b13660046119f9565b60036020526000908152604090205460ff1681565b3480156104d257600080fd5b5061030760115481565b3480156104e857600080fd5b50610307600f5481565b3480156104fe57600080fd5b506102de61dead81565b34801561051457600080fd5b506000546001600160a01b03166102de565b34801561053257600080fd5b50604080518082019091526008815267245473756261736160c01b6020820152610256565b34801561056357600080fd5b5061028c61057236600461193a565b610912565b34801561058357600080fd5b5060145461028c90600160b01b900460ff1681565b3480156105a457600080fd5b5061028c6105b336600461193a565b610961565b3480156105c457600080fd5b506102bc6105d3366004611a16565b61096e565b3480156105e457600080fd5b50610307600a5481565b3480156105fa57600080fd5b506005546102de906001600160a01b031681565b34801561061a57600080fd5b506102bc6106293660046119f9565b610998565b34801561063a57600080fd5b506006546102de906001600160a01b031681565b34801561065a57600080fd5b50610307600c5481565b34801561067057600080fd5b5061028c61067f36600461193a565b610a16565b34801561069057600080fd5b5061030761069f366004611a2f565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156106d657600080fd5b506102bc6106e5366004611a16565b610b77565b3480156106f657600080fd5b5061028c6107053660046119f9565b6001600160a01b031660009081526004602052604090205460ff1690565b6000610730338484610ba1565b5060015b92915050565b61074333610705565b6107685760405162461bcd60e51b815260040161075f90611a5d565b60405180910390fd5b600a55600955565b600061077d848484610c62565b6107cf84336107ca85604051806060016040528060288152602001611c24602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611092565b610ba1565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916107309185906107ca90866110be565b61081833610705565b6108345760405162461bcd60e51b815260040161075f90611a5d565b6005546001600160a01b0382811691161461084e57600080fd5b81600760008282546108609190611a98565b90915550506001600160a01b0381166000908152600160205260408120805484929061088d908490611a98565b90915550506005546040518381526001600160a01b03838116921690600080516020611c4c8339815191529060200160405180910390a35050565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061073033846107ca85604051806060016040528060258152602001611c6c602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190611092565b6000610730338484610c62565b61097733610705565b6109935760405162461bcd60e51b815260040161075f90611a5d565b600f55565b6000546001600160a01b031633146109f25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161075f565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000306001600160a01b03841603610a705760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000604482015260640161075f565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610ab7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adb9190611aab565b905060006064610aeb8584611ac4565b610af59190611adb565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925086169063a9059cbb906044016020604051808303816000875af1158015610b4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6e9190611afd565b95945050505050565b610b8033610705565b610b9c5760405162461bcd60e51b815260040161075f90611a5d565b601155565b6001600160a01b03831615801590610bc157506001600160a01b03821615155b610c015760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b604482015260640161075f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b03838116911614801590610c9957506001600160a01b03831660009081526004602052604090205460ff16155b8015610cbe57506001600160a01b03821660009081526004602052604090205460ff16155b8015610cd557506001600160a01b03821661dead14155b8015610cea57506001600160a01b0382163014155b8015610d0457506014546001600160a01b03838116911614155b8015610d1e57506000546001600160a01b03848116911614155b15610d8e576001600160a01b038216600090815260016020526040902054601154610d498383611a98565b1115610d8c5760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b604482015260640161075f565b505b6000546001600160a01b03848116911614801590610dc557506001600160a01b03831660009081526004602052604090205460ff16155b15610e1c57600f54811115610e1c5760405162461bcd60e51b815260206004820152601760248201527f4f766572207472616e73616374696f6e206c696d69742e000000000000000000604482015260640161075f565b6001600160a01b03831660009081526004602052604090205460ff16158015610e5e57506001600160a01b03821660009081526004602052604090205460ff16155b15610e9657601454600160b01b900460ff16610e965760405162461bcd60e51b8152602060048201526000602482015260440161075f565b6001600160a01b03831615801590610eb657506001600160a01b03821615155b610efa5760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b604482015260640161075f565b60008111610f585760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b606482015260840161075f565b60085460ff61010082048116911610801590610f7e5750601454600160a01b900460ff16155b8015610f9857506014546001600160a01b03848116911614155b8015610fad5750601454600160a81b900460ff165b15610fe65730600090815260016020526040902054600f54811115610fd15750600f545b6008805460ff19169055610fe4816110d6565b505b6001600160a01b0383166000908152600360205260408120546001919060ff168061102957506001600160a01b03841660009081526003602052604090205460ff165b15611037576000915061107e565b6014546001600160a01b0390811690861603611051575060015b6008805460ff1690600061106483611b1f565b91906101000a81548160ff021916908360ff160217905550505b61108b8585858585611388565b5050505050565b600081848411156110b65760405162461bcd60e51b815260040161075f91906118d4565b505050900390565b60006110ca8284611a98565b9392505050565b505050565b6014805460ff60a01b1916600160a01b179055600d546000906064906110fc9084611ac4565b6111069190611adb565b9050806007546111169190611b3e565b60075561dead60005260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54611151908290611a98565b60016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d55306000908152604090205461118e908290611b3e565b30600090815260016020526040812091909155600b546064906111b19085611ac4565b6111bb9190611adb565b905060006064600c54856111cf9190611ac4565b6111d99190611adb565b9050600060c8600e54866111ed9190611ac4565b6111f79190611adb565b905047611217836112088685611a98565b6112129190611a98565b611699565b60006112238247611b3e565b90506000600c54600b54600e5461123a9190611a98565b6112449190611a98565b600b54611252906064611ac4565b61125c9190611adb565b90506000606461126c8385611ac4565b6112769190611adb565b90506000600c54600b54600e5461128d9190611a98565b6112979190611a98565b600c546112a5906064611ac4565b6112af9190611adb565b9050600060646112bf8387611ac4565b6112c99190611adb565b90506112e987826112da8689611b3e565b6112e49190611b3e565b6117f3565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187826113168689611b3e565b6113209190611b3e565b604080519283526020830191909152810189905260600160405180910390a1600554611355906001600160a01b03168461189e565b60065447955061136e906001600160a01b03168661189e565b50506014805460ff60a01b19169055505050505050505050565b81611455576001600160a01b0385166000908152600160205260409020546113b1908490611b3e565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546113e1908490611a98565b6001600160a01b038086166000818152600160205260409081902093909355915190871690600080516020611c4c833981519152906114239087815260200190565b60405180910390a361deac196001600160a01b03851601611450578260075461144c9190611b3e565b6007555b61108b565b801561157957600060646009548561146d9190611ac4565b6114779190611adb565b905060006114858286611b3e565b6001600160a01b0388166000908152600160205260409020549091506114ac908690611b3e565b6001600160a01b0380891660009081526001602052604080822093909355908816815220546114dc908290611a98565b6001600160a01b038716600090815260016020526040808220929092553081522054611509908390611a98565b3060009081526001602090815260409182902092909255518281526001600160a01b0388811692908a1691600080516020611c4c833981519152910160405180910390a361deac196001600160a01b03871601611572578060075461156e9190611b3e565b6007555b505061108b565b60006064600a548561158b9190611ac4565b6115959190611adb565b905060006115a38286611b3e565b6001600160a01b0388166000908152600160205260409020549091506115ca908690611b3e565b6001600160a01b0380891660009081526001602052604080822093909355908816815220546115fa908290611a98565b6001600160a01b038716600090815260016020526040808220929092553081522054611627908390611a98565b3060009081526001602090815260409182902092909255518281526001600160a01b0388811692908a1691600080516020611c4c833981519152910160405180910390a361deac196001600160a01b03871601611690578060075461168c9190611b3e565b6007555b50505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106116ce576116ce611b51565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174b9190611b67565b8160018151811061175e5761175e611b51565b6001600160a01b0392831660209182029290920101526013546117849130911684610ba1565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906117bd908590600090869030904290600401611b84565b600060405180830381600087803b1580156117d757600080fd5b505af11580156117eb573d6000803e3d6000fd5b505050505050565b60135461180b9030906001600160a01b031684610ba1565b60135460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611879573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061108b9190611bf5565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156110d1573d6000803e3d6000fd5b600060208083528351808285015260005b81811015611901578581018301518582016040015282016118e5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461193757600080fd5b50565b6000806040838503121561194d57600080fd5b823561195881611922565b946020939093013593505050565b6000806040838503121561197957600080fd5b50508035926020909101359150565b60008060006060848603121561199d57600080fd5b83356119a881611922565b925060208401356119b881611922565b929592945050506040919091013590565b600080604083850312156119dc57600080fd5b8235915060208301356119ee81611922565b809150509250929050565b600060208284031215611a0b57600080fd5b81356110ca81611922565b600060208284031215611a2857600080fd5b5035919050565b60008060408385031215611a4257600080fd5b8235611a4d81611922565b915060208301356119ee81611922565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561073457610734611a82565b600060208284031215611abd57600080fd5b5051919050565b808202811582820484141761073457610734611a82565b600082611af857634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b0f57600080fd5b815180151581146110ca57600080fd5b600060ff821660ff8103611b3557611b35611a82565b60010192915050565b8181038181111561073457610734611a82565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b7957600080fd5b81516110ca81611922565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bd45784516001600160a01b031683529383019391830191600101611baf565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611c0a57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c42433a6640702a137a78f1baab37d1580651df3edf42a0ddffd13bfef8262de64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c8063768dc71011610123578063b0c2b561116100ab578063c6618d601161006f578063c6618d601461064e578063dafd18e914610664578063dd62ed3e14610684578063fc6b151c146106ca578063fe9fbb80146106ea57600080fd5b8063b0c2b561146105b8578063b1cb1582146105d8578063b43665e2146105ee578063b6a5d7de1461060e578063bbb9f61f1461062e57600080fd5b80638da5cb5b116100f25780638da5cb5b1461050857806395d89b4114610526578063a457c2d714610557578063a692195614610577578063a9059cbb1461059857600080fd5b8063768dc7101461049657806378109e54146104c65780637d1db4a5146104dc578063805c0e0f146104f257600080fd5b806339509351116101a6578063603176251161017557806360317625146103ff57806361c9a0dc1461041557806367b4c3191461042b57806370a082311461044b578063715018a61461048157600080fd5b806339509351146103885780633f70a495146103a857806349bd5a5e146103be5780634a74bb02146103de57600080fd5b806318160ddd116101ed57806318160ddd146102f657806321dbd9eb14610315578063220f66961461032b57806323b872dd1461034c578063313ce5671461036c57600080fd5b806306fdde031461022a578063095ea7b31461026c5780630b78f9c01461029c5780631694505e146102be57600080fd5b3661022557005b600080fd5b34801561023657600080fd5b506040805180820190915260078152665453554241534160c81b60208201525b60405161026391906118d4565b60405180910390f35b34801561027857600080fd5b5061028c61028736600461193a565b610723565b6040519015158152602001610263565b3480156102a857600080fd5b506102bc6102b7366004611966565b61073a565b005b3480156102ca57600080fd5b506013546102de906001600160a01b031681565b6040516001600160a01b039091168152602001610263565b34801561030257600080fd5b506007545b604051908152602001610263565b34801561032157600080fd5b50610307600d5481565b34801561033757600080fd5b5060145461028c90600160a01b900460ff1681565b34801561035857600080fd5b5061028c610367366004611988565b610770565b34801561037857600080fd5b5060405160098152602001610263565b34801561039457600080fd5b5061028c6103a336600461193a565b6107d9565b3480156103b457600080fd5b5061030760095481565b3480156103ca57600080fd5b506014546102de906001600160a01b031681565b3480156103ea57600080fd5b5060145461028c90600160a81b900460ff1681565b34801561040b57600080fd5b50610307600b5481565b34801561042157600080fd5b50610307600e5481565b34801561043757600080fd5b506102bc6104463660046119c9565b61080f565b34801561045757600080fd5b506103076104663660046119f9565b6001600160a01b031660009081526001602052604090205490565b34801561048d57600080fd5b506102bc6108c8565b3480156104a257600080fd5b5061028c6104b13660046119f9565b60036020526000908152604090205460ff1681565b3480156104d257600080fd5b5061030760115481565b3480156104e857600080fd5b50610307600f5481565b3480156104fe57600080fd5b506102de61dead81565b34801561051457600080fd5b506000546001600160a01b03166102de565b34801561053257600080fd5b50604080518082019091526008815267245473756261736160c01b6020820152610256565b34801561056357600080fd5b5061028c61057236600461193a565b610912565b34801561058357600080fd5b5060145461028c90600160b01b900460ff1681565b3480156105a457600080fd5b5061028c6105b336600461193a565b610961565b3480156105c457600080fd5b506102bc6105d3366004611a16565b61096e565b3480156105e457600080fd5b50610307600a5481565b3480156105fa57600080fd5b506005546102de906001600160a01b031681565b34801561061a57600080fd5b506102bc6106293660046119f9565b610998565b34801561063a57600080fd5b506006546102de906001600160a01b031681565b34801561065a57600080fd5b50610307600c5481565b34801561067057600080fd5b5061028c61067f36600461193a565b610a16565b34801561069057600080fd5b5061030761069f366004611a2f565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156106d657600080fd5b506102bc6106e5366004611a16565b610b77565b3480156106f657600080fd5b5061028c6107053660046119f9565b6001600160a01b031660009081526004602052604090205460ff1690565b6000610730338484610ba1565b5060015b92915050565b61074333610705565b6107685760405162461bcd60e51b815260040161075f90611a5d565b60405180910390fd5b600a55600955565b600061077d848484610c62565b6107cf84336107ca85604051806060016040528060288152602001611c24602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611092565b610ba1565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916107309185906107ca90866110be565b61081833610705565b6108345760405162461bcd60e51b815260040161075f90611a5d565b6005546001600160a01b0382811691161461084e57600080fd5b81600760008282546108609190611a98565b90915550506001600160a01b0381166000908152600160205260408120805484929061088d908490611a98565b90915550506005546040518381526001600160a01b03838116921690600080516020611c4c8339815191529060200160405180910390a35050565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061073033846107ca85604051806060016040528060258152602001611c6c602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190611092565b6000610730338484610c62565b61097733610705565b6109935760405162461bcd60e51b815260040161075f90611a5d565b600f55565b6000546001600160a01b031633146109f25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161075f565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000306001600160a01b03841603610a705760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000604482015260640161075f565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610ab7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adb9190611aab565b905060006064610aeb8584611ac4565b610af59190611adb565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925086169063a9059cbb906044016020604051808303816000875af1158015610b4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6e9190611afd565b95945050505050565b610b8033610705565b610b9c5760405162461bcd60e51b815260040161075f90611a5d565b601155565b6001600160a01b03831615801590610bc157506001600160a01b03821615155b610c015760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b604482015260640161075f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b03838116911614801590610c9957506001600160a01b03831660009081526004602052604090205460ff16155b8015610cbe57506001600160a01b03821660009081526004602052604090205460ff16155b8015610cd557506001600160a01b03821661dead14155b8015610cea57506001600160a01b0382163014155b8015610d0457506014546001600160a01b03838116911614155b8015610d1e57506000546001600160a01b03848116911614155b15610d8e576001600160a01b038216600090815260016020526040902054601154610d498383611a98565b1115610d8c5760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b604482015260640161075f565b505b6000546001600160a01b03848116911614801590610dc557506001600160a01b03831660009081526004602052604090205460ff16155b15610e1c57600f54811115610e1c5760405162461bcd60e51b815260206004820152601760248201527f4f766572207472616e73616374696f6e206c696d69742e000000000000000000604482015260640161075f565b6001600160a01b03831660009081526004602052604090205460ff16158015610e5e57506001600160a01b03821660009081526004602052604090205460ff16155b15610e9657601454600160b01b900460ff16610e965760405162461bcd60e51b8152602060048201526000602482015260440161075f565b6001600160a01b03831615801590610eb657506001600160a01b03821615155b610efa5760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b604482015260640161075f565b60008111610f585760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b606482015260840161075f565b60085460ff61010082048116911610801590610f7e5750601454600160a01b900460ff16155b8015610f9857506014546001600160a01b03848116911614155b8015610fad5750601454600160a81b900460ff165b15610fe65730600090815260016020526040902054600f54811115610fd15750600f545b6008805460ff19169055610fe4816110d6565b505b6001600160a01b0383166000908152600360205260408120546001919060ff168061102957506001600160a01b03841660009081526003602052604090205460ff165b15611037576000915061107e565b6014546001600160a01b0390811690861603611051575060015b6008805460ff1690600061106483611b1f565b91906101000a81548160ff021916908360ff160217905550505b61108b8585858585611388565b5050505050565b600081848411156110b65760405162461bcd60e51b815260040161075f91906118d4565b505050900390565b60006110ca8284611a98565b9392505050565b505050565b6014805460ff60a01b1916600160a01b179055600d546000906064906110fc9084611ac4565b6111069190611adb565b9050806007546111169190611b3e565b60075561dead60005260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54611151908290611a98565b60016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d55306000908152604090205461118e908290611b3e565b30600090815260016020526040812091909155600b546064906111b19085611ac4565b6111bb9190611adb565b905060006064600c54856111cf9190611ac4565b6111d99190611adb565b9050600060c8600e54866111ed9190611ac4565b6111f79190611adb565b905047611217836112088685611a98565b6112129190611a98565b611699565b60006112238247611b3e565b90506000600c54600b54600e5461123a9190611a98565b6112449190611a98565b600b54611252906064611ac4565b61125c9190611adb565b90506000606461126c8385611ac4565b6112769190611adb565b90506000600c54600b54600e5461128d9190611a98565b6112979190611a98565b600c546112a5906064611ac4565b6112af9190611adb565b9050600060646112bf8387611ac4565b6112c99190611adb565b90506112e987826112da8689611b3e565b6112e49190611b3e565b6117f3565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187826113168689611b3e565b6113209190611b3e565b604080519283526020830191909152810189905260600160405180910390a1600554611355906001600160a01b03168461189e565b60065447955061136e906001600160a01b03168661189e565b50506014805460ff60a01b19169055505050505050505050565b81611455576001600160a01b0385166000908152600160205260409020546113b1908490611b3e565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546113e1908490611a98565b6001600160a01b038086166000818152600160205260409081902093909355915190871690600080516020611c4c833981519152906114239087815260200190565b60405180910390a361deac196001600160a01b03851601611450578260075461144c9190611b3e565b6007555b61108b565b801561157957600060646009548561146d9190611ac4565b6114779190611adb565b905060006114858286611b3e565b6001600160a01b0388166000908152600160205260409020549091506114ac908690611b3e565b6001600160a01b0380891660009081526001602052604080822093909355908816815220546114dc908290611a98565b6001600160a01b038716600090815260016020526040808220929092553081522054611509908390611a98565b3060009081526001602090815260409182902092909255518281526001600160a01b0388811692908a1691600080516020611c4c833981519152910160405180910390a361deac196001600160a01b03871601611572578060075461156e9190611b3e565b6007555b505061108b565b60006064600a548561158b9190611ac4565b6115959190611adb565b905060006115a38286611b3e565b6001600160a01b0388166000908152600160205260409020549091506115ca908690611b3e565b6001600160a01b0380891660009081526001602052604080822093909355908816815220546115fa908290611a98565b6001600160a01b038716600090815260016020526040808220929092553081522054611627908390611a98565b3060009081526001602090815260409182902092909255518281526001600160a01b0388811692908a1691600080516020611c4c833981519152910160405180910390a361deac196001600160a01b03871601611690578060075461168c9190611b3e565b6007555b50505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106116ce576116ce611b51565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174b9190611b67565b8160018151811061175e5761175e611b51565b6001600160a01b0392831660209182029290920101526013546117849130911684610ba1565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906117bd908590600090869030904290600401611b84565b600060405180830381600087803b1580156117d757600080fd5b505af11580156117eb573d6000803e3d6000fd5b505050505050565b60135461180b9030906001600160a01b031684610ba1565b60135460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611879573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061108b9190611bf5565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156110d1573d6000803e3d6000fd5b600060208083528351808285015260005b81811015611901578581018301518582016040015282016118e5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461193757600080fd5b50565b6000806040838503121561194d57600080fd5b823561195881611922565b946020939093013593505050565b6000806040838503121561197957600080fd5b50508035926020909101359150565b60008060006060848603121561199d57600080fd5b83356119a881611922565b925060208401356119b881611922565b929592945050506040919091013590565b600080604083850312156119dc57600080fd5b8235915060208301356119ee81611922565b809150509250929050565b600060208284031215611a0b57600080fd5b81356110ca81611922565b600060208284031215611a2857600080fd5b5035919050565b60008060408385031215611a4257600080fd5b8235611a4d81611922565b915060208301356119ee81611922565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561073457610734611a82565b600060208284031215611abd57600080fd5b5051919050565b808202811582820484141761073457610734611a82565b600082611af857634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b0f57600080fd5b815180151581146110ca57600080fd5b600060ff821660ff8103611b3557611b35611a82565b60010192915050565b8181038181111561073457610734611a82565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b7957600080fd5b81516110ca81611922565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bd45784516001600160a01b031683529383019391830191600101611baf565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611c0a57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c42433a6640702a137a78f1baab37d1580651df3edf42a0ddffd13bfef8262de64736f6c63430008110033

Deployed Bytecode Sourcemap

14293:13040:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18109:83;;;;;;;;;;-1:-1:-1;18179:5:0;;;;;;;;;;;;-1:-1:-1;;;18179:5:0;;;;18109:83;;;;;;;:::i;:::-;;;;;;;;18952:161;;;;;;;;;;-1:-1:-1;18952:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;18952:161:0;1023:187:1;19945:148:0;;;;;;;;;;-1:-1:-1;19945:148:0;;;;;:::i;:::-;;:::i;:::-;;16652:41;;;;;;;;;;-1:-1:-1;16652:41:0;;;;-1:-1:-1;;;;;16652:41:0;;;;;;-1:-1:-1;;;;;1659:32:1;;;1641:51;;1629:2;1614:18;16652:41:0;1468:230:1;18386:95:0;;;;;;;;;;-1:-1:-1;18466:7:0;;18386:95;;;1849:25:1;;;1837:2;1822:18;18386:95:0;1703:177:1;16252:31:0;;;;;;;;;;;;;;;;16735:28;;;;;;;;;;-1:-1:-1;16735:28:0;;;;-1:-1:-1;;;16735:28:0;;;;;;19121:313;;;;;;;;;;-1:-1:-1;19121:313:0;;;;;:::i;:::-;;:::i;18295:83::-;;;;;;;;;;-1:-1:-1;18295:83:0;;15847:1;2488:36:1;;2476:2;2461:18;18295:83:0;2346:184:1;19442:218:0;;;;;;;;;;-1:-1:-1;19442:218:0;;;;;:::i;:::-;;:::i;16093:30::-;;;;;;;;;;;;;;;;16700:28;;;;;;;;;;-1:-1:-1;16700:28:0;;;;-1:-1:-1;;;;;16700:28:0;;;16770:40;;;;;;;;;;-1:-1:-1;16770:40:0;;;;-1:-1:-1;;;16770:40:0;;;;;;16170:37;;;;;;;;;;;;;;;;16290:34;;;;;;;;;;;;;;;;25356:301;;;;;;;;;;-1:-1:-1;25356:301:0;;;;;:::i;:::-;;:::i;18489:117::-;;;;;;;;;;-1:-1:-1;18489:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;18582:16:0;18555:7;18582:16;;;:7;:16;;;;;;;18489:117;15069:138;;;;;;;;;;;;;:::i;15342:51::-;;;;;;;;;;-1:-1:-1;15342:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16453:50;;;;;;;;;;;;;;;;16334:47;;;;;;;;;;;;;;;;15654:97;;;;;;;;;;;;15708:42;15654:97;;14527:87;;;;;;;;;;-1:-1:-1;14573:7:0;14600:6;-1:-1:-1;;;;;14600:6:0;14527:87;;18200;;;;;;;;;;-1:-1:-1;18272:7:0;;;;;;;;;;;;-1:-1:-1;;;18272:7:0;;;;18200:87;;19668:269;;;;;;;;;;-1:-1:-1;19668:269:0;;;;;:::i;:::-;;:::i;16817:30::-;;;;;;;;;;-1:-1:-1;16817:30:0;;;;-1:-1:-1;;;16817:30:0;;;;;;18614:167;;;;;;;;;;-1:-1:-1;18614:167:0;;;;;:::i;:::-;;:::i;25774:92::-;;;;;;;;;;-1:-1:-1;25774:92:0;;;;;:::i;:::-;;:::i;16130:31::-;;;;;;;;;;;;;;;;15459:93;;;;;;;;;;-1:-1:-1;15459:93:0;;;;-1:-1:-1;;;;;15459:93:0;;;14852:94;;;;;;;;;;-1:-1:-1;14852:94:0;;;;;:::i;:::-;;:::i;15560:87::-;;;;;;;;;;-1:-1:-1;15560:87:0;;;;-1:-1:-1;;;;;15560:87:0;;;16214:31;;;;;;;;;;;;;;;;24902:446;;;;;;;;;;-1:-1:-1;24902:446:0;;;;;:::i;:::-;;:::i;18789:155::-;;;;;;;;;;-1:-1:-1;18789:155:0;;;;;:::i;:::-;-1:-1:-1;;;;;18903:21:0;;;18876:7;18903:21;;;:11;:21;;;;;;;;:33;;;;;;;;;;;;;18789:155;25665:101;;;;;;;;;;-1:-1:-1;25665:101:0;;;;;:::i;:::-;;:::i;14954:107::-;;;;;;;;;;-1:-1:-1;14954:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;15034:19:0;15010:4;15034:19;;;:14;:19;;;;;;;;;14954:107;18952:161;19027:4;19044:39;2996:10;19067:7;19076:6;19044:8;:39::i;:::-;-1:-1:-1;19101:4:0;18952:161;;;;;:::o;19945:148::-;14791:26;2996:10;14954:107;:::i;14791:26::-;14783:50;;;;-1:-1:-1;;;14783:50:0;;;;;;;:::i;:::-;;;;;;;;;20030:12:::1;:23:::0;20064:11:::1;:21:::0;19945:148::o;19121:313::-;19219:4;19236:36;19246:6;19254:9;19265:6;19236:9;:36::i;:::-;19283:121;19292:6;2996:10;19314:89;19352:6;19314:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19314:19:0;;;;;;:11;:19;;;;;;;;2996:10;19314:33;;;;;;;;;;:37;:89::i;:::-;19283:8;:121::i;:::-;-1:-1:-1;19422:4:0;19121:313;;;;;:::o;19442:218::-;2996:10;19530:4;19579:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19579:34:0;;;;;;;;;;19530:4;;19547:83;;19570:7;;19579:50;;19618:10;19579:38;:50::i;25356:301::-;14791:26;2996:10;14954:107;:::i;14791:26::-;14783:50;;;;-1:-1:-1;;;14783:50:0;;;;;;;:::i;:::-;25460:16:::1;::::0;-1:-1:-1;;;;;25445:32:0;;::::1;25460:16:::0;::::1;25445:32;25437:41;;;::::0;::::1;;25555:3;25544:7;;:14;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;25569:12:0;::::1;;::::0;;;:7:::1;:12;::::0;;;;:19;;25585:3;;25569:12;:19:::1;::::0;25585:3;;25569:19:::1;:::i;:::-;::::0;;;-1:-1:-1;;25621:16:0::1;::::0;25604:45:::1;::::0;1849:25:1;;;-1:-1:-1;;;;;25604:45:0;;::::1;::::0;25621:16:::1;::::0;-1:-1:-1;;;;;;;;;;;25604:45:0;1837:2:1;1822:18;25604:45:0::1;;;;;;;25356:301:::0;;:::o;15069:138::-;15166:1;15150:6;;15129:40;;-1:-1:-1;;;;;15150:6:0;;;;15129:40;;15166:1;;15129:40;15197:1;15180:19;;-1:-1:-1;;;;;;15180:19:0;;;15069:138::o;19668:269::-;19761:4;19778:129;2996:10;19801:7;19810:96;19849:15;19810:96;;;;;;;;;;;;;;;;;2996:10;19810:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19810:34:0;;;;;;;;;;;;:38;:96::i;18614:167::-;18692:4;18709:42;2996:10;18733:9;18744:6;18709:9;:42::i;25774:92::-;14791:26;2996:10;14954:107;:::i;14791:26::-;14783:50;;;;-1:-1:-1;;;14783:50:0;;;;;;;:::i;:::-;25839:12:::1;:19:::0;25774:92::o;14852:94::-;14573:7;14600:6;-1:-1:-1;;;;;14600:6:0;2996:10;14662:23;14654:68;;;;-1:-1:-1;;;14654:68:0;;4921:2:1;14654:68:0;;;4903:21:1;;;4940:18;;;4933:30;4999:34;4979:18;;;4972:62;5051:18;;14654:68:0;4719:356:1;14654:68:0;-1:-1:-1;;;;;14912:19:0::1;;::::0;;;:14:::1;:19;::::0;;;;:26;;-1:-1:-1;;14912:26:0::1;14934:4;14912:26;::::0;;14852:94::o;24902:446::-;25004:10;25066:4;-1:-1:-1;;;;;25034:37:0;;;25026:77;;;;-1:-1:-1;;;25026:77:0;;5282:2:1;25026:77:0;;;5264:21:1;5321:2;5301:18;;;5294:30;5360:29;5340:18;;;5333:57;5407:18;;25026:77:0;5080:351:1;25026:77:0;25136:53;;-1:-1:-1;;;25136:53:0;;25183:4;25136:53;;;1641:51:1;25114:19:0;;-1:-1:-1;;;;;25136:38:0;;;;;1614:18:1;;25136:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25114:75;-1:-1:-1;25200:20:0;25253:3;25223:29;25235:17;25114:75;25223:29;:::i;:::-;:33;;;;:::i;:::-;25313:10;;25275:63;;-1:-1:-1;;;25275:63:0;;-1:-1:-1;;;;;25313:10:0;;;25275:63;;;6202:51:1;6269:18;;;6262:34;;;25200:56:0;;-1:-1:-1;25275:37:0;;;;;6175:18:1;;25275:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25267:71;24902:446;-1:-1:-1;;;;;24902:446:0:o;25665:101::-;14791:26;2996:10;14954:107;:::i;14791:26::-;14783:50;;;;-1:-1:-1;;;14783:50:0;;;;;;;:::i;:::-;25735:15:::1;:23:::0;25665:101::o;20244:290::-;-1:-1:-1;;;;;20345:22:0;;;;;;:50;;-1:-1:-1;;;;;;20371:24:0;;;;20345:50;20337:80;;;;-1:-1:-1;;;20337:80:0;;6791:2:1;20337:80:0;;;6773:21:1;6830:2;6810:18;;;6803:30;-1:-1:-1;;;6849:18:1;;;6842:47;6906:18;;20337:80:0;6589:341:1;20337:80:0;-1:-1:-1;;;;;20428:21:0;;;;;;;:11;:21;;;;;;;;:33;;;;;;;;;;;;;:42;;;20486:38;;1849:25:1;;;20486:38:0;;1822:18:1;20486:38:0;;;;;;;20244:290;;;:::o;20668:1718::-;14573:7;14600:6;-1:-1:-1;;;;;20788:13:0;;;14600:6;;20788:13;;;;:51;;-1:-1:-1;;;;;;20819:20:0;;;;;;:14;:20;;;;;;;;20818:21;20788:51;:88;;;;-1:-1:-1;;;;;;20858:18:0;;;;;;:14;:18;;;;;;;;20857:19;20788:88;:123;;;;-1:-1:-1;;;;;;20894:17:0;;15708:42;20894:17;;20788:123;:159;;;;-1:-1:-1;;;;;;20928:19:0;;20942:4;20928:19;;20788:159;:195;;;;-1:-1:-1;20970:13:0;;-1:-1:-1;;;;;20964:19:0;;;20970:13;;20964:19;;20788:195;:227;;;;-1:-1:-1;14573:7:0;14600:6;-1:-1:-1;;;;;21000:15:0;;;14600:6;;21000:15;;20788:227;20784:368;;;-1:-1:-1;;;;;18582:16:0;;21031:18;18582:16;;;:7;:16;;;;;;21113:15;;21089:19;21102:6;18582:16;21089:19;:::i;:::-;21088:40;;21080:70;;;;-1:-1:-1;;;21080:70:0;;7137:2:1;21080:70:0;;;7119:21:1;7176:2;7156:18;;;7149:30;-1:-1:-1;;;7195:18:1;;;7188:48;7253:18;;21080:70:0;6935:342:1;21080:70:0;21016:136;20784:368;14573:7;14600:6;-1:-1:-1;;;;;21168:15:0;;;14600:6;;21168:15;;;;:40;;-1:-1:-1;;;;;;21188:20:0;;;;;;:14;:20;;;;;;;;21187:21;21168:40;21164:117;;;21241:12;;21231:6;:22;;21223:58;;;;-1:-1:-1;;;21223:58:0;;7484:2:1;21223:58:0;;;7466:21:1;7523:2;7503:18;;;7496:30;7562:25;7542:18;;;7535:53;7605:18;;21223:58:0;7282:347:1;21223:58:0;-1:-1:-1;;;;;21298:20:0;;;;;;:14;:20;;;;;;;;21297:21;:44;;;;-1:-1:-1;;;;;;21323:18:0;;;;;;:14;:18;;;;;;;;21322:19;21297:44;21294:98;;;21365:11;;-1:-1:-1;;;21365:11:0;;;;21357:23;;;;-1:-1:-1;;;21357:23:0;;7836:2:1;21357:23:0;;;7818:21:1;-1:-1:-1;7855:18:1;;;7848:29;7894:18;;21357:23:0;7634:284:1;21357:23:0;-1:-1:-1;;;;;21412:18:0;;;;;;:38;;-1:-1:-1;;;;;;21434:16:0;;;;21412:38;21404:72;;;;-1:-1:-1;;;21404:72:0;;8125:2:1;21404:72:0;;;8107:21:1;8164:2;8144:18;;;8137:30;-1:-1:-1;;;8183:18:1;;;8176:51;8244:18;;21404:72:0;7923:345:1;21404:72:0;21504:1;21495:6;:10;21487:60;;;;-1:-1:-1;;;21487:60:0;;8475:2:1;21487:60:0;;;8457:21:1;8514:2;8494:18;;;8487:30;8553:34;8533:18;;;8526:62;-1:-1:-1;;;8604:18:1;;;8597:35;8649:19;;21487:60:0;8273:401:1;21487:60:0;21591:11;;;;;;;;21580:7;;:22;;;;:57;;-1:-1:-1;21621:16:0;;-1:-1:-1;;;21621:16:0;;;;21620:17;21580:57;:95;;;;-1:-1:-1;21662:13:0;;-1:-1:-1;;;;;21654:21:0;;;21662:13;;21654:21;;21580:95;:133;;;;-1:-1:-1;21692:21:0;;-1:-1:-1;;;21692:21:0;;;;21580:133;21563:443;;;21819:4;21770:28;18582:16;;;:7;:16;;;;;;21866:12;;21843:35;;21840:78;;;-1:-1:-1;21904:12:0;;21840:78;21932:7;:11;;-1:-1:-1;;21932:11:0;;;21958:36;21973:20;21958:14;:36::i;:::-;21739:267;21563:443;-1:-1:-1;;;;;22080:24:0;;22026:12;22080:24;;;:18;:24;;;;;;22041:4;;22026:12;22080:24;;;:50;;-1:-1:-1;;;;;;22108:22:0;;;;;;:18;:22;;;;;;;;22080:50;22077:239;;;22156:5;22146:15;;22077:239;;;22216:13;;-1:-1:-1;;;;;22216:13:0;;;22208:21;;;;22205:72;;-1:-1:-1;22257:4:0;22205:72;22293:7;:9;;;;;:7;:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;22077:239;22328:48;22343:4;22349:2;22353:6;22361:7;22370:5;22328:14;:48::i;:::-;20771:1615;;20668:1718;;;:::o;2445:206::-;2531:7;2592:12;2584:6;;;;2576:29;;;;-1:-1:-1;;;2576:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2627:5:0;;;2445:206::o;2017:98::-;2075:7;2102:5;2106:1;2102;:5;:::i;:::-;2095:12;2017:98;-1:-1:-1;;;2017:98:0:o;20542:118::-;;;;:::o;22526:1509::-;17102:16;:23;;-1:-1:-1;;;;17102:23:0;-1:-1:-1;;;17102:23:0;;;22665:12:::1;::::0;17102:23;;22680:3:::1;::::0;22642:35:::1;::::0;:20;:35:::1;:::i;:::-;:41;;;;:::i;:::-;22617:66;;22718:14;22708:7;;:24;;;;:::i;:::-;22698:7;:34:::0;15708:42:::1;22770:20;::::0;:7:::1;:20;::::0;;;:37:::1;::::0;22793:14;;22770:37:::1;:::i;:::-;22747:7;:20;::::0;;:60;22863:4:::1;22747:20;22847:22:::0;;;22747:20;22847:22;;;:39:::1;::::0;22872:14;;22847:39:::1;:::i;:::-;22838:4;22822:22;::::0;;;:7:::1;:22;::::0;;;;:64;;;;22949:17:::1;::::0;22969:3:::1;::::0;22926:40:::1;::::0;:20;:40:::1;:::i;:::-;:46;;;;:::i;:::-;22904:68;;22987:19;23046:3;23032:11;;23009:20;:34;;;;:::i;:::-;:40;;;;:::i;:::-;22987:62;;23064:25;23132:3;23115:14;;23092:20;:37;;;;:::i;:::-;:43;;;;:::i;:::-;23064:71:::0;-1:-1:-1;23180:21:0::1;23216:63;23267:11:::0;23233:31:::1;23253:11:::0;23064:71;23233:31:::1;:::i;:::-;:45;;;;:::i;:::-;23216:16;:63::i;:::-;23294:17;23314:41;23338:17:::0;23314:21:::1;:41;:::i;:::-;23294:61;;23372:15;23454:11;;23434:17;;23417:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;23390:17;::::0;:23:::1;::::0;23410:3:::1;23390:23;:::i;:::-;:76;;;;:::i;:::-;23372:94:::0;-1:-1:-1;23481:13:0::1;23519:3;23497:19;23372:94:::0;23497:9;:19:::1;:::i;:::-;:25;;;;:::i;:::-;23481:41;;23539:15;23615:11;;23595:17;;23578:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;23557:11;::::0;:17:::1;::::0;23571:3:::1;23557:17;:::i;:::-;:70;;;;:::i;:::-;23539:88:::0;-1:-1:-1;23642:13:0::1;23680:3;23658:19;23539:88:::0;23658:9;:19:::1;:::i;:::-;:25;;;;:::i;:::-;23642:41:::0;-1:-1:-1;23702:60:0::1;23715:17:::0;23642:41;23735:17:::1;23747:5:::0;23735:9;:17:::1;:::i;:::-;:25;;;;:::i;:::-;23702:12;:60::i;:::-;23782:81;23797:17:::0;23837:5;23817:17:::1;23829:5:::0;23817:9;:17:::1;:::i;:::-;:25;;;;:::i;:::-;23782:81;::::0;;9194:25:1;;;9250:2;9235:18;;9228:34;;;;9278:18;;9271:34;;;9182:2;9167:18;23782:81:0::1;;;;;;;23893:16;::::0;23880:37:::1;::::0;-1:-1:-1;;;;;23893:16:0::1;23911:5:::0;23880:12:::1;:37::i;:::-;23995:10;::::0;23946:21:::1;::::0;-1:-1:-1;23982:35:0::1;::::0;-1:-1:-1;;;;;23995:10:0::1;23946:21:::0;23982:12:::1;:35::i;:::-;-1:-1:-1::0;;17148:16:0;:24;;-1:-1:-1;;;;17148:24:0;;;-1:-1:-1;;;;;;;;;22526:1509:0:o;25874:1452::-;26019:7;26015:1302;;-1:-1:-1;;;;;26062:15:0;;;;;;:7;:15;;;;;;:23;;26078:7;;26062:23;:::i;:::-;-1:-1:-1;;;;;26044:15:0;;;;;;;:7;:15;;;;;;:41;;;;26121:18;;;;;;;:26;;26140:7;;26121:26;:::i;:::-;-1:-1:-1;;;;;26100:18:0;;;;;;;:7;:18;;;;;;;:47;;;;26167:36;;;;;;-1:-1:-1;;;;;;;;;;;26167:36:0;;;26195:7;1849:25:1;;1837:2;1822:18;;1703:177;26167:36:0;;;;;;;;-1:-1:-1;;;;;;;26223:24:0;;;26220:67;;26280:7;26272;;:15;;;;:::i;:::-;26262:7;:25;26220:67;26015:1302;;;26315:5;26311:1006;;;26338:14;26375:3;26363:11;;26355:7;:19;;;;:::i;:::-;:23;;;;:::i;:::-;26338:40;-1:-1:-1;26393:23:0;26419:14;26338:40;26419:7;:14;:::i;:::-;-1:-1:-1;;;;;26468:15:0;;;;;;:7;:15;;;;;;26393:40;;-1:-1:-1;26468:23:0;;26484:7;;26468:23;:::i;:::-;-1:-1:-1;;;;;26450:15:0;;;;;;;:7;:15;;;;;;:41;;;;26527:18;;;;;;;:34;;26546:15;;26527:34;:::i;:::-;-1:-1:-1;;;;;26506:18:0;;;;;;:7;:18;;;;;;:55;;;;26617:4;26601:22;;;;:29;;26624:6;;26601:29;:::i;:::-;26592:4;26576:22;;;;:7;:22;;;;;;;;;:54;;;;26653:44;1849:25:1;;;-1:-1:-1;;;;;26653:44:0;;;;;;;;-1:-1:-1;;;;;;;;;;;26653:44:0;1822:18:1;26653:44:0;;;;;;;-1:-1:-1;;;;;;;26717:24:0;;;26714:75;;26774:15;26766:7;;:23;;;;:::i;:::-;26756:7;:33;26714:75;26321:498;;26311:1006;;;26842:15;26881:3;26868:12;;26860:7;:20;;;;:::i;:::-;:24;;;;:::i;:::-;26842:42;-1:-1:-1;26899:23:0;26925:15;26842:42;26925:7;:15;:::i;:::-;-1:-1:-1;;;;;26975:15:0;;;;;;:7;:15;;;;;;26899:41;;-1:-1:-1;26975:23:0;;26991:7;;26975:23;:::i;:::-;-1:-1:-1;;;;;26957:15:0;;;;;;;:7;:15;;;;;;:41;;;;27034:18;;;;;;;:34;;27053:15;;27034:34;:::i;:::-;-1:-1:-1;;;;;27013:18:0;;;;;;:7;:18;;;;;;:55;;;;27124:4;27108:22;;;;:30;;27131:7;;27108:30;:::i;:::-;27099:4;27083:22;;;;:7;:22;;;;;;;;;:55;;;;27161:44;1849:25:1;;;-1:-1:-1;;;;;27161:44:0;;;;;;;;-1:-1:-1;;;;;;;;;;;27161:44:0;1822:18:1;27161:44:0;;;;;;;-1:-1:-1;;;;;;;27225:24:0;;;27222:75;;27282:15;27274:7;;:23;;;;:::i;:::-;27264:7;:33;27222:75;26825:492;;25874:1452;;;;;:::o;24043:474::-;24135:16;;;24149:1;24135:16;;;;;;;;24111:21;;24135:16;;;;;;;;;;-1:-1:-1;24135:16:0;24111:40;;24180:4;24162;24167:1;24162:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24162:23:0;;;:7;;;;;;;;;;:23;;;;24206:15;;:22;;;-1:-1:-1;;;24206:22:0;;;;:15;;;;;:20;;:22;;;;;24162:7;;24206:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24196:4;24201:1;24196:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24196:32:0;;;:7;;;;;;;;;:32;24271:15;;24239:62;;24256:4;;24271:15;24289:11;24239:8;:62::i;:::-;24312:15;;:197;;-1:-1:-1;;;24312:197:0;;-1:-1:-1;;;;;24312:15:0;;;;:66;;:197;;24393:11;;24312:15;;24436:4;;24463;;24483:15;;24312:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24098:419;24043:474;:::o;24525:368::-;24640:15;;24608:62;;24625:4;;-1:-1:-1;;;;;24640:15:0;24658:11;24608:8;:62::i;:::-;24681:15;;:204;;-1:-1:-1;;;24681:204:0;;24753:4;24681:204;;;11170:34:1;11220:18;;;11213:34;;;24681:15:0;11263:18:1;;;11256:34;;;11306:18;;;11299:34;15708:42:0;11349:19:1;;;11342:44;24859:15:0;11402:19:1;;;11395:35;-1:-1:-1;;;;;24681:15:0;;;;:31;;24720:9;;11104:19:1;;24681:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;22398:120::-;22483:23;;-1:-1:-1;;;;;22483:15:0;;;:23;;;;;22499:6;;22483:23;;;;22499:6;22483:15;:23;;;;;;;;;;;;;;;;;;;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:248::-;1283:6;1291;1344:2;1332:9;1323:7;1319:23;1315:32;1312:52;;;1360:1;1357;1350:12;1312:52;-1:-1:-1;;1383:23:1;;;1453:2;1438:18;;;1425:32;;-1:-1:-1;1215:248:1:o;1885:456::-;1962:6;1970;1978;2031:2;2019:9;2010:7;2006:23;2002:32;1999:52;;;2047:1;2044;2037:12;1999:52;2086:9;2073:23;2105:31;2130:5;2105:31;:::i;:::-;2155:5;-1:-1:-1;2212:2:1;2197:18;;2184:32;2225:33;2184:32;2225:33;:::i;:::-;1885:456;;2277:7;;-1:-1:-1;;;2331:2:1;2316:18;;;;2303:32;;1885:456::o;2743:315::-;2811:6;2819;2872:2;2860:9;2851:7;2847:23;2843:32;2840:52;;;2888:1;2885;2878:12;2840:52;2924:9;2911:23;2901:33;;2984:2;2973:9;2969:18;2956:32;2997:31;3022:5;2997:31;:::i;:::-;3047:5;3037:15;;;2743:315;;;;;:::o;3063:247::-;3122:6;3175:2;3163:9;3154:7;3150:23;3146:32;3143:52;;;3191:1;3188;3181:12;3143:52;3230:9;3217:23;3249:31;3274:5;3249:31;:::i;3539:180::-;3598:6;3651:2;3639:9;3630:7;3626:23;3622:32;3619:52;;;3667:1;3664;3657:12;3619:52;-1:-1:-1;3690:23:1;;3539:180;-1:-1:-1;3539:180:1:o;3724:388::-;3792:6;3800;3853:2;3841:9;3832:7;3828:23;3824:32;3821:52;;;3869:1;3866;3859:12;3821:52;3908:9;3895:23;3927:31;3952:5;3927:31;:::i;:::-;3977:5;-1:-1:-1;4034:2:1;4019:18;;4006:32;4047:33;4006:32;4047:33;:::i;4117:335::-;4319:2;4301:21;;;4358:2;4338:18;;;4331:30;-1:-1:-1;;;4392:2:1;4377:18;;4370:41;4443:2;4428:18;;4117:335::o;4457:127::-;4518:10;4513:3;4509:20;4506:1;4499:31;4549:4;4546:1;4539:15;4573:4;4570:1;4563:15;4589:125;4654:9;;;4675:10;;;4672:36;;;4688:18;;:::i;5436:184::-;5506:6;5559:2;5547:9;5538:7;5534:23;5530:32;5527:52;;;5575:1;5572;5565:12;5527:52;-1:-1:-1;5598:16:1;;5436:184;-1:-1:-1;5436:184:1:o;5625:168::-;5698:9;;;5729;;5746:15;;;5740:22;;5726:37;5716:71;;5767:18;;:::i;5798:217::-;5838:1;5864;5854:132;;5908:10;5903:3;5899:20;5896:1;5889:31;5943:4;5940:1;5933:15;5971:4;5968:1;5961:15;5854:132;-1:-1:-1;6000:9:1;;5798:217::o;6307:277::-;6374:6;6427:2;6415:9;6406:7;6402:23;6398:32;6395:52;;;6443:1;6440;6433:12;6395:52;6475:9;6469:16;6528:5;6521:13;6514:21;6507:5;6504:32;6494:60;;6550:1;6547;6540:12;8679:175;8716:3;8760:4;8753:5;8749:16;8789:4;8780:7;8777:17;8774:43;;8797:18;;:::i;:::-;8846:1;8833:15;;8679:175;-1:-1:-1;;8679:175:1:o;8859:128::-;8926:9;;;8947:11;;;8944:37;;;8961:18;;:::i;9448:127::-;9509:10;9504:3;9500:20;9497:1;9490:31;9540:4;9537:1;9530:15;9564:4;9561:1;9554:15;9580:251;9650:6;9703:2;9691:9;9682:7;9678:23;9674:32;9671:52;;;9719:1;9716;9709:12;9671:52;9751:9;9745:16;9770:31;9795:5;9770:31;:::i;9836:980::-;10098:4;10146:3;10135:9;10131:19;10177:6;10166:9;10159:25;10203:2;10241:6;10236:2;10225:9;10221:18;10214:34;10284:3;10279:2;10268:9;10264:18;10257:31;10308:6;10343;10337:13;10374:6;10366;10359:22;10412:3;10401:9;10397:19;10390:26;;10451:2;10443:6;10439:15;10425:29;;10472:1;10482:195;10496:6;10493:1;10490:13;10482:195;;;10561:13;;-1:-1:-1;;;;;10557:39:1;10545:52;;10652:15;;;;10617:12;;;;10593:1;10511:9;10482:195;;;-1:-1:-1;;;;;;;10733:32:1;;;;10728:2;10713:18;;10706:60;-1:-1:-1;;;10797:3:1;10782:19;10775:35;10694:3;9836:980;-1:-1:-1;;;9836:980:1:o;11441:306::-;11529:6;11537;11545;11598:2;11586:9;11577:7;11573:23;11569:32;11566:52;;;11614:1;11611;11604:12;11566:52;11643:9;11637:16;11627:26;;11693:2;11682:9;11678:18;11672:25;11662:35;;11737:2;11726:9;11722:18;11716:25;11706:35;;11441:306;;;;;:::o

Swarm Source

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