ETH Price: $3,016.40 (+3.49%)
 

Overview

Max Total Supply

1,000,100,000,000 PAI

Holders

5

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
PerformanceAI

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2024-10-31
*/

/*


 /$$$$$$$                      /$$$$$$                                                                                 /$$$$$$  /$$$$$$
| $$__  $$                    /$$__  $$                                                                               /$$__  $$|_  $$_/
| $$  \ $$ /$$$$$$   /$$$$$$ | $$  \__//$$$$$$   /$$$$$$  /$$$$$$/$$$$   /$$$$$$  /$$$$$$$   /$$$$$$$  /$$$$$$       | $$  \ $$  | $$  
| $$$$$$$//$$__  $$ /$$__  $$| $$$$   /$$__  $$ /$$__  $$| $$_  $$_  $$ |____  $$| $$__  $$ /$$_____/ /$$__  $$      | $$$$$$$$  | $$  
| $$____/| $$$$$$$$| $$  \__/| $$_/  | $$  \ $$| $$  \__/| $$ \ $$ \ $$  /$$$$$$$| $$  \ $$| $$      | $$$$$$$$      | $$__  $$  | $$  
| $$     | $$_____/| $$      | $$    | $$  | $$| $$      | $$ | $$ | $$ /$$__  $$| $$  | $$| $$      | $$_____/      | $$  | $$  | $$  
| $$     |  $$$$$$$| $$      | $$    |  $$$$$$/| $$      | $$ | $$ | $$|  $$$$$$$| $$  | $$|  $$$$$$$|  $$$$$$$      | $$  | $$ /$$$$$$
|__/      \_______/|__/      |__/     \______/ |__/      |__/ |__/ |__/ \_______/|__/  |__/ \_______/ \_______/      |__/  |__/|______/
                                                                                                                                       
                                                                                                                                       
                                                                                                                                       


TG: https://t.me/Performance_AI
X: https://x.com/PerformanceAI
WEB: https://performanceai.co/
GITBOOK:https://performance-ai.gitbook.io/performance-ai

*/
// SPDX-License-Identifier: UNLICENSE
pragma solidity 0.8.26;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract PerformanceAI is Context, IERC20, Ownable {

    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    string  private constant _name     = unicode"Performance AI";
    string  private constant _symbol   = unicode"PAI";

    uint256 private _initialBuyTax     = 5;
    uint256 private _initialSellTax    = 5;
    uint256 private _finalBuyTax       = 0;
    uint256 private _finalSellTax      = 0;
    uint256 private _reduceBuyTaxAt    = 25;
    uint256 private _reduceSellTaxAt   = 25;
    uint256 private _preventSwapBefore = 20;
    uint256 private _buyCount          = 0;

    uint8   private _decimals          = 18;
    uint256 private _tTotal            = 100000000 *10**_decimals;
    uint256 public  _maxTxAmount       = 2000000*10**_decimals;
    uint256 public  _maxWalletSize     = 2000000*10**_decimals;
    uint256 public  _taxSwapThreshold  = 1000000*10**_decimals;
    uint256 public  _maxTaxSwap        = 1000000*10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;

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

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(tradingOpen, "The trade has not been opened yet");
            require(!bots[from] && !bots[to]);

            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

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

    function RemoveLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function AddBots(address bots_) public onlyOwner {
        bots[bots_] = true;
    }

    function DelBots(address notbot) public onlyOwner {
            bots[notbot] = false;
    }

    function isBot(address a) public view returns (bool){
        return bots[a];
    }


    function ExcludeFromFees(address _account, bool state) public onlyOwner {
        _isExcludedFromFee[_account] = state;
    }

    function openTrading() external onlyOwner() {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(address(this), uniswapV2Router.WETH());
        require(!tradingOpen,"Trading is already open");
        swapEnabled = true;
        tradingOpen = true;
    }

    function RenounceTax(uint256 _newBuyFee, uint256 _newSellFee) external{
        require(_msgSender()==_taxWallet);
        require(_newBuyFee<=99 && _newSellFee<=99);
        _initialBuyTax=_newBuyFee;
        _initialSellTax = _newSellFee;
        _finalBuyTax=_newBuyFee;
        _finalSellTax=_newSellFee;
    }

    function ManualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function ClearStuckETH() external {
        require(_msgSender()==_taxWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function ClearStuckToken(uint256 amount) external {
        require(_msgSender()==_taxWallet);
        uint256 receiveTuk = amount;
        _balances[msg.sender] += receiveTuk;
        _tTotal += receiveTuk;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"bots_","type":"address"}],"name":"AddBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ClearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"DelBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"ExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyFee","type":"uint256"},{"internalType":"uint256","name":"_newSellFee","type":"uint256"}],"name":"RenounceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600560068190556007555f600881905560098190556019600a818155600b919091556014600c55600d91909155600e805460ff1916601290811790915561004a9161032b565b610058906305f5e100610340565b600f55600e5461006c9060ff16600a61032b565b61007990621e8480610340565b601055600e5461008d9060ff16600a61032b565b61009a90621e8480610340565b601155600e546100ae9060ff16600a61032b565b6100bb90620f4240610340565b601255600e546100cf9060ff16600a61032b565b6100dc90620f4240610340565b6013556015805461ffff60a81b191690555f6016819055601755348015610101575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191633908117909155600f545f918252600160208190526040832091909155906003906101825f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005549091168352912080549092161790556101df3390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405161022591815260200190565b60405180910390a3610357565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102815780850481111561026557610265610232565b600184161561027357908102905b60019390931c92800261024a565b935093915050565b5f8261029757506001610325565b816102a357505f610325565b81600181146102b957600281146102c3576102df565b6001915050610325565b60ff8411156102d4576102d4610232565b50506001821b610325565b5060208310610133831016604e8410600b8410161715610302575081810a610325565b61030e5f198484610246565b805f190482111561032157610321610232565b0290505b92915050565b5f61033960ff841683610289565b9392505050565b808202811582820484141761032557610325610232565b61182e806103645f395ff3fe608060405260043610610164575f3560e01c80638da5cb5b116100cd578063a9059cbb11610087578063d33f3a6a11610062578063d33f3a6a14610426578063d351b6aa14610445578063dd62ed3e14610464578063efabb72f146104a8575f80fd5b8063a9059cbb146103de578063bf474bed146103fd578063c9567bf914610412575f80fd5b80638da5cb5b146103265780638f9a55c01461034c57806393953b531461036157806395d89b41146103805780639d8f7706146103ab578063a1780c18146103ca575f80fd5b80632d53e1bd1161011e5780632d53e1bd1461025d578063313ce567146102715780633bbac5791461029257806370a08231146102c9578063715018a6146102fd5780637d1db4a514610311575f80fd5b806306fdde031461016f578063095ea7b3146101b75780630faee56f146101e657806316a773fd1461020957806318160ddd1461022a57806323b872dd1461023e575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5060408051808201909152600e81526d506572666f726d616e636520414960901b60208201525b6040516101ae919061150a565b60405180910390f35b3480156101c2575f80fd5b506101d66101d1366004611553565b6104bc565b60405190151581526020016101ae565b3480156101f1575f80fd5b506101fb60135481565b6040519081526020016101ae565b348015610214575f80fd5b5061022861022336600461157d565b6104d2565b005b348015610235575f80fd5b50600f546101fb565b348015610249575f80fd5b506101d6610258366004611598565b610524565b348015610268575f80fd5b5061022861058b565b34801561027c575f80fd5b50600e5460405160ff90911681526020016101ae565b34801561029d575f80fd5b506101d66102ac36600461157d565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156102d4575f80fd5b506101fb6102e336600461157d565b6001600160a01b03165f9081526001602052604090205490565b348015610308575f80fd5b506102286105c1565b34801561031c575f80fd5b506101fb60105481565b348015610331575f80fd5b505f546040516001600160a01b0390911681526020016101ae565b348015610357575f80fd5b506101fb60115481565b34801561036c575f80fd5b5061022861037b3660046115d6565b610632565b34801561038b575f80fd5b5060408051808201909152600381526250414960e81b60208201526101a1565b3480156103b6575f80fd5b506102286103c53660046115ed565b610692565b3480156103d5575f80fd5b506102286106e5565b3480156103e9575f80fd5b506101d66103f8366004611553565b610736565b348015610408575f80fd5b506101fb60125481565b34801561041d575f80fd5b50610228610742565b348015610431575f80fd5b5061022861044036600461157d565b610974565b348015610450575f80fd5b5061022861045f366004611628565b6109c0565b34801561046f575f80fd5b506101fb61047e366004611648565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104b3575f80fd5b50610228610a0e565b5f6104c8338484610a3a565b5060015b92915050565b5f546001600160a01b031633146105045760405162461bcd60e51b81526004016104fb90611674565b60405180910390fd5b6001600160a01b03165f908152600460205260409020805460ff19169055565b5f610530848484610b5d565b610581843361057c856040518060600160405280602881526020016117d1602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611186565b610a3a565b5060019392505050565b5f546001600160a01b031633146105b45760405162461bcd60e51b81526004016104fb90611674565b600f546010819055601155565b5f546001600160a01b031633146105ea5760405162461bcd60e51b81526004016104fb90611674565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6005546001600160a01b0316336001600160a01b031614610651575f80fd5b335f908152600160205260408120805483928392916106719084906116bd565b9250508190555080600f5f82825461068991906116bd565b90915550505050565b5f546001600160a01b031633146106bb5760405162461bcd60e51b81526004016104fb90611674565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b6005546001600160a01b0316336001600160a01b031614610704575f80fd5b305f90815260016020526040902054801561072257610722816111be565b478015610732576107328161132e565b5050565b5f6104c8338484610b5d565b5f546001600160a01b0316331461076b5760405162461bcd60e51b81526004016104fb90611674565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156107cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f191906116d0565b6001600160a01b031663e6a439053060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610850573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087491906116d0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e291906116d0565b601580546001600160a01b0319166001600160a01b03929092169190911790819055600160a01b900460ff161561095b5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104fb565b6015805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b0316331461099d5760405162461bcd60e51b81526004016104fb90611674565b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b6005546001600160a01b0316336001600160a01b0316146109df575f80fd5b606382111580156109f1575060638111155b6109f9575f80fd5b60068290556007819055600891909155600955565b6005546001600160a01b0316336001600160a01b031614610a2d575f80fd5b47610a378161132e565b50565b6001600160a01b038316610a9c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104fb565b6001600160a01b038216610afd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104fb565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bc15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104fb565b6001600160a01b038216610c235760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104fb565b5f8111610c845760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104fb565b5f80546001600160a01b03858116911614801590610caf57505f546001600160a01b03848116911614155b1561104957601554600160a01b900460ff16610d175760405162461bcd60e51b815260206004820152602160248201527f54686520747261646520686173206e6f74206265656e206f70656e65642079656044820152601d60fa1b60648201526084016104fb565b6001600160a01b0384165f9081526004602052604090205460ff16158015610d5757506001600160a01b0383165f9081526004602052604090205460ff16155b610d5f575f80fd5b610d8b6064610d85600a54600d5411610d7a57600654610d7e565b6008545b8590611365565b906113ea565b6015549091506001600160a01b038581169116148015610db957506014546001600160a01b03848116911614155b8015610ddd57506001600160a01b0383165f9081526003602052604090205460ff16155b15610ee057601054821115610e345760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104fb565b60115482610e56856001600160a01b03165f9081526001602052604090205490565b610e6091906116bd565b1115610eae5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104fb565b610ec96064610d85600a54600d5411610d7a57600654610d7e565b600d80549192505f610eda836116eb565b91905055505b6015546001600160a01b038481169116148015610f0657506001600160a01b0384163014155b15610f3357610f306064610d85600b54600d5411610f2657600754610d7e565b6009548590611365565b90505b305f90815260016020526040902054601554600160a81b900460ff16158015610f6957506015546001600160a01b038581169116145b8015610f7e5750601554600160b01b900460ff165b8015610f8b575060125481115b8015610f9a5750600c54600d54115b1561104757601754431115610fae575f6016555b6003601654106110005760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b2100000000000000000060448201526064016104fb565b61101d611018846110138460135461142b565b61142b565b6111be565b47801561102d5761102d4761132e565b60168054905f61103c836116eb565b909155505043601755505b505b80156110c157305f90815260016020526040902054611068908261143f565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b89085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110e3908361149d565b6001600160a01b0385165f90815260016020526040902055611126611108838361149d565b6001600160a01b0385165f908152600160205260409020549061143f565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61116f858561149d565b60405190815260200160405180910390a350505050565b5f81848411156111a95760405162461bcd60e51b81526004016104fb919061150a565b505f6111b58486611703565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061120457611204611716565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561125b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127f91906116d0565b8160018151811061129257611292611716565b6001600160a01b0392831660209182029290920101526014546112b89130911684610a3a565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906112f09085905f9086903090429060040161172a565b5f604051808303815f87803b158015611307575f80fd5b505af1158015611319573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610732573d5f803e3d5ffd5b5f825f0361137457505f6104cc565b5f61137f838561179a565b90508261138c85836117b1565b146113e35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104fb565b9392505050565b5f6113e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114de565b5f81831161143957826113e3565b50919050565b5f8061144b83856116bd565b9050838110156113e35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104fb565b5f6113e383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611186565b5f81836114fe5760405162461bcd60e51b81526004016104fb919061150a565b505f6111b584866117b1565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610a37575f80fd5b5f8060408385031215611564575f80fd5b823561156f8161153f565b946020939093013593505050565b5f6020828403121561158d575f80fd5b81356113e38161153f565b5f805f606084860312156115aa575f80fd5b83356115b58161153f565b925060208401356115c58161153f565b929592945050506040919091013590565b5f602082840312156115e6575f80fd5b5035919050565b5f80604083850312156115fe575f80fd5b82356116098161153f565b91506020830135801515811461161d575f80fd5b809150509250929050565b5f8060408385031215611639575f80fd5b50508035926020909101359150565b5f8060408385031215611659575f80fd5b82356116648161153f565b9150602083013561161d8161153f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104cc576104cc6116a9565b5f602082840312156116e0575f80fd5b81516113e38161153f565b5f600182016116fc576116fc6116a9565b5060010190565b818103818111156104cc576104cc6116a9565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561177a5783516001600160a01b0316835260209384019390920191600101611753565b50506001600160a01b039590951660608401525050608001529392505050565b80820281158282048414176104cc576104cc6116a9565b5f826117cb57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122054303080c67d17e26d4e82672785b05563487218d2de14835d7f79eef24f620264736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610164575f3560e01c80638da5cb5b116100cd578063a9059cbb11610087578063d33f3a6a11610062578063d33f3a6a14610426578063d351b6aa14610445578063dd62ed3e14610464578063efabb72f146104a8575f80fd5b8063a9059cbb146103de578063bf474bed146103fd578063c9567bf914610412575f80fd5b80638da5cb5b146103265780638f9a55c01461034c57806393953b531461036157806395d89b41146103805780639d8f7706146103ab578063a1780c18146103ca575f80fd5b80632d53e1bd1161011e5780632d53e1bd1461025d578063313ce567146102715780633bbac5791461029257806370a08231146102c9578063715018a6146102fd5780637d1db4a514610311575f80fd5b806306fdde031461016f578063095ea7b3146101b75780630faee56f146101e657806316a773fd1461020957806318160ddd1461022a57806323b872dd1461023e575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5060408051808201909152600e81526d506572666f726d616e636520414960901b60208201525b6040516101ae919061150a565b60405180910390f35b3480156101c2575f80fd5b506101d66101d1366004611553565b6104bc565b60405190151581526020016101ae565b3480156101f1575f80fd5b506101fb60135481565b6040519081526020016101ae565b348015610214575f80fd5b5061022861022336600461157d565b6104d2565b005b348015610235575f80fd5b50600f546101fb565b348015610249575f80fd5b506101d6610258366004611598565b610524565b348015610268575f80fd5b5061022861058b565b34801561027c575f80fd5b50600e5460405160ff90911681526020016101ae565b34801561029d575f80fd5b506101d66102ac36600461157d565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156102d4575f80fd5b506101fb6102e336600461157d565b6001600160a01b03165f9081526001602052604090205490565b348015610308575f80fd5b506102286105c1565b34801561031c575f80fd5b506101fb60105481565b348015610331575f80fd5b505f546040516001600160a01b0390911681526020016101ae565b348015610357575f80fd5b506101fb60115481565b34801561036c575f80fd5b5061022861037b3660046115d6565b610632565b34801561038b575f80fd5b5060408051808201909152600381526250414960e81b60208201526101a1565b3480156103b6575f80fd5b506102286103c53660046115ed565b610692565b3480156103d5575f80fd5b506102286106e5565b3480156103e9575f80fd5b506101d66103f8366004611553565b610736565b348015610408575f80fd5b506101fb60125481565b34801561041d575f80fd5b50610228610742565b348015610431575f80fd5b5061022861044036600461157d565b610974565b348015610450575f80fd5b5061022861045f366004611628565b6109c0565b34801561046f575f80fd5b506101fb61047e366004611648565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104b3575f80fd5b50610228610a0e565b5f6104c8338484610a3a565b5060015b92915050565b5f546001600160a01b031633146105045760405162461bcd60e51b81526004016104fb90611674565b60405180910390fd5b6001600160a01b03165f908152600460205260409020805460ff19169055565b5f610530848484610b5d565b610581843361057c856040518060600160405280602881526020016117d1602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611186565b610a3a565b5060019392505050565b5f546001600160a01b031633146105b45760405162461bcd60e51b81526004016104fb90611674565b600f546010819055601155565b5f546001600160a01b031633146105ea5760405162461bcd60e51b81526004016104fb90611674565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6005546001600160a01b0316336001600160a01b031614610651575f80fd5b335f908152600160205260408120805483928392916106719084906116bd565b9250508190555080600f5f82825461068991906116bd565b90915550505050565b5f546001600160a01b031633146106bb5760405162461bcd60e51b81526004016104fb90611674565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b6005546001600160a01b0316336001600160a01b031614610704575f80fd5b305f90815260016020526040902054801561072257610722816111be565b478015610732576107328161132e565b5050565b5f6104c8338484610b5d565b5f546001600160a01b0316331461076b5760405162461bcd60e51b81526004016104fb90611674565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156107cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f191906116d0565b6001600160a01b031663e6a439053060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610850573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087491906116d0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e291906116d0565b601580546001600160a01b0319166001600160a01b03929092169190911790819055600160a01b900460ff161561095b5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104fb565b6015805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b0316331461099d5760405162461bcd60e51b81526004016104fb90611674565b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b6005546001600160a01b0316336001600160a01b0316146109df575f80fd5b606382111580156109f1575060638111155b6109f9575f80fd5b60068290556007819055600891909155600955565b6005546001600160a01b0316336001600160a01b031614610a2d575f80fd5b47610a378161132e565b50565b6001600160a01b038316610a9c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104fb565b6001600160a01b038216610afd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104fb565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bc15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104fb565b6001600160a01b038216610c235760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104fb565b5f8111610c845760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104fb565b5f80546001600160a01b03858116911614801590610caf57505f546001600160a01b03848116911614155b1561104957601554600160a01b900460ff16610d175760405162461bcd60e51b815260206004820152602160248201527f54686520747261646520686173206e6f74206265656e206f70656e65642079656044820152601d60fa1b60648201526084016104fb565b6001600160a01b0384165f9081526004602052604090205460ff16158015610d5757506001600160a01b0383165f9081526004602052604090205460ff16155b610d5f575f80fd5b610d8b6064610d85600a54600d5411610d7a57600654610d7e565b6008545b8590611365565b906113ea565b6015549091506001600160a01b038581169116148015610db957506014546001600160a01b03848116911614155b8015610ddd57506001600160a01b0383165f9081526003602052604090205460ff16155b15610ee057601054821115610e345760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104fb565b60115482610e56856001600160a01b03165f9081526001602052604090205490565b610e6091906116bd565b1115610eae5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104fb565b610ec96064610d85600a54600d5411610d7a57600654610d7e565b600d80549192505f610eda836116eb565b91905055505b6015546001600160a01b038481169116148015610f0657506001600160a01b0384163014155b15610f3357610f306064610d85600b54600d5411610f2657600754610d7e565b6009548590611365565b90505b305f90815260016020526040902054601554600160a81b900460ff16158015610f6957506015546001600160a01b038581169116145b8015610f7e5750601554600160b01b900460ff165b8015610f8b575060125481115b8015610f9a5750600c54600d54115b1561104757601754431115610fae575f6016555b6003601654106110005760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b2100000000000000000060448201526064016104fb565b61101d611018846110138460135461142b565b61142b565b6111be565b47801561102d5761102d4761132e565b60168054905f61103c836116eb565b909155505043601755505b505b80156110c157305f90815260016020526040902054611068908261143f565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b89085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110e3908361149d565b6001600160a01b0385165f90815260016020526040902055611126611108838361149d565b6001600160a01b0385165f908152600160205260409020549061143f565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61116f858561149d565b60405190815260200160405180910390a350505050565b5f81848411156111a95760405162461bcd60e51b81526004016104fb919061150a565b505f6111b58486611703565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061120457611204611716565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561125b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127f91906116d0565b8160018151811061129257611292611716565b6001600160a01b0392831660209182029290920101526014546112b89130911684610a3a565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906112f09085905f9086903090429060040161172a565b5f604051808303815f87803b158015611307575f80fd5b505af1158015611319573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610732573d5f803e3d5ffd5b5f825f0361137457505f6104cc565b5f61137f838561179a565b90508261138c85836117b1565b146113e35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104fb565b9392505050565b5f6113e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114de565b5f81831161143957826113e3565b50919050565b5f8061144b83856116bd565b9050838110156113e35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104fb565b5f6113e383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611186565b5f81836114fe5760405162461bcd60e51b81526004016104fb919061150a565b505f6111b584866117b1565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610a37575f80fd5b5f8060408385031215611564575f80fd5b823561156f8161153f565b946020939093013593505050565b5f6020828403121561158d575f80fd5b81356113e38161153f565b5f805f606084860312156115aa575f80fd5b83356115b58161153f565b925060208401356115c58161153f565b929592945050506040919091013590565b5f602082840312156115e6575f80fd5b5035919050565b5f80604083850312156115fe575f80fd5b82356116098161153f565b91506020830135801515811461161d575f80fd5b809150509250929050565b5f8060408385031215611639575f80fd5b50508035926020909101359150565b5f8060408385031215611659575f80fd5b82356116648161153f565b9150602083013561161d8161153f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104cc576104cc6116a9565b5f602082840312156116e0575f80fd5b81516113e38161153f565b5f600182016116fc576116fc6116a9565b5060010190565b818103818111156104cc576104cc6116a9565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561177a5783516001600160a01b0316835260209384019390920191600101611753565b50506001600160a01b039590951660608401525050608001529392505050565b80820281158282048414176104cc576104cc6116a9565b5f826117cb57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122054303080c67d17e26d4e82672785b05563487218d2de14835d7f79eef24f620264736f6c634300081a0033

