ETH Price: $3,410.02 (-1.53%)
Gas: 8 Gwei

Token

CoinTensor AI (TENSOR)
 

Overview

Max Total Supply

30,000,000 TENSOR

Holders

299

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,142.803781457809959616 TENSOR

Value
$0.00
0xf0c27c71700c47ad460577560acf41d95b396fca
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:
CoinTensorAI

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*

Website: https://cointensor.io
Telegram: https://t.me/cointensor
Twitter: https://x.com/cointensor

*/

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 CoinTensorAI is ERC20, Auth {
    using SafeMath for uint256;

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

    string public constant name = "CoinTensor AI";
    string public constant symbol = "TENSOR";
    uint8 public constant decimals = 18;

    uint256 public constant totalSupply = 30_000_000 * 10**decimals;

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

    mapping (address => bool) public isFeeExempt;

    uint256 public marketingFee = 4;
    uint256 public opsFee = 1;
    uint256 public totalFee = marketingFee + opsFee;
    uint256 public constant feeDenominator = 100;
    
    uint256 public buyMultiplier = 50;
    uint256 public sellMultiplier = 50;
    uint256 public transferMultiplier = 0;

    address public marketingFeeReceiver;
    address public opsFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = totalSupply / 200;
    
    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 = 0x294425583E443f1e1615BAC0abFe6363c871D03e;
        opsFeeReceiver = 0x302422bc13b635c3046de11de1C5f19994C73Db5;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isFeeExempt[opsFeeReceiver] = 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 _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        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(opsFeeReceiver).transfer(address(this).balance);
    }

    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 amountETHOps = (amountETH * opsFee) / totalFee;

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(opsFeeReceiver).transfer(amountETHOps);
    }

    function manage_feeExempt(address[] calldata addresses, bool status) external onlyOwner {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isFeeExempt[addresses[i]] = status;
        }
    }

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

    function setTaxes(uint256 _marketingFee, uint256 _opsFee) external onlyOwner {
        marketingFee = _marketingFee;
        opsFee = _opsFee;
        totalFee = marketingFee + opsFee;
    }

    function setFeeReceivers(address _marketingFeeReceiver, address _opsFeeReceiver ) external onlyOwner {
        marketingFeeReceiver = _marketingFeeReceiver;
        opsFeeReceiver = _opsFeeReceiver;
    }

    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":[{"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":"buyMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_feeExempt","outputs":[],"stateMutability":"nonpayable","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":"opsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"opsFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_opsFeeReceiver","type":"address"}],"name":"setFeeReceivers","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":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_opsFee","type":"uint256"}],"name":"setTaxes","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526004808055600160058190556200001b9162000349565b600655603260078190556008555f600955600c805460ff60a01b1916600160a01b17905560c86200004f6012600a6200045e565b6200005f906301c9c38062000475565b6200006b91906200048f565b600d553480156200007a575f80fd5b505f8054336001600160a01b031991821617909155600c8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620000e8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200010e9190620004af565b6001600160a01b03908116608052600c546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200015d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001839190620004af565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015620001d2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f89190620004af565b6001600160a01b0390811660a052305f908152600260209081526040808320600c548516845282528083205f199055600a80546001600160a01b031990811673294425583e443f1e1615bac0abfe6363c871d03e178255600b805490911673302422bc13b635c3046de11de1c5f19994c73db51781553385526003909352818420805460ff19908116600190811790925582548716865283862080548216831790559354909516845292208054909116909217909155620002bc906012906200045e565b620002cc906301c9c38062000475565b335f81815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200030e6012600a6200045e565b6200031e906301c9c38062000475565b60405190815260200160405180910390a3620004d7565b634e487b7160e01b5f52601160045260245ffd5b808201808211156200035f576200035f62000335565b92915050565b600181815b80851115620003a557815f190482111562000389576200038962000335565b808516156200039757918102915b93841c93908002906200036a565b509250929050565b5f82620003bd575060016200035f565b81620003cb57505f6200035f565b8160018114620003e45760028114620003ef576200040f565b60019150506200035f565b60ff84111562000403576200040362000335565b50506001821b6200035f565b5060208310610133831016604e8410600b841016171562000434575081810a6200035f565b62000440838362000365565b805f190482111562000456576200045662000335565b029392505050565b5f6200046e60ff841683620003ad565b9392505050565b80820281158282048414176200035f576200035f62000335565b5f82620004aa57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620004c0575f80fd5b81516001600160a01b03811681146200046e575f80fd5b60805160a0516117666200050e5f395f818161055701528181610e080152818161105b015261108f01525f610ecf01526117665ff3fe6080604052600436106101ff575f3560e01c80636ce46bc311610113578063a9059cbb1161009d578063e96fada21161006d578063e96fada21461061a578063f33dfea014610639578063f887ea4014610658578063fd414aa814610677578063fed0d2a11461068c575f80fd5b8063a9059cbb14610579578063c647b20e14610598578063dd62ed3e146105b7578063df20fd49146105fb575f80fd5b8063893d20e8116100e3578063893d20e8146104a85780638da5cb5b146104d857806395d89b41146104f6578063a4b45c0014610527578063a8aa1b3114610546575f80fd5b80636ce46bc31461042a5780636ddd17131461044957806370a0823114610469578063715018a614610494575f80fd5b80632f54bf6e1161019457806351bc3c851161016457806351bc3c85146103ac578063571ac8b0146103c25780635921652f146103e15780636998d19d146103f65780636b67c4df14610415575f80fd5b80632f54bf6e146103165780633121c7c014610343578063313ce567146103585780633f4218e01461037e575f80fd5b806318160ddd116101cf57806318160ddd146102ba5780631df4ccfc146102ce57806323b872dd146102e35780632b112e4914610302575f80fd5b80630445b6671461020a57806306fdde0314610232578063095ea7b314610277578063180b0d7e146102a6575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021f600d5481565b6040519081526020015b60405180910390f35b34801561023d575f80fd5b5061026a6040518060400160405280600d81526020016c436f696e54656e736f7220414960981b81525081565b6040516102299190611317565b348015610282575f80fd5b5061029661029136600461137d565b6106a1565b6040519015158152602001610229565b3480156102b1575f80fd5b5061021f606481565b3480156102c5575f80fd5b5061021f61070d565b3480156102d9575f80fd5b5061021f60065481565b3480156102ee575f80fd5b506102966102fd3660046113a5565b61072a565b34801561030d575f80fd5b5061021f6107e8565b348015610321575f80fd5b506102966103303660046113de565b5f546001600160a01b0391821691161490565b34801561034e575f80fd5b5061021f60075481565b348015610363575f80fd5b5061036c601281565b60405160ff9091168152602001610229565b348015610389575f80fd5b506102966103983660046113de565b60036020525f908152604090205460ff1681565b3480156103b7575f80fd5b506103c061086e565b005b3480156103cd575f80fd5b506102966103dc3660046113de565b6108a7565b3480156103ec575f80fd5b5061021f60095481565b348015610401575f80fd5b506103c0610410366004611406565b6108b3565b348015610420575f80fd5b5061021f60045481565b348015610435575f80fd5b506103c0610444366004611483565b6109b6565b348015610454575f80fd5b50600c5461029690600160a01b900460ff1681565b348015610474575f80fd5b5061021f6104833660046113de565b60016020525f908152604090205481565b34801561049f575f80fd5b506103c06109f0565b3480156104b3575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610229565b3480156104e3575f80fd5b505f546104c0906001600160a01b031681565b348015610501575f80fd5b5061026a604051806040016040528060068152602001652a22a729a7a960d11b81525081565b348015610532575f80fd5b506103c06105413660046114ac565b610a5d565b348015610551575f80fd5b506104c07f000000000000000000000000000000000000000000000000000000000000000081565b348015610584575f80fd5b5061029661059336600461137d565b610ab4565b3480156105a3575f80fd5b506103c06105b23660046114dd565b610ac0565b3480156105c2575f80fd5b5061021f6105d13660046114ac565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610606575f80fd5b506103c06106153660046114fd565b610b04565b348015610625575f80fd5b50600a546104c0906001600160a01b031681565b348015610644575f80fd5b50600b546104c0906001600160a01b031681565b348015610663575f80fd5b50600c546104c0906001600160a01b031681565b348015610682575f80fd5b5061021f60055481565b348015610697575f80fd5b5061021f60085481565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106fb9086815260200190565b60405180910390a35060015b92915050565b6107196012600a61160b565b610727906301c9c380611619565b81565b6001600160a01b0383165f9081526002602090815260408083203384529091528120545f19146107d3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526002825283812033825290915291909120546107af918490610b70565b6001600160a01b0385165f9081526002602090815260408083203384529091529020555b6107de848484610ba8565b90505b9392505050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead5f9081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d549091906108476012600a61160b565b610855906301c9c380611619565b61085f9190611630565b6108699190611630565b905090565b600b546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156108a4573d5f803e3d5ffd5b50565b5f610707825f196106a1565b5f546001600160a01b031633146108e55760405162461bcd60e51b81526004016108dc90611643565b60405180910390fd5b6101f582106109445760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b60648201526084016108dc565b5f5b828110156109b0578160035f86868581811061096457610964611663565b905060200201602081019061097991906113de565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556109a981611677565b9050610946565b50505050565b5f546001600160a01b031633146109df5760405162461bcd60e51b81526004016108dc90611643565b600891909155600791909155600955565b5f546001600160a01b03163314610a195760405162461bcd60e51b81526004016108dc90611643565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610a865760405162461bcd60e51b81526004016108dc90611643565b600a80546001600160a01b039384166001600160a01b031991821617909155600b8054929093169116179055565b5f6107e1338484610ba8565b5f546001600160a01b03163314610ae95760405162461bcd60e51b81526004016108dc90611643565b60048290556005819055610afd818361168f565b6006555050565b5f546001600160a01b03163314610b2d5760405162461bcd60e51b81526004016108dc90611643565b600c805460ff60a01b1916600160a01b8415150217905580610b516012600a61160b565b610b5f906301c9c380611619565b610b6991906116a2565b600d555050565b5f8184841115610b935760405162461bcd60e51b81526004016108dc9190611317565b505f610b9f8486611630565b95945050505050565b600e545f9060ff1615610bc757610bc0848484610d19565b90506107e1565b610bcf610dfc565b15610bdc57610bdc610e6d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260019091529190912054610c2d918490610b70565b6001600160a01b0385165f90815260016020908152604080832093909355600390529081205460ff1680610c7857506001600160a01b0384165f9081526003602052604090205460ff165b610c8c57610c87858486611034565b610c8e565b825b6001600160a01b0385165f90815260016020526040902054909150610cb3908261118d565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d069085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600190915291822054610d69918490610b70565b6001600160a01b038086165f908152600160205260408082209390935590851681522054610d97908361118d565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dea9086815260200190565b60405180910390a35060019392505050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610e395750600e5460ff16155b8015610e4e5750600c54600160a01b900460ff165b8015610869575050600d54305f90815260016020526040902054101590565b600e805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610ead57610ead611663565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610f0157610f01611663565b6001600160a01b039283166020918202929092010152600c54600d5460405163791ac94760e01b8152919092169163791ac94791610f4a91905f908690309042906004016116c1565b5f604051808303815f87803b158015610f61575f80fd5b505af1158015610f73573d5f803e3d5ffd5b50506006546004544793505f9250610f8b9084611619565b610f9591906116a2565b90505f60065460055484610fa99190611619565b610fb391906116a2565b600a546040519192506001600160a01b03169083156108fc029084905f818181858888f19350505050158015610feb573d5f803e3d5ffd5b50600b546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611023573d5f803e3d5ffd5b5050600e805460ff19169055505050565b5f8215806110425750600654155b1561104e5750816107e1565b6009546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169084160361108d57506008546110cb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036110cb57506007545b5f6110ff6110da606480611619565b6110f9846110f36006548a6111eb90919063ffffffff16565b906111eb565b90611269565b9050801561117957305f90815260016020526040902054611120908261118d565b305f81815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111709085815260200190565b60405180910390a35b61118385826112aa565b9695505050505050565b5f80611199838561168f565b9050838110156107e15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108dc565b5f825f036111fa57505f610707565b5f6112058385611619565b90508261121285836116a2565b146107e15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108dc565b5f6107e183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112eb565b5f6107e183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b70565b5f818361130b5760405162461bcd60e51b81526004016108dc9190611317565b505f610b9f84866116a2565b5f6020808352835180828501525f5b8181101561134257858101830151858201604001528201611326565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611378575f80fd5b919050565b5f806040838503121561138e575f80fd5b61139783611362565b946020939093013593505050565b5f805f606084860312156113b7575f80fd5b6113c084611362565b92506113ce60208501611362565b9150604084013590509250925092565b5f602082840312156113ee575f80fd5b6107e182611362565b80358015158114611378575f80fd5b5f805f60408486031215611418575f80fd5b833567ffffffffffffffff8082111561142f575f80fd5b818601915086601f830112611442575f80fd5b813581811115611450575f80fd5b8760208260051b8501011115611464575f80fd5b60209283019550935061147a91860190506113f7565b90509250925092565b5f805f60608486031215611495575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156114bd575f80fd5b6114c683611362565b91506114d460208401611362565b90509250929050565b5f80604083850312156114ee575f80fd5b50508035926020909101359150565b5f806040838503121561150e575f80fd5b611397836113f7565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561156557815f190482111561154b5761154b611517565b8085161561155857918102915b93841c9390800290611530565b509250929050565b5f8261157b57506001610707565b8161158757505f610707565b816001811461159d57600281146115a7576115c3565b6001915050610707565b60ff8411156115b8576115b8611517565b50506001821b610707565b5060208310610133831016604e8410600b84101617156115e6575081810a610707565b6115f0838361152b565b805f190482111561160357611603611517565b029392505050565b5f6107e160ff84168361156d565b808202811582820484141761070757610707611517565b8181038181111561070757610707611517565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161168857611688611517565b5060010190565b8082018082111561070757610707611517565b5f826116bc57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561170f5784516001600160a01b0316835293830193918301916001016116ea565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b065a9d4a0b68f1acf3b45fb09269a32114a0885043037cb18191479c8704da264736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101ff575f3560e01c80636ce46bc311610113578063a9059cbb1161009d578063e96fada21161006d578063e96fada21461061a578063f33dfea014610639578063f887ea4014610658578063fd414aa814610677578063fed0d2a11461068c575f80fd5b8063a9059cbb14610579578063c647b20e14610598578063dd62ed3e146105b7578063df20fd49146105fb575f80fd5b8063893d20e8116100e3578063893d20e8146104a85780638da5cb5b146104d857806395d89b41146104f6578063a4b45c0014610527578063a8aa1b3114610546575f80fd5b80636ce46bc31461042a5780636ddd17131461044957806370a0823114610469578063715018a614610494575f80fd5b80632f54bf6e1161019457806351bc3c851161016457806351bc3c85146103ac578063571ac8b0146103c25780635921652f146103e15780636998d19d146103f65780636b67c4df14610415575f80fd5b80632f54bf6e146103165780633121c7c014610343578063313ce567146103585780633f4218e01461037e575f80fd5b806318160ddd116101cf57806318160ddd146102ba5780631df4ccfc146102ce57806323b872dd146102e35780632b112e4914610302575f80fd5b80630445b6671461020a57806306fdde0314610232578063095ea7b314610277578063180b0d7e146102a6575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021f600d5481565b6040519081526020015b60405180910390f35b34801561023d575f80fd5b5061026a6040518060400160405280600d81526020016c436f696e54656e736f7220414960981b81525081565b6040516102299190611317565b348015610282575f80fd5b5061029661029136600461137d565b6106a1565b6040519015158152602001610229565b3480156102b1575f80fd5b5061021f606481565b3480156102c5575f80fd5b5061021f61070d565b3480156102d9575f80fd5b5061021f60065481565b3480156102ee575f80fd5b506102966102fd3660046113a5565b61072a565b34801561030d575f80fd5b5061021f6107e8565b348015610321575f80fd5b506102966103303660046113de565b5f546001600160a01b0391821691161490565b34801561034e575f80fd5b5061021f60075481565b348015610363575f80fd5b5061036c601281565b60405160ff9091168152602001610229565b348015610389575f80fd5b506102966103983660046113de565b60036020525f908152604090205460ff1681565b3480156103b7575f80fd5b506103c061086e565b005b3480156103cd575f80fd5b506102966103dc3660046113de565b6108a7565b3480156103ec575f80fd5b5061021f60095481565b348015610401575f80fd5b506103c0610410366004611406565b6108b3565b348015610420575f80fd5b5061021f60045481565b348015610435575f80fd5b506103c0610444366004611483565b6109b6565b348015610454575f80fd5b50600c5461029690600160a01b900460ff1681565b348015610474575f80fd5b5061021f6104833660046113de565b60016020525f908152604090205481565b34801561049f575f80fd5b506103c06109f0565b3480156104b3575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610229565b3480156104e3575f80fd5b505f546104c0906001600160a01b031681565b348015610501575f80fd5b5061026a604051806040016040528060068152602001652a22a729a7a960d11b81525081565b348015610532575f80fd5b506103c06105413660046114ac565b610a5d565b348015610551575f80fd5b506104c07f00000000000000000000000099d96f99309fc5ebe4fc534d104ba71db0912ae181565b348015610584575f80fd5b5061029661059336600461137d565b610ab4565b3480156105a3575f80fd5b506103c06105b23660046114dd565b610ac0565b3480156105c2575f80fd5b5061021f6105d13660046114ac565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610606575f80fd5b506103c06106153660046114fd565b610b04565b348015610625575f80fd5b50600a546104c0906001600160a01b031681565b348015610644575f80fd5b50600b546104c0906001600160a01b031681565b348015610663575f80fd5b50600c546104c0906001600160a01b031681565b348015610682575f80fd5b5061021f60055481565b348015610697575f80fd5b5061021f60085481565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106fb9086815260200190565b60405180910390a35060015b92915050565b6107196012600a61160b565b610727906301c9c380611619565b81565b6001600160a01b0383165f9081526002602090815260408083203384529091528120545f19146107d3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526002825283812033825290915291909120546107af918490610b70565b6001600160a01b0385165f9081526002602090815260408083203384529091529020555b6107de848484610ba8565b90505b9392505050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead5f9081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d549091906108476012600a61160b565b610855906301c9c380611619565b61085f9190611630565b6108699190611630565b905090565b600b546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156108a4573d5f803e3d5ffd5b50565b5f610707825f196106a1565b5f546001600160a01b031633146108e55760405162461bcd60e51b81526004016108dc90611643565b60405180910390fd5b6101f582106109445760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b60648201526084016108dc565b5f5b828110156109b0578160035f86868581811061096457610964611663565b905060200201602081019061097991906113de565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556109a981611677565b9050610946565b50505050565b5f546001600160a01b031633146109df5760405162461bcd60e51b81526004016108dc90611643565b600891909155600791909155600955565b5f546001600160a01b03163314610a195760405162461bcd60e51b81526004016108dc90611643565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610a865760405162461bcd60e51b81526004016108dc90611643565b600a80546001600160a01b039384166001600160a01b031991821617909155600b8054929093169116179055565b5f6107e1338484610ba8565b5f546001600160a01b03163314610ae95760405162461bcd60e51b81526004016108dc90611643565b60048290556005819055610afd818361168f565b6006555050565b5f546001600160a01b03163314610b2d5760405162461bcd60e51b81526004016108dc90611643565b600c805460ff60a01b1916600160a01b8415150217905580610b516012600a61160b565b610b5f906301c9c380611619565b610b6991906116a2565b600d555050565b5f8184841115610b935760405162461bcd60e51b81526004016108dc9190611317565b505f610b9f8486611630565b95945050505050565b600e545f9060ff1615610bc757610bc0848484610d19565b90506107e1565b610bcf610dfc565b15610bdc57610bdc610e6d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260019091529190912054610c2d918490610b70565b6001600160a01b0385165f90815260016020908152604080832093909355600390529081205460ff1680610c7857506001600160a01b0384165f9081526003602052604090205460ff165b610c8c57610c87858486611034565b610c8e565b825b6001600160a01b0385165f90815260016020526040902054909150610cb3908261118d565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d069085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600190915291822054610d69918490610b70565b6001600160a01b038086165f908152600160205260408082209390935590851681522054610d97908361118d565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dea9086815260200190565b60405180910390a35060019392505050565b5f336001600160a01b037f00000000000000000000000099d96f99309fc5ebe4fc534d104ba71db0912ae11614801590610e395750600e5460ff16155b8015610e4e5750600c54600160a01b900460ff165b8015610869575050600d54305f90815260016020526040902054101590565b600e805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610ead57610ead611663565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610f0157610f01611663565b6001600160a01b039283166020918202929092010152600c54600d5460405163791ac94760e01b8152919092169163791ac94791610f4a91905f908690309042906004016116c1565b5f604051808303815f87803b158015610f61575f80fd5b505af1158015610f73573d5f803e3d5ffd5b50506006546004544793505f9250610f8b9084611619565b610f9591906116a2565b90505f60065460055484610fa99190611619565b610fb391906116a2565b600a546040519192506001600160a01b03169083156108fc029084905f818181858888f19350505050158015610feb573d5f803e3d5ffd5b50600b546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611023573d5f803e3d5ffd5b5050600e805460ff19169055505050565b5f8215806110425750600654155b1561104e5750816107e1565b6009546001600160a01b037f00000000000000000000000099d96f99309fc5ebe4fc534d104ba71db0912ae181169084160361108d57506008546110cb565b7f00000000000000000000000099d96f99309fc5ebe4fc534d104ba71db0912ae16001600160a01b0316856001600160a01b0316036110cb57506007545b5f6110ff6110da606480611619565b6110f9846110f36006548a6111eb90919063ffffffff16565b906111eb565b90611269565b9050801561117957305f90815260016020526040902054611120908261118d565b305f81815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111709085815260200190565b60405180910390a35b61118385826112aa565b9695505050505050565b5f80611199838561168f565b9050838110156107e15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108dc565b5f825f036111fa57505f610707565b5f6112058385611619565b90508261121285836116a2565b146107e15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108dc565b5f6107e183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112eb565b5f6107e183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b70565b5f818361130b5760405162461bcd60e51b81526004016108dc9190611317565b505f610b9f84866116a2565b5f6020808352835180828501525f5b8181101561134257858101830151858201604001528201611326565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611378575f80fd5b919050565b5f806040838503121561138e575f80fd5b61139783611362565b946020939093013593505050565b5f805f606084860312156113b7575f80fd5b6113c084611362565b92506113ce60208501611362565b9150604084013590509250925092565b5f602082840312156113ee575f80fd5b6107e182611362565b80358015158114611378575f80fd5b5f805f60408486031215611418575f80fd5b833567ffffffffffffffff8082111561142f575f80fd5b818601915086601f830112611442575f80fd5b813581811115611450575f80fd5b8760208260051b8501011115611464575f80fd5b60209283019550935061147a91860190506113f7565b90509250925092565b5f805f60608486031215611495575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156114bd575f80fd5b6114c683611362565b91506114d460208401611362565b90509250929050565b5f80604083850312156114ee575f80fd5b50508035926020909101359150565b5f806040838503121561150e575f80fd5b611397836113f7565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561156557815f190482111561154b5761154b611517565b8085161561155857918102915b93841c9390800290611530565b509250929050565b5f8261157b57506001610707565b8161158757505f610707565b816001811461159d57600281146115a7576115c3565b6001915050610707565b60ff8411156115b8576115b8611517565b50506001821b610707565b5060208310610133831016604e8410600b84101617156115e6575081810a610707565b6115f0838361152b565b805f190482111561160357611603611517565b029392505050565b5f6107e160ff84168361156d565b808202811582820484141761070757610707611517565b8181038181111561070757610707611517565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161168857611688611517565b5060010190565b8082018082111561070757610707611517565b5f826116bc57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561170f5784516001600160a01b0316835293830193918301916001016116ea565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b065a9d4a0b68f1acf3b45fb09269a32114a0885043037cb18191479c8704da264736f6c63430008150033

