ETH Price: $2,515.52 (+0.33%)

Token

Proof of Anon (0xProof)
 

Overview

Max Total Supply

7,201,096.090515424474791401 0xProof

Holders

362

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
880.7078138440242761 0xProof

Value
$0.00
0x2222223cd396cc9269a88d3dfed859aa1d0cb7e5
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:
ProofOfAnon

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 20000 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2023-06-12
*/

// SPDX-License-Identifier: Unlicensed
/**
    Proof of Anon: A toolkit that enhances anonymity and reimagines the boundaries of degens' digital interactions in DeFi.

        The contract has a unique dynamic burn tax that changes based on volume. 
        It starts at 3/3 and increases by 0.5% if volume is higher. 
        The maximum tax is 5/5, with 3% for marketing and 2% for burn.
        If volume is lower, tax decreases by 0.5% and can go as low as 3/3 after four consecutive hours.

    Socials:
    https://twitter.com/proofofanon
    https://t.me/proofofanon
    https://0xproof.io/
    https://medium.com/@theproofproject0
**/
pragma solidity ^0.8.18;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);
}

contract ProofOfAnon is Context, IERC20 {
    IUniswapV2Router02 immutable uniswapV2Router;
    address immutable uniswapV2Pair;
    address immutable WETH;
    address payable immutable marketingWallet;

    address public _owner = msg.sender;
    uint8 private launch;
    uint8 private inSwapAndLiquify;

    uint256 private _totalSupply        = 10_000_000e18;
    uint256 public maxTxAmount = 200_000e18;
    uint256 private constant onePercent =   100_000e18;
    uint256 private constant minSwap    =     50_000e18;

    uint256 public buyTax;
    uint256 public sellTax;
    uint256 public burnRate = 100;

    uint256 private launchBlock;
  
    uint256 public _transactionVolumeCurrent;
    uint256 public _transactionVolumePrevious;
    uint256 public _lastBucketTime = block.timestamp;
    uint256 private constant _bucketDuration = 60 minutes;

    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFeeWallet;

    function onlyOwner() internal view {
        require(_owner == msg.sender);
    }

    constructor() {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        WETH = uniswapV2Router.WETH();
        buyTax = 300;
        sellTax = 300;

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            WETH
        );

        marketingWallet = payable(0xc8a32b4D0602e8e624Fcf128B58F75e307898cf6);
        _balance[msg.sender] = _totalSupply;

        _isExcludedFromFeeWallet[marketingWallet] = true;
        _isExcludedFromFeeWallet[msg.sender] = true;
        _isExcludedFromFeeWallet[address(this)] = true;
        _allowances[address(this)][address(uniswapV2Router)] = type(uint256)
            .max;
        _allowances[msg.sender][address(uniswapV2Router)] = type(uint256).max;
        _allowances[marketingWallet][address(uniswapV2Router)] = type(uint256)
            .max;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function name() public pure returns (string memory) {
        return "Proof of Anon";
    }

    function symbol() public pure returns (string memory) {
        return "0xProof";
    }

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

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

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

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

    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 transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()] - amount
        );
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        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 openTrading() external  {
        onlyOwner();
        launch = 1;
        launchBlock = block.number;
    }

    function addExcludedWallet(address wallet) external {
        onlyOwner();
        _isExcludedFromFeeWallet[wallet] = true;
    }

    function removeLimits() external  {
        onlyOwner();
        maxTxAmount = _totalSupply;
    }

    function changeTax(uint256 newBuyTax, uint256 newSellTax, uint256 newBurnRate)
        external
        
    {
        onlyOwner();
        require(newBuyTax + newSellTax + newBurnRate <= 20, "Taxes more than 20%");
        buyTax = newBuyTax * 100;
        sellTax = newSellTax * 100;
        burnRate = newBurnRate * 100;
    }

    function burn(uint256 amount) external {
        _burn(msg.sender, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balance[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balance[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 1e9, "Min transfer amt");
        //Update current _burnRate

        unchecked {
	    _transactionVolumeCurrent += amount;
            if (block.timestamp >= _lastBucketTime + _bucketDuration) {
                //If current > previous
                if (_transactionVolumeCurrent > _transactionVolumePrevious) {
                    if (burnRate + 50 <= 200) {
                        //Add 0.25% to _burnRate
                        burnRate += 50;
                    }
                    //else remain at 0 until volume decreases
                } else {
		    //If previous > current or previous == current
		    if (burnRate >= 50) {
                        //Remove 0.5% from _burnRate
                        burnRate -= 50;
                    }
                    
                }
                _transactionVolumePrevious = _transactionVolumeCurrent;
                _transactionVolumeCurrent = 0;
                _lastBucketTime = block.timestamp;
            }
        }
	
        uint256 _tax;
        if (_isExcludedFromFeeWallet[from] || _isExcludedFromFeeWallet[to]) {
            _tax = 0;
        } else {
            require(
                launch != 0 && amount <= maxTxAmount,
                "Launch / Max TxAmount 1% at launch"
            );

            if (inSwapAndLiquify == 1) {
                //No tax transfer
                _balance[from] -= amount;
                _balance[to] += amount;
                emit Transfer(from, to, amount);
                return;
            }

            if (from == uniswapV2Pair) {
                _tax = buyTax;
            } else if (to == uniswapV2Pair) {
                uint256 tokensToSwap = _balance[address(this)];
                if (tokensToSwap > minSwap && inSwapAndLiquify == 0) {
                    if (tokensToSwap > onePercent) {
                        tokensToSwap = onePercent;
                    }
                    inSwapAndLiquify = 1;
                    address[] memory path = new address[](2);
                    path[0] = address(this);
                    path[1] = WETH;
                    uniswapV2Router
                        .swapExactTokensForETHSupportingFeeOnTransferTokens(
                            tokensToSwap,
                            0,
                            path,
                            marketingWallet,
                            block.timestamp
                        );
                    inSwapAndLiquify = 0;
                }
                _tax = sellTax;
            } else {
                _tax = 0;
            }
        }


        if (_tax != 0) {
            uint256 burnTokens = amount * burnRate / 10000;
            uint256 taxTokens = amount * _tax / 10000;
            uint256 transferAmount = amount - (burnTokens + taxTokens);

            _balance[from] -= amount;
            _balance[to] += transferAmount;
            _balance[address(this)] += taxTokens;
            _totalSupply -= burnTokens;
            emit Transfer(from, address(0), burnTokens);
            emit Transfer(from, address(this), taxTokens);
            emit Transfer(from, to, transferAmount);
        } else {
            //No tax transfer
            _balance[from] -= amount;
            _balance[to] += amount;

            emit Transfer(from, to, amount);
        }
    }

    receive() external payable {}
}

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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_lastBucketTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transactionVolumeCurrent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transactionVolumePrevious","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"addExcludedWallet","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"},{"internalType":"uint256","name":"newBurnRate","type":"uint256"}],"name":"changeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

