ETH Price: $2,585.87 (-2.70%)

Token

0xSPOOL (0xSPOOL)
 

Overview

Max Total Supply

1,000,000,000 0xSPOOL

Holders

62

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
coinbase2.eth
Balance
10,948,381.528267606 0xSPOOL

Value
$0.00
0x2EE5Fa95e44aFac32EC3b6f73122B1918D541D9D
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:
SPOOLFI

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**
Yield for the World. Fuel for DeFi.

Website: https://www.spoolfinance.org
Telegram: https://t.me/spool_erc
Twitter: https://twitter.com/spool_erc
Dapp: https://app.spoolfinance.org
 */

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;
    }
}

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

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

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

interface IUniswapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract SPOOLFI is IERC20, Ownable {
    using SafeMath for uint256;

    string constant _name = "0xSPOOL";
    string constant _symbol = "0xSPOOL";
    uint8 constant _decimals = 9;

    uint256 _supply = 10 ** 9 * (10 ** _decimals);

    uint256 _liquidityFee = 0; 
    uint256 _marketingFee = 19;
    uint256 _totalFee = _liquidityFee + _marketingFee;
    uint256 _feeDenominator = 100;
    uint256 public maxWalletAmount = (_supply * 25) / 1000;
    address public developmentAddress;
    IUniswapRouter public router;
    address public pair;

    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) _isExcluded;
    mapping (address => bool) _isExcludedFromMaxWallet;

    bool public feeSwapEnabled = false;
    uint256 public feeSwapTriggerAfter = _supply / 100000; // 0.5%
    bool inswap;

    modifier lockSwap() { inswap = true; _; inswap = false; }

    constructor () Ownable(msg.sender) {
        router = IUniswapRouter(routerAddress);
        pair = IUniswapFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        developmentAddress = 0x32C9Cc86AC0025E948b98798DC0c32A321939b4a;
        _isExcluded[developmentAddress] = true;
        _isExcludedFromMaxWallet[_owner] = true;
        _isExcludedFromMaxWallet[developmentAddress] = true;
        _isExcludedFromMaxWallet[DEAD] = true;

        _balances[_owner] = _supply;
        emit Transfer(address(0), _owner, _supply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _supply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
        
    function shouldTakeFee(address sender) internal view returns (bool) {
        return !_isExcluded[sender];
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        maxWalletAmount = (_supply * amountPercent ) / 1000;
    }

    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 _transferStandard(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(_isExcludedFromMaxWallet[recipient] || _balances[recipient] + amount <= maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwap() && shouldTakeFee(sender) && recipient == pair && amount > feeSwapTriggerAfter){ swapBack(); } 


        uint256 amountReceived = shouldTakeFee(sender) || !feeSwapEnabled ? _transferFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function swapBack() internal lockSwap {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 amountToLiquify = contractTokenBalance.mul(_liquidityFee).div(_totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = _totalFee.sub(_liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(_liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(_marketingFee).div(totalETHFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(developmentAddress).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                developmentAddress,
                block.timestamp
            );
        }
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }
        
    function setFee(uint256 _lpFee, uint256 _mktFee) external onlyOwner {
         _liquidityFee = _lpFee; 
         _marketingFee = _mktFee;
         _totalFee = _liquidityFee + _marketingFee;
    }    

    function setSwapEnabled(bool value) external onlyOwner {
        feeSwapEnabled = value;
    }

    function shouldSwap() internal view returns (bool) {
        return !inswap
        && feeSwapEnabled
        && _balances[address(this)] >= feeSwapTriggerAfter;
    }
    
    function _transferStandard(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }
    
    function _transferFee(address sender, uint256 amount) internal returns (uint256) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 feeAmount = amount.mul(_totalFee).div(_feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }
}

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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developmentAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSwapTriggerAfter","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":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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 IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lpFee","type":"uint256"},{"internalType":"uint256","name":"_mktFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000474565b6200002290633b9aca006200048b565b6001555f6002819055601360038190556200003d91620004a5565b60045560646005556103e860015460196200005991906200048b565b620000659190620004bb565b600655600a80546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155600b805490911661dead1790556010805460ff19169055600154620000bb90620186a090620004bb565b601155348015620000ca575f80fd5b505f8054336001600160a01b031991821617909155600a54600880546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000134573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015a9190620004db565b6001600160a01b031663c9c6539660085f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001df9190620004db565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af115801562000229573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200024f9190620004db565b600980546001600160a01b039283166001600160a01b031991821617909155305f908152600d602090815260408083206008548616845282528083205f1990558254600780549095167332c9cc86ac0025e948b98798dc0c32a321939b4a1785557f34515e89c9b5635b457daf23e4b4765305b1c10286f431643828fad01aa58c76805460ff199081166001908117909255918716808652600f855283862080548416831790559554871685528285208054831682179055600b5490961684528184208054909116861790559354838352600c82528483208190559351938452919283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000503565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003b957815f19048211156200039d576200039d62000365565b80851615620003ab57918102915b93841c93908002906200037e565b509250929050565b5f82620003d1575060016200046e565b81620003df57505f6200046e565b8160018114620003f85760028114620004035762000423565b60019150506200046e565b60ff84111562000417576200041762000365565b50506001821b6200046e565b5060208310610133831016604e8410600b841016171562000448575081810a6200046e565b62000454838362000379565b805f19048211156200046a576200046a62000365565b0290505b92915050565b5f6200048460ff841683620003c1565b9392505050565b80820281158282048414176200046e576200046e62000365565b808201808211156200046e576200046e62000365565b5f82620004d657634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620004ec575f80fd5b81516001600160a01b038116811462000484575f80fd5b6112d680620005115f395ff3fe608060405260043610610129575f3560e01c8063715018a6116100a8578063a9059cbb1161006d578063a9059cbb1461032b578063aa4bde281461034a578063dd62ed3e1461035f578063e01af92c146103a3578063f1d5f517146103c2578063f887ea40146103e1575f80fd5b8063715018a6146102c75780637b50901f146102db578063893d20e8146102f057806395d89b4114610162578063a8aa1b311461030c575f80fd5b80632f54bf6e116100ee5780632f54bf6e146101f3578063313ce5671461022057806352f7c9881461023b578063638b1b141461025c57806370a0823114610293575f80fd5b806304866b801461013457806306fdde0314610162578063095ea7b31461019757806318160ddd146101b657806323b872dd146101d4575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060105461014d9060ff1681565b60405190151581526020015b60405180910390f35b34801561016d575f80fd5b5060408051808201825260078152660c1e14d413d3d360ca1b602082015290516101599190610fd5565b3480156101a2575f80fd5b5061014d6101b1366004611037565b610400565b3480156101c1575f80fd5b506001545b604051908152602001610159565b3480156101df575f80fd5b5061014d6101ee366004611061565b61046c565b3480156101fe575f80fd5b5061014d61020d36600461109f565b5f546001600160a01b0391821691161490565b34801561022b575f80fd5b5060405160098152602001610159565b348015610246575f80fd5b5061025a6102553660046110ba565b61052a565b005b348015610267575f80fd5b5060075461027b906001600160a01b031681565b6040516001600160a01b039091168152602001610159565b34801561029e575f80fd5b506101c66102ad36600461109f565b6001600160a01b03165f908152600c602052604090205490565b3480156102d2575f80fd5b5061025a610577565b3480156102e6575f80fd5b506101c660115481565b3480156102fb575f80fd5b505f546001600160a01b031661027b565b348015610317575f80fd5b5060095461027b906001600160a01b031681565b348015610336575f80fd5b5061014d610345366004611037565b6105e4565b348015610355575f80fd5b506101c660065481565b34801561036a575f80fd5b506101c66103793660046110da565b6001600160a01b039182165f908152600d6020908152604080832093909416825291909152205490565b3480156103ae575f80fd5b5061025a6103bd366004611111565b6105f0565b3480156103cd575f80fd5b5061025a6103dc366004611130565b61062c565b3480156103ec575f80fd5b5060085461027b906001600160a01b031681565b335f818152600d602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061045a9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f908152600d602090815260408083203384529091528120545f1914610515576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600d825283812033825290915291909120546104f1918490610676565b6001600160a01b0385165f908152600d602090815260408083203384529091529020555b6105208484846106ae565b90505b9392505050565b5f546001600160a01b0316331461055c5760405162461bcd60e51b815260040161055390611147565b60405180910390fd5b60028290556003819055610570818361117b565b6004555050565b5f546001600160a01b031633146105a05760405162461bcd60e51b815260040161055390611147565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f6105233384846106ae565b5f546001600160a01b031633146106195760405162461bcd60e51b815260040161055390611147565b6010805460ff1916911515919091179055565b5f546001600160a01b031633146106555760405162461bcd60e51b815260040161055390611147565b6103e881600154610666919061118e565b61067091906111a5565b60065550565b5f81848411156106995760405162461bcd60e51b81526004016105539190610fd5565b505f6106a584866111c4565b95945050505050565b6012545f9060ff16156106cd576106c68484846108ca565b9050610523565b6009546001600160a01b038481169116148015906106f95750600b546001600160a01b03848116911614155b156107a2576001600160a01b0383165f908152600f602052604090205460ff168061074857506006546001600160a01b0384165f908152600c602052604090205461074590849061117b565b11155b6107a25760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610553565b6107aa6109ad565b80156107ce57506001600160a01b0384165f908152600e602052604090205460ff16155b80156107e757506009546001600160a01b038481169116145b80156107f4575060115482115b15610801576108016109e5565b6001600160a01b0384165f908152600e602052604081205460ff16158061082b575060105460ff16155b610835578261083f565b61083f8584610d44565b6001600160a01b0385165f908152600c60205260409020549091506108649082610e4b565b6001600160a01b038086165f818152600c602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108b79085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600c9091529182205461091a918490610676565b6001600160a01b038086165f908152600c602052604080822093909355908516815220546109489083610e4b565b6001600160a01b038085165f818152600c602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061099b9086815260200190565b60405180910390a35060019392505050565b6012545f9060ff161580156109c4575060105460ff165b80156109e05750601154305f908152600c602052604090205410155b905090565b6012805460ff19166001179055305f908152600c602052604081205490505f610a2a6002610a24600454610a2460025487610ea990919063ffffffff16565b90610f27565b90505f610a378383610f68565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110610a6f57610a6f6111d7565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ac6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aea91906111eb565b81600181518110610afd57610afd6111d7565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b81524792919091169063791ac94790610b469086905f90879030904290600401611206565b5f604051808303815f87803b158015610b5d575f80fd5b505af1158015610b6f573d5f803e3d5ffd5b505050505f610b878247610f6890919063ffffffff16565b90505f610bab610ba260028054610f2790919063ffffffff16565b60045490610f68565b90505f610bcc6002610a2484610a2460025488610ea990919063ffffffff16565b90505f610be883610a2460035487610ea990919063ffffffff16565b6007546040519192505f916001600160a01b039091169061753090849084818181858888f193505050503d805f8114610c3c576040519150601f19603f3d011682016040523d82523d5f602084013e610c41565b606091505b5050905080610c925760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610553565b8815610d2e5760085460075460405163f305d71960e01b8152306004820152602481018c90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015610d05573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d2a9190611275565b5050505b50506012805460ff191690555050505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0385165f908152600c90915291822054610d94918490610676565b6001600160a01b0384165f908152600c6020526040812091909155600554600454610dc59190610a24908690610ea9565b305f908152600c6020526040902054909150610de19082610e4b565b305f818152600c6020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e319085815260200190565b60405180910390a3610e438382610f68565b949350505050565b5f80610e57838561117b565b9050838110156105235760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610553565b5f825f03610eb857505f610466565b5f610ec3838561118e565b905082610ed085836111a5565b146105235760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610553565b5f61052383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610fa9565b5f61052383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610676565b5f8183610fc95760405162461bcd60e51b81526004016105539190610fd5565b505f6106a584866111a5565b5f6020808352835180828501525f5b8181101561100057858101830151858201604001528201610fe4565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611034575f80fd5b50565b5f8060408385031215611048575f80fd5b823561105381611020565b946020939093013593505050565b5f805f60608486031215611073575f80fd5b833561107e81611020565b9250602084013561108e81611020565b929592945050506040919091013590565b5f602082840312156110af575f80fd5b813561052381611020565b5f80604083850312156110cb575f80fd5b50508035926020909101359150565b5f80604083850312156110eb575f80fd5b82356110f681611020565b9150602083013561110681611020565b809150509250929050565b5f60208284031215611121575f80fd5b81358015158114610523575f80fd5b5f60208284031215611140575f80fd5b5035919050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561046657610466611167565b808202811582820484141761046657610466611167565b5f826111bf57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561046657610466611167565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156111fb575f80fd5b815161052381611020565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112545784516001600160a01b03168352938301939183019160010161122f565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611287575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220e8042f519a18fe991d71c6c77c18222e43adf9ff5e1354afbb0dee9533d7586d64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063715018a6116100a8578063a9059cbb1161006d578063a9059cbb1461032b578063aa4bde281461034a578063dd62ed3e1461035f578063e01af92c146103a3578063f1d5f517146103c2578063f887ea40146103e1575f80fd5b8063715018a6146102c75780637b50901f146102db578063893d20e8146102f057806395d89b4114610162578063a8aa1b311461030c575f80fd5b80632f54bf6e116100ee5780632f54bf6e146101f3578063313ce5671461022057806352f7c9881461023b578063638b1b141461025c57806370a0823114610293575f80fd5b806304866b801461013457806306fdde0314610162578063095ea7b31461019757806318160ddd146101b657806323b872dd146101d4575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060105461014d9060ff1681565b60405190151581526020015b60405180910390f35b34801561016d575f80fd5b5060408051808201825260078152660c1e14d413d3d360ca1b602082015290516101599190610fd5565b3480156101a2575f80fd5b5061014d6101b1366004611037565b610400565b3480156101c1575f80fd5b506001545b604051908152602001610159565b3480156101df575f80fd5b5061014d6101ee366004611061565b61046c565b3480156101fe575f80fd5b5061014d61020d36600461109f565b5f546001600160a01b0391821691161490565b34801561022b575f80fd5b5060405160098152602001610159565b348015610246575f80fd5b5061025a6102553660046110ba565b61052a565b005b348015610267575f80fd5b5060075461027b906001600160a01b031681565b6040516001600160a01b039091168152602001610159565b34801561029e575f80fd5b506101c66102ad36600461109f565b6001600160a01b03165f908152600c602052604090205490565b3480156102d2575f80fd5b5061025a610577565b3480156102e6575f80fd5b506101c660115481565b3480156102fb575f80fd5b505f546001600160a01b031661027b565b348015610317575f80fd5b5060095461027b906001600160a01b031681565b348015610336575f80fd5b5061014d610345366004611037565b6105e4565b348015610355575f80fd5b506101c660065481565b34801561036a575f80fd5b506101c66103793660046110da565b6001600160a01b039182165f908152600d6020908152604080832093909416825291909152205490565b3480156103ae575f80fd5b5061025a6103bd366004611111565b6105f0565b3480156103cd575f80fd5b5061025a6103dc366004611130565b61062c565b3480156103ec575f80fd5b5060085461027b906001600160a01b031681565b335f818152600d602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061045a9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f908152600d602090815260408083203384529091528120545f1914610515576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600d825283812033825290915291909120546104f1918490610676565b6001600160a01b0385165f908152600d602090815260408083203384529091529020555b6105208484846106ae565b90505b9392505050565b5f546001600160a01b0316331461055c5760405162461bcd60e51b815260040161055390611147565b60405180910390fd5b60028290556003819055610570818361117b565b6004555050565b5f546001600160a01b031633146105a05760405162461bcd60e51b815260040161055390611147565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f6105233384846106ae565b5f546001600160a01b031633146106195760405162461bcd60e51b815260040161055390611147565b6010805460ff1916911515919091179055565b5f546001600160a01b031633146106555760405162461bcd60e51b815260040161055390611147565b6103e881600154610666919061118e565b61067091906111a5565b60065550565b5f81848411156106995760405162461bcd60e51b81526004016105539190610fd5565b505f6106a584866111c4565b95945050505050565b6012545f9060ff16156106cd576106c68484846108ca565b9050610523565b6009546001600160a01b038481169116148015906106f95750600b546001600160a01b03848116911614155b156107a2576001600160a01b0383165f908152600f602052604090205460ff168061074857506006546001600160a01b0384165f908152600c602052604090205461074590849061117b565b11155b6107a25760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610553565b6107aa6109ad565b80156107ce57506001600160a01b0384165f908152600e602052604090205460ff16155b80156107e757506009546001600160a01b038481169116145b80156107f4575060115482115b15610801576108016109e5565b6001600160a01b0384165f908152600e602052604081205460ff16158061082b575060105460ff16155b610835578261083f565b61083f8584610d44565b6001600160a01b0385165f908152600c60205260409020549091506108649082610e4b565b6001600160a01b038086165f818152600c602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108b79085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600c9091529182205461091a918490610676565b6001600160a01b038086165f908152600c602052604080822093909355908516815220546109489083610e4b565b6001600160a01b038085165f818152600c602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061099b9086815260200190565b60405180910390a35060019392505050565b6012545f9060ff161580156109c4575060105460ff165b80156109e05750601154305f908152600c602052604090205410155b905090565b6012805460ff19166001179055305f908152600c602052604081205490505f610a2a6002610a24600454610a2460025487610ea990919063ffffffff16565b90610f27565b90505f610a378383610f68565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110610a6f57610a6f6111d7565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ac6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aea91906111eb565b81600181518110610afd57610afd6111d7565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b81524792919091169063791ac94790610b469086905f90879030904290600401611206565b5f604051808303815f87803b158015610b5d575f80fd5b505af1158015610b6f573d5f803e3d5ffd5b505050505f610b878247610f6890919063ffffffff16565b90505f610bab610ba260028054610f2790919063ffffffff16565b60045490610f68565b90505f610bcc6002610a2484610a2460025488610ea990919063ffffffff16565b90505f610be883610a2460035487610ea990919063ffffffff16565b6007546040519192505f916001600160a01b039091169061753090849084818181858888f193505050503d805f8114610c3c576040519150601f19603f3d011682016040523d82523d5f602084013e610c41565b606091505b5050905080610c925760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610553565b8815610d2e5760085460075460405163f305d71960e01b8152306004820152602481018c90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015610d05573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d2a9190611275565b5050505b50506012805460ff191690555050505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0385165f908152600c90915291822054610d94918490610676565b6001600160a01b0384165f908152600c6020526040812091909155600554600454610dc59190610a24908690610ea9565b305f908152600c6020526040902054909150610de19082610e4b565b305f818152600c6020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e319085815260200190565b60405180910390a3610e438382610f68565b949350505050565b5f80610e57838561117b565b9050838110156105235760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610553565b5f825f03610eb857505f610466565b5f610ec3838561118e565b905082610ed085836111a5565b146105235760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610553565b5f61052383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610fa9565b5f61052383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610676565b5f8183610fc95760405162461bcd60e51b81526004016105539190610fd5565b505f6106a584866111a5565b5f6020808352835180828501525f5b8181101561100057858101830151858201604001528201610fe4565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611034575f80fd5b50565b5f8060408385031215611048575f80fd5b823561105381611020565b946020939093013593505050565b5f805f60608486031215611073575f80fd5b833561107e81611020565b9250602084013561108e81611020565b929592945050506040919091013590565b5f602082840312156110af575f80fd5b813561052381611020565b5f80604083850312156110cb575f80fd5b50508035926020909101359150565b5f80604083850312156110eb575f80fd5b82356110f681611020565b9150602083013561110681611020565b809150509250929050565b5f60208284031215611121575f80fd5b81358015158114610523575f80fd5b5f60208284031215611140575f80fd5b5035919050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561046657610466611167565b808202811582820484141761046657610466611167565b5f826111bf57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561046657610466611167565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156111fb575f80fd5b815161052381611020565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112545784516001600160a01b03168352938301939183019160010161122f565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611287575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220e8042f519a18fe991d71c6c77c18222e43adf9ff5e1354afbb0dee9533d7586d64736f6c63430008150033

Deployed Bytecode Sourcemap

4295:7178:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5223:34;;;;;;;;;;-1:-1:-1;5223:34:0;;;;;;;;;;;179:14:1;;172:22;154:41;;142:2;127:18;5223:34:0;;;;;;;;6397:80;;;;;;;;;;-1:-1:-1;6469:5:0;;;;;;;;;;;-1:-1:-1;;;6469:5:0;;;;6397:80;;;;6469:5;6397:80;:::i;10822:216::-;;;;;;;;;;-1:-1:-1;10822:216:0;;;;;:::i;:::-;;:::i;6132:83::-;;;;;;;;;;-1:-1:-1;6205:7:0;;6132:83;;;1361:25:1;;;1349:2;1334:18;6132:83:0;1215:177:1;7093:370:0;;;;;;;;;;-1:-1:-1;7093:370:0;;;;;:::i;:::-;;:::i;1611:103::-;;;;;;;;;;-1:-1:-1;1611:103:0;;;;;:::i;:::-;1666:4;1701:5;-1:-1:-1;;;;;1690:16:0;;;1701:5;;1690:16;;1611:103;6221:80;;;;;;;;;;-1:-1:-1;6221:80:0;;4482:1;2252:36:1;;2240:2;2225:18;6221:80:0;2110:184:1;9979:199:0;;;;;;;;;;-1:-1:-1;9979:199:0;;;;;:::i;:::-;;:::i;:::-;;4765:33;;;;;;;;;;-1:-1:-1;4765:33:0;;;;-1:-1:-1;;;;;4765:33:0;;;;;;-1:-1:-1;;;;;2716:32:1;;;2698:51;;2686:2;2671:18;4765:33:0;2552:203:1;6567:105:0;;;;;;;;;;-1:-1:-1;6567:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6651:18:0;6633:7;6651:18;;;:9;:18;;;;;;;6567:105;1720:131;;;;;;;;;;;;;:::i;5264:53::-;;;;;;;;;;;;;;;;6483:78;;;;;;;;;;-1:-1:-1;6535:7:0;6553:5;-1:-1:-1;;;;;6553:5:0;6483:78;;4840:19;;;;;;;;;;-1:-1:-1;4840:19:0;;;;-1:-1:-1;;;;;4840:19:0;;;9807:156;;;;;;;;;;-1:-1:-1;9807:156:0;;;;;:::i;:::-;;:::i;4704:54::-;;;;;;;;;;;;;;;;6678:133;;;;;;;;;;-1:-1:-1;6678:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6780:19:0;;;6762:7;6780:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6678:133;10190:96;;;;;;;;;;-1:-1:-1;10190:96:0;;;;;:::i;:::-;;:::i;6949:136::-;;;;;;;;;;-1:-1:-1;6949:136:0;;;;;:::i;:::-;;:::i;4805:28::-;;;;;;;;;;-1:-1:-1;4805:28:0;;;;-1:-1:-1;;;;;4805:28:0;;;10822:216;10926:10;10897:4;10914:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10914:32:0;;;;;;;;;;:41;;;10971:37;10897:4;;10914:32;;10971:37;;;;10949:6;1361:25:1;;1349:2;1334:18;;1215:177;10971:37:0;;;;;;;;-1:-1:-1;11026:4:0;10822:216;;;;;:::o;7093:370::-;-1:-1:-1;;;;;7213:19:0;;7193:4;7213:19;;;:11;:19;;;;;;;;7233:10;7213:31;;;;;;;;-1:-1:-1;;7213:52:0;7210:186;;7315:69;;;;;;;;;;;-1:-1:-1;;;7315:69:0;;;;;;;;-1:-1:-1;;;;;7315:19:0;;-1:-1:-1;7315:19:0;;;:11;:19;;;;;7335:10;7315:31;;;;;;;;;;:69;;7351:6;;7315:35;:69::i;:::-;-1:-1:-1;;;;;7281:19:0;;;;;;:11;:19;;;;;;;;7301:10;7281:31;;;;;;;:103;7210:186;7415:40;7429:6;7437:9;7448:6;7415:13;:40::i;:::-;7408:47;;7093:370;;;;;;:::o;9979:199::-;1666:4;1701:5;-1:-1:-1;;;;;1701:5:0;1572:10;1690:16;1556:38;;;;-1:-1:-1;;;1556:38:0;;;;;;;:::i;:::-;;;;;;;;;10059:13:::1;:22:::0;;;10094:13:::1;:23:::0;;;10141:29:::1;10110:7:::0;10075:6;10141:29:::1;:::i;:::-;10129:9;:41:::0;-1:-1:-1;;9979:199:0:o;1720:131::-;1666:4;1701:5;-1:-1:-1;;;;;1701:5:0;1572:10;1690:16;1556:38;;;;-1:-1:-1;;;1556:38:0;;;;;;;:::i;:::-;1793:1:::1;1777:18:::0;;-1:-1:-1;;;;;;1777:18:0::1;::::0;;1811:32:::1;::::0;2698:51:1;;;1811:32:0::1;::::0;2686:2:1;2671:18;1811:32:0::1;;;;;;;1720:131::o:0;9807:156::-;9887:4;9911:44;9925:10;9937:9;9948:6;9911:13;:44::i;10190:96::-;1666:4;1701:5;-1:-1:-1;;;;;1701:5:0;1572:10;1690:16;1556:38;;;;-1:-1:-1;;;1556:38:0;;;;;;;:::i;:::-;10256:14:::1;:22:::0;;-1:-1:-1;;10256:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10190:96::o;6949:136::-;1666:4;1701:5;-1:-1:-1;;;;;1701:5:0;1572:10;1690:16;1556:38;;;;-1:-1:-1;;;1556:38:0;;;;;;;:::i;:::-;7073:4:::1;7055:13;7045:7;;:23;;;;:::i;:::-;7044:33;;;;:::i;:::-;7026:15;:51:::0;-1:-1:-1;6949:136:0:o;613:190::-;699:7;735:12;727:6;;;;719:29;;;;-1:-1:-1;;;719:29:0;;;;;;;;:::i;:::-;-1:-1:-1;759:9:0;771:5;775:1;771;:5;:::i;:::-;759:17;613:190;-1:-1:-1;;;;;613:190:0:o;7471:817::-;7583:6;;7563:4;;7583:6;;7580:66;;;7599:44;7617:6;7625:9;7636:6;7599:17;:44::i;:::-;7592:51;;;;7580:66;7683:4;;-1:-1:-1;;;;;7670:17:0;;;7683:4;;7670:17;;;;:38;;-1:-1:-1;7704:4:0;;-1:-1:-1;;;;;7691:17:0;;;7704:4;;7691:17;;7670:38;7666:208;;;-1:-1:-1;;;;;7733:35:0;;;;;;:24;:35;;;;;;;;;:87;;-1:-1:-1;7805:15:0;;-1:-1:-1;;;;;7772:20:0;;;;;;:9;:20;;;;;;:29;;7795:6;;7772:29;:::i;:::-;:48;;7733:87;7725:137;;;;-1:-1:-1;;;7725:137:0;;5172:2:1;7725:137:0;;;5154:21:1;5211:2;5191:18;;;5184:30;5250:34;5230:18;;;5223:62;-1:-1:-1;;;5301:18:1;;;5294:35;5346:19;;7725:137:0;4970:401:1;7725:137:0;7897:12;:10;:12::i;:::-;:37;;;;-1:-1:-1;;;;;;6914:19:0;;6889:4;6914:19;;;:11;:19;;;;;;;;6913:20;7913:21;7897:58;;;;-1:-1:-1;7951:4:0;;-1:-1:-1;;;;;7938:17:0;;;7951:4;;7938:17;7897:58;:90;;;;;7968:19;;7959:6;:28;7897:90;7894:109;;;7990:10;:8;:10::i;:::-;-1:-1:-1;;;;;6914:19:0;;8018:22;6914:19;;;:11;:19;;;;;;;;6913:20;8043:40;;;-1:-1:-1;8069:14:0;;;;8068:15;8043:40;:80;;8117:6;8043:80;;;8086:28;8099:6;8107;8086:12;:28::i;:::-;-1:-1:-1;;;;;8157:20:0;;;;;;:9;:20;;;;;;8018:105;;-1:-1:-1;8157:40:0;;8018:105;8157:24;:40::i;:::-;-1:-1:-1;;;;;8134:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8215:43;;;;;;;;;;8243:14;1361:25:1;;1349:2;1334:18;;1215:177;8215:43:0;;;;;;;;-1:-1:-1;8276:4:0;;7471:817;-1:-1:-1;;;;7471:817:0:o;10477:333::-;10610:53;;;;;;;;;;;-1:-1:-1;;;10610:53:0;;;;;;;;-1:-1:-1;;;;;10610:17:0;;10573:4;10610:17;;;:9;:17;;;;;;;:53;;10632:6;;10610:21;:53::i;:::-;-1:-1:-1;;;;;10590:17:0;;;;;;;:9;:17;;;;;;:73;;;;10697:20;;;;;;;:32;;10722:6;10697:24;:32::i;:::-;-1:-1:-1;;;;;10674:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10745:35;;;;;;;;;;10773:6;1361:25:1;;1349:2;1334:18;;1215:177;10745:35:0;;;;;;;;-1:-1:-1;10798:4:0;10477:333;;;;;:::o;10294:171::-;10364:6;;10339:4;;10364:6;;10363:7;:34;;;;-1:-1:-1;10383:14:0;;;;10363:34;:94;;;;-1:-1:-1;10438:19:0;;10428:4;10410:24;;;;:9;:24;;;;;;:47;;10363:94;10356:101;;10294:171;:::o;8300:1495::-;5374:6;:13;;-1:-1:-1;;5374:13:0;5383:4;5374:13;;;8398:4:::1;-1:-1:-1::0;6651:18:0;;;:9;:18;;;;;;8349:55:::1;;8415:23;8441:61;8500:1;8441:54;8485:9;;8441:39;8466:13;;8441:20;:24;;:39;;;;:::i;:::-;:43:::0;::::1;:54::i;:61::-;8415:87:::0;-1:-1:-1;8513:20:0::1;8536:41;:20:::0;8415:87;8536:24:::1;:41::i;:::-;8614:16;::::0;;8628:1:::1;8614:16:::0;;;;;::::1;::::0;;8513:64;;-1:-1:-1;8590:21:0::1;::::0;8614:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8614:16:0::1;8590:40;;8659:4;8641;8646:1;8641:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8641:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8685:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;8685:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;8641:7;;8685:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8675:4;8680:1;8675:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8675:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;8769:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;8769:188:0;;8735:21:::1;::::0;8769:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;8841:12;;8711:21:::1;::::0;8884:4;;8911::::1;::::0;8931:15:::1;::::0;8769:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8968:17;8988:40;9014:13;8988:21;:25;;:40;;;;:::i;:::-;8968:60;;9039:19;9061:35;9075:20;9093:1;9075:13:::0;::::1;:17;;:20;;;;:::i;:::-;9061:9;::::0;;:13:::1;:35::i;:::-;9039:57;;9107:26;9136:52;9186:1;9136:45;9169:11;9136:28;9150:13;;9136:9;:13;;:28;;;;:::i;:52::-;9107:81;;9199:26;9228:45;9261:11;9228:28;9242:13;;9228:9;:13;;:28;;;;:::i;:45::-;9347:18;::::0;9339:75:::1;::::0;9199:74;;-1:-1:-1;9289:21:0::1;::::0;-1:-1:-1;;;;;9347:18:0;;::::1;::::0;9404:5:::1;::::0;9199:74;;9289:21;9339:75;9289:21;9339:75;9199:74;9347:18;9404:5;9339:75:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9288:126;;;9433:16;9425:59;;;::::0;-1:-1:-1;;;9425:59:0;;7293:2:1;9425:59:0::1;::::0;::::1;7275:21:1::0;7332:2;7312:18;;;7305:30;7371:32;7351:18;;;7344:60;7421:18;;9425:59:0::1;7091:354:1::0;9425:59:0::1;9500:19:::0;;9497:291:::1;;9535:6;::::0;9709:18:::1;::::0;9535:241:::1;::::0;-1:-1:-1;;;9535:241:0;;9611:4:::1;9535:241;::::0;::::1;7791:34:1::0;7841:18;;;7834:34;;;9535:6:0::1;7884:18:1::0;;;7877:34;;;7927:18;;;7920:34;-1:-1:-1;;;;;9709:18:0;;::::1;7970:19:1::0;;;7963:44;9746:15:0::1;8023:19:1::0;;;8016:35;9535:6:0;::::1;::::0;:22:::1;::::0;9565:18;;7725:19:1;;9535:241:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9497:291;-1:-1:-1::0;;5392:6:0;:14;;-1:-1:-1;;5392:14:0;;;-1:-1:-1;;;;;;;;8300:1495:0:o;11050:420::-;11162:53;;;;;;;;;;;-1:-1:-1;;;11162:53:0;;;;;;;;-1:-1:-1;;;;;11162:17:0;;11122:7;11162:17;;;:9;:17;;;;;;;:53;;11184:6;;11162:21;:53::i;:::-;-1:-1:-1;;;;;11142:17:0;;;;;;:9;:17;;;;;:73;;;;11272:15;;11257:9;;11246:42;;11272:15;11246:21;;:6;;:10;:21::i;:42::-;11344:4;11326:24;;;;:9;:24;;;;;;11226:62;;-1:-1:-1;11326:39:0;;11226:62;11326:28;:39::i;:::-;11317:4;11299:24;;;;:9;:24;;;;;;;:66;;;;11381:42;;-1:-1:-1;;;;;11381:42:0;;;;;;;11413:9;1361:25:1;;1349:2;1334:18;;1215:177;11381:42:0;;;;;;;;11441:21;:6;11452:9;11441:10;:21::i;:::-;11434:28;11050:420;-1:-1:-1;;;;11050:420:0:o;286:179::-;344:7;;376:5;380:1;376;:5;:::i;:::-;364:17;;405:1;400;:6;;392:46;;;;-1:-1:-1;;;392:46:0;;8575:2:1;392:46:0;;;8557:21:1;8614:2;8594:18;;;8587:30;8653:29;8633:18;;;8626:57;8700:18;;392:46:0;8373:351:1;809:246:0;867:7;891:1;896;891:6;887:47;;-1:-1:-1;921:1:0;914:8;;887:47;944:9;956:5;960:1;956;:5;:::i;:::-;944:17;-1:-1:-1;989:1:0;980:5;984:1;944:17;980:5;:::i;:::-;:10;972:56;;;;-1:-1:-1;;;972:56:0;;8931:2:1;972:56:0;;;8913:21:1;8970:2;8950:18;;;8943:30;9009:34;8989:18;;;8982:62;-1:-1:-1;;;9060:18:1;;;9053:31;9101:19;;972:56:0;8729:397:1;1061:132:0;1119:7;1146:39;1150:1;1153;1146:39;;;;;;;;;;;;;;;;;:3;:39::i;471:136::-;529:7;556:43;560:1;563;556:43;;;;;;;;;;;;;;;;;:3;:43::i;1199:189::-;1285:7;1320:12;1313:5;1305:28;;;;-1:-1:-1;;;1305:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1344:9:0;1356:5;1360:1;1356;:5;:::i;206:548:1:-;318:4;347:2;376;365:9;358:21;408:6;402:13;451:6;446:2;435:9;431:18;424:34;476:1;486:140;500:6;497:1;494:13;486:140;;;595:14;;;591:23;;585:30;561:17;;;580:2;557:26;550:66;515:10;;486:140;;;490:3;675:1;670:2;661:6;650:9;646:22;642:31;635:42;745:2;738;734:7;729:2;721:6;717:15;713:29;702:9;698:45;694:54;686:62;;;;206:548;;;;:::o;759:131::-;-1:-1:-1;;;;;834:31:1;;824:42;;814:70;;880:1;877;870:12;814:70;759:131;:::o;895:315::-;963:6;971;1024:2;1012:9;1003:7;999:23;995:32;992:52;;;1040:1;1037;1030:12;992:52;1079:9;1066:23;1098:31;1123:5;1098:31;:::i;:::-;1148:5;1200:2;1185:18;;;;1172:32;;-1:-1:-1;;;895:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2299:248::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;-1:-1:-1;;2467:23:1;;;2537:2;2522:18;;;2509:32;;-1:-1:-1;2299:248:1:o;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3153:273::-;3209:6;3262:2;3250:9;3241:7;3237:23;3233:32;3230:52;;;3278:1;3275;3268:12;3230:52;3317:9;3304:23;3370:5;3363:13;3356:21;3349:5;3346:32;3336:60;;3392:1;3389;3382:12;3431:180;3490:6;3543:2;3531:9;3522:7;3518:23;3514:32;3511:52;;;3559:1;3556;3549:12;3511:52;-1:-1:-1;3582:23:1;;3431:180;-1:-1:-1;3431:180:1:o;3846:329::-;4048:2;4030:21;;;4087:1;4067:18;;;4060:29;-1:-1:-1;;;4120:2:1;4105:18;;4098:36;4166:2;4151:18;;3846:329::o;4180:127::-;4241:10;4236:3;4232:20;4229:1;4222:31;4272:4;4269:1;4262:15;4296:4;4293:1;4286:15;4312:125;4377:9;;;4398:10;;;4395:36;;;4411:18;;:::i;4442:168::-;4515:9;;;4546;;4563:15;;;4557:22;;4543:37;4533:71;;4584:18;;:::i;4615:217::-;4655:1;4681;4671:132;;4725:10;4720:3;4716:20;4713:1;4706:31;4760:4;4757:1;4750:15;4788:4;4785:1;4778:15;4671:132;-1:-1:-1;4817:9:1;;4615:217::o;4837:128::-;4904:9;;;4925:11;;;4922:37;;;4939:18;;:::i;5508:127::-;5569:10;5564:3;5560:20;5557:1;5550:31;5600:4;5597:1;5590:15;5624:4;5621:1;5614:15;5640:251;5710:6;5763:2;5751:9;5742:7;5738:23;5734:32;5731:52;;;5779:1;5776;5769:12;5731:52;5811:9;5805:16;5830:31;5855:5;5830:31;:::i;5896:980::-;6158:4;6206:3;6195:9;6191:19;6237:6;6226:9;6219:25;6263:2;6301:6;6296:2;6285:9;6281:18;6274:34;6344:3;6339:2;6328:9;6324:18;6317:31;6368:6;6403;6397:13;6434:6;6426;6419:22;6472:3;6461:9;6457:19;6450:26;;6511:2;6503:6;6499:15;6485:29;;6532:1;6542:195;6556:6;6553:1;6550:13;6542:195;;;6621:13;;-1:-1:-1;;;;;6617:39:1;6605:52;;6712:15;;;;6677:12;;;;6653:1;6571:9;6542:195;;;-1:-1:-1;;;;;;;6793:32:1;;;;6788:2;6773:18;;6766:60;-1:-1:-1;;;6857:3:1;6842:19;6835:35;6754:3;5896:980;-1:-1:-1;;;5896:980:1:o;8062:306::-;8150:6;8158;8166;8219:2;8207:9;8198:7;8194:23;8190:32;8187:52;;;8235:1;8232;8225:12;8187:52;8264:9;8258:16;8248:26;;8314:2;8303:9;8299:18;8293:25;8283:35;;8358:2;8347:9;8343:18;8337:25;8327:35;;8062:306;;;;;:::o

Swarm Source

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