ETH Price: $2,452.28 (+1.61%)
 

Overview

Max Total Supply

1,111,111 RETARD

Holders

150

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
423.401642045615155736 RETARD

Value
$0.00
0x18Ca9A9bc7C9281b6153D709307CED9c279fF362
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:
RETARDTOKEN

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-23
*/

// SPDX-License-Identifier: UNLICENSED

/*

Website: RetardToken.vip
Twitter: https://x.com/RetardTokenVip
TG: https://t.me/RetardTokenVip

*/

pragma solidity 0.8.21;

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 ERC20 {
    function getOwner() external view returns (address);
    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 Auth {
    address public 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() external onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(owner);
    }
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

contract RETARDTOKEN is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "Retard";
    string public constant symbol = "RETARD";
    uint8 public constant decimals = 18;

    uint256 public constant totalSupply = 1111111 * 10**decimals;

    uint256 public _maxWalletToken = totalSupply;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isWalletLimitExempt;

    uint256 public marketingFee = 85;
    uint256 public cexFee = 15;
    uint256 public totalFee = marketingFee + cexFee;
    uint256 public constant feeDenominator = 1000;
    
    uint256 buyMultiplier = 200;
    uint256 sellMultiplier = 300;
    uint256 transferMultiplier = 0;

    address public marketingFeeReceiver;
    address public cexFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public tradingOpen = false;

    bool public swapEnabled = false;
    uint256 public swapThreshold = totalSupply / 500;
    
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0x34Fb538F85B1aE7f1Cae6b88B69AC64708C51b07;
        cexFeeReceiver = 0x0951c18e0dB908A01C5A3d8A4872a3b4D05345DD;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[marketingFeeReceiver] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent(uint256 _newmaxwallet) external onlyOwner {
        require(_newmaxwallet >= 2,"Cannot set max wallet less than 2%");
        _maxWalletToken = (totalSupply * _newmaxwallet ) / 100;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!isFeeExempt[sender]){
            require(tradingOpen,"trading not open yet");
        }

        if (!isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }

        if(shouldSwapBack()){ swapBack(); }

        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");
        balanceOf[recipient] = balanceOf[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && balanceOf[address(this)] >= swapThreshold;
    }

    function manualSwap() external {
        payable(cexFeeReceiver).transfer(address(this).balance);
    }

    function openTrading() external onlyOwner {
        tradingOpen = true;
        swapEnabled = true;
    }

    function swapBack() internal swapping {

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            swapThreshold,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 amountETHMarketing = (amountETH * marketingFee) / totalFee;
        uint256 amountETHDevelopment = (amountETH * cexFee) / totalFee;

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(cexFeeReceiver).transfer(amountETHDevelopment);
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = totalSupply / _denominator;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }
}

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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cexFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cexFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newmaxwallet","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"}]

