ETH Price: $2,656.39 (+1.15%)

Token

Melody (MELODY)
 

Overview

Max Total Supply

100,000,000 MELODY

Holders

121

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
824,942.643744087 MELODY

Value
$0.00
0xe9d7ae029e2f321d6906f308e90e32bbe4fb3320
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:
MELODY

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-21
*/

/**

Website: https://melody.money
Telegram: https://t.me/melodyswap

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.15;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function  renounceOwnership() public onlyOwner {
        owner = address(0); 
        emit OwnershipTransferred(address(0));
    }
    event OwnershipTransferred(address owner);
}

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract MELODY is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'Melody';
    string private constant _symbol = 'MELODY';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 100000000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludeForFee;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 1;
    uint256 private _maxSwapAmount = ( _totalSupply * 7 ) / 1000;
    uint256 private _minTokensAmount = ( _totalSupply * 7 ) / 1000000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private buyTaxFee = 0;
    uint256 private sellTaxFee = 0;
    uint256 private transferFee = 0;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal _marketingReceiver = 0x9722A15881d8dada874B4Df58Cd635848B18b81E;
    uint256 public _maxTokensHolding = ( _totalSupply * 200 ) / 10000;

    constructor() Ownable(msg.sender) {
        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _isExcludeForFee[address(this)] = true;
        _isExcludeForFee[_marketingReceiver] = true;
        _isExcludeForFee[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    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 openTrading() external onlyOwner {tradingAllowed=true;sellTaxFee=1500;buyTaxFee=1500;marketingFee=1500;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function addLiquidity() external payable onlyOwner {
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        addLiquidity(_balances[address(this)], msg.value);
    }

    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _minTokensAmount;
        bool aboveThreshold = balanceOf(address(this)) >= _minTokensAmount;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !_isExcludeForFee[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold;
    }

    function removeLimits() external onlyOwner {
        _maxTokensHolding = _totalSupply;
    }

    function reduceFees(uint256 _fee) external onlyOwner {
        sellTaxFee = _fee;
        buyTaxFee = _fee;
        marketingFee = _fee;
        require(_fee <= 500);
    }

    function manualSwap() external onlyOwner {
        swapAndLiquify(_balances[address(this)]);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(_marketingReceiver).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(_marketingReceiver).transfer(contractBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            owner,
            block.timestamp);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !_isExcludeForFee[sender] && !_isExcludeForFee[recipient];
    }

    function getTaxFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellTaxFee;}
        if(sender == pair){return buyTaxFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTaxFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTaxFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTaxFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(!_isExcludeForFee[sender] && !_isExcludeForFee[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(_isExcludeForFee[sender] && recipient == pair && sender != address(this)){_balances[recipient]+=amount;return;}
        if(!_isExcludeForFee[sender] && !_isExcludeForFee[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxTokensHolding, "Exceeds maximum wallet amount.");}
        if(recipient == pair && !_isExcludeForFee[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){
            uint256 amountToSwap = _balances[address(this)];
            if(amountToSwap >= _maxSwapAmount) amountToSwap = _maxSwapAmount;
            swapAndLiquify(amountToSwap); swapTimes = uint256(0);
        }
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].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);
    }
}

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":"address","name":"owner","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":"_maxTokensHolding","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620002d6565b62000022906305f5e100620002ee565b60018181556006805461ffff60a01b1916600160a81b1790556009556103e8906200004f906007620002ee565b6200005b919062000308565b600a55620f42406001546007620000739190620002ee565b6200007f919062000308565b600b556000600c819055600d819055600e819055600f819055601081905560118190556012556127106013819055601480546001600160a01b031916739722a15881d8dada874b4df58cd635848b18b81e179055600154620000e39060c8620002ee565b620000ef919062000308565b601555348015620000ff57600080fd5b50600080546001600160a01b031990811633908117835560058054909216737a250d5630b4cf539739df2c5dacb4c659f2488d17909155308252600460209081526040808420805460ff1990811660019081179092556014546001600160a01b031686528286208054821683179055848652828620805490911682179055546002835281852081905590519081529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200032b565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000218578160001904821115620001fc57620001fc620001c1565b808516156200020a57918102915b93841c9390800290620001dc565b509250929050565b6000826200023157506001620002d0565b816200024057506000620002d0565b8160018114620002595760028114620002645762000284565b6001915050620002d0565b60ff841115620002785762000278620001c1565b50506001821b620002d0565b5060208310610133831016604e8410600b8410161715620002a9575081810a620002d0565b620002b58383620001d7565b8060001904821115620002cc57620002cc620001c1565b0290505b92915050565b6000620002e760ff84168362000220565b9392505050565b8082028115828204841417620002d057620002d0620001c1565b6000826200032657634e487b7160e01b600052601260045260246000fd5b500490565b6116d9806200033b6000396000f3fe6080604052600436106101185760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb14610331578063aac3751d14610351578063c9567bf914610371578063dd62ed3e14610386578063e8078d94146103cc57600080fd5b8063751039fc146102855780638735eb9c1461029a578063893d20e8146102b057806395d89b41146102e2578063a8aa1b311461031157600080fd5b80632f54bf6e116100e75780632f54bf6e146101d8578063313ce5671461020757806351bc3c851461022357806370a082311461023a578063715018a61461027057600080fd5b806306fdde0314610124578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b857600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b506040805180820190915260068152654d656c6f647960d01b60208201525b60405161015c91906113d5565b60405180910390f35b34801561017157600080fd5b50610185610180366004611438565b6103d4565b604051901515815260200161015c565b3480156101a157600080fd5b506101aa6103eb565b60405190815260200161015c565b3480156101c457600080fd5b506101856101d3366004611464565b61045c565b3480156101e457600080fd5b506101856101f33660046114a5565b6000546001600160a01b0391821691161490565b34801561021357600080fd5b506040516009815260200161015c565b34801561022f57600080fd5b506102386104c6565b005b34801561024657600080fd5b506101aa6102553660046114a5565b6001600160a01b031660009081526002602052604090205490565b34801561027c57600080fd5b50610238610514565b34801561029157600080fd5b50610238610583565b3480156102a657600080fd5b506101aa60155481565b3480156102bc57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161015c565b3480156102ee57600080fd5b506040805180820190915260068152654d454c4f445960d01b602082015261014f565b34801561031d57600080fd5b506006546102ca906001600160a01b031681565b34801561033d57600080fd5b5061018561034c366004611438565b6105b5565b34801561035d57600080fd5b5061023861036c3660046114c2565b6105c2565b34801561037d57600080fd5b5061023861060d565b34801561039257600080fd5b506101aa6103a13660046114db565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61023861065c565b60006103e133848461082e565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926104579290916104519190610952565b90610952565b905090565b600061046984848461095e565b6104bb84336104b68560405180606001604052806028815260200161167c602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610d9a565b61082e565b5060015b9392505050565b6000546001600160a01b031633146104f95760405162461bcd60e51b81526004016104f090611514565b60405180910390fd5b3060009081526002602052604090205461051290610dc6565b565b6000546001600160a01b0316331461053e5760405162461bcd60e51b81526004016104f090611514565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146105ad5760405162461bcd60e51b81526004016104f090611514565b600154601555565b60006103e133848461095e565b6000546001600160a01b031633146105ec5760405162461bcd60e51b81526004016104f090611514565b60118190556010819055600d8190556101f481111561060a57600080fd5b50565b6000546001600160a01b031633146106375760405162461bcd60e51b81526004016104f090611514565b6006805460ff60a01b1916600160a01b1790556105dc60118190556010819055600d55565b6000546001600160a01b031633146106865760405162461bcd60e51b81526004016104f090611514565b600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fd9190611534565b6001600160a01b031663c9c6539630600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107839190611534565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f49190611534565b600680546001600160a01b0319166001600160a01b0392909216919091179055306000908152600260205260409020546105129034610f4f565b6001600160a01b0383166108905760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f0565b6001600160a01b0382166108f15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f0565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104bf8284611567565b6001600160a01b0383166109c25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f0565b6001600160a01b038216610a245760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f0565b6001600160a01b03831660009081526004602052604090205460ff16158015610a6657506001600160a01b03821660009081526004602052604090205460ff16155b15610ab557600654600160a01b900460ff16610ab55760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016104f0565b6001600160a01b03831660009081526004602052604090205460ff168015610aea57506006546001600160a01b038381169116145b8015610aff57506001600160a01b0383163014155b15610b36576001600160a01b03821660009081526002602052604081208054839290610b2c90849061157a565b9091555050505050565b6001600160a01b03831660009081526004602052604090205460ff16158015610b7857506001600160a01b03821660009081526004602052604090205460ff16155b8015610b9257506006546001600160a01b03838116911614155b8015610ba957506001600160a01b03821661dead14155b15610c22576015546001600160a01b038316600090815260026020526040902054610bd49083611006565b1115610c225760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016104f0565b6006546001600160a01b038381169116148015610c5857506001600160a01b03831660009081526004602052604090205460ff16155b15610c7657600160076000828254610c70919061157a565b90915550505b610c81838383611012565b15610cb45730600090815260026020526040902054600a548110610ca45750600a545b610cad81610dc6565b5060006007555b6001600160a01b038316600090815260026020526040902054610cd79082610952565b6001600160a01b038416600090815260026020526040812091909155610cfd84846110cb565b610d075781610d12565b610d12848484611111565b6001600160a01b038416600090815260026020526040902054909150610d389082611006565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d8c9085815260200190565b60405180910390a350505050565b60008184841115610dbe5760405162461bcd60e51b81526004016104f091906113d5565b505050900390565b6008805460ff19166001908117909155600e54600d54600c54600093610e0693600293610e00939192610dfa928391611006565b90611006565b90611218565b90506000610e2982610e23600c548661121890919063ffffffff16565b90611224565b90506000610e378483610952565b905047610e4382611230565b6000610e4f4783610952565b90506000610e72610e6b600c548861095290919063ffffffff16565b8390611224565b90506000610e8b600c548361121890919063ffffffff16565b90508015610e9d57610e9d8682610f4f565b600d54600090610eb290610e00856002611218565b90508015610ef6576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ef4573d6000803e3d6000fd5b505b478015610f39576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f37573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b600554610f679030906001600160a01b03168461082e565b6005546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610fda573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fff919061158d565b5050505050565b60006104bf828461157a565b600b5430600090815260026020526040812054600854919280851015929110159060ff1615801561104c5750600654600160a81b900460ff165b80156110615750600654600160a01b900460ff165b801561106a5750815b801561108f57506001600160a01b03861660009081526004602052604090205460ff16155b80156110a857506006546001600160a01b038681169116145b80156110b8575060095460075410155b80156110c15750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156104bf5750506001600160a01b031660009081526004602052604090205460ff1615919050565b60008061111e858561138a565b1115611211576000611141611133868661138a565b601354610e00908690611224565b3060009081526002602052604090205490915061115e9082611006565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111af9085815260200190565b60405180910390a36000600f541180156111d35750600f546111d1868661138a565b115b156111ff576111ff3061dead6111fa600f54610e006013548961122490919063ffffffff16565b61095e565b6112098382610952565b9150506104bf565b5092915050565b60006104bf82846115bb565b60006104bf82846115d2565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611265576112656115f4565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e29190611534565b816001815181106112f5576112f56115f4565b6001600160a01b03928316602091820292909201015260055461131b913091168461082e565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac9479061135490859060009086903090429060040161160a565b600060405180830381600087803b15801561136e57600080fd5b505af1158015611382573d6000803e3d6000fd5b505050505050565b6006546000906001600160a01b03908116908316036113ac57506011546103e5565b6006546001600160a01b03908116908416036113cb57506010546103e5565b5060125492915050565b600060208083528351808285015260005b81811015611402578581018301518582016040015282016113e6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461060a57600080fd5b6000806040838503121561144b57600080fd5b823561145681611423565b946020939093013593505050565b60008060006060848603121561147957600080fd5b833561148481611423565b9250602084013561149481611423565b929592945050506040919091013590565b6000602082840312156114b757600080fd5b81356104bf81611423565b6000602082840312156114d457600080fd5b5035919050565b600080604083850312156114ee57600080fd5b82356114f981611423565b9150602083013561150981611423565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561154657600080fd5b81516104bf81611423565b634e487b7160e01b600052601160045260246000fd5b818103818111156103e5576103e5611551565b808201808211156103e5576103e5611551565b6000806000606084860312156115a257600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176103e5576103e5611551565b6000826115ef57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561165a5784516001600160a01b031683529383019391830191600101611635565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d6d11201e18ed2a08d9bfbb0285b4dcada027746e7d6bff29de842472df19dbd64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb14610331578063aac3751d14610351578063c9567bf914610371578063dd62ed3e14610386578063e8078d94146103cc57600080fd5b8063751039fc146102855780638735eb9c1461029a578063893d20e8146102b057806395d89b41146102e2578063a8aa1b311461031157600080fd5b80632f54bf6e116100e75780632f54bf6e146101d8578063313ce5671461020757806351bc3c851461022357806370a082311461023a578063715018a61461027057600080fd5b806306fdde0314610124578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b857600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b506040805180820190915260068152654d656c6f647960d01b60208201525b60405161015c91906113d5565b60405180910390f35b34801561017157600080fd5b50610185610180366004611438565b6103d4565b604051901515815260200161015c565b3480156101a157600080fd5b506101aa6103eb565b60405190815260200161015c565b3480156101c457600080fd5b506101856101d3366004611464565b61045c565b3480156101e457600080fd5b506101856101f33660046114a5565b6000546001600160a01b0391821691161490565b34801561021357600080fd5b506040516009815260200161015c565b34801561022f57600080fd5b506102386104c6565b005b34801561024657600080fd5b506101aa6102553660046114a5565b6001600160a01b031660009081526002602052604090205490565b34801561027c57600080fd5b50610238610514565b34801561029157600080fd5b50610238610583565b3480156102a657600080fd5b506101aa60155481565b3480156102bc57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161015c565b3480156102ee57600080fd5b506040805180820190915260068152654d454c4f445960d01b602082015261014f565b34801561031d57600080fd5b506006546102ca906001600160a01b031681565b34801561033d57600080fd5b5061018561034c366004611438565b6105b5565b34801561035d57600080fd5b5061023861036c3660046114c2565b6105c2565b34801561037d57600080fd5b5061023861060d565b34801561039257600080fd5b506101aa6103a13660046114db565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61023861065c565b60006103e133848461082e565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926104579290916104519190610952565b90610952565b905090565b600061046984848461095e565b6104bb84336104b68560405180606001604052806028815260200161167c602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610d9a565b61082e565b5060015b9392505050565b6000546001600160a01b031633146104f95760405162461bcd60e51b81526004016104f090611514565b60405180910390fd5b3060009081526002602052604090205461051290610dc6565b565b6000546001600160a01b0316331461053e5760405162461bcd60e51b81526004016104f090611514565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146105ad5760405162461bcd60e51b81526004016104f090611514565b600154601555565b60006103e133848461095e565b6000546001600160a01b031633146105ec5760405162461bcd60e51b81526004016104f090611514565b60118190556010819055600d8190556101f481111561060a57600080fd5b50565b6000546001600160a01b031633146106375760405162461bcd60e51b81526004016104f090611514565b6006805460ff60a01b1916600160a01b1790556105dc60118190556010819055600d55565b6000546001600160a01b031633146106865760405162461bcd60e51b81526004016104f090611514565b600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fd9190611534565b6001600160a01b031663c9c6539630600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107839190611534565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f49190611534565b600680546001600160a01b0319166001600160a01b0392909216919091179055306000908152600260205260409020546105129034610f4f565b6001600160a01b0383166108905760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f0565b6001600160a01b0382166108f15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f0565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104bf8284611567565b6001600160a01b0383166109c25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f0565b6001600160a01b038216610a245760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f0565b6001600160a01b03831660009081526004602052604090205460ff16158015610a6657506001600160a01b03821660009081526004602052604090205460ff16155b15610ab557600654600160a01b900460ff16610ab55760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016104f0565b6001600160a01b03831660009081526004602052604090205460ff168015610aea57506006546001600160a01b038381169116145b8015610aff57506001600160a01b0383163014155b15610b36576001600160a01b03821660009081526002602052604081208054839290610b2c90849061157a565b9091555050505050565b6001600160a01b03831660009081526004602052604090205460ff16158015610b7857506001600160a01b03821660009081526004602052604090205460ff16155b8015610b9257506006546001600160a01b03838116911614155b8015610ba957506001600160a01b03821661dead14155b15610c22576015546001600160a01b038316600090815260026020526040902054610bd49083611006565b1115610c225760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016104f0565b6006546001600160a01b038381169116148015610c5857506001600160a01b03831660009081526004602052604090205460ff16155b15610c7657600160076000828254610c70919061157a565b90915550505b610c81838383611012565b15610cb45730600090815260026020526040902054600a548110610ca45750600a545b610cad81610dc6565b5060006007555b6001600160a01b038316600090815260026020526040902054610cd79082610952565b6001600160a01b038416600090815260026020526040812091909155610cfd84846110cb565b610d075781610d12565b610d12848484611111565b6001600160a01b038416600090815260026020526040902054909150610d389082611006565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d8c9085815260200190565b60405180910390a350505050565b60008184841115610dbe5760405162461bcd60e51b81526004016104f091906113d5565b505050900390565b6008805460ff19166001908117909155600e54600d54600c54600093610e0693600293610e00939192610dfa928391611006565b90611006565b90611218565b90506000610e2982610e23600c548661121890919063ffffffff16565b90611224565b90506000610e378483610952565b905047610e4382611230565b6000610e4f4783610952565b90506000610e72610e6b600c548861095290919063ffffffff16565b8390611224565b90506000610e8b600c548361121890919063ffffffff16565b90508015610e9d57610e9d8682610f4f565b600d54600090610eb290610e00856002611218565b90508015610ef6576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ef4573d6000803e3d6000fd5b505b478015610f39576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f37573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b600554610f679030906001600160a01b03168461082e565b6005546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610fda573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fff919061158d565b5050505050565b60006104bf828461157a565b600b5430600090815260026020526040812054600854919280851015929110159060ff1615801561104c5750600654600160a81b900460ff165b80156110615750600654600160a01b900460ff165b801561106a5750815b801561108f57506001600160a01b03861660009081526004602052604090205460ff16155b80156110a857506006546001600160a01b038681169116145b80156110b8575060095460075410155b80156110c15750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156104bf5750506001600160a01b031660009081526004602052604090205460ff1615919050565b60008061111e858561138a565b1115611211576000611141611133868661138a565b601354610e00908690611224565b3060009081526002602052604090205490915061115e9082611006565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111af9085815260200190565b60405180910390a36000600f541180156111d35750600f546111d1868661138a565b115b156111ff576111ff3061dead6111fa600f54610e006013548961122490919063ffffffff16565b61095e565b6112098382610952565b9150506104bf565b5092915050565b60006104bf82846115bb565b60006104bf82846115d2565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611265576112656115f4565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e29190611534565b816001815181106112f5576112f56115f4565b6001600160a01b03928316602091820292909201015260055461131b913091168461082e565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac9479061135490859060009086903090429060040161160a565b600060405180830381600087803b15801561136e57600080fd5b505af1158015611382573d6000803e3d6000fd5b505050505050565b6006546000906001600160a01b03908116908316036113ac57506011546103e5565b6006546001600160a01b03908116908416036113cb57506010546103e5565b5060125492915050565b600060208083528351808285015260005b81811015611402578581018301518582016040015282016113e6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461060a57600080fd5b6000806040838503121561144b57600080fd5b823561145681611423565b946020939093013593505050565b60008060006060848603121561147957600080fd5b833561148481611423565b9250602084013561149481611423565b929592945050506040919091013590565b6000602082840312156114b757600080fd5b81356104bf81611423565b6000602082840312156114d457600080fd5b5035919050565b600080604083850312156114ee57600080fd5b82356114f981611423565b9150602083013561150981611423565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561154657600080fd5b81516104bf81611423565b634e487b7160e01b600052601160045260246000fd5b818103818111156103e5576103e5611551565b808201808211156103e5576103e5611551565b6000806000606084860312156115a257600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176103e5576103e5611551565b6000826115ef57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561165a5784516001600160a01b031683529383019391830191600101611635565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d6d11201e18ed2a08d9bfbb0285b4dcada027746e7d6bff29de842472df19dbd64736f6c63430008130033

Deployed Bytecode Sourcemap

4765:8876:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6608:67;;;;;;;;;;-1:-1:-1;6668:5:0;;;;;;;;;;;;-1:-1:-1;;;6668:5:0;;;;6608:67;;;;;;;:::i;:::-;;;;;;;;7421:133;;;;;;;;;;-1:-1:-1;7421:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7421:133:0;1023:187:1;7560:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;7560:132:0;1215:177:1;12986:309:0;;;;;;;;;;-1:-1:-1;12986:309:0;;;;;:::i;:::-;;:::i;3655:87::-;;;;;;;;;;-1:-1:-1;3655:87:0;;;;;:::i;:::-;3710:4;3735:5;-1:-1:-1;;;;;3724:16:0;;;3735:5;;3724:16;;3655:87;6758:67;;;;;;;;;;-1:-1:-1;6758:67:0;;4971:1;2252:36:1;;2240:2;2225:18;6758:67:0;2110:184:1;8620:100:0;;;;;;;;;;;;;:::i;:::-;;7034:103;;;;;;;;;;-1:-1:-1;7034:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7117:18:0;7100:7;7117:18;;;:9;:18;;;;;;;7034:103;3748:133;;;;;;;;;;;;;:::i;8333:94::-;;;;;;;;;;;;;:::i;6120:65::-;;;;;;;;;;;;;;;;6950:78;;;;;;;;;;-1:-1:-1;7002:7:0;7020:5;-1:-1:-1;;;;;7020:5:0;6950:78;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;6950:78:0;2299:203:1;6681:71:0;;;;;;;;;;-1:-1:-1;6743:7:0;;;;;;;;;;;;-1:-1:-1;;;6743:7:0;;;;6681:71;;5245:19;;;;;;;;;;-1:-1:-1;5245:19:0;;;;-1:-1:-1;;;;;5245:19:0;;;7143:139;;;;;;;;;;-1:-1:-1;7143:139:0;;;;;:::i;:::-;;:::i;8435:177::-;;;;;;;;;;-1:-1:-1;8435:177:0;;;;;:::i;:::-;;:::i;6831:113::-;;;;;;;;;;;;;:::i;7288:127::-;;;;;;;;;;-1:-1:-1;7288:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7386:18:0;;;7369:7;7386:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7288:127;7700:204;;;:::i;7421:133::-;7496:4;7503:37;7512:10;7524:7;7533:6;7503:8;:37::i;:::-;-1:-1:-1;7548:4:0;7421:133;;;;;:::o;7560:132::-;7117:9;:18;;;;5984:42;7613:7;7117:18;;;;;7630:12;;7613:7;;7630:60;;7117:18;;7630:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;7623:67;;7560:132;:::o;12986:309::-;13084:4;13101:36;13111:6;13119:9;13130:6;13101:9;:36::i;:::-;13148:117;13157:6;13165:10;13177:87;13213:6;13177:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13177:19:0;;;;;;:11;:19;;;;;;;;13197:10;13177:31;;;;;;;;;:87;:35;:87::i;:::-;13148:8;:117::i;:::-;-1:-1:-1;13283:4:0;12986:309;;;;;;:::o;8620:100::-;3710:4;3735:5;-1:-1:-1;;;;;3735:5:0;3622:10;3724:16;3606:38;;;;-1:-1:-1;;;3606:38:0;;;;;;;:::i;:::-;;;;;;;;;8705:4:::1;8687:24;::::0;;;:9:::1;:24;::::0;;;;;8672:40:::1;::::0;:14:::1;:40::i;:::-;8620:100::o:0;3748:133::-;3710:4;3735:5;-1:-1:-1;;;;;3735:5:0;3622:10;3724:16;3606:38;;;;-1:-1:-1;;;3606:38:0;;;;;;;:::i;:::-;3822:1:::1;3806:18:::0;;-1:-1:-1;;;;;;3806:18:0::1;::::0;;3841:32:::1;::::0;2445:51:1;;;3841:32:0::1;::::0;2433:2:1;2418:18;3841:32:0::1;;;;;;;3748:133::o:0;8333:94::-;3710:4;3735:5;-1:-1:-1;;;;;3735:5:0;3622:10;3724:16;3606:38;;;;-1:-1:-1;;;3606:38:0;;;;;;;:::i;:::-;8407:12:::1;::::0;8387:17:::1;:32:::0;8333:94::o;7143:139::-;7221:4;7228:40;7238:10;7250:9;7261:6;7228:9;:40::i;8435:177::-;3710:4;3735:5;-1:-1:-1;;;;;3735:5:0;3622:10;3724:16;3606:38;;;;-1:-1:-1;;;3606:38:0;;;;;;;:::i;:::-;8499:10:::1;:17:::0;;;8527:9:::1;:16:::0;;;8554:12:::1;:19:::0;;;8600:3:::1;8592:11:::0;::::1;;8584:20;;;::::0;::::1;;8435:177:::0;:::o;6831:113::-;3710:4;3735:5;-1:-1:-1;;;;;3735:5:0;3622:10;3724:16;3606:38;;;;-1:-1:-1;;;3606:38:0;;;;;;;:::i;:::-;6874:14:::1;:19:::0;;-1:-1:-1;;;;6874:19:0::1;-1:-1:-1::0;;;6874:19:0::1;::::0;;6905:4:::1;6894:10;:15:::0;;;6910:9:::1;:14:::0;;;6925:12:::1;:17:::0;6831:113::o;7700:204::-;3710:4;3735:5;-1:-1:-1;;;;;3735:5:0;3622:10;3724:16;3606:38;;;;-1:-1:-1;;;3606:38:0;;;;;;;:::i;:::-;7778:6:::1;;;;;;;;;-1:-1:-1::0;;;;;7778:6:0::1;-1:-1:-1::0;;;;;7778:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7769:37:0::1;;7815:4;7822:6;;;;;;;;;-1:-1:-1::0;;;;;7822:6:0::1;-1:-1:-1::0;;;;;7822:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7769:67;::::0;-1:-1:-1;;;;;;7769:67:0::1;::::0;;;;;;-1:-1:-1;;;;;3905:15:1;;;7769:67:0::1;::::0;::::1;3887:34:1::0;3957:15;;3937:18;;;3930:43;3822:18;;7769:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7762:4;:74:::0;;-1:-1:-1;;;;;;7762:74:0::1;-1:-1:-1::0;;;;;7762:74:0;;;::::1;::::0;;;::::1;::::0;;7878:4:::1;-1:-1:-1::0;7860:24:0;;;:9:::1;:24;::::0;;;;;7847:49:::1;::::0;7886:9:::1;7847:12;:49::i;13303:335::-:0;-1:-1:-1;;;;;13396:19:0;;13388:68;;;;-1:-1:-1;;;13388:68:0;;4186:2:1;13388:68:0;;;4168:21:1;4225:2;4205:18;;;4198:30;4264:34;4244:18;;;4237:62;-1:-1:-1;;;4315:18:1;;;4308:34;4359:19;;13388:68:0;3984:400:1;13388:68:0;-1:-1:-1;;;;;13475:21:0;;13467:68;;;;-1:-1:-1;;;13467:68:0;;4591:2:1;13467:68:0;;;4573:21:1;4630:2;4610:18;;;4603:30;4669:34;4649:18;;;4642:62;-1:-1:-1;;;4720:18:1;;;4713:32;4762:19;;13467:68:0;4389:398:1;13467:68:0;-1:-1:-1;;;;;13546:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13598:32;;1361:25:1;;;13598:32:0;;1334:18:1;13598:32:0;;;;;;;13303:335;;;:::o;1394:98::-;1452:7;1479:5;1483:1;1479;:5;:::i;11576:1402::-;-1:-1:-1;;;;;11673:20:0;;11665:70;;;;-1:-1:-1;;;11665:70:0;;5259:2:1;11665:70:0;;;5241:21:1;5298:2;5278:18;;;5271:30;5337:34;5317:18;;;5310:62;-1:-1:-1;;;5388:18:1;;;5381:35;5433:19;;11665:70:0;5057:401:1;11665:70:0;-1:-1:-1;;;;;11754:23:0;;11746:71;;;;-1:-1:-1;;;11746:71:0;;5665:2:1;11746:71:0;;;5647:21:1;5704:2;5684:18;;;5677:30;5743:34;5723:18;;;5716:62;-1:-1:-1;;;5794:18:1;;;5787:33;5837:19;;11746:71:0;5463:399:1;11746:71:0;-1:-1:-1;;;;;11832:24:0;;;;;;:16;:24;;;;;;;;11831:25;:57;;;;-1:-1:-1;;;;;;11861:27:0;;;;;;:16;:27;;;;;;;;11860:28;11831:57;11828:105;;;11898:14;;-1:-1:-1;;;11898:14:0;;;;11890:41;;;;-1:-1:-1;;;11890:41:0;;6069:2:1;11890:41:0;;;6051:21:1;6108:2;6088:18;;;6081:30;-1:-1:-1;;;6127:18:1;;;6120:44;6181:18;;11890:41:0;5867:338:1;11890:41:0;-1:-1:-1;;;;;11946:24:0;;;;;;:16;:24;;;;;;;;:45;;;;-1:-1:-1;11987:4:0;;-1:-1:-1;;;;;11974:17:0;;;11987:4;;11974:17;11946:45;:72;;;;-1:-1:-1;;;;;;11995:23:0;;12013:4;11995:23;;11946:72;11943:114;;;-1:-1:-1;;;;;12020:20:0;;;;;;:9;:20;;;;;:28;;12042:6;;12020:20;:28;;12042:6;;12020:28;:::i;:::-;;;;-1:-1:-1;;;;;11576:1402:0:o;11943:114::-;-1:-1:-1;;;;;12071:24:0;;;;;;:16;:24;;;;;;;;12070:25;:57;;;;-1:-1:-1;;;;;;12100:27:0;;;;;;:16;:27;;;;;;;;12099:28;12070:57;:87;;;;-1:-1:-1;12152:4:0;;-1:-1:-1;;;;;12131:26:0;;;12152:4;;12131:26;;12070:87;:117;;;;-1:-1:-1;;;;;;12161:26:0;;5984:42;12161:26;;12070:117;12067:232;;;12245:17;;-1:-1:-1;;;;;12208:20:0;;;;;;:9;:20;;;;;;:32;;12233:6;12208:24;:32::i;:::-;12207:55;;12199:98;;;;-1:-1:-1;;;12199:98:0;;6542:2:1;12199:98:0;;;6524:21:1;6581:2;6561:18;;;6554:30;6620:32;6600:18;;;6593:60;6670:18;;12199:98:0;6340:354:1;12199:98:0;12325:4;;-1:-1:-1;;;;;12312:17:0;;;12325:4;;12312:17;:46;;;;-1:-1:-1;;;;;;12334:24:0;;;;;;:16;:24;;;;;;;;12333:25;12312:46;12309:76;;;12381:1;12360:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;12309:76:0;12398:45;12417:6;12425:9;12436:6;12398:18;:45::i;:::-;12395:269;;;12500:4;12459:20;12482:24;;;:9;:24;;;;;;12540:14;;12524:30;;12521:64;;-1:-1:-1;12571:14:0;;12521:64;12600:28;12615:12;12600:14;:28::i;:::-;-1:-1:-1;12650:1:0;12630:9;:22;12395:269;-1:-1:-1;;;;;12694:17:0;;;;;;:9;:17;;;;;;:29;;12716:6;12694:21;:29::i;:::-;-1:-1:-1;;;;;12674:17:0;;;;;;:9;:17;;;;;:49;;;;12759:32;12684:6;12781:9;12759:13;:32::i;:::-;:78;;12831:6;12759:78;;;12794:34;12802:6;12810:9;12821:6;12794:7;:34::i;:::-;-1:-1:-1;;;;;12871:20:0;;;;;;:9;:20;;;;;;12734:103;;-1:-1:-1;12871:40:0;;12734:103;12871:24;:40::i;:::-;-1:-1:-1;;;;;12848:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12927:43;;;;;;;;;;12955:14;1361:25:1;;1349:2;1334:18;;1215:177;12927:43:0;;;;;;;;11654:1324;11576:1402;;;:::o;1818:240::-;1938:7;1999:12;1991:6;;;;1983:29;;;;-1:-1:-1;;;1983:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2034:5:0;;;1818:240::o;8728:1061::-;5601:8;:15;;-1:-1:-1;;5601:15:0;5612:4;5601:15;;;;;;8865:14:::1;::::0;8847:12:::1;::::0;8823::::1;::::0;5601:8;;8822:66:::1;::::0;8886:1:::1;::::0;8823:57:::1;::::0;8865:14;;8823:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;:57::-;8822:63:::0;::::1;:66::i;:::-;8799:89;;8899:32;8934:42;8963:12;8934:24;8945:12;;8934:6;:10;;:24;;;;:::i;:::-;:28:::0;::::1;:42::i;:::-;8899:77:::0;-1:-1:-1;8987:14:0::1;9004:36;:6:::0;8899:77;9004:10:::1;:36::i;:::-;8987:53:::0;-1:-1:-1;9076:21:0::1;9108:24;8987:53:::0;9108:16:::1;:24::i;:::-;9143:20;9166:41;:21;9192:14:::0;9166:25:::1;:41::i;:::-;9143:64;;9218:19;9239:48;9256:30;9273:12;;9256;:16;;:30;;;;:::i;:::-;9239:12:::0;;:16:::1;:48::i;:::-;9218:69;;9298:29;9330;9346:12;;9330:11;:15;;:29;;;;:::i;:::-;9298:61:::0;-1:-1:-1;9373:34:0;;9370:103:::1;;9409:61;9422:24;9448:21;9409:12;:61::i;:::-;9529:12;::::0;9483:20:::1;::::0;9506:36:::1;::::0;:18:::1;:11:::0;9522:1:::1;9506:15;:18::i;:36::-;9483:59:::0;-1:-1:-1;9556:16:0;;9553:73:::1;;9582:18;::::0;9574:50:::1;::::0;-1:-1:-1;;;;;9582:18:0;;::::1;::::0;9574:50;::::1;;;::::0;9611:12;;9582:18:::1;9574:50:::0;9582:18;9574:50;9611:12;9582:18;9574:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9553:73;9662:21;9697:28:::0;;9694:88:::1;;9735:18;::::0;9727:53:::1;::::0;-1:-1:-1;;;;;9735:18:0;;::::1;::::0;9727:53;::::1;;;::::0;9764:15;;9735:18:::1;9727:53:::0;9735:18;9727:53;9764:15;9735:18;9727:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9694:88;-1:-1:-1::0;;5621:8:0;:16;;-1:-1:-1;;5621:16:0;;;-1:-1:-1;;;;;;;;8728:1061:0:o;9797:330::-;9910:6;;9878:53;;9895:4;;-1:-1:-1;;;;;9910:6:0;9919:11;9878:8;:53::i;:::-;9942:6;;;10083:5;;9942:177;;-1:-1:-1;;;9942:177:0;;10005:4;9942:177;;;7040:34:1;7090:18;;;7083:34;;;7133:18;;;7126:34;;;7176:18;;;7169:34;;;;-1:-1:-1;;;;;10083:5:0;;;7219:19:1;;;7212:44;10103:15:0;7272:19:1;;;7265:35;9942:6:0;;;;:22;;9972:9;;6974:19:1;;9942:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9797:330;;:::o;1288:98::-;1346:7;1373:5;1377:1;1373;:5;:::i;7912:413::-;8057:16;;8124:4;8014;7117:18;;;:9;:18;;;;;;8169:8;;8014:4;;8047:26;;;;;-1:-1:-1;;8106:44:0;;8169:8;;8168:9;:24;;;;-1:-1:-1;8181:11:0;;-1:-1:-1;;;8181:11:0;;;;8168:24;:42;;;;-1:-1:-1;8196:14:0;;-1:-1:-1;;;8196:14:0;;;;8168:42;:54;;;;;8214:8;8168:54;:83;;;;-1:-1:-1;;;;;;8227:24:0;;;;;;:16;:24;;;;;;;;8226:25;8168:83;:104;;;;-1:-1:-1;8268:4:0;;-1:-1:-1;;;;;8255:17:0;;;8268:4;;8255:17;8168:104;:131;;;;;8289:10;;8276:9;;:23;;8168:131;:149;;;;;8303:14;8168:149;8161:156;7912:413;-1:-1:-1;;;;;;7912:413:0:o;10577:170::-;-1:-1:-1;;;;;10683:24:0;;10658:4;10683:24;;;:16;:24;;;;;;;;10682:25;:57;;;;-1:-1:-1;;;;;;;10712:27:0;;;;;:16;:27;;;;;;;;10711:28;;10577:170;-1:-1:-1;10577:170:0:o;10984:584::-;11070:7;11124:1;11093:28;11103:6;11111:9;11093;:28::i;:::-;:32;11090:456;;;11137:17;11157:57;11185:28;11195:6;11203:9;11185;:28::i;:::-;11168:11;;11157:23;;:6;;:10;:23::i;:57::-;11270:4;11252:24;;;;:9;:24;;;;;;11137:77;;-1:-1:-1;11252:39:0;;11137:77;11252:28;:39::i;:::-;11243:4;11225:24;;;;:9;:24;;;;;;;:66;;;;11307:42;;-1:-1:-1;;;;;11307:42:0;;;;;;;11339:9;1361:25:1;;1349:2;1334:18;;1215:177;11307:42:0;;;;;;;;11381:1;11363:7;;:20;:62;;;;;11418:7;;11387:28;11397:6;11405:9;11387;:28::i;:::-;:38;11363:62;11360:146;;;11427:77;11445:4;5984:42;11467:36;11495:7;;11467:23;11478:11;;11467:6;:10;;:23;;;;:::i;:36::-;11427:9;:77::i;:::-;11523:21;:6;11534:9;11523:10;:21::i;:::-;11516:28;;;;;11090:456;-1:-1:-1;11554:6:0;10984:584;-1:-1:-1;;10984:584:0:o;1500:98::-;1558:7;1585:5;1589:1;1585;:5;:::i;1606:98::-;1664:7;1691:5;1695:1;1691;:5;:::i;10135:434::-;10225:16;;;10239:1;10225:16;;;;;;;;10201:21;;10225:16;;;;;;;;;;-1:-1:-1;10225:16:0;10201:40;;10270:4;10252;10257:1;10252:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10252:23:0;;;:7;;;;;;;;;;:23;;;;10296:6;;:13;;;-1:-1:-1;;;10296:13:0;;;;:6;;;;;:11;;:13;;;;;10252:7;;10296:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10286:4;10291:1;10286:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10286:23:0;;;:7;;;;;;;;;:23;10352:6;;10320:53;;10337:4;;10352:6;10361:11;10320:8;:53::i;:::-;10384:6;;:177;;-1:-1:-1;;;10384:177:0;;-1:-1:-1;;;;;10384:6:0;;;;:57;;:177;;10456:11;;10384:6;;10498:4;;10525;;10545:15;;10384:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10190:379;10135:434;:::o;10755:221::-;10868:4;;10832:7;;-1:-1:-1;;;;;10868:4:0;;;10855:17;;;;10852:41;;-1:-1:-1;10881:10:0;;10874:17;;10852:41;10916:4;;-1:-1:-1;;;;;10916:4:0;;;10906:14;;;;10903:37;;-1:-1:-1;10929:9:0;;10922:16;;10903:37;-1:-1:-1;10957:11:0;;10755:221;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:180::-;2566:6;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;-1:-1:-1;2658:23:1;;2507:180;-1:-1:-1;2507:180:1:o;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3085:329::-;3287:2;3269:21;;;3326:1;3306:18;;;3299:29;-1:-1:-1;;;3359:2:1;3344:18;;3337:36;3405:2;3390:18;;3085:329::o;3419:251::-;3489:6;3542:2;3530:9;3521:7;3517:23;3513:32;3510:52;;;3558:1;3555;3548:12;3510:52;3590:9;3584:16;3609:31;3634:5;3609:31;:::i;4792:127::-;4853:10;4848:3;4844:20;4841:1;4834:31;4884:4;4881:1;4874:15;4908:4;4905:1;4898:15;4924:128;4991:9;;;5012:11;;;5009:37;;;5026:18;;:::i;6210:125::-;6275:9;;;6296:10;;;6293:36;;;6309:18;;:::i;7311:306::-;7399:6;7407;7415;7468:2;7456:9;7447:7;7443:23;7439:32;7436:52;;;7484:1;7481;7474:12;7436:52;7513:9;7507:16;7497:26;;7563:2;7552:9;7548:18;7542:25;7532:35;;7607:2;7596:9;7592:18;7586:25;7576:35;;7311:306;;;;;:::o;7622:168::-;7695:9;;;7726;;7743:15;;;7737:22;;7723:37;7713:71;;7764:18;;:::i;7795:217::-;7835:1;7861;7851:132;;7905:10;7900:3;7896:20;7893:1;7886:31;7940:4;7937:1;7930:15;7968:4;7965:1;7958:15;7851:132;-1:-1:-1;7997:9:1;;7795:217::o;8149:127::-;8210:10;8205:3;8201:20;8198:1;8191:31;8241:4;8238:1;8231:15;8265:4;8262:1;8255:15;8281:980;8543:4;8591:3;8580:9;8576:19;8622:6;8611:9;8604:25;8648:2;8686:6;8681:2;8670:9;8666:18;8659:34;8729:3;8724:2;8713:9;8709:18;8702:31;8753:6;8788;8782:13;8819:6;8811;8804:22;8857:3;8846:9;8842:19;8835:26;;8896:2;8888:6;8884:15;8870:29;;8917:1;8927:195;8941:6;8938:1;8935:13;8927:195;;;9006:13;;-1:-1:-1;;;;;9002:39:1;8990:52;;9097:15;;;;9062:12;;;;9038:1;8956:9;8927:195;;;-1:-1:-1;;;;;;;9178:32:1;;;;9173:2;9158:18;;9151:60;-1:-1:-1;;;9242:3:1;9227:19;9220:35;9139:3;8281:980;-1:-1:-1;;;8281:980:1:o

Swarm Source

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