ETH Price: $2,388.18 (-0.88%)

Token

Mumu The Bull (MUMU)
 

Overview

Max Total Supply

1,000,000,000 MUMU

Holders

39

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,213,545.992314664 MUMU

Value
$0.00
0xa147815633228f351217fab0169d19cda93e9839
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:
MUMU

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-24
*/

/**
Website: https://www.mumuthebull.live
Telegram: https://t.me/MumuTheBull_ETH
Twitter: https://twitter.com/mumu_bull
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

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 renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

interface IDexRouter {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract MUMU is IERC20, Context, Ownable {
    using SafeMath for uint256;
 
    string private constant _name = "Mumu The Bull";
    string private constant _symbol = "MUMU";
 
    //Original Fee
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _redisBuyFees = 0;  
    uint256 private _redisSellFees = 0;  
    uint256 private _redisFee = _redisSellFees;
    uint256 private _taxFee = _sellTax;
    uint256 private _tTotalFee;
    uint256 private _buyTax = 1;  
    uint256 private _sellTax = 1;
 
    uint256 private _previousRedisFees = _redisFee;
    uint256 private _previousTaxFees = _taxFee;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
 
    address payable private _devWallet = payable(msg.sender); 
    address payable private _mWallet = payable(msg.sender);

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = 10 ** 30;
    uint256 private constant _tTotal = 1000000000 * 10 ** 9;
    uint256 public _maxTransaction = 3 * 10000000 * 10 ** 9;
    uint256 public _maxWallet = 3 * 10000000 * 10 ** 9;
    uint256 public _swapTokensAtAmount = 5 * 1000000 * 10 ** 9;
 
    IDexRouter public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private swapping = false;
    bool private _taxSwapEnabled = true;
 
    event MaxTxAmountUpdated(uint256 _maxTransaction);
    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }
 
    constructor() { 
        _rOwned[_msgSender()] = _rTotal;
        IDexRouter _uniswapV2Router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IDexFactory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
 
        _isExcludedFromFees[_devWallet] = true;
        _isExcludedFromFees[_mWallet] = true;
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            require(amount <= _maxTransaction, "TOKEN: Max Transaction Limit");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWallet, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTransaction)
            {
                contractTokenBalance = _maxTransaction;
            }
 
            if (canSwap && !swapping && from != uniswapV2Pair && _taxSwapEnabled && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance; 
                if (contractETHBalance > 0) {
                    sendFeeToDevelopment(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFees[from] || _isExcludedFromFees[to])) {
            takeFee = false;
        } else {
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisBuyFees;
                _taxFee = _buyTax;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisSellFees;
                _taxFee = _sellTax;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }

    function removeLimits() public onlyOwner {
        _maxTransaction = type(uint).max;
        _maxWallet = type(uint).max;
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousRedisFees = _redisFee;
        _previousTaxFees = _taxFee;
        _tTotalFee = 0;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousRedisFees;
        _taxFee = _previousTaxFees;
        _tTotalFee = 100;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        require(tokenAmount < _swapTokensAtAmount * 4);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendFeeToDevelopment(uint256 amount) private {
        _devWallet.transfer(amount);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        view
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        if (_tTotalFee == 0 && tAmount > _tTotal) {
          rAmount = 0;
        }
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    receive() external payable {}
    
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTransaction","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405262000025670de0b6b3a76400006c0c9f2c9cd04674edea40000000620003ae565b6200003e906c0c9f2c9cd04674edea40000000620003ce565b6002555f60038190556004819055600581905560098054600681905560016008819055909155600a91909155600b55601080546001600160a01b031990811633908117909255601180549091169091179055666a94d74f43000060128190556013556611c37937e080006014556016805461ffff60a01b1916600160a81b179055348015620000cb575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254335f908152600c602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801562000185573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ab9190620003f4565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200020b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002319190620003f4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200027c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a29190620003f4565b601680546001600160a01b0319166001600160a01b0392831617905560105481165f908152600f60208190526040808320805460ff199081166001908117909255601154909516845290832080549094168117909355906200030b5f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff19958616179055308152600f909252902080549091166001179055620003523390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200039f91815260200190565b60405180910390a35062000423565b5f82620003c957634e487b7160e01b5f52601260045260245ffd5b500690565b81810381811115620003ee57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f6020828403121562000405575f80fd5b81516001600160a01b03811681146200041c575f80fd5b9392505050565b61144f80620004315f395ff3fe608060405260043610610108575f3560e01c8063715018a61161009257806395d89b411161006257806395d89b41146102cc578063a9059cbb146102f8578063da7003d414610317578063dd62ed3e1461032c578063f2fde38b14610370575f80fd5b8063715018a614610271578063751039fc1461028757806382247ec01461029b5780638da5cb5b146102b0575f80fd5b806323b872dd116100d857806323b872dd146101e45780632fd689e314610203578063313ce5671461021857806349bd5a5e1461023357806370a0823114610252575f80fd5b806306fdde0314610113578063095ea7b31461015a5780631694505e1461018957806318160ddd146101c0575f80fd5b3661010f57005b5f80fd5b34801561011e575f80fd5b5060408051808201909152600d81526c135d5b5d48151a1948109d5b1b609a1b60208201525b6040516101519190611192565b60405180910390f35b348015610165575f80fd5b506101796101743660046111f4565b61038f565b6040519015158152602001610151565b348015610194575f80fd5b506015546101a8906001600160a01b031681565b6040516001600160a01b039091168152602001610151565b3480156101cb575f80fd5b50670de0b6b3a76400005b604051908152602001610151565b3480156101ef575f80fd5b506101796101fe36600461121e565b6103a5565b34801561020e575f80fd5b506101d660145481565b348015610223575f80fd5b5060405160098152602001610151565b34801561023e575f80fd5b506016546101a8906001600160a01b031681565b34801561025d575f80fd5b506101d661026c36600461125c565b61040c565b34801561027c575f80fd5b5061028561042d565b005b348015610292575f80fd5b506102856104a7565b3480156102a6575f80fd5b506101d660135481565b3480156102bb575f80fd5b505f546001600160a01b03166101a8565b3480156102d7575f80fd5b506040805180820190915260048152634d554d5560e01b6020820152610144565b348015610303575f80fd5b506101796103123660046111f4565b6104dc565b348015610322575f80fd5b506101d660125481565b348015610337575f80fd5b506101d6610346366004611277565b6001600160a01b039182165f908152600e6020908152604080832093909416825291909152205490565b34801561037b575f80fd5b5061028561038a36600461125c565b6104e8565b5f61039b3384846105cf565b5060015b92915050565b5f6103b18484846106f2565b61040284336103fd856040518060600160405280602881526020016113f2602891396001600160a01b038a165f908152600e602090815260408083203384529091529020549190610acb565b6105cf565b5060019392505050565b6001600160a01b0381165f908152600c602052604081205461039f90610b03565b5f546001600160a01b0316331461045f5760405162461bcd60e51b8152600401610456906112ae565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104d05760405162461bcd60e51b8152600401610456906112ae565b5f196012819055601355565b5f61039b3384846106f2565b5f546001600160a01b031633146105115760405162461bcd60e51b8152600401610456906112ae565b6001600160a01b0381166105765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610456565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166106315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610456565b6001600160a01b0382166106925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610456565b6001600160a01b038381165f818152600e602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107565760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610456565b6001600160a01b0382166107b85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610456565b5f81116108195760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610456565b5f546001600160a01b0384811691161480159061084357505f546001600160a01b03838116911614155b156109f35760125481111561089a5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610456565b6016546001600160a01b0383811691161461091f57601354816108bc8461040c565b6108c691906112f7565b1061091f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610456565b5f6109293061040c565b6014546012549192508210159082106109425760125491505b8080156109595750601654600160a01b900460ff16155b801561097357506016546001600160a01b03868116911614155b80156109885750601654600160a81b900460ff165b80156109ac57506001600160a01b0385165f908152600f602052604090205460ff16155b80156109d057506001600160a01b0384165f908152600f602052604090205460ff16155b156109f0576109de82610b20565b4780156109ee576109ee47610ca8565b505b50505b6001600160a01b0383165f908152600f602052604090205460019060ff1680610a3357506001600160a01b0383165f908152600f602052604090205460ff165b15610a3f57505f610ab9565b6016546001600160a01b038581169116148015610a6a57506015546001600160a01b03848116911614155b15610a7c576003546005556008546006555b6016546001600160a01b038481169116148015610aa757506015546001600160a01b03858116911614155b15610ab9576004546005556009546006555b610ac584848484610ce3565b50505050565b5f8184841115610aee5760405162461bcd60e51b81526004016104569190611192565b505f610afa848661130a565b95945050505050565b5f80610b0d610d16565b9050610b198382610d37565b9392505050565b6016805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610b6657610b6661131d565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610bbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be19190611331565b81600181518110610bf457610bf461131d565b6001600160a01b039283166020918202929092010152601554610c1a91309116846105cf565b601454610c2890600461134c565b8210610c32575f80fd5b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610c6a9085905f90869030904290600401611363565b5f604051808303815f87803b158015610c81575f80fd5b505af1158015610c93573d5f803e3d5ffd5b50506016805460ff60a01b1916905550505050565b6010546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610cdf573d5f803e3d5ffd5b5050565b80610cf057610cf0610d78565b610cfb848484610daa565b80610ac557610ac5600a54600555600b546006556064600755565b5f805f610d21610e9b565b9092509050610d308282610d37565b9250505090565b5f610b1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610eda565b600554158015610d885750600654155b15610d8f57565b60058054600a5560068054600b555f60078190559182905555565b5f805f805f80610db987610f06565b6001600160a01b038f165f908152600c6020526040902054959b50939950919750955093509150610dea9087610f5b565b6001600160a01b03808b165f908152600c602052604080822093909355908a1681522054610e189086610f9c565b6001600160a01b0389165f908152600c6020526040902055610e3981610ffa565b610e438483611040565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610e8891815260200190565b60405180910390a3505050505050505050565b6002545f908190670de0b6b3a7640000610eb58282610d37565b821015610ed157505060025492670de0b6b3a764000092509050565b90939092509050565b5f8183610efa5760405162461bcd60e51b81526004016104569190611192565b505f610afa84866113d2565b5f805f805f805f805f610f1e8a600554600654611054565b9250925092505f610f2d610d16565b90505f805f610f3e8e8787876110a6565b919e509c509a509598509396509194505050505091939550919395565b5f610b1983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610acb565b5f80610fa883856112f7565b905083811015610b195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610456565b5f611003610d16565b90505f6110108383611114565b305f908152600c602052604090205490915061102c9082610f9c565b305f908152600c6020526040902055505050565b60025461104d9083610f5b565b6002555050565b5f80808061106d60646110678989611114565b90610d37565b90505f61107f60646110678a89611114565b90505f611096826110908b86610f5b565b90610f5b565b9992985090965090945050505050565b5f8080806110b48886611114565b90505f6110c18887611114565b90505f6110ce8888611114565b90505f6110df826110908686610f5b565b90506007545f1480156110f95750670de0b6b3a76400008b115b15611102575f93505b929a9299509097509095505050505050565b5f825f0361112357505f61039f565b5f61112e838561134c565b90508261113b85836113d2565b14610b195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610456565b5f6020808352835180828501525f5b818110156111bd578581018301518582016040015282016111a1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146111f1575f80fd5b50565b5f8060408385031215611205575f80fd5b8235611210816111dd565b946020939093013593505050565b5f805f60608486031215611230575f80fd5b833561123b816111dd565b9250602084013561124b816111dd565b929592945050506040919091013590565b5f6020828403121561126c575f80fd5b8135610b19816111dd565b5f8060408385031215611288575f80fd5b8235611293816111dd565b915060208301356112a3816111dd565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561039f5761039f6112e3565b8181038181111561039f5761039f6112e3565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611341575f80fd5b8151610b19816111dd565b808202811582820484141761039f5761039f6112e3565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156113b15784516001600160a01b03168352938301939183019160010161138c565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826113ec57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220413eb0f6d67c518e2768cbb61fa7dd3a324b25d7b8311eb8cce72220fbc3b9fa64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610108575f3560e01c8063715018a61161009257806395d89b411161006257806395d89b41146102cc578063a9059cbb146102f8578063da7003d414610317578063dd62ed3e1461032c578063f2fde38b14610370575f80fd5b8063715018a614610271578063751039fc1461028757806382247ec01461029b5780638da5cb5b146102b0575f80fd5b806323b872dd116100d857806323b872dd146101e45780632fd689e314610203578063313ce5671461021857806349bd5a5e1461023357806370a0823114610252575f80fd5b806306fdde0314610113578063095ea7b31461015a5780631694505e1461018957806318160ddd146101c0575f80fd5b3661010f57005b5f80fd5b34801561011e575f80fd5b5060408051808201909152600d81526c135d5b5d48151a1948109d5b1b609a1b60208201525b6040516101519190611192565b60405180910390f35b348015610165575f80fd5b506101796101743660046111f4565b61038f565b6040519015158152602001610151565b348015610194575f80fd5b506015546101a8906001600160a01b031681565b6040516001600160a01b039091168152602001610151565b3480156101cb575f80fd5b50670de0b6b3a76400005b604051908152602001610151565b3480156101ef575f80fd5b506101796101fe36600461121e565b6103a5565b34801561020e575f80fd5b506101d660145481565b348015610223575f80fd5b5060405160098152602001610151565b34801561023e575f80fd5b506016546101a8906001600160a01b031681565b34801561025d575f80fd5b506101d661026c36600461125c565b61040c565b34801561027c575f80fd5b5061028561042d565b005b348015610292575f80fd5b506102856104a7565b3480156102a6575f80fd5b506101d660135481565b3480156102bb575f80fd5b505f546001600160a01b03166101a8565b3480156102d7575f80fd5b506040805180820190915260048152634d554d5560e01b6020820152610144565b348015610303575f80fd5b506101796103123660046111f4565b6104dc565b348015610322575f80fd5b506101d660125481565b348015610337575f80fd5b506101d6610346366004611277565b6001600160a01b039182165f908152600e6020908152604080832093909416825291909152205490565b34801561037b575f80fd5b5061028561038a36600461125c565b6104e8565b5f61039b3384846105cf565b5060015b92915050565b5f6103b18484846106f2565b61040284336103fd856040518060600160405280602881526020016113f2602891396001600160a01b038a165f908152600e602090815260408083203384529091529020549190610acb565b6105cf565b5060019392505050565b6001600160a01b0381165f908152600c602052604081205461039f90610b03565b5f546001600160a01b0316331461045f5760405162461bcd60e51b8152600401610456906112ae565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104d05760405162461bcd60e51b8152600401610456906112ae565b5f196012819055601355565b5f61039b3384846106f2565b5f546001600160a01b031633146105115760405162461bcd60e51b8152600401610456906112ae565b6001600160a01b0381166105765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610456565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166106315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610456565b6001600160a01b0382166106925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610456565b6001600160a01b038381165f818152600e602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107565760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610456565b6001600160a01b0382166107b85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610456565b5f81116108195760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610456565b5f546001600160a01b0384811691161480159061084357505f546001600160a01b03838116911614155b156109f35760125481111561089a5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610456565b6016546001600160a01b0383811691161461091f57601354816108bc8461040c565b6108c691906112f7565b1061091f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610456565b5f6109293061040c565b6014546012549192508210159082106109425760125491505b8080156109595750601654600160a01b900460ff16155b801561097357506016546001600160a01b03868116911614155b80156109885750601654600160a81b900460ff165b80156109ac57506001600160a01b0385165f908152600f602052604090205460ff16155b80156109d057506001600160a01b0384165f908152600f602052604090205460ff16155b156109f0576109de82610b20565b4780156109ee576109ee47610ca8565b505b50505b6001600160a01b0383165f908152600f602052604090205460019060ff1680610a3357506001600160a01b0383165f908152600f602052604090205460ff165b15610a3f57505f610ab9565b6016546001600160a01b038581169116148015610a6a57506015546001600160a01b03848116911614155b15610a7c576003546005556008546006555b6016546001600160a01b038481169116148015610aa757506015546001600160a01b03858116911614155b15610ab9576004546005556009546006555b610ac584848484610ce3565b50505050565b5f8184841115610aee5760405162461bcd60e51b81526004016104569190611192565b505f610afa848661130a565b95945050505050565b5f80610b0d610d16565b9050610b198382610d37565b9392505050565b6016805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610b6657610b6661131d565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610bbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be19190611331565b81600181518110610bf457610bf461131d565b6001600160a01b039283166020918202929092010152601554610c1a91309116846105cf565b601454610c2890600461134c565b8210610c32575f80fd5b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610c6a9085905f90869030904290600401611363565b5f604051808303815f87803b158015610c81575f80fd5b505af1158015610c93573d5f803e3d5ffd5b50506016805460ff60a01b1916905550505050565b6010546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610cdf573d5f803e3d5ffd5b5050565b80610cf057610cf0610d78565b610cfb848484610daa565b80610ac557610ac5600a54600555600b546006556064600755565b5f805f610d21610e9b565b9092509050610d308282610d37565b9250505090565b5f610b1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610eda565b600554158015610d885750600654155b15610d8f57565b60058054600a5560068054600b555f60078190559182905555565b5f805f805f80610db987610f06565b6001600160a01b038f165f908152600c6020526040902054959b50939950919750955093509150610dea9087610f5b565b6001600160a01b03808b165f908152600c602052604080822093909355908a1681522054610e189086610f9c565b6001600160a01b0389165f908152600c6020526040902055610e3981610ffa565b610e438483611040565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610e8891815260200190565b60405180910390a3505050505050505050565b6002545f908190670de0b6b3a7640000610eb58282610d37565b821015610ed157505060025492670de0b6b3a764000092509050565b90939092509050565b5f8183610efa5760405162461bcd60e51b81526004016104569190611192565b505f610afa84866113d2565b5f805f805f805f805f610f1e8a600554600654611054565b9250925092505f610f2d610d16565b90505f805f610f3e8e8787876110a6565b919e509c509a509598509396509194505050505091939550919395565b5f610b1983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610acb565b5f80610fa883856112f7565b905083811015610b195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610456565b5f611003610d16565b90505f6110108383611114565b305f908152600c602052604090205490915061102c9082610f9c565b305f908152600c6020526040902055505050565b60025461104d9083610f5b565b6002555050565b5f80808061106d60646110678989611114565b90610d37565b90505f61107f60646110678a89611114565b90505f611096826110908b86610f5b565b90610f5b565b9992985090965090945050505050565b5f8080806110b48886611114565b90505f6110c18887611114565b90505f6110ce8888611114565b90505f6110df826110908686610f5b565b90506007545f1480156110f95750670de0b6b3a76400008b115b15611102575f93505b929a9299509097509095505050505050565b5f825f0361112357505f61039f565b5f61112e838561134c565b90508261113b85836113d2565b14610b195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610456565b5f6020808352835180828501525f5b818110156111bd578581018301518582016040015282016111a1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146111f1575f80fd5b50565b5f8060408385031215611205575f80fd5b8235611210816111dd565b946020939093013593505050565b5f805f60608486031215611230575f80fd5b833561123b816111dd565b9250602084013561124b816111dd565b929592945050506040919091013590565b5f6020828403121561126c575f80fd5b8135610b19816111dd565b5f8060408385031215611288575f80fd5b8235611293816111dd565b915060208301356112a3816111dd565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561039f5761039f6112e3565b8181038181111561039f5761039f6112e3565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611341575f80fd5b8151610b19816111dd565b808202811582820484141761039f5761039f6112e3565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156113b15784516001600160a01b03168352938301939183019160010161138c565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826113ec57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220413eb0f6d67c518e2768cbb61fa7dd3a324b25d7b8311eb8cce72220fbc3b9fa64736f6c63430008150033

Deployed Bytecode Sourcemap

4200:11155:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6459:83;;;;;;;;;;-1:-1:-1;6529:5:0;;;;;;;;;;;;-1:-1:-1;;;6529:5:0;;;;6459:83;;;;;;;:::i;:::-;;;;;;;;7391:193;;;;;;;;;;-1:-1:-1;7391:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7391:193:0;1023:187:1;5553:33:0;;;;;;;;;;-1:-1:-1;5553:33:0;;;;-1:-1:-1;;;;;5553:33:0;;;;;;-1:-1:-1;;;;;1397:32:1;;;1379:51;;1367:2;1352:18;5553:33:0;1215:221:1;6739:95:0;;;;;;;;;;-1:-1:-1;5339:20:0;6739:95;;;1587:25:1;;;1575:2;1560:18;6739:95:0;1441:177:1;7593:446:0;;;;;;;;;;-1:-1:-1;7593:446:0;;;;;:::i;:::-;;:::i;5485:58::-;;;;;;;;;;;;;;;;6647:83;;;;;;;;;;-1:-1:-1;6647:83:0;;5250:1;2226:36:1;;2214:2;2199:18;6647:83:0;2084:184:1;5593:28:0;;;;;;;;;;-1:-1:-1;5593:28:0;;;;-1:-1:-1;;;;;5593:28:0;;;6843:138;;;;;;;;;;-1:-1:-1;6843:138:0;;;;;:::i;:::-;;:::i;1690:148::-;;;;;;;;;;;;;:::i;:::-;;10488:130;;;;;;;;;;;;;:::i;5428:50::-;;;;;;;;;;;;;;;;1474:79;;;;;;;;;;-1:-1:-1;1512:7:0;1539:6;-1:-1:-1;;;;;1539:6:0;1474:79;;6551:87;;;;;;;;;;-1:-1:-1;6623:7:0;;;;;;;;;;;;-1:-1:-1;;;6623:7:0;;;;6551:87;;6990:199;;;;;;;;;;-1:-1:-1;6990:199:0;;;;;:::i;:::-;;:::i;5366:55::-;;;;;;;;;;;;;;;;7198:184;;;;;;;;;;-1:-1:-1;7198:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7347:18:0;;;7315:7;7347:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7198:184;1847:244;;;;;;;;;;-1:-1:-1;1847:244:0;;;;;:::i;:::-;;:::i;7391:193::-;7493:4;7515:39;303:10;7538:7;7547:6;7515:8;:39::i;:::-;-1:-1:-1;7572:4:0;7391:193;;;;;:::o;7593:446::-;7725:4;7742:36;7752:6;7760:9;7771:6;7742:9;:36::i;:::-;7789:220;7812:6;303:10;7860:138;7916:6;7860:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7860:19:0;;;;;;:11;:19;;;;;;;;303:10;7860:33;;;;;;;;;;:37;:138::i;:::-;7789:8;:220::i;:::-;-1:-1:-1;8027:4:0;7593:446;;;;;:::o;6843:138::-;-1:-1:-1;;;;;6956:16:0;;6909:7;6956:16;;;:7;:16;;;;;;6936:37;;:19;:37::i;1690:148::-;1602:6;;-1:-1:-1;;;;;1602:6:0;303:10;1602:22;1594:67;;;;-1:-1:-1;;;1594:67:0;;;;;;;:::i;:::-;;;;;;;;;1797:1:::1;1781:6:::0;;1760:40:::1;::::0;-1:-1:-1;;;;;1781:6:0;;::::1;::::0;1760:40:::1;::::0;1797:1;;1760:40:::1;1828:1;1811:19:::0;;-1:-1:-1;;;;;;1811:19:0::1;::::0;;1690:148::o;10488:130::-;1602:6;;-1:-1:-1;;;;;1602:6:0;303:10;1602:22;1594:67;;;;-1:-1:-1;;;1594:67:0;;;;;;;:::i;:::-;-1:-1:-1;;10540:15:0::1;:32:::0;;;10583:10:::1;:27:::0;10488:130::o;6990:199::-;7095:4;7117:42;303:10;7141:9;7152:6;7117:9;:42::i;1847:244::-;1602:6;;-1:-1:-1;;;;;1602:6:0;303:10;1602:22;1594:67;;;;-1:-1:-1;;;1594:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1936:22:0;::::1;1928:73;;;::::0;-1:-1:-1;;;1928:73:0;;3689:2:1;1928:73:0::1;::::0;::::1;3671:21:1::0;3728:2;3708:18;;;3701:30;3767:34;3747:18;;;3740:62;-1:-1:-1;;;3818:18:1;;;3811:36;3864:19;;1928:73:0::1;3487:402:1::0;1928:73:0::1;2038:6;::::0;;2017:38:::1;::::0;-1:-1:-1;;;;;2017:38:0;;::::1;::::0;2038:6;::::1;::::0;2017:38:::1;::::0;::::1;2066:6;:17:::0;;-1:-1:-1;;;;;;2066:17:0::1;-1:-1:-1::0;;;;;2066:17:0;;;::::1;::::0;;;::::1;::::0;;1847:244::o;8048:369::-;-1:-1:-1;;;;;8175:19:0;;8167:68;;;;-1:-1:-1;;;8167:68:0;;4096:2:1;8167:68:0;;;4078:21:1;4135:2;4115:18;;;4108:30;4174:34;4154:18;;;4147:62;-1:-1:-1;;;4225:18:1;;;4218:34;4269:19;;8167:68:0;3894:400:1;8167:68:0;-1:-1:-1;;;;;8254:21:0;;8246:68;;;;-1:-1:-1;;;8246:68:0;;4501:2:1;8246:68:0;;;4483:21:1;4540:2;4520:18;;;4513:30;4579:34;4559:18;;;4552:62;-1:-1:-1;;;4630:18:1;;;4623:32;4672:19;;8246:68:0;4299:398:1;8246:68:0;-1:-1:-1;;;;;8325:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8377:32;;1587:25:1;;;8377:32:0;;1560:18:1;8377:32:0;;;;;;;8048:369;;;:::o;8426:2054::-;-1:-1:-1;;;;;8548:18:0;;8540:68;;;;-1:-1:-1;;;8540:68:0;;4904:2:1;8540:68:0;;;4886:21:1;4943:2;4923:18;;;4916:30;4982:34;4962:18;;;4955:62;-1:-1:-1;;;5033:18:1;;;5026:35;5078:19;;8540:68:0;4702:401:1;8540:68:0;-1:-1:-1;;;;;8627:16:0;;8619:64;;;;-1:-1:-1;;;8619:64:0;;5310:2:1;8619:64:0;;;5292:21:1;5349:2;5329:18;;;5322:30;5388:34;5368:18;;;5361:62;-1:-1:-1;;;5439:18:1;;;5432:33;5482:19;;8619:64:0;5108:399:1;8619:64:0;8711:1;8702:6;:10;8694:64;;;;-1:-1:-1;;;8694:64:0;;5714:2:1;8694:64:0;;;5696:21:1;5753:2;5733:18;;;5726:30;5792:34;5772:18;;;5765:62;-1:-1:-1;;;5843:18:1;;;5836:39;5892:19;;8694:64:0;5512:405:1;8694:64:0;1512:7;1539:6;-1:-1:-1;;;;;8776:15:0;;;1539:6;;8776:15;;;;:32;;-1:-1:-1;1512:7:0;1539:6;-1:-1:-1;;;;;8795:13:0;;;1539:6;;8795:13;;8776:32;8772:1039;;;8879:15;;8869:6;:25;;8861:66;;;;-1:-1:-1;;;8861:66:0;;6124:2:1;8861:66:0;;;6106:21:1;6163:2;6143:18;;;6136:30;6202;6182:18;;;6175:58;6250:18;;8861:66:0;5922:352:1;8861:66:0;8954:13;;-1:-1:-1;;;;;8948:19:0;;;8954:13;;8948:19;8945:142;;9021:10;;9012:6;8996:13;9006:2;8996:9;:13::i;:::-;:22;;;;:::i;:::-;:35;8988:83;;;;-1:-1:-1;;;8988:83:0;;6743:2:1;8988:83:0;;;6725:21:1;6782:2;6762:18;;;6755:30;6821:34;6801:18;;;6794:62;-1:-1:-1;;;6872:18:1;;;6865:33;6915:19;;8988:83:0;6541:399:1;8988:83:0;9104:28;9135:24;9153:4;9135:9;:24::i;:::-;9213:19;;9277:15;;9104:55;;-1:-1:-1;9189:43:0;;;;9253:39;;9250:130;;9349:15;;9326:38;;9250:130;9401:7;:20;;;;-1:-1:-1;9413:8:0;;-1:-1:-1;;;9413:8:0;;;;9412:9;9401:20;:45;;;;-1:-1:-1;9433:13:0;;-1:-1:-1;;;;;9425:21:0;;;9433:13;;9425:21;;9401:45;:64;;;;-1:-1:-1;9450:15:0;;-1:-1:-1;;;9450:15:0;;;;9401:64;:94;;;;-1:-1:-1;;;;;;9470:25:0;;;;;;:19;:25;;;;;;;;9469:26;9401:94;:122;;;;-1:-1:-1;;;;;;9500:23:0;;;;;;:19;:23;;;;;;;;9499:24;9401:122;9397:403;;;9544:38;9561:20;9544:16;:38::i;:::-;9630:21;9675:22;;9671:114;;9722:43;9743:21;9722:20;:43::i;:::-;9525:275;9397:403;8810:1001;;8772:1039;-1:-1:-1;;;;;9889:25:0;;9824:12;9889:25;;;:19;:25;;;;;;9839:4;;9889:25;;;:52;;-1:-1:-1;;;;;;9918:23:0;;;;;;:19;:23;;;;;;;;9889:52;9884:534;;;-1:-1:-1;9969:5:0;9884:534;;;10050:13;;-1:-1:-1;;;;;10042:21:0;;;10050:13;;10042:21;:55;;;;-1:-1:-1;10081:15:0;;-1:-1:-1;;;;;10067:30:0;;;10081:15;;10067:30;;10042:55;10039:156;;;10130:13;;10118:9;:25;10172:7;;10162;:17;10039:156;10255:13;;-1:-1:-1;;;;;10249:19:0;;;10255:13;;10249:19;:55;;;;-1:-1:-1;10288:15:0;;-1:-1:-1;;;;;10272:32:0;;;10288:15;;10272:32;;10249:55;10245:159;;;10337:14;;10325:9;:26;10380:8;;10370:7;:18;10245:159;10431:41;10446:4;10452:2;10456:6;10464:7;10431:14;:41::i;:::-;8529:1951;8426:2054;;;:::o;2458:224::-;2578:7;2614:12;2606:6;;;;2598:29;;;;-1:-1:-1;;;2598:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2638:9:0;2650:5;2654:1;2650;:5;:::i;:::-;2638:17;2458:224;-1:-1:-1;;;;;2458:224:0:o;11501:202::-;11596:7;11621:19;11643:10;:8;:10::i;:::-;11621:32;-1:-1:-1;11671:24:0;:7;11621:32;11671:11;:24::i;:::-;11664:31;11501:202;-1:-1:-1;;;11501:202:0:o;13074:540::-;5800:8;:15;;-1:-1:-1;;;;5800:15:0;-1:-1:-1;;;5800:15:0;;;13176:16:::1;::::0;;13190:1:::1;13176:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13176:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13176:16:0::1;13152:40;;13221:4;13203;13208:1;13203:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13203:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13247:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13247:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13203:7;;13247:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13237:4;13242:1;13237:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13237:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13312:15:::1;::::0;13280:62:::1;::::0;13297:4:::1;::::0;13312:15:::1;13330:11:::0;13280:8:::1;:62::i;:::-;13375:19;::::0;:23:::1;::::0;13397:1:::1;13375:23;:::i;:::-;13361:11;:37;13353:46;;;::::0;::::1;;13410:15;::::0;:196:::1;::::0;-1:-1:-1;;;13410:196:0;;-1:-1:-1;;;;;13410:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13491:11;;13410:15:::1;::::0;13533:4;;13560::::1;::::0;13580:15:::1;::::0;13410:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5838:8:0;:16;;-1:-1:-1;;;;5838:16:0;;;-1:-1:-1;;;;13074:540:0:o;13623:100::-;13688:10;;:27;;-1:-1:-1;;;;;13688:10:0;;;;:27;;;;;13708:6;;13688:10;:27;:10;:27;13708:6;13688:10;:27;;;;;;;;;;;;;;;;;;;;;13623:100;:::o;11039:282::-;11195:7;11190:28;;11204:14;:12;:14::i;:::-;11229:44;11247:6;11255:9;11266:6;11229:17;:44::i;:::-;11289:7;11284:29;;11298:15;10940:18;;10928:9;:30;10979:16;;10969:7;:26;11019:3;11006:10;:16;10884:146;11329:164;11371:7;11392:15;11409;11428:19;:17;:19::i;:::-;11391:56;;-1:-1:-1;11391:56:0;-1:-1:-1;11465:20:0;11391:56;;11465:11;:20::i;:::-;11458:27;;;;11329:164;:::o;2946:132::-;3004:7;3031:39;3035:1;3038;3031:39;;;;;;;;;;;;;;;;;:3;:39::i;10627:248::-;10674:9;;:14;:30;;;;-1:-1:-1;10692:7:0;;:12;10674:30;10670:43;;;10627:248::o;10670:43::-;10747:9;;;10726:18;:30;10786:7;;;10767:16;:26;-1:-1:-1;10804:10:0;:14;;;10832:13;;;;10856:11;10627:248::o;11712:610::-;11859:15;11889:23;11927:12;11954:23;11992:12;12019:13;12046:19;12057:7;12046:10;:19::i;:::-;-1:-1:-1;;;;;12094:15:0;;;;;;:7;:15;;;;;;11844:221;;-1:-1:-1;11844:221:0;;-1:-1:-1;11844:221:0;;-1:-1:-1;11844:221:0;-1:-1:-1;11844:221:0;-1:-1:-1;11844:221:0;-1:-1:-1;12094:28:0;;11844:221;12094:19;:28::i;:::-;-1:-1:-1;;;;;12076:15:0;;;;;;;:7;:15;;;;;;:46;;;;12154:18;;;;;;;:39;;12177:15;12154:22;:39::i;:::-;-1:-1:-1;;;;;12133:18:0;;;;;;:7;:18;;;;;:60;12204:16;12214:5;12204:9;:16::i;:::-;12231:23;12243:4;12249;12231:11;:23::i;:::-;12287:9;-1:-1:-1;;;;;12270:44:0;12279:6;-1:-1:-1;;;;;12270:44:0;;12298:15;12270:44;;;;1587:25:1;;1575:2;1560:18;;1441:177;12270:44:0;;;;;;;;11833:489;;;;;;11712:610;;;:::o;12330:257::-;12428:7;;12381;;;;5339:20;12496;12428:7;5339:20;12496:11;:20::i;:::-;12486:7;:30;12482:61;;;-1:-1:-1;;12526:7:0;;;5339:20;;-1:-1:-1;12330:257:0;-1:-1:-1;12330:257:0:o;12482:61::-;12562:7;;12571;;-1:-1:-1;12330:257:0;-1:-1:-1;12330:257:0:o;3087:223::-;3207:7;3242:12;3235:5;3227:28;;;;-1:-1:-1;;;3227:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3266:9:0;3278:5;3282:1;3278;:5;:::i;14363:615::-;14463:7;14485;14507;14529;14551;14573;14609:23;14634:12;14648:13;14678:40;14690:7;14699:9;;14710:7;;14678:11;:40::i;:::-;14608:110;;;;;;14729:19;14751:10;:8;:10::i;:::-;14729:32;;14773:15;14790:23;14815:12;14844:46;14856:7;14865:4;14871:5;14878:11;14844;:46::i;:::-;14772:118;;-1:-1:-1;14772:118:0;-1:-1:-1;14772:118:0;-1:-1:-1;14941:15:0;;-1:-1:-1;14958:4:0;;-1:-1:-1;14964:5:0;;-1:-1:-1;;;;;14363:615:0;;;;;;;:::o;2313:136::-;2371:7;2398:43;2402:1;2405;2398:43;;;;;;;;;;;;;;;;;:3;:43::i;2125:179::-;2183:7;;2215:5;2219:1;2215;:5;:::i;:::-;2203:17;;2244:1;2239;:6;;2231:46;;;;-1:-1:-1;;;2231:46:0;;9180:2:1;2231:46:0;;;9162:21:1;9219:2;9199:18;;;9192:30;9258:29;9238:18;;;9231:57;9305:18;;2231:46:0;8978:351:1;15027:211:0;15080:19;15102:10;:8;:10::i;:::-;15080:32;-1:-1:-1;15123:13:0;15139:22;:5;15080:32;15139:9;:22::i;:::-;15213:4;15197:22;;;;:7;:22;;;;;;15123:38;;-1:-1:-1;15197:33:0;;15123:38;15197:26;:33::i;:::-;15188:4;15172:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;15027:211:0:o;15247:103::-;15325:7;;:17;;15337:4;15325:11;:17::i;:::-;15315:7;:27;-1:-1:-1;;15247:103:0:o;12596:469::-;12765:7;;;;12859:30;12885:3;12859:21;:7;12871:8;12859:11;:21::i;:::-;:25;;:30::i;:::-;12844:45;-1:-1:-1;12900:13:0;12916:28;12940:3;12916:19;:7;12928:6;12916:11;:19::i;:28::-;12900:44;-1:-1:-1;12955:23:0;12981:28;12900:44;12981:17;:7;12993:4;12981:11;:17::i;:::-;:21;;:28::i;:::-;12955:54;13045:4;;-1:-1:-1;13051:5:0;;-1:-1:-1;12596:469:0;;-1:-1:-1;;;;;12596:469:0:o;13732:622::-;13926:7;;;;14023:24;:7;14035:11;14023;:24::i;:::-;14005:42;-1:-1:-1;14058:12:0;14073:21;:4;14082:11;14073:8;:21::i;:::-;14058:36;-1:-1:-1;14105:13:0;14121:22;:5;14131:11;14121:9;:22::i;:::-;14105:38;-1:-1:-1;14154:23:0;14180:28;14105:38;14180:17;:7;14192:4;14180:11;:17::i;:28::-;14154:54;;14223:10;;14237:1;14223:15;:36;;;;;5339:20;14242:7;:17;14223:36;14219:78;;;14284:1;14274:11;;14219:78;14315:7;;;;-1:-1:-1;14341:4:0;;-1:-1:-1;13732:622:0;;-1:-1:-1;;;;;;13732:622:0:o;2691:246::-;2749:7;2773:1;2778;2773:6;2769:47;;-1:-1:-1;2803:1:0;2796:8;;2769:47;2826:9;2838:5;2842:1;2838;:5;:::i;:::-;2826:17;-1:-1:-1;2871:1:0;2862:5;2866:1;2826:17;2862:5;:::i;:::-;:10;2854:56;;;;-1:-1:-1;;;2854:56:0;;9536:2:1;2854:56:0;;;9518:21:1;9575:2;9555:18;;;9548:30;9614:34;9594:18;;;9587:62;-1:-1:-1;;;9665:18:1;;;9658:31;9706:19;;2854:56:0;9334:397:1;14:548;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;622:70;567:131;:::o;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;1623:456::-;1700:6;1708;1716;1769:2;1757:9;1748:7;1744:23;1740:32;1737:52;;;1785:1;1782;1775:12;1737:52;1824:9;1811:23;1843:31;1868:5;1843:31;:::i;:::-;1893:5;-1:-1:-1;1950:2:1;1935:18;;1922:32;1963:33;1922:32;1963:33;:::i;:::-;1623:456;;2015:7;;-1:-1:-1;;;2069:2:1;2054:18;;;;2041:32;;1623:456::o;2481:247::-;2540:6;2593:2;2581:9;2572:7;2568:23;2564:32;2561:52;;;2609:1;2606;2599:12;2561:52;2648:9;2635:23;2667:31;2692:5;2667:31;:::i;2733:388::-;2801:6;2809;2862:2;2850:9;2841:7;2837:23;2833:32;2830:52;;;2878:1;2875;2868:12;2830:52;2917:9;2904:23;2936:31;2961:5;2936:31;:::i;:::-;2986:5;-1:-1:-1;3043:2:1;3028:18;;3015:32;3056:33;3015:32;3056:33;:::i;:::-;3108:7;3098:17;;;2733:388;;;;;:::o;3126:356::-;3328:2;3310:21;;;3347:18;;;3340:30;3406:34;3401:2;3386:18;;3379:62;3473:2;3458:18;;3126:356::o;6279:127::-;6340:10;6335:3;6331:20;6328:1;6321:31;6371:4;6368:1;6361:15;6395:4;6392:1;6385:15;6411:125;6476:9;;;6497:10;;;6494:36;;;6510:18;;:::i;6945:128::-;7012:9;;;7033:11;;;7030:37;;;7047:18;;:::i;7210:127::-;7271:10;7266:3;7262:20;7259:1;7252:31;7302:4;7299:1;7292:15;7326:4;7323:1;7316:15;7342:251;7412:6;7465:2;7453:9;7444:7;7440:23;7436:32;7433:52;;;7481:1;7478;7471:12;7433:52;7513:9;7507:16;7532:31;7557:5;7532:31;:::i;7598:168::-;7671:9;;;7702;;7719:15;;;7713:22;;7699:37;7689:71;;7740:18;;:::i;7771:980::-;8033:4;8081:3;8070:9;8066:19;8112:6;8101:9;8094:25;8138:2;8176:6;8171:2;8160:9;8156:18;8149:34;8219:3;8214:2;8203:9;8199:18;8192:31;8243:6;8278;8272:13;8309:6;8301;8294:22;8347:3;8336:9;8332:19;8325:26;;8386:2;8378:6;8374:15;8360:29;;8407:1;8417:195;8431:6;8428:1;8425:13;8417:195;;;8496:13;;-1:-1:-1;;;;;8492:39:1;8480:52;;8587:15;;;;8552:12;;;;8528:1;8446:9;8417:195;;;-1:-1:-1;;;;;;;8668:32:1;;;;8663:2;8648:18;;8641:60;-1:-1:-1;;;8732:3:1;8717:19;8710:35;8629:3;7771:980;-1:-1:-1;;;7771:980:1:o;8756:217::-;8796:1;8822;8812:132;;8866:10;8861:3;8857:20;8854:1;8847:31;8901:4;8898:1;8891:15;8929:4;8926:1;8919:15;8812:132;-1:-1:-1;8958:9:1;;8756:217::o

Swarm Source

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