ETH Price: $3,462.63 (+2.02%)
Gas: 15 Gwei

Token

UNDEAD (UNDEAD)
 

Overview

Max Total Supply

10,000,000 UNDEAD

Holders

101

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
189,270.999747603834440179 UNDEAD

Value
$0.00
0x38a15bca1570c989883fc6a97068501c8165567f
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:
UNDEAD

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-19
*/

/**

Website: https://undead.fund
Twitter: https://twitter.com/undeadfund
Telegram: https://t.me/undeadfund

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.18;

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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 transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);
}

contract UNDEAD is Context, IERC20, Ownable {
    uint256 private constant _totalSupply = 10_000_000e18;
    uint256 private constant onePercent = 100_000e18;
    uint256 private constant tenthPercent = 10_000e18;
    uint256 private minSwap = 72e18;
    uint256 private maxSwap = onePercent * 2;
    uint8 private constant _decimals = 18;

    IUniswapV2Router02 immutable uniswapV2Router;
    address public uniswapV2Pair;
    address immutable WETH;
    address payable immutable _undeadAddr;

    uint256 public buyTax;
    uint256 public sellTax;
    uint256 public lpTax;

    uint8 private launch;
    uint8 private inSwapAndLiquify;

    uint256 private launchBlock;
    uint256 public maxTxAmount = onePercent * 2; //max Tx for first mins after launch
    uint256 public maxWalletAmount = onePercent * 2; //max Tx for first mins after launch

    string private constant _name = "UNDEAD";
    string private constant _symbol = "UNDEAD";

    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcludedFromMax;

    constructor() {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        WETH = uniswapV2Router.WETH();
        buyTax = 31;
        sellTax = 32;
        lpTax = 0;

        _undeadAddr = payable(0xF6A5b5036E52BDA96402C38f3C8eDC6EAE661858);
        _balance[msg.sender] = _totalSupply;
        _isExcludedFromFee[_undeadAddr] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromMax[address(this)] = true;
        _isExcludedFromMax[address(uniswapV2Router)] = true;
        _isExcludedFromMax[address(0)] = true;
        _isExcludedFromMax[address(0xDEAD)] = true;
        _isExcludedFromMax[msg.sender] = true;
        _allowances[address(this)][address(uniswapV2Router)] = type(uint256)
            .max;
        _allowances[msg.sender][address(uniswapV2Router)] = type(uint256).max;

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

    function liveUnDead() external onlyOwner {
        require(launch == 0, "already opened");
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            WETH
        );
        _isExcludedFromMax[address(uniswapV2Pair)] = true;

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

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

    function getContractBalance() public view returns (uint256) {
        return address(this).balance;
    }

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[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()] - amount
        );
        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 openTrading() external onlyOwner {
        require(launch == 0, "already opened");
        launch = 1;
        launchBlock = block.number;
    }

    function addExcludedWallet(address wallet) external onlyOwner {
        _isExcludedFromFee[wallet] = true;
        _isExcludedFromMax[wallet] = true;
    }

    function removeLimits() external onlyOwner {
        maxTxAmount = type(uint256).max;
        maxWalletAmount = type(uint256).max;
    }

    function changeTax(
        uint256 newBuyTax,
        uint256 newSellTax,
        uint256 newLpTax
    ) external onlyOwner {
        require(
            newBuyTax < 20 ||
                newSellTax < 20 ||
                newLpTax < 20 ||
                (newBuyTax + newSellTax + newLpTax) < 50,
            "Cannot set taxes above 20%"
        );
        buyTax = newBuyTax;
        sellTax = newSellTax;
        lpTax = newLpTax;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");

        uint256 _tax;
        if (from == address(this) || to == address(this)) {
            _balance[from] -= amount;
            _balance[to] += amount;

            emit Transfer(from, to, amount);
            return;
        }
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(
                launch != 0 && amount <= maxTxAmount,
                "Launch / Max TxAmount 1% at launch"
            );
            if (!_isExcludedFromMax[to]) {
                require(
                    _balance[to] + amount <= maxWalletAmount,
                    "Exceeds max wallet balance"
                );
            }

            if (inSwapAndLiquify == 1) {
                //No tax transfer
                _balance[from] -= amount;
                _balance[to] += amount;

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

            if (from == uniswapV2Pair) {
                _tax = buyTax + lpTax;
            } else if (to == uniswapV2Pair) {
                uint256 tokensToSwap = _balance[address(this)];
                if (amount > minSwap && inSwapAndLiquify == 0) {
                    if (tokensToSwap > minSwap) {
                        if (tokensToSwap > maxSwap) {
                            tokensToSwap = maxSwap;
                        }

                        uint256 liqidityToken = (tokensToSwap * lpTax) /
                            (((buyTax + sellTax) / 2) + lpTax);
                        uint256 tokensTosell = tokensToSwap - liqidityToken;

                        inSwapAndLiquify = 1;
                        address[] memory path = new address[](2);
                        path[0] = address(this);
                        path[1] = WETH;

                        uniswapV2Router
                            .swapExactTokensForETHSupportingFeeOnTransferTokens(
                                tokensTosell,
                                0,
                                path,
                                _undeadAddr,
                                block.timestamp
                            );

                        if (liqidityToken > 0) {
                            uniswapV2Router
                                .swapExactTokensForETHSupportingFeeOnTransferTokens(
                                    liqidityToken / 2,
                                    0,
                                    path,
                                    address(this),
                                    block.timestamp
                                );

                            uint256 newBal = address(this).balance;
                            uniswapV2Router.addLiquidityETH{value: newBal}(
                                address(this),
                                liqidityToken / 2,
                                0,
                                0,
                                owner(),
                                block.timestamp
                            );
                        }
                        inSwapAndLiquify = 0;
                    }
                }

                _tax = sellTax + lpTax;
            } else {
                _tax = 0;
            }
        }

        bool _takeTax = shouldTakeTax(from, to);

        if (_takeTax) {
            //Tax transfer
            uint256 transferAmount = takeTax(from, to, amount, _tax);

            _balance[to] += transferAmount;
            emit Transfer(from, to, transferAmount);
        } else {
            _balance[to] += amount;

            emit Transfer(from, to, amount);
        }
    }

    function shouldTakeTax(address from, address to)
        internal
        view
        returns (bool)
    {
        return !_isExcludedFromFee[from];
    }

    function takeTax(
        address from,
        address to,
        uint256 amount,
        uint256 taxRate
    ) internal returns (uint256) {
        uint256 taxTokens = (amount * taxRate) / 100;
        uint256 transferAmount = amount - taxTokens;

        _balance[from] -= amount;
        _balance[address(this)] += taxTokens;
        emit Transfer(from, address(this), taxTokens);

        return transferAmount;
    }

    receive() external payable {}
}

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":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":[{"internalType":"address","name":"wallet","type":"address"}],"name":"addExcludedWallet","outputs":[],"stateMutability":"nonpayable","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":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"},{"internalType":"uint256","name":"newLpTax","type":"uint256"}],"name":"changeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liveUnDead","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e06040526803e73362871420000060025569152d02c7e14af680000060026200002a9190620002d6565b6003556200004469152d02c7e14af68000006002620002d6565b600a556200005e69152d02c7e14af68000006002620002d6565b600b553480156200006d575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d6080819052604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000102573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000128919062000300565b6001600160a01b0390811660a052601f600555602060068190555f600781905573f6a5b5036e52bda96402c38f3c8edc6eae66185860c05233808252600c835260408083206a084595161401484a0000009055600e84527fbe5abaf50dec5ef15b3b47975ec9a61d631963a47051826a3fe1ded7f7abafda8054600160ff199182168117909255308086528386208054831684179055600f8752838620805483168417905560805190971680865283862080548316841790557ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec37580548316841790557f99629f56119585bf27511b6b7d295dffb54757453fcc3dabcf51d92028301f10805483168417905584865283862080549092169092179055948352600d80855281842086855285528184205f19908190559284528452808320948352939092529190912055620002783390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a084595161401484a000000604051620002c891815260200190565b60405180910390a36200032f565b8082028115828204841417620002fa57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f6020828403121562000311575f80fd5b81516001600160a01b038116811462000328575f80fd5b9392505050565b60805160a05160c0516116db6200037d5f395f610f3701525f818161071d0152610eab01525f8181610682015281816107cd01528181610f0201528181610fa0015261102c01526116db5ff3fe60806040526004361061014a575f3560e01c80638c0b5e22116100b3578063ac69bc7f1161006d578063ac69bc7f14610377578063c9567bf91461038b578063cc1776d31461039f578063dba9d420146103b4578063dd62ed3e146103d3578063f2fde38b14610417575f80fd5b80638c0b5e22146102f35780638da5cb5b1461030857806395d89b4114610155578063974ea01e14610324578063a9059cbb14610343578063aa4bde2814610362575f80fd5b806349bd5a5e1161010457806349bd5a5e146102375780634f7041a51461026e5780636f9fb98a1461028357806370a0823114610295578063715018a6146102c9578063751039fc146102df575f80fd5b806306fdde0314610155578063095ea7b31461019257806318160ddd146101c15780631de3b450146101e857806323b872dd146101fd578063313ce5671461021c575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50604080518082018252600681526515539111505160d21b602082015290516101899190611385565b60405180910390f35b34801561019d575f80fd5b506101b16101ac3660046113e4565b610436565b6040519015158152602001610189565b3480156101cc575f80fd5b506a084595161401484a0000005b604051908152602001610189565b3480156101f3575f80fd5b506101da60075481565b348015610208575f80fd5b506101b161021736600461140e565b61044c565b348015610227575f80fd5b5060405160128152602001610189565b348015610242575f80fd5b50600454610256906001600160a01b031681565b6040516001600160a01b039091168152602001610189565b348015610279575f80fd5b506101da60055481565b34801561028e575f80fd5b50476101da565b3480156102a0575f80fd5b506101da6102af36600461144c565b6001600160a01b03165f908152600c602052604090205490565b3480156102d4575f80fd5b506102dd61049c565b005b3480156102ea575f80fd5b506102dd610516565b3480156102fe575f80fd5b506101da600a5481565b348015610313575f80fd5b505f546001600160a01b0316610256565b34801561032f575f80fd5b506102dd61033e36600461146e565b61054b565b34801561034e575f80fd5b506101b161035d3660046113e4565b610607565b34801561036d575f80fd5b506101da600b5481565b348015610382575f80fd5b506102dd610613565b348015610396575f80fd5b506102dd61088e565b3480156103aa575f80fd5b506101da60065481565b3480156103bf575f80fd5b506102dd6103ce36600461144c565b61090e565b3480156103de575f80fd5b506101da6103ed366004611497565b6001600160a01b039182165f908152600d6020908152604080832093909416825291909152205490565b348015610422575f80fd5b506102dd61043136600461144c565b610972565b5f6104423384846109a7565b5060015b92915050565b5f610458848484610aca565b6001600160a01b0384165f908152600d602090815260408083203380855292529091205461049291869161048d9086906114e2565b6109a7565b5060019392505050565b5f546001600160a01b031633146104ce5760405162461bcd60e51b81526004016104c5906114f5565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461053f5760405162461bcd60e51b81526004016104c5906114f5565b5f19600a819055600b55565b5f546001600160a01b031633146105745760405162461bcd60e51b81526004016104c5906114f5565b60148310806105835750601482105b8061058e5750601481105b806105ad57506032816105a1848661152a565b6105ab919061152a565b105b6105f95760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f74207365742074617865732061626f76652032302500000000000060448201526064016104c5565b600592909255600655600755565b5f610442338484610aca565b5f546001600160a01b0316331461063c5760405162461bcd60e51b81526004016104c5906114f5565b60085460ff16156106805760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481bdc195b995960921b60448201526064016104c5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106dc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610700919061153d565b6040516364e329cb60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063c9c65396906044016020604051808303815f875af115801561076d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610791919061153d565b600480546001600160a01b039283166001600160a01b031990911681179091555f908152600f60205260409020805460ff1916600117905547907f00000000000000000000000000000000000000000000000000000000000000001663f305d7198230610812816001600160a01b03165f908152600c602052604090205490565b5f806108255f546001600160a01b031690565b426040518863ffffffff1660e01b815260040161084796959493929190611558565b60606040518083038185885af1158015610863573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108889190611593565b50505050565b5f546001600160a01b031633146108b75760405162461bcd60e51b81526004016104c5906114f5565b60085460ff16156108fb5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481bdc195b995960921b60448201526064016104c5565b6008805460ff1916600117905543600955565b5f546001600160a01b031633146109375760405162461bcd60e51b81526004016104c5906114f5565b6001600160a01b03165f908152600e602090815260408083208054600160ff199182168117909255600f909352922080549091169091179055565b5f546001600160a01b0316331461099b5760405162461bcd60e51b81526004016104c5906114f5565b6109a481611217565b50565b6001600160a01b038316610a095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c5565b6001600160a01b038216610a6a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c5565b6001600160a01b038381165f818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b2e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c5565b5f6001600160a01b038416301480610b4e57506001600160a01b03831630145b15610bed576001600160a01b0384165f908152600c602052604081208054849290610b7a9084906114e2565b90915550506001600160a01b0383165f908152600c602052604081208054849290610ba690849061152a565b92505081905550826001600160a01b0316846001600160a01b03165f8051602061168683398151915284604051610bdf91815260200190565b60405180910390a350505050565b6001600160a01b0384165f908152600e602052604090205460ff16158015610c2d57506001600160a01b0383165f908152600e602052604090205460ff16155b156111055760085460ff1615801590610c485750600a548211155b610c9f5760405162461bcd60e51b815260206004820152602260248201527f4c61756e6368202f204d6178205478416d6f756e74203125206174206c61756e6044820152610c6d60f31b60648201526084016104c5565b6001600160a01b0383165f908152600f602052604090205460ff16610d3257600b546001600160a01b0384165f908152600c6020526040902054610ce490849061152a565b1115610d325760405162461bcd60e51b815260206004820152601a60248201527f45786365656473206d61782077616c6c65742062616c616e636500000000000060448201526064016104c5565b600854610100900460ff16600103610d6b576001600160a01b0384165f908152600c602052604081208054849290610b7a9084906114e2565b6004546001600160a01b0390811690851603610d9857600754600554610d91919061152a565b9050611105565b6004546001600160a01b039081169084160361110257305f908152600c602052604090205460025483118015610dd65750600854610100900460ff16155b156110ea576002548111156110ea57600354811115610df457506003545b5f6007546002600654600554610e0a919061152a565b610e1491906115be565b610e1e919061152a565b600754610e2b90846115dd565b610e3591906115be565b90505f610e4282846114e2565b6008805461ff0019166101001790556040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110610e8957610e896115f4565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610edd57610edd6115f4565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac94790610f619085905f9086907f000000000000000000000000000000000000000000000000000000000000000090429060040161164a565b5f604051808303815f87803b158015610f78575f80fd5b505af1158015610f8a573d5f803e3d5ffd5b505050505f8311156110db576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663791ac947610fd06002866115be565b5f8430426040518663ffffffff1660e01b8152600401610ff495949392919061164a565b5f604051808303815f87803b15801561100b575f80fd5b505af115801561101d573d5f803e3d5ffd5b50479250506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016905063f305d71982306110606002896115be565b5f806110735f546001600160a01b031690565b426040518863ffffffff1660e01b815260040161109596959493929190611558565b60606040518083038185885af11580156110b1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110d69190611593565b505050505b50506008805461ff0019169055505b6007546006546110fa919061152a565b915050611105565b505f5b6001600160a01b0384165f908152600e602052604090205460ff161580156111a7575f611134868686866112d5565b6001600160a01b0386165f908152600c602052604081208054929350839290919061116090849061152a565b92505081905550846001600160a01b0316866001600160a01b03165f805160206116868339815191528360405161119991815260200190565b60405180910390a350611210565b6001600160a01b0384165f908152600c6020526040812080548592906111ce90849061152a565b92505081905550836001600160a01b0316856001600160a01b03165f805160206116868339815191528560405161120791815260200190565b60405180910390a35b5050505050565b6001600160a01b03811661127c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104c5565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8060646112e384866115dd565b6112ed91906115be565b90505f6112fa82866114e2565b6001600160a01b0388165f908152600c60205260408120805492935087929091906113269084906114e2565b9091555050305f908152600c60205260408120805484929061134990849061152a565b909155505060405182815230906001600160a01b038916905f805160206116868339815191529060200160405180910390a39695505050505050565b5f6020808352835180828501525f5b818110156113b057858101830151858201604001528201611394565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109a4575f80fd5b5f80604083850312156113f5575f80fd5b8235611400816113d0565b946020939093013593505050565b5f805f60608486031215611420575f80fd5b833561142b816113d0565b9250602084013561143b816113d0565b929592945050506040919091013590565b5f6020828403121561145c575f80fd5b8135611467816113d0565b9392505050565b5f805f60608486031215611480575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156114a8575f80fd5b82356114b3816113d0565b915060208301356114c3816113d0565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610446576104466114ce565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80820180821115610446576104466114ce565b5f6020828403121561154d575f80fd5b8151611467816113d0565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f606084860312156115a5575f80fd5b8351925060208401519150604084015190509250925092565b5f826115d857634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610446576104466114ce565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602080850194508084015f5b8381101561163f5781516001600160a01b03168752958201959082019060010161161a565b509495945050505050565b85815284602082015260a060408201525f61166860a0830186611608565b6001600160a01b039490941660608301525060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ebf3297deaf1de8c7a2aae66e143389c885f8e67563ed8b837bd63c69fb4aee664736f6c63430008150033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c80638c0b5e22116100b3578063ac69bc7f1161006d578063ac69bc7f14610377578063c9567bf91461038b578063cc1776d31461039f578063dba9d420146103b4578063dd62ed3e146103d3578063f2fde38b14610417575f80fd5b80638c0b5e22146102f35780638da5cb5b1461030857806395d89b4114610155578063974ea01e14610324578063a9059cbb14610343578063aa4bde2814610362575f80fd5b806349bd5a5e1161010457806349bd5a5e146102375780634f7041a51461026e5780636f9fb98a1461028357806370a0823114610295578063715018a6146102c9578063751039fc146102df575f80fd5b806306fdde0314610155578063095ea7b31461019257806318160ddd146101c15780631de3b450146101e857806323b872dd146101fd578063313ce5671461021c575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50604080518082018252600681526515539111505160d21b602082015290516101899190611385565b60405180910390f35b34801561019d575f80fd5b506101b16101ac3660046113e4565b610436565b6040519015158152602001610189565b3480156101cc575f80fd5b506a084595161401484a0000005b604051908152602001610189565b3480156101f3575f80fd5b506101da60075481565b348015610208575f80fd5b506101b161021736600461140e565b61044c565b348015610227575f80fd5b5060405160128152602001610189565b348015610242575f80fd5b50600454610256906001600160a01b031681565b6040516001600160a01b039091168152602001610189565b348015610279575f80fd5b506101da60055481565b34801561028e575f80fd5b50476101da565b3480156102a0575f80fd5b506101da6102af36600461144c565b6001600160a01b03165f908152600c602052604090205490565b3480156102d4575f80fd5b506102dd61049c565b005b3480156102ea575f80fd5b506102dd610516565b3480156102fe575f80fd5b506101da600a5481565b348015610313575f80fd5b505f546001600160a01b0316610256565b34801561032f575f80fd5b506102dd61033e36600461146e565b61054b565b34801561034e575f80fd5b506101b161035d3660046113e4565b610607565b34801561036d575f80fd5b506101da600b5481565b348015610382575f80fd5b506102dd610613565b348015610396575f80fd5b506102dd61088e565b3480156103aa575f80fd5b506101da60065481565b3480156103bf575f80fd5b506102dd6103ce36600461144c565b61090e565b3480156103de575f80fd5b506101da6103ed366004611497565b6001600160a01b039182165f908152600d6020908152604080832093909416825291909152205490565b348015610422575f80fd5b506102dd61043136600461144c565b610972565b5f6104423384846109a7565b5060015b92915050565b5f610458848484610aca565b6001600160a01b0384165f908152600d602090815260408083203380855292529091205461049291869161048d9086906114e2565b6109a7565b5060019392505050565b5f546001600160a01b031633146104ce5760405162461bcd60e51b81526004016104c5906114f5565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461053f5760405162461bcd60e51b81526004016104c5906114f5565b5f19600a819055600b55565b5f546001600160a01b031633146105745760405162461bcd60e51b81526004016104c5906114f5565b60148310806105835750601482105b8061058e5750601481105b806105ad57506032816105a1848661152a565b6105ab919061152a565b105b6105f95760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f74207365742074617865732061626f76652032302500000000000060448201526064016104c5565b600592909255600655600755565b5f610442338484610aca565b5f546001600160a01b0316331461063c5760405162461bcd60e51b81526004016104c5906114f5565b60085460ff16156106805760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481bdc195b995960921b60448201526064016104c5565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106dc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610700919061153d565b6040516364e329cb60e11b81523060048201526001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281166024830152919091169063c9c65396906044016020604051808303815f875af115801561076d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610791919061153d565b600480546001600160a01b039283166001600160a01b031990911681179091555f908152600f60205260409020805460ff1916600117905547907f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663f305d7198230610812816001600160a01b03165f908152600c602052604090205490565b5f806108255f546001600160a01b031690565b426040518863ffffffff1660e01b815260040161084796959493929190611558565b60606040518083038185885af1158015610863573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108889190611593565b50505050565b5f546001600160a01b031633146108b75760405162461bcd60e51b81526004016104c5906114f5565b60085460ff16156108fb5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481bdc195b995960921b60448201526064016104c5565b6008805460ff1916600117905543600955565b5f546001600160a01b031633146109375760405162461bcd60e51b81526004016104c5906114f5565b6001600160a01b03165f908152600e602090815260408083208054600160ff199182168117909255600f909352922080549091169091179055565b5f546001600160a01b0316331461099b5760405162461bcd60e51b81526004016104c5906114f5565b6109a481611217565b50565b6001600160a01b038316610a095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c5565b6001600160a01b038216610a6a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c5565b6001600160a01b038381165f818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b2e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c5565b5f6001600160a01b038416301480610b4e57506001600160a01b03831630145b15610bed576001600160a01b0384165f908152600c602052604081208054849290610b7a9084906114e2565b90915550506001600160a01b0383165f908152600c602052604081208054849290610ba690849061152a565b92505081905550826001600160a01b0316846001600160a01b03165f8051602061168683398151915284604051610bdf91815260200190565b60405180910390a350505050565b6001600160a01b0384165f908152600e602052604090205460ff16158015610c2d57506001600160a01b0383165f908152600e602052604090205460ff16155b156111055760085460ff1615801590610c485750600a548211155b610c9f5760405162461bcd60e51b815260206004820152602260248201527f4c61756e6368202f204d6178205478416d6f756e74203125206174206c61756e6044820152610c6d60f31b60648201526084016104c5565b6001600160a01b0383165f908152600f602052604090205460ff16610d3257600b546001600160a01b0384165f908152600c6020526040902054610ce490849061152a565b1115610d325760405162461bcd60e51b815260206004820152601a60248201527f45786365656473206d61782077616c6c65742062616c616e636500000000000060448201526064016104c5565b600854610100900460ff16600103610d6b576001600160a01b0384165f908152600c602052604081208054849290610b7a9084906114e2565b6004546001600160a01b0390811690851603610d9857600754600554610d91919061152a565b9050611105565b6004546001600160a01b039081169084160361110257305f908152600c602052604090205460025483118015610dd65750600854610100900460ff16155b156110ea576002548111156110ea57600354811115610df457506003545b5f6007546002600654600554610e0a919061152a565b610e1491906115be565b610e1e919061152a565b600754610e2b90846115dd565b610e3591906115be565b90505f610e4282846114e2565b6008805461ff0019166101001790556040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110610e8957610e896115f4565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610edd57610edd6115f4565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063791ac94790610f619085905f9086907f000000000000000000000000f6a5b5036e52bda96402c38f3c8edc6eae66185890429060040161164a565b5f604051808303815f87803b158015610f78575f80fd5b505af1158015610f8a573d5f803e3d5ffd5b505050505f8311156110db576001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663791ac947610fd06002866115be565b5f8430426040518663ffffffff1660e01b8152600401610ff495949392919061164a565b5f604051808303815f87803b15801561100b575f80fd5b505af115801561101d573d5f803e3d5ffd5b50479250506001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d16905063f305d71982306110606002896115be565b5f806110735f546001600160a01b031690565b426040518863ffffffff1660e01b815260040161109596959493929190611558565b60606040518083038185885af11580156110b1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110d69190611593565b505050505b50506008805461ff0019169055505b6007546006546110fa919061152a565b915050611105565b505f5b6001600160a01b0384165f908152600e602052604090205460ff161580156111a7575f611134868686866112d5565b6001600160a01b0386165f908152600c602052604081208054929350839290919061116090849061152a565b92505081905550846001600160a01b0316866001600160a01b03165f805160206116868339815191528360405161119991815260200190565b60405180910390a350611210565b6001600160a01b0384165f908152600c6020526040812080548592906111ce90849061152a565b92505081905550836001600160a01b0316856001600160a01b03165f805160206116868339815191528560405161120791815260200190565b60405180910390a35b5050505050565b6001600160a01b03811661127c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104c5565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8060646112e384866115dd565b6112ed91906115be565b90505f6112fa82866114e2565b6001600160a01b0388165f908152600c60205260408120805492935087929091906113269084906114e2565b9091555050305f908152600c60205260408120805484929061134990849061152a565b909155505060405182815230906001600160a01b038916905f805160206116868339815191529060200160405180910390a39695505050505050565b5f6020808352835180828501525f5b818110156113b057858101830151858201604001528201611394565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109a4575f80fd5b5f80604083850312156113f5575f80fd5b8235611400816113d0565b946020939093013593505050565b5f805f60608486031215611420575f80fd5b833561142b816113d0565b9250602084013561143b816113d0565b929592945050506040919091013590565b5f6020828403121561145c575f80fd5b8135611467816113d0565b9392505050565b5f805f60608486031215611480575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156114a8575f80fd5b82356114b3816113d0565b915060208301356114c3816113d0565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610446576104466114ce565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80820180821115610446576104466114ce565b5f6020828403121561154d575f80fd5b8151611467816113d0565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f606084860312156115a5575f80fd5b8351925060208401519150604084015190509250925092565b5f826115d857634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610446576104466114ce565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602080850194508084015f5b8381101561163f5781516001600160a01b03168752958201959082019060010161161a565b509495945050505050565b85815284602082015260a060408201525f61166860a0830186611608565b6001600160a01b039490941660608301525060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ebf3297deaf1de8c7a2aae66e143389c885f8e67563ed8b837bd63c69fb4aee664736f6c63430008150033

Deployed Bytecode Sourcemap

3163:10243:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5947:83;;;;;;;;;;-1:-1:-1;6017:5:0;;;;;;;;;;;-1:-1:-1;;;6017:5:0;;;;5947:83;;;;6017:5;5947:83;:::i;:::-;;;;;;;;6972:193;;;;;;;;;;-1:-1:-1;6972:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6972:193:0;1023:187:1;6339:100:0;;;;;;;;;;-1:-1:-1;3254:13:0;6339:100;;;1361:25:1;;;1349:2;1334:18;6339:100:0;1215:177:1;3734:20:0;;;;;;;;;;;;;;;;7173:350;;;;;;;;;;-1:-1:-1;7173:350:0;;;;;:::i;:::-;;:::i;6248:83::-;;;;;;;;;;-1:-1:-1;6248:83:0;;3505:2;2000:36:1;;1988:2;1973:18;6248:83:0;1858:184:1;3567:28:0;;;;;;;;;;-1:-1:-1;3567:28:0;;;;-1:-1:-1;;;;;3567:28:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;3567:28:0;2047:203:1;3677:21:0;;;;;;;;;;;;;;;;6038:107;;;;;;;;;;-1:-1:-1;6116:21:0;6038:107;;6447:118;;;;;;;;;;-1:-1:-1;6447:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;6540:17:0;6513:7;6540:17;;;:8;:17;;;;;;;6447:118;2115:148;;;;;;;;;;;;;:::i;:::-;;8239:139;;;;;;;;;;;;;:::i;3863:43::-;;;;;;;;;;;;;;;;1510:79;;;;;;;;;;-1:-1:-1;1548:7:0;1575:6;-1:-1:-1;;;;;1575:6:0;1510:79;;8386:456;;;;;;;;;;-1:-1:-1;8386:456:0;;;;;:::i;:::-;;:::i;6573:199::-;;;;;;;;;;-1:-1:-1;6573:199:0;;;;;:::i;:::-;;:::i;3950:47::-;;;;;;;;;;;;;;;;5363:576;;;;;;;;;;;;;:::i;7908:157::-;;;;;;;;;;;;;:::i;3705:22::-;;;;;;;;;;;;;;;;8073:158;;;;;;;;;;-1:-1:-1;8073:158:0;;;;;:::i;:::-;;:::i;6780:184::-;;;;;;;;;;-1:-1:-1;6780:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;6929:18:0;;;6897:7;6929:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6780:184;1724:109;;;;;;;;;;-1:-1:-1;1724:109:0;;;;;:::i;:::-;;:::i;6972:193::-;7074:4;7096:39;304:10;7119:7;7128:6;7096:8;:39::i;:::-;-1:-1:-1;7153:4:0;6972:193;;;;;:::o;7173:350::-;7305:4;7322:36;7332:6;7340:9;7351:6;7322:9;:36::i;:::-;-1:-1:-1;;;;;7440:19:0;;;;;;:11;:19;;;;;;;;304:10;7440:33;;;;;;;;;7369:124;;7392:6;;7440:42;;7476:6;;7440:42;:::i;:::-;7369:8;:124::i;:::-;-1:-1:-1;7511:4:0;7173:350;;;;;:::o;2115:148::-;1637:6;;-1:-1:-1;;;;;1637:6:0;304:10;1637:22;1629:67;;;;-1:-1:-1;;;1629:67:0;;;;;;;:::i;:::-;;;;;;;;;2222:1:::1;2206:6:::0;;2185:40:::1;::::0;-1:-1:-1;;;;;2206:6:0;;::::1;::::0;2185:40:::1;::::0;2222:1;;2185:40:::1;2253:1;2236:19:::0;;-1:-1:-1;;;;;;2236:19:0::1;::::0;;2115:148::o;8239:139::-;1637:6;;-1:-1:-1;;;;;1637:6:0;304:10;1637:22;1629:67;;;;-1:-1:-1;;;1629:67:0;;;;;;;:::i;:::-;-1:-1:-1;;8293:11:0::1;:31:::0;;;8335:15:::1;:35:::0;8239:139::o;8386:456::-;1637:6;;-1:-1:-1;;;;;1637:6:0;304:10;1637:22;1629:67;;;;-1:-1:-1;;;1629:67:0;;;;;;;:::i;:::-;8560:2:::1;8548:9;:14;:50;;;;8596:2;8583:10;:15;8548:50;:84;;;;8630:2;8619:8;:13;8548:84;:145;;;-1:-1:-1::0;8691:2:0::1;8679:8:::0;8654:22:::1;8666:10:::0;8654:9;:22:::1;:::i;:::-;:33;;;;:::i;:::-;8653:40;8548:145;8526:221;;;::::0;-1:-1:-1;;;8526:221:0;;4179:2:1;8526:221:0::1;::::0;::::1;4161:21:1::0;4218:2;4198:18;;;4191:30;4257:28;4237:18;;;4230:56;4303:18;;8526:221:0::1;3977:350:1::0;8526:221:0::1;8758:6;:18:::0;;;;8787:7:::1;:20:::0;8818:5:::1;:16:::0;8386:456::o;6573:199::-;6678:4;6700:42;304:10;6724:9;6735:6;6700:9;:42::i;5363:576::-;1637:6;;-1:-1:-1;;;;;1637:6:0;304:10;1637:22;1629:67;;;;-1:-1:-1;;;1629:67:0;;;;;;;:::i;:::-;5423:6:::1;::::0;::::1;;:11:::0;5415:38:::1;;;::::0;-1:-1:-1;;;5415:38:0;;4534:2:1;5415:38:0::1;::::0;::::1;4516:21:1::0;4573:2;4553:18;;;4546:30;-1:-1:-1;;;4592:18:1;;;4585:44;4646:18;;5415:38:0::1;4332:338:1::0;5415:38:0::1;5498:15;-1:-1:-1::0;;;;;5498:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5480:113;::::0;-1:-1:-1;;;5480:113:0;;5558:4:::1;5480:113;::::0;::::1;5143:34:1::0;-1:-1:-1;;;;;5578:4:0::1;5213:15:1::0;;5193:18;;;5186:43;5480:55:0;;;::::1;::::0;::::1;::::0;5078:18:1;;5480:113:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5464:13;:129:::0;;-1:-1:-1;;;;;5464:129:0;;::::1;-1:-1:-1::0;;;;;;5464:129:0;;::::1;::::0;::::1;::::0;;;:13:::1;5604:42:::0;;;:18:::1;:42;::::0;;;;:49;;-1:-1:-1;;5604:49:0::1;5464:129:::0;5604:49:::1;::::0;;5687:21:::1;::::0;5719:15:::1;:31;;5687:21:::0;5792:4:::1;5812:24;5792:4:::0;-1:-1:-1;;;;;6540:17:0;6513:7;6540:17;;;:8;:17;;;;;;;6447:118;5812:24:::1;5851:1;5867::::0;5883:7:::1;1548::::0;1575:6;-1:-1:-1;;;;;1575:6:0;;1510:79;5883:7:::1;5905:15;5719:212;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5404:535;5363:576::o:0;7908:157::-;1637:6;;-1:-1:-1;;;;;1637:6:0;304:10;1637:22;1629:67;;;;-1:-1:-1;;;1629:67:0;;;;;;;:::i;:::-;7969:6:::1;::::0;::::1;;:11:::0;7961:38:::1;;;::::0;-1:-1:-1;;;7961:38:0;;4534:2:1;7961:38:0::1;::::0;::::1;4516:21:1::0;4573:2;4553:18;;;4546:30;-1:-1:-1;;;4592:18:1;;;4585:44;4646:18;;7961:38:0::1;4332:338:1::0;7961:38:0::1;8010:6;:10:::0;;-1:-1:-1;;8010:10:0::1;8019:1;8010:10;::::0;;8045:12:::1;8031:11;:26:::0;7908:157::o;8073:158::-;1637:6;;-1:-1:-1;;;;;1637:6:0;304:10;1637:22;1629:67;;;;-1:-1:-1;;;1629:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8146:26:0::1;;::::0;;;:18:::1;:26;::::0;;;;;;;:33;;8175:4:::1;-1:-1:-1::0;;8146:33:0;;::::1;::::0;::::1;::::0;;;8190:18:::1;:26:::0;;;;;:33;;;;::::1;::::0;;::::1;::::0;;8073:158::o;1724:109::-;1637:6;;-1:-1:-1;;;;;1637:6:0;304:10;1637:22;1629:67;;;;-1:-1:-1;;;1629:67:0;;;;;;;:::i;:::-;1797:28:::1;1816:8;1797:18;:28::i;:::-;1724:109:::0;:::o;7531:369::-;-1:-1:-1;;;;;7658:19:0;;7650:68;;;;-1:-1:-1;;;7650:68:0;;6365:2:1;7650:68:0;;;6347:21:1;6404:2;6384:18;;;6377:30;6443:34;6423:18;;;6416:62;-1:-1:-1;;;6494:18:1;;;6487:34;6538:19;;7650:68:0;6163:400:1;7650:68:0;-1:-1:-1;;;;;7737:21:0;;7729:68;;;;-1:-1:-1;;;7729:68:0;;6770:2:1;7729:68:0;;;6752:21:1;6809:2;6789:18;;;6782:30;6848:34;6828:18;;;6821:62;-1:-1:-1;;;6899:18:1;;;6892:32;6941:19;;7729:68:0;6568:398:1;7729:68:0;-1:-1:-1;;;;;7808:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7860:32;;1361:25:1;;;7860:32:0;;1334:18:1;7860:32:0;;;;;;;7531:369;;;:::o;8850:3902::-;-1:-1:-1;;;;;8972:18:0;;8964:68;;;;-1:-1:-1;;;8964:68:0;;7173:2:1;8964:68:0;;;7155:21:1;7212:2;7192:18;;;7185:30;7251:34;7231:18;;;7224:62;-1:-1:-1;;;7302:18:1;;;7295:35;7347:19;;8964:68:0;6971:401:1;8964:68:0;9045:12;-1:-1:-1;;;;;9072:21:0;;9088:4;9072:21;;:44;;-1:-1:-1;;;;;;9097:19:0;;9111:4;9097:19;9072:44;9068:207;;;-1:-1:-1;;;;;9133:14:0;;;;;;:8;:14;;;;;:24;;9151:6;;9133:14;:24;;9151:6;;9133:24;:::i;:::-;;;;-1:-1:-1;;;;;;;9172:12:0;;;;;;:8;:12;;;;;:22;;9188:6;;9172:12;:22;;9188:6;;9172:22;:::i;:::-;;;;;;;;9231:2;-1:-1:-1;;;;;9216:26:0;9225:4;-1:-1:-1;;;;;9216:26:0;-1:-1:-1;;;;;;;;;;;9235:6:0;9216:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;9216:26:0;;;;;;;;9257:7;8850:3902;;;:::o;9068:207::-;-1:-1:-1;;;;;9290:24:0;;;;;;:18;:24;;;;;;;;9289:25;:52;;;;-1:-1:-1;;;;;;9319:22:0;;;;;;:18;:22;;;;;;;;9318:23;9289:52;9285:3067;;;9384:6;;;;:11;;;;:36;;;9409:11;;9399:6;:21;;9384:36;9358:132;;;;-1:-1:-1;;;9358:132:0;;7579:2:1;9358:132:0;;;7561:21:1;7618:2;7598:18;;;7591:30;7657:34;7637:18;;;7630:62;-1:-1:-1;;;7708:18:1;;;7701:32;7750:19;;9358:132:0;7377:398:1;9358:132:0;-1:-1:-1;;;;;9510:22:0;;;;;;:18;:22;;;;;;;;9505:204;;9608:15;;-1:-1:-1;;;;;9583:12:0;;;;;;:8;:12;;;;;;:21;;9598:6;;9583:21;:::i;:::-;:40;;9553:140;;;;-1:-1:-1;;;9553:140:0;;7982:2:1;9553:140:0;;;7964:21:1;8021:2;8001:18;;;7994:30;8060:28;8040:18;;;8033:56;8106:18;;9553:140:0;7780:350:1;9553:140:0;9729:16;;;;;;;;:21;9725:239;;-1:-1:-1;;;;;9806:14:0;;;;;;:8;:14;;;;;:24;;9824:6;;9806:14;:24;;9824:6;;9806:24;:::i;9725:239::-;9992:13;;-1:-1:-1;;;;;9992:13:0;;;9984:21;;;;9980:2361;;10042:5;;10033:6;;:14;;;;:::i;:::-;10026:21;;9980:2361;;;10079:13;;-1:-1:-1;;;;;10079:13:0;;;10073:19;;;;10069:2272;;10153:4;10113:20;10136:23;;;:8;:23;;;;;;10191:7;;10182:16;;:41;;;;-1:-1:-1;10202:16:0;;;;;;;:21;10182:41;10178:2056;;;10267:7;;10252:12;:22;10248:1967;;;10322:7;;10307:12;:22;10303:109;;;-1:-1:-1;10377:7:0;;10303:109;10440:21;10546:5;;10541:1;10530:7;;10521:6;;:16;;;;:::i;:::-;10520:22;;;;:::i;:::-;10519:32;;;;:::i;:::-;10480:5;;10465:20;;:12;:20;:::i;:::-;10464:88;;;;:::i;:::-;10440:112;-1:-1:-1;10579:20:0;10602:28;10440:112;10602:12;:28;:::i;:::-;10659:16;:20;;-1:-1:-1;;10659:20:0;;;;;10730:16;;;10744:1;10730:16;;;;;;;;10579:51;;-1:-1:-1;;;10730:16:0;;;;;;;;;;;;-1:-1:-1;10730:16:0;10706:40;;10791:4;10773;10778:1;10773:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;10773:23:0;;;-1:-1:-1;;;;;10773:23:0;;;;;10833:4;10823;10828:1;10823:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10823:14:0;;;:7;;;;;;;;;:14;10866:345;;-1:-1:-1;;;10866:345:0;;:15;:96;;;;;;:345;;10997:12;;11044:1;;11080:4;;11119:11;;11165:15;;10866:345;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11260:1;11244:13;:17;11240:905;;;-1:-1:-1;;;;;11294:15:0;:100;;11433:17;11449:1;11433:13;:17;:::i;:::-;11489:1;11529:4;11580;11624:15;11294:380;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11724:21:0;;-1:-1:-1;;;;;;;11776:15:0;:31;;-1:-1:-1;11776:31:0;11724:21;11865:4;11905:17;11921:1;11905:13;:17;:::i;:::-;11957:1;11993;12029:7;1548;1575:6;-1:-1:-1;;;;;1575:6:0;;1510:79;12029:7;12071:15;11776:341;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11263:882;11240:905;-1:-1:-1;;12171:16:0;:20;;-1:-1:-1;;12171:20:0;;;-1:-1:-1;10248:1967:0;12271:5;;12261:7;;:15;;;;:::i;:::-;12254:22;;10094:2198;10069:2272;;;-1:-1:-1;12324:1:0;10069:2272;-1:-1:-1;;;;;12889:24:0;;12364:13;12889:24;;;:18;:24;;;;;;;;12888:25;12416:329;;;;12473:22;12498:31;12506:4;12512:2;12516:6;12524:4;12498:7;:31::i;:::-;-1:-1:-1;;;;;12546:12:0;;;;;;:8;:12;;;;;:30;;12473:56;;-1:-1:-1;12473:56:0;;12546:12;;;:30;;12473:56;;12546:30;:::i;:::-;;;;;;;;12611:2;-1:-1:-1;;;;;12596:34:0;12605:4;-1:-1:-1;;;;;12596:34:0;-1:-1:-1;;;;;;;;;;;12615:14:0;12596:34;;;;1361:25:1;;1349:2;1334:18;;1215:177;12596:34:0;;;;;;;;12430:212;12416:329;;;-1:-1:-1;;;;;12663:12:0;;;;;;:8;:12;;;;;:22;;12679:6;;12663:12;:22;;12679:6;;12663:22;:::i;:::-;;;;;;;;12722:2;-1:-1:-1;;;;;12707:26:0;12716:4;-1:-1:-1;;;;;12707:26:0;-1:-1:-1;;;;;;;;;;;12726:6:0;12707:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;12707:26:0;;;;;;;;12416:329;8953:3799;;8850:3902;;;:::o;1841:266::-;-1:-1:-1;;;;;1929:22:0;;1907:110;;;;-1:-1:-1;;;1907:110:0;;10644:2:1;1907:110:0;;;10626:21:1;10683:2;10663:18;;;10656:30;10722:34;10702:18;;;10695:62;-1:-1:-1;;;10773:18:1;;;10766:36;10819:19;;1907:110:0;10442:402:1;1907:110:0;2054:6;;;2033:38;;-1:-1:-1;;;;;2033:38:0;;;;2054:6;;;2033:38;;;2082:6;:17;;-1:-1:-1;;;;;;2082:17:0;-1:-1:-1;;;;;2082:17:0;;;;;;;;;;1841:266::o;12929:437::-;13066:7;;13127:3;13107:16;13116:7;13107:6;:16;:::i;:::-;13106:24;;;;:::i;:::-;13086:44;-1:-1:-1;13141:22:0;13166:18;13086:44;13166:6;:18;:::i;:::-;-1:-1:-1;;;;;13197:14:0;;;;;;:8;:14;;;;;:24;;13141:43;;-1:-1:-1;13215:6:0;;13197:14;;;:24;;13215:6;;13197:24;:::i;:::-;;;;-1:-1:-1;;13249:4:0;13232:23;;;;:8;:23;;;;;:36;;13259:9;;13232:23;:36;;13259:9;;13232:36;:::i;:::-;;;;-1:-1:-1;;13284:40:0;;1361:25:1;;;13307:4:0;;-1:-1:-1;;;;;13284:40:0;;;-1:-1:-1;;;;;;;;;;;13284:40:0;1349:2:1;1334:18;13284:40:0;;;;;;;13344:14;12929:437;-1:-1:-1;;;;;;12929:437:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;:::-;2491:5;2255:247;-1:-1:-1;;;2255:247:1:o;2507:316::-;2584:6;2592;2600;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;-1:-1:-1;;2692:23:1;;;2762:2;2747:18;;2734:32;;-1:-1:-1;2813:2:1;2798:18;;;2785:32;;2507:316;-1:-1:-1;2507:316:1:o;2828:388::-;2896:6;2904;2957:2;2945:9;2936:7;2932:23;2928:32;2925:52;;;2973:1;2970;2963:12;2925:52;3012:9;2999:23;3031:31;3056:5;3031:31;:::i;:::-;3081:5;-1:-1:-1;3138:2:1;3123:18;;3110:32;3151:33;3110:32;3151:33;:::i;:::-;3203:7;3193:17;;;2828:388;;;;;:::o;3221:127::-;3282:10;3277:3;3273:20;3270:1;3263:31;3313:4;3310:1;3303:15;3337:4;3334:1;3327:15;3353:128;3420:9;;;3441:11;;;3438:37;;;3455:18;;:::i;3486:356::-;3688:2;3670:21;;;3707:18;;;3700:30;3766:34;3761:2;3746:18;;3739:62;3833:2;3818:18;;3486:356::o;3847:125::-;3912:9;;;3933:10;;;3930:36;;;3946:18;;:::i;4675:251::-;4745:6;4798:2;4786:9;4777:7;4773:23;4769:32;4766:52;;;4814:1;4811;4804:12;4766:52;4846:9;4840:16;4865:31;4890:5;4865:31;:::i;5240:607::-;-1:-1:-1;;;;;5599:15:1;;;5581:34;;5646:2;5631:18;;5624:34;;;;5689:2;5674:18;;5667:34;;;;5732:2;5717:18;;5710:34;;;;5781:15;;;5775:3;5760:19;;5753:44;5561:3;5813:19;;5806:35;;;;5530:3;5515:19;;5240:607::o;5852:306::-;5940:6;5948;5956;6009:2;5997:9;5988:7;5984:23;5980:32;5977:52;;;6025:1;6022;6015:12;5977:52;6054:9;6048:16;6038:26;;6104:2;6093:9;6089:18;6083:25;6073:35;;6148:2;6137:9;6133:18;6127:25;6117:35;;5852:306;;;;;:::o;8135:217::-;8175:1;8201;8191:132;;8245:10;8240:3;8236:20;8233:1;8226:31;8280:4;8277:1;8270:15;8308:4;8305:1;8298:15;8191:132;-1:-1:-1;8337:9:1;;8135:217::o;8357:168::-;8430:9;;;8461;;8478:15;;;8472:22;;8458:37;8448:71;;8499:18;;:::i;8662:127::-;8723:10;8718:3;8714:20;8711:1;8704:31;8754:4;8751:1;8744:15;8778:4;8775:1;8768:15;8794:461;8847:3;8885:5;8879:12;8912:6;8907:3;8900:19;8938:4;8967:2;8962:3;8958:12;8951:19;;9004:2;8997:5;8993:14;9025:1;9035:195;9049:6;9046:1;9043:13;9035:195;;;9114:13;;-1:-1:-1;;;;;9110:39:1;9098:52;;9170:12;;;;9205:15;;;;9146:1;9064:9;9035:195;;;-1:-1:-1;9246:3:1;;8794:461;-1:-1:-1;;;;;8794:461:1:o;9260:590::-;9567:6;9556:9;9549:25;9610:6;9605:2;9594:9;9590:18;9583:34;9653:3;9648:2;9637:9;9633:18;9626:31;9530:4;9674:57;9726:3;9715:9;9711:19;9703:6;9674:57;:::i;:::-;-1:-1:-1;;;;;9767:32:1;;;;9762:2;9747:18;;9740:60;-1:-1:-1;9831:3:1;9816:19;9809:35;9666:65;9260:590;-1:-1:-1;;;9260:590:1:o

Swarm Source

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