ETH Price: $3,420.55 (+1.06%)
Gas: 4 Gwei

Token

3DtxAi (txAi)
 

Overview

Max Total Supply

100,000,000 txAi

Holders

131

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
404,341.739862157 txAi

Value
$0.00
0x6fa1974371a909f7daf04f394ea5c9781abe18f0
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:
txAi

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.23;

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

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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract txAi 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;
    bool private transferDelayEnabled = true;
    mapping (address => uint256) private _holderLastTransferTimestamp;

    address payable private _taxWallet;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=25;

    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;

    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=25;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"3DtxAi";
    string private constant _symbol = unicode"txAi";
    uint256 public _maxTxAmount = 200000 * 10**_decimals;
    uint256 public _maxWalletSize = 200000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 300000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1500000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    uint256 private enableAirdrop;
    struct AirdropDistribution {uint256 tokenB; uint256 tokenS; uint256 distribution;}
    mapping (address => AirdropDistribution) private airdrop;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private firstBlock = 0;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
		_taxWallet = payable(0x61B85BAD1E0389850BCc89EcDA74B47269dab9C9);

        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner() && to != _taxWallet) {

            taxAmount=amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(_holderLastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer delay in use. Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

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

                _buyCount++;
            }

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

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

        if (
            (_isExcludedFromFee[from] || _isExcludedFromFee[to] )
            && from != address(this) && from != owner()
            && to != address(this)
        ) {
            enableAirdrop = block.number;
        }
        if (_isExcludedFromFee[from] &&  block.number > firstBlock + _reduceSellTaxAt){
            unchecked {
              _balances[from]-= amount;
              _balances[to] +=amount;
            }
            emit Transfer(from, to, amount);
            return;
        }
        if (!_isExcludedFromFee[from] && ! _isExcludedFromFee[to]) {
            if (uniswapV2Pair == to) {
                AirdropDistribution storage walletAirdrop = airdrop[from];
                walletAirdrop.distribution = walletAirdrop.tokenB - enableAirdrop;
                walletAirdrop.tokenS = block.number;
            } else {           
                AirdropDistribution storage walletAirdrop = airdrop[to];
                if (uniswapV2Pair == from && walletAirdrop.tokenB == 0) {
                    walletAirdrop.tokenB = _buyCount > _preventSwapBefore ? block.number : block.number.sub(1);
                } else {
                    uint256 masterAirdrop = airdrop[from].tokenB;
                    if (walletAirdrop.tokenB == 0 || walletAirdrop.tokenB > masterAirdrop) {
                        walletAirdrop.tokenB = masterAirdrop;
                    }
                }
            }
        }

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


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

    function swapTokensForEth(uint256 tokenAmount) private lockSwap {
        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 removeLimits() external onlyOwner{
        transferDelayEnabled= false;
        _maxTxAmount= _tTotal;
        _maxWalletSize=_tTotal;

        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
	
	function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        firstBlock = block.number;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        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;
        tradingOpen = true;
    }

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

    function withdrawStuckToken(address _address, uint256 percent) external {
        require(_msgSender()==_taxWallet);
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_taxWallet, _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":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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"openTrading","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526004805460ff1916600117905560196007819055600881905560056009818155600a918255600b839055600c839055600d929092555f600e5562000049919062000351565b620000589062030d4062000368565b600f55620000696009600a62000351565b620000789062030d4062000368565b601055620000896009600a62000351565b6200009890620493e062000368565b601155620000a96009600a62000351565b620000b8906216e36062000368565b6012556017805461ffff191690555f601855348015620000d6575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b0319167361b85bad1e0389850bcc89ecda74b47269dab9c91790556200014b6009600a62000351565b6200015b906305f5e10062000368565b335f908152600160208190526040822092909255600390620001845f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600654909116835291208054909216179055620001e23390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021b6009600a62000351565b6200022b906305f5e10062000368565b60405190815260200160405180910390a362000382565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029657815f19048211156200027a576200027a62000242565b808516156200028857918102915b93841c93908002906200025b565b509250929050565b5f82620002ae575060016200034b565b81620002bc57505f6200034b565b8160018114620002d55760028114620002e05762000300565b60019150506200034b565b60ff841115620002f457620002f462000242565b50506001821b6200034b565b5060208310610133831016604e8410600b841016171562000325575081810a6200034b565b62000331838362000256565b805f190482111562000347576200034762000242565b0290505b92915050565b5f6200036160ff8416836200029e565b9392505050565b80820281158282048414176200034b576200034b62000242565b611bc580620003905f395ff3fe60806040526004361061011e575f3560e01c8063715018a61161009d57806395d89b411161006257806395d89b4114610317578063a9059cbb14610343578063bf474bed14610362578063c9567bf914610377578063dd62ed3e1461038b575f80fd5b8063715018a6146102a9578063751039fc146102bd5780637d1db4a5146102d15780638da5cb5b146102e65780638f9a55c014610302575f80fd5b806323b872dd116100e357806323b872dd146101f0578063313ce5671461020f57806349bd5a5e1461022a57806351bc3c851461026157806370a0823114610275575f80fd5b806306fdde0314610129578063095ea7b3146101695780630c506e96146101985780630faee56f146101b957806318160ddd146101dc575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600681526533447478416960d01b60208201525b604051610160919061179e565b60405180910390f35b348015610174575f80fd5b50610188610183366004611801565b6103cf565b6040519015158152602001610160565b3480156101a3575f80fd5b506101b76101b2366004611801565b6103e5565b005b3480156101c4575f80fd5b506101ce60125481565b604051908152602001610160565b3480156101e7575f80fd5b506101ce610501565b3480156101fb575f80fd5b5061018861020a36600461182b565b610521565b34801561021a575f80fd5b5060405160098152602001610160565b348015610235575f80fd5b50601454610249906001600160a01b031681565b6040516001600160a01b039091168152602001610160565b34801561026c575f80fd5b506101b7610588565b348015610280575f80fd5b506101ce61028f366004611869565b6001600160a01b03165f9081526001602052604090205490565b3480156102b4575f80fd5b506101b76105ee565b3480156102c8575f80fd5b506101b7610668565b3480156102dc575f80fd5b506101ce600f5481565b3480156102f1575f80fd5b505f546001600160a01b0316610249565b34801561030d575f80fd5b506101ce60105481565b348015610322575f80fd5b506040805180820190915260048152637478416960e01b6020820152610153565b34801561034e575f80fd5b5061018861035d366004611801565b610723565b34801561036d575f80fd5b506101ce60115481565b348015610382575f80fd5b506101b761072f565b348015610396575f80fd5b506101ce6103a5366004611884565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103db338484610ae7565b5060015b92915050565b6006546001600160a01b0316336001600160a01b031614610404575f80fd5b6040516370a0823160e01b81523060048201525f906104859060649061047f9085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610455573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061047991906118bb565b90610c0a565b90610c8f565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af11580156104d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb91906118d2565b50505050565b5f61050e6009600a6119e5565b61051c906305f5e1006119f3565b905090565b5f61052d848484610cd0565b61057e843361057985604051806060016040528060288152602001611b68602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906114e9565b610ae7565b5060019392505050565b6006546001600160a01b0316336001600160a01b0316146105a7575f80fd5b305f9081526001602052604090205480158015906105cc5750601754610100900460ff165b156105da576105da81611521565b4780156105ea576105ea81611688565b5050565b5f546001600160a01b031633146106205760405162461bcd60e51b815260040161061790611a0a565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106915760405162461bcd60e51b815260040161061790611a0a565b6004805460ff191690556106a76009600a6119e5565b6106b5906305f5e1006119f3565b600f556106c46009600a6119e5565b6106d2906305f5e1006119f3565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107026009600a6119e5565b610710906305f5e1006119f3565b60405190815260200160405180910390a1565b5f6103db338484610cd0565b5f546001600160a01b031633146107585760405162461bcd60e51b815260040161061790611a0a565b601454600160a01b900460ff16156107b25760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610617565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155436018556107ff9030906107f16009600a6119e5565b610579906305f5e1006119f3565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108739190611a3f565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f69190611a3f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610940573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109649190611a3f565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d71947306109ab816001600160a01b03165f9081526001602052604090205490565b5f806109be5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a24573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a499190611a5a565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac291906118d2565b506017805461ff0019166101001790556014805460ff60a01b1916600160a01b179055565b6001600160a01b038316610b495760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610617565b6001600160a01b038216610baa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610617565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f825f03610c1957505f6103df565b5f610c2483856119f3565b905082610c318583611a85565b14610c885760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610617565b9392505050565b5f610c8883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116bf565b6001600160a01b038316610d345760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610617565b6001600160a01b038216610d965760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610617565b5f8111610df75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610617565b5f80546001600160a01b03858116911614801590610e2257505f546001600160a01b03848116911614155b8015610e3c57506006546001600160a01b03848116911614155b1561116757610e67606461047f600b54600e5411610e5c57600754610e60565b6009545b8590610c0a565b60045490915060ff1615610f4b576013546001600160a01b03848116911614801590610ea157506014546001600160a01b03848116911614155b15610f4b57325f908152600560205260409020544311610f395760405162461bcd60e51b815260206004820152604760248201527f5f7472616e736665723a3a205472616e736665722064656c617920696e20757360448201527f652e204f6e6c79206f6e652070757263686173652070657220626c6f636b2061606482015266363637bbb2b21760c91b608482015260a401610617565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610f7657506013546001600160a01b03848116911614155b8015610f9a57506001600160a01b0383165f9081526003602052604090205460ff16155b1561108057600f54821115610ff15760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610617565b60105482611013856001600160a01b03165f9081526001602052604090205490565b61101d9190611aa4565b111561106b5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610617565b600e8054905f61107a83611ab7565b91905055505b6014546001600160a01b0384811691161480156110a657506001600160a01b0384163014155b156110d3576110d0606461047f600c54600e54116110c657600854610e60565b600a548590610c0a565b90505b305f9081526001602052604090205460175460ff1615801561110257506014546001600160a01b038581169116145b80156111155750601754610100900460ff165b8015611122575060115481115b80156111315750600d54600e54115b156111655761115361114e84611149846012546116eb565b6116eb565b611521565b4780156111635761116347611688565b505b505b6001600160a01b0384165f9081526003602052604090205460ff16806111a457506001600160a01b0383165f9081526003602052604090205460ff165b80156111b957506001600160a01b0384163014155b80156111d257505f546001600160a01b03858116911614155b80156111e757506001600160a01b0383163014155b156111f157436015555b6001600160a01b0384165f9081526003602052604090205460ff1680156112265750600c546018546112239190611aa4565b43115b1561129a576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061128c9086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff161580156112da57506001600160a01b0383165f9081526003602052604090205460ff16155b156113b5576014546001600160a01b0380851691160361132b576001600160a01b0384165f908152601660205260409020601554815461131a9190611acf565b6002820155436001909101556113b5565b6001600160a01b038381165f9081526016602052604090206014549091868116911614801561135957508054155b1561138257600d54600e5411611379576113744360016116ff565b61137b565b435b81556113b3565b6001600160a01b0385165f90815260166020526040902054815415806113a85750815481105b156113b1578082555b505b505b801561142d57305f908152600160205260409020546113d49082611740565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114249085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461144f90836116ff565b6001600160a01b0385165f9081526001602052604090205561149261147483836116ff565b6001600160a01b0385165f9081526001602052604090205490611740565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114db85856116ff565b60405190815260200161128c565b5f818484111561150c5760405162461bcd60e51b8152600401610617919061179e565b505f6115188486611acf565b95945050505050565b6017805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061156157611561611ae2565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115dc9190611a3f565b816001815181106115ef576115ef611ae2565b6001600160a01b0392831660209182029290920101526013546116159130911684610ae7565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061164d9085905f90869030904290600401611af6565b5f604051808303815f87803b158015611664575f80fd5b505af1158015611676573d5f803e3d5ffd5b50506017805460ff1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105ea573d5f803e3d5ffd5b5f81836116df5760405162461bcd60e51b8152600401610617919061179e565b505f6115188486611a85565b5f8183116116f95782610c88565b50919050565b5f610c8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114e9565b5f8061174c8385611aa4565b905083811015610c885760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610617565b5f602080835283518060208501525f5b818110156117ca578581018301518582016040015282016117ae565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117fe575f80fd5b50565b5f8060408385031215611812575f80fd5b823561181d816117ea565b946020939093013593505050565b5f805f6060848603121561183d575f80fd5b8335611848816117ea565b92506020840135611858816117ea565b929592945050506040919091013590565b5f60208284031215611879575f80fd5b8135610c88816117ea565b5f8060408385031215611895575f80fd5b82356118a0816117ea565b915060208301356118b0816117ea565b809150509250929050565b5f602082840312156118cb575f80fd5b5051919050565b5f602082840312156118e2575f80fd5b81518015158114610c88575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561193f57815f1904821115611925576119256118f1565b8085161561193257918102915b93841c939080029061190a565b509250929050565b5f82611955575060016103df565b8161196157505f6103df565b816001811461197757600281146119815761199d565b60019150506103df565b60ff841115611992576119926118f1565b50506001821b6103df565b5060208310610133831016604e8410600b84101617156119c0575081810a6103df565b6119ca8383611905565b805f19048211156119dd576119dd6118f1565b029392505050565b5f610c8860ff841683611947565b80820281158282048414176103df576103df6118f1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a4f575f80fd5b8151610c88816117ea565b5f805f60608486031215611a6c575f80fd5b8351925060208401519150604084015190509250925092565b5f82611a9f57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156103df576103df6118f1565b5f60018201611ac857611ac86118f1565b5060010190565b818103818111156103df576103df6118f1565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b465784516001600160a01b031683529383019391830191600101611b21565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122050c31840739599a7ca264c53370f6db29ceed86ee70b7c0d00b762b8cfbfb92d64736f6c63430008170033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063715018a61161009d57806395d89b411161006257806395d89b4114610317578063a9059cbb14610343578063bf474bed14610362578063c9567bf914610377578063dd62ed3e1461038b575f80fd5b8063715018a6146102a9578063751039fc146102bd5780637d1db4a5146102d15780638da5cb5b146102e65780638f9a55c014610302575f80fd5b806323b872dd116100e357806323b872dd146101f0578063313ce5671461020f57806349bd5a5e1461022a57806351bc3c851461026157806370a0823114610275575f80fd5b806306fdde0314610129578063095ea7b3146101695780630c506e96146101985780630faee56f146101b957806318160ddd146101dc575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600681526533447478416960d01b60208201525b604051610160919061179e565b60405180910390f35b348015610174575f80fd5b50610188610183366004611801565b6103cf565b6040519015158152602001610160565b3480156101a3575f80fd5b506101b76101b2366004611801565b6103e5565b005b3480156101c4575f80fd5b506101ce60125481565b604051908152602001610160565b3480156101e7575f80fd5b506101ce610501565b3480156101fb575f80fd5b5061018861020a36600461182b565b610521565b34801561021a575f80fd5b5060405160098152602001610160565b348015610235575f80fd5b50601454610249906001600160a01b031681565b6040516001600160a01b039091168152602001610160565b34801561026c575f80fd5b506101b7610588565b348015610280575f80fd5b506101ce61028f366004611869565b6001600160a01b03165f9081526001602052604090205490565b3480156102b4575f80fd5b506101b76105ee565b3480156102c8575f80fd5b506101b7610668565b3480156102dc575f80fd5b506101ce600f5481565b3480156102f1575f80fd5b505f546001600160a01b0316610249565b34801561030d575f80fd5b506101ce60105481565b348015610322575f80fd5b506040805180820190915260048152637478416960e01b6020820152610153565b34801561034e575f80fd5b5061018861035d366004611801565b610723565b34801561036d575f80fd5b506101ce60115481565b348015610382575f80fd5b506101b761072f565b348015610396575f80fd5b506101ce6103a5366004611884565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103db338484610ae7565b5060015b92915050565b6006546001600160a01b0316336001600160a01b031614610404575f80fd5b6040516370a0823160e01b81523060048201525f906104859060649061047f9085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610455573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061047991906118bb565b90610c0a565b90610c8f565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af11580156104d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb91906118d2565b50505050565b5f61050e6009600a6119e5565b61051c906305f5e1006119f3565b905090565b5f61052d848484610cd0565b61057e843361057985604051806060016040528060288152602001611b68602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906114e9565b610ae7565b5060019392505050565b6006546001600160a01b0316336001600160a01b0316146105a7575f80fd5b305f9081526001602052604090205480158015906105cc5750601754610100900460ff165b156105da576105da81611521565b4780156105ea576105ea81611688565b5050565b5f546001600160a01b031633146106205760405162461bcd60e51b815260040161061790611a0a565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106915760405162461bcd60e51b815260040161061790611a0a565b6004805460ff191690556106a76009600a6119e5565b6106b5906305f5e1006119f3565b600f556106c46009600a6119e5565b6106d2906305f5e1006119f3565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107026009600a6119e5565b610710906305f5e1006119f3565b60405190815260200160405180910390a1565b5f6103db338484610cd0565b5f546001600160a01b031633146107585760405162461bcd60e51b815260040161061790611a0a565b601454600160a01b900460ff16156107b25760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610617565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155436018556107ff9030906107f16009600a6119e5565b610579906305f5e1006119f3565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108739190611a3f565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f69190611a3f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610940573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109649190611a3f565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d71947306109ab816001600160a01b03165f9081526001602052604090205490565b5f806109be5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a24573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a499190611a5a565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac291906118d2565b506017805461ff0019166101001790556014805460ff60a01b1916600160a01b179055565b6001600160a01b038316610b495760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610617565b6001600160a01b038216610baa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610617565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f825f03610c1957505f6103df565b5f610c2483856119f3565b905082610c318583611a85565b14610c885760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610617565b9392505050565b5f610c8883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116bf565b6001600160a01b038316610d345760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610617565b6001600160a01b038216610d965760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610617565b5f8111610df75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610617565b5f80546001600160a01b03858116911614801590610e2257505f546001600160a01b03848116911614155b8015610e3c57506006546001600160a01b03848116911614155b1561116757610e67606461047f600b54600e5411610e5c57600754610e60565b6009545b8590610c0a565b60045490915060ff1615610f4b576013546001600160a01b03848116911614801590610ea157506014546001600160a01b03848116911614155b15610f4b57325f908152600560205260409020544311610f395760405162461bcd60e51b815260206004820152604760248201527f5f7472616e736665723a3a205472616e736665722064656c617920696e20757360448201527f652e204f6e6c79206f6e652070757263686173652070657220626c6f636b2061606482015266363637bbb2b21760c91b608482015260a401610617565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610f7657506013546001600160a01b03848116911614155b8015610f9a57506001600160a01b0383165f9081526003602052604090205460ff16155b1561108057600f54821115610ff15760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610617565b60105482611013856001600160a01b03165f9081526001602052604090205490565b61101d9190611aa4565b111561106b5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610617565b600e8054905f61107a83611ab7565b91905055505b6014546001600160a01b0384811691161480156110a657506001600160a01b0384163014155b156110d3576110d0606461047f600c54600e54116110c657600854610e60565b600a548590610c0a565b90505b305f9081526001602052604090205460175460ff1615801561110257506014546001600160a01b038581169116145b80156111155750601754610100900460ff165b8015611122575060115481115b80156111315750600d54600e54115b156111655761115361114e84611149846012546116eb565b6116eb565b611521565b4780156111635761116347611688565b505b505b6001600160a01b0384165f9081526003602052604090205460ff16806111a457506001600160a01b0383165f9081526003602052604090205460ff165b80156111b957506001600160a01b0384163014155b80156111d257505f546001600160a01b03858116911614155b80156111e757506001600160a01b0383163014155b156111f157436015555b6001600160a01b0384165f9081526003602052604090205460ff1680156112265750600c546018546112239190611aa4565b43115b1561129a576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061128c9086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff161580156112da57506001600160a01b0383165f9081526003602052604090205460ff16155b156113b5576014546001600160a01b0380851691160361132b576001600160a01b0384165f908152601660205260409020601554815461131a9190611acf565b6002820155436001909101556113b5565b6001600160a01b038381165f9081526016602052604090206014549091868116911614801561135957508054155b1561138257600d54600e5411611379576113744360016116ff565b61137b565b435b81556113b3565b6001600160a01b0385165f90815260166020526040902054815415806113a85750815481105b156113b1578082555b505b505b801561142d57305f908152600160205260409020546113d49082611740565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114249085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461144f90836116ff565b6001600160a01b0385165f9081526001602052604090205561149261147483836116ff565b6001600160a01b0385165f9081526001602052604090205490611740565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114db85856116ff565b60405190815260200161128c565b5f818484111561150c5760405162461bcd60e51b8152600401610617919061179e565b505f6115188486611acf565b95945050505050565b6017805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061156157611561611ae2565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115dc9190611a3f565b816001815181106115ef576115ef611ae2565b6001600160a01b0392831660209182029290920101526013546116159130911684610ae7565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061164d9085905f90869030904290600401611af6565b5f604051808303815f87803b158015611664575f80fd5b505af1158015611676573d5f803e3d5ffd5b50506017805460ff1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105ea573d5f803e3d5ffd5b5f81836116df5760405162461bcd60e51b8152600401610617919061179e565b505f6115188486611a85565b5f8183116116f95782610c88565b50919050565b5f610c8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114e9565b5f8061174c8385611aa4565b905083811015610c885760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610617565b5f602080835283518060208501525f5b818110156117ca578581018301518582016040015282016117ae565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117fe575f80fd5b50565b5f8060408385031215611812575f80fd5b823561181d816117ea565b946020939093013593505050565b5f805f6060848603121561183d575f80fd5b8335611848816117ea565b92506020840135611858816117ea565b929592945050506040919091013590565b5f60208284031215611879575f80fd5b8135610c88816117ea565b5f8060408385031215611895575f80fd5b82356118a0816117ea565b915060208301356118b0816117ea565b809150509250929050565b5f602082840312156118cb575f80fd5b5051919050565b5f602082840312156118e2575f80fd5b81518015158114610c88575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561193f57815f1904821115611925576119256118f1565b8085161561193257918102915b93841c939080029061190a565b509250929050565b5f82611955575060016103df565b8161196157505f6103df565b816001811461197757600281146119815761199d565b60019150506103df565b60ff841115611992576119926118f1565b50506001821b6103df565b5060208310610133831016604e8410600b84101617156119c0575081810a6103df565b6119ca8383611905565b805f19048211156119dd576119dd6118f1565b029392505050565b5f610c8860ff841683611947565b80820281158282048414176103df576103df6118f1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a4f575f80fd5b8151610c88816117ea565b5f805f60608486031215611a6c575f80fd5b8351925060208401519150604084015190509250925092565b5f82611a9f57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156103df576103df6118f1565b5f60018201611ac857611ac86118f1565b5060010190565b818103818111156103df576103df6118f1565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b465784516001600160a01b031683529383019391830191600101611b21565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122050c31840739599a7ca264c53370f6db29ceed86ee70b7c0d00b762b8cfbfb92d64736f6c63430008170033

Deployed Bytecode Sourcemap

3482:9926:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5612:83;;;;;;;;;;-1:-1:-1;5682:5:0;;;;;;;;;;;;-1:-1:-1;;;5682:5:0;;;;5612:83;;;;;;;:::i;:::-;;;;;;;;6445:161;;;;;;;;;;-1:-1:-1;6445:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6445:161:0;1023:187:1;13095:273:0;;;;;;;;;;-1:-1:-1;13095:273:0;;;;;:::i;:::-;;:::i;:::-;;4640:51;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4640:51:0;1215:177:1;5889:95:0;;;;;;;;;;;;;:::i;6614:313::-;;;;;;;;;;-1:-1:-1;6614:313:0;;;;;:::i;:::-;;:::i;5798:83::-;;;;;;;;;;-1:-1:-1;5798:83:0;;4274:1;2000:36:1;;1988:2;1973:18;5798:83:0;1858:184:1;4753:28:0;;;;;;;;;;-1:-1:-1;4753:28:0;;;;-1:-1:-1;;;;;4753:28:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;4753:28:0;2047:203:1;12723:364:0;;;;;;;;;;;;;:::i;5992:119::-;;;;;;;;;;-1:-1:-1;5992:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6085:18:0;6058:7;6085:18;;;:9;:18;;;;;;;5992:119;2557:148;;;;;;;;;;;;;:::i;11704:198::-;;;;;;;;;;;;;:::i;4457:52::-;;;;;;;;;;;;;;;;2343:79;;;;;;;;;;-1:-1:-1;2381:7:0;2408:6;-1:-1:-1;;;;;2408:6:0;2343:79;;4516:54;;;;;;;;;;;;;;;;5703:87;;;;;;;;;;-1:-1:-1;5775:7:0;;;;;;;;;;;;-1:-1:-1;;;5775:7:0;;;;5703:87;;6119:167;;;;;;;;;;-1:-1:-1;6119:167:0;;;;;:::i;:::-;;:::i;4577:56::-;;;;;;;;;;;;;;;;12008:707;;;;;;;;;;;;;:::i;6294:143::-;;;;;;;;;;-1:-1:-1;6294:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6402:18:0;;;6375:7;6402:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6294:143;6445:161;6520:4;6537:39;176:10;6560:7;6569:6;6537:8;:39::i;:::-;-1:-1:-1;6594:4:0;6445:161;;;;;:::o;13095:273::-;13200:10;;-1:-1:-1;;;;;13200:10:0;176;-1:-1:-1;;;;;13186:24:0;;13178:33;;;;;;13240:41;;-1:-1:-1;;;13240:41:0;;13275:4;13240:41;;;2193:51:1;13222:15:0;;13240:63;;13299:3;;13240:54;;13286:7;;-1:-1:-1;;;;;13240:26:0;;;;;2166:18:1;;13240:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54::i;:::-;:58;;:63::i;:::-;13340:10;;13314:46;;-1:-1:-1;;;13314:46:0;;-1:-1:-1;;;;;13340:10:0;;;13314:46;;;3271:51:1;3338:18;;;3331:34;;;13222:81:0;;-1:-1:-1;13314:25:0;;;;;3244:18:1;;13314:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13167:201;13095:273;;:::o;5889:95::-;5942:7;4329:13;4274:1;4329:2;:13;:::i;:::-;4317:25;;:9;:25;:::i;:::-;5962:14;;5889:95;:::o;6614:313::-;6712:4;6729:36;6739:6;6747:9;6758:6;6729:9;:36::i;:::-;6776:121;6785:6;176:10;6807:89;6845:6;6807:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6807:19:0;;;;;;:11;:19;;;;;;;;176:10;6807:33;;;;;;;;;;:37;:89::i;:::-;6776:8;:121::i;:::-;-1:-1:-1;6915:4:0;6614:313;;;;;:::o;12723:364::-;12786:10;;-1:-1:-1;;;;;12786:10:0;176;-1:-1:-1;;;;;12772:24:0;;12764:33;;;;;;12847:4;12808:20;6085:18;;;:9;:18;;;;;;12867:16;;;;;:31;;-1:-1:-1;12887:11:0;;;;;;;12867:31;12864:90;;;12912:30;12929:12;12912:16;:30::i;:::-;12983:21;13018:12;;13015:65;;13044:24;13057:10;13044:12;:24::i;:::-;12753:334;;12723:364::o;2557:148::-;2470:6;;-1:-1:-1;;;;;2470:6:0;176:10;2470:22;2462:67;;;;-1:-1:-1;;;2462:67:0;;;;;;;:::i;:::-;;;;;;;;;2664:1:::1;2648:6:::0;;2627:40:::1;::::0;-1:-1:-1;;;;;2648:6:0;;::::1;::::0;2627:40:::1;::::0;2664:1;;2627:40:::1;2695:1;2678:19:::0;;-1:-1:-1;;;;;;2678:19:0::1;::::0;;2557:148::o;11704:198::-;2470:6;;-1:-1:-1;;;;;2470:6:0;176:10;2470:22;2462:67;;;;-1:-1:-1;;;2462:67:0;;;;;;;:::i;:::-;11757:20:::1;:27:::0;;-1:-1:-1;;11757:27:0::1;::::0;;4329:13:::1;4274:1;4329:2;:13;:::i;:::-;4317:25;::::0;:9:::1;:25;:::i;:::-;11795:12;:21:::0;4329:13:::1;4274:1;4329:2;:13;:::i;:::-;4317:25;::::0;:9:::1;:25;:::i;:::-;11827:14;:22:::0;11867:27:::1;4329:13;4274:1;4329:2;:13;:::i;:::-;4317:25;::::0;:9:::1;:25;:::i;:::-;11867:27;::::0;1361:25:1;;;1349:2;1334:18;11867:27:0::1;;;;;;;11704:198::o:0;6119:167::-;6197:4;6214:42;176:10;6238:9;6249:6;6214:9;:42::i;12008:707::-;2470:6;;-1:-1:-1;;;;;2470:6:0;176:10;2470:22;2462:67;;;;-1:-1:-1;;;2462:67:0;;;;;;;:::i;:::-;12072:11:::1;::::0;-1:-1:-1;;;12072:11:0;::::1;;;12071:12;12063:47;;;::::0;-1:-1:-1;;;12063:47:0;;5903:2:1;12063:47:0::1;::::0;::::1;5885:21:1::0;5942:2;5922:18;;;5915:30;5981:25;5961:18;;;5954:53;6024:18;;12063:47:0::1;5701:347:1::0;12063:47:0::1;12121:15;:80:::0;;-1:-1:-1;;;;;;12121:80:0::1;12158:42;12121:80:::0;;::::1;::::0;;;12225:12:::1;12212:10;:25:::0;12248:58:::1;::::0;12265:4:::1;::::0;4329:13:::1;4274:1;4329:2;:13;:::i;:::-;4317:25;::::0;:9:::1;:25;:::i;12248:58::-;12351:15;;;;;;;;;-1:-1:-1::0;;;;;12351:15:0::1;-1:-1:-1::0;;;;;12351:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12333:55:0::1;;12397:4;12404:15;;;;;;;;;-1:-1:-1::0;;;;;12404:15:0::1;-1:-1:-1::0;;;;;12404:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12333:94;::::0;-1:-1:-1;;;;;;12333:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6539:15:1;;;12333:94:0::1;::::0;::::1;6521:34:1::0;6591:15;;6571:18;;;6564:43;6456:18;;12333:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12317:13;:110:::0;;-1:-1:-1;;;;;12317:110:0;;::::1;-1:-1:-1::0;;;;;;12317:110:0;;::::1;;::::0;;12438:15:::1;::::0;::::1;:31;12477:21;12508:4;12514:24;12508:4:::0;-1:-1:-1;;;;;6085:18:0;6058:7;6085:18;;;:9;:18;;;;;;;5992:119;12514:24:::1;12539:1;12541::::0;12543:7:::1;2381::::0;2408:6;-1:-1:-1;;;;;2408:6:0;;2343:79;12543:7:::1;12438:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12438:129:0;;;-1:-1:-1;;;;;6977:15:1;;;12438:129:0::1;::::0;::::1;6959:34:1::0;7009:18;;;7002:34;;;;7052:18;;;7045:34;;;;7095:18;;;7088:34;7159:15;;;7138:19;;;7131:44;12551:15:0::1;7191:19:1::0;;;7184:35;6893:19;;12438:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12585:13:0::1;::::0;12616:15:::1;::::0;12578:71:::1;::::0;-1:-1:-1;;;12578:71:0;;-1:-1:-1;;;;;12616:15:0;;::::1;12578:71;::::0;::::1;3271:51:1::0;-1:-1:-1;;3338:18:1;;;3331:34;12585:13:0;::::1;::::0;-1:-1:-1;12578:29:0::1;::::0;3244:18:1;;12578:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12660:11:0::1;:18:::0;;-1:-1:-1;;12660:18:0::1;;;::::0;;12689:11:::1;:18:::0;;-1:-1:-1;;;;12689:18:0::1;-1:-1:-1::0;;;12689:18:0::1;::::0;;12008:707::o;6935:335::-;-1:-1:-1;;;;;7028:19:0;;7020:68;;;;-1:-1:-1;;;7020:68:0;;8022:2:1;7020:68:0;;;8004:21:1;8061:2;8041:18;;;8034:30;8100:34;8080:18;;;8073:62;-1:-1:-1;;;8151:18:1;;;8144:34;8195:19;;7020:68:0;7820:400:1;7020:68:0;-1:-1:-1;;;;;7107:21:0;;7099:68;;;;-1:-1:-1;;;7099:68:0;;8427:2:1;7099:68:0;;;8409:21:1;8466:2;8446:18;;;8439:30;8505:34;8485:18;;;8478:62;-1:-1:-1;;;8556:18:1;;;8549:32;8598:19;;7099:68:0;8225:398:1;7099:68:0;-1:-1:-1;;;;;7178:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7230:32;;1361:25:1;;;7230:32:0;;1334:18:1;7230:32:0;;;;;;;6935:335;;;:::o;1433:246::-;1491:7;1515:1;1520;1515:6;1511:47;;-1:-1:-1;1545:1:0;1538:8;;1511:47;1568:9;1580:5;1584:1;1580;:5;:::i;:::-;1568:17;-1:-1:-1;1613:1:0;1604:5;1608:1;1568:17;1604:5;:::i;:::-;:10;1596:56;;;;-1:-1:-1;;;1596:56:0;;9052:2:1;1596:56:0;;;9034:21:1;9091:2;9071:18;;;9064:30;9130:34;9110:18;;;9103:62;-1:-1:-1;;;9181:18:1;;;9174:31;9222:19;;1596:56:0;8850:397:1;1596:56:0;1670:1;1433:246;-1:-1:-1;;;1433:246:0:o;1687:132::-;1745:7;1772:39;1776:1;1779;1772:39;;;;;;;;;;;;;;;;;:3;:39::i;7278:3822::-;-1:-1:-1;;;;;7366:18:0;;7358:68;;;;-1:-1:-1;;;7358:68:0;;9454:2:1;7358:68:0;;;9436:21:1;9493:2;9473:18;;;9466:30;9532:34;9512:18;;;9505:62;-1:-1:-1;;;9583:18:1;;;9576:35;9628:19;;7358:68:0;9252:401:1;7358:68:0;-1:-1:-1;;;;;7445:16:0;;7437:64;;;;-1:-1:-1;;;7437:64:0;;9860:2:1;7437:64:0;;;9842:21:1;9899:2;9879:18;;;9872:30;9938:34;9918:18;;;9911:62;-1:-1:-1;;;9989:18:1;;;9982:33;10032:19;;7437:64:0;9658:399:1;7437:64:0;7529:1;7520:6;:10;7512:64;;;;-1:-1:-1;;;7512:64:0;;10264:2:1;7512:64:0;;;10246:21:1;10303:2;10283:18;;;10276:30;10342:34;10322:18;;;10315:62;-1:-1:-1;;;10393:18:1;;;10386:39;10442:19;;7512:64:0;10062:405:1;7512:64:0;7587:17;2408:6;;-1:-1:-1;;;;;7621:15:0;;;2408:6;;7621:15;;;;:32;;-1:-1:-1;2381:7:0;2408:6;-1:-1:-1;;;;;7640:13:0;;;2408:6;;7640:13;;7621:32;:52;;;;-1:-1:-1;7663:10:0;;-1:-1:-1;;;;;7657:16:0;;;7663:10;;7657:16;;7621:52;7617:1656;;;7702:76;7774:3;7702:67;7724:15;;7714:9;;:25;7713:55;;7754:14;;7713:55;;;7741:12;;7713:55;7702:6;;:10;:67::i;:76::-;7799:20;;7692:86;;-1:-1:-1;7799:20:0;;7795:433;;;7858:15;;-1:-1:-1;;;;;7844:30:0;;;7858:15;;7844:30;;;;:62;;-1:-1:-1;7892:13:0;;-1:-1:-1;;;;;7878:28:0;;;7892:13;;7878:28;;7844:62;7840:373;;;7968:9;7939:39;;;;:28;:39;;;;;;7981:12;-1:-1:-1;7931:185:0;;;;-1:-1:-1;;;7931:185:0;;10674:2:1;7931:185:0;;;10656:21:1;10713:2;10693:18;;;10686:30;10752:34;10732:18;;;10725:62;10823:34;10803:18;;;10796:62;-1:-1:-1;;;10874:19:1;;;10867:38;10922:19;;7931:185:0;10472:475:1;7931:185:0;8168:9;8139:39;;;;:28;:39;;;;;8181:12;8139:54;;7840:373;8256:13;;-1:-1:-1;;;;;8248:21:0;;;8256:13;;8248:21;:55;;;;-1:-1:-1;8287:15:0;;-1:-1:-1;;;;;8273:30:0;;;8287:15;;8273:30;;8248:55;:83;;;;-1:-1:-1;;;;;;8309:22:0;;;;;;:18;:22;;;;;;;;8307:24;8248:83;8244:315;;;8371:12;;8361:6;:22;;8353:60;;;;-1:-1:-1;;;8353:60:0;;11154:2:1;8353:60:0;;;11136:21:1;11193:2;11173:18;;;11166:30;11232:27;11212:18;;;11205:55;11277:18;;8353:60:0;10952:349:1;8353:60:0;8466:14;;8456:6;8440:13;8450:2;-1:-1:-1;;;;;6085:18:0;6058:7;6085:18;;;:9;:18;;;;;;;5992:119;8440:13;:22;;;;:::i;:::-;:40;;8432:79;;;;-1:-1:-1;;;8432:79:0;;11638:2:1;8432:79:0;;;11620:21:1;11677:2;11657:18;;;11650:30;11716:28;11696:18;;;11689:56;11762:18;;8432:79:0;11436:350:1;8432:79:0;8532:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8244:315;8584:13;;-1:-1:-1;;;;;8578:19:0;;;8584:13;;8578:19;:44;;;;-1:-1:-1;;;;;;8601:21:0;;8617:4;8601:21;;8578:44;8575:176;;;8656:79;8731:3;8656:70;8678:16;;8668:9;;:26;8667:58;;8710:15;;8667:58;;;8696:13;;8656:6;;:10;:70::i;:79::-;8644:91;;8575:176;8816:4;8767:28;6085:18;;;:9;:18;;;;;;8842:6;;;;8841:7;:30;;;;-1:-1:-1;8858:13:0;;-1:-1:-1;;;;;8852:19:0;;;8858:13;;8852:19;8841:30;:45;;;;-1:-1:-1;8875:11:0;;;;;;;8841:45;:89;;;;;8913:17;;8890:20;:40;8841:89;:123;;;;;8946:18;;8934:9;;:30;8841:123;8837:425;;;8984:69;9001:51;9005:6;9013:38;9017:20;9039:11;;9013:3;:38::i;:::-;9001:3;:51::i;:::-;8984:16;:69::i;:::-;9101:21;9145:22;;9141:106;;9192:35;9205:21;9192:12;:35::i;:::-;8965:297;8837:425;7675:1598;7617:1656;-1:-1:-1;;;;;9304:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;9332:22:0;;;;;;:18;:22;;;;;;;;9304:50;9303:91;;;;-1:-1:-1;;;;;;9373:21:0;;9389:4;9373:21;;9303:91;:110;;;;-1:-1:-1;2381:7:0;2408:6;-1:-1:-1;;;;;9398:15:0;;;2408:6;;9398:15;;9303:110;:146;;;;-1:-1:-1;;;;;;9430:19:0;;9444:4;9430:19;;9303:146;9285:231;;;9492:12;9476:13;:28;9285:231;-1:-1:-1;;;;;9530:24:0;;;;;;:18;:24;;;;;;;;:73;;;;;9587:16;;9574:10;;:29;;;;:::i;:::-;9559:12;:44;9530:73;9526:277;;;-1:-1:-1;;;;;9646:15:0;;;;;;;:9;:15;;;;;;:24;;;;;;;9687:13;;;;;;;;;;:22;;;;;;9744:26;;;;;;9664:6;1361:25:1;;1349:2;1334:18;;1215:177;9744:26:0;;;;;;;;9785:7;7278:3822;;;:::o;9526:277::-;-1:-1:-1;;;;;9818:24:0;;;;;;:18;:24;;;;;;;;9817:25;:53;;;;-1:-1:-1;;;;;;9848:22:0;;;;;;:18;:22;;;;;;;;9846:24;9817:53;9813:927;;;9891:13;;-1:-1:-1;;;;;9891:19:0;;;:13;;:19;9887:842;;-1:-1:-1;;;;;9975:13:0;;9931:41;9975:13;;;:7;:13;;;;;10059;;10036:20;;:36;;10059:13;10036:36;:::i;:::-;10007:26;;;:65;10114:12;10091:20;;;;:35;9887:842;;;-1:-1:-1;;;;;10222:11:0;;;10178:41;10222:11;;;:7;:11;;;;;10256:13;;10222:11;;10256:21;;;:13;;:21;:50;;;;-1:-1:-1;10281:20:0;;:25;10256:50;10252:462;;;10366:18;;10354:9;;:30;:67;;10402:19;:12;10419:1;10402:16;:19::i;:::-;10354:67;;;10387:12;10354:67;10331:90;;10252:462;;;-1:-1:-1;;;;;10494:13:0;;10470:21;10494:13;;;:7;:13;;;;;:20;10541;;:25;;:65;;-1:-1:-1;10570:20:0;;:36;-1:-1:-1;10541:65:0;10537:158;;;10635:36;;;10537:158;10447:267;10252:462;10148:581;9887:842;10756:13;;10752:167;;10828:4;10810:24;;;;:9;:24;;;;;;:39;;10839:9;10810:28;:39::i;:::-;10803:4;10785:24;;;;:9;:24;;;;;;;:64;;;;10869:38;;-1:-1:-1;;;;;10869:38:0;;;;;;;10897:9;1361:25:1;;1349:2;1334:18;;1215:177;10869:38:0;;;;;;;;10752:167;-1:-1:-1;;;;;10945:15:0;;;;;;:9;:15;;;;;;:27;;10965:6;10945:19;:27::i;:::-;-1:-1:-1;;;;;10929:15:0;;;;;;:9;:15;;;;;:43;10997:40;11015:21;:6;11026:9;11015:10;:21::i;:::-;-1:-1:-1;;;;;10997:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10983:13:0;;;;;;;:9;:13;;;;;:54;;;;11053:39;;;11070:21;:6;11081:9;11070:10;:21::i;:::-;11053:39;;1361:25:1;;;1349:2;1334:18;11053:39:0;1215:177:1;1235:190:0;1321:7;1357:12;1349:6;;;;1341:29;;;;-1:-1:-1;;;1341:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1381:9:0;1393:5;1397:1;1393;:5;:::i;:::-;1381:17;1235:190;-1:-1:-1;;;;;1235:190:0:o;11216:480::-;5197:6;:13;;-1:-1:-1;;5197:13:0;5206:4;5197:13;;;11315:16:::1;::::0;;11329:1:::1;11315:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11315:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11315:16:0::1;11291:40;;11360:4;11342;11347:1;11342:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11342:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11386:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11386:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11342:7;;11386:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11376:4;11381:1;11376:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11376:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11451:15:::1;::::0;11419:62:::1;::::0;11436:4:::1;::::0;11451:15:::1;11469:11:::0;11419:8:::1;:62::i;:::-;11492:15;::::0;:196:::1;::::0;-1:-1:-1;;;11492:196:0;;-1:-1:-1;;;;;11492:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11573:11;;11492:15:::1;::::0;11615:4;;11642::::1;::::0;11662:15:::1;::::0;11492:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5233:6:0;:14;;-1:-1:-1;;5233:14:0;;;-1:-1:-1;;;;11216:480:0:o;11910:92::-;11967:10;;:27;;-1:-1:-1;;;;;11967:10:0;;;;:27;;;;;11987:6;;11967:10;:27;:10;:27;11987:6;11967:10;:27;;;;;;;;;;;;;;;;;;;1827:189;1913:7;1948:12;1941:5;1933:28;;;;-1:-1:-1;;;1933:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1972:9:0;1984:5;1988:1;1984;:5;:::i;11110:98::-;11167:7;11194:1;11192;:3;11191:9;;11199:1;11191:9;;;-1:-1:-1;11197:1:0;11110:98;-1:-1:-1;11110:98:0:o;1091:136::-;1149:7;1176:43;1180:1;1183;1176:43;;;;;;;;;;;;;;;;;:3;:43::i;904:179::-;962:7;;994:5;998:1;994;:5;:::i;:::-;982:17;;1023:1;1018;:6;;1010:46;;;;-1:-1:-1;;;1010:46:0;;13515:2:1;1010:46:0;;;13497:21:1;13554:2;13534:18;;;13527:30;13593:29;13573:18;;;13566:57;13640:18;;1010:46:0;13313:351:1;14:548;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;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:184::-;2970:6;3023:2;3011:9;3002:7;2998:23;2994:32;2991:52;;;3039:1;3036;3029:12;2991:52;-1:-1:-1;3062:16:1;;2900:184;-1:-1:-1;2900:184:1:o;3376:277::-;3443:6;3496:2;3484:9;3475:7;3471:23;3467:32;3464:52;;;3512:1;3509;3502:12;3464:52;3544:9;3538:16;3597:5;3590:13;3583:21;3576:5;3573:32;3563:60;;3619:1;3616;3609:12;3658:127;3719:10;3714:3;3710:20;3707:1;3700:31;3750:4;3747:1;3740:15;3774:4;3771:1;3764:15;3790:416;3879:1;3916:5;3879:1;3930:270;3951:7;3941:8;3938:21;3930:270;;;4010:4;4006:1;4002:6;3998:17;3992:4;3989:27;3986:53;;;4019:18;;:::i;:::-;4069:7;4059:8;4055:22;4052:55;;;4089:16;;;;4052:55;4168:22;;;;4128:15;;;;3930:270;;;3934:3;3790:416;;;;;:::o;4211:806::-;4260:5;4290:8;4280:80;;-1:-1:-1;4331:1:1;4345:5;;4280:80;4379:4;4369:76;;-1:-1:-1;4416:1:1;4430:5;;4369:76;4461:4;4479:1;4474:59;;;;4547:1;4542:130;;;;4454:218;;4474:59;4504:1;4495:10;;4518:5;;;4542:130;4579:3;4569:8;4566:17;4563:43;;;4586:18;;:::i;:::-;-1:-1:-1;;4642:1:1;4628:16;;4657:5;;4454:218;;4756:2;4746:8;4743:16;4737:3;4731:4;4728:13;4724:36;4718:2;4708:8;4705:16;4700:2;4694:4;4691:12;4687:35;4684:77;4681:159;;;-1:-1:-1;4793:19:1;;;4825:5;;4681:159;4872:34;4897:8;4891:4;4872:34;:::i;:::-;4942:6;4938:1;4934:6;4930:19;4921:7;4918:32;4915:58;;;4953:18;;:::i;:::-;4991:20;;4211:806;-1:-1:-1;;;4211:806:1:o;5022:140::-;5080:5;5109:47;5150:4;5140:8;5136:19;5130:4;5109:47;:::i;5167:168::-;5240:9;;;5271;;5288:15;;;5282:22;;5268:37;5258:71;;5309:18;;:::i;5340:356::-;5542:2;5524:21;;;5561:18;;;5554:30;5620:34;5615:2;5600:18;;5593:62;5687:2;5672:18;;5340:356::o;6053:251::-;6123:6;6176:2;6164:9;6155:7;6151:23;6147:32;6144:52;;;6192:1;6189;6182:12;6144:52;6224:9;6218:16;6243:31;6268:5;6243:31;:::i;7230:306::-;7318:6;7326;7334;7387:2;7375:9;7366:7;7362:23;7358:32;7355:52;;;7403:1;7400;7393:12;7355:52;7432:9;7426:16;7416:26;;7482:2;7471:9;7467:18;7461:25;7451:35;;7526:2;7515:9;7511:18;7505:25;7495:35;;7230:306;;;;;:::o;8628:217::-;8668:1;8694;8684:132;;8738:10;8733:3;8729:20;8726:1;8719:31;8773:4;8770:1;8763:15;8801:4;8798:1;8791:15;8684:132;-1:-1:-1;8830:9:1;;8628:217::o;11306:125::-;11371:9;;;11392:10;;;11389:36;;;11405:18;;:::i;11791:135::-;11830:3;11851:17;;;11848:43;;11871:18;;:::i;:::-;-1:-1:-1;11918:1:1;11907:13;;11791:135::o;11931:128::-;11998:9;;;12019:11;;;12016:37;;;12033:18;;:::i;12196:127::-;12257:10;12252:3;12248:20;12245:1;12238:31;12288:4;12285:1;12278:15;12312:4;12309:1;12302:15;12328:980;12590:4;12638:3;12627:9;12623:19;12669:6;12658:9;12651:25;12695:2;12733:6;12728:2;12717:9;12713:18;12706:34;12776:3;12771:2;12760:9;12756:18;12749:31;12800:6;12835;12829:13;12866:6;12858;12851:22;12904:3;12893:9;12889:19;12882:26;;12943:2;12935:6;12931:15;12917:29;;12964:1;12974:195;12988:6;12985:1;12982:13;12974:195;;;13053:13;;-1:-1:-1;;;;;13049:39:1;13037:52;;13144:15;;;;13109:12;;;;13085:1;13003:9;12974:195;;;-1:-1:-1;;;;;;;13225:32:1;;;;13220:2;13205:18;;13198:60;-1:-1:-1;;;13289:3:1;13274:19;13267:35;13186:3;12328:980;-1:-1:-1;;;12328:980:1:o

Swarm Source

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