610100604052600080546001600160a01b031916331790556a084595161401484a000000600155692a5a058fc295ed0000006002556064600555426009553480156200004a57600080fd5b50737a250d5630b4cf539739df2c5dacb4c659f2488d6080819052604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620000a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000c7919062000317565b6001600160a01b031660c0816001600160a01b03168152505061012c60038190555061012c6004819055506080516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000133573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000159919062000317565b60c0516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015620001ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d1919062000317565b6001600160a01b0390811660a05273c8a32b4d0602e8e624fcf128b58f75e307898cf660e05260018054336000818152600a6020908152604080832094909455600c81527f10d996c5f832cbe9f63ac3dafc357677e8d9b85ffdc73ec2e0a3df1866c48608805460ff19908116871790915584832080548216871790553083528483208054909116909517909455600b8085528382206080519096168083529585528382206000199081905592825284528281209481529383528184208190557f4df242e2ffdbd276a09e09a5677bd79f322f93bcbd2e9142ea811abfcefcca0890925290912055620002c13390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001546040516200030991815260200190565b60405180910390a362000349565b6000602082840312156200032a57600080fd5b81516001600160a01b03811681146200034257600080fd5b9392505050565b60805160a05160c05160e0516116df6200038a6000396000610ec301526000610e10015260008181610c4a0152610ca601526000610e8d01526116df6000f3fe6080604052600436106101795760003560e01c80638c0b5e22116100cb578063b2bdfa7b1161007f578063cc1776d311610059578063cc1776d314610453578063dba9d42014610469578063dd62ed3e1461048957600080fd5b8063b2bdfa7b146103d6578063bed9985014610428578063c9567bf91461043e57600080fd5b8063964f6d4f116100b0578063964f6d4f14610380578063974ea01e14610396578063a9059cbb146103b657600080fd5b80638c0b5e221461032457806395d89b411461033a57600080fd5b806342966c681161012d57806370a082311161010757806370a08231146102b6578063751039fc146102f957806386a711321461030e57600080fd5b806342966c68146102685780634f7041a51461028a57806365c0d0eb146102a057600080fd5b806318160ddd1161015e57806318160ddd1461020d57806323b872dd1461022c578063313ce5671461024c57600080fd5b806306fdde0314610185578063095ea7b3146101dd57600080fd5b3661018057005b600080fd5b34801561019157600080fd5b5060408051808201909152600d81527f50726f6f66206f6620416e6f6e0000000000000000000000000000000000000060208201525b6040516101d491906113b3565b60405180910390f35b3480156101e957600080fd5b506101fd6101f8366004611448565b6104dc565b60405190151581526020016101d4565b34801561021957600080fd5b506001545b6040519081526020016101d4565b34801561023857600080fd5b506101fd610247366004611472565b6104f3565b34801561025857600080fd5b50604051601281526020016101d4565b34801561027457600080fd5b506102886102833660046114ae565b610552565b005b34801561029657600080fd5b5061021e60035481565b3480156102ac57600080fd5b5061021e60075481565b3480156102c257600080fd5b5061021e6102d13660046114c7565b73ffffffffffffffffffffffffffffffffffffffff166000908152600a602052604090205490565b34801561030557600080fd5b5061028861055f565b34801561031a57600080fd5b5061021e60085481565b34801561033057600080fd5b5061021e60025481565b34801561034657600080fd5b5060408051808201909152600781527f307850726f6f660000000000000000000000000000000000000000000000000060208201526101c7565b34801561038c57600080fd5b5061021e60095481565b3480156103a257600080fd5b506102886103b13660046114e9565b61056f565b3480156103c257600080fd5b506101fd6103d1366004611448565b61062a565b3480156103e257600080fd5b506000546104039073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d4565b34801561043457600080fd5b5061021e60055481565b34801561044a57600080fd5b50610288610637565b34801561045f57600080fd5b5061021e60045481565b34801561047557600080fd5b506102886104843660046114c7565b610684565b34801561049557600080fd5b5061021e6104a4366004611515565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600b6020908152604080832093909416825291909152205490565b60006104e93384846106db565b5060015b92915050565b600061050084848461088f565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600b6020908152604080832033808552925290912054610548918691610543908690611577565b6106db565b5060019392505050565b61055c33826111a8565b50565b61056761138d565b600154600255565b61057761138d565b601481610584848661158a565b61058e919061158a565b11156105fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5461786573206d6f7265207468616e203230250000000000000000000000000060448201526064015b60405180910390fd5b61060683606461159d565b60035561061482606461159d565b60045561062281606461159d565b600555505050565b60006104e933848461088f565b61063f61138d565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905543600655565b61068c61138d565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b73ffffffffffffffffffffffffffffffffffffffff831661077d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105f2565b73ffffffffffffffffffffffffffffffffffffffff8216610820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105f2565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105f2565b633b9aca00811161099f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4d696e207472616e7366657220616d740000000000000000000000000000000060448201526064016105f2565b6007805482019055600954610e10014210610a1f5760085460075411156109dc5760c8600554603201116109d7576005805460320190555b610a0f565b603260055410610a0f57600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffce0190555b6007805460085560009055426009555b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604081205460ff1680610a78575073ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604090205460ff165b15610a8557506000610f57565b60005474010000000000000000000000000000000000000000900460ff1615801590610ab357506002548211155b610b3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4c61756e6368202f204d6178205478416d6f756e74203125206174206c61756e60448201527f636800000000000000000000000000000000000000000000000000000000000060648201526084016105f2565b6000547501000000000000000000000000000000000000000000900460ff16600103610c485773ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604081208054849290610b9a908490611577565b909155505073ffffffffffffffffffffffffffffffffffffffff83166000908152600a602052604081208054849290610bd490849061158a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3a91815260200190565b60405180910390a350505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ca45750600354610f57565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f5357306000908152600a6020526040902054690a968163f0a57b40000081118015610d3c57506000547501000000000000000000000000000000000000000000900460ff16155b15610f495769152d02c7e14af6800000811115610d60575069152d02c7e14af68000005b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000017815560408051600280825260608201835290916020830190803683370190505090503081600081518110610dd457610dd46115b4565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610e4257610e426115b4565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526040517f791ac9470000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac94790610eed90859060009086907f00000000000000000000000000000000000000000000000000000000000000009042906004016115e3565b600060405180830381600087803b158015610f0757600080fd5b505af1158015610f1b573d6000803e3d6000fd5b5050600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1690555050505b5050600454610f57565b5060005b801561116d57600061271060055484610f70919061159d565b610f7a919061166e565b90506000612710610f8b848661159d565b610f95919061166e565b90506000610fa3828461158a565b610fad9086611577565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600a6020526040812080549293508792909190610fe7908490611577565b909155505073ffffffffffffffffffffffffffffffffffffffff86166000908152600a60205260408120805483929061102190849061158a565b9091555050306000908152600a60205260408120805484929061104590849061158a565b92505081905550826001600082825461105e9190611577565b909155505060405183815260009073ffffffffffffffffffffffffffffffffffffffff8916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3604051828152309073ffffffffffffffffffffffffffffffffffffffff8916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a38573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161115d91815260200190565b60405180910390a35050506111a2565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604081208054849290610b9a908490611577565b50505050565b73ffffffffffffffffffffffffffffffffffffffff821661124b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105f2565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600a602052604090205481811015611301576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105f2565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600a6020526040812083830390556001805484929061133d908490611577565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610882565b60005473ffffffffffffffffffffffffffffffffffffffff1633146113b157600080fd5b565b600060208083528351808285015260005b818110156113e0578581018301518582016040015282016113c4565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461144357600080fd5b919050565b6000806040838503121561145b57600080fd5b6114648361141f565b946020939093013593505050565b60008060006060848603121561148757600080fd5b6114908461141f565b925061149e6020850161141f565b9150604084013590509250925092565b6000602082840312156114c057600080fd5b5035919050565b6000602082840312156114d957600080fd5b6114e28261141f565b9392505050565b6000806000606084860312156114fe57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561152857600080fd5b6115318361141f565b915061153f6020840161141f565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156104ed576104ed611548565b808201808211156104ed576104ed611548565b80820281158282048414176104ed576104ed611548565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561164057845173ffffffffffffffffffffffffffffffffffffffff168352938301939183019160010161160e565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b6000826116a4577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea26469706673582212209ebeca8f486db9c2e0e8645ebcaccb9dd3cba7825fc25e48c7f2135a66aa07ad64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101795760003560e01c80638c0b5e22116100cb578063b2bdfa7b1161007f578063cc1776d311610059578063cc1776d314610453578063dba9d42014610469578063dd62ed3e1461048957600080fd5b8063b2bdfa7b146103d6578063bed9985014610428578063c9567bf91461043e57600080fd5b8063964f6d4f116100b0578063964f6d4f14610380578063974ea01e14610396578063a9059cbb146103b657600080fd5b80638c0b5e221461032457806395d89b411461033a57600080fd5b806342966c681161012d57806370a082311161010757806370a08231146102b6578063751039fc146102f957806386a711321461030e57600080fd5b806342966c68146102685780634f7041a51461028a57806365c0d0eb146102a057600080fd5b806318160ddd1161015e57806318160ddd1461020d57806323b872dd1461022c578063313ce5671461024c57600080fd5b806306fdde0314610185578063095ea7b3146101dd57600080fd5b3661018057005b600080fd5b34801561019157600080fd5b5060408051808201909152600d81527f50726f6f66206f6620416e6f6e0000000000000000000000000000000000000060208201525b6040516101d491906113b3565b60405180910390f35b3480156101e957600080fd5b506101fd6101f8366004611448565b6104dc565b60405190151581526020016101d4565b34801561021957600080fd5b506001545b6040519081526020016101d4565b34801561023857600080fd5b506101fd610247366004611472565b6104f3565b34801561025857600080fd5b50604051601281526020016101d4565b34801561027457600080fd5b506102886102833660046114ae565b610552565b005b34801561029657600080fd5b5061021e60035481565b3480156102ac57600080fd5b5061021e60075481565b3480156102c257600080fd5b5061021e6102d13660046114c7565b73ffffffffffffffffffffffffffffffffffffffff166000908152600a602052604090205490565b34801561030557600080fd5b5061028861055f565b34801561031a57600080fd5b5061021e60085481565b34801561033057600080fd5b5061021e60025481565b34801561034657600080fd5b5060408051808201909152600781527f307850726f6f660000000000000000000000000000000000000000000000000060208201526101c7565b34801561038c57600080fd5b5061021e60095481565b3480156103a257600080fd5b506102886103b13660046114e9565b61056f565b3480156103c257600080fd5b506101fd6103d1366004611448565b61062a565b3480156103e257600080fd5b506000546104039073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d4565b34801561043457600080fd5b5061021e60055481565b34801561044a57600080fd5b50610288610637565b34801561045f57600080fd5b5061021e60045481565b34801561047557600080fd5b506102886104843660046114c7565b610684565b34801561049557600080fd5b5061021e6104a4366004611515565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600b6020908152604080832093909416825291909152205490565b60006104e93384846106db565b5060015b92915050565b600061050084848461088f565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600b6020908152604080832033808552925290912054610548918691610543908690611577565b6106db565b5060019392505050565b61055c33826111a8565b50565b61056761138d565b600154600255565b61057761138d565b601481610584848661158a565b61058e919061158a565b11156105fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5461786573206d6f7265207468616e203230250000000000000000000000000060448201526064015b60405180910390fd5b61060683606461159d565b60035561061482606461159d565b60045561062281606461159d565b600555505050565b60006104e933848461088f565b61063f61138d565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905543600655565b61068c61138d565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b73ffffffffffffffffffffffffffffffffffffffff831661077d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105f2565b73ffffffffffffffffffffffffffffffffffffffff8216610820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105f2565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105f2565b633b9aca00811161099f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4d696e207472616e7366657220616d740000000000000000000000000000000060448201526064016105f2565b6007805482019055600954610e10014210610a1f5760085460075411156109dc5760c8600554603201116109d7576005805460320190555b610a0f565b603260055410610a0f57600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffce0190555b6007805460085560009055426009555b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604081205460ff1680610a78575073ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604090205460ff165b15610a8557506000610f57565b60005474010000000000000000000000000000000000000000900460ff1615801590610ab357506002548211155b610b3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4c61756e6368202f204d6178205478416d6f756e74203125206174206c61756e60448201527f636800000000000000000000000000000000000000000000000000000000000060648201526084016105f2565b6000547501000000000000000000000000000000000000000000900460ff16600103610c485773ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604081208054849290610b9a908490611577565b909155505073ffffffffffffffffffffffffffffffffffffffff83166000908152600a602052604081208054849290610bd490849061158a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3a91815260200190565b60405180910390a350505050565b7f0000000000000000000000007bbdd2d776112c302644c9715b9babb81a8ad27473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ca45750600354610f57565b7f0000000000000000000000007bbdd2d776112c302644c9715b9babb81a8ad27473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f5357306000908152600a6020526040902054690a968163f0a57b40000081118015610d3c57506000547501000000000000000000000000000000000000000000900460ff16155b15610f495769152d02c7e14af6800000811115610d60575069152d02c7e14af68000005b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000017815560408051600280825260608201835290916020830190803683370190505090503081600081518110610dd457610dd46115b4565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610e4257610e426115b4565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526040517f791ac9470000000000000000000000000000000000000000000000000000000081527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063791ac94790610eed90859060009086907f000000000000000000000000c8a32b4d0602e8e624fcf128b58f75e307898cf69042906004016115e3565b600060405180830381600087803b158015610f0757600080fd5b505af1158015610f1b573d6000803e3d6000fd5b5050600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1690555050505b5050600454610f57565b5060005b801561116d57600061271060055484610f70919061159d565b610f7a919061166e565b90506000612710610f8b848661159d565b610f95919061166e565b90506000610fa3828461158a565b610fad9086611577565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600a6020526040812080549293508792909190610fe7908490611577565b909155505073ffffffffffffffffffffffffffffffffffffffff86166000908152600a60205260408120805483929061102190849061158a565b9091555050306000908152600a60205260408120805484929061104590849061158a565b92505081905550826001600082825461105e9190611577565b909155505060405183815260009073ffffffffffffffffffffffffffffffffffffffff8916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3604051828152309073ffffffffffffffffffffffffffffffffffffffff8916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a38573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161115d91815260200190565b60405180910390a35050506111a2565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604081208054849290610b9a908490611577565b50505050565b73ffffffffffffffffffffffffffffffffffffffff821661124b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105f2565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600a602052604090205481811015611301576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105f2565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600a6020526040812083830390556001805484929061133d908490611577565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610882565b60005473ffffffffffffffffffffffffffffffffffffffff1633146113b157600080fd5b565b600060208083528351808285015260005b818110156113e0578581018301518582016040015282016113c4565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461144357600080fd5b919050565b6000806040838503121561145b57600080fd5b6114648361141f565b946020939093013593505050565b60008060006060848603121561148757600080fd5b6114908461141f565b925061149e6020850161141f565b9150604084013590509250925092565b6000602082840312156114c057600080fd5b5035919050565b6000602082840312156114d957600080fd5b6114e28261141f565b9392505050565b6000806000606084860312156114fe57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561152857600080fd5b6115318361141f565b915061153f6020840161141f565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156104ed576104ed611548565b808201808211156104ed576104ed611548565b80820281158282048414176104ed576104ed611548565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561164057845173ffffffffffffffffffffffffffffffffffffffff168352938301939183019160010161160e565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b6000826116a4577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea26469706673582212209ebeca8f486db9c2e0e8645ebcaccb9dd3cba7825fc25e48c7f2135a66aa07ad64736f6c63430008120033

