ETH Price: $3,211.73 (+0.90%)
Gas: 3 Gwei

Token

42069 (42069)
 

Overview

Max Total Supply

20,242,069 42069

Holders

573

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
linlin818.eth
Balance
96 42069

Value
$0.00
0xe9bd34bf7fa65988ceae405f239d01135c1f6b01
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:
Token

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

interface IERC20 {
    function decimals() external view returns (uint256);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint);

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address _spender, uint _value) external;

    function transferFrom(address _from, address _to, uint _value) external ;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

interface ISwapRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);

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

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

    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);
}

abstract contract Ownable {
    address internal _owner;

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

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

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

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

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

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

interface ISwapPair {
    function getReserves()
        external
        view
        returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

    function token0() external view returns (address);

    function balanceOf(address account) external view returns (uint256);

    function totalSupply() external view returns (uint256);
}

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

    address public fundAddress;

    string private _name;
    string private _symbol;
    uint256 private _decimals;


    mapping(address => bool) public _feeWhiteList;

    uint256 private _tTotal;

    ISwapRouter public _swapRouter;
    address public currency;
    mapping(address => bool) public _swapPairList;


    bool private inSwap;

    uint256 private constant MAX = ~uint256(0);


    uint256 public _buyFundFee;
    uint256 public _sellFundFee;

    address public _mainPair;

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    address[] public rewardPath;

    constructor(

    ) {
        _name = "42069";
        _symbol = "42069";
        _decimals = 18;
        _tTotal = 20242069 * 10**_decimals;

        fundAddress = address(0x151404EaD02a20F51E9f4EcE45C2cE5FEbEac40C);
        _swapRouter = ISwapRouter(address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D));
        currency = _swapRouter.WETH();
        _owner = fundAddress;

        rewardPath = [address(this), currency];

        IERC20(currency).approve(address(_swapRouter), MAX);

        _allowances[address(this)][address(_swapRouter)] = MAX;

        ISwapFactory swapFactory = ISwapFactory(_swapRouter.factory());
        _mainPair = swapFactory.createPair(address(this), currency);

        _swapPairList[_mainPair] = true;

        _buyFundFee = 1500;
        _sellFundFee = 1500;

        _balances[fundAddress] = _tTotal;
        emit Transfer(address(0), fundAddress, _tTotal);

        _feeWhiteList[fundAddress] = true;
        _feeWhiteList[address(this)] = true;
        _feeWhiteList[address(_swapRouter)] = true;

    }

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

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

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

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


    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(
        address owner,
        address spender
    ) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(
        address spender,
        uint256 amount
    ) public override  {
        _approve(msg.sender, spender, amount);
    }

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

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


    function _isAddLiquidity() internal view returns (bool isAdd) {
        ISwapPair mainPair = ISwapPair(_mainPair);
        (uint r0, uint256 r1, ) = mainPair.getReserves();

        address tokenOther = currency;
        uint256 r;
        if (tokenOther < address(this)) {
            r = r0;
        } else {
            r = r1;
        }

        uint bal = IERC20(tokenOther).balanceOf(address(mainPair));
        isAdd = bal > r;
    }

    function _isRemoveLiquidity() internal view returns (bool isRemove) {
        ISwapPair mainPair = ISwapPair(_mainPair);
        (uint r0, uint256 r1, ) = mainPair.getReserves();

        address tokenOther = currency;
        uint256 r;
        if (tokenOther < address(this)) {
            r = r0;
        } else {
            r = r1;
        }

        uint bal = IERC20(tokenOther).balanceOf(address(mainPair));
        isRemove = r >= bal;
    }

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



        bool takeFee;
        bool isSell;
        bool isRemove;
        bool isAdd;

        if (_swapPairList[to]) {
            isAdd = _isAddLiquidity();

        } else if (_swapPairList[from]) {
            isRemove = _isRemoveLiquidity();

        }

        if (_swapPairList[from] || _swapPairList[to]) {
            
            if (!_feeWhiteList[from] && !_feeWhiteList[to]) {
                
                if (_swapPairList[to]) {
                    if (!inSwap && !isAdd) {
                        uint256 contractTokenBalance = balanceOf(address(this));
                        if (contractTokenBalance > 0) {
                            uint256 swapFee = _buyFundFee + _sellFundFee;
                            uint256 numTokensSellToFund = (amount * swapFee) /
                                5000;
                            if (numTokensSellToFund > contractTokenBalance) {
                                numTokensSellToFund = contractTokenBalance;
                            }
                            swapTokenForFund(numTokensSellToFund);
                        }
                    }
                }
                if (!isAdd && !isRemove) takeFee = true; // just swap fee
            }
            if (_swapPairList[to]) {
                isSell = true;
            }
        }

        _tokenTransfer(
            from,
            to,
            amount,
            takeFee,
            isSell
        );

    }       

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

        if (takeFee) {
            uint256 swapFee;
            if (isSell) {
                swapFee = _sellFundFee;

            } else {
                swapFee = _buyFundFee;

            }

            uint256 swapAmount = (tAmount * swapFee) / 10000;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _takeTransfer(sender, address(this), swapAmount);
            }
        }

        _takeTransfer(sender, recipient, tAmount - feeAmount);
    }


    function swapTokenForFund(uint256 tokenAmount) private lockTheSwap {
        if (tokenAmount == 0) {
            return;
        }
        _swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            rewardPath,
            fundAddress,
            block.timestamp
        );
    }
    
    function _takeTransfer(
        address sender,
        address to,
        uint256 tAmount
    ) private {
        _balances[to] = _balances[to] + tAmount;
        emit Transfer(sender, to, tAmount);
    }
    receive() external payable {}

    function setFee(uint256 buyfee,uint256 sellfee) external onlyOwner {
        _buyFundFee = buyfee;
        _sellFundFee = sellfee;
    }

}

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":[],"name":"_buyFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_feeWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_swapPairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[],"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":"currency","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewardPath","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyfee","type":"uint256"},{"internalType":"uint256","name":"sellfee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350604080518082019091526005815264343230363960d81b60208201526004906200007e908262000552565b5060408051808201909152600580825264343230363960d81b602083015290620000a9908262000552565b5060126006819055620000be90600a62000733565b620000ce90630134de9562000748565b6008556003805473151404ead02a20f51e9f4ece45c2ce5febeac40c6001600160a01b03199182161790915560098054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017b919062000762565b600a80546001600160a01b03199081166001600160a01b039384169081179092556003546000805491909416911617909155604080518082019091523081526020810191909152620001d29060109060026200042c565b50600a5460095460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401600060405180830381600087803b1580156200022557600080fd5b505af11580156200023a573d6000803e3d6000fd5b5050306000908152600260209081526040808320600980546001600160a01b039081168652918452828520600019905554825163c45a015560e01b8152925194965016935063c45a015592600480830193928290030181865afa158015620002a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cc919062000762565b600a546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291925082169063c9c65396906044016020604051808303816000875af115801562000321573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000347919062000762565b600f80546001600160a01b0319166001600160a01b039283169081179091556000908152600b60209081526040808320805460ff191660019081179091556105dc600d819055600e556008546003805487168652918452828520819055905491519081529316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506003546001600160a01b039081166000908152600760205260408082208054600160ff19918216811790925530845282842080548216831790556009549094168352912080549092161790556200078d565b82805482825590600052602060002090810192821562000484579160200282015b828111156200048457825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200044d565b506200049292915062000496565b5090565b5b8082111562000492576000815560010162000497565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004d857607f821691505b602082108103620004f957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200054d57600081815260208120601f850160051c81016020861015620005285750805b601f850160051c820191505b81811015620005495782815560010162000534565b5050505b505050565b81516001600160401b038111156200056e576200056e620004ad565b62000586816200057f8454620004c3565b84620004ff565b602080601f831160018114620005be5760008415620005a55750858301515b600019600386901b1c1916600185901b17855562000549565b600085815260208120601f198616915b82811015620005ef57888601518255948401946001909101908401620005ce565b50858210156200060e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006755781600019048211156200065957620006596200061e565b808516156200066757918102915b93841c939080029062000639565b509250929050565b6000826200068e575060016200072d565b816200069d575060006200072d565b8160018114620006b65760028114620006c157620006e1565b60019150506200072d565b60ff841115620006d557620006d56200061e565b50506001821b6200072d565b5060208310610133831016604e8410600b841016171562000706575081810a6200072d565b62000712838362000634565b80600019048211156200072957620007296200061e565b0290505b92915050565b60006200074183836200067d565b9392505050565b80820281158282048414176200072d576200072d6200061e565b6000602082840312156200077557600080fd5b81516001600160a01b03811681146200074157600080fd5b611140806200079d6000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab578063a9059cbb1161006f578063a9059cbb1461037e578063ce0192f91461039e578063dd62ed3e146103b4578063e5a6b10f146103fa578063e82bef291461041a578063f2fde38b1461043a57600080fd5b806370a08231146102e0578063715018a6146103165780638da5cb5b1461032b57806395d89b41146103495780639cc0e3c71461035e57600080fd5b806323b872dd116100fd57806323b872dd14610225578063313ce567146102455780633bfe62ca1461025a5780633c11100d146102705780634188bf5a146102a057806352f7c988146102c057600080fd5b806301986fad1461014557806306fdde031461018a578063095ea7b3146101ac57806318160ddd146101ce578063206c17bb146101ed57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b50610175610160366004610e01565b60076020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561019657600080fd5b5061019f61045a565b6040516101819190610e23565b3480156101b857600080fd5b506101cc6101c7366004610e71565b6104ec565b005b3480156101da57600080fd5b506008545b604051908152602001610181565b3480156101f957600080fd5b5060095461020d906001600160a01b031681565b6040516001600160a01b039091168152602001610181565b34801561023157600080fd5b506101cc610240366004610e9b565b6104fb565b34801561025157600080fd5b506006546101df565b34801561026657600080fd5b506101df600e5481565b34801561027c57600080fd5b5061017561028b366004610e01565b600b6020526000908152604090205460ff1681565b3480156102ac57600080fd5b50600f5461020d906001600160a01b031681565b3480156102cc57600080fd5b506101cc6102db366004610ed7565b61058b565b3480156102ec57600080fd5b506101df6102fb366004610e01565b6001600160a01b031660009081526001602052604090205490565b34801561032257600080fd5b506101cc6105c9565b34801561033757600080fd5b506000546001600160a01b031661020d565b34801561035557600080fd5b5061019f61063d565b34801561036a57600080fd5b5061020d610379366004610ef9565b61064c565b34801561038a57600080fd5b50610175610399366004610e71565b610676565b3480156103aa57600080fd5b506101df600d5481565b3480156103c057600080fd5b506101df6103cf366004610f12565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561040657600080fd5b50600a5461020d906001600160a01b031681565b34801561042657600080fd5b5060035461020d906001600160a01b031681565b34801561044657600080fd5b506101cc610455366004610e01565b61068d565b60606004805461046990610f45565b80601f016020809104026020016040519081016040528092919081815260200182805461049590610f45565b80156104e25780601f106104b7576101008083540402835291602001916104e2565b820191906000526020600020905b8154815290600101906020018083116104c557829003601f168201915b5050505050905090565b6104f7338383610753565b5050565b6105068383836107b5565b6001600160a01b038316600090815260026020908152604080832033845290915290205460001914610586576001600160a01b0383166000908152600260209081526040808320338452909152902054610561908290610f95565b6001600160a01b03841660009081526002602090815260408083203384529091529020555b505050565b6000546001600160a01b031633146105be5760405162461bcd60e51b81526004016105b590610fa8565b60405180910390fd5b600d91909155600e55565b6000546001600160a01b031633146105f35760405162461bcd60e51b81526004016105b590610fa8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606005805461046990610f45565b6010818154811061065c57600080fd5b6000918252602090912001546001600160a01b0316905081565b60006106833384846107b5565b5060015b92915050565b6000546001600160a01b031633146106b75760405162461bcd60e51b81526004016105b590610fa8565b6001600160a01b0381166106f85760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b60448201526064016105b5565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b806107d5846001600160a01b031660009081526001602052604090205490565b101561080f5760405162461bcd60e51b815260206004820152600960248201526809cdee88adcdeeaced60bb1b60448201526064016105b5565b6001600160a01b0382166000908152600b602052604081205481908190819060ff16156108455761083e6109e3565b9050610871565b6001600160a01b0387166000908152600b602052604090205460ff16156108715761086e610b06565b91505b6001600160a01b0387166000908152600b602052604090205460ff16806108b057506001600160a01b0386166000908152600b602052604090205460ff165b156109cd576001600160a01b03871660009081526007602052604090205460ff161580156108f757506001600160a01b03861660009081526007602052604090205460ff16155b156109a7576001600160a01b0386166000908152600b602052604090205460ff161561099157600c5460ff1615801561092e575080155b156109915730600090815260016020526040902054801561098f576000600e54600d5461095b9190610fc8565b9050600061138861096c838a610fdb565b6109769190610ff2565b9050828111156109835750815b61098c81610c29565b50505b505b8015801561099d575081155b156109a757600193505b6001600160a01b0386166000908152600b602052604090205460ff16156109cd57600192505b6109da8787878787610cba565b50505050505050565b600f5460408051630240bc6b60e21b815290516000926001600160a01b031691839182918491630902f1ac916004808201926060929091908290030181865afa158015610a34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a58919061102b565b50600a546001600160701b039283169450911691506001600160a01b0316600030821015610a87575082610a8a565b50815b6040516370a0823160e01b81526001600160a01b038681166004830152600091908416906370a0823190602401602060405180830381865afa158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af8919061107b565b919091119695505050505050565b600f5460408051630240bc6b60e21b815290516000926001600160a01b031691839182918491630902f1ac916004808201926060929091908290030181865afa158015610b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7b919061102b565b50600a546001600160701b039283169450911691506001600160a01b0316600030821015610baa575082610bad565b50815b6040516370a0823160e01b81526001600160a01b038681166004830152600091908416906370a0823190602401602060405180830381865afa158015610bf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1b919061107b565b909110159695505050505050565b600c805460ff191660011790558015610cad5760095460035460405163791ac94760e01b81526001600160a01b039283169263791ac94792610c7a9286926000926010929116904290600401611094565b600060405180830381600087803b158015610c9457600080fd5b505af1158015610ca8573d6000803e3d6000fd5b505050505b50600c805460ff19169055565b6001600160a01b038516600090815260016020526040902054610cde908490610f95565b6001600160a01b0386166000908152600160205260408120919091558215610d515760008215610d115750600e54610d16565b50600d545b6000612710610d258388610fdb565b610d2f9190610ff2565b90508015610d4e57610d418184610fc8565b9250610d4e883083610d6d565b50505b610d658686610d608488610f95565b610d6d565b505050505050565b6001600160a01b038216600090815260016020526040902054610d91908290610fc8565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107a89085815260200190565b80356001600160a01b0381168114610dfc57600080fd5b919050565b600060208284031215610e1357600080fd5b610e1c82610de5565b9392505050565b600060208083528351808285015260005b81811015610e5057858101830151858201604001528201610e34565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215610e8457600080fd5b610e8d83610de5565b946020939093013593505050565b600080600060608486031215610eb057600080fd5b610eb984610de5565b9250610ec760208501610de5565b9150604084013590509250925092565b60008060408385031215610eea57600080fd5b50508035926020909101359150565b600060208284031215610f0b57600080fd5b5035919050565b60008060408385031215610f2557600080fd5b610f2e83610de5565b9150610f3c60208401610de5565b90509250929050565b600181811c90821680610f5957607f821691505b602082108103610f7957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561068757610687610f7f565b60208082526006908201526510b7bbb732b960d11b604082015260600190565b8082018082111561068757610687610f7f565b808202811582820484141761068757610687610f7f565b60008261100f57634e487b7160e01b600052601260045260246000fd5b500490565b80516001600160701b0381168114610dfc57600080fd5b60008060006060848603121561104057600080fd5b61104984611014565b925061105760208501611014565b9150604084015163ffffffff8116811461107057600080fd5b809150509250925092565b60006020828403121561108d57600080fd5b5051919050565b600060a082018783526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b818110156110e95784546001600160a01b0316835260019485019492840192016110c4565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220fc94e48187179cf2ff98e4aa7dac1900fab2c0a0a7d5ee9f5b79356be1ca78b464736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370a08231116100ab578063a9059cbb1161006f578063a9059cbb1461037e578063ce0192f91461039e578063dd62ed3e146103b4578063e5a6b10f146103fa578063e82bef291461041a578063f2fde38b1461043a57600080fd5b806370a08231146102e0578063715018a6146103165780638da5cb5b1461032b57806395d89b41146103495780639cc0e3c71461035e57600080fd5b806323b872dd116100fd57806323b872dd14610225578063313ce567146102455780633bfe62ca1461025a5780633c11100d146102705780634188bf5a146102a057806352f7c988146102c057600080fd5b806301986fad1461014557806306fdde031461018a578063095ea7b3146101ac57806318160ddd146101ce578063206c17bb146101ed57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b50610175610160366004610e01565b60076020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561019657600080fd5b5061019f61045a565b6040516101819190610e23565b3480156101b857600080fd5b506101cc6101c7366004610e71565b6104ec565b005b3480156101da57600080fd5b506008545b604051908152602001610181565b3480156101f957600080fd5b5060095461020d906001600160a01b031681565b6040516001600160a01b039091168152602001610181565b34801561023157600080fd5b506101cc610240366004610e9b565b6104fb565b34801561025157600080fd5b506006546101df565b34801561026657600080fd5b506101df600e5481565b34801561027c57600080fd5b5061017561028b366004610e01565b600b6020526000908152604090205460ff1681565b3480156102ac57600080fd5b50600f5461020d906001600160a01b031681565b3480156102cc57600080fd5b506101cc6102db366004610ed7565b61058b565b3480156102ec57600080fd5b506101df6102fb366004610e01565b6001600160a01b031660009081526001602052604090205490565b34801561032257600080fd5b506101cc6105c9565b34801561033757600080fd5b506000546001600160a01b031661020d565b34801561035557600080fd5b5061019f61063d565b34801561036a57600080fd5b5061020d610379366004610ef9565b61064c565b34801561038a57600080fd5b50610175610399366004610e71565b610676565b3480156103aa57600080fd5b506101df600d5481565b3480156103c057600080fd5b506101df6103cf366004610f12565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561040657600080fd5b50600a5461020d906001600160a01b031681565b34801561042657600080fd5b5060035461020d906001600160a01b031681565b34801561044657600080fd5b506101cc610455366004610e01565b61068d565b60606004805461046990610f45565b80601f016020809104026020016040519081016040528092919081815260200182805461049590610f45565b80156104e25780601f106104b7576101008083540402835291602001916104e2565b820191906000526020600020905b8154815290600101906020018083116104c557829003601f168201915b5050505050905090565b6104f7338383610753565b5050565b6105068383836107b5565b6001600160a01b038316600090815260026020908152604080832033845290915290205460001914610586576001600160a01b0383166000908152600260209081526040808320338452909152902054610561908290610f95565b6001600160a01b03841660009081526002602090815260408083203384529091529020555b505050565b6000546001600160a01b031633146105be5760405162461bcd60e51b81526004016105b590610fa8565b60405180910390fd5b600d91909155600e55565b6000546001600160a01b031633146105f35760405162461bcd60e51b81526004016105b590610fa8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606005805461046990610f45565b6010818154811061065c57600080fd5b6000918252602090912001546001600160a01b0316905081565b60006106833384846107b5565b5060015b92915050565b6000546001600160a01b031633146106b75760405162461bcd60e51b81526004016105b590610fa8565b6001600160a01b0381166106f85760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b60448201526064016105b5565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b806107d5846001600160a01b031660009081526001602052604090205490565b101561080f5760405162461bcd60e51b815260206004820152600960248201526809cdee88adcdeeaced60bb1b60448201526064016105b5565b6001600160a01b0382166000908152600b602052604081205481908190819060ff16156108455761083e6109e3565b9050610871565b6001600160a01b0387166000908152600b602052604090205460ff16156108715761086e610b06565b91505b6001600160a01b0387166000908152600b602052604090205460ff16806108b057506001600160a01b0386166000908152600b602052604090205460ff165b156109cd576001600160a01b03871660009081526007602052604090205460ff161580156108f757506001600160a01b03861660009081526007602052604090205460ff16155b156109a7576001600160a01b0386166000908152600b602052604090205460ff161561099157600c5460ff1615801561092e575080155b156109915730600090815260016020526040902054801561098f576000600e54600d5461095b9190610fc8565b9050600061138861096c838a610fdb565b6109769190610ff2565b9050828111156109835750815b61098c81610c29565b50505b505b8015801561099d575081155b156109a757600193505b6001600160a01b0386166000908152600b602052604090205460ff16156109cd57600192505b6109da8787878787610cba565b50505050505050565b600f5460408051630240bc6b60e21b815290516000926001600160a01b031691839182918491630902f1ac916004808201926060929091908290030181865afa158015610a34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a58919061102b565b50600a546001600160701b039283169450911691506001600160a01b0316600030821015610a87575082610a8a565b50815b6040516370a0823160e01b81526001600160a01b038681166004830152600091908416906370a0823190602401602060405180830381865afa158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af8919061107b565b919091119695505050505050565b600f5460408051630240bc6b60e21b815290516000926001600160a01b031691839182918491630902f1ac916004808201926060929091908290030181865afa158015610b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7b919061102b565b50600a546001600160701b039283169450911691506001600160a01b0316600030821015610baa575082610bad565b50815b6040516370a0823160e01b81526001600160a01b038681166004830152600091908416906370a0823190602401602060405180830381865afa158015610bf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1b919061107b565b909110159695505050505050565b600c805460ff191660011790558015610cad5760095460035460405163791ac94760e01b81526001600160a01b039283169263791ac94792610c7a9286926000926010929116904290600401611094565b600060405180830381600087803b158015610c9457600080fd5b505af1158015610ca8573d6000803e3d6000fd5b505050505b50600c805460ff19169055565b6001600160a01b038516600090815260016020526040902054610cde908490610f95565b6001600160a01b0386166000908152600160205260408120919091558215610d515760008215610d115750600e54610d16565b50600d545b6000612710610d258388610fdb565b610d2f9190610ff2565b90508015610d4e57610d418184610fc8565b9250610d4e883083610d6d565b50505b610d658686610d608488610f95565b610d6d565b505050505050565b6001600160a01b038216600090815260016020526040902054610d91908290610fc8565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107a89085815260200190565b80356001600160a01b0381168114610dfc57600080fd5b919050565b600060208284031215610e1357600080fd5b610e1c82610de5565b9392505050565b600060208083528351808285015260005b81811015610e5057858101830151858201604001528201610e34565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215610e8457600080fd5b610e8d83610de5565b946020939093013593505050565b600080600060608486031215610eb057600080fd5b610eb984610de5565b9250610ec760208501610de5565b9150604084013590509250925092565b60008060408385031215610eea57600080fd5b50508035926020909101359150565b600060208284031215610f0b57600080fd5b5035919050565b60008060408385031215610f2557600080fd5b610f2e83610de5565b9150610f3c60208401610de5565b90509250929050565b600181811c90821680610f5957607f821691505b602082108103610f7957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561068757610687610f7f565b60208082526006908201526510b7bbb732b960d11b604082015260600190565b8082018082111561068757610687610f7f565b808202811582820484141761068757610687610f7f565b60008261100f57634e487b7160e01b600052601260045260246000fd5b500490565b80516001600160701b0381168114610dfc57600080fd5b60008060006060848603121561104057600080fd5b61104984611014565b925061105760208501611014565b9150604084015163ffffffff8116811461107057600080fd5b809150509250925092565b60006020828403121561108d57600080fd5b5051919050565b600060a082018783526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b818110156110e95784546001600160a01b0316835260019485019492840192016110c4565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220fc94e48187179cf2ff98e4aa7dac1900fab2c0a0a7d5ee9f5b79356be1ca78b464736f6c63430008120033

Deployed Bytecode Sourcemap

3757:7660:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4053:45;;;;;;;;;;-1:-1:-1;4053:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;548:14:1;;541:22;523:41;;511:2;496:18;4053:45:0;;;;;;;;5769:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6581:148::-;;;;;;;;;;-1:-1:-1;6581:148:0;;;;;:::i;:::-;;:::i;:::-;;5975:95;;;;;;;;;;-1:-1:-1;6055:7:0;;5975:95;;;1533:25:1;;;1521:2;1506:18;5975:95:0;1387:177:1;4139:30:0;;;;;;;;;;-1:-1:-1;4139:30:0;;;;-1:-1:-1;;;;;4139:30:0;;;;;;-1:-1:-1;;;;;1752:32:1;;;1734:51;;1722:2;1707:18;4139:30:0;1569:222:1;6737:368:0;;;;;;;;;;-1:-1:-1;6737:368:0;;;;;:::i;:::-;;:::i;5871:96::-;;;;;;;;;;-1:-1:-1;5950:9:0;;5871:96;;4376:27;;;;;;;;;;;;;;;;4206:45;;;;;;;;;;-1:-1:-1;4206:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4412:24;;;;;;;;;;-1:-1:-1;4412:24:0;;;;-1:-1:-1;;;;;4412:24:0;;;11273:139;;;;;;;;;;-1:-1:-1;11273:139:0;;;;;:::i;:::-;;:::i;6080:119::-;;;;;;;;;;-1:-1:-1;6080:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6173:18:0;6146:7;6173:18;;;:9;:18;;;;;;;6080:119;3013:148;;;;;;;;;;;;;:::i;2827:79::-;;;;;;;;;;-1:-1:-1;2865:7:0;2892:6;-1:-1:-1;;;;;2892:6:0;2827:79;;5663:98;;;;;;;;;;;;;:::i;4545:27::-;;;;;;;;;;-1:-1:-1;4545:27:0;;;;;:::i;:::-;;:::i;6207:190::-;;;;;;;;;;-1:-1:-1;6207:190:0;;;;;:::i;:::-;;:::i;4343:26::-;;;;;;;;;;;;;;;;6405:168;;;;;;;;;;-1:-1:-1;6405:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6538:18:0;;;6511:7;6538:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6405:168;4176:23;;;;;;;;;;-1:-1:-1;4176:23:0;;;;-1:-1:-1;;;;;4176:23:0;;;3926:26;;;;;;;;;;-1:-1:-1;3926:26:0;;;;-1:-1:-1;;;;;3926:26:0;;;3169:214;;;;;;;;;;-1:-1:-1;3169:214:0;;;;;:::i;:::-;;:::i;5769:94::-;5817:13;5850:5;5843:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5769:94;:::o;6581:148::-;6684:37;6693:10;6705:7;6714:6;6684:8;:37::i;:::-;6581:148;;:::o;6737:368::-;6872:36;6882:6;6890:9;6901:6;6872:9;:36::i;:::-;-1:-1:-1;;;;;6923:19:0;;4330:1;6923:19;;;:11;:19;;;;;;;;6943:10;6923:31;;;;;;;;-1:-1:-1;;6923:38:0;6919:179;;-1:-1:-1;;;;;7029:19:0;;;;;;:11;:19;;;;;;;;7049:10;7029:31;;;;;;;;:57;;7080:6;;7029:57;:::i;:::-;-1:-1:-1;;;;;6978:19:0;;;;;;:11;:19;;;;;;;;6998:10;6978:31;;;;;;;:108;6919:179;6737:368;;;:::o;11273:139::-;2954:6;;-1:-1:-1;;;;;2954:6:0;2964:10;2954:20;2946:39;;;;-1:-1:-1;;;2946:39:0;;;;;;;:::i;:::-;;;;;;;;;11351:11:::1;:20:::0;;;;11382:12:::1;:22:::0;11273:139::o;3013:148::-;2954:6;;-1:-1:-1;;;;;2954:6:0;2964:10;2954:20;2946:39;;;;-1:-1:-1;;;2946:39:0;;;;;;;:::i;:::-;3120:1:::1;3104:6:::0;;3083:40:::1;::::0;-1:-1:-1;;;;;3104:6:0;;::::1;::::0;3083:40:::1;::::0;3120:1;;3083:40:::1;3151:1;3134:19:::0;;-1:-1:-1;;;;;;3134:19:0::1;::::0;;3013:148::o;5663:98::-;5713:13;5746:7;5739:14;;;;;:::i;4545:27::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4545:27:0;;-1:-1:-1;4545:27:0;:::o;6207:190::-;6310:4;6327:40;6337:10;6349:9;6360:6;6327:9;:40::i;:::-;-1:-1:-1;6385:4:0;6207:190;;;;;:::o;3169:214::-;2954:6;;-1:-1:-1;;;;;2954:6:0;2964:10;2954:20;2946:39;;;;-1:-1:-1;;;2946:39:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3258:22:0;::::1;3250:43;;;::::0;-1:-1:-1;;;3250:43:0;;4226:2:1;3250:43:0::1;::::0;::::1;4208:21:1::0;4265:1;4245:18;;;4238:29;-1:-1:-1;;;4283:18:1;;;4276:38;4331:18;;3250:43:0::1;4024:331:1::0;3250:43:0::1;3330:6;::::0;;3309:38:::1;::::0;-1:-1:-1;;;;;3309:38:0;;::::1;::::0;3330:6;::::1;::::0;3309:38:::1;::::0;::::1;3358:6;:17:::0;;-1:-1:-1;;;;;;3358:17:0::1;-1:-1:-1::0;;;;;3358:17:0;;;::::1;::::0;;;::::1;::::0;;3169:214::o;7113:177::-;-1:-1:-1;;;;;7198:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7250:32;;1533:25:1;;;7250:32:0;;1506:18:1;7250:32:0;;;;;;;;7113:177;;;:::o;8234:1636::-;8341:6;8322:15;8332:4;-1:-1:-1;;;;;6173:18:0;6146:7;6173:18;;;:9;:18;;;;;;;6080:119;8322:15;:25;;8314:47;;;;-1:-1:-1;;;8314:47:0;;4562:2:1;8314:47:0;;;4544:21:1;4601:1;4581:18;;;4574:29;-1:-1:-1;;;4619:18:1;;;4612:39;4668:18;;8314:47:0;4360:332:1;8314:47:0;-1:-1:-1;;;;;8474:17:0;;8378:12;8474:17;;;:13;:17;;;;;;8378:12;;;;;;8474:17;;8470:168;;;8516:17;:15;:17::i;:::-;8508:25;;8470:168;;;-1:-1:-1;;;;;8557:19:0;;;;;;:13;:19;;;;;;;;8553:85;;;8604:20;:18;:20::i;:::-;8593:31;;8553:85;-1:-1:-1;;;;;8654:19:0;;;;;;:13;:19;;;;;;;;;:40;;-1:-1:-1;;;;;;8677:17:0;;;;;;:13;:17;;;;;;;;8654:40;8650:1073;;;-1:-1:-1;;;;;8730:19:0;;;;;;:13;:19;;;;;;;;8729:20;:42;;;;-1:-1:-1;;;;;;8754:17:0;;;;;;:13;:17;;;;;;;;8753:18;8729:42;8725:902;;;-1:-1:-1;;;;;8814:17:0;;;;;;:13;:17;;;;;;;;8810:727;;;8861:6;;;;8860:7;:17;;;;;8872:5;8871:6;8860:17;8856:662;;;8955:4;8906:28;6173:18;;;:9;:18;;;;;;8992:24;;8988:507;;9049:15;9081:12;;9067:11;;:26;;;;:::i;:::-;9049:44;-1:-1:-1;9124:27:0;9208:4;9155:16;9049:44;9155:6;:16;:::i;:::-;9154:58;;;;:::i;:::-;9124:88;;9269:20;9247:19;:42;9243:157;;;-1:-1:-1;9348:20:0;9243:157;9430:37;9447:19;9430:16;:37::i;:::-;9018:477;;8988:507;8879:639;8856:662;9560:5;9559:6;:19;;;;;9570:8;9569:9;9559:19;9555:39;;;9590:4;9580:14;;9555:39;-1:-1:-1;;;;;9645:17:0;;;;;;:13;:17;;;;;;;;9641:71;;;9692:4;9683:13;;9641:71;9735:125;9764:4;9783:2;9800:6;9821:7;9843:6;9735:14;:125::i;:::-;8303:1567;;;;8234:1636;;;:::o;7300:454::-;7404:9;;7451:22;;;-1:-1:-1;;;7451:22:0;;;;7350:10;;-1:-1:-1;;;;;7404:9:0;;7350:10;;;;7404:9;;7451:20;;:22;;;;;;;;;;;;;;;7404:9;7451:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7507:8:0;;-1:-1:-1;;;;;7425:48:0;;;;-1:-1:-1;7425:48:0;;;-1:-1:-1;;;;;;7507:8:0;7486:18;7571:4;7550:26;;7546:104;;;-1:-1:-1;7597:2:0;7546:104;;;-1:-1:-1;7636:2:0;7546:104;7673:47;;-1:-1:-1;;;7673:47:0;;-1:-1:-1;;;;;1752:32:1;;;7673:47:0;;;1734:51:1;7662:8:0;;7673:28;;;;;;1707:18:1;;7673:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7739:7;;;;;7300:454;-1:-1:-1;;;;;;7300:454:0:o;7762:464::-;7872:9;;7919:22;;;-1:-1:-1;;;7919:22:0;;;;7815:13;;-1:-1:-1;;;;;7872:9:0;;7815:13;;;;7872:9;;7919:20;;:22;;;;;;;;;;;;;;;7872:9;7919:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7975:8:0;;-1:-1:-1;;;;;7893:48:0;;;;-1:-1:-1;7893:48:0;;;-1:-1:-1;;;;;;7975:8:0;7954:18;8039:4;8018:26;;8014:104;;;-1:-1:-1;8065:2:0;8014:104;;;-1:-1:-1;8104:2:0;8014:104;8141:47;;-1:-1:-1;;;8141:47:0;;-1:-1:-1;;;;;1752:32:1;;;8141:47:0;;;1734:51:1;8130:8:0;;8141:28;;;;;;1707:18:1;;8141:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8210:8;;;;;7762:464;-1:-1:-1;;;;;;7762:464:0:o;10658:347::-;4479:6;:13;;-1:-1:-1;;4479:13:0;4488:4;4479:13;;;10736:55;;10773:7:::1;10736:55;10801:11;::::0;10945::::1;::::0;10801:196:::1;::::0;-1:-1:-1;;;10801:196:0;;-1:-1:-1;;;;;10801:11:0;;::::1;::::0;:62:::1;::::0;:196:::1;::::0;10878:11;;10801::::1;::::0;10920:10:::1;::::0;10945:11;::::1;::::0;10971:15:::1;::::0;10801:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4503:1;-1:-1:-1::0;4515:6:0;:14;;-1:-1:-1;;4515:14:0;;;10658:347::o;9885:763::-;-1:-1:-1;;;;;10079:17:0;;;;;;:9;:17;;;;;;:27;;10099:7;;10079:27;:::i;:::-;-1:-1:-1;;;;;10059:17:0;;;;;;:9;:17;;;;;:47;;;;10147:428;;;;10175:15;10209:6;10205:135;;;-1:-1:-1;10246:12:0;;10205:135;;;-1:-1:-1;10311:11:0;;10205:135;10356:18;10399:5;10378:17;10388:7;10378;:17;:::i;:::-;10377:27;;;;:::i;:::-;10356:48;-1:-1:-1;10423:14:0;;10419:145;;10458:23;10471:10;10458:23;;:::i;:::-;;;10500:48;10514:6;10530:4;10537:10;10500:13;:48::i;:::-;10160:415;;10147:428;10587:53;10601:6;10609:9;10620:19;10630:9;10620:7;:19;:::i;:::-;10587:13;:53::i;:::-;10048:600;9885:763;;;;;:::o;11017:213::-;-1:-1:-1;;;;;11154:13:0;;;;;;:9;:13;;;;;;:23;;11170:7;;11154:23;:::i;:::-;-1:-1:-1;;;;;11138:13:0;;;;;;;:9;:13;;;;;;;:39;;;;11193:29;;;;;;;;;;11214:7;1533:25:1;;1521:2;1506:18;;1387:177;14:173;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:1:o;575:548::-;687:4;716:2;745;734:9;727:21;777:6;771:13;820:6;815:2;804:9;800:18;793:34;845:1;855:140;869:6;866:1;863:13;855:140;;;964:14;;;960:23;;954:30;930:17;;;949:2;926:26;919:66;884:10;;855:140;;;859:3;1044:1;1039:2;1030:6;1019:9;1015:22;1011:31;1004:42;1114:2;1107;1103:7;1098:2;1090:6;1086:15;1082:29;1071:9;1067:45;1063:54;1055:62;;;;575:548;;;;:::o;1128:254::-;1196:6;1204;1257:2;1245:9;1236:7;1232:23;1228:32;1225:52;;;1273:1;1270;1263:12;1225:52;1296:29;1315:9;1296:29;:::i;:::-;1286:39;1372:2;1357:18;;;;1344:32;;-1:-1:-1;;;1128:254:1:o;1796:328::-;1873:6;1881;1889;1942:2;1930:9;1921:7;1917:23;1913:32;1910:52;;;1958:1;1955;1948:12;1910:52;1981:29;2000:9;1981:29;:::i;:::-;1971:39;;2029:38;2063:2;2052:9;2048:18;2029:38;:::i;:::-;2019:48;;2114:2;2103:9;2099:18;2086:32;2076:42;;1796:328;;;;;:::o;2337:248::-;2405:6;2413;2466:2;2454:9;2445:7;2441:23;2437:32;2434:52;;;2482:1;2479;2472:12;2434:52;-1:-1:-1;;2505:23:1;;;2575:2;2560:18;;;2547:32;;-1:-1:-1;2337:248:1:o;2590:180::-;2649:6;2702:2;2690:9;2681:7;2677:23;2673:32;2670:52;;;2718:1;2715;2708:12;2670:52;-1:-1:-1;2741:23:1;;2590:180;-1:-1:-1;2590:180:1:o;2775:260::-;2843:6;2851;2904:2;2892:9;2883:7;2879:23;2875:32;2872:52;;;2920:1;2917;2910:12;2872:52;2943:29;2962:9;2943:29;:::i;:::-;2933:39;;2991:38;3025:2;3014:9;3010:18;2991:38;:::i;:::-;2981:48;;2775:260;;;;;:::o;3040:380::-;3119:1;3115:12;;;;3162;;;3183:61;;3237:4;3229:6;3225:17;3215:27;;3183:61;3290:2;3282:6;3279:14;3259:18;3256:38;3253:161;;3336:10;3331:3;3327:20;3324:1;3317:31;3371:4;3368:1;3361:15;3399:4;3396:1;3389:15;3253:161;;3040:380;;;:::o;3425:127::-;3486:10;3481:3;3477:20;3474:1;3467:31;3517:4;3514:1;3507:15;3541:4;3538:1;3531:15;3557:128;3624:9;;;3645:11;;;3642:37;;;3659:18;;:::i;3690:329::-;3892:2;3874:21;;;3931:1;3911:18;;;3904:29;-1:-1:-1;;;3964:2:1;3949:18;;3942:36;4010:2;3995:18;;3690:329::o;4697:125::-;4762:9;;;4783:10;;;4780:36;;;4796:18;;:::i;4827:168::-;4900:9;;;4931;;4948:15;;;4942:22;;4928:37;4918:71;;4969:18;;:::i;5000:217::-;5040:1;5066;5056:132;;5110:10;5105:3;5101:20;5098:1;5091:31;5145:4;5142:1;5135:15;5173:4;5170:1;5163:15;5056:132;-1:-1:-1;5202:9:1;;5000:217::o;5222:188::-;5301:13;;-1:-1:-1;;;;;5343:42:1;;5333:53;;5323:81;;5400:1;5397;5390:12;5415:450;5502:6;5510;5518;5571:2;5559:9;5550:7;5546:23;5542:32;5539:52;;;5587:1;5584;5577:12;5539:52;5610:40;5640:9;5610:40;:::i;:::-;5600:50;;5669:49;5714:2;5703:9;5699:18;5669:49;:::i;:::-;5659:59;;5761:2;5750:9;5746:18;5740:25;5805:10;5798:5;5794:22;5787:5;5784:33;5774:61;;5831:1;5828;5821:12;5774:61;5854:5;5844:15;;;5415:450;;;;;:::o;5870:184::-;5940:6;5993:2;5981:9;5972:7;5968:23;5964:32;5961:52;;;6009:1;6006;5999:12;5961:52;-1:-1:-1;6032:16:1;;5870:184;-1:-1:-1;5870:184:1:o;6059:1003::-;6318:4;6366:3;6355:9;6351:19;6397:6;6386:9;6379:25;6423:2;6461:6;6456:2;6445:9;6441:18;6434:34;6504:3;6499:2;6488:9;6484:18;6477:31;6528:6;6563;6557:13;6594:6;6586;6579:22;6632:3;6621:9;6617:19;6610:26;;6655:6;6652:1;6645:17;6698:2;6695:1;6685:16;6671:30;;6719:1;6729:194;6743:6;6740:1;6737:13;6729:194;;;6808:13;;-1:-1:-1;;;;;6804:39:1;6792:52;;6840:1;6899:14;;;;6864:12;;;;6758:9;6729:194;;;-1:-1:-1;;;;;;;6979:32:1;;;;6974:2;6959:18;;6952:60;-1:-1:-1;;;7043:3:1;7028:19;7021:35;6940:3;6059:1003;-1:-1:-1;;;6059:1003:1:o

Swarm Source

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