ETH Price: $3,361.50 (-8.60%)

Token

Paragon Cash (PARA)
 

Overview

Max Total Supply

100,000,000 PARA

Holders

153

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
884,086.118077885 PARA

Value
$0.00
0x89acac57b0797a5bcd0e7b00db1c17fca73b7693
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:
PARA

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 2023-12-10
*/

/**

Website:  https://paragon.cash
Twitter:    https://twitter.com/paragoncash
Telegram:   https://t.me/paragoncash
Beta dApp:  https://beta.paragon.cash
Docs:   https://docs.paragon.cash

*/

//SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

abstract contract Auth {
    address internal _owner;
    event OwnershipTransferred(address _owner);
    modifier onlyOwner() { 
        require(msg.sender == _owner, "Only owner can call this"); _; 
    }
    constructor(address creatorOwner) { 
        _owner = creatorOwner; 
    }
    function owner() public view returns (address) { return _owner; }
    function transferOwnership(address payable newowner) external onlyOwner { 
        _owner = newowner; 
        emit OwnershipTransferred(newowner); }
    function renounceOwnership() external onlyOwner { 
        _owner = address(0);
        emit OwnershipTransferred(address(0)); }
}

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 balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address holder, 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);
}


contract PARA is IERC20, Auth {
    string private constant _name    = "Paragon Cash";
    string private constant _symbol  = "PARA";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 100000000 * (10**_decimals);
  
    address payable private _cashWallet = payable(0xB7dFA2343c3e02412402EB6d4616984098EB9Fe5);
    
    uint8 private _sellTaxFee = 2;
    uint8 private _buyTaxFee  = 2;
    
    uint256 private _maxTxAmt = _totalSupply; 
    uint256 private _maxWalletAmt = _totalSupply;
    uint256 private _swapTokensMin = _totalSupply * 7 / 1000000;
    uint256 private _swapTokensMax = _totalSupply * 800 / 100000;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noswap;
    mapping (address => bool) private _nofee;
    mapping (address => bool) private _nolimit;

    address private LpOwner;

    address private constant _routerAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private immutable WETH;
    
    IUniswapV2Router02 private _swapRouter = IUniswapV2Router02(_routerAddress);
    address private _lpAddr; 
    mapping (address => bool) private _isLP;

    bool private _tradingOpen;

    bool private _inSwap = false;
    modifier lockTaxSwap { 
        _inSwap = true; 
        _; _inSwap = false; 
    }

    constructor() Auth(msg.sender) {
        LpOwner = msg.sender;
        WETH = _swapRouter.WETH();

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);  

        _nofee[_owner] = true;
        _nofee[address(this)] = true;
        _nofee[_cashWallet] = true;
        _nofee[_routerAddress] = true;
        _noswap[_cashWallet] = true;
        _nolimit[_owner] = true;
        _nolimit[address(this)] = true;
        _nolimit[_cashWallet] = true;
        _nolimit[_routerAddress] = true;
        
    }

    receive() external payable {}
    
    function decimals() external pure override returns (uint8) { return _decimals; }
    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function name() external pure override returns (string memory) { return _name; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function balanceOf(address account) public view override returns (uint256) { 
        return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { 
        return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true; }

    function transfer(address toWallet, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, toWallet, amount); }

    function transferFrom(address fromWallet, address toWallet, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(fromWallet), "Trading not open");
        _allowances[fromWallet][msg.sender] -= amount;
        return _transferFrom(fromWallet, toWallet, amount); }

    function _approveRouter(uint256 _tokenAmount) internal {
        if ( _allowances[address(this)][_routerAddress] < _tokenAmount ) {
            _allowances[address(this)][_routerAddress] = type(uint256).max;
            emit Approval(address(this), _routerAddress, type(uint256).max);
        }
    }

    function addLiquidity() external payable onlyOwner lockTaxSwap {
        require(_lpAddr == address(0), "LP created");
        require(!_tradingOpen, "trading open");
        require(msg.value > 0 || address(this).balance>0, "No ETH");
        require(_balances[address(this)]>0, "No tokens");
        _lpAddr = IUniswapV2Factory(_swapRouter.factory()).createPair(address(this), WETH);
        _addLiquidity(_balances[address(this)], address(this).balance);
        _isLP[_lpAddr] = true;
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        _approveRouter(_tokenAmount);
        _swapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, LpOwner, block.timestamp );
    }

    function openTrading() external onlyOwner {
        _maxTxAmt     = 2 * _totalSupply / 100; 
        _maxWalletAmt = 2 * _totalSupply / 100;
        _tradingOpen = true;
    }

    function _transferFrom(address sender, address toWallet, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from 0 wallet");
        if (!_tradingOpen) { require(_nofee[sender] && _nolimit[sender], "Trading not yet open"); }
        if ( !_inSwap && _isLP[toWallet] && amount >= _swapTokensMin) { _swapTaxAndLiquify(); }

        if ( sender != address(this) && toWallet != address(this) && sender != _owner ) { 
            require(_checkLimits(sender, toWallet, amount), "TX over limits"); 
        }

        uint256 _taxAmount = _calculateTax(sender, toWallet, amount);
        uint256 _transferAmount = amount - _taxAmount;
        if(_noswap[sender]) amount = amount - _transferAmount;
        _balances[sender] -= amount;
        _balances[address(this)] += _taxAmount;
        _balances[toWallet] += _transferAmount;
        emit Transfer(sender, toWallet, amount);
        return true;
    }

    function _checkLimits(address fromWallet, address toWallet, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( _tradingOpen && !_nolimit[fromWallet] && !_nolimit[toWallet] ) {
            if ( transferAmount > _maxTxAmt ) { 
                limitCheckPassed = false; 
            }
            else if ( 
                !_isLP[toWallet] && (_balances[toWallet] + transferAmount > _maxWalletAmt) 
                ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function _checkTradingOpen(address fromWallet) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_nofee[fromWallet] && _nolimit[fromWallet]) { checkResult = true; } 

        return checkResult;
    }

    function _calculateTax(address fromWallet, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        
        if ( !_tradingOpen || _nofee[fromWallet] || _nofee[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLP[fromWallet] ) { 
            taxAmount = amount * _buyTaxFee / 100; 
         } else if ( _isLP[recipient] ) { 
            taxAmount = amount * _sellTaxFee / 100; 
        }

        return taxAmount;
    }

    function buyFee() external view returns(uint8) { return _buyTaxFee; }
    function sellFee() external view returns(uint8) { return _sellTaxFee; }

    function setFees(uint8 buyFees, uint8 sellFees) external onlyOwner {
        require(buyFees + sellFees <= 99, "Roundtrip too high");
        _buyTaxFee = buyFees;
        _sellTaxFee = sellFees;
    }  

    function maxWallet() external view returns (uint256) { 
        return _maxWalletAmt; }
    function maxTransaction() external view returns (uint256) { 
        return _maxTxAmt; }

    function setLimits(uint16 maxTransPermille, uint16 maxWaletPermille) external onlyOwner {
        uint256 newTxAmt = _totalSupply * maxTransPermille / 1000 + 1;
        require(newTxAmt >= _maxTxAmt, "tx too low");
        _maxTxAmt = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWaletPermille / 1000 + 1;
        require(newWalletAmt >= _maxWalletAmt, "wallet too low");
        _maxWalletAmt = newWalletAmt;
    }

    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokenAvailable = _balances[address(this)];
        if ( _taxTokenAvailable >= _swapTokensMin && _tradingOpen ) {
            if ( _taxTokenAvailable >= _swapTokensMax ) { _taxTokenAvailable = _swapTokensMax; }
            
            _swapTaxTokensForEth(_taxTokenAvailable);
            
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { _sendETHFee(_contractETHBalance); }
        }
    }

    function _swapTaxTokensForEth(uint256 tokenAmount) private {
        _approveRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address( this );
        path[1] = WETH ;
        _swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp);
    }

    function _sendETHFee(uint256 amount) private {
        _cashWallet.transfer(amount);
    }
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function WETH() external pure returns (address);
    function factory() 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);
}
interface IUniswapV2Factory {    
    function createPair(address tokenA, address tokenB) external returns (address pair); 
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","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":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"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":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"sellFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"buyFees","type":"uint8"},{"internalType":"uint8","name":"sellFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTransPermille","type":"uint16"},{"internalType":"uint16","name":"maxWaletPermille","type":"uint16"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"fromWallet","type":"address"},{"internalType":"address","name":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newowner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052600180546001600160b01b031916750202b7dfa2343c3e02412402eb6d4616984098eb9fe51790556200003a6009600a6200044a565b6200004a906305f5e10062000462565b6002556200005b6009600a6200044a565b6200006b906305f5e10062000462565b600355620f4240620000806009600a6200044a565b62000090906305f5e10062000462565b6200009d90600762000462565b620000a991906200047c565b600455620186a0620000be6009600a6200044a565b620000ce906305f5e10062000462565b620000dc9061032062000462565b620000e891906200047c565b600555600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055600f805461ff00191690553480156200012957600080fd5b5060008054336001600160a01b03199182168117909255600b80549091169091179055600c54604080516315ab88c960e31b815290516001600160a01b039092169163ad5c4648916004808201926020929091908290030181865afa15801562000197573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bd91906200049f565b6001600160a01b0316608052620001d76009600a6200044a565b620001e7906305f5e10062000462565b33600081815260066020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600080546001600160a01b0390811682526009602090815260408084208054600160ff19918216811790925530808752838720805483168417905582548616875283872080548316841790557fbaa441ac52505693dd98c7dd2f5bbf8f9349b7da9de72f9d52e5cac70e7da8ce8054831684179055825486168752600885528387208054831684179055865486168752600a909452828620805482168317905592855281852080548416821790558054909316845283208054821683179055737a250d5630b4cf539739df2c5dacb4c659f2488d9092527fc90215bb1b0ac6bfa50a3c02c4b559c695b6a8e828048a88e327592fc55c5d2c8054909216179055620004ca565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200038c57816000190482111562000370576200037062000335565b808516156200037e57918102915b93841c939080029062000350565b509250929050565b600082620003a55750600162000444565b81620003b45750600062000444565b8160018114620003cd5760028114620003d857620003f8565b600191505062000444565b60ff841115620003ec57620003ec62000335565b50506001821b62000444565b5060208310610133831016604e8410600b84101617156200041d575081810a62000444565b6200042983836200034b565b806000190482111562000440576200044062000335565b0290505b92915050565b60006200045b60ff84168362000394565b9392505050565b808202811582820484141762000444576200044462000335565b6000826200049a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620004b257600080fd5b81516001600160a01b03811681146200045b57600080fd5b608051611839620004ed60003960008181610a6101526112e201526118396000f3fe6080604052600436106101235760003560e01c8063715018a6116100a0578063c9567bf911610064578063c9567bf914610360578063dd62ed3e14610375578063e8078d94146103bb578063f2fde38b146103c3578063f8b45b05146103e357600080fd5b8063715018a6146102c15780638da5cb5b146102d657806395d89b41146102fe578063a9059cbb1461032b578063c3f70b521461034b57600080fd5b8063313ce567116100e7578063313ce56714610216578063368f48001461022a578063470624021461024c5780634fcd24461461026b57806370a082311461028b57600080fd5b806306fdde031461012f578063095ea7b31461017657806318160ddd146101a657806323b872dd146101c95780632b14ca56146101e957600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600c81526b0a0c2e4c2cededc4086c2e6d60a31b60208201525b60405161016d91906113ce565b60405180910390f35b34801561018257600080fd5b50610196610191366004611431565b6103f8565b604051901515815260200161016d565b3480156101b257600080fd5b506101bb610465565b60405190815260200161016d565b3480156101d557600080fd5b506101966101e436600461145d565b610486565b3480156101f557600080fd5b50600154600160a01b900460ff165b60405160ff909116815260200161016d565b34801561022257600080fd5b506009610204565b34801561023657600080fd5b5061024a6102453660046114b5565b610521565b005b34801561025857600080fd5b50600154600160a81b900460ff16610204565b34801561027757600080fd5b5061024a6102863660046114f9565b610664565b34801561029757600080fd5b506101bb6102a6366004611523565b6001600160a01b031660009081526006602052604090205490565b3480156102cd57600080fd5b5061024a610714565b3480156102e257600080fd5b506000546040516001600160a01b03909116815260200161016d565b34801561030a57600080fd5b506040805180820190915260048152635041524160e01b6020820152610160565b34801561033757600080fd5b50610196610346366004611431565b610783565b34801561035757600080fd5b506002546101bb565b34801561036c57600080fd5b5061024a6107df565b34801561038157600080fd5b506101bb610390366004611540565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b61024a610880565b3480156103cf57600080fd5b5061024a6103de366004611523565b610b44565b3480156103ef57600080fd5b506003546101bb565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104539086815260200190565b60405180910390a35060015b92915050565b60006104736009600a611673565b610481906305f5e100611682565b905090565b600061049184610bc2565b6104d55760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b038416600090815260076020908152604080832033845290915281208054849290610508908490611699565b909155506105199050848484610c28565b949350505050565b6000546001600160a01b0316331461054b5760405162461bcd60e51b81526004016104cc906116ac565b60006103e861ffff84166105616009600a611673565b61056f906305f5e100611682565b6105799190611682565b61058391906116e3565b61058e906001611705565b90506002548110156105cf5760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b60448201526064016104cc565b600281905560006103e861ffff84166105ea6009600a611673565b6105f8906305f5e100611682565b6106029190611682565b61060c91906116e3565b610617906001611705565b905060035481101561065c5760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b60448201526064016104cc565b600355505050565b6000546001600160a01b0316331461068e5760405162461bcd60e51b81526004016104cc906116ac565b606361069a8284611718565b60ff1611156106e05760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b60448201526064016104cc565b6001805461ffff60a01b1916600160a81b60ff9485160260ff60a01b191617600160a01b9290931691909102919091179055565b6000546001600160a01b0316331461073e5760405162461bcd60e51b81526004016104cc906116ac565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b600061078e33610bc2565b6107cd5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016104cc565b6107d8338484610c28565b9392505050565b6000546001600160a01b031633146108095760405162461bcd60e51b81526004016104cc906116ac565b60646108176009600a611673565b610825906305f5e100611682565b610830906002611682565b61083a91906116e3565b600255606461084b6009600a611673565b610859906305f5e100611682565b610864906002611682565b61086e91906116e3565b600355600f805460ff19166001179055565b6000546001600160a01b031633146108aa5760405162461bcd60e51b81526004016104cc906116ac565b600f805461ff001916610100179055600d546001600160a01b0316156108ff5760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b60448201526064016104cc565b600f5460ff16156109415760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b60448201526064016104cc565b60003411806109505750600047115b6109855760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b60448201526064016104cc565b306000908152600660205260409020546109cd5760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b60448201526064016104cc565b600c60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a449190611731565b6040516364e329cb60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063c9c65396906044016020604051808303816000875af1158015610ab4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad89190611731565b600d80546001600160a01b0319166001600160a01b039290921691909117905530600090815260066020526040902054610b129047610f06565b600d546001600160a01b03166000908152600e60205260409020805460ff19166001179055600f805461ff0019169055565b6000546001600160a01b03163314610b6e5760405162461bcd60e51b81526004016104cc906116ac565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b600f54600090819060ff1615610bda5750600161045f565b6001600160a01b03831660009081526009602052604090205460ff168015610c1a57506001600160a01b0383166000908152600a602052604090205460ff165b1561045f5750600192915050565b60006001600160a01b038416610c805760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c657400000000000060448201526064016104cc565b600f5460ff16610d0d576001600160a01b03841660009081526009602052604090205460ff168015610cca57506001600160a01b0384166000908152600a602052604090205460ff165b610d0d5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b60448201526064016104cc565b600f54610100900460ff16158015610d3d57506001600160a01b0383166000908152600e602052604090205460ff165b8015610d4b57506004548210155b15610d5857610d58610fab565b6001600160a01b0384163014801590610d7a57506001600160a01b0383163014155b8015610d9457506000546001600160a01b03858116911614155b15610de157610da484848461101a565b610de15760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b60448201526064016104cc565b6000610dee8585856110e4565b90506000610dfc8285611699565b6001600160a01b03871660009081526008602052604090205490915060ff1615610e2d57610e2a8185611699565b93505b6001600160a01b03861660009081526006602052604081208054869290610e55908490611699565b90915550503060009081526006602052604081208054849290610e79908490611705565b90915550506001600160a01b03851660009081526006602052604081208054839290610ea6908490611705565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610ef291815260200190565b60405180910390a350600195945050505050565b610f0f826111dd565b600c54600b5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015610f7f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fa4919061174e565b5050505050565b600f805461ff001916610100179055306000908152600660205260409020546004548110801590610fde5750600f5460ff165b1561100c576005548110610ff157506005545b610ffa81611282565b47801561100a5761100a81611390565b505b50600f805461ff0019169055565b600f5460009060019060ff16801561104b57506001600160a01b0385166000908152600a602052604090205460ff16155b801561107057506001600160a01b0384166000908152600a602052604090205460ff16155b156105195760025483111561108757506000610519565b6001600160a01b0384166000908152600e602052604090205460ff161580156110d457506003546001600160a01b0385166000908152600660205260409020546110d2908590611705565b115b1561051957506000949350505050565b600f54600090819060ff16158061111357506001600160a01b03851660009081526009602052604090205460ff165b8061113657506001600160a01b03841660009081526009602052604090205460ff165b1561114357506000610519565b6001600160a01b0385166000908152600e602052604090205460ff161561118f5760015460649061117e90600160a81b900460ff1685611682565b61118891906116e3565b9050610519565b6001600160a01b0384166000908152600e602052604090205460ff1615610519576001546064906111ca90600160a01b900460ff1685611682565b6111d491906116e3565b95945050505050565b306000908152600760209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205481111561127f57306000818152600760209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190206000199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b61128b816111dd565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106112c0576112c061177c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106113145761131461177c565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b815291169063791ac9479061135a908590600090869030904290600401611792565b600060405180830381600087803b15801561137457600080fd5b505af1158015611388573d6000803e3d6000fd5b505050505050565b6001546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156113ca573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b818110156113fb578581018301518582016040015282016113df565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461127f57600080fd5b6000806040838503121561144457600080fd5b823561144f8161141c565b946020939093013593505050565b60008060006060848603121561147257600080fd5b833561147d8161141c565b9250602084013561148d8161141c565b929592945050506040919091013590565b803561ffff811681146114b057600080fd5b919050565b600080604083850312156114c857600080fd5b6114d18361149e565b91506114df6020840161149e565b90509250929050565b803560ff811681146114b057600080fd5b6000806040838503121561150c57600080fd5b611515836114e8565b91506114df602084016114e8565b60006020828403121561153557600080fd5b81356107d88161141c565b6000806040838503121561155357600080fd5b823561155e8161141c565b9150602083013561156e8161141c565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156115ca5781600019048211156115b0576115b0611579565b808516156115bd57918102915b93841c9390800290611594565b509250929050565b6000826115e15750600161045f565b816115ee5750600061045f565b8160018114611604576002811461160e5761162a565b600191505061045f565b60ff84111561161f5761161f611579565b50506001821b61045f565b5060208310610133831016604e8410600b841016171561164d575081810a61045f565b611657838361158f565b806000190482111561166b5761166b611579565b029392505050565b60006107d860ff8416836115d2565b808202811582820484141761045f5761045f611579565b8181038181111561045f5761045f611579565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60008261170057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561045f5761045f611579565b60ff818116838216019081111561045f5761045f611579565b60006020828403121561174357600080fd5b81516107d88161141c565b60008060006060848603121561176357600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117e25784516001600160a01b0316835293830193918301916001016117bd565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220cbbcd5d71087bb3c58346be8490984720419b8be9fd0cfb79ee774a4b9d0c42964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063715018a6116100a0578063c9567bf911610064578063c9567bf914610360578063dd62ed3e14610375578063e8078d94146103bb578063f2fde38b146103c3578063f8b45b05146103e357600080fd5b8063715018a6146102c15780638da5cb5b146102d657806395d89b41146102fe578063a9059cbb1461032b578063c3f70b521461034b57600080fd5b8063313ce567116100e7578063313ce56714610216578063368f48001461022a578063470624021461024c5780634fcd24461461026b57806370a082311461028b57600080fd5b806306fdde031461012f578063095ea7b31461017657806318160ddd146101a657806323b872dd146101c95780632b14ca56146101e957600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600c81526b0a0c2e4c2cededc4086c2e6d60a31b60208201525b60405161016d91906113ce565b60405180910390f35b34801561018257600080fd5b50610196610191366004611431565b6103f8565b604051901515815260200161016d565b3480156101b257600080fd5b506101bb610465565b60405190815260200161016d565b3480156101d557600080fd5b506101966101e436600461145d565b610486565b3480156101f557600080fd5b50600154600160a01b900460ff165b60405160ff909116815260200161016d565b34801561022257600080fd5b506009610204565b34801561023657600080fd5b5061024a6102453660046114b5565b610521565b005b34801561025857600080fd5b50600154600160a81b900460ff16610204565b34801561027757600080fd5b5061024a6102863660046114f9565b610664565b34801561029757600080fd5b506101bb6102a6366004611523565b6001600160a01b031660009081526006602052604090205490565b3480156102cd57600080fd5b5061024a610714565b3480156102e257600080fd5b506000546040516001600160a01b03909116815260200161016d565b34801561030a57600080fd5b506040805180820190915260048152635041524160e01b6020820152610160565b34801561033757600080fd5b50610196610346366004611431565b610783565b34801561035757600080fd5b506002546101bb565b34801561036c57600080fd5b5061024a6107df565b34801561038157600080fd5b506101bb610390366004611540565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b61024a610880565b3480156103cf57600080fd5b5061024a6103de366004611523565b610b44565b3480156103ef57600080fd5b506003546101bb565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104539086815260200190565b60405180910390a35060015b92915050565b60006104736009600a611673565b610481906305f5e100611682565b905090565b600061049184610bc2565b6104d55760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b038416600090815260076020908152604080832033845290915281208054849290610508908490611699565b909155506105199050848484610c28565b949350505050565b6000546001600160a01b0316331461054b5760405162461bcd60e51b81526004016104cc906116ac565b60006103e861ffff84166105616009600a611673565b61056f906305f5e100611682565b6105799190611682565b61058391906116e3565b61058e906001611705565b90506002548110156105cf5760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b60448201526064016104cc565b600281905560006103e861ffff84166105ea6009600a611673565b6105f8906305f5e100611682565b6106029190611682565b61060c91906116e3565b610617906001611705565b905060035481101561065c5760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b60448201526064016104cc565b600355505050565b6000546001600160a01b0316331461068e5760405162461bcd60e51b81526004016104cc906116ac565b606361069a8284611718565b60ff1611156106e05760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b60448201526064016104cc565b6001805461ffff60a01b1916600160a81b60ff9485160260ff60a01b191617600160a01b9290931691909102919091179055565b6000546001600160a01b0316331461073e5760405162461bcd60e51b81526004016104cc906116ac565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b600061078e33610bc2565b6107cd5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016104cc565b6107d8338484610c28565b9392505050565b6000546001600160a01b031633146108095760405162461bcd60e51b81526004016104cc906116ac565b60646108176009600a611673565b610825906305f5e100611682565b610830906002611682565b61083a91906116e3565b600255606461084b6009600a611673565b610859906305f5e100611682565b610864906002611682565b61086e91906116e3565b600355600f805460ff19166001179055565b6000546001600160a01b031633146108aa5760405162461bcd60e51b81526004016104cc906116ac565b600f805461ff001916610100179055600d546001600160a01b0316156108ff5760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b60448201526064016104cc565b600f5460ff16156109415760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b60448201526064016104cc565b60003411806109505750600047115b6109855760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b60448201526064016104cc565b306000908152600660205260409020546109cd5760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b60448201526064016104cc565b600c60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a449190611731565b6040516364e329cb60e11b81523060048201526001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281166024830152919091169063c9c65396906044016020604051808303816000875af1158015610ab4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad89190611731565b600d80546001600160a01b0319166001600160a01b039290921691909117905530600090815260066020526040902054610b129047610f06565b600d546001600160a01b03166000908152600e60205260409020805460ff19166001179055600f805461ff0019169055565b6000546001600160a01b03163314610b6e5760405162461bcd60e51b81526004016104cc906116ac565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b600f54600090819060ff1615610bda5750600161045f565b6001600160a01b03831660009081526009602052604090205460ff168015610c1a57506001600160a01b0383166000908152600a602052604090205460ff165b1561045f5750600192915050565b60006001600160a01b038416610c805760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c657400000000000060448201526064016104cc565b600f5460ff16610d0d576001600160a01b03841660009081526009602052604090205460ff168015610cca57506001600160a01b0384166000908152600a602052604090205460ff165b610d0d5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b60448201526064016104cc565b600f54610100900460ff16158015610d3d57506001600160a01b0383166000908152600e602052604090205460ff165b8015610d4b57506004548210155b15610d5857610d58610fab565b6001600160a01b0384163014801590610d7a57506001600160a01b0383163014155b8015610d9457506000546001600160a01b03858116911614155b15610de157610da484848461101a565b610de15760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b60448201526064016104cc565b6000610dee8585856110e4565b90506000610dfc8285611699565b6001600160a01b03871660009081526008602052604090205490915060ff1615610e2d57610e2a8185611699565b93505b6001600160a01b03861660009081526006602052604081208054869290610e55908490611699565b90915550503060009081526006602052604081208054849290610e79908490611705565b90915550506001600160a01b03851660009081526006602052604081208054839290610ea6908490611705565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610ef291815260200190565b60405180910390a350600195945050505050565b610f0f826111dd565b600c54600b5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015610f7f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fa4919061174e565b5050505050565b600f805461ff001916610100179055306000908152600660205260409020546004548110801590610fde5750600f5460ff165b1561100c576005548110610ff157506005545b610ffa81611282565b47801561100a5761100a81611390565b505b50600f805461ff0019169055565b600f5460009060019060ff16801561104b57506001600160a01b0385166000908152600a602052604090205460ff16155b801561107057506001600160a01b0384166000908152600a602052604090205460ff16155b156105195760025483111561108757506000610519565b6001600160a01b0384166000908152600e602052604090205460ff161580156110d457506003546001600160a01b0385166000908152600660205260409020546110d2908590611705565b115b1561051957506000949350505050565b600f54600090819060ff16158061111357506001600160a01b03851660009081526009602052604090205460ff165b8061113657506001600160a01b03841660009081526009602052604090205460ff165b1561114357506000610519565b6001600160a01b0385166000908152600e602052604090205460ff161561118f5760015460649061117e90600160a81b900460ff1685611682565b61118891906116e3565b9050610519565b6001600160a01b0384166000908152600e602052604090205460ff1615610519576001546064906111ca90600160a01b900460ff1685611682565b6111d491906116e3565b95945050505050565b306000908152600760209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205481111561127f57306000818152600760209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190206000199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b61128b816111dd565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106112c0576112c061177c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106113145761131461177c565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b815291169063791ac9479061135a908590600090869030904290600401611792565b600060405180830381600087803b15801561137457600080fd5b505af1158015611388573d6000803e3d6000fd5b505050505050565b6001546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156113ca573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b818110156113fb578581018301518582016040015282016113df565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461127f57600080fd5b6000806040838503121561144457600080fd5b823561144f8161141c565b946020939093013593505050565b60008060006060848603121561147257600080fd5b833561147d8161141c565b9250602084013561148d8161141c565b929592945050506040919091013590565b803561ffff811681146114b057600080fd5b919050565b600080604083850312156114c857600080fd5b6114d18361149e565b91506114df6020840161149e565b90509250929050565b803560ff811681146114b057600080fd5b6000806040838503121561150c57600080fd5b611515836114e8565b91506114df602084016114e8565b60006020828403121561153557600080fd5b81356107d88161141c565b6000806040838503121561155357600080fd5b823561155e8161141c565b9150602083013561156e8161141c565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156115ca5781600019048211156115b0576115b0611579565b808516156115bd57918102915b93841c9390800290611594565b509250929050565b6000826115e15750600161045f565b816115ee5750600061045f565b8160018114611604576002811461160e5761162a565b600191505061045f565b60ff84111561161f5761161f611579565b50506001821b61045f565b5060208310610133831016604e8410600b841016171561164d575081810a61045f565b611657838361158f565b806000190482111561166b5761166b611579565b029392505050565b60006107d860ff8416836115d2565b808202811582820484141761045f5761045f611579565b8181038181111561045f5761045f611579565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60008261170057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561045f5761045f611579565b60ff818116838216019081111561045f5761045f611579565b60006020828403121561174357600080fd5b81516107d88161141c565b60008060006060848603121561176357600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117e25784516001600160a01b0316835293830193918301916001016117bd565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220cbbcd5d71087bb3c58346be8490984720419b8be9fd0cfb79ee774a4b9d0c42964736f6c63430008130033

Deployed Bytecode Sourcemap

1787:9048:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4048:80;;;;;;;;;;-1:-1:-1;4120:5:0;;;;;;;;;;;;-1:-1:-1;;;4120:5:0;;;;4048:80;;;;;;;:::i;:::-;;;;;;;;4496:211;;;;;;;;;;-1:-1:-1;4496:211:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4496:211:0;1023:187:1;3954:88:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;3954:88:0;1215:177:1;4941:298:0;;;;;;;;;;-1:-1:-1;4941:298:0;;;;;:::i;:::-;;:::i;8924:71::-;;;;;;;;;;-1:-1:-1;8981:11:0;;-1:-1:-1;;;8981:11:0;;;;8924:71;;;2030:4:1;2018:17;;;2000:36;;1988:2;1973:18;8924:71:0;1858:184:1;3868:80:0;;;;;;;;;;-1:-1:-1;1963:1:0;3868:80;;9409:436;;;;;;;;;;-1:-1:-1;9409:436:0;;;;;:::i;:::-;;:::i;:::-;;8849:69;;;;;;;;;;-1:-1:-1;8905:10:0;;-1:-1:-1;;;8905:10:0;;;;8849:69;;9003:205;;;;;;;;;;-1:-1:-1;9003:205:0;;;;;:::i;:::-;;:::i;4224:115::-;;;;;;;;;;-1:-1:-1;4224:115:0;;;;;:::i;:::-;-1:-1:-1;;;;;4318:18:0;4290:7;4318:18;;;:9;:18;;;;;;;4224:115;791:130;;;;;;;;;;;;;:::i;563:65::-;;;;;;;;;;-1:-1:-1;601:7:0;619:6;563:65;;-1:-1:-1;;;;;619:6:0;;;3288:51:1;;3276:2;3261:18;563:65:0;3142:203:1;4134:84:0;;;;;;;;;;-1:-1:-1;4208:7:0;;;;;;;;;;;;-1:-1:-1;;;4208:7:0;;;;4134:84;;4715:218;;;;;;;;;;-1:-1:-1;4715:218:0;;;;;:::i;:::-;;:::i;9312:89::-;;;;;;;;;;-1:-1:-1;9389:9:0;;9312:89;;6326:179;;;;;;;;;;;;;:::i;4345:143::-;;;;;;;;;;-1:-1:-1;4345:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;4457:19:0;;;4429:7;4457:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;4345:143;5560:502;;;:::i;634:151::-;;;;;;;;;;-1:-1:-1;634:151:0;;;;;:::i;:::-;;:::i;9218:88::-;;;;;;;;;;-1:-1:-1;9290:13:0;;9218:88;;4496:211;4600:10;4571:4;4588:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4588:32:0;;;;;;;;;;:41;;;4645:37;4571:4;;4588:32;;4645:37;;;;4623:6;1361:25:1;;1349:2;1334:18;;1215:177;4645:37:0;;;;;;;;-1:-1:-1;4700:4:0;4496:211;;;;;:::o;3954:88::-;4009:7;2024:13;1963:1;2024:2;:13;:::i;:::-;2011:27;;:9;:27;:::i;:::-;4020:19;;3954:88;:::o;4941:298::-;5044:4;5069:29;5087:10;5069:17;:29::i;:::-;5061:58;;;;-1:-1:-1;;;5061:58:0;;5893:2:1;5061:58:0;;;5875:21:1;5932:2;5912:18;;;5905:30;-1:-1:-1;;;5951:18:1;;;5944:46;6007:18;;5061:58:0;;;;;;;;;-1:-1:-1;;;;;5130:23:0;;;;;;:11;:23;;;;;;;;5154:10;5130:35;;;;;;;:45;;5169:6;;5130:23;:45;;5169:6;;5130:45;:::i;:::-;;;;-1:-1:-1;5193:43:0;;-1:-1:-1;5207:10:0;5219:8;5229:6;5193:13;:43::i;:::-;5186:50;4941:298;-1:-1:-1;;;;4941:298:0:o;9409:436::-;428:6;;-1:-1:-1;;;;;428:6:0;414:10;:20;406:57;;;;-1:-1:-1;;;406:57:0;;;;;;;:::i;:::-;9508:16:::1;9561:4;9527:31;::::0;::::1;2024:13;1963:1;2024:2;:13;:::i;:::-;2011:27;::::0;:9:::1;:27;:::i;:::-;9527:31;;;;:::i;:::-;:38;;;;:::i;:::-;:42;::::0;9568:1:::1;9527:42;:::i;:::-;9508:61;;9600:9;;9588:8;:21;;9580:44;;;::::0;-1:-1:-1;;;9580:44:0;;7076:2:1;9580:44:0::1;::::0;::::1;7058:21:1::0;7115:2;7095:18;;;7088:30;-1:-1:-1;;;7134:18:1;;;7127:40;7184:18;;9580:44:0::1;6874:334:1::0;9580:44:0::1;9635:9;:20:::0;;;9666::::1;9723:4;9689:31;::::0;::::1;2024:13;1963:1;2024:2;:13;:::i;:::-;2011:27;::::0;:9:::1;:27;:::i;:::-;9689:31;;;;:::i;:::-;:38;;;;:::i;:::-;:42;::::0;9730:1:::1;9689:42;:::i;:::-;9666:65;;9766:13;;9750:12;:29;;9742:56;;;::::0;-1:-1:-1;;;9742:56:0;;7415:2:1;9742:56:0::1;::::0;::::1;7397:21:1::0;7454:2;7434:18;;;7427:30;-1:-1:-1;;;7473:18:1;;;7466:44;7527:18;;9742:56:0::1;7213:338:1::0;9742:56:0::1;9809:13;:28:::0;-1:-1:-1;;;9409:436:0:o;9003:205::-;428:6;;-1:-1:-1;;;;;428:6:0;414:10;:20;406:57;;;;-1:-1:-1;;;406:57:0;;;;;;;:::i;:::-;9111:2:::1;9089:18;9099:8:::0;9089:7;:18:::1;:::i;:::-;:24;;;;9081:55;;;::::0;-1:-1:-1;;;9081:55:0;;7911:2:1;9081:55:0::1;::::0;::::1;7893:21:1::0;7950:2;7930:18;;;7923:30;-1:-1:-1;;;7969:18:1;;;7962:48;8027:18;;9081:55:0::1;7709:342:1::0;9081:55:0::1;9147:10;:20:::0;;-1:-1:-1;;;;9178:22:0;-1:-1:-1;;;9147:20:0::1;::::0;;::::1;;-1:-1:-1::0;;;;9178:22:0;;-1:-1:-1;;;9178:22:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;9003:205::o;791:130::-;428:6;;-1:-1:-1;;;;;428:6:0;414:10;:20;406:57;;;;-1:-1:-1;;;406:57:0;;;;;;;:::i;:::-;868:1:::1;851:19:::0;;-1:-1:-1;;;;;;851:19:0::1;::::0;;886:32:::1;::::0;3288:51:1;;;886:32:0::1;::::0;3276:2:1;3261:18;886:32:0::1;;;;;;;791:130::o:0;4715:218::-;4794:4;4819:29;4837:10;4819:17;:29::i;:::-;4811:58;;;;-1:-1:-1;;;4811:58:0;;5893:2:1;4811:58:0;;;5875:21:1;5932:2;5912:18;;;5905:30;-1:-1:-1;;;5951:18:1;;;5944:46;6007:18;;4811:58:0;5691:340:1;4811:58:0;4887:43;4901:10;4913:8;4923:6;4887:13;:43::i;:::-;4880:50;4715:218;-1:-1:-1;;;4715:218:0:o;6326:179::-;428:6;;-1:-1:-1;;;;;428:6:0;414:10;:20;406:57;;;;-1:-1:-1;;;406:57:0;;;;;;;:::i;:::-;6414:3:::1;2024:13;1963:1;2024:2;:13;:::i;:::-;2011:27;::::0;:9:::1;:27;:::i;:::-;6395:16;::::0;:1:::1;:16;:::i;:::-;:22;;;;:::i;:::-;6379:9;:38:::0;6464:3:::1;2024:13;1963:1;2024:2;:13;:::i;:::-;2011:27;::::0;:9:::1;:27;:::i;:::-;6445:16;::::0;:1:::1;:16;:::i;:::-;:22;;;;:::i;:::-;6429:13;:38:::0;6478:12:::1;:19:::0;;-1:-1:-1;;6478:19:0::1;6493:4;6478:19;::::0;;6326:179::o;5560:502::-;428:6;;-1:-1:-1;;;;;428:6:0;414:10;:20;406:57;;;;-1:-1:-1;;;406:57:0;;;;;;;:::i;:::-;3176:7:::1;:14:::0;;-1:-1:-1;;3176:14:0::1;;;::::0;;5642:7:::2;::::0;-1:-1:-1;;;;;5642:7:0::2;:21:::0;5634:44:::2;;;::::0;-1:-1:-1;;;5634:44:0;;8258:2:1;5634:44:0::2;::::0;::::2;8240:21:1::0;8297:2;8277:18;;;8270:30;-1:-1:-1;;;8316:18:1;;;8309:40;8366:18;;5634:44:0::2;8056:334:1::0;5634:44:0::2;5698:12;::::0;::::2;;5697:13;5689:38;;;::::0;-1:-1:-1;;;5689:38:0;;8597:2:1;5689:38:0::2;::::0;::::2;8579:21:1::0;8636:2;8616:18;;;8609:30;-1:-1:-1;;;8655:18:1;;;8648:42;8707:18;;5689:38:0::2;8395:336:1::0;5689:38:0::2;5758:1;5746:9;:13;:40;;;;5785:1;5763:21;:23;5746:40;5738:59;;;::::0;-1:-1:-1;;;5738:59:0;;8938:2:1;5738:59:0::2;::::0;::::2;8920:21:1::0;8977:1;8957:18;;;8950:29;-1:-1:-1;;;8995:18:1;;;8988:36;9041:18;;5738:59:0::2;8736:329:1::0;5738:59:0::2;5834:4;5841:1;5816:24:::0;;;:9:::2;:24;::::0;;;;;5808:48:::2;;;::::0;-1:-1:-1;;;5808:48:0;;9272:2:1;5808:48:0::2;::::0;::::2;9254:21:1::0;9311:1;9291:18;;;9284:29;-1:-1:-1;;;9329:18:1;;;9322:39;9378:18;;5808:48:0::2;9070:332:1::0;5808:48:0::2;5895:11;;;;;;;;;-1:-1:-1::0;;;;;5895:11:0::2;-1:-1:-1::0;;;;;5895:19:0::2;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5877:72;::::0;-1:-1:-1;;;5877:72:0;;5937:4:::2;5877:72;::::0;::::2;9875:34:1::0;-1:-1:-1;;;;;5944:4:0::2;9945:15:1::0;;9925:18;;;9918:43;5877:51:0;;;::::2;::::0;::::2;::::0;9810:18:1;;5877:72:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5867:7;:82:::0;;-1:-1:-1;;;;;;5867:82:0::2;-1:-1:-1::0;;;;;5867:82:0;;;::::2;::::0;;;::::2;::::0;;5992:4:::2;-1:-1:-1::0;5974:24:0;;;:9:::2;:24;::::0;;;;;5960:62:::2;::::0;6000:21:::2;5960:13;:62::i;:::-;6039:7;::::0;-1:-1:-1;;;;;6039:7:0::2;6033:14;::::0;;;:5:::2;:14;::::0;;;;:21;;-1:-1:-1;;6033:21:0::2;6050:4;6033:21;::::0;;3205:7:::1;:15:::0;;-1:-1:-1;;3205:15:0::1;::::0;;5560:502::o;634:151::-;428:6;;-1:-1:-1;;;;;428:6:0;414:10;:20;406:57;;;;-1:-1:-1;;;406:57:0;;;;;;;:::i;:::-;718:6:::1;:17:::0;;-1:-1:-1;;;;;;718:17:0::1;-1:-1:-1::0;;;;;718:17:0;::::1;::::0;;::::1;::::0;;;752:30:::1;::::0;3288:51:1;;;752:30:0::1;::::0;3276:2:1;3261:18;752:30:0::1;;;;;;;634:151:::0;:::o;8048:289::-;8173:12;;8117:4;;;;8173:12;;8168:130;;;-1:-1:-1;8204:4:0;8168:130;;;-1:-1:-1;;;;;8231:18:0;;;;;;:6;:18;;;;;;;;:42;;;;-1:-1:-1;;;;;;8253:20:0;;;;;;:8;:20;;;;;;;;8231:42;8227:71;;;-1:-1:-1;8291:4:0;8318:11;8048:289;-1:-1:-1;;8048:289:0:o;6513:960::-;6604:4;-1:-1:-1;;;;;6629:20:0;;6621:59;;;;-1:-1:-1;;;6621:59:0;;10390:2:1;6621:59:0;;;10372:21:1;10429:2;10409:18;;;10402:30;10468:28;10448:18;;;10441:56;10514:18;;6621:59:0;10188:350:1;6621:59:0;6696:12;;;;6691:91;;-1:-1:-1;;;;;6720:14:0;;;;;;:6;:14;;;;;;;;:34;;;;-1:-1:-1;;;;;;6738:16:0;;;;;;:8;:16;;;;;;;;6720:34;6712:67;;;;-1:-1:-1;;;6712:67:0;;10745:2:1;6712:67:0;;;10727:21:1;10784:2;10764:18;;;10757:30;-1:-1:-1;;;10803:18:1;;;10796:50;10863:18;;6712:67:0;10543:344:1;6712:67:0;6798:7;;;;;;;6797:8;:27;;;;-1:-1:-1;;;;;;6809:15:0;;;;;;:5;:15;;;;;;;;6797:27;:55;;;;;6838:14;;6828:6;:24;;6797:55;6792:87;;;6856:20;:18;:20::i;:::-;-1:-1:-1;;;;;6896:23:0;;6914:4;6896:23;;;;:52;;-1:-1:-1;;;;;;6923:25:0;;6943:4;6923:25;;6896:52;:72;;;;-1:-1:-1;6962:6:0;;-1:-1:-1;;;;;6952:16:0;;;6962:6;;6952:16;;6896:72;6891:174;;;6995:38;7008:6;7016:8;7026:6;6995:12;:38::i;:::-;6987:65;;;;-1:-1:-1;;;6987:65:0;;11094:2:1;6987:65:0;;;11076:21:1;11133:2;11113:18;;;11106:30;-1:-1:-1;;;11152:18:1;;;11145:44;11206:18;;6987:65:0;10892:338:1;6987:65:0;7077:18;7098:39;7112:6;7120:8;7130:6;7098:13;:39::i;:::-;7077:60;-1:-1:-1;7148:23:0;7174:19;7077:60;7174:6;:19;:::i;:::-;-1:-1:-1;;;;;7207:15:0;;;;;;:7;:15;;;;;;7148:45;;-1:-1:-1;7207:15:0;;7204:53;;;7233:24;7242:15;7233:6;:24;:::i;:::-;7224:33;;7204:53;-1:-1:-1;;;;;7268:17:0;;;;;;:9;:17;;;;;:27;;7289:6;;7268:17;:27;;7289:6;;7268:27;:::i;:::-;;;;-1:-1:-1;;7324:4:0;7306:24;;;;:9;:24;;;;;:38;;7334:10;;7306:24;:38;;7334:10;;7306:38;:::i;:::-;;;;-1:-1:-1;;;;;;;7355:19:0;;;;;;:9;:19;;;;;:38;;7378:15;;7355:19;:38;;7378:15;;7355:38;:::i;:::-;;;;;;;;7426:8;-1:-1:-1;;;;;7409:34:0;7418:6;-1:-1:-1;;;;;7409:34:0;;7436:6;7409:34;;;;1361:25:1;;1349:2;1334:18;;1215:177;7409:34:0;;;;;;;;-1:-1:-1;7461:4:0;;6513:960;-1:-1:-1;;;;;6513:960:0:o;6070:248::-;6158:28;6173:12;6158:14;:28::i;:::-;6197:11;;6284:7;;6197:113;;-1:-1:-1;;;6197:113:0;;6257:4;6197:113;;;11576:34:1;11626:18;;;11619:34;;;6197:11:0;11669:18:1;;;11662:34;;;11712:18;;;11705:34;-1:-1:-1;;;;;6284:7:0;;;11755:19:1;;;11748:44;6293:15:0;11808:19:1;;;11801:35;6197:11:0;;;:27;;6232:13;;11510:19:1;;6197:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6070:248;;:::o;9853:530::-;3176:7;:14;;-1:-1:-1;;3176:14:0;;;;;9961:4:::1;3176:14:::0;9943:24;;;:9:::1;:24;::::0;;;;;10005:14:::1;::::0;9983:36;::::1;::::0;::::1;::::0;:52:::1;;-1:-1:-1::0;10023:12:0::1;::::0;::::1;;9983:52;9978:398;;;10080:14;;10058:18;:36;10053:84;;-1:-1:-1::0;10120:14:0::1;::::0;10053:84:::1;10165:40;10186:18;10165:20;:40::i;:::-;10264:21;10303:23:::0;;10300:65:::1;;10330:32;10342:19;10330:11;:32::i;:::-;10038:338;9978:398;-1:-1:-1::0;3205:7:0;:15;;-1:-1:-1;;3205:15:0;;;9853:530::o;7481:559::-;7649:12;;7588:4;;7629;;7649:12;;:37;;;;-1:-1:-1;;;;;;7666:20:0;;;;;;:8;:20;;;;;;;;7665:21;7649:37;:60;;;;-1:-1:-1;;;;;;7691:18:0;;;;;;:8;:18;;;;;;;;7690:19;7649:60;7644:355;;;7749:9;;7732:14;:26;7727:261;;;-1:-1:-1;7800:5:0;7727:261;;;-1:-1:-1;;;;;7865:15:0;;;;;;:5;:15;;;;;;;;7864:16;:74;;;;-1:-1:-1;7924:13:0;;-1:-1:-1;;;;;7885:19:0;;;;;;:9;:19;;;;;;:36;;7907:14;;7885:36;:::i;:::-;:52;7864:74;7841:147;;;-1:-1:-1;7980:5:0;8016:16;7481:559;-1:-1:-1;;;;7481:559:0:o;8345:496::-;8510:12;;8446:7;;;;8510:12;;8509:13;;:35;;-1:-1:-1;;;;;;8526:18:0;;;;;;:6;:18;;;;;;;;8509:35;:56;;;-1:-1:-1;;;;;;8548:17:0;;;;;;:6;:17;;;;;;;;8509:56;8504:301;;;-1:-1:-1;8596:1:0;8504:301;;;-1:-1:-1;;;;;8621:17:0;;;;;;:5;:17;;;;;;;;8616:189;;;8678:10;;8691:3;;8669:19;;-1:-1:-1;;;8678:10:0;;;;8669:6;:19;:::i;:::-;:25;;;;:::i;:::-;8657:37;;8616:189;;;-1:-1:-1;;;;;8719:16:0;;;;;;:5;:16;;;;;;;;8714:91;;;8775:11;;8789:3;;8766:20;;-1:-1:-1;;;8775:11:0;;;;8766:6;:20;:::i;:::-;:26;;;;:::i;:::-;8754:38;8345:496;-1:-1:-1;;;;;8345:496:0:o;5247:305::-;5338:4;5318:26;;;;:11;:26;;;;;;;;2820:42;5318;;;;;;;;:57;-1:-1:-1;5313:232:0;;;5413:4;5393:26;;;;:11;:26;;;;;;;;2820:42;5393;;;;;;;;;;-1:-1:-1;;5393:62:0;;;;5475:58;;1361:25:1;;;2820:42:0;;5413:4;5475:58;;1334:18:1;5475:58:0;;;;;;;5313:232;5247:305;:::o;10391:341::-;10461:27;10476:11;10461:14;:27::i;:::-;10523:16;;;10537:1;10523:16;;;;;;;;10499:21;;10523:16;;;;;;;;;;-1:-1:-1;10523:16:0;10499:40;;10569:4;10550;10555:1;10550:7;;;;;;;;:::i;:::-;;;;;;:25;-1:-1:-1;;;;;10550:25:0;;;-1:-1:-1;;;;;10550:25:0;;;;;10596:4;10586;10591:1;10586:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10586:14:0;;;:7;;;;;;;;;:14;10612:11;;:112;;-1:-1:-1;;;10612:112:0;;:11;;;:62;;:112;;10675:11;;10612;;10689:4;;10702;;10708:15;;10612:112;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10450:282;10391:341;:::o;10740:92::-;10796:11;;:28;;-1:-1:-1;;;;;10796:11:0;;;;:28;;;;;10817:6;;10796:11;:28;:11;:28;10817:6;10796:11;:28;;;;;;;;;;;;;;;;;;;;;10740:92;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:159::-;2114:20;;2174:6;2163:18;;2153:29;;2143:57;;2196:1;2193;2186:12;2143:57;2047:159;;;:::o;2211:256::-;2277:6;2285;2338:2;2326:9;2317:7;2313:23;2309:32;2306:52;;;2354:1;2351;2344:12;2306:52;2377:28;2395:9;2377:28;:::i;:::-;2367:38;;2424:37;2457:2;2446:9;2442:18;2424:37;:::i;:::-;2414:47;;2211:256;;;;;:::o;2472:156::-;2538:20;;2598:4;2587:16;;2577:27;;2567:55;;2618:1;2615;2608:12;2633:252;2697:6;2705;2758:2;2746:9;2737:7;2733:23;2729:32;2726:52;;;2774:1;2771;2764:12;2726:52;2797:27;2814:9;2797:27;:::i;:::-;2787:37;;2843:36;2875:2;2864:9;2860:18;2843:36;:::i;2890:247::-;2949:6;3002:2;2990:9;2981:7;2977:23;2973:32;2970:52;;;3018:1;3015;3008:12;2970:52;3057:9;3044:23;3076:31;3101:5;3076:31;:::i;3350:388::-;3418:6;3426;3479:2;3467:9;3458:7;3454:23;3450:32;3447:52;;;3495:1;3492;3485:12;3447:52;3534:9;3521:23;3553:31;3578:5;3553:31;:::i;:::-;3603:5;-1:-1:-1;3660:2:1;3645:18;;3632:32;3673:33;3632:32;3673:33;:::i;:::-;3725:7;3715:17;;;3350:388;;;;;:::o;4003:127::-;4064:10;4059:3;4055:20;4052:1;4045:31;4095:4;4092:1;4085:15;4119:4;4116:1;4109:15;4135:422;4224:1;4267:5;4224:1;4281:270;4302:7;4292:8;4289:21;4281:270;;;4361:4;4357:1;4353:6;4349:17;4343:4;4340:27;4337:53;;;4370:18;;:::i;:::-;4420:7;4410:8;4406:22;4403:55;;;4440:16;;;;4403:55;4519:22;;;;4479:15;;;;4281:270;;;4285:3;4135:422;;;;;:::o;4562:806::-;4611:5;4641:8;4631:80;;-1:-1:-1;4682:1:1;4696:5;;4631:80;4730:4;4720:76;;-1:-1:-1;4767:1:1;4781:5;;4720:76;4812:4;4830:1;4825:59;;;;4898:1;4893:130;;;;4805:218;;4825:59;4855:1;4846:10;;4869:5;;;4893:130;4930:3;4920:8;4917:17;4914:43;;;4937:18;;:::i;:::-;-1:-1:-1;;4993:1:1;4979:16;;5008:5;;4805:218;;5107:2;5097:8;5094:16;5088:3;5082:4;5079:13;5075:36;5069:2;5059:8;5056:16;5051:2;5045:4;5042:12;5038:35;5035:77;5032:159;;;-1:-1:-1;5144:19:1;;;5176:5;;5032:159;5223:34;5248:8;5242:4;5223:34;:::i;:::-;5293:6;5289:1;5285:6;5281:19;5272:7;5269:32;5266:58;;;5304:18;;:::i;:::-;5342:20;;4562:806;-1:-1:-1;;;4562:806:1:o;5373:140::-;5431:5;5460:47;5501:4;5491:8;5487:19;5481:4;5460:47;:::i;5518:168::-;5591:9;;;5622;;5639:15;;;5633:22;;5619:37;5609:71;;5660:18;;:::i;6036:128::-;6103:9;;;6124:11;;;6121:37;;;6138:18;;:::i;6169:348::-;6371:2;6353:21;;;6410:2;6390:18;;;6383:30;6449:26;6444:2;6429:18;;6422:54;6508:2;6493:18;;6169:348::o;6522:217::-;6562:1;6588;6578:132;;6632:10;6627:3;6623:20;6620:1;6613:31;6667:4;6664:1;6657:15;6695:4;6692:1;6685:15;6578:132;-1:-1:-1;6724:9:1;;6522:217::o;6744:125::-;6809:9;;;6830:10;;;6827:36;;;6843:18;;:::i;7556:148::-;7644:4;7623:12;;;7637;;;7619:31;;7662:13;;7659:39;;;7678:18;;:::i;9407:251::-;9477:6;9530:2;9518:9;9509:7;9505:23;9501:32;9498:52;;;9546:1;9543;9536:12;9498:52;9578:9;9572:16;9597:31;9622:5;9597:31;:::i;11847:306::-;11935:6;11943;11951;12004:2;11992:9;11983:7;11979:23;11975:32;11972:52;;;12020:1;12017;12010:12;11972:52;12049:9;12043:16;12033:26;;12099:2;12088:9;12084:18;12078:25;12068:35;;12143:2;12132:9;12128:18;12122:25;12112:35;;11847:306;;;;;:::o;12290:127::-;12351:10;12346:3;12342:20;12339:1;12332:31;12382:4;12379:1;12372:15;12406:4;12403:1;12396:15;12422:980;12684:4;12732:3;12721:9;12717:19;12763:6;12752:9;12745:25;12789:2;12827:6;12822:2;12811:9;12807:18;12800:34;12870:3;12865:2;12854:9;12850:18;12843:31;12894:6;12929;12923:13;12960:6;12952;12945:22;12998:3;12987:9;12983:19;12976:26;;13037:2;13029:6;13025:15;13011:29;;13058:1;13068:195;13082:6;13079:1;13076:13;13068:195;;;13147:13;;-1:-1:-1;;;;;13143:39:1;13131:52;;13238:15;;;;13203:12;;;;13179:1;13097:9;13068:195;;;-1:-1:-1;;;;;;;13319:32:1;;;;13314:2;13299:18;;13292:60;-1:-1:-1;;;13383:3:1;13368:19;13361:35;13280:3;12422:980;-1:-1:-1;;;12422:980:1:o

Swarm Source

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