60c0604052620000126012600a620004b0565b62000021906210f447620004c7565b60015560556006819055600f60078190556200003d91620004e1565b60085560c860095561012c600a9081555f600b55600e805461ffff60a01b191690556101f4906200007190601290620004b0565b62000080906210f447620004c7565b6200008c9190620004f7565b600f553480156200009b575f80fd5b505f8054336001600160a01b031991821617909155600e8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000109573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200012f919062000517565b6001600160a01b03908116608052600e546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200017e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a4919062000517565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015620001f3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000219919062000517565b6001600160a01b0390811660a052305f818152600360209081526040808320600e548616845282528083205f199055600c80546001600160a01b03199081167334fb538f85b1ae7f1cae6b88b69ac64708c51b07178255600d8054909116730951c18e0db908a01c5a3d8a4872a3b4d05345dd1790553380855260048452828520805460ff199081166001908117909255835489168752848720805482168317905591865260059094528285208054821685179055905490951683528083208054861683179055928252918120805484168317905561dead90527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba80549092161790556200032a6012600a620004b0565b62000339906210f447620004c7565b335f81815260026020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200037b6012600a620004b0565b6200038a906210f447620004c7565b60405190815260200160405180910390a36200053f565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003f557815f1904821115620003d957620003d9620003a1565b80851615620003e757918102915b93841c9390800290620003ba565b509250929050565b5f826200040d57506001620004aa565b816200041b57505f620004aa565b81600181146200043457600281146200043f576200045f565b6001915050620004aa565b60ff841115620004535762000453620003a1565b50506001821b620004aa565b5060208310610133831016604e8410600b841016171562000484575081810a620004aa565b620004908383620003b5565b805f1904821115620004a657620004a6620003a1565b0290505b92915050565b5f620004c060ff841683620003fd565b9392505050565b8082028115828204841417620004aa57620004aa620003a1565b80820180821115620004aa57620004aa620003a1565b5f826200051257634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000528575f80fd5b81516001600160a01b0381168114620004c0575f80fd5b60805160a0516117776200057d5f395f818161054a01528181610bcf01528181610ebe01528181611111015261114501525f610f8501526117775ff3fe6080604052600436106101f4575f3560e01c806370a0823111610108578063a8aa1b311161009d578063dd62ed3e1161006d578063dd62ed3e146105cd578063df20fd4914610611578063e96fada214610630578063f887ea401461064f578063ffb54a991461066e575f80fd5b8063a8aa1b3114610539578063a9059cbb1461056c578063c867d60b1461058b578063c9567bf9146105b9575f80fd5b8063893d20e8116100d8578063893d20e8146104b95780638da5cb5b146104d557806395d89b41146104f35780639e33881f14610524575f80fd5b806370a0823114610446578063715018a61461047157806378109e541461048557806382bf293c1461049a575f80fd5b80632b112e491161018957806351bc3c851161015957806351bc3c85146103bd578063571ac8b0146103d35780636b67c4df146103f25780636ce46bc3146104075780636ddd171314610426575f80fd5b80632b112e49146103285780632f54bf6e1461033c578063313ce567146103695780633f4218e01461038f575f80fd5b806318160ddd116101c457806318160ddd146102a95780631df4ccfc146102bd57806323b872dd146102d257806325b369a7146102f1575f80fd5b80630445b667146101ff57806306fdde0314610227578063095ea7b314610265578063180b0d7e14610294575f80fd5b366101fb57005b5f80fd5b34801561020a575f80fd5b50610214600f5481565b6040519081526020015b60405180910390f35b348015610232575f80fd5b506102586040518060400160405280600681526020016514995d185c9960d21b81525081565b60405161021e91906113cf565b348015610270575f80fd5b5061028461027f366004611435565b61068e565b604051901515815260200161021e565b34801561029f575f80fd5b506102146103e881565b3480156102b4575f80fd5b506102146106fa565b3480156102c8575f80fd5b5061021460085481565b3480156102dd575f80fd5b506102846102ec36600461145d565b610716565b3480156102fc575f80fd5b50600d54610310906001600160a01b031681565b6040516001600160a01b03909116815260200161021e565b348015610333575f80fd5b506102146107d4565b348015610347575f80fd5b50610284610356366004611496565b5f546001600160a01b0391821691161490565b348015610374575f80fd5b5061037d601281565b60405160ff909116815260200161021e565b34801561039a575f80fd5b506102846103a9366004611496565b60046020525f908152604090205460ff1681565b3480156103c8575f80fd5b506103d1610859565b005b3480156103de575f80fd5b506102846103ed366004611496565b610892565b3480156103fd575f80fd5b5061021460065481565b348015610412575f80fd5b506103d16104213660046114af565b61089e565b348015610431575f80fd5b50600e5461028490600160a81b900460ff1681565b348015610451575f80fd5b50610214610460366004611496565b60026020525f908152604090205481565b34801561047c575f80fd5b506103d16108e1565b348015610490575f80fd5b5061021460015481565b3480156104a5575f80fd5b506103d16104b43660046114d8565b61094e565b3480156104c4575f80fd5b505f546001600160a01b0316610310565b3480156104e0575f80fd5b505f54610310906001600160a01b031681565b3480156104fe575f80fd5b506102586040518060400160405280600681526020016514915510549160d21b81525081565b34801561052f575f80fd5b5061021460075481565b348015610544575f80fd5b506103107f000000000000000000000000000000000000000000000000000000000000000081565b348015610577575f80fd5b50610284610586366004611435565b610a09565b348015610596575f80fd5b506102846105a5366004611496565b60056020525f908152604090205460ff1681565b3480156105c4575f80fd5b506103d1610a15565b3480156105d8575f80fd5b506102146105e73660046114ef565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b34801561061c575f80fd5b506103d161062b366004611520565b610a55565b34801561063b575f80fd5b50600c54610310906001600160a01b031681565b34801561065a575f80fd5b50600e54610310906001600160a01b031681565b348015610679575f80fd5b50600e5461028490600160a01b900460ff1681565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106e89086815260200190565b60405180910390a35060015b92915050565b6107066012600a611634565b610713906210f447611642565b81565b6001600160a01b0383165f9081526003602090815260408083203384529091528120545f19146107bf576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260038252838120338252909152919091205461079b918490610ac0565b6001600160a01b0385165f9081526003602090815260408083203384529091529020555b6107ca848484610af8565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc549091906108336012600a611634565b610840906210f447611642565b61084a9190611659565b6108549190611659565b905090565b600d546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561088f573d5f803e3d5ffd5b50565b5f6106f4825f1961068e565b5f546001600160a01b031633146108d05760405162461bcd60e51b81526004016108c79061166c565b60405180910390fd5b600a91909155600991909155600b55565b5f546001600160a01b0316331461090a5760405162461bcd60e51b81526004016108c79061166c565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146109775760405162461bcd60e51b81526004016108c79061166c565b60028110156109d35760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261322560f01b60648201526084016108c7565b6064816109e26012600a611634565b6109ef906210f447611642565b6109f99190611642565b610a03919061168c565b60015550565b5f6107cd338484610af8565b5f546001600160a01b03163314610a3e5760405162461bcd60e51b81526004016108c79061166c565b600e805461ffff60a01b191661010160a01b179055565b5f546001600160a01b03163314610a7e5760405162461bcd60e51b81526004016108c79061166c565b600e805460ff60a81b1916600160a81b8415150217905580610aa26012600a611634565b610aaf906210f447611642565b610ab9919061168c565b600f555050565b5f8184841115610ae35760405162461bcd60e51b81526004016108c791906113cf565b505f610aef8486611659565b95945050505050565b6010545f9060ff1615610b1757610b10848484610dcf565b90506107cd565b6001600160a01b0384165f9081526004602052604090205460ff16610b8657600e54600160a01b900460ff16610b865760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108c7565b6001600160a01b0384165f9081526005602052604090205460ff16158015610bc657506001600160a01b0383165f9081526005602052604090205460ff16155b8015610c0457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15610c7d576001546001600160a01b0384165f90815260026020526040902054610c2f9084906116ab565b1115610c7d5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016108c7565b610c85610eb2565b15610c9257610c92610f23565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260029091529190912054610ce3918490610ac0565b6001600160a01b0385165f90815260026020908152604080832093909355600490529081205460ff1680610d2e57506001600160a01b0384165f9081526004602052604090205460ff165b610d4257610d3d8584866110ea565b610d44565b825b6001600160a01b0385165f90815260026020526040902054909150610d699082611245565b6001600160a01b038086165f8181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dbc9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600290915291822054610e1f918490610ac0565b6001600160a01b038086165f908152600260205260408082209390935590851681522054610e4d9083611245565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ea09086815260200190565b60405180910390a35060019392505050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610eef575060105460ff16155b8015610f045750600e54600160a81b900460ff165b8015610854575050600f54305f90815260026020526040902054101590565b6010805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610f6357610f636116be565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610fb757610fb76116be565b6001600160a01b039283166020918202929092010152600e54600f5460405163791ac94760e01b8152919092169163791ac9479161100091905f908690309042906004016116d2565b5f604051808303815f87803b158015611017575f80fd5b505af1158015611029573d5f803e3d5ffd5b50506008546006544793505f92506110419084611642565b61104b919061168c565b90505f6008546007548461105f9190611642565b611069919061168c565b600c546040519192506001600160a01b03169083156108fc029084905f818181858888f193505050501580156110a1573d5f803e3d5ffd5b50600d546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156110d9573d5f803e3d5ffd5b50506010805460ff19169055505050565b5f8215806110f85750600854155b156111045750816107cd565b600b546001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908416036111435750600a54611181565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03160361118157506009545b5f6111b76111926103e86064611642565b6111b1846111ab6008548a6112a390919063ffffffff16565b906112a3565b90611321565b9050801561123157305f908152600260205260409020546111d89082611245565b305f81815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112289085815260200190565b60405180910390a35b61123b8582611362565b9695505050505050565b5f8061125183856116ab565b9050838110156107cd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108c7565b5f825f036112b257505f6106f4565b5f6112bd8385611642565b9050826112ca858361168c565b146107cd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108c7565b5f6107cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113a3565b5f6107cd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ac0565b5f81836113c35760405162461bcd60e51b81526004016108c791906113cf565b505f610aef848661168c565b5f6020808352835180828501525f5b818110156113fa578581018301518582016040015282016113de565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611430575f80fd5b919050565b5f8060408385031215611446575f80fd5b61144f8361141a565b946020939093013593505050565b5f805f6060848603121561146f575f80fd5b6114788461141a565b92506114866020850161141a565b9150604084013590509250925092565b5f602082840312156114a6575f80fd5b6107cd8261141a565b5f805f606084860312156114c1575f80fd5b505081359360208301359350604090920135919050565b5f602082840312156114e8575f80fd5b5035919050565b5f8060408385031215611500575f80fd5b6115098361141a565b91506115176020840161141a565b90509250929050565b5f8060408385031215611531575f80fd5b8235801515811461144f575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561158e57815f190482111561157457611574611540565b8085161561158157918102915b93841c9390800290611559565b509250929050565b5f826115a4575060016106f4565b816115b057505f6106f4565b81600181146115c657600281146115d0576115ec565b60019150506106f4565b60ff8411156115e1576115e1611540565b50506001821b6106f4565b5060208310610133831016604e8410600b841016171561160f575081810a6106f4565b6116198383611554565b805f190482111561162c5761162c611540565b029392505050565b5f6107cd60ff841683611596565b80820281158282048414176106f4576106f4611540565b818103818111156106f4576106f4611540565b60208082526006908201526510a7aba722a960d11b604082015260600190565b5f826116a657634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156106f4576106f4611540565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117205784516001600160a01b0316835293830193918301916001016116fb565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220271864c63bd630ed2eeea7a5a77fc4d81435ef910cb888a459224da7ea3f456364736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101f4575f3560e01c806370a0823111610108578063a8aa1b311161009d578063dd62ed3e1161006d578063dd62ed3e146105cd578063df20fd4914610611578063e96fada214610630578063f887ea401461064f578063ffb54a991461066e575f80fd5b8063a8aa1b3114610539578063a9059cbb1461056c578063c867d60b1461058b578063c9567bf9146105b9575f80fd5b8063893d20e8116100d8578063893d20e8146104b95780638da5cb5b146104d557806395d89b41146104f35780639e33881f14610524575f80fd5b806370a0823114610446578063715018a61461047157806378109e541461048557806382bf293c1461049a575f80fd5b80632b112e491161018957806351bc3c851161015957806351bc3c85146103bd578063571ac8b0146103d35780636b67c4df146103f25780636ce46bc3146104075780636ddd171314610426575f80fd5b80632b112e49146103285780632f54bf6e1461033c578063313ce567146103695780633f4218e01461038f575f80fd5b806318160ddd116101c457806318160ddd146102a95780631df4ccfc146102bd57806323b872dd146102d257806325b369a7146102f1575f80fd5b80630445b667146101ff57806306fdde0314610227578063095ea7b314610265578063180b0d7e14610294575f80fd5b366101fb57005b5f80fd5b34801561020a575f80fd5b50610214600f5481565b6040519081526020015b60405180910390f35b348015610232575f80fd5b506102586040518060400160405280600681526020016514995d185c9960d21b81525081565b60405161021e91906113cf565b348015610270575f80fd5b5061028461027f366004611435565b61068e565b604051901515815260200161021e565b34801561029f575f80fd5b506102146103e881565b3480156102b4575f80fd5b506102146106fa565b3480156102c8575f80fd5b5061021460085481565b3480156102dd575f80fd5b506102846102ec36600461145d565b610716565b3480156102fc575f80fd5b50600d54610310906001600160a01b031681565b6040516001600160a01b03909116815260200161021e565b348015610333575f80fd5b506102146107d4565b348015610347575f80fd5b50610284610356366004611496565b5f546001600160a01b0391821691161490565b348015610374575f80fd5b5061037d601281565b60405160ff909116815260200161021e565b34801561039a575f80fd5b506102846103a9366004611496565b60046020525f908152604090205460ff1681565b3480156103c8575f80fd5b506103d1610859565b005b3480156103de575f80fd5b506102846103ed366004611496565b610892565b3480156103fd575f80fd5b5061021460065481565b348015610412575f80fd5b506103d16104213660046114af565b61089e565b348015610431575f80fd5b50600e5461028490600160a81b900460ff1681565b348015610451575f80fd5b50610214610460366004611496565b60026020525f908152604090205481565b34801561047c575f80fd5b506103d16108e1565b348015610490575f80fd5b5061021460015481565b3480156104a5575f80fd5b506103d16104b43660046114d8565b61094e565b3480156104c4575f80fd5b505f546001600160a01b0316610310565b3480156104e0575f80fd5b505f54610310906001600160a01b031681565b3480156104fe575f80fd5b506102586040518060400160405280600681526020016514915510549160d21b81525081565b34801561052f575f80fd5b5061021460075481565b348015610544575f80fd5b506103107f000000000000000000000000201553286dadc28ad879b0b80e2b0b9874f1683f81565b348015610577575f80fd5b50610284610586366004611435565b610a09565b348015610596575f80fd5b506102846105a5366004611496565b60056020525f908152604090205460ff1681565b3480156105c4575f80fd5b506103d1610a15565b3480156105d8575f80fd5b506102146105e73660046114ef565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b34801561061c575f80fd5b506103d161062b366004611520565b610a55565b34801561063b575f80fd5b50600c54610310906001600160a01b031681565b34801561065a575f80fd5b50600e54610310906001600160a01b031681565b348015610679575f80fd5b50600e5461028490600160a01b900460ff1681565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106e89086815260200190565b60405180910390a35060015b92915050565b6107066012600a611634565b610713906210f447611642565b81565b6001600160a01b0383165f9081526003602090815260408083203384529091528120545f19146107bf576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260038252838120338252909152919091205461079b918490610ac0565b6001600160a01b0385165f9081526003602090815260408083203384529091529020555b6107ca848484610af8565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc549091906108336012600a611634565b610840906210f447611642565b61084a9190611659565b6108549190611659565b905090565b600d546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561088f573d5f803e3d5ffd5b50565b5f6106f4825f1961068e565b5f546001600160a01b031633146108d05760405162461bcd60e51b81526004016108c79061166c565b60405180910390fd5b600a91909155600991909155600b55565b5f546001600160a01b0316331461090a5760405162461bcd60e51b81526004016108c79061166c565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146109775760405162461bcd60e51b81526004016108c79061166c565b60028110156109d35760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261322560f01b60648201526084016108c7565b6064816109e26012600a611634565b6109ef906210f447611642565b6109f99190611642565b610a03919061168c565b60015550565b5f6107cd338484610af8565b5f546001600160a01b03163314610a3e5760405162461bcd60e51b81526004016108c79061166c565b600e805461ffff60a01b191661010160a01b179055565b5f546001600160a01b03163314610a7e5760405162461bcd60e51b81526004016108c79061166c565b600e805460ff60a81b1916600160a81b8415150217905580610aa26012600a611634565b610aaf906210f447611642565b610ab9919061168c565b600f555050565b5f8184841115610ae35760405162461bcd60e51b81526004016108c791906113cf565b505f610aef8486611659565b95945050505050565b6010545f9060ff1615610b1757610b10848484610dcf565b90506107cd565b6001600160a01b0384165f9081526004602052604090205460ff16610b8657600e54600160a01b900460ff16610b865760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108c7565b6001600160a01b0384165f9081526005602052604090205460ff16158015610bc657506001600160a01b0383165f9081526005602052604090205460ff16155b8015610c0457507f000000000000000000000000201553286dadc28ad879b0b80e2b0b9874f1683f6001600160a01b0316836001600160a01b031614155b15610c7d576001546001600160a01b0384165f90815260026020526040902054610c2f9084906116ab565b1115610c7d5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016108c7565b610c85610eb2565b15610c9257610c92610f23565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260029091529190912054610ce3918490610ac0565b6001600160a01b0385165f90815260026020908152604080832093909355600490529081205460ff1680610d2e57506001600160a01b0384165f9081526004602052604090205460ff165b610d4257610d3d8584866110ea565b610d44565b825b6001600160a01b0385165f90815260026020526040902054909150610d699082611245565b6001600160a01b038086165f8181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dbc9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600290915291822054610e1f918490610ac0565b6001600160a01b038086165f908152600260205260408082209390935590851681522054610e4d9083611245565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ea09086815260200190565b60405180910390a35060019392505050565b5f336001600160a01b037f000000000000000000000000201553286dadc28ad879b0b80e2b0b9874f1683f1614801590610eef575060105460ff16155b8015610f045750600e54600160a81b900460ff165b8015610854575050600f54305f90815260026020526040902054101590565b6010805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610f6357610f636116be565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610fb757610fb76116be565b6001600160a01b039283166020918202929092010152600e54600f5460405163791ac94760e01b8152919092169163791ac9479161100091905f908690309042906004016116d2565b5f604051808303815f87803b158015611017575f80fd5b505af1158015611029573d5f803e3d5ffd5b50506008546006544793505f92506110419084611642565b61104b919061168c565b90505f6008546007548461105f9190611642565b611069919061168c565b600c546040519192506001600160a01b03169083156108fc029084905f818181858888f193505050501580156110a1573d5f803e3d5ffd5b50600d546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156110d9573d5f803e3d5ffd5b50506010805460ff19169055505050565b5f8215806110f85750600854155b156111045750816107cd565b600b546001600160a01b037f000000000000000000000000201553286dadc28ad879b0b80e2b0b9874f1683f8116908416036111435750600a54611181565b7f000000000000000000000000201553286dadc28ad879b0b80e2b0b9874f1683f6001600160a01b0316856001600160a01b03160361118157506009545b5f6111b76111926103e86064611642565b6111b1846111ab6008548a6112a390919063ffffffff16565b906112a3565b90611321565b9050801561123157305f908152600260205260409020546111d89082611245565b305f81815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112289085815260200190565b60405180910390a35b61123b8582611362565b9695505050505050565b5f8061125183856116ab565b9050838110156107cd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108c7565b5f825f036112b257505f6106f4565b5f6112bd8385611642565b9050826112ca858361168c565b146107cd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108c7565b5f6107cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113a3565b5f6107cd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ac0565b5f81836113c35760405162461bcd60e51b81526004016108c791906113cf565b505f610aef848661168c565b5f6020808352835180828501525f5b818110156113fa578581018301518582016040015282016113de565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611430575f80fd5b919050565b5f8060408385031215611446575f80fd5b61144f8361141a565b946020939093013593505050565b5f805f6060848603121561146f575f80fd5b6114788461141a565b92506114866020850161141a565b9150604084013590509250925092565b5f602082840312156114a6575f80fd5b6107cd8261141a565b5f805f606084860312156114c1575f80fd5b505081359360208301359350604090920135919050565b5f602082840312156114e8575f80fd5b5035919050565b5f8060408385031215611500575f80fd5b6115098361141a565b91506115176020840161141a565b90509250929050565b5f8060408385031215611531575f80fd5b8235801515811461144f575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561158e57815f190482111561157457611574611540565b8085161561158157918102915b93841c9390800290611559565b509250929050565b5f826115a4575060016106f4565b816115b057505f6106f4565b81600181146115c657600281146115d0576115ec565b60019150506106f4565b60ff8411156115e1576115e1611540565b50506001821b6106f4565b5060208310610133831016604e8410600b841016171561160f575081810a6106f4565b6116198383611554565b805f190482111561162c5761162c611540565b029392505050565b5f6107cd60ff841683611596565b80820281158282048414176106f4576106f4611540565b818103818111156106f4576106f4611540565b60208082526006908201526510a7aba722a960d11b604082015260600190565b5f826116a657634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156106f4576106f4611540565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117205784516001600160a01b0316835293830193918301916001016116fb565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220271864c63bd630ed2eeea7a5a77fc4d81435ef910cb888a459224da7ea3f456364736f6c63430008150033