Deployed Bytecode Sourcemap

2979:7094:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4119:48;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4119:48:0;;;;;;;;3235:45;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3235:45:0;;;;;;;;;;;;:::i;5230:216::-;;;;;;;;;;-1:-1:-1;5230:216:0;;;;;:::i;:::-;;:::i;:::-;;;1351:14:1;;1344:22;1326:41;;1314:2;1299:18;5230:216:0;1186:187:1;3749:44:0;;;;;;;;;;;;3790:3;3749:44;;3378:63;;;;;;;;;;;;;:::i;3695:47::-;;;;;;;;;;;;;;;;5748:370;;;;;;;;;;-1:-1:-1;5748:370:0;;;;;:::i;:::-;;:::i;9933:137::-;;;;;;;;;;;;;:::i;2210:103::-;;;;;;;;;;-1:-1:-1;2210:103:0;;;;;:::i;:::-;2265:4;2300:5;-1:-1:-1;;;;;2289:16:0;;;2300:5;;2289:16;;2210:103;3806:33;;;;;;;;;;;;;;;;3334:35;;;;;;;;;;;;3367:2;3334:35;;;;;2074:4:1;2062:17;;;2044:36;;2032:2;2017:18;3334:35:0;1902:184:1;3572:44:0;;;;;;;;;;-1:-1:-1;3572:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8014:105;;;;;;;;;;;;;:::i;:::-;;5454:122;;;;;;;;;;-1:-1:-1;5454:122:0;;;;;:::i;:::-;;:::i;3887:37::-;;;;;;;;;;;;;;;;8821:294;;;;;;;;;;-1:-1:-1;8821:294:0;;;;;:::i;:::-;;:::i;3625:31::-;;;;;;;;;;;;;;;;9123:198;;;;;;;;;;-1:-1:-1;9123:198:0;;;;;:::i;:::-;;:::i;4082:30::-;;;;;;;;;;-1:-1:-1;4082:30:0;;;;-1:-1:-1;;;4082:30:0;;;;;;3450:45;;;;;;;;;;-1:-1:-1;3450:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2321:128;;;;;;;;;;;;;:::i;5005:78::-;;;;;;;;;;-1:-1:-1;5057:7:0;5075:5;-1:-1:-1;;;;;5075:5:0;5005:78;;;-1:-1:-1;;;;;3435:32:1;;;3417:51;;3405:2;3390:18;5005:78:0;3271:203:1;2023:20:0;;;;;;;;;;-1:-1:-1;2023:20:0;;;;-1:-1:-1;;;;;2023:20:0;;;3287:40;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3287:40:0;;;;;9531:207;;;;;;;;;;-1:-1:-1;9531:207:0;;;;;:::i;:::-;;:::i;4044:29::-;;;;;;;;;;;;;;;5584:156;;;;;;;;;;-1:-1:-1;5584:156:0;;;;;:::i;:::-;;:::i;9329:194::-;;;;;;;;;;-1:-1:-1;9329:194:0;;;;;:::i;:::-;;:::i;5089:133::-;;;;;;;;;;-1:-1:-1;5089:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5191:19:0;;;5173:7;5191:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5089:133;9746:179;;;;;;;;;;-1:-1:-1;9746:179:0;;;;;:::i;:::-;;:::i;3933:35::-;;;;;;;;;;-1:-1:-1;3933:35:0;;;;-1:-1:-1;;;;;3933:35:0;;;3975:29;;;;;;;;;;-1:-1:-1;3975:29:0;;;;-1:-1:-1;;;;;3975:29:0;;;4013:24;;;;;;;;;;-1:-1:-1;4013:24:0;;;;-1:-1:-1;;;;;4013:24:0;;;3663:25;;;;;;;;;;;;;;;;3846:34;;;;;;;;;;;;;;;;5230:216;5334:10;5305:4;5322:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5322:32:0;;;;;;;;;;:41;;;5379:37;5305:4;;5322:32;;5379:37;;;;5357:6;160:25:1;;148:2;133:18;;14:177;5379:37:0;;;;;;;;-1:-1:-1;5434:4:0;5230:216;;;;;:::o;3378:63::-;3429:12;3367:2;3429;:12;:::i;:::-;3416:25;;:10;:25;:::i;:::-;3378:63;:::o;5748:370::-;-1:-1:-1;;;;;5868:19:0;;5848:4;5868:19;;;:11;:19;;;;;;;;5888:10;5868:31;;;;;;;;-1:-1:-1;;5868:52:0;5865:186;;5970:69;;;;;;;;;;;-1:-1:-1;;;5970:69:0;;;;;;;;-1:-1:-1;;;;;5970:19:0;;-1:-1:-1;5970:19:0;;;:11;:19;;;;;5990:10;5970:31;;;;;;;;;;:69;;6006:6;;5970:35;:69::i;:::-;-1:-1:-1;;;;;5936:19:0;;;;;;:11;:19;;;;;;;;5956:10;5936:31;;;;;;;:103;5865:186;6070:40;6084:6;6092:9;6103:6;6070:13;:40::i;:::-;6063:47;;5748:370;;;;;;:::o;9933:137::-;10046:9;:15;;;;3111:42;9986:7;10028:15;;;;;9986:7;;10046:15;3429:12;3367:2;3429;:12;:::i;:::-;3416:25;;:10;:25;:::i;:::-;10014:29;;;;:::i;:::-;:47;;;;:::i;:::-;10006:56;;9933:137;:::o;8014:105::-;8064:14;;8056:55;;-1:-1:-1;;;;;8064:14:0;;;;8089:21;8056:55;;;;;8064:14;8056:55;8064:14;8056:55;8089:21;8064:14;8056:55;;;;;;;;;;;;;;;;;;;;;8014:105::o;5454:122::-;5509:4;5533:35;5541:7;-1:-1:-1;;5533:7:0;:35::i;8821:294::-;2265:4;2300:5;-1:-1:-1;;;;;2300:5:0;2169:10;2289:16;2153:38;;;;-1:-1:-1;;;2153:38:0;;;;;;;:::i;:::-;;;;;;;;;8947:3:::1;8928:22:::0;::::1;8920:71;;;::::0;-1:-1:-1;;;8920:71:0;;6833:2:1;8920:71:0::1;::::0;::::1;6815:21:1::0;6872:2;6852:18;;;6845:30;6911:34;6891:18;;;6884:62;-1:-1:-1;;;6962:18:1;;;6955:35;7007:19;;8920:71:0::1;6631:401:1::0;8920:71:0::1;9007:9;9002:106;9020:20:::0;;::::1;9002:106;;;9090:6;9062:11;:25;9074:9;;9084:1;9074:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9062:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;9062:25:0;:34;;-1:-1:-1;;9062:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9042:3:::1;::::0;::::1;:::i;:::-;;;9002:106;;;;8821:294:::0;;;:::o;9123:198::-;2265:4;2300:5;-1:-1:-1;;;;;2300:5:0;2169:10;2289:16;2153:38;;;;-1:-1:-1;;;2153:38:0;;;;;;;:::i;:::-;9222:14:::1;:22:::0;;;;9255:13:::1;:20:::0;;;;9286:18:::1;:27:::0;9123:198::o;2321:128::-;2265:4;2300:5;-1:-1:-1;;;;;2300:5:0;2169:10;2289:16;2153:38;;;;-1:-1:-1;;;2153:38:0;;;;;;;:::i;:::-;2396:1:::1;2380:18:::0;;-1:-1:-1;;;;;;2380:18:0::1;::::0;;2414:27:::1;::::0;3417:51:1;;;2414:27:0::1;::::0;3405:2:1;3390:18;2414:27:0::1;;;;;;;2321:128::o:0;9531:207::-;2265:4;2300:5;-1:-1:-1;;;;;2300:5:0;2169:10;2289:16;2153:38;;;;-1:-1:-1;;;2153:38:0;;;;;;;:::i;:::-;9643:20:::1;:44:::0;;-1:-1:-1;;;;;9643:44:0;;::::1;-1:-1:-1::0;;;;;;9643:44:0;;::::1;;::::0;;;9698:14:::1;:32:::0;;;;;::::1;::::0;::::1;;::::0;;9531:207::o;5584:156::-;5664:4;5688:44;5702:10;5714:9;5725:6;5688:13;:44::i;9329:194::-;2265:4;2300:5;-1:-1:-1;;;;;2300:5:0;2169:10;2289:16;2153:38;;;;-1:-1:-1;;;2153:38:0;;;;;;;:::i;:::-;9417:12:::1;:28:::0;;;9456:6:::1;:16:::0;;;9494:21:::1;9465:7:::0;9432:13;9494:21:::1;:::i;:::-;9483:8;:32:::0;-1:-1:-1;;9329:194:0:o;9746:179::-;2265:4;2300:5;-1:-1:-1;;;;;2300:5:0;2169:10;2289:16;2153:38;;;;-1:-1:-1;;;2153:38:0;;;;;;;:::i;:::-;9842:11:::1;:22:::0;;-1:-1:-1;;;;9842:22:0::1;-1:-1:-1::0;;;9842:22:0;::::1;;;;::::0;;9905:12;3429::::1;3367:2;3429;:12;:::i;:::-;3416:25;::::0;:10:::1;:25;:::i;:::-;9891:26;;;;:::i;:::-;9875:13;:42:::0;-1:-1:-1;;9746:179:0:o;531:192::-;617:7;653:12;645:6;;;;637:29;;;;-1:-1:-1;;;637:29:0;;;;;;;;:::i;:::-;-1:-1:-1;677:9:0;689:5;693:1;689;:5;:::i;:::-;677:17;531:192;-1:-1:-1;;;;;531:192:0:o;6126:602::-;6238:6;;6218:4;;6238:6;;6235:63;;;6254:41;6269:6;6277:9;6288:6;6254:14;:41::i;:::-;6247:48;;;;6235:63;6313:16;:14;:16::i;:::-;6310:35;;;6332:10;:8;:10::i;:::-;6377:53;;;;;;;;;;;-1:-1:-1;;;6377:53:0;;;;;;;;-1:-1:-1;;;;;6377:17:0;;-1:-1:-1;6377:17:0;;;:9;:17;;;;;;;;:53;;6399:6;;6377:21;:53::i;:::-;-1:-1:-1;;;;;6357:17:0;;;;;;:9;:17;;;;;;;;:73;;;;6469:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;6492:22:0;;;;;;:11;:22;;;;;;;;6469:45;6468:93;;6527:34;6535:6;6543;6551:9;6527:7;:34::i;:::-;6468:93;;;6518:6;6468:93;-1:-1:-1;;;;;6597:20:0;;;;;;:9;:20;;;;;;6443:118;;-1:-1:-1;6597:40:0;;6443:118;6597:24;:40::i;:::-;-1:-1:-1;;;;;6574:20:0;;;;;;;:9;:20;;;;;;;:63;;;;6655:43;;;;;;;;;;6683:14;160:25:1;;148:2;133:18;;14:177;6655:43:0;;;;;;;;-1:-1:-1;6716:4:0;;6126:602;-1:-1:-1;;;;6126:602:0:o;6740:330::-;6870:53;;;;;;;;;;;-1:-1:-1;;;6870:53:0;;;;;;;;-1:-1:-1;;;;;6870:17:0;;6833:4;6870:17;;;:9;:17;;;;;;;:53;;6892:6;;6870:21;:53::i;:::-;-1:-1:-1;;;;;6850:17:0;;;;;;;:9;:17;;;;;;:73;;;;6957:20;;;;;;;:32;;6982:6;6957:24;:32::i;:::-;-1:-1:-1;;;;;6934:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7005:35;;;;;;;;;;7033:6;160:25:1;;148:2;133:18;;14:177;7005:35:0;;;;;;;;-1:-1:-1;7058:4:0;6740:330;;;;;:::o;7809:197::-;7858:4;7882:10;-1:-1:-1;;;;;7896:4:0;7882:18;;;;;:38;;-1:-1:-1;7914:6:0;;;;7913:7;7882:38;:62;;;;-1:-1:-1;7933:11:0;;-1:-1:-1;;;7933:11:0;;;;7882:62;:116;;;;-1:-1:-1;;7985:13:0;;7975:4;7957:24;;;;:9;:24;;;;;;:41;;;7809:197::o;8127:686::-;4220:6;:13;;-1:-1:-1;;4220:13:0;4229:4;4220:13;;;8202:16:::1;::::0;;8216:1:::1;8202:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8202:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8202:16:0::1;8178:40;;8247:4;8229;8234:1;8229:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;8229:23:0::1;;;-1:-1:-1::0;;;;;8229:23:0::1;;;::::0;::::1;8273:4;8263;8268:1;8263:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8263:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;8290:6:::1;::::0;8362:13:::1;::::0;8290:189:::1;::::0;-1:-1:-1;;;8290:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;8362:13;8290:6:::1;::::0;8406:4;;8433::::1;::::0;8453:15:::1;::::0;8290:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8604:8:0::1;::::0;8588:12:::1;::::0;8512:21:::1;::::0;-1:-1:-1;8492:17:0::1;::::0;-1:-1:-1;8576:24:0::1;::::0;8512:21;8576:24:::1;:::i;:::-;8575:37;;;;:::i;:::-;8546:66;;8623:20;8669:8;;8659:6;;8647:9;:18;;;;:::i;:::-;8646:31;;;;:::i;:::-;8698:20;::::0;8690:58:::1;::::0;8623:54;;-1:-1:-1;;;;;;8698:20:0::1;::::0;8690:58;::::1;;;::::0;8729:18;;8698:20:::1;8690:58:::0;8698:20;8690:58;8729:18;8698:20;8690:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;8767:14:0::1;::::0;8759:46:::1;::::0;-1:-1:-1;;;;;8767:14:0;;::::1;::::0;8759:46;::::1;;;::::0;8792:12;;8767:14:::1;8759:46:::0;8767:14;8759:46;8792:12;8767:14;8759:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4238:6:0;:14;;-1:-1:-1;;4238:14:0;;;-1:-1:-1;;;8127:686:0:o;7078:723::-;7164:7;7187:11;;;:28;;-1:-1:-1;7202:8:0;;:13;7187:28;7184:72;;;-1:-1:-1;7238:6:0;7231:13;;7184:72;7289:18;;-1:-1:-1;;;;;7336:4:0;7323:17;;;;;;7320:154;;-1:-1:-1;7370:14:0;;7320:154;;;7415:4;-1:-1:-1;;;;;7405:14:0;:6;-1:-1:-1;;;;;7405:14:0;;7402:72;;-1:-1:-1;7449:13:0;;7402:72;7486:17;7506:62;7547:20;3790:3;;7547:20;:::i;:::-;7506:36;7531:10;7506:20;7517:8;;7506:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;7486:82;-1:-1:-1;7584:13:0;;7581:172;;7658:4;7640:24;;;;:9;:24;;;;;;:39;;7669:9;7640:28;:39::i;:::-;7631:4;7613:24;;;;:9;:24;;;;;;;:66;;;;7699:42;;-1:-1:-1;;;;;7699:42:0;;;;;;;7731:9;160:25:1;;148:2;133:18;;14:177;7699:42:0;;;;;;;;7581:172;7772:21;:6;7783:9;7772:10;:21::i;:::-;7765:28;7078:723;-1:-1:-1;;;;;;7078:723:0:o;202:181::-;260:7;;292:5;296:1;292;:5;:::i;:::-;280:17;;321:1;316;:6;;308:46;;;;-1:-1:-1;;;308:46:0;;8980:2:1;308:46:0;;;8962:21:1;9019:2;8999:18;;;8992:30;9058:29;9038:18;;;9031:57;9105:18;;308:46:0;8778:351:1;729:250:0;787:7;811:1;816;811:6;807:47;;-1:-1:-1;841:1:0;834:8;;807:47;866:9;878:5;882:1;878;:5;:::i;:::-;866:17;-1:-1:-1;911:1:0;902:5;906:1;866:17;902:5;:::i;:::-;:10;894:56;;;;-1:-1:-1;;;894:56:0;;9336:2:1;894:56:0;;;9318:21:1;9375:2;9355:18;;;9348:30;9414:34;9394:18;;;9387:62;-1:-1:-1;;;9465:18:1;;;9458:31;9506:19;;894:56:0;9134:397:1;985:132:0;1043:7;1070:39;1074:1;1077;1070:39;;;;;;;;;;;;;;;;;:3;:39::i;389:136::-;447:7;474:43;478:1;481;474:43;;;;;;;;;;;;;;;;;:3;:43::i;1123:189::-;1209:7;1244:12;1237:5;1229:28;;;;-1:-1:-1;;;1229:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1268:9:0;1280:5;1284:1;1280;: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;1711:186::-;1770:6;1823:2;1811:9;1802:7;1798:23;1794:32;1791:52;;;1839:1;1836;1829:12;1791:52;1862:29;1881:9;1862:29;:::i;2091:160::-;2156:20;;2212:13;;2205:21;2195:32;;2185:60;;2241:1;2238;2231:12;2256:689;2348:6;2356;2364;2417:2;2405:9;2396:7;2392:23;2388:32;2385:52;;;2433:1;2430;2423:12;2385:52;2473:9;2460:23;2502:18;2543:2;2535:6;2532:14;2529:34;;;2559:1;2556;2549:12;2529:34;2597:6;2586:9;2582:22;2572:32;;2642:7;2635:4;2631:2;2627:13;2623:27;2613:55;;2664:1;2661;2654:12;2613:55;2704:2;2691:16;2730:2;2722:6;2719:14;2716:34;;;2746:1;2743;2736:12;2716:34;2801:7;2794:4;2784:6;2781:1;2777:14;2773:2;2769:23;2765:34;2762:47;2759:67;;;2822:1;2819;2812:12;2759:67;2853:4;2845:13;;;;-1:-1:-1;2877:6:1;-1:-1:-1;2902:37:1;;2918:20;;;-1:-1:-1;2902:37:1;:::i;:::-;2892:47;;2256:689;;;;;:::o;2950:316::-;3027:6;3035;3043;3096:2;3084:9;3075:7;3071:23;3067:32;3064:52;;;3112:1;3109;3102:12;3064:52;-1:-1:-1;;3135:23:1;;;3205:2;3190:18;;3177:32;;-1:-1:-1;3256:2:1;3241:18;;;3228:32;;2950:316;-1:-1:-1;2950:316:1:o;3479:260::-;3547:6;3555;3608:2;3596:9;3587:7;3583:23;3579:32;3576:52;;;3624:1;3621;3614:12;3576:52;3647:29;3666:9;3647:29;:::i;:::-;3637:39;;3695:38;3729:2;3718:9;3714:18;3695:38;:::i;:::-;3685:48;;3479:260;;;;;:::o;3744:248::-;3812:6;3820;3873:2;3861:9;3852:7;3848:23;3844:32;3841:52;;;3889:1;3886;3879:12;3841:52;-1:-1:-1;;3912:23:1;;;3982:2;3967:18;;;3954:32;;-1:-1:-1;3744:248:1:o;3997:::-;4062:6;4070;4123:2;4111:9;4102:7;4098:23;4094:32;4091:52;;;4139:1;4136;4129:12;4091:52;4162:26;4178:9;4162:26;:::i;4476:127::-;4537:10;4532:3;4528:20;4525:1;4518:31;4568:4;4565:1;4558:15;4592:4;4589:1;4582:15;4608:422;4697:1;4740:5;4697:1;4754:270;4775:7;4765:8;4762:21;4754:270;;;4834:4;4830:1;4826:6;4822:17;4816:4;4813:27;4810:53;;;4843:18;;:::i;:::-;4893:7;4883:8;4879:22;4876:55;;;4913:16;;;;4876:55;4992:22;;;;4952:15;;;;4754:270;;;4758:3;4608:422;;;;;:::o;5035:806::-;5084:5;5114:8;5104:80;;-1:-1:-1;5155:1:1;5169:5;;5104:80;5203:4;5193:76;;-1:-1:-1;5240:1:1;5254:5;;5193:76;5285:4;5303:1;5298:59;;;;5371:1;5366:130;;;;5278:218;;5298:59;5328:1;5319:10;;5342:5;;;5366:130;5403:3;5393:8;5390:17;5387:43;;;5410:18;;:::i;:::-;-1:-1:-1;;5466:1:1;5452:16;;5481:5;;5278:218;;5580:2;5570:8;5567:16;5561:3;5555:4;5552:13;5548:36;5542:2;5532:8;5529:16;5524:2;5518:4;5515:12;5511:35;5508:77;5505:159;;;-1:-1:-1;5617:19:1;;;5649:5;;5505:159;5696:34;5721:8;5715:4;5696:34;:::i;:::-;5766:6;5762:1;5758:6;5754:19;5745:7;5742:32;5739:58;;;5777:18;;:::i;:::-;5815:20;;5035:806;-1:-1:-1;;;5035:806:1:o;5846:140::-;5904:5;5933:47;5974:4;5964:8;5960:19;5954:4;5933:47;:::i;5991:168::-;6064:9;;;6095;;6112:15;;;6106:22;;6092:37;6082:71;;6133:18;;:::i;6164:128::-;6231:9;;;6252:11;;;6249:37;;;6266:18;;:::i;6297:329::-;6499:2;6481:21;;;6538:1;6518:18;;;6511:29;-1:-1:-1;;;6571:2:1;6556:18;;6549:36;6617:2;6602:18;;6297:329::o;7037:127::-;7098:10;7093:3;7089:20;7086:1;7079:31;7129:4;7126:1;7119:15;7153:4;7150:1;7143:15;7169:135;7208:3;7229:17;;;7226:43;;7249:18;;:::i;:::-;-1:-1:-1;7296:1:1;7285:13;;7169:135::o;7309:125::-;7374:9;;;7395:10;;;7392:36;;;7408:18;;:::i;7439:217::-;7479:1;7505;7495:132;;7549:10;7544:3;7540:20;7537:1;7530:31;7584:4;7581:1;7574:15;7612:4;7609:1;7602:15;7495:132;-1:-1:-1;7641:9:1;;7439:217::o;7793:980::-;8055:4;8103:3;8092:9;8088:19;8134:6;8123:9;8116:25;8160:2;8198:6;8193:2;8182:9;8178:18;8171:34;8241:3;8236:2;8225:9;8221:18;8214:31;8265:6;8300;8294:13;8331:6;8323;8316:22;8369:3;8358:9;8354:19;8347:26;;8408:2;8400:6;8396:15;8382:29;;8429:1;8439:195;8453:6;8450:1;8447:13;8439:195;;;8518:13;;-1:-1:-1;;;;;8514:39:1;8502:52;;8609:15;;;;8574:12;;;;8550:1;8468:9;8439:195;;;-1:-1:-1;;;;;;;8690:32:1;;;;8685:2;8670:18;;8663:60;-1:-1:-1;;;8754:3:1;8739:19;8732:35;8651:3;7793:980;-1:-1:-1;;;7793:980:1:o

Swarm Source

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