ETH Price: $3,411.08 (-1.50%)
Gas: 7 Gwei

Token

ScorcastAI (CAST)
 

Overview

Max Total Supply

100,000,000 CAST

Holders

222 ( -0.450%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
23,778.135639831 CAST

Value
$0.00
0xf7756e34a2278c3f241f46af398436e1641f5d42
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

ScorcastAI - Advanced Sports Analytics & Predictive Modelling With AI & Machine Learning

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ScorcastAI

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-13
*/

/*

Website: https://scorcast.ai
Whitepaper: https://docs.scorcast.ai
Telegram: https://t.me/Scorcast 
Twitter: https://x.com/ScorcastAI

*/

// SPDX-License-Identifier: No

pragma solidity = 0.8.19;

//--- Context ---//
abstract contract Context {
    constructor() {
    }

    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

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

//--- Ownable ---//
abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

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

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    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);
    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 swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    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 IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}



//--- Interface for ERC20 ---//
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

//--- Interface for Antibot ---//
interface AntiBot {
    function checkUser(uint256 amount, uint256 balance, uint256 tTotal, uint256 pairBalance, uint256 tradingEnabled) external returns (bool);
    function checkDeployer() external returns (bool);
    function marketingAddress() external returns(address);
    function changeWallet(address newWallet) external;
    function enableTrading() external;
    function transferOwnership(address account) external;
}