Deployed Bytecode Sourcemap

2982:7341:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4248:48;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4248:48:0;;;;;;;;3237:38;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3237:38:0;;;;;;;;;;;;:::i;5519:216::-;;;;;;;;;;-1:-1:-1;5519:216:0;;;;;:::i;:::-;;:::i;:::-;;;1351:14:1;;1344:22;1326:41;;1314:2;1299:18;5519:216:0;1186:187:1;3855:45:0;;;;;;;;;;;;3896:4;3855:45;;3373:60;;;;;;;;;;;;;:::i;3801:47::-;;;;;;;;;;;;;;;;6037:370;;;;;;;;;;-1:-1:-1;6037:370:0;;;;;:::i;:::-;;:::i;4063:29::-;;;;;;;;;;-1:-1:-1;4063:29:0;;;;-1:-1:-1;;;;;4063:29:0;;;;;;-1:-1:-1;;;;;1875:32:1;;;1857:51;;1845:2;1830:18;4063:29:0;1711:203:1;10183:137:0;;;;;;;;;;;;;:::i;2213:103::-;;;;;;;;;;-1:-1:-1;2213:103:0;;;;;:::i;:::-;2268:4;2303:5;-1:-1:-1;;;;;2292:16:0;;;2303:5;;2292:16;;2213:103;3329:35;;;;;;;;;;;;3362:2;3329:35;;;;;2282:4:1;2270:17;;;2252:36;;2240:2;2225:18;3329:35:0;2110:184:1;3617:44:0;;;;;;;;;;-1:-1:-1;3617:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8851:105;;;;;;;;;;;;;:::i;:::-;;5743:122;;;;;;;;;;-1:-1:-1;5743:122:0;;;;;:::i;:::-;;:::i;3729:32::-;;;;;;;;;;;;;;;;9790:198;;;;;;;;;;-1:-1:-1;9790:198:0;;;;;:::i;:::-;;:::i;4210:31::-;;;;;;;;;;-1:-1:-1;4210:31:0;;;;-1:-1:-1;;;4210:31:0;;;;;;3495:45;;;;;;;;;;-1:-1:-1;3495:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2324:128;;;;;;;;;;;;;:::i;3442:44::-;;;;;;;;;;;;;;;;6415:219;;;;;;;;;;-1:-1:-1;6415:219:0;;;;;:::i;:::-;;:::i;5294:78::-;;;;;;;;;;-1:-1:-1;5346:7:0;5364:5;-1:-1:-1;;;;;5364:5:0;5294:78;;2026:20;;;;;;;;;;-1:-1:-1;2026:20:0;;;;-1:-1:-1;;;;;2026:20:0;;;3282:40;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3282:40:0;;;;;3768:26;;;;;;;;;;;;;;;;4132:29;;;;;;;;;;;;;;;5873:156;;;;;;;;;;-1:-1:-1;5873:156:0;;;;;:::i;:::-;;:::i;3668:52::-;;;;;;;;;;-1:-1:-1;3668:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8964:108;;;;;;;;;;;;;:::i;5378:133::-;;;;;;;;;;-1:-1:-1;5378:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5480:19:0;;;5462:7;5480:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5378:133;9996:179;;;;;;;;;;-1:-1:-1;9996:179:0;;;;;:::i;:::-;;:::i;4021:35::-;;;;;;;;;;-1:-1:-1;4021:35:0;;;;-1:-1:-1;;;;;4021:35:0;;;4101:24;;;;;;;;;;-1:-1:-1;4101:24:0;;;;-1:-1:-1;;;;;4101:24:0;;;4170:31;;;;;;;;;;-1:-1:-1;4170:31:0;;;;-1:-1:-1;;;4170:31:0;;;;;;5519:216;5623:10;5594:4;5611:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5611:32:0;;;;;;;;;;:41;;;5668:37;5594:4;;5611:32;;5668:37;;;;5646:6;160:25:1;;148:2;133:18;;14:177;5668:37:0;;;;;;;;-1:-1:-1;5723:4:0;5519:216;;;;;:::o;3373:60::-;3421:12;3362:2;3421;:12;:::i;:::-;3411:22;;:7;:22;:::i;:::-;3373:60;:::o;6037:370::-;-1:-1:-1;;;;;6157:19:0;;6137:4;6157:19;;;:11;:19;;;;;;;;6177:10;6157:31;;;;;;;;-1:-1:-1;;6157:52:0;6154:186;;6259:69;;;;;;;;;;;-1:-1:-1;;;6259:69:0;;;;;;;;-1:-1:-1;;;;;6259:19:0;;-1:-1:-1;6259:19:0;;;:11;:19;;;;;6279:10;6259:31;;;;;;;;;;:69;;6295:6;;6259:35;:69::i;:::-;-1:-1:-1;;;;;6225:19:0;;;;;;:11;:19;;;;;;;;6245:10;6225:31;;;;;;;:103;6154:186;6359:40;6373:6;6381:9;6392:6;6359:13;:40::i;:::-;6352:47;;6037:370;;;;;;:::o;10183:137::-;10296:9;:15;;;;3113:42;10236:7;10278:15;;;;;10236:7;;10296:15;3421:12;3362:2;3421;:12;:::i;:::-;3411:22;;:7;:22;:::i;:::-;10264:29;;;;:::i;:::-;:47;;;;:::i;:::-;10256:56;;10183:137;:::o;8851:105::-;8901:14;;8893:55;;-1:-1:-1;;;;;8901:14:0;;;;8926:21;8893:55;;;;;8901:14;8893:55;8901:14;8893:55;8926:21;8901:14;8893:55;;;;;;;;;;;;;;;;;;;;;8851:105::o;5743:122::-;5798:4;5822:35;5830:7;-1:-1:-1;;5822:7:0;:35::i;9790:198::-;2268:4;2303:5;-1:-1:-1;;;;;2303:5:0;2172:10;2292:16;2156:38;;;;-1:-1:-1;;;2156:38:0;;;;;;;:::i;:::-;;;;;;;;;9889:14:::1;:22:::0;;;;9922:13:::1;:20:::0;;;;9953:18:::1;:27:::0;9790:198::o;2324:128::-;2268:4;2303:5;-1:-1:-1;;;;;2303:5:0;2172:10;2292:16;2156:38;;;;-1:-1:-1;;;2156:38:0;;;;;;;:::i;:::-;2399:1:::1;2383:18:::0;;-1:-1:-1;;;;;;2383:18:0::1;::::0;;2417:27:::1;::::0;1857:51:1;;;2417:27:0::1;::::0;1845:2:1;1830:18;2417:27:0::1;;;;;;;2324:128::o:0;6415:219::-;2268:4;2303:5;-1:-1:-1;;;;;2303:5:0;2172:10;2292:16;2156:38;;;;-1:-1:-1;;;2156:38:0;;;;;;;:::i;:::-;6522:1:::1;6505:13;:18;;6497:64;;;::::0;-1:-1:-1;;;6497:64:0;;5999:2:1;6497:64:0::1;::::0;::::1;5981:21:1::0;6038:2;6018:18;;;6011:30;6077:34;6057:18;;;6050:62;-1:-1:-1;;;6128:18:1;;;6121:32;6170:19;;6497:64:0::1;5797:398:1::0;6497:64:0::1;6623:3;6605:13:::0;3421:12:::1;3362:2;3421;:12;:::i;:::-;3411:22;::::0;:7:::1;:22;:::i;:::-;6591:27;;;;:::i;:::-;6590:36;;;;:::i;:::-;6572:15;:54:::0;-1:-1:-1;6415:219:0:o;5873:156::-;5953:4;5977:44;5991:10;6003:9;6014:6;5977:13;:44::i;8964:108::-;2268:4;2303:5;-1:-1:-1;;;;;2303:5:0;2172:10;2292:16;2156:38;;;;-1:-1:-1;;;2156:38:0;;;;;;;:::i;:::-;9017:11:::1;:18:::0;;-1:-1:-1;;;;9046:18:0;-1:-1:-1;;;9046:18:0;;;8964:108::o;9996:179::-;2268:4;2303:5;-1:-1:-1;;;;;2303:5:0;2172:10;2292:16;2156:38;;;;-1:-1:-1;;;2156:38:0;;;;;;;:::i;:::-;10092:11:::1;:22:::0;;-1:-1:-1;;;;10092:22:0::1;-1:-1:-1::0;;;10092:22:0;::::1;;;;::::0;;10155:12;3421::::1;3362:2;3421;:12;:::i;:::-;3411:22;::::0;:7:::1;:22;:::i;:::-;10141:26;;;;:::i;:::-;10125:13;:42:::0;-1:-1:-1;;9996:179:0:o;534:192::-;620:7;656:12;648:6;;;;640:29;;;;-1:-1:-1;;;640:29:0;;;;;;;;:::i;:::-;-1:-1:-1;680:9:0;692:5;696:1;692;:5;:::i;:::-;680:17;534:192;-1:-1:-1;;;;;534:192:0:o;6642:923::-;6754:6;;6734:4;;6754:6;;6751:63;;;6770:41;6785:6;6793:9;6804:6;6770:14;:41::i;:::-;6763:48;;;;6751:63;-1:-1:-1;;;;;6830:19:0;;;;;;:11;:19;;;;;;;;6826:94;;6873:11;;-1:-1:-1;;;6873:11:0;;;;6865:43;;;;-1:-1:-1;;;6865:43:0;;6624:2:1;6865:43:0;;;6606:21:1;6663:2;6643:18;;;6636:30;-1:-1:-1;;;6682:18:1;;;6675:50;6742:18;;6865:43:0;6422:344:1;6865:43:0;-1:-1:-1;;;;;6937:27:0;;;;;;:19;:27;;;;;;;;6936:28;:63;;;;-1:-1:-1;;;;;;6969:30:0;;;;;;:19;:30;;;;;;;;6968:31;6936:63;:84;;;;;7016:4;-1:-1:-1;;;;;7003:17:0;:9;-1:-1:-1;;;;;7003:17:0;;;6936:84;6932:203;;;7080:15;;-1:-1:-1;;;;;7046:20:0;;;;;;:9;:20;;;;;;:29;;7069:6;;7046:29;:::i;:::-;7045:50;;7037:86;;;;-1:-1:-1;;;7037:86:0;;7103:2:1;7037:86:0;;;7085:21:1;7142:2;7122:18;;;7115:30;7181:26;7161:18;;;7154:54;7225:18;;7037:86:0;6901:348:1;7037:86:0;7150:16;:14;:16::i;:::-;7147:35;;;7169:10;:8;:10::i;:::-;7214:53;;;;;;;;;;;-1:-1:-1;;;7214:53:0;;;;;;;;-1:-1:-1;;;;;7214:17:0;;-1:-1:-1;7214:17:0;;;:9;:17;;;;;;;;:53;;7236:6;;7214:21;:53::i;:::-;-1:-1:-1;;;;;7194:17:0;;;;;;:9;:17;;;;;;;;:73;;;;7306:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7329:22:0;;;;;;:11;:22;;;;;;;;7306:45;7305:93;;7364:34;7372:6;7380;7388:9;7364:7;:34::i;:::-;7305:93;;;7355:6;7305:93;-1:-1:-1;;;;;7434:20:0;;;;;;:9;:20;;;;;;7280:118;;-1:-1:-1;7434:40:0;;7280:118;7434:24;:40::i;:::-;-1:-1:-1;;;;;7411:20:0;;;;;;;:9;:20;;;;;;;:63;;;;7492:43;;;;;;;;;;7520:14;160:25:1;;148:2;133:18;;14:177;7492:43:0;;;;;;;;-1:-1:-1;7553:4:0;;6642:923;-1:-1:-1;;;;6642:923:0:o;7577:330::-;7707:53;;;;;;;;;;;-1:-1:-1;;;7707:53:0;;;;;;;;-1:-1:-1;;;;;7707:17:0;;7670:4;7707:17;;;:9;:17;;;;;;;:53;;7729:6;;7707:21;:53::i;:::-;-1:-1:-1;;;;;7687:17:0;;;;;;;:9;:17;;;;;;:73;;;;7794:20;;;;;;;:32;;7819:6;7794:24;:32::i;:::-;-1:-1:-1;;;;;7771:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7842:35;;;;;;;;;;7870:6;160:25:1;;148:2;133:18;;14:177;7842:35:0;;;;;;;;-1:-1:-1;7895:4:0;7577:330;;;;;:::o;8646:197::-;8695:4;8719:10;-1:-1:-1;;;;;8733:4:0;8719:18;;;;;:38;;-1:-1:-1;8751:6:0;;;;8750:7;8719:38;:62;;;;-1:-1:-1;8770:11:0;;-1:-1:-1;;;8770:11:0;;;;8719:62;:116;;;;-1:-1:-1;;8822:13:0;;8812:4;8794:24;;;;:9;:24;;;;;;:41;;;8646:197::o;9080:702::-;4349:6;:13;;-1:-1:-1;;4349:13:0;4358:4;4349:13;;;9155:16:::1;::::0;;9169:1:::1;9155:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9155:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9155:16:0::1;9131:40;;9200:4;9182;9187:1;9182:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;9182:23:0::1;;;-1:-1:-1::0;;;;;9182:23:0::1;;;::::0;::::1;9226:4;9216;9221:1;9216:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9216:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;9243:6:::1;::::0;9315:13:::1;::::0;9243:189:::1;::::0;-1:-1:-1;;;9243:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;9315:13;9243:6:::1;::::0;9359:4;;9386::::1;::::0;9406:15:::1;::::0;9243:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9557:8:0::1;::::0;9541:12:::1;::::0;9465:21:::1;::::0;-1:-1:-1;9445:17:0::1;::::0;-1:-1:-1;9529:24:0::1;::::0;9465:21;9529:24:::1;:::i;:::-;9528:37;;;;:::i;:::-;9499:66;;9576:28;9630:8;;9620:6;;9608:9;:18;;;;:::i;:::-;9607:31;;;;:::i;:::-;9659:20;::::0;9651:58:::1;::::0;9576:62;;-1:-1:-1;;;;;;9659:20:0::1;::::0;9651:58;::::1;;;::::0;9690:18;;9659:20:::1;9651:58:::0;9659:20;9651:58;9690:18;9659:20;9651:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;9728:14:0::1;::::0;9720:54:::1;::::0;-1:-1:-1;;;;;9728:14:0;;::::1;::::0;9720:54;::::1;;;::::0;9753:20;;9728:14:::1;9720:54:::0;9728:14;9720:54;9753:20;9728:14;9720:54;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4367:6:0;:14;;-1:-1:-1;;4367:14:0;;;-1:-1:-1;;;9080:702:0:o;7915:723::-;8001:7;8024:11;;;:28;;-1:-1:-1;8039:8:0;;:13;8024:28;8021:72;;;-1:-1:-1;8075:6:0;8068:13;;8021:72;8126:18;;-1:-1:-1;;;;;8173:4:0;8160:17;;;;;;8157:154;;-1:-1:-1;8207:14:0;;8157:154;;;8252:4;-1:-1:-1;;;;;8242:14:0;:6;-1:-1:-1;;;;;8242:14:0;;8239:72;;-1:-1:-1;8286:13:0;;8239:72;8323:17;8343:62;8384:20;3896:4;8401:3;8384:20;:::i;:::-;8343:36;8368:10;8343:20;8354:8;;8343:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;8323:82;-1:-1:-1;8421:13:0;;8418:172;;8495:4;8477:24;;;;:9;:24;;;;;;:39;;8506:9;8477:28;:39::i;:::-;8468:4;8450:24;;;;:9;:24;;;;;;;:66;;;;8536:42;;-1:-1:-1;;;;;8536:42:0;;;;;;;8568:9;160:25:1;;148:2;133:18;;14:177;8536:42:0;;;;;;;;8418:172;8609:21;:6;8620:9;8609:10;:21::i;:::-;8602:28;7915:723;-1:-1:-1;;;;;;7915:723:0:o;205:181::-;263:7;;295:5;299:1;295;:5;:::i;:::-;283:17;;324:1;319;:6;;311:46;;;;-1:-1:-1;;;311:46:0;;8705:2:1;311:46:0;;;8687:21:1;8744:2;8724:18;;;8717:30;8783:29;8763:18;;;8756:57;8830:18;;311:46:0;8503:351:1;732:250:0;790:7;814:1;819;814:6;810:47;;-1:-1:-1;844:1:0;837:8;;810:47;869:9;881:5;885:1;881;:5;:::i;:::-;869:17;-1:-1:-1;914:1:0;905:5;909:1;869:17;905:5;:::i;:::-;:10;897:56;;;;-1:-1:-1;;;897:56:0;;9061:2:1;897:56:0;;;9043:21:1;9100:2;9080:18;;;9073:30;9139:34;9119:18;;;9112:62;-1:-1:-1;;;9190:18:1;;;9183:31;9231:19;;897:56:0;8859:397:1;988:132:0;1046:7;1073:39;1077:1;1080;1073:39;;;;;;;;;;;;;;;;;:3;:39::i;392:136::-;450:7;477:43;481:1;484;477:43;;;;;;;;;;;;;;;;;:3;:43::i;1126:189::-;1212:7;1247:12;1240:5;1232:28;;;;-1:-1:-1;;;1232:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1271:9:0;1283:5;1287:1;1283;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:173::-;817:20;;-1:-1:-1;;;;;866:31:1;;856:42;;846:70;;912:1;909;902:12;846:70;749:173;;;:::o;927:254::-;995:6;1003;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;1095:29;1114:9;1095:29;:::i;:::-;1085:39;1171:2;1156:18;;;;1143:32;;-1:-1:-1;;;927:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1919:186::-;1978:6;2031:2;2019:9;2010:7;2006:23;2002:32;1999:52;;;2047:1;2044;2037:12;1999:52;2070:29;2089:9;2070:29;:::i;2299:316::-;2376:6;2384;2392;2445:2;2433:9;2424:7;2420:23;2416:32;2413:52;;;2461:1;2458;2451:12;2413:52;-1:-1:-1;;2484:23:1;;;2554:2;2539:18;;2526:32;;-1:-1:-1;2605:2:1;2590:18;;;2577:32;;2299:316;-1:-1:-1;2299:316:1:o;2620:180::-;2679:6;2732:2;2720:9;2711:7;2707:23;2703:32;2700:52;;;2748:1;2745;2738:12;2700:52;-1:-1:-1;2771:23:1;;2620:180;-1:-1:-1;2620:180:1:o;2805:260::-;2873:6;2881;2934:2;2922:9;2913:7;2909:23;2905:32;2902:52;;;2950:1;2947;2940:12;2902:52;2973:29;2992:9;2973:29;:::i;:::-;2963:39;;3021:38;3055:2;3044:9;3040:18;3021:38;:::i;:::-;3011:48;;2805:260;;;;;:::o;3070:341::-;3135:6;3143;3196:2;3184:9;3175:7;3171:23;3167:32;3164:52;;;3212:1;3209;3202:12;3164:52;3251:9;3238:23;3304:5;3297:13;3290:21;3283:5;3280:32;3270:60;;3326:1;3323;3316:12;3642:127;3703:10;3698:3;3694:20;3691:1;3684:31;3734:4;3731:1;3724:15;3758:4;3755:1;3748:15;3774:422;3863:1;3906:5;3863:1;3920:270;3941:7;3931:8;3928:21;3920:270;;;4000:4;3996:1;3992:6;3988:17;3982:4;3979:27;3976:53;;;4009:18;;:::i;:::-;4059:7;4049:8;4045:22;4042:55;;;4079:16;;;;4042:55;4158:22;;;;4118:15;;;;3920:270;;;3924:3;3774:422;;;;;:::o;4201:806::-;4250:5;4280:8;4270:80;;-1:-1:-1;4321:1:1;4335:5;;4270:80;4369:4;4359:76;;-1:-1:-1;4406:1:1;4420:5;;4359:76;4451:4;4469:1;4464:59;;;;4537:1;4532:130;;;;4444:218;;4464:59;4494:1;4485:10;;4508:5;;;4532:130;4569:3;4559:8;4556:17;4553:43;;;4576:18;;:::i;:::-;-1:-1:-1;;4632:1:1;4618:16;;4647:5;;4444:218;;4746:2;4736:8;4733:16;4727:3;4721:4;4718:13;4714:36;4708:2;4698:8;4695:16;4690:2;4684:4;4681:12;4677:35;4674:77;4671:159;;;-1:-1:-1;4783:19:1;;;4815:5;;4671:159;4862:34;4887:8;4881:4;4862:34;:::i;:::-;4932:6;4928:1;4924:6;4920:19;4911:7;4908:32;4905:58;;;4943:18;;:::i;:::-;4981:20;;4201:806;-1:-1:-1;;;4201:806:1:o;5012:140::-;5070:5;5099:47;5140:4;5130:8;5126:19;5120:4;5099:47;:::i;5157:168::-;5230:9;;;5261;;5278:15;;;5272:22;;5258:37;5248:71;;5299:18;;:::i;5330:128::-;5397:9;;;5418:11;;;5415:37;;;5432:18;;:::i;5463:329::-;5665:2;5647:21;;;5704:1;5684:18;;;5677:29;-1:-1:-1;;;5737:2:1;5722:18;;5715:36;5783:2;5768:18;;5463:329::o;6200:217::-;6240:1;6266;6256:132;;6310:10;6305:3;6301:20;6298:1;6291:31;6345:4;6342:1;6335:15;6373:4;6370:1;6363:15;6256:132;-1:-1:-1;6402:9:1;;6200:217::o;6771:125::-;6836:9;;;6857:10;;;6854:36;;;6870:18;;:::i;7386:127::-;7447:10;7442:3;7438:20;7435:1;7428:31;7478:4;7475:1;7468:15;7502:4;7499:1;7492:15;7518:980;7780:4;7828:3;7817:9;7813:19;7859:6;7848:9;7841:25;7885:2;7923:6;7918:2;7907:9;7903:18;7896:34;7966:3;7961:2;7950:9;7946:18;7939:31;7990:6;8025;8019:13;8056:6;8048;8041:22;8094:3;8083:9;8079:19;8072:26;;8133:2;8125:6;8121:15;8107:29;;8154:1;8164:195;8178:6;8175:1;8172:13;8164:195;;;8243:13;;-1:-1:-1;;;;;8239:39:1;8227:52;;8334:15;;;;8299:12;;;;8275:1;8193:9;8164:195;;;-1:-1:-1;;;;;;;8415:32:1;;;;8410:2;8395:18;;8388:60;-1:-1:-1;;;8479:3:1;8464:19;8457:35;8376:3;7518:980;-1:-1:-1;;;7518:980:1:o

Swarm Source

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