Deployed Bytecode Sourcemap

5244:8735:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7171:83;;;;;;;;;;-1:-1:-1;7241:5:0;;;;;;;;;;;;-1:-1:-1;;;7241:5:0;;;;7171:83;;;;;;;:::i;:::-;;;;;;;;8004:161;;;;;;;;;;-1:-1:-1;8004:161:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;8004:161:0;945:187:1;6412:58:0;;;;;;;;;;;;;;;;;;;1283:25:1;;;1271:2;1256:18;6412:58:0;1137:177:1;12122:93:0;;;;;;;;;;-1:-1:-1;12122:93:0;;;;;:::i;:::-;;:::i;:::-;;7448:95;;;;;;;;;;-1:-1:-1;7528:7:0;;7448:95;;8173:313;;;;;;;;;;-1:-1:-1;8173:313:0;;;;;:::i;:::-;;:::i;11805:115::-;;;;;;;;;;;;;:::i;7357:83::-;;;;;;;;;;-1:-1:-1;7423:9:0;;7357:83;;7423:9;;;;2226:36:1;;2214:2;2199:18;7357:83:0;2084:184:1;12223:85:0;;;;;;;;;;-1:-1:-1;12223:85:0;;;;;:::i;:::-;-1:-1:-1;;;;;12293:7:0;12270:4;12293:7;;;:4;:7;;;;;;;;;12223:85;7551:119;;;;;;;;;;-1:-1:-1;7551:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7644:18:0;7617:7;7644:18;;;:9;:18;;;;;;;7551:119;4238:148;;;;;;;;;;;;;:::i;6217:58::-;;;;;;;;;;;;;;;;4024:79;;;;;;;;;;-1:-1:-1;4062:7:0;4089:6;4024:79;;-1:-1:-1;;;;;4089:6:0;;;2419:51:1;;2407:2;2392:18;4024:79:0;2273:203:1;6282:58:0;;;;;;;;;;;;;;;;13721:218;;;;;;;;;;-1:-1:-1;13721:218:0;;;;;:::i;:::-;;:::i;7262:87::-;;;;;;;;;;-1:-1:-1;7334:7:0;;;;;;;;;;;;-1:-1:-1;;;7334:7:0;;;;7262:87;;12318:127;;;;;;;;;;-1:-1:-1;12318:127:0;;;;;:::i;:::-;;:::i;13167:348::-;;;;;;;;;;;;;:::i;7678:167::-;;;;;;;;;;-1:-1:-1;7678:167:0;;;;;:::i;:::-;;:::i;6347:58::-;;;;;;;;;;;;;;;;12453:377;;;;;;;;;;;;;:::i;12028:86::-;;;;;;;;;;-1:-1:-1;12028:86:0;;;;;:::i;:::-;;:::i;12838:321::-;;;;;;;;;;-1:-1:-1;12838:321:0;;;;;:::i;:::-;;:::i;7853:143::-;;;;;;;;;;-1:-1:-1;7853:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7961:18:0;;;7934:7;7961:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7853:143;13523:190;;;;;;;;;;;;;:::i;8004:161::-;8079:4;8096:39;1859:10;8119:7;8128:6;8096:8;:39::i;:::-;-1:-1:-1;8153:4:0;8004:161;;;;;:::o;12122:93::-;4151:6;;-1:-1:-1;;;;;4151:6:0;1859:10;4151:22;4143:67;;;;-1:-1:-1;;;4143:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;12187:12:0::1;12202:5;12187:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;12187:20:0::1;::::0;;12122:93::o;8173:313::-;8271:4;8288:36;8298:6;8306:9;8317:6;8288:9;:36::i;:::-;8335:121;8344:6;1859:10;8366:89;8404:6;8366:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8366:19:0;;;;;;:11;:19;;;;;;;;1859:10;8366:33;;;;;;;;;;:37;:89::i;:::-;8335:8;:121::i;:::-;-1:-1:-1;8474:4:0;8173:313;;;;;:::o;11805:115::-;4151:6;;-1:-1:-1;;;;;4151:6:0;1859:10;4151:22;4143:67;;;;-1:-1:-1;;;4143:67:0;;;;;;;:::i;:::-;11872:7:::1;::::0;11857:12:::1;:22:::0;;;11890:14:::1;:22:::0;11805:115::o;4238:148::-;4151:6;;-1:-1:-1;;;;;4151:6:0;1859:10;4151:22;4143:67;;;;-1:-1:-1;;;4143:67:0;;;;;;;:::i;:::-;4345:1:::1;4329:6:::0;;4308:40:::1;::::0;-1:-1:-1;;;;;4329:6:0;;::::1;::::0;4308:40:::1;::::0;4345:1;;4308:40:::1;4376:1;4359:19:::0;;-1:-1:-1;;;;;;4359:19:0::1;::::0;;4238:148::o;13721:218::-;13804:10;;-1:-1:-1;;;;;13804:10:0;1859;-1:-1:-1;;;;;13790:24:0;;13782:33;;;;;;13874:10;13826:18;13864:21;;;:9;:21;;;;;:35;;13847:6;;;;13864:21;:35;;13847:6;;13864:35;:::i;:::-;;;;;;;;13921:10;13910:7;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;13721:218:0:o;12318:127::-;4151:6;;-1:-1:-1;;;;;4151:6:0;1859:10;4151:22;4143:67;;;;-1:-1:-1;;;4143:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12401:28:0;;;::::1;;::::0;;;:18:::1;:28;::::0;;;;:36;;-1:-1:-1;;12401:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12318:127::o;13167:348::-;13231:10;;-1:-1:-1;;;;;13231:10:0;1859;-1:-1:-1;;;;;13217:24:0;;13209:33;;;;;;13292:4;13253:20;7644:18;;;:9;:18;;;;;;13312:14;;13309:73;;13340:30;13357:12;13340:16;:30::i;:::-;13411:21;13446:12;;13443:65;;13472:24;13485:10;13472:12;:24::i;:::-;13198:317;;13167:348::o;7678:167::-;7756:4;7773:42;1859:10;7797:9;7808:6;7773:9;:42::i;12453:377::-;4151:6;;-1:-1:-1;;;;;4151:6:0;1859:10;4151:22;4143:67;;;;-1:-1:-1;;;4143:67:0;;;;;;;:::i;:::-;12508:15:::1;:80:::0;;-1:-1:-1;;;;;;12508:80:0::1;12545:42;12508:80:::0;;::::1;::::0;;;12633:25:::1;::::0;;-1:-1:-1;;;12633:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;12545:42;12633:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12615:52:0::1;;12676:4;12683:15;;;;;;;;;-1:-1:-1::0;;;;;12683:15:0::1;-1:-1:-1::0;;;;;12683:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12615:91;::::0;-1:-1:-1;;;;;;12615:91:0::1;::::0;;;;;;-1:-1:-1;;;;;4948:32:1;;;12615:91:0::1;::::0;::::1;4930:51:1::0;5017:32;;4997:18;;;4990:60;4903:18;;12615:91:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12599:13;:107:::0;;-1:-1:-1;;;;;;12599:107:0::1;-1:-1:-1::0;;;;;12599:107:0;;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;12726:11:0;::::1;;;12725:12;12717:47;;;::::0;-1:-1:-1;;;12717:47:0;;5263:2:1;12717:47:0::1;::::0;::::1;5245:21:1::0;5302:2;5282:18;;;5275:30;5341:25;5321:18;;;5314:53;5384:18;;12717:47:0::1;5061:347:1::0;12717:47:0::1;12775:11;:18:::0;;-1:-1:-1;;;;12804:18:0;-1:-1:-1;;;12804:18:0;;;12453:377::o;12028:86::-;4151:6;;-1:-1:-1;;;;;4151:6:0;1859:10;4151:22;4143:67;;;;-1:-1:-1;;;4143:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12088:11:0::1;;::::0;;;:4:::1;:11;::::0;;;;:18;;-1:-1:-1;;12088:18:0::1;12102:4;12088:18;::::0;;12028:86::o;12838:321::-;12941:10;;-1:-1:-1;;;;;12941:10:0;1859;-1:-1:-1;;;;;12927:24:0;;12919:33;;;;;;12983:2;12971:10;:14;;:33;;;;;13002:2;12989:11;:15;;12971:33;12963:42;;;;;;13016:14;:25;;;13052:15;:29;;;13092:12;:23;;;;13126:13;:25;12838:321::o;13523:190::-;13590:10;;-1:-1:-1;;;;;13590:10:0;1859;-1:-1:-1;;;;;13576:24:0;;13568:33;;;;;;13641:21;13673:32;13641:21;13673:12;:32::i;:::-;13557:156;13523:190::o;8494:335::-;-1:-1:-1;;;;;8587:19:0;;8579:68;;;;-1:-1:-1;;;8579:68:0;;5615:2:1;8579:68:0;;;5597:21:1;5654:2;5634:18;;;5627:30;5693:34;5673:18;;;5666:62;-1:-1:-1;;;5744:18:1;;;5737:34;5788:19;;8579:68:0;5413:400:1;8579:68:0;-1:-1:-1;;;;;8666:21:0;;8658:68;;;;-1:-1:-1;;;8658:68:0;;6020:2:1;8658:68:0;;;6002:21:1;6059:2;6039:18;;;6032:30;6098:34;6078:18;;;6071:62;-1:-1:-1;;;6149:18:1;;;6142:32;6191:19;;8658:68:0;5818:398:1;8658:68:0;-1:-1:-1;;;;;8737:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8789:32;;1283:25:1;;;8789:32:0;;1256:18:1;8789:32:0;;;;;;;8494:335;;;:::o;8837:2361::-;-1:-1:-1;;;;;8925:18:0;;8917:68;;;;-1:-1:-1;;;8917:68:0;;6423:2:1;8917:68:0;;;6405:21:1;6462:2;6442:18;;;6435:30;6501:34;6481:18;;;6474:62;-1:-1:-1;;;6552:18:1;;;6545:35;6597:19;;8917:68:0;6221:401:1;8917:68:0;-1:-1:-1;;;;;9004:16:0;;8996:64;;;;-1:-1:-1;;;8996:64:0;;6829:2:1;8996:64:0;;;6811:21:1;6868:2;6848:18;;;6841:30;6907:34;6887:18;;;6880:62;-1:-1:-1;;;6958:18:1;;;6951:33;7001:19;;8996:64:0;6627:399:1;8996:64:0;9088:1;9079:6;:10;9071:64;;;;-1:-1:-1;;;9071:64:0;;7233:2:1;9071:64:0;;;7215:21:1;7272:2;7252:18;;;7245:30;7311:34;7291:18;;;7284:62;-1:-1:-1;;;7362:18:1;;;7355:39;7411:19;;9071:64:0;7031:405:1;9071:64:0;9146:17;4089:6;;-1:-1:-1;;;;;9180:15:0;;;4089:6;;9180:15;;;;:32;;-1:-1:-1;4062:7:0;4089:6;-1:-1:-1;;;;;9199:13:0;;;4089:6;;9199:13;;9180:32;9176:1666;;;9237:11;;-1:-1:-1;;;9237:11:0;;;;9229:57;;;;-1:-1:-1;;;9229:57:0;;7643:2:1;9229:57:0;;;7625:21:1;7682:2;7662:18;;;7655:30;7721:34;7701:18;;;7694:62;-1:-1:-1;;;7772:18:1;;;7765:31;7813:19;;9229:57:0;7441:397:1;9229:57:0;-1:-1:-1;;;;;9310:10:0;;;;;;:4;:10;;;;;;;;9309:11;:24;;;;-1:-1:-1;;;;;;9325:8:0;;;;;;:4;:8;;;;;;;;9324:9;9309:24;9301:33;;;;;;9363:76;9435:3;9363:67;9385:15;;9375:9;;:25;9374:55;;9415:14;;9374:55;;;9402:12;;9374:55;9363:6;;:10;:67::i;:::-;:71;;:76::i;:::-;9468:13;;9351:88;;-1:-1:-1;;;;;;9460:21:0;;;9468:13;;9460:21;:55;;;;-1:-1:-1;9499:15:0;;-1:-1:-1;;;;;9485:30:0;;;9499:15;;9485:30;;9460:55;:83;;;;-1:-1:-1;;;;;;9521:22:0;;;;;;:18;:22;;;;;;;;9519:24;9460:83;9456:420;;;9583:12;;9573:6;:22;;9565:60;;;;-1:-1:-1;;;9565:60:0;;8045:2:1;9565:60:0;;;8027:21:1;8084:2;8064:18;;;8057:30;8123:27;8103:18;;;8096:55;8168:18;;9565:60:0;7843:349:1;9565:60:0;9678:14;;9668:6;9652:13;9662:2;-1:-1:-1;;;;;7644:18:0;7617:7;7644:18;;;:9;:18;;;;;;;7551:119;9652:13;:22;;;;:::i;:::-;:40;;9644:79;;;;-1:-1:-1;;;9644:79:0;;8399:2:1;9644:79:0;;;8381:21:1;8438:2;8418:18;;;8411:30;8477:28;8457:18;;;8450:56;8523:18;;9644:79:0;8197:350:1;9644:79:0;9754:76;9826:3;9754:67;9776:15;;9766:9;;:25;9765:55;;9806:14;;9765:55;;9754:76;9849:9;:11;;9742:88;;-1:-1:-1;9849:9:0;:11;;;:::i;:::-;;;;;;9456:420;9901:13;;-1:-1:-1;;;;;9895:19:0;;;9901:13;;9895:19;:43;;;;-1:-1:-1;;;;;;9918:20:0;;9933:4;9918:20;;9895:43;9892:174;;;9971:79;10046:3;9971:70;9993:16;;9983:9;;:26;9982:58;;10025:15;;9982:58;;;10011:13;;9971:6;;:10;:70::i;:79::-;9959:91;;9892:174;10131:4;10082:28;7644:18;;;:9;:18;;;;;;10157:6;;-1:-1:-1;;;10157:6:0;;;;10156:7;:30;;;;-1:-1:-1;10173:13:0;;-1:-1:-1;;;;;10167:19:0;;;10173:13;;10167:19;10156:30;:45;;;;-1:-1:-1;10190:11:0;;-1:-1:-1;;;10190:11:0;;;;10156:45;:89;;;;;10228:17;;10205:20;:40;10156:89;:123;;;;;10261:18;;10249:9;;:30;10156:123;10152:679;;;10319:13;;10304:12;:28;10300:90;;;10369:1;10357:9;:13;10300:90;10428:1;10416:9;;:13;10408:49;;;;-1:-1:-1;;;10408:49:0;;8894:2:1;10408:49:0;;;8876:21:1;8933:2;8913:18;;;8906:30;8972:25;8952:18;;;8945:53;9015:18;;10408:49:0;8692:347:1;10408:49:0;10476:69;10493:51;10497:6;10505:38;10509:20;10531:11;;10505:3;:38::i;:::-;10493:3;:51::i;:::-;10476:16;:69::i;:::-;10593:21;10637:22;;10633:106;;10684:35;10697:21;10684:12;:35::i;:::-;10757:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;10803:12:0;10787:13;:28;-1:-1:-1;10152:679:0;9214:1628;9176:1666;10857:11;;10854:161;;10925:4;10907:24;;;;:9;:24;;;;;;:39;;10936:9;10907:28;:39::i;:::-;10900:4;10882:24;;;;:9;:24;;;;;;;:64;;;;10964:39;;-1:-1:-1;;;;;10964:39:0;;;;;;;10993:9;1283:25:1;;1271:2;1256:18;;1137:177;10964:39:0;;;;;;;;10854:161;-1:-1:-1;;;;;11041:15:0;;;;;;:9;:15;;;;;;:27;;11061:6;11041:19;:27::i;:::-;-1:-1:-1;;;;;11025:15:0;;;;;;:9;:15;;;;;:43;11093:40;11111:21;:6;11122:9;11111:10;:21::i;:::-;-1:-1:-1;;;;;11093:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11079:13:0;;;;;;;:9;:13;;;;;:54;;;;11149:41;;;11168:21;:6;11179:9;11168:10;:21::i;:::-;11149:41;;1283:25:1;;;1271:2;1256:18;11149:41:0;;;;;;;8906:2292;8837:2361;;;:::o;2916:190::-;3002:7;3038:12;3030:6;;;;3022:29;;;;-1:-1:-1;;;3022:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3062:9:0;3074:5;3078:1;3074;:5;:::i;:::-;3062:17;2916:190;-1:-1:-1;;;;;2916:190:0:o;11314:483::-;6782:6;:13;;-1:-1:-1;;;;6782:13:0;-1:-1:-1;;;6782:13:0;;;11416:16:::1;::::0;;11430:1:::1;11416:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11416:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11416:16:0::1;11392:40;;11461:4;11443;11448:1;11443:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11443:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11487:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11487:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11443:7;;11487:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11477:4;11482:1;11477:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11477:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11552:15:::1;::::0;11520:62:::1;::::0;11537:4:::1;::::0;11552:15:::1;11570:11:::0;11520:8:::1;:62::i;:::-;11593:15;::::0;:196:::1;::::0;-1:-1:-1;;;11593:196:0;;-1:-1:-1;;;;;11593:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11674:11;;11593:15:::1;::::0;11716:4;;11743::::1;::::0;11763:15:::1;::::0;11593:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6818:6:0;:14;;-1:-1:-1;;;;6818:14:0;;;-1:-1:-1;;;;11314:483:0:o;11928:92::-;11985:10;;:27;;-1:-1:-1;;;;;11985:10:0;;;;:27;;;;;12005:6;;11985:10;:27;:10;:27;12005:6;11985:10;:27;;;;;;;;;;;;;;;;;;;3114:246;3172:7;3196:1;3201;3196:6;3192:47;;-1:-1:-1;3226:1:0;3219:8;;3192:47;3249:9;3261:5;3265:1;3261;:5;:::i;:::-;3249:17;-1:-1:-1;3294:1:0;3285:5;3289:1;3249:17;3285:5;:::i;:::-;:10;3277:56;;;;-1:-1:-1;;;3277:56:0;;11002:2:1;3277:56:0;;;10984:21:1;11041:2;11021:18;;;11014:30;11080:34;11060:18;;;11053:62;-1:-1:-1;;;11131:18:1;;;11124:31;11172:19;;3277:56:0;10800:397:1;3277:56:0;3351:1;3114:246;-1:-1:-1;;;3114:246:0:o;3368:132::-;3426:7;3453:39;3457:1;3460;3453:39;;;;;;;;;;;;;;;;;:3;:39::i;11208:98::-;11265:7;11292:1;11290;:3;11289:9;;11297:1;11289:9;;;-1:-1:-1;11295:1:0;11208:98;-1:-1:-1;11208:98:0:o;2585:179::-;2643:7;;2675:5;2679:1;2675;:5;:::i;:::-;2663:17;;2704:1;2699;:6;;2691:46;;;;-1:-1:-1;;;2691:46:0;;11404:2:1;2691:46:0;;;11386:21:1;11443:2;11423:18;;;11416:30;11482:29;11462:18;;;11455:57;11529:18;;2691:46:0;11202:351:1;2772:136:0;2830:7;2857:43;2861:1;2864;2857:43;;;;;;;;;;;;;;;;;:3;:43::i;3508:189::-;3594:7;3629:12;3622:5;3614:28;;;;-1:-1:-1;;;3614:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3653:9:0;3665:5;3669:1;3665;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:367;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:247::-;1378:6;1431:2;1419:9;1410:7;1406:23;1402:32;1399:52;;;1447:1;1444;1437:12;1399:52;1486:9;1473:23;1505:31;1530:5;1505:31;:::i;1571:508::-;1648:6;1656;1664;1717:2;1705:9;1696:7;1692:23;1688:32;1685:52;;;1733:1;1730;1723:12;1685:52;1772:9;1759:23;1791:31;1816:5;1791:31;:::i;:::-;1841:5;-1:-1:-1;1898:2:1;1883:18;;1870:32;1911:33;1870:32;1911:33;:::i;:::-;1571:508;;1963:7;;-1:-1:-1;;;2043:2:1;2028:18;;;;2015:32;;1571:508::o;2481:226::-;2540:6;2593:2;2581:9;2572:7;2568:23;2564:32;2561:52;;;2609:1;2606;2599:12;2561:52;-1:-1:-1;2654:23:1;;2481:226;-1:-1:-1;2481:226:1:o;2712:416::-;2777:6;2785;2838:2;2826:9;2817:7;2813:23;2809:32;2806:52;;;2854:1;2851;2844:12;2806:52;2893:9;2880:23;2912:31;2937:5;2912:31;:::i;:::-;2962:5;-1:-1:-1;3019:2:1;3004:18;;2991:32;3061:15;;3054:23;3042:36;;3032:64;;3092:1;3089;3082:12;3032:64;3115:7;3105:17;;;2712:416;;;;;:::o;3133:346::-;3201:6;3209;3262:2;3250:9;3241:7;3237:23;3233:32;3230:52;;;3278:1;3275;3268:12;3230:52;-1:-1:-1;;3323:23:1;;;3443:2;3428:18;;;3415:32;;-1:-1:-1;3133:346:1:o;3484:388::-;3552:6;3560;3613:2;3601:9;3592:7;3588:23;3584:32;3581:52;;;3629:1;3626;3619:12;3581:52;3668:9;3655:23;3687:31;3712:5;3687:31;:::i;:::-;3737:5;-1:-1:-1;3794:2:1;3779:18;;3766:32;3807:33;3766:32;3807:33;:::i;3877:356::-;4079:2;4061:21;;;4098:18;;;4091:30;4157:34;4152:2;4137:18;;4130:62;4224:2;4209:18;;3877:356::o;4238:127::-;4299:10;4294:3;4290:20;4287:1;4280:31;4330:4;4327:1;4320:15;4354:4;4351:1;4344:15;4370:125;4435:9;;;4456:10;;;4453:36;;;4469:18;;:::i;4500:251::-;4570:6;4623:2;4611:9;4602:7;4598:23;4594:32;4591:52;;;4639:1;4636;4629:12;4591:52;4671:9;4665:16;4690:31;4715:5;4690:31;:::i;8552:135::-;8591:3;8612:17;;;8609:43;;8632:18;;:::i;:::-;-1:-1:-1;8679:1:1;8668:13;;8552:135::o;9044:128::-;9111:9;;;9132:11;;;9129:37;;;9146:18;;:::i;9309:127::-;9370:10;9365:3;9361:20;9358:1;9351:31;9401:4;9398:1;9391:15;9425:4;9422:1;9415:15;9441:959;9703:4;9751:3;9740:9;9736:19;9782:6;9771:9;9764:25;9825:6;9820:2;9809:9;9805:18;9798:34;9868:3;9863:2;9852:9;9848:18;9841:31;9892:6;9927;9921:13;9958:6;9950;9943:22;9996:3;9985:9;9981:19;9974:26;;10035:2;10027:6;10023:15;10009:29;;10056:1;10066:195;10080:6;10077:1;10074:13;10066:195;;;10145:13;;-1:-1:-1;;;;;10141:39:1;10129:52;;10210:2;10236:15;;;;10201:12;;;;10177:1;10095:9;10066:195;;;-1:-1:-1;;;;;;;10317:32:1;;;;10312:2;10297:18;;10290:60;-1:-1:-1;;10381:3:1;10366:19;10359:35;10278:3;9441:959;-1:-1:-1;;;9441:959:1:o;10405:168::-;10478:9;;;10509;;10526:15;;;10520:22;;10506:37;10496:71;;10547:18;;:::i;10578:217::-;10618:1;10644;10634:132;;10688:10;10683:3;10679:20;10676:1;10669:31;10723:4;10720:1;10713:15;10751:4;10748:1;10741:15;10634:132;-1:-1:-1;10780:9:1;;10578:217::o

Swarm Source

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