//--- Contract v3 ---//
contract ScorcastAI is Context, Ownable,IERC20 {

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


    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noFee;
    mapping (address => bool) private liquidityAdd;
    mapping (address => bool) private isLpPair;
    mapping (address => bool) private isPresaleAddress;
    mapping (address => uint256) private balance;



    uint256 constant public _totalSupply = 100_000_000 * 10**9;
    uint256 constant public swapThreshold = _totalSupply / 5_000;
    uint256 private maxWallet = _totalSupply / 10_000 * 75;
    uint256 public buyfee = 40;
    uint256 public sellfee = 40;
    uint256 constant public transferfee = 0;
    uint256 constant public fee_denominator = 1_000;
    bool private canSwapFees = false;
    address payable private marketingAddress1 = payable(0x09FaF5890202560Adc0EcbCF59e5d17D3e9e2fe8); // build: 0x09FaF5890202560Adc0EcbCF59e5d17D3e9e2fe8
    address payable private marketingAddress2 = payable(0x1659Ef21CBAE06AcF75c8a53F766d7B1930a1F92); // build: 0x1659Ef21CBAE06AcF75c8a53F766d7B1930a1F92
    address payable private marketingAddress3 = payable(0x644f5EF0c16A23f6FFd933934881d0042cbF947A); // build: 0x644f5EF0c16A23f6FFd933934881d0042cbF947A
    address payable private marketingAddress4 = payable(0x9039E65E249b54F9395cf8bc385c24c24C4ac99b); // build: 0x9039E65E249b54F9395cf8bc385c24c24C4ac99b
    AntiBot private AX;
    bool private avoidMaxTxLimits = false;




    IRouter02 public swapRouter;
    string constant private _name = "ScorcastAI";
    string constant private _symbol = "CAST";
    string constant public copyright = "analytixaudit.com";
    uint8 constant private _decimals = 9;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address public lpPair;
    bool public isTradingEnabled = false;
    bool private inSwap;
    bool public isContract = false;
    uint256 public enableTradingTime;
    bool public customTaxAtLaunch = true;

        modifier inSwapFlag {
        inSwap = true;
        _;
        inSwap = false;
    }


    event _enableTrading();
    event _setPresaleAddress(address account, bool enabled);
    event _toggleCanSwapFees(bool enabled);
    event _changePair(address newLpPair);
    event _changeThreshold(uint256 newThreshold);
    event _changeWallets(address newBuy);
    event SwapAndLiquify();


    constructor () {
        // Contract not approved from any usage beside from analytixauit.com developers
        _noFee[msg.sender] = true;

        if (block.chainid == 8453) {
            swapRouter = IRouter02(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24);
            AX = AntiBot(0xd95468d715cc6161f4aD3f1a68793333586Aa01e);
        } else if (block.chainid == 97) {
            swapRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
            AX = AntiBot(0xaE9d1586485Ed1A93A3A6Bf08058a16A9d5bB301);
        } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3) {
            swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            AX = AntiBot(0x3e8aE5CF94db1083CB9F14222690EDad82FA8e3d);
        } else {
            revert("Chain not valid");
        }


        liquidityAdd[msg.sender] = true;
        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

        require(AX.checkDeployer());
            if(AX.checkDeployer()) {
            isContract = true;
        }
        canSwapFees = true;

        lpPair = IFactoryV2(swapRouter.factory()).createPair(swapRouter.WETH(), address(this));
        isLpPair[lpPair] = true;
        _approve(msg.sender, address(swapRouter), type(uint256).max);
        _approve(address(this), address(swapRouter), type(uint256).max);


    }

    receive() external payable {}

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

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

        function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

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

        function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }
    function isNoFeeWallet(address account) external view returns(bool) {
        return _noFee[account];
    }

    function setNoFeeWallet(address account, bool enabled) public onlyOwner {
        require(account != address(0),"Freddy: Account is zero address");
        _noFee[account] = enabled;
    }

    function isLimitedAddress(address ins, address out) internal view returns (bool) {

        bool isLimited = ins != owner()
            && out != owner()
            && msg.sender != owner()
            && !liquidityAdd[ins]  && !liquidityAdd[out] && out != address(0) && out != address(this);
            return isLimited;
    }

    function is_buy(address ins, address out) internal view returns (bool) {
        bool _is_buy = !isLpPair[out] && isLpPair[ins];
        return _is_buy;
    }

    function is_sell(address ins, address out) internal view returns (bool) { 
        bool _is_sell = isLpPair[out] && !isLpPair[ins];
        return _is_sell;
    }

    function canSwap(address ins, address out) internal view returns (bool) {
        bool canswap = canSwapFees && !isPresaleAddress[ins] && !isPresaleAddress[out];

        return canswap;
    }

    function toggleCanSwapFees(bool yesno) external onlyOwner {
        require(canSwapFees != yesno,"Bool is the same");
        canSwapFees = yesno;
        emit _toggleCanSwapFees(yesno);
    }

    function _transfer(address from, address to, uint256 amount) internal returns  (bool) {
        bool takeFee = true;
        require(to != address(0), "ERC20: transfer to the zero address");
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (isLimitedAddress(from,to)) {
            require(isTradingEnabled,"Trading is not enabled");
            if(!avoidMaxTxLimits) {
            if(!isLpPair[to] && from != address(this) && to != address(this))  {require(balanceOf(to) + amount <= maxWallet,"maxWallet is 2%");}}
        }

        


        if(is_sell(from, to) &&  !inSwap && canSwap(from, to)) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance >= swapThreshold) {
                if(contractTokenBalance > 0) internalSwap(contractTokenBalance);
             }
        }

        if (_noFee[from] || _noFee[to]){
            takeFee = false;
        }
        
        balance[from] -= amount; uint256 amountAfterFee = (takeFee) ? takeTaxes(from, is_buy(from, to), is_sell(from, to), amount) : amount;
        balance[to] += amountAfterFee; emit Transfer(from, to, amountAfterFee);

        return true;

    }

    function changeWallets(address mkt1, address mkt2, address mkt3, address mkt4) external onlyOwner {
        require(mkt1 != address(0),"Freddy: Address Zero");
        require(mkt2 != address(0),"Freddy: Address Zero");
        require(mkt3 != address(0),"Freddy: Address Zero");
        require(mkt4 != address(0),"Freddy: Address Zero");
        marketingAddress1 = payable(mkt1);
        marketingAddress2 = payable(mkt2);
        marketingAddress3 = payable(mkt3);
        marketingAddress4 = payable(mkt4);
        require(isContract);
    }


    function takeTaxes(address from, bool isbuy, bool issell, uint256 amount) internal returns (uint256) {
        uint256 fee;
        if (isbuy)  fee = buyfee;  else if (issell)  fee = sellfee;  else  fee = transferfee; 


        if (customTaxAtLaunch && block.timestamp <= enableTradingTime + 16 minutes) {
            if(isbuy) fee = 100;
            if(issell) fee = 100;
        }

        if (customTaxAtLaunch && block.timestamp <= enableTradingTime + 12 minutes) {
            if(isbuy) fee = 200;
            if(issell) fee = 200;
        }
        
        if (customTaxAtLaunch && block.timestamp <= enableTradingTime + 8 minutes) {
            if(isbuy) fee = 300;
            if(issell) fee = 300;
        }

        if ((customTaxAtLaunch && block.timestamp <= enableTradingTime + 4 minutes) || enableTradingTime == 0) {
            if(isbuy) fee = 400;
            if(issell) fee = 400;
        }

        if (fee == 0)  return amount; 

        uint256 feeAmount = amount * fee / fee_denominator;
        if (feeAmount > 0) {

            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
            
        }
        return amount - feeAmount;
    }

    function internalSwap(uint256 contractTokenBalance) internal inSwapFlag {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        if (_allowances[address(this)][address(swapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(swapRouter)] = type(uint256).max;
        }

        try swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }
        bool success;

        uint256 first = address(this).balance / 40 * 15;
        uint256 second = address(this).balance / 40 * 10;
        uint256 third = address(this).balance / 40 * 10;
        uint256 fourth = address(this).balance / 40 * 5;

        if(first > 0) (success,) = marketingAddress1.call{value: first, gas: 35000}("");
        if(second > 0) (success,) = marketingAddress2.call{value: second, gas: 35000}("");
        if(third > 0) (success,) = marketingAddress3.call{value: third, gas: 35000}("");
        if(fourth > 0) (success,) = marketingAddress4.call{value: fourth, gas: 35000}("");
    }

        function allowedToBuy(address account, bool yesno) external onlyOwner {
            liquidityAdd[account] = yesno;

            emit _setPresaleAddress(account, yesno);
        }

        function disableCustomTaxAtLaunch() external onlyOwner {
            customTaxAtLaunch = false;
        }

        function zeroLimits() external onlyOwner {
            require(!avoidMaxTxLimits,"Already initalized");
            maxWallet = _totalSupply;
            avoidMaxTxLimits = true;
        }

        function lowerTaxes(uint256 buy, uint256 sell) external onlyOwner {
            require(buy <= buyfee);
            require(sell <= sellfee);

            buyfee = buy;
            sellfee = sell;
        }


        function internalEnableTrading() external {
            require(AX.checkDeployer());
            require(!isTradingEnabled, "Trading already enabled");


            customTaxAtLaunch = true;
            enableTradingTime = block.timestamp;
            isTradingEnabled = true;
            emit _enableTrading();
        }

        function returnLimits() external view returns(uint256) {
            return maxWallet;
        }
}

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":[],"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLpPair","type":"address"}],"name":"_changePair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"_changeThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newBuy","type":"address"}],"name":"_changeWallets","type":"event"},{"anonymous":false,"inputs":[],"name":"_enableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_setPresaleAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_toggleCanSwapFees","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"yesno","type":"bool"}],"name":"allowedToBuy","outputs":[],"stateMutability":"nonpayable","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":"buyfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"mkt1","type":"address"},{"internalType":"address","name":"mkt2","type":"address"},{"internalType":"address","name":"mkt3","type":"address"},{"internalType":"address","name":"mkt4","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"copyright","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"customTaxAtLaunch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableCustomTaxAtLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTradingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee_denominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"internalEnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isNoFeeWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"lowerTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"returnLimits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setNoFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"yesno","type":"bool"}],"name":"toggleCanSwapFees","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a61271067016345785d8a00006200072e565b6200002790604b62000751565b60075560286008819055600955600a80547409faf5890202560adc0ecbcf59e5d17d3e9e2fe8006001600160a81b0319909116179055600b80546001600160a01b0319908116731659ef21cbae06acf75c8a53f766d7b1930a1f9217909155600c8054821673644f5ef0c16a23f6ffd933934881d0042cbf947a179055600d8054909116739039e65e249b54f9395cf8bc385c24c24c4ac99b179055600e805460ff60a01b191690556010805462ff00ff60a01b191690556012805460ff19166001179055348015620000f957600080fd5b506200010533620005e1565b336000908152600260205260409020805460ff1916600117905546612105036200017757600f80546001600160a01b0319908116734752ba5dbc23f44d87826276bf6fd6b1c372ad2417909155600e805490911673d95468d715cc6161f4ad3f1a68793333586aa01e1790556200027d565b46606103620001ce57600f80546001600160a01b031990811673d99d1c33f9fc3444f8101754abc46c52416550d117909155600e805490911673ae9d1586485ed1a93a3a6bf08058a16a9d5bb3011790556200027d565b4660011480620001de5750466004145b80620001ea5750466003145b156200023e57600f80546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155600e8054909116733e8ae5cf94db1083cb9f14222690edad82fa8e3d1790556200027d565b60405162461bcd60e51b815260206004820152600f60248201526e10da185a5b881b9bdd081d985b1a59608a1b60448201526064015b60405180910390fd5b336000818152600360209081526040808320805460ff191660011790556006825280832067016345785d8a00009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600e60009054906101000a90046001600160a01b03166001600160a01b031663572e241a6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562000334573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035a91906200077d565b6200036457600080fd5b600e60009054906101000a90046001600160a01b03166001600160a01b031663572e241a6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620003ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e091906200077d565b15620003fa576010805460ff60b01b1916600160b01b1790555b600a805460ff19166001179055600f546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa15801562000452573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004789190620007a8565b6001600160a01b031663c9c65396600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004da573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005009190620007a8565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200054d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005739190620007a8565b601080546001600160a01b0319166001600160a01b039283169081179091556000908152600460205260409020805460ff19166001179055600f54620005bf9133911660001962000631565b600f54620005db9030906001600160a01b031660001962000631565b620007d3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166200067f5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640162000274565b6001600160a01b038216620006cd5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640162000274565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000826200074c57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176200077757634e487b7160e01b600052601160045260246000fd5b92915050565b6000602082840312156200079057600080fd5b81518015158114620007a157600080fd5b9392505050565b600060208284031215620007bb57600080fd5b81516001600160a01b0381168114620007a157600080fd5b611e5680620007e36000396000f3fe60806040526004361061021e5760003560e01c806354de7bee1161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e1461063e578063e9451f5f14610684578063f2fde38b1461069a578063f7ec2f35146106ba578063f8a47781146106db57600080fd5b806395d89b411461057e578063a63ae9c7146105ab578063a9059cbb146105e8578063c31c9c0714610608578063dc9d75b01461062857600080fd5b8063715018a6116100f2578063715018a61461050b578063765ffa1314610520578063893d20e8146105405780638da5cb5b1461054057806393c173221461055e57600080fd5b806354de7bee1461048b57806357d0a982146104a05780635b69627a146104c057806370a08231146104d557600080fd5b80631f91af65116101a6578063313ce56711610175578063313ce567146104035780633ce2ad491461041f5780633eaaf86b14610435578063452ed4f11461045157806349f6ee241461047157600080fd5b80631f91af651461038057806323b872dd1461039557806327889862146103b55780632cd077b5146103ee57600080fd5b8063095ea7b3116101ed578063095ea7b3146102ed5780630faba5541461030d578063111a60b01461032f57806318160ddd1461034f5780631dc369451461036a57600080fd5b806303fd2a451461022a5780630445b6671461025d578063064a59d01461028057806306fdde03146102b157600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061024061dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026957600080fd5b506102726106f0565b604051908152602001610254565b34801561028c57600080fd5b506010546102a190600160a01b900460ff1681565b6040519015158152602001610254565b3480156102bd57600080fd5b5060408051808201909152600a81526953636f7263617374414960b01b60208201525b6040516102549190611a83565b3480156102f957600080fd5b506102a1610308366004611ae6565b610707565b34801561031957600080fd5b5061032d610328366004611b20565b61071e565b005b34801561033b57600080fd5b5061032d61034a366004611b59565b6107d2565b34801561035b57600080fd5b5067016345785d8a0000610272565b34801561037657600080fd5b5061027260085481565b34801561038c57600080fd5b5061032d610890565b3480156103a157600080fd5b506102a16103b0366004611b7d565b61092a565b3480156103c157600080fd5b506102a16103d0366004611bbe565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156103fa57600080fd5b50600754610272565b34801561040f57600080fd5b5060405160098152602001610254565b34801561042b57600080fd5b5061027260115481565b34801561044157600080fd5b5061027267016345785d8a000081565b34801561045d57600080fd5b50601054610240906001600160a01b031681565b34801561047d57600080fd5b506012546102a19060ff1681565b34801561049757600080fd5b50610272600081565b3480156104ac57600080fd5b5061032d6104bb366004611bdb565b6109a2565b3480156104cc57600080fd5b5061032d6109f5565b3480156104e157600080fd5b506102726104f0366004611bbe565b6001600160a01b031660009081526006602052604090205490565b34801561051757600080fd5b5061032d610b20565b34801561052c57600080fd5b5061032d61053b366004611b20565b610b56565b34801561054c57600080fd5b506000546001600160a01b0316610240565b34801561056a57600080fd5b5061032d610579366004611bfd565b610be3565b34801561058a57600080fd5b5060408051808201909152600481526310d054d560e21b60208201526102e0565b3480156105b757600080fd5b506102e060405180604001604052806011815260200170616e616c7974697861756469742e636f6d60781b81525081565b3480156105f457600080fd5b506102a1610603366004611ae6565b610d1c565b34801561061457600080fd5b50600f54610240906001600160a01b031681565b34801561063457600080fd5b506102726103e881565b34801561064a57600080fd5b50610272610659366004611c59565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561069057600080fd5b5061027260095481565b3480156106a657600080fd5b5061032d6106b5366004611bbe565b610d33565b3480156106c657600080fd5b506010546102a190600160b01b900460ff1681565b3480156106e757600080fd5b5061032d610dce565b61070461138867016345785d8a0000611c9d565b81565b6000610714338484610e04565b5060015b92915050565b6000546001600160a01b031633146107515760405162461bcd60e51b815260040161074890611cbf565b60405180910390fd5b6001600160a01b0382166107a75760405162461bcd60e51b815260206004820152601f60248201527f4672656464793a204163636f756e74206973207a65726f2061646472657373006044820152606401610748565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107fc5760405162461bcd60e51b815260040161074890611cbf565b600a5481151560ff9091161515036108495760405162461bcd60e51b815260206004820152601060248201526f426f6f6c206973207468652073616d6560801b6044820152606401610748565b600a805460ff19168215159081179091556040519081527f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e89060200160405180910390a150565b6000546001600160a01b031633146108ba5760405162461bcd60e51b815260040161074890611cbf565b600e54600160a01b900460ff16156109095760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481a5b9a5d185b1a5e995960721b6044820152606401610748565b67016345785d8a0000600755600e805460ff60a01b1916600160a01b179055565b6001600160a01b03831660009081526001602090815260408083203384529091528120546000191461098f576001600160a01b038416600090815260016020908152604080832033845290915281208054849290610989908490611cf4565b90915550505b61099a848484610efd565b949350505050565b6000546001600160a01b031633146109cc5760405162461bcd60e51b815260040161074890611cbf565b6008548211156109db57600080fd5b6009548111156109ea57600080fd5b600891909155600955565b600e60009054906101000a90046001600160a01b03166001600160a01b031663572e241a6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6e9190611d07565b610a7757600080fd5b601054600160a01b900460ff1615610ad15760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c65640000000000000000006044820152606401610748565b6012805460ff19166001179055426011556010805460ff60a01b1916600160a01b1790556040517fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686890600090a1565b6000546001600160a01b03163314610b4a5760405162461bcd60e51b815260040161074890611cbf565b610b5460006112f3565b565b6000546001600160a01b03163314610b805760405162461bcd60e51b815260040161074890611cbf565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b764513910160405180910390a15050565b6000546001600160a01b03163314610c0d5760405162461bcd60e51b815260040161074890611cbf565b6001600160a01b038416610c335760405162461bcd60e51b815260040161074890611d24565b6001600160a01b038316610c595760405162461bcd60e51b815260040161074890611d24565b6001600160a01b038216610c7f5760405162461bcd60e51b815260040161074890611d24565b6001600160a01b038116610ca55760405162461bcd60e51b815260040161074890611d24565b600a8054610100600160a81b0319166101006001600160a01b038781169190910291909117909155600b80546001600160a01b031990811686841617909155600c80548216858416179055600d8054909116918316919091179055601054600160b01b900460ff16610d1657600080fd5b50505050565b6000610d29338484610efd565b5060019392505050565b6000546001600160a01b03163314610d5d5760405162461bcd60e51b815260040161074890611cbf565b6001600160a01b038116610dc25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610748565b610dcb816112f3565b50565b6000546001600160a01b03163314610df85760405162461bcd60e51b815260040161074890611cbf565b6012805460ff19169055565b6001600160a01b038316610e505760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610748565b6001600160a01b038216610e9c5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610748565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060016001600160a01b038416610f635760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610748565b6001600160a01b038516610fc75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610748565b600083116110295760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610748565b6110338585611343565b1561115457601054600160a01b900460ff1661108a5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b6044820152606401610748565b600e54600160a01b900460ff16611154576001600160a01b03841660009081526004602052604090205460ff161580156110cd57506001600160a01b0385163014155b80156110e257506001600160a01b0384163014155b15611154576007548361110a866001600160a01b031660009081526006602052604090205490565b6111149190611d52565b11156111545760405162461bcd60e51b815260206004820152600f60248201526e6d617857616c6c657420697320322560881b6044820152606401610748565b61115e8585611418565b80156111745750601054600160a81b900460ff16155b80156111855750611185858561145f565b156111c557306000908152600660205260409020546111ae61138867016345785d8a0000611c9d565b81106111c35780156111c3576111c3816114b9565b505b6001600160a01b03851660009081526002602052604090205460ff168061120457506001600160a01b03841660009081526002602052604090205460ff165b1561120d575060005b6001600160a01b03851660009081526006602052604081208054859290611235908490611cf4565b9091555060009050816112485783611266565b611266866112568888611879565b6112608989611418565b876118c0565b6001600160a01b038616600090815260066020526040812080549293508392909190611293908490611d52565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112df91815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806113586000546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561138757506000546001600160a01b03848116911614155b801561139e57506000546001600160a01b03163314155b80156113c357506001600160a01b03841660009081526003602052604090205460ff16155b80156113e857506001600160a01b03831660009081526003602052604090205460ff16155b80156113fc57506001600160a01b03831615155b801561099a57506001600160a01b038316301415949350505050565b6001600160a01b038116600090815260046020526040812054819060ff16801561099a57505050506001600160a01b031660009081526004602052604090205460ff161590565b600a54600090819060ff16801561148f57506001600160a01b03841660009081526005602052604090205460ff16155b801561099a575050506001600160a01b031660009081526005602052604090205460ff1615919050565b6010805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061150157611501611d65565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561155a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157e9190611d7b565b8160018151811061159157611591611d65565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600f549094168252929091522054600019146115fb57306000908152600160209081526040808320600f546001600160a01b03168452909152902060001990555b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611634908590600090869030904290600401611d98565b600060405180830381600087803b15801561164e57600080fd5b505af192505050801561165f575060015b6116695750611869565b600080611677602847611c9d565b61168290600f611e09565b90506000611691602847611c9d565b61169c90600a611e09565b905060006116ab602847611c9d565b6116b690600a611e09565b905060006116c5602847611c9d565b6116d0906005611e09565b9050831561173957600a546040516101009091046001600160a01b0316906188b89086906000818181858888f193505050503d806000811461172e576040519150601f19603f3d011682016040523d82523d6000602084013e611733565b606091505b50909550505b821561179c57600b546040516001600160a01b03909116906188b89085906000818181858888f193505050503d8060008114611791576040519150601f19603f3d011682016040523d82523d6000602084013e611796565b606091505b50909550505b81156117ff57600c546040516001600160a01b03909116906188b89084906000818181858888f193505050503d80600081146117f4576040519150601f19603f3d011682016040523d82523d6000602084013e6117f9565b606091505b50909550505b801561186257600d546040516001600160a01b03909116906188b89083906000818181858888f193505050503d8060008114611857576040519150601f19603f3d011682016040523d82523d6000602084013e61185c565b606091505b50909550505b5050505050505b506010805460ff60a81b19169055565b6001600160a01b038116600090815260046020526040812054819060ff1615801561099a57505050506001600160a01b031660009081526004602052604090205460ff1690565b60008084156118d257506008546118e5565b83156118e157506009546118e5565b5060005b60125460ff1680156119055750601154611901906103c0611d52565b4211155b1561191e578415611914575060645b831561191e575060645b60125460ff16801561193e575060115461193a906102d0611d52565b4211155b1561195757841561194d575060c85b8315611957575060c85b60125460ff1680156119775750601154611973906101e0611d52565b4211155b15611992578415611987575061012c5b8315611992575061012c5b60125460ff1680156119b157506011546119ad9060f0611d52565b4211155b806119bc5750601154155b156119d75784156119cc57506101905b83156119d757506101905b806000036119e8578291505061099a565b60006103e86119f78386611e09565b611a019190611c9d565b90508015611a6e573060009081526006602052604081208054839290611a28908490611d52565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611a788185611cf4565b979650505050505050565b600060208083528351808285015260005b81811015611ab057858101830151858201604001528201611a94565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610dcb57600080fd5b60008060408385031215611af957600080fd5b8235611b0481611ad1565b946020939093013593505050565b8015158114610dcb57600080fd5b60008060408385031215611b3357600080fd5b8235611b3e81611ad1565b91506020830135611b4e81611b12565b809150509250929050565b600060208284031215611b6b57600080fd5b8135611b7681611b12565b9392505050565b600080600060608486031215611b9257600080fd5b8335611b9d81611ad1565b92506020840135611bad81611ad1565b929592945050506040919091013590565b600060208284031215611bd057600080fd5b8135611b7681611ad1565b60008060408385031215611bee57600080fd5b50508035926020909101359150565b60008060008060808587031215611c1357600080fd5b8435611c1e81611ad1565b93506020850135611c2e81611ad1565b92506040850135611c3e81611ad1565b91506060850135611c4e81611ad1565b939692955090935050565b60008060408385031215611c6c57600080fd5b8235611c7781611ad1565b91506020830135611b4e81611ad1565b634e487b7160e01b600052601160045260246000fd5b600082611cba57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8181038181111561071857610718611c87565b600060208284031215611d1957600080fd5b8151611b7681611b12565b6020808252601490820152734672656464793a2041646472657373205a65726f60601b604082015260600190565b8082018082111561071857610718611c87565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611d8d57600080fd5b8151611b7681611ad1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611de85784516001600160a01b031683529383019391830191600101611dc3565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761071857610718611c8756fea26469706673582212200940b01e965d489901ce9468425a525ee007ab88e7569350bcee01fb05b15a9864736f6c63430008130033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c806354de7bee1161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e1461063e578063e9451f5f14610684578063f2fde38b1461069a578063f7ec2f35146106ba578063f8a47781146106db57600080fd5b806395d89b411461057e578063a63ae9c7146105ab578063a9059cbb146105e8578063c31c9c0714610608578063dc9d75b01461062857600080fd5b8063715018a6116100f2578063715018a61461050b578063765ffa1314610520578063893d20e8146105405780638da5cb5b1461054057806393c173221461055e57600080fd5b806354de7bee1461048b57806357d0a982146104a05780635b69627a146104c057806370a08231146104d557600080fd5b80631f91af65116101a6578063313ce56711610175578063313ce567146104035780633ce2ad491461041f5780633eaaf86b14610435578063452ed4f11461045157806349f6ee241461047157600080fd5b80631f91af651461038057806323b872dd1461039557806327889862146103b55780632cd077b5146103ee57600080fd5b8063095ea7b3116101ed578063095ea7b3146102ed5780630faba5541461030d578063111a60b01461032f57806318160ddd1461034f5780631dc369451461036a57600080fd5b806303fd2a451461022a5780630445b6671461025d578063064a59d01461028057806306fdde03146102b157600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061024061dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026957600080fd5b506102726106f0565b604051908152602001610254565b34801561028c57600080fd5b506010546102a190600160a01b900460ff1681565b6040519015158152602001610254565b3480156102bd57600080fd5b5060408051808201909152600a81526953636f7263617374414960b01b60208201525b6040516102549190611a83565b3480156102f957600080fd5b506102a1610308366004611ae6565b610707565b34801561031957600080fd5b5061032d610328366004611b20565b61071e565b005b34801561033b57600080fd5b5061032d61034a366004611b59565b6107d2565b34801561035b57600080fd5b5067016345785d8a0000610272565b34801561037657600080fd5b5061027260085481565b34801561038c57600080fd5b5061032d610890565b3480156103a157600080fd5b506102a16103b0366004611b7d565b61092a565b3480156103c157600080fd5b506102a16103d0366004611bbe565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156103fa57600080fd5b50600754610272565b34801561040f57600080fd5b5060405160098152602001610254565b34801561042b57600080fd5b5061027260115481565b34801561044157600080fd5b5061027267016345785d8a000081565b34801561045d57600080fd5b50601054610240906001600160a01b031681565b34801561047d57600080fd5b506012546102a19060ff1681565b34801561049757600080fd5b50610272600081565b3480156104ac57600080fd5b5061032d6104bb366004611bdb565b6109a2565b3480156104cc57600080fd5b5061032d6109f5565b3480156104e157600080fd5b506102726104f0366004611bbe565b6001600160a01b031660009081526006602052604090205490565b34801561051757600080fd5b5061032d610b20565b34801561052c57600080fd5b5061032d61053b366004611b20565b610b56565b34801561054c57600080fd5b506000546001600160a01b0316610240565b34801561056a57600080fd5b5061032d610579366004611bfd565b610be3565b34801561058a57600080fd5b5060408051808201909152600481526310d054d560e21b60208201526102e0565b3480156105b757600080fd5b506102e060405180604001604052806011815260200170616e616c7974697861756469742e636f6d60781b81525081565b3480156105f457600080fd5b506102a1610603366004611ae6565b610d1c565b34801561061457600080fd5b50600f54610240906001600160a01b031681565b34801561063457600080fd5b506102726103e881565b34801561064a57600080fd5b50610272610659366004611c59565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561069057600080fd5b5061027260095481565b3480156106a657600080fd5b5061032d6106b5366004611bbe565b610d33565b3480156106c657600080fd5b506010546102a190600160b01b900460ff1681565b3480156106e757600080fd5b5061032d610dce565b61070461138867016345785d8a0000611c9d565b81565b6000610714338484610e04565b5060015b92915050565b6000546001600160a01b031633146107515760405162461bcd60e51b815260040161074890611cbf565b60405180910390fd5b6001600160a01b0382166107a75760405162461bcd60e51b815260206004820152601f60248201527f4672656464793a204163636f756e74206973207a65726f2061646472657373006044820152606401610748565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107fc5760405162461bcd60e51b815260040161074890611cbf565b600a5481151560ff9091161515036108495760405162461bcd60e51b815260206004820152601060248201526f426f6f6c206973207468652073616d6560801b6044820152606401610748565b600a805460ff19168215159081179091556040519081527f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e89060200160405180910390a150565b6000546001600160a01b031633146108ba5760405162461bcd60e51b815260040161074890611cbf565b600e54600160a01b900460ff16156109095760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481a5b9a5d185b1a5e995960721b6044820152606401610748565b67016345785d8a0000600755600e805460ff60a01b1916600160a01b179055565b6001600160a01b03831660009081526001602090815260408083203384529091528120546000191461098f576001600160a01b038416600090815260016020908152604080832033845290915281208054849290610989908490611cf4565b90915550505b61099a848484610efd565b949350505050565b6000546001600160a01b031633146109cc5760405162461bcd60e51b815260040161074890611cbf565b6008548211156109db57600080fd5b6009548111156109ea57600080fd5b600891909155600955565b600e60009054906101000a90046001600160a01b03166001600160a01b031663572e241a6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6e9190611d07565b610a7757600080fd5b601054600160a01b900460ff1615610ad15760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c65640000000000000000006044820152606401610748565b6012805460ff19166001179055426011556010805460ff60a01b1916600160a01b1790556040517fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686890600090a1565b6000546001600160a01b03163314610b4a5760405162461bcd60e51b815260040161074890611cbf565b610b5460006112f3565b565b6000546001600160a01b03163314610b805760405162461bcd60e51b815260040161074890611cbf565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b764513910160405180910390a15050565b6000546001600160a01b03163314610c0d5760405162461bcd60e51b815260040161074890611cbf565b6001600160a01b038416610c335760405162461bcd60e51b815260040161074890611d24565b6001600160a01b038316610c595760405162461bcd60e51b815260040161074890611d24565b6001600160a01b038216610c7f5760405162461bcd60e51b815260040161074890611d24565b6001600160a01b038116610ca55760405162461bcd60e51b815260040161074890611d24565b600a8054610100600160a81b0319166101006001600160a01b038781169190910291909117909155600b80546001600160a01b031990811686841617909155600c80548216858416179055600d8054909116918316919091179055601054600160b01b900460ff16610d1657600080fd5b50505050565b6000610d29338484610efd565b5060019392505050565b6000546001600160a01b03163314610d5d5760405162461bcd60e51b815260040161074890611cbf565b6001600160a01b038116610dc25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610748565b610dcb816112f3565b50565b6000546001600160a01b03163314610df85760405162461bcd60e51b815260040161074890611cbf565b6012805460ff19169055565b6001600160a01b038316610e505760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610748565b6001600160a01b038216610e9c5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610748565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060016001600160a01b038416610f635760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610748565b6001600160a01b038516610fc75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610748565b600083116110295760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610748565b6110338585611343565b1561115457601054600160a01b900460ff1661108a5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b6044820152606401610748565b600e54600160a01b900460ff16611154576001600160a01b03841660009081526004602052604090205460ff161580156110cd57506001600160a01b0385163014155b80156110e257506001600160a01b0384163014155b15611154576007548361110a866001600160a01b031660009081526006602052604090205490565b6111149190611d52565b11156111545760405162461bcd60e51b815260206004820152600f60248201526e6d617857616c6c657420697320322560881b6044820152606401610748565b61115e8585611418565b80156111745750601054600160a81b900460ff16155b80156111855750611185858561145f565b156111c557306000908152600660205260409020546111ae61138867016345785d8a0000611c9d565b81106111c35780156111c3576111c3816114b9565b505b6001600160a01b03851660009081526002602052604090205460ff168061120457506001600160a01b03841660009081526002602052604090205460ff165b1561120d575060005b6001600160a01b03851660009081526006602052604081208054859290611235908490611cf4565b9091555060009050816112485783611266565b611266866112568888611879565b6112608989611418565b876118c0565b6001600160a01b038616600090815260066020526040812080549293508392909190611293908490611d52565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112df91815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806113586000546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561138757506000546001600160a01b03848116911614155b801561139e57506000546001600160a01b03163314155b80156113c357506001600160a01b03841660009081526003602052604090205460ff16155b80156113e857506001600160a01b03831660009081526003602052604090205460ff16155b80156113fc57506001600160a01b03831615155b801561099a57506001600160a01b038316301415949350505050565b6001600160a01b038116600090815260046020526040812054819060ff16801561099a57505050506001600160a01b031660009081526004602052604090205460ff161590565b600a54600090819060ff16801561148f57506001600160a01b03841660009081526005602052604090205460ff16155b801561099a575050506001600160a01b031660009081526005602052604090205460ff1615919050565b6010805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061150157611501611d65565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561155a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157e9190611d7b565b8160018151811061159157611591611d65565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600f549094168252929091522054600019146115fb57306000908152600160209081526040808320600f546001600160a01b03168452909152902060001990555b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611634908590600090869030904290600401611d98565b600060405180830381600087803b15801561164e57600080fd5b505af192505050801561165f575060015b6116695750611869565b600080611677602847611c9d565b61168290600f611e09565b90506000611691602847611c9d565b61169c90600a611e09565b905060006116ab602847611c9d565b6116b690600a611e09565b905060006116c5602847611c9d565b6116d0906005611e09565b9050831561173957600a546040516101009091046001600160a01b0316906188b89086906000818181858888f193505050503d806000811461172e576040519150601f19603f3d011682016040523d82523d6000602084013e611733565b606091505b50909550505b821561179c57600b546040516001600160a01b03909116906188b89085906000818181858888f193505050503d8060008114611791576040519150601f19603f3d011682016040523d82523d6000602084013e611796565b606091505b50909550505b81156117ff57600c546040516001600160a01b03909116906188b89084906000818181858888f193505050503d80600081146117f4576040519150601f19603f3d011682016040523d82523d6000602084013e6117f9565b606091505b50909550505b801561186257600d546040516001600160a01b03909116906188b89083906000818181858888f193505050503d8060008114611857576040519150601f19603f3d011682016040523d82523d6000602084013e61185c565b606091505b50909550505b5050505050505b506010805460ff60a81b19169055565b6001600160a01b038116600090815260046020526040812054819060ff1615801561099a57505050506001600160a01b031660009081526004602052604090205460ff1690565b60008084156118d257506008546118e5565b83156118e157506009546118e5565b5060005b60125460ff1680156119055750601154611901906103c0611d52565b4211155b1561191e578415611914575060645b831561191e575060645b60125460ff16801561193e575060115461193a906102d0611d52565b4211155b1561195757841561194d575060c85b8315611957575060c85b60125460ff1680156119775750601154611973906101e0611d52565b4211155b15611992578415611987575061012c5b8315611992575061012c5b60125460ff1680156119b157506011546119ad9060f0611d52565b4211155b806119bc5750601154155b156119d75784156119cc57506101905b83156119d757506101905b806000036119e8578291505061099a565b60006103e86119f78386611e09565b611a019190611c9d565b90508015611a6e573060009081526006602052604081208054839290611a28908490611d52565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611a788185611cf4565b979650505050505050565b600060208083528351808285015260005b81811015611ab057858101830151858201604001528201611a94565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610dcb57600080fd5b60008060408385031215611af957600080fd5b8235611b0481611ad1565b946020939093013593505050565b8015158114610dcb57600080fd5b60008060408385031215611b3357600080fd5b8235611b3e81611ad1565b91506020830135611b4e81611b12565b809150509250929050565b600060208284031215611b6b57600080fd5b8135611b7681611b12565b9392505050565b600080600060608486031215611b9257600080fd5b8335611b9d81611ad1565b92506020840135611bad81611ad1565b929592945050506040919091013590565b600060208284031215611bd057600080fd5b8135611b7681611ad1565b60008060408385031215611bee57600080fd5b50508035926020909101359150565b60008060008060808587031215611c1357600080fd5b8435611c1e81611ad1565b93506020850135611c2e81611ad1565b92506040850135611c3e81611ad1565b91506060850135611c4e81611ad1565b939692955090935050565b60008060408385031215611c6c57600080fd5b8235611c7781611ad1565b91506020830135611b4e81611ad1565b634e487b7160e01b600052601160045260246000fd5b600082611cba57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8181038181111561071857610718611c87565b600060208284031215611d1957600080fd5b8151611b7681611b12565b6020808252601490820152734672656464793a2041646472657373205a65726f60601b604082015260600190565b8082018082111561071857610718611c87565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611d8d57600080fd5b8151611b7681611ad1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611de85784516001600160a01b031683529383019391830191600101611dc3565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761071857610718611c8756fea26469706673582212200940b01e965d489901ce9468425a525ee007ab88e7569350bcee01fb05b15a9864736f6c63430008130033