Deployed Bytecode Sourcemap

2144:8988:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:93;;;;;;;;;;-1:-1:-1;4393:22:0;;;;;;;;;;;;;;;;;4330:93;;;;;;;:::i;:::-;;;;;;;;5245:193;;;;;;;;;;-1:-1:-1;5245:193:0;;;;;:::i;:::-;;:::i;:::-;;;1251:14:1;;1244:22;1226:41;;1214:2;1199:18;5245:193:0;1086:187:1;4612:100:0;;;;;;;;;;-1:-1:-1;4692:12:0;;4612:100;;;1424:25:1;;;1412:2;1397:18;4612:100:0;1278:177:1;5446:350:0;;;;;;;;;;-1:-1:-1;5446:350:0;;;;;:::i;:::-;;:::i;4528:76::-;;;;;;;;;;-1:-1:-1;4528:76:0;;4594:2;1935:36:1;;1923:2;1908:18;4528:76:0;1793:184:1;6905:83:0;;;;;;;;;;-1:-1:-1;6905:83:0;;;;;:::i;:::-;;:::i;:::-;;2687:21;;;;;;;;;;;;;;;;2820:40;;;;;;;;;;;;;;;;4720:118;;;;;;;;;;-1:-1:-1;4720:118:0;;;;;:::i;:::-;4813:17;;4786:7;4813:17;;;:8;:17;;;;;;;4720:118;6450:101;;;;;;;;;;;;;:::i;2867:41::-;;;;;;;;;;;;;;;;2524:39;;;;;;;;;;;;;;;;4431:89;;;;;;;;;;-1:-1:-1;4496:16:0;;;;;;;;;;;;;;;;;4431:89;;2915:48;;;;;;;;;;;;;;;;6559:338;;;;;;;;;;-1:-1:-1;6559:338:0;;;;;:::i;:::-;;:::i;4846:199::-;;;;;;;;;;-1:-1:-1;4846:199:0;;;;;:::i;:::-;;:::i;2359:34::-;;;;;;;;;;-1:-1:-1;2359:34:0;;;;;;;;;;;2855:42:1;2843:55;;;2825:74;;2813:2;2798:18;2359:34:0;2679:226:1;2744:29:0;;;;;;;;;;;;;;;;6181:121;;;;;;;;;;;;;:::i;2715:22::-;;;;;;;;;;;;;;;;6310:132;;;;;;;;;;-1:-1:-1;6310:132:0;;;;;:::i;:::-;;:::i;5053:184::-;;;;;;;;;;-1:-1:-1;5053:184:0;;;;;:::i;:::-;5202:18;;;;5170:7;5202:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5053:184;5245:193;5347:4;5369:39;799:10;5392:7;5401:6;5369:8;:39::i;:::-;-1:-1:-1;5426:4:0;5245:193;;;;;:::o;5446:350::-;5578:4;5595:36;5605:6;5613:9;5624:6;5595:9;:36::i;:::-;5713:19;;;;;;;:11;:19;;;;;;;;799:10;5713:33;;;;;;;;;5642:124;;5665:6;;5713:42;;5749:6;;5713:42;:::i;:::-;5642:8;:124::i;:::-;-1:-1:-1;5784:4:0;5446:350;;;;;:::o;6905:83::-;6955:25;6961:10;6973:6;6955:5;:25::i;:::-;6905:83;:::o;6450:101::-;6495:11;:9;:11::i;:::-;6531:12;;6517:11;:26;6450:101::o;6559:338::-;6682:11;:9;:11::i;:::-;6752:2;6737:11;6712:22;6724:10;6712:9;:22;:::i;:::-;:36;;;;:::i;:::-;:42;;6704:74;;;;;;;3829:2:1;6704:74:0;;;3811:21:1;3868:2;3848:18;;;3841:30;3907:21;3887:18;;;3880:49;3946:18;;6704:74:0;;;;;;;;;6798:15;:9;6810:3;6798:15;:::i;:::-;6789:6;:24;6834:16;:10;6847:3;6834:16;:::i;:::-;6824:7;:26;6872:17;:11;6886:3;6872:17;:::i;:::-;6861:8;:28;-1:-1:-1;;;6559:338:0:o;4846:199::-;4951:4;4973:42;799:10;4997:9;5008:6;4973:9;:42::i;6181:121::-;6225:11;:9;:11::i;:::-;6247:6;:10;;;;;;;;6282:12;6268:11;:26;6181:121::o;6310:132::-;6373:11;:9;:11::i;:::-;6395:32;;;;;;:24;:32;;;;;:39;;;;6430:4;6395:39;;;6310:132::o;5804:369::-;5931:19;;;5923:68;;;;;;;4350:2:1;5923:68:0;;;4332:21:1;4389:2;4369:18;;;4362:30;4428:34;4408:18;;;4401:62;4499:6;4479:18;;;4472:34;4523:19;;5923:68:0;4148:400:1;5923:68:0;6010:21;;;6002:68;;;;;;;4755:2:1;6002:68:0;;;4737:21:1;4794:2;4774:18;;;4767:30;4833:34;4813:18;;;4806:62;4904:4;4884:18;;;4877:32;4926:19;;6002:68:0;4553:398:1;6002:68:0;6081:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6133:32;;1424:25:1;;;6133:32:0;;1397:18:1;6133:32:0;;;;;;;;5804:369;;;:::o;7470:3622::-;7592:18;;;7584:68;;;;;;;5158:2:1;7584:68:0;;;5140:21:1;5197:2;5177:18;;;5170:30;5236:34;5216:18;;;5209:62;5307:7;5287:18;;;5280:35;5332:19;;7584:68:0;4956:401:1;7584:68:0;7680:3;7671:6;:12;7663:41;;;;;;;5564:2:1;7663:41:0;;;5546:21:1;5603:2;5583:18;;;5576:30;5642:18;5622;;;5615:46;5678:18;;7663:41:0;5362:340:1;7663:41:0;7771:25;:35;;;;;;7844:15;;3013:10;7844:33;7825:15;:52;7821:861;;7971:26;;7943:25;;:54;7939:555;;;8043:3;8026:8;;8037:2;8026:13;:20;8022:141;;8125:8;:14;;8137:2;8125:14;;;8022:141;7939:555;;;8330:2;8318:8;;:14;8314:139;;8415:8;:14;;;;;;8314:139;8541:25;;;8512:26;:54;-1:-1:-1;8585:29:0;;8651:15;8633;:33;7821:861;8733:30;;;8706:12;8733:30;;;:24;:30;;;;;;;;;:62;;-1:-1:-1;8767:28:0;;;;;;;:24;:28;;;;;;;;8733:62;8729:1602;;;-1:-1:-1;8819:1:0;8729:1602;;;8879:6;;;;;;;:11;;;;:36;;;8904:11;;8894:6;:21;;8879:36;8853:132;;;;;;;5909:2:1;8853:132:0;;;5891:21:1;5948:2;5928:18;;;5921:30;5987:34;5967:18;;;5960:62;6058:4;6038:18;;;6031:32;6080:19;;8853:132:0;5707:398:1;8853:132:0;9006:16;;;;;;;9026:1;9006:21;9002:237;;9083:14;;;;;;;:8;:14;;;;;:24;;9101:6;;9083:14;:24;;9101:6;;9083:24;:::i;:::-;;;;-1:-1:-1;;9126:12:0;;;;;;;:8;:12;;;;;:22;;9142:6;;9126:12;:22;;9142:6;;9126:22;:::i;:::-;;;;;;;;9187:2;9172:26;;9181:4;9172:26;;;9191:6;9172:26;;;;1424:25:1;;1412:2;1397:18;;1278:177;9172:26:0;;;;;;;;9217:7;7470:3622;;;:::o;9002:237::-;9267:13;9259:21;;:4;:21;;;9255:1065;;-1:-1:-1;9308:6:0;;9255:1065;;;9346:13;9340:19;;:2;:19;;;9336:984;;9420:4;9380:20;9403:23;;;:8;:23;;;;;;2669:9;9449:22;;:47;;;;-1:-1:-1;9475:16:0;;;;;;;:21;9449:47;9445:778;;;2610:10;9525:12;:25;9521:107;;;-1:-1:-1;2610:10:0;9521:107;9650:16;:20;;;;;;;;9717:16;;;9731:1;9717:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9717:16:0;9693:40;;9774:4;9756;9761:1;9756:7;;;;;;;;:::i;:::-;;;;;;:23;;;;;;;;;;;9812:4;9802;9807:1;9802:7;;;;;;;;:::i;:::-;:14;;;;:7;;;;;;;;;:14;9839:321;;;;;:15;:92;;;;;;:321;;9962:12;;10005:1;;10037:4;;10072:15;;10118;;9839:321;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10202:1:0;10183:20;;;;;;-1:-1:-1;;;9445:778:0;-1:-1:-1;;10248:7:0;;9336:984;;;-1:-1:-1;10303:1:0;9336:984;10349:9;;10345:740;;10375:18;10416:5;10405:8;;10396:6;:17;;;;:::i;:::-;:25;;;;:::i;:::-;10375:46;-1:-1:-1;10436:17:0;10472:5;10456:13;10465:4;10456:6;:13;:::i;:::-;:21;;;;:::i;:::-;10436:41;-1:-1:-1;10492:22:0;10527;10436:41;10527:10;:22;:::i;:::-;10517:33;;:6;:33;:::i;:::-;10567:14;;;;;;;:8;:14;;;;;:24;;10492:58;;-1:-1:-1;10585:6:0;;10567:14;;;:24;;10585:6;;10567:24;:::i;:::-;;;;-1:-1:-1;;10606:12:0;;;;;;;:8;:12;;;;;:30;;10622:14;;10606:12;:30;;10622:14;;10606:30;:::i;:::-;;;;-1:-1:-1;;10668:4:0;10651:23;;;;:8;:23;;;;;:36;;10678:9;;10651:23;:36;;10678:9;;10651:36;:::i;:::-;;;;;;;;10718:10;10702:12;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;10748:38:0;;1424:25:1;;;10771:1:0;;10748:38;;;;;;1412:2:1;1397:18;10748:38:0;;;;;;;10806:40;;1424:25:1;;;10829:4:0;;10806:40;;;;;;1412:2:1;1397:18;10806:40:0;;;;;;;10881:2;10866:34;;10875:4;10866:34;;;10885:14;10866:34;;;;1424:25:1;;1412:2;1397:18;;1278:177;10866:34:0;;;;;;;;10360:552;;;10345:740;;;10964:14;;;;;;;:8;:14;;;;;:24;;10982:6;;10964:14;:24;;10982:6;;10964:24;:::i;10345:740::-;7573:3519;7470:3622;;;:::o;6996:466::-;7080:21;;;7072:67;;;;;;;8008:2:1;7072:67:0;;;7990:21:1;8047:2;8027:18;;;8020:30;8086:34;8066:18;;;8059:62;8157:3;8137:18;;;8130:31;8178:19;;7072:67:0;7806:397:1;7072:67:0;7177:17;;;7152:22;7177:17;;;:8;:17;;;;;;7213:24;;;;7205:71;;;;;;;8410:2:1;7205:71:0;;;8392:21:1;8449:2;8429:18;;;8422:30;8488:34;8468:18;;;8461:62;8559:4;8539:18;;;8532:32;8581:19;;7205:71:0;8208:398:1;7205:71:0;7312:17;;;;;;;:8;:17;;;;;7332:23;;;7312:43;;7377:12;:22;;7349:6;;7312:17;7377:22;;7349:6;;7377:22;:::i;:::-;;;;-1:-1:-1;;7417:37:0;;1424:25:1;;;7443:1:0;;7417:37;;;;;;1412:2:1;1397:18;7417:37:0;1278:177:1;3223:83:0;3277:6;;:20;:6;3287:10;3277:20;3269:29;;;;;;3223:83::o;14:607:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;612:2;542:66;537:2;529:6;525:15;521:88;510:9;506:104;502:113;494:121;;;;14:607;;;;:::o;626:196::-;694:20;;754:42;743:54;;733:65;;723:93;;812:1;809;802:12;723:93;626:196;;;:::o;827:254::-;895:6;903;956:2;944:9;935:7;931:23;927:32;924:52;;;972:1;969;962:12;924:52;995:29;1014:9;995:29;:::i;:::-;985:39;1071:2;1056:18;;;;1043:32;;-1:-1:-1;;;827:254:1:o;1460:328::-;1537:6;1545;1553;1606:2;1594:9;1585:7;1581:23;1577:32;1574:52;;;1622:1;1619;1612:12;1574:52;1645:29;1664:9;1645:29;:::i;:::-;1635:39;;1693:38;1727:2;1716:9;1712:18;1693:38;:::i;:::-;1683:48;;1778:2;1767:9;1763:18;1750:32;1740:42;;1460:328;;;;;:::o;1982:180::-;2041:6;2094:2;2082:9;2073:7;2069:23;2065:32;2062:52;;;2110:1;2107;2100:12;2062:52;-1:-1:-1;2133:23:1;;1982:180;-1:-1:-1;1982:180:1:o;2167:186::-;2226:6;2279:2;2267:9;2258:7;2254:23;2250:32;2247:52;;;2295:1;2292;2285:12;2247:52;2318:29;2337:9;2318:29;:::i;:::-;2308:39;2167:186;-1:-1:-1;;;2167:186:1:o;2358:316::-;2435:6;2443;2451;2504:2;2492:9;2483:7;2479:23;2475:32;2472:52;;;2520:1;2517;2510:12;2472:52;-1:-1:-1;;2543:23:1;;;2613:2;2598:18;;2585:32;;-1:-1:-1;2664:2:1;2649:18;;;2636:32;;2358:316;-1:-1:-1;2358:316:1:o;2910:260::-;2978:6;2986;3039:2;3027:9;3018:7;3014:23;3010:32;3007:52;;;3055:1;3052;3045:12;3007:52;3078:29;3097:9;3078:29;:::i;:::-;3068:39;;3126:38;3160:2;3149:9;3145:18;3126:38;:::i;:::-;3116:48;;2910:260;;;;;:::o;3175:184::-;3227:77;3224:1;3217:88;3324:4;3321:1;3314:15;3348:4;3345:1;3338:15;3364:128;3431:9;;;3452:11;;;3449:37;;;3466:18;;:::i;3497:125::-;3562:9;;;3583:10;;;3580:36;;;3596:18;;:::i;3975:168::-;4048:9;;;4079;;4096:15;;;4090:22;;4076:37;4066:71;;4117:18;;:::i;6299:184::-;6351:77;6348:1;6341:88;6448:4;6445:1;6438:15;6472:4;6469:1;6462:15;6488:1034;6758:4;6806:3;6795:9;6791:19;6837:6;6826:9;6819:25;6863:2;6901:6;6896:2;6885:9;6881:18;6874:34;6944:3;6939:2;6928:9;6924:18;6917:31;6968:6;7003;6997:13;7034:6;7026;7019:22;7072:3;7061:9;7057:19;7050:26;;7111:2;7103:6;7099:15;7085:29;;7132:1;7142:218;7156:6;7153:1;7150:13;7142:218;;;7221:13;;7236:42;7217:62;7205:75;;7335:15;;;;7300:12;;;;7178:1;7171:9;7142:218;;;-1:-1:-1;;7428:42:1;7416:55;;;;7411:2;7396:18;;7389:83;-1:-1:-1;;;7503:3:1;7488:19;7481:35;7377:3;6488:1034;-1:-1:-1;;;6488:1034:1:o;7527:274::-;7567:1;7593;7583:189;;7628:77;7625:1;7618:88;7729:4;7726:1;7719:15;7757:4;7754:1;7747:15;7583:189;-1:-1:-1;7786:9:1;;7527:274::o

Swarm Source

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