Deployed Bytecode Sourcemap

5498:12709:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8007:73;;;;;;;;;;;;8038:42;8007:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;8007:73:0;;;;;;;;6740:60;;;;;;;;;;;;;:::i;:::-;;;368:25:1;;;356:2;341:18;6740:60:0;222:177:1;8115:36:0;;;;;;;;;;-1:-1:-1;8115:36:0;;;;-1:-1:-1;;;8115:36:0;;;;;;;;;569:14:1;;562:22;544:41;;532:2;517:18;8115:36:0;404:187:1;5898:80:0;;;;;;;;;;-1:-1:-1;5970:5:0;;;;;;;;;;;;-1:-1:-1;;;5970:5:0;;;;5898:80;;;;;;;:::i;10367:161::-;;;;;;;;;;-1:-1:-1;10367:161:0;;;;;:::i;:::-;;:::i;11291:191::-;;;;;;;;;;-1:-1:-1;11291:191:0;;;;;:::i;:::-;;:::i;:::-;;12380:196;;;;;;;;;;-1:-1:-1;12380:196:0;;;;;:::i;:::-;;:::i;5554:125::-;;;;;;;;;;-1:-1:-1;6714:19:0;5554:125;;6868:26;;;;;;;;;;;;;;;;17333:192;;;;;;;;;;;;;:::i;10862:306::-;;;;;;;;;;-1:-1:-1;10862:306:0;;;;;:::i;:::-;;:::i;11174:109::-;;;;;;;;;;-1:-1:-1;11174:109:0;;;;;:::i;:::-;-1:-1:-1;;;;;11260:15:0;11236:4;11260:15;;;:6;:15;;;;;;;;;11174:109;18106:98;;;;;;;;;;-1:-1:-1;18183:9:0;;18106:98;;5685:117;;;;;;;;;;-1:-1:-1;5685:117:0;;7999:1;3216:36:1;;3204:2;3189:18;5685:117:0;3074:184:1;8221:32:0;;;;;;;;;;;;;;;;6675:58;;;;;;;;;;;;6714:19;6675:58;;8087:21;;;;;;;;;;-1:-1:-1;8087:21:0;;;;-1:-1:-1;;;;;8087:21:0;;;8260:36;;;;;;;;;;-1:-1:-1;8260:36:0;;;;;;;;6935:39;;;;;;;;;;;;6973:1;6935:39;;17537:212;;;;;;;;;;-1:-1:-1;17537:212:0;;;;;:::i;:::-;;:::i;17763:331::-;;;;;;;;;;;;;:::i;6209:117::-;;;;;;;;;;-1:-1:-1;6209:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6302:16:0;6275:7;6302:16;;;:7;:16;;;;;;;6209:117;1001:94;;;;;;;;;;;;;:::i;17020:182::-;;;;;;;;;;-1:-1:-1;17020:182:0;;;;;:::i;:::-;;:::i;5984:80::-;;;;;;;;;;-1:-1:-1;6036:7:0;851:6;-1:-1:-1;;;;;851:6:0;5984:80;;13911:556;;;;;;;;;;-1:-1:-1;13911:556:0;;;;;:::i;:::-;;:::i;5808:84::-;;;;;;;;;;-1:-1:-1;5882:7:0;;;;;;;;;;;;-1:-1:-1;;;5882:7:0;;;;5808:84;;7903:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7903:54:0;;;;;10190:165;;;;;;;;;;-1:-1:-1;10190:165:0;;;;;:::i;:::-;;:::i;7771:27::-;;;;;;;;;;-1:-1:-1;7771:27:0;;;;-1:-1:-1;;;;;7771:27:0;;;6981:47;;;;;;;;;;;;7023:5;6981:47;;6070:133;;;;;;;;;;-1:-1:-1;6070:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6172:19:0;;;6154:7;6172:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6070:133;6901:27;;;;;;;;;;;;;;;;1103:192;;;;;;;;;;-1:-1:-1;1103:192:0;;;;;:::i;:::-;;:::i;8184:30::-;;;;;;;;;;-1:-1:-1;8184:30:0;;;;-1:-1:-1;;;8184:30:0;;;;;;17214:107;;;;;;;;;;;;;:::i;6740:60::-;6780:20;6795:5;6714:19;6780:20;:::i;:::-;6740:60;:::o;10367:161::-;10444:4;10461:37;10470:10;10482:7;10491:6;10461:8;:37::i;:::-;-1:-1:-1;10516:4:0;10367:161;;;;;:::o;11291:191::-;824:7;851:6;-1:-1:-1;;;;;851:6:0;386:10;913:23;905:68;;;;-1:-1:-1;;;905:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;11382:21:0;::::1;11374:64;;;::::0;-1:-1:-1;;;11374:64:0;;5727:2:1;11374:64:0::1;::::0;::::1;5709:21:1::0;5766:2;5746:18;;;5739:30;5805:33;5785:18;;;5778:61;5856:18;;11374:64:0::1;5525:355:1::0;11374:64:0::1;-1:-1:-1::0;;;;;11449:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:25;;-1:-1:-1;;11449:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11291:191::o;12380:196::-;824:7;851:6;-1:-1:-1;;;;;851:6:0;386:10;913:23;905:68;;;;-1:-1:-1;;;905:68:0;;;;;;;:::i;:::-;12457:11:::1;::::0;:20;::::1;;:11;::::0;;::::1;:20;;::::0;12449:48:::1;;;::::0;-1:-1:-1;;;12449:48:0;;6087:2:1;12449:48:0::1;::::0;::::1;6069:21:1::0;6126:2;6106:18;;;6099:30;-1:-1:-1;;;6145:18:1;;;6138:46;6201:18;;12449:48:0::1;5885:340:1::0;12449:48:0::1;12508:11;:19:::0;;-1:-1:-1;;12508:19:0::1;::::0;::::1;;::::0;;::::1;::::0;;;12543:25:::1;::::0;544:41:1;;;12543:25:0::1;::::0;532:2:1;517:18;12543:25:0::1;;;;;;;12380:196:::0;:::o;17333:192::-;824:7;851:6;-1:-1:-1;;;;;851:6:0;386:10;913:23;905:68;;;;-1:-1:-1;;;905:68:0;;;;;;;:::i;:::-;17398:16:::1;::::0;-1:-1:-1;;;17398:16:0;::::1;;;17397:17;17389:47;;;::::0;-1:-1:-1;;;17389:47:0;;6432:2:1;17389:47:0::1;::::0;::::1;6414:21:1::0;6471:2;6451:18;;;6444:30;-1:-1:-1;;;6490:18:1;;;6483:48;6548:18;;17389:47:0::1;6230:342:1::0;17389:47:0::1;6714:19;17451:9;:24:::0;17490:16:::1;:23:::0;;-1:-1:-1;;;;17490:23:0::1;-1:-1:-1::0;;;17490:23:0::1;::::0;;17333:192::o;10862:306::-;-1:-1:-1;;;;;10983:19:0;;10962:4;10983:19;;;:11;:19;;;;;;;;11003:10;10983:31;;;;;;;;-1:-1:-1;;10983:52:0;10979:126;;-1:-1:-1;;;;;11052:19:0;;;;;;:11;:19;;;;;;;;11072:10;11052:31;;;;;;;:41;;11087:6;;11052:19;:41;;11087:6;;11052:41;:::i;:::-;;;;-1:-1:-1;;10979:126:0;11124:36;11134:6;11142:9;11153:6;11124:9;:36::i;:::-;11117:43;10862:306;-1:-1:-1;;;;10862:306:0:o;17537:212::-;824:7;851:6;-1:-1:-1;;;;;851:6:0;386:10;913:23;905:68;;;;-1:-1:-1;;;905:68:0;;;;;;;:::i;:::-;17633:6:::1;;17626:3;:13;;17618:22;;;::::0;::::1;;17671:7;;17663:4;:15;;17655:24;;;::::0;::::1;;17696:6;:12:::0;;;;17723:7:::1;:14:::0;17537:212::o;17763:331::-;17828:2;;;;;;;;;-1:-1:-1;;;;;17828:2:0;-1:-1:-1;;;;;17828:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17820:27;;;;;;17871:16;;-1:-1:-1;;;17871:16:0;;;;17870:17;17862:53;;;;-1:-1:-1;;;17862:53:0;;7162:2:1;17862:53:0;;;7144:21:1;7201:2;7181:18;;;7174:30;7240:25;7220:18;;;7213:53;7283:18;;17862:53:0;6960:347:1;17862:53:0;17934:17;:24;;-1:-1:-1;;17934:24:0;17954:4;17934:24;;;17993:15;17973:17;:35;18023:16;:23;;-1:-1:-1;;;;18023:23:0;-1:-1:-1;;;18023:23:0;;;18066:16;;;;17934:17;;18066:16;17763:331::o;1001:94::-;824:7;851:6;-1:-1:-1;;;;;851:6:0;386:10;913:23;905:68;;;;-1:-1:-1;;;905:68:0;;;;;;;:::i;:::-;1066:21:::1;1084:1;1066:9;:21::i;:::-;1001:94::o:0;17020:182::-;824:7;851:6;-1:-1:-1;;;;;851:6:0;386:10;913:23;905:68;;;;-1:-1:-1;;;905:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17105:21:0;::::1;;::::0;;;:12:::1;:21;::::0;;;;;;;;:29;;-1:-1:-1;;17105:29:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17156:34;;7480:51:1;;;7547:18;;;7540:50;17156:34:0::1;::::0;7453:18:1;17156:34:0::1;;;;;;;17020:182:::0;;:::o;13911:556::-;824:7;851:6;-1:-1:-1;;;;;851:6:0;386:10;913:23;905:68;;;;-1:-1:-1;;;905:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14028:18:0;::::1;14020:50;;;;-1:-1:-1::0;;;14020:50:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14089:18:0;::::1;14081:50;;;;-1:-1:-1::0;;;14081:50:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14150:18:0;::::1;14142:50;;;;-1:-1:-1::0;;;14142:50:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14211:18:0;::::1;14203:50;;;;-1:-1:-1::0;;;14203:50:0::1;;;;;;;:::i;:::-;14264:17;:33:::0;;-1:-1:-1;;;;;;14264:33:0::1;;-1:-1:-1::0;;;;;14264:33:0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;14308:17:::1;:33:::0;;-1:-1:-1;;;;;;14308:33:0;;::::1;::::0;;::::1;;::::0;;;14352:17:::1;:33:::0;;;::::1;::::0;;::::1;;::::0;;14396:17:::1;:33:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;14448:10:::1;::::0;-1:-1:-1;;;14448:10:0;::::1;;;14440:19;;;::::0;::::1;;13911:556:::0;;;;:::o;10190:165::-;10268:4;10285:40;10295:10;10307:9;10318:6;10285:9;:40::i;:::-;-1:-1:-1;10343:4:0;;10190:165;-1:-1:-1;;;10190:165:0:o;1103:192::-;824:7;851:6;-1:-1:-1;;;;;851:6:0;386:10;913:23;905:68;;;;-1:-1:-1;;;905:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1192:22:0;::::1;1184:73;;;::::0;-1:-1:-1;;;1184:73:0;;8152:2:1;1184:73:0::1;::::0;::::1;8134:21:1::0;8191:2;8171:18;;;8164:30;8230:34;8210:18;;;8203:62;-1:-1:-1;;;8281:18:1;;;8274:36;8327:19;;1184:73:0::1;7950:402:1::0;1184:73:0::1;1268:19;1278:8;1268:9;:19::i;:::-;1103:192:::0;:::o;17214:107::-;824:7;851:6;-1:-1:-1;;;;;851:6:0;386:10;913:23;905:68;;;;-1:-1:-1;;;905:68:0;;;;;;;:::i;:::-;17284:17:::1;:25:::0;;-1:-1:-1;;17284:25:0::1;::::0;;17214:107::o;10540:310::-;-1:-1:-1;;;;;10635:20:0;;10627:52;;;;-1:-1:-1;;;10627:52:0;;8559:2:1;10627:52:0;;;8541:21:1;8598:2;8578:18;;;8571:30;-1:-1:-1;;;8617:18:1;;;8610:49;8676:18;;10627:52:0;8357:343:1;10627:52:0;-1:-1:-1;;;;;10698:21:0;;10690:53;;;;-1:-1:-1;;;10690:53:0;;8559:2:1;10690:53:0;;;8541:21:1;8598:2;8578:18;;;8571:30;-1:-1:-1;;;8617:18:1;;;8610:49;8676:18;;10690:53:0;8357:343:1;10690:53:0;-1:-1:-1;;;;;10756:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;10809:33;;368:25:1;;;10809:33:0;;341:18:1;10809:33:0;;;;;;;10540:310;;;:::o;12584:1319::-;12664:4;12696;-1:-1:-1;;;;;12719:16:0;;12711:64;;;;-1:-1:-1;;;12711:64:0;;8907:2:1;12711:64:0;;;8889:21:1;8946:2;8926:18;;;8919:30;8985:34;8965:18;;;8958:62;-1:-1:-1;;;9036:18:1;;;9029:33;9079:19;;12711:64:0;8705:399:1;12711:64:0;-1:-1:-1;;;;;12794:18:0;;12786:68;;;;-1:-1:-1;;;12786:68:0;;9311:2:1;12786:68:0;;;9293:21:1;9350:2;9330:18;;;9323:30;9389:34;9369:18;;;9362:62;-1:-1:-1;;;9440:18:1;;;9433:35;9485:19;;12786:68:0;9109:401:1;12786:68:0;12882:1;12873:6;:10;12865:64;;;;-1:-1:-1;;;12865:64:0;;9717:2:1;12865:64:0;;;9699:21:1;9756:2;9736:18;;;9729:30;9795:34;9775:18;;;9768:62;-1:-1:-1;;;9846:18:1;;;9839:39;9895:19;;12865:64:0;9515:405:1;12865:64:0;12946:25;12963:4;12968:2;12946:16;:25::i;:::-;12942:292;;;12996:16;;-1:-1:-1;;;12996:16:0;;;;12988:50;;;;-1:-1:-1;;;12988:50:0;;10127:2:1;12988:50:0;;;10109:21:1;10166:2;10146:18;;;10139:30;-1:-1:-1;;;10185:18:1;;;10178:52;10247:18;;12988:50:0;9925:346:1;12988:50:0;13057:16;;-1:-1:-1;;;13057:16:0;;;;13053:170;;-1:-1:-1;;;;;13094:12:0;;;;;;:8;:12;;;;;;;;13093:13;:38;;;;-1:-1:-1;;;;;;13110:21:0;;13126:4;13110:21;;13093:38;:61;;;;-1:-1:-1;;;;;;13135:19:0;;13149:4;13135:19;;13093:61;13090:132;;;13192:9;;13182:6;13166:13;13176:2;-1:-1:-1;;;;;6302:16:0;6275:7;6302:16;;;:7;:16;;;;;;;6209:117;13166:13;:22;;;;:::i;:::-;:35;;13158:62;;;;-1:-1:-1;;;13158:62:0;;10608:2:1;13158:62:0;;;10590:21:1;10647:2;10627:18;;;10620:30;-1:-1:-1;;;10666:18:1;;;10659:45;10721:18;;13158:62:0;10406:339:1;13158:62:0;13263:17;13271:4;13277:2;13263:7;:17::i;:::-;:29;;;;-1:-1:-1;13286:6:0;;-1:-1:-1;;;13286:6:0;;;;13285:7;13263:29;:50;;;;;13296:17;13304:4;13310:2;13296:7;:17::i;:::-;13260:292;;;13379:4;13330:28;6302:16;;;:7;:16;;;;;;6780:20;6795:5;6714:19;6780:20;:::i;:::-;13403;:37;13400:141;;13464:24;;13461:63;;13490:34;13503:20;13490:12;:34::i;:::-;13315:237;13260:292;-1:-1:-1;;;;;13568:12:0;;;;;;:6;:12;;;;;;;;;:26;;-1:-1:-1;;;;;;13584:10:0;;;;;;:6;:10;;;;;;;;13568:26;13564:73;;;-1:-1:-1;13620:5:0;13564:73;-1:-1:-1;;;;;13657:13:0;;;;;;:7;:13;;;;;:23;;13674:6;;13657:13;:23;;13674:6;;13657:23;:::i;:::-;;;;-1:-1:-1;13682:22:0;;-1:-1:-1;13708:7:0;13707:81;;13782:6;13707:81;;;13719:60;13729:4;13735:16;13742:4;13748:2;13735:6;:16::i;:::-;13753:17;13761:4;13767:2;13753:7;:17::i;:::-;13772:6;13719:9;:60::i;:::-;-1:-1:-1;;;;;13799:11:0;;;;;;:7;:11;;;;;:29;;13682:106;;-1:-1:-1;13682:106:0;;13799:11;;;:29;;13682:106;;13799:29;:::i;:::-;;;;;;;;13850:2;-1:-1:-1;;;;;13835:34:0;13844:4;-1:-1:-1;;;;;13835:34:0;;13854:14;13835:34;;;;368:25:1;;356:2;341:18;;222:177;13835:34:0;;;;;;;;-1:-1:-1;13889:4:0;;12584:1319;-1:-1:-1;;;;;12584:1319:0:o;1303:173::-;1359:16;1378:6;;-1:-1:-1;;;;;1395:17:0;;;-1:-1:-1;;;;;;1395:17:0;;;;;;1428:40;;1378:6;;;;;;;1428:40;;1359:16;1428:40;1348:128;1303:173;:::o;11490:336::-;11565:4;11584:14;11608:7;824;851:6;-1:-1:-1;;;;;851:6:0;;778:87;11608:7;-1:-1:-1;;;;;11601:14:0;:3;-1:-1:-1;;;;;11601:14:0;;;:45;;;;-1:-1:-1;824:7:0;851:6;-1:-1:-1;;;;;11632:14:0;;;851:6;;11632:14;;11601:45;:83;;;;-1:-1:-1;824:7:0;851:6;-1:-1:-1;;;;;851:6:0;11663:10;:21;;11601:83;:118;;;;-1:-1:-1;;;;;;11702:17:0;;;;;;:12;:17;;;;;;;;11701:18;11601:118;:141;;;;-1:-1:-1;;;;;;11725:17:0;;;;;;:12;:17;;;;;;;;11724:18;11601:141;:162;;;;-1:-1:-1;;;;;;11746:17:0;;;;11601:162;:186;;;;-1:-1:-1;;;;;;11767:20:0;;11782:4;11767:20;;11584:203;11490:336;-1:-1:-1;;;;11490:336:0:o;12003:165::-;-1:-1:-1;;;;;12103:13:0;;12069:4;12103:13;;;:8;:13;;;;;;12069:4;;12103:13;;:31;;;;-1:-1:-1;;;;;;;;;12121:13:0;;;;;:8;:13;;;;;;;;12120:14;;12003:165::o;12176:196::-;12274:11;;12242:4;;;;12274:11;;:37;;;;-1:-1:-1;;;;;;12290:21:0;;;;;;:16;:21;;;;;;;;12289:22;12274:37;:63;;;;-1:-1:-1;;;;;;;;12316:21:0;;;;;:16;:21;;;;;;;;12315:22;;12176:196;-1:-1:-1;12176:196:0:o;15732:1276::-;8340:6;:13;;-1:-1:-1;;;;8340:13:0;-1:-1:-1;;;8340:13:0;;;15849:16:::1;::::0;;15863:1:::1;15849:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15849:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15849:16:0::1;15825:40;;15894:4;15876;15881:1;15876:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15876:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15920:10:::1;::::0;:17:::1;::::0;;-1:-1:-1;;;15920:17:0;;;;:10;;;::::1;::::0;:15:::1;::::0;:17:::1;::::0;;::::1;::::0;15876:7;;15920:17;;;;;:10;:17:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15910:4;15915:1;15910:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15910:27:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:27;;;;15974:4:::1;15954:26;::::0;;;:11:::1;:26:::0;;;;;;15989:10:::1;::::0;;;::::1;15954:47:::0;;;;;;;;-1:-1:-1;;15954:68:0::1;15950:168;;16059:4;16039:26;::::0;;;:11:::1;:26;::::0;;;;;;;16074:10:::1;::::0;-1:-1:-1;;;;;16074:10:0::1;16039:47:::0;;;;;;;-1:-1:-1;;16039:67:0;;15950:168:::1;16134:10;::::0;:200:::1;::::0;-1:-1:-1;;;16134:200:0;;-1:-1:-1;;;;;16134:10:0;;::::1;::::0;:61:::1;::::0;:200:::1;::::0;16210:20;;16134:10:::1;::::0;16261:4;;16288::::1;::::0;16308:15:::1;::::0;16134:200:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;16130:247;;16359:7;;;16130:247;16387:12;::::0;16428:26:::1;16452:2;16428:21;:26;:::i;:::-;:31;::::0;16457:2:::1;16428:31;:::i;:::-;16412:47:::0;-1:-1:-1;16470:14:0::1;16487:26;16511:2;16487:21;:26;:::i;:::-;:31;::::0;16516:2:::1;16487:31;:::i;:::-;16470:48:::0;-1:-1:-1;16529:13:0::1;16545:26;16569:2;16545:21;:26;:::i;:::-;:31;::::0;16574:2:::1;16545:31;:::i;:::-;16529:47:::0;-1:-1:-1;16587:14:0::1;16604:26;16628:2;16604:21;:26;:::i;:::-;:30;::::0;16633:1:::1;16604:30;:::i;:::-;16587:47:::0;-1:-1:-1;16650:9:0;;16647:79:::1;;16674:17;::::0;:52:::1;::::0;:17:::1;::::0;;::::1;-1:-1:-1::0;;;;;16674:17:0::1;::::0;16716:5:::1;::::0;16704;;16674:52:::1;::::0;;;16704:5;16674:17;16716:5;16674:52:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16661:65:0;;-1:-1:-1;;16647:79:0::1;16740:10:::0;;16737:81:::1;;16765:17;::::0;:53:::1;::::0;-1:-1:-1;;;;;16765:17:0;;::::1;::::0;16808:5:::1;::::0;16795:6;;16765:53:::1;::::0;;;16795:6;16765:17;16808:5;16765:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16752:66:0;;-1:-1:-1;;16737:81:0::1;16832:9:::0;;16829:79:::1;;16856:17;::::0;:52:::1;::::0;-1:-1:-1;;;;;16856:17:0;;::::1;::::0;16898:5:::1;::::0;16886;;16856:52:::1;::::0;;;16886:5;16856:17;16898:5;16856:52:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16843:65:0;;-1:-1:-1;;16829:79:0::1;16922:10:::0;;16919:81:::1;;16947:17;::::0;:53:::1;::::0;-1:-1:-1;;;;;16947:17:0;;::::1;::::0;16990:5:::1;::::0;16977:6;;16947:53:::1;::::0;;;16977:6;16947:17;16990:5;16947:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16934:66:0;;-1:-1:-1;;16919:81:0::1;15804:1204;;;;;;8364:1;-1:-1:-1::0;8376:6:0;:14;;-1:-1:-1;;;;8376:14:0;;;15732:1276::o;11834:161::-;-1:-1:-1;;;;;11932:13:0;;11899:4;11932:13;;;:8;:13;;;;;;11899:4;;11932:13;;11931:14;:31;;;;-1:-1:-1;;;;;;;;;11949:13:0;;;;;:8;:13;;;;;;;;;11834:161::o;14477:1247::-;14569:7;14589:11;14615:5;14611:84;;;-1:-1:-1;14629:6:0;;14611:84;;;14647:6;14643:52;;;-1:-1:-1;14662:7:0;;14643:52;;;-1:-1:-1;6973:1:0;14643:52;14715:17;;;;:70;;;;-1:-1:-1;14755:17:0;;:30;;14775:10;14755:30;:::i;:::-;14736:15;:49;;14715:70;14711:157;;;14805:5;14802:19;;;-1:-1:-1;14818:3:0;14802:19;14839:6;14836:20;;;-1:-1:-1;14853:3:0;14836:20;14884:17;;;;:70;;;;-1:-1:-1;14924:17:0;;:30;;14944:10;14924:30;:::i;:::-;14905:15;:49;;14884:70;14880:157;;;14974:5;14971:19;;;-1:-1:-1;14987:3:0;14971:19;15008:6;15005:20;;;-1:-1:-1;15022:3:0;15005:20;15061:17;;;;:69;;;;-1:-1:-1;15101:17:0;;:29;;15121:9;15101:29;:::i;:::-;15082:15;:48;;15061:69;15057:156;;;15150:5;15147:19;;;-1:-1:-1;15163:3:0;15147:19;15184:6;15181:20;;;-1:-1:-1;15198:3:0;15181:20;15230:17;;;;:69;;;;-1:-1:-1;15270:17:0;;:29;;15290:9;15270:29;:::i;:::-;15251:15;:48;;15230:69;15229:97;;;-1:-1:-1;15304:17:0;;:22;15229:97;15225:184;;;15346:5;15343:19;;;-1:-1:-1;15359:3:0;15343:19;15380:6;15377:20;;;-1:-1:-1;15394:3:0;15377:20;15425:3;15432:1;15425:8;15421:28;;15443:6;15436:13;;;;;15421:28;15463:17;7023:5;15483:12;15492:3;15483:6;:12;:::i;:::-;:30;;;;:::i;:::-;15463:50;-1:-1:-1;15528:13:0;;15524:157;;15576:4;15560:22;;;;:7;:22;;;;;:35;;15586:9;;15560:22;:35;;15586:9;;15560:35;:::i;:::-;;;;-1:-1:-1;;15615:40:0;;368:25:1;;;15638:4:0;;-1:-1:-1;;;;;15615:40:0;;;;;356:2:1;341:18;15615:40:0;;;;;;;15524:157;15698:18;15707:9;15698:6;:18;:::i;:::-;15691:25;14477:1247;-1:-1:-1;;;;;;;14477:1247:0:o;596:548:1:-;708:4;737:2;766;755:9;748:21;798:6;792:13;841:6;836:2;825:9;821:18;814:34;866:1;876:140;890:6;887:1;884:13;876:140;;;985:14;;;981:23;;975:30;951:17;;;970:2;947:26;940:66;905:10;;876:140;;;880:3;1065:1;1060:2;1051:6;1040:9;1036:22;1032:31;1025:42;1135:2;1128;1124:7;1119:2;1111:6;1107:15;1103:29;1092:9;1088:45;1084:54;1076:62;;;;596:548;;;;:::o;1149:131::-;-1:-1:-1;;;;;1224:31:1;;1214:42;;1204:70;;1270:1;1267;1260:12;1285:315;1353:6;1361;1414:2;1402:9;1393:7;1389:23;1385:32;1382:52;;;1430:1;1427;1420:12;1382:52;1469:9;1456:23;1488:31;1513:5;1488:31;:::i;:::-;1538:5;1590:2;1575:18;;;;1562:32;;-1:-1:-1;;;1285:315:1:o;1605:118::-;1691:5;1684:13;1677:21;1670:5;1667:32;1657:60;;1713:1;1710;1703:12;1728:382;1793:6;1801;1854:2;1842:9;1833:7;1829:23;1825:32;1822:52;;;1870:1;1867;1860:12;1822:52;1909:9;1896:23;1928:31;1953:5;1928:31;:::i;:::-;1978:5;-1:-1:-1;2035:2:1;2020:18;;2007:32;2048:30;2007:32;2048:30;:::i;:::-;2097:7;2087:17;;;1728:382;;;;;:::o;2115:241::-;2171:6;2224:2;2212:9;2203:7;2199:23;2195:32;2192:52;;;2240:1;2237;2230:12;2192:52;2279:9;2266:23;2298:28;2320:5;2298:28;:::i;:::-;2345:5;2115:241;-1:-1:-1;;;2115:241:1:o;2361:456::-;2438:6;2446;2454;2507:2;2495:9;2486:7;2482:23;2478:32;2475:52;;;2523:1;2520;2513:12;2475:52;2562:9;2549:23;2581:31;2606:5;2581:31;:::i;:::-;2631:5;-1:-1:-1;2688:2:1;2673:18;;2660:32;2701:33;2660:32;2701:33;:::i;:::-;2361:456;;2753:7;;-1:-1:-1;;;2807:2:1;2792:18;;;;2779:32;;2361:456::o;2822:247::-;2881:6;2934:2;2922:9;2913:7;2909:23;2905:32;2902:52;;;2950:1;2947;2940:12;2902:52;2989:9;2976:23;3008:31;3033:5;3008:31;:::i;3263:248::-;3331:6;3339;3392:2;3380:9;3371:7;3367:23;3363:32;3360:52;;;3408:1;3405;3398:12;3360:52;-1:-1:-1;;3431:23:1;;;3501:2;3486:18;;;3473:32;;-1:-1:-1;3263:248:1:o;3516:671::-;3602:6;3610;3618;3626;3679:3;3667:9;3658:7;3654:23;3650:33;3647:53;;;3696:1;3693;3686:12;3647:53;3735:9;3722:23;3754:31;3779:5;3754:31;:::i;:::-;3804:5;-1:-1:-1;3861:2:1;3846:18;;3833:32;3874:33;3833:32;3874:33;:::i;:::-;3926:7;-1:-1:-1;3985:2:1;3970:18;;3957:32;3998:33;3957:32;3998:33;:::i;:::-;4050:7;-1:-1:-1;4109:2:1;4094:18;;4081:32;4122:33;4081:32;4122:33;:::i;:::-;3516:671;;;;-1:-1:-1;3516:671:1;;-1:-1:-1;;3516:671:1:o;4417:388::-;4485:6;4493;4546:2;4534:9;4525:7;4521:23;4517:32;4514:52;;;4562:1;4559;4552:12;4514:52;4601:9;4588:23;4620:31;4645:5;4620:31;:::i;:::-;4670:5;-1:-1:-1;4727:2:1;4712:18;;4699:32;4740:33;4699:32;4740:33;:::i;4810:127::-;4871:10;4866:3;4862:20;4859:1;4852:31;4902:4;4899:1;4892:15;4926:4;4923:1;4916:15;4942:217;4982:1;5008;4998:132;;5052:10;5047:3;5043:20;5040:1;5033:31;5087:4;5084:1;5077:15;5115:4;5112:1;5105:15;4998:132;-1:-1:-1;5144:9:1;;4942:217::o;5164:356::-;5366:2;5348:21;;;5385:18;;;5378:30;5444:34;5439:2;5424:18;;5417:62;5511:2;5496:18;;5164:356::o;6577:128::-;6644:9;;;6665:11;;;6662:37;;;6679:18;;:::i;6710:245::-;6777:6;6830:2;6818:9;6809:7;6805:23;6801:32;6798:52;;;6846:1;6843;6836:12;6798:52;6878:9;6872:16;6897:28;6919:5;6897:28;:::i;7601:344::-;7803:2;7785:21;;;7842:2;7822:18;;;7815:30;-1:-1:-1;;;7876:2:1;7861:18;;7854:50;7936:2;7921:18;;7601:344::o;10276:125::-;10341:9;;;10362:10;;;10359:36;;;10375:18;;:::i;10882:127::-;10943:10;10938:3;10934:20;10931:1;10924:31;10974:4;10971:1;10964:15;10998:4;10995:1;10988:15;11014:251;11084:6;11137:2;11125:9;11116:7;11112:23;11108:32;11105:52;;;11153:1;11150;11143:12;11105:52;11185:9;11179:16;11204:31;11229:5;11204:31;:::i;11270:980::-;11532:4;11580:3;11569:9;11565:19;11611:6;11600:9;11593:25;11637:2;11675:6;11670:2;11659:9;11655:18;11648:34;11718:3;11713:2;11702:9;11698:18;11691:31;11742:6;11777;11771:13;11808:6;11800;11793:22;11846:3;11835:9;11831:19;11824:26;;11885:2;11877:6;11873:15;11859:29;;11906:1;11916:195;11930:6;11927:1;11924:13;11916:195;;;11995:13;;-1:-1:-1;;;;;11991:39:1;11979:52;;12086:15;;;;12051:12;;;;12027:1;11945:9;11916:195;;;-1:-1:-1;;;;;;;12167:32:1;;;;12162:2;12147:18;;12140:60;-1:-1:-1;;;12231:3:1;12216:19;12209:35;12128:3;11270:980;-1:-1:-1;;;11270:980:1:o;12255:168::-;12328:9;;;12359;;12376:15;;;12370:22;;12356:37;12346:71;;12397:18;;:::i

Swarm Source

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