ETH Price: $2,604.10 (-0.26%)

Token

Texas Reserve (TEXAS)
 

Overview

Max Total Supply

100,000,000,000 TEXAS

Holders

204

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
52,360,407.825716153706077091 TEXAS

Value
$0.00
0xbd3aea6fae5cc8ad69b949f0b7d21c286ff49136
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x6CEcF0b8...8871822Ff
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
TEXAS

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/******************************************************************                                                          
                             ---:::....                                                   
                             @@@@@@@@@@@@@@@@@=                                           
                            .@@@@@@@@@@@@@@@@@=                                           
                            :@@@@@@@@@@@@@@@@@-                                           
                            -@@@@@@@@@@@@@@@@@-                                           
                            =@@@@@@@@@@@@@@@@@:                                           
                            +@@@@@@@@@@@@@@@@@.                                           
                            #@@@@@@@@@@@@@@@@@.                                           
                            %@@@@@@@@@@@@@@@@@@+--:                                       
                            @@@@@@@@@@@@@@@@@@@@@@%*+-::-                                 
                           .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-*=:.-=-.  -:===+:              
                           :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@%@@@@@@@@%*+--         
                           =@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:        
                           +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-        
                           #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=        
                           %@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=        
     -%%%###**+++===---::::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+        
       *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%:       
        :*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       
          -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#      
            =#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*     
              :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+     
               -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%      
                %@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%      
                -@@@@@@@@@@@@%*#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=      
                 :+@@@@@@@@#        -%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*=@@@#=       
                   .-*%@@@%.          =%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+.:.          
                       -+-              +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+.             
                                         *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*:               
                                          *@@@@@@@@@@@@@@@@@@@@@@@*==*=.                  
                                          .%@@@@@@@@@@@@@@@@@@@@%=*:                      
                                            =@@@@@@@@@@@@@@@@@#-:.                        
                                             :#@@@@@@@@@@@@@@+-                           
                                               -@@@@@@@@@@@@@*                            
                                               .@@@@@@@@@@@*+.                            
                                                -@@@@@@@@@@@:.                            
                                                 =@@@@@@@@@@*.                            
                                                  -=*@@@@@@@@:                            
                                                      .++**%@#.                           
                                                            ::                            
                                                                                          

Telegram: T.me/texreserve
X/Twitter: X.com/texasreserve
Website: https://texasreserve.xyz/


Inspired by House Bill 4903 of the Texas Senate Texas Reserve will become the decentralized proof of concept for the framework set out by the bill.

******************************************************************/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

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

contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

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

    modifier onlyOwner() {
        require(isOwner());
        _;
    }

    function isOwner() private view returns (bool) {
        return msg.sender == _owner;
    }

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

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}


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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

}


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

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

    function factory() external pure returns (address);

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

contract TEXAS is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private constant _name = "Texas Reserve";
    string private constant _symbol = "TEXAS";
    uint256 private constant _totalSupply = 100_000_000_000 * 10**18;
    uint256 public maxWalletlimit = 2_000_000_001 * 10**18; // 1% Maxwalletlimit
    uint256 public minSwap = 1_000_000 * 10**18; 
    uint8 private constant _decimals = 18;

    IUniswapV2Router02 immutable uniswapV2Router;
    address immutable uniswapV2Pair;
    address immutable WETH;
 
    address payable public marketingWallet;
    address payable public DevWallet;
    address payable public communityFundWallet;
    uint256 public BuyTax;
    uint256 public SellTax;
    uint8 private inSwapAndLiquify;
    
    uint256 public taxChangeInterval = 15 minutes;
    uint256 public lastTaxChangeTimestamp;
    uint8 public currentTaxPeriod = 0;
    
    bool public TradingEnabled = false;

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


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

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

        //initial tax values
        BuyTax = 6;
        SellTax = 6;

        marketingWallet = payable(0x39C308bADb047Aaa3a2c02e9B19DA605573b6a16); //Marketing Wallet Address
        DevWallet = payable(0xC6aa2f0FF6b8563EA418ec2558890D6027413699); // Dev Wallet Address
        communityFundWallet = payable(0xcC653Ed86F8eB9b9cc2612ee54a56ea683d41d31); // Community Wallet Address
        _balance[msg.sender] = _totalSupply;
        _isExcludedFromFees[marketingWallet] = true;
        _isExcludedFromFees[msg.sender] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[address(uniswapV2Router)] = true;
        _isExcludedFromWalletLimit[marketingWallet] = true;
        _isExcludedFromWalletLimit[msg.sender] = true;
        _isExcludedFromWalletLimit[address(this)] = true;
        _isExcludedFromWalletLimit[address(uniswapV2Router)] = true;

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

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

    function name() public pure returns (string memory) {
        return _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 _totalSupply;
    }

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()] - amount
        );
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function ExcludeFromFees(address holder, bool exempt) external onlyOwner {
        _isExcludedFromFees[holder] = exempt;
    }
    
    function ChangeMinSwap(uint256 NewMinSwapAmount) external onlyOwner {
        minSwap = NewMinSwapAmount * 10**18;
    }

    function ChangeMarketingWalletAddress(address newAddress) external onlyOwner() {
        marketingWallet = payable(newAddress);
    }
    
    function ChangeDevWalletAddress(address newAddress) external onlyOwner() {
        DevWallet = payable(newAddress);
    }
    
    function EnableTrading() external onlyOwner {
        TradingEnabled = true;
        lastTaxChangeTimestamp = block.timestamp;
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function DisableWalletLimit() external onlyOwner {
        maxWalletlimit = _totalSupply;
    }
    
    function ExcludeFromWalletLimit(address holder, bool exempt) external onlyOwner {
        _isExcludedFromWalletLimit[holder] = exempt;
    }


    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 1e9, "Min transfer amt");
        require(TradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "Not Enabled");
        
        
        uint256 elapsedTime = block.timestamp - lastTaxChangeTimestamp;
        
        if (elapsedTime >= taxChangeInterval && currentTaxPeriod < 2) {
            currentTaxPeriod++;
                if (currentTaxPeriod == 1) {
                    //Initial Tax values
                    BuyTax = 6;
                    SellTax = 6;
                } else if (currentTaxPeriod == 2) {
                    // After 15 minutes, set buyTax to 3% and sellTax to 3%
                    BuyTax = 3;
                    SellTax = 3;
                }
                // Update the last tax change timestamp    
                lastTaxChangeTimestamp = block.timestamp;
            }



        uint256 _tax;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            _tax = 0;
        } else {

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

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

            if (from == uniswapV2Pair) {
                    _tax = BuyTax;
                if (!_isExcludedFromWalletLimit[from] || !_isExcludedFromWalletLimit[to]) {
                require(balanceOf(to).add(amount) <= maxWalletlimit);
                }
            } else if (to == uniswapV2Pair) {
                uint256 tokensToSwap = _balance[address(this)];
                if (tokensToSwap > minSwap && inSwapAndLiquify == 0) {
                    inSwapAndLiquify = 1;
                    address[] memory path = new address[](2);
                    path[0] = address(this);
                    path[1] = WETH;
                    uniswapV2Router
                        .swapExactTokensForETHSupportingFeeOnTransferTokens(
                            tokensToSwap,
                            0,
                            path,
                            address(this),
                            block.timestamp
                        );
                    inSwapAndLiquify = 0;
                }
                    _tax = SellTax;

            } else {
                _tax = 0;
            }
        }
        

        //Is there tax for sender|receiver?
        if (_tax != 0) {
            //Tax transfer
            uint256 taxTokens = (amount * _tax) / 100;
            uint256 transferAmount = amount - taxTokens;

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

            emit Transfer(from, to, amount);
        }

    uint256 amountReceived = address(this).balance;

    uint256 amountETHMarketing = amountReceived.mul(33).div(100); // 33% to marketing wallet
    uint256 amountETHTeam = amountReceived.mul(34).div(100); // 34% to Community wallet
    uint256 amountETHDev = amountReceived.mul(33).div(100); // 33% to dev wallet
    
    
    if (amountETHMarketing > 0)
    transferToAddressETH(marketingWallet, amountETHMarketing);
    
    if (amountETHTeam > 0)
    transferToAddressETH(communityFundWallet, amountETHTeam);
    
    if (amountETHDev > 0)
    transferToAddressETH(DevWallet, amountETHDev);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"BuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"ChangeDevWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"ChangeMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"NewMinSwapAmount","type":"uint256"}],"name":"ChangeMinSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DevWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"ExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"ExcludeFromWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"communityFundWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTaxPeriod","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"lastTaxChangeTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletlimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxChangeInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e06040526b06765c794d81b72d7764000060015569d3c21bcecceda1000000600255610384600955600b805461ffff191690553480156200003f575f80fd5b505f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3737a250d5630b4cf539739df2c5dacb4c659f2488d6080819052604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620000d2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000f89190620003c1565b6001600160a01b031660c0816001600160a01b0316815250506080516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000150573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001769190620003c1565b60c0516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303815f875af1158015620001c5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001eb9190620003c1565b6001600160a01b0390811660a0526006808055600755600380546001600160a01b03199081167339c308badb047aaa3a2c02e9b19da605573b6a1617825560048054821673c6aa2f0ff6b8563ea418ec2558890d60274136991790556005805490911673cc653ed86f8eb9b9cc2612ee54a56ea683d41d31179055335f818152600c602090815260408083206c01431e0fae6d7217caa00000009055845486168352600e8252808320805460ff19908116600190811790925585855282852080548216831790553080865283862080548316841790556080518916808752848720805484168517905588548a168752600f865284872080548416851790558787528487208054841685179055818752848720805484168517905580875284872080549093169093179091558452600d80845282852082865284528285205f199081905595855280845282852082865284528285208690559554909616835293815283822094825293909352912055620003613390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6c01431e0fae6d7217caa0000000604051620003b391815260200190565b60405180910390a3620003f0565b5f60208284031215620003d2575f80fd5b81516001600160a01b0381168114620003e9575f80fd5b9392505050565b60805160a05160c05161155b620004225f395f610d6f01525f8181610bf30152610cae01525f610dc6015261155b5ff3fe6080604052600436106101c8575f3560e01c806375f0a874116100f25780639d8f770611610092578063dd62ed3e11610062578063dd62ed3e1461051d578063df31dd3914610561578063f2fde38b1461057a578063fed3c82614610599575f80fd5b80639d8f7706146104ab578063a9059cbb146104ca578063b115e4df146104e9578063b1848c2614610508575f80fd5b806383fd0367116100cd57806383fd03671461043857806389e40cf91461044d5780638da5cb5b1461046257806395d89b411461047e575f80fd5b806375f0a874146103e75780637906ee3f14610406578063799663451461041a575f80fd5b806323b872dd1161016857806359cd90311161013857806359cd90311461036b57806370a0823114610380578063715018a6146103b457806374233c06146103c8575f80fd5b806323b872dd146102f7578063313ce5671461031657806343c98828146103375780634cd5dc6a14610356575f80fd5b80630a910d1f116101a35780630a910d1f1461026a57806318160ddd1461028d578063197b5a30146102ac5780631d97b7cd146102e3575f80fd5b806305d2743f146101d357806306fdde03146101f4578063095ea7b31461023b575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b506101f26101ed3660046112ae565b6105b8565b005b3480156101ff575f80fd5b5060408051808201909152600d81526c5465786173205265736572766560981b60208201525b60405161023291906112c7565b60405180910390f35b348015610246575f80fd5b5061025a610255366004611312565b6105ef565b6040519015158152602001610232565b348015610275575f80fd5b5061027f60065481565b604051908152602001610232565b348015610298575f80fd5b506c01431e0fae6d7217caa000000061027f565b3480156102b7575f80fd5b506005546102cb906001600160a01b031681565b6040516001600160a01b039091168152602001610232565b3480156102ee575f80fd5b506101f2610605565b348015610302575f80fd5b5061025a61031136600461133a565b61062f565b348015610321575f80fd5b5060125b60405160ff9091168152602001610232565b348015610342575f80fd5b506101f2610351366004611373565b61067f565b348015610361575f80fd5b5061027f60095481565b348015610376575f80fd5b5061027f60025481565b34801561038b575f80fd5b5061027f61039a3660046112ae565b6001600160a01b03165f908152600c602052604090205490565b3480156103bf575f80fd5b506101f26106be565b3480156103d3575f80fd5b506101f26103e23660046113ac565b61071b565b3480156103f2575f80fd5b506003546102cb906001600160a01b031681565b348015610411575f80fd5b506101f2610748565b348015610425575f80fd5b50600b5461025a90610100900460ff1681565b348015610443575f80fd5b5061027f60075481565b348015610458575f80fd5b5061027f60015481565b34801561046d575f80fd5b505f546001600160a01b03166102cb565b348015610489575f80fd5b50604080518082019091526005815264544558415360d81b6020820152610225565b3480156104b6575f80fd5b506101f26104c5366004611373565b610770565b3480156104d5575f80fd5b5061025a6104e4366004611312565b6107af565b3480156104f4575f80fd5b506004546102cb906001600160a01b031681565b348015610513575f80fd5b5061027f600a5481565b348015610528575f80fd5b5061027f6105373660046113c3565b6001600160a01b039182165f908152600d6020908152604080832093909416825291909152205490565b34801561056c575f80fd5b50600b546103259060ff1681565b348015610585575f80fd5b506101f26105943660046112ae565b6107bb565b3480156105a4575f80fd5b506101f26105b33660046112ae565b6107dc565b5f546001600160a01b031633146105cd575f80fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b5f6105fb338484610813565b5060015b92915050565b5f546001600160a01b0316331461061a575f80fd5b600b805461ff00191661010017905542600a55565b5f61063b84848461093b565b6001600160a01b0384165f908152600d6020908152604080832033808552925290912054610675918691610670908690611408565b610813565b5060019392505050565b5f546001600160a01b03163314610694575f80fd5b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146106d3575f80fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610730575f80fd5b61074281670de0b6b3a764000061141b565b60025550565b5f546001600160a01b0316331461075d575f80fd5b6c01431e0fae6d7217caa0000000600155565b5f546001600160a01b03163314610785575f80fd5b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b5f6105fb33848461093b565b5f546001600160a01b031633146107d0575f80fd5b6107d981611097565b50565b5f546001600160a01b031633146107f1575f80fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661087a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166108db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610871565b6001600160a01b038381165f818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661099f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610871565b633b9aca0081116109e55760405162461bcd60e51b815260206004820152601060248201526f135a5b881d1c985b9cd9995c88185b5d60821b6044820152606401610871565b600b54610100900460ff1680610a1257506001600160a01b0383165f908152600e602052604090205460ff165b80610a3457506001600160a01b0382165f908152600e602052604090205460ff165b610a6e5760405162461bcd60e51b815260206004820152600b60248201526a139bdd08115b98589b195960aa1b6044820152606401610871565b5f600a5442610a7d9190611408565b90506009548110158015610a985750600b54600260ff909116105b15610b0057600b805460ff16905f610aaf83611432565b82546101009290920a60ff818102199093169183160217909155600b54166001039050610ae3576006808055600755610afb565b600b5460ff16600203610afb57600360068190556007555b42600a555b6001600160a01b0384165f908152600e602052604081205460ff1680610b3d57506001600160a01b0384165f908152600e602052604090205460ff165b15610b4957505f610e4b565b60085460ff16600103610bf1576001600160a01b0385165f908152600c602052604081208054859290610b7d908490611408565b90915550506001600160a01b0384165f908152600c602052604081208054859290610ba9908490611450565b92505081905550836001600160a01b0316856001600160a01b03165f8051602061150683398151915285604051610be291815260200190565b60405180910390a35050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603610cac57506006546001600160a01b0385165f908152600f602052604090205460ff161580610c6d57506001600160a01b0384165f908152600f602052604090205460ff16155b15610ca757600154610c9d84610c97876001600160a01b03165f908152600c602052604090205490565b90611102565b1115610ca7575f80fd5b610e4b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603610e4857305f908152600c602052604090205460025481118015610d08575060085460ff16155b15610e3e576008805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610d4d57610d4d611463565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610da157610da1611463565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac94790610e059085905f90869030904290600401611477565b5f604051808303815f87803b158015610e1c575f80fd5b505af1158015610e2e573d5f803e3d5ffd5b50506008805460ff191690555050505b5050600754610e4b565b505f5b8015610f63575f6064610e5e838661141b565b610e6891906114e6565b90505f610e758286611408565b6001600160a01b0388165f908152600c6020526040812080549293508792909190610ea1908490611408565b90915550506001600160a01b0386165f908152600c602052604081208054839290610ecd908490611450565b9091555050305f908152600c602052604081208054849290610ef0908490611450565b909155505060405182815230906001600160a01b038916905f805160206115068339815191529060200160405180910390a3856001600160a01b0316876001600160a01b03165f8051602061150683398151915283604051610f5491815260200190565b60405180910390a35050610ff8565b6001600160a01b0385165f908152600c602052604081208054859290610f8a908490611408565b90915550506001600160a01b0384165f908152600c602052604081208054859290610fb6908490611450565b92505081905550836001600160a01b0316856001600160a01b03165f8051602061150683398151915285604051610fef91815260200190565b60405180910390a35b475f611010606461100a846021611167565b906111e5565b90505f611023606461100a856022611167565b90505f611036606461100a866021611167565b9050821561105457600354611054906001600160a01b031684611226565b811561107057600554611070906001600160a01b031683611226565b801561108c5760045461108c906001600160a01b031682611226565b505050505050505050565b6001600160a01b0381166110a9575f80fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8061110e8385611450565b9050838110156111605760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610871565b9392505050565b5f825f0361117657505f6105ff565b5f611181838561141b565b90508261118e85836114e6565b146111605760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610871565b5f61116083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061125e565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015611259573d5f803e3d5ffd5b505050565b5f818361127e5760405162461bcd60e51b815260040161087191906112c7565b505f61128a84866114e6565b95945050505050565b80356001600160a01b03811681146112a9575f80fd5b919050565b5f602082840312156112be575f80fd5b61116082611293565b5f6020808352835180828501525f5b818110156112f2578581018301518582016040015282016112d6565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611323575f80fd5b61132c83611293565b946020939093013593505050565b5f805f6060848603121561134c575f80fd5b61135584611293565b925061136360208501611293565b9150604084013590509250925092565b5f8060408385031215611384575f80fd5b61138d83611293565b9150602083013580151581146113a1575f80fd5b809150509250929050565b5f602082840312156113bc575f80fd5b5035919050565b5f80604083850312156113d4575f80fd5b6113dd83611293565b91506113eb60208401611293565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156105ff576105ff6113f4565b80820281158282048414176105ff576105ff6113f4565b5f60ff821660ff8103611447576114476113f4565b60010192915050565b808201808211156105ff576105ff6113f4565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156114c55784516001600160a01b0316835293830193918301916001016114a0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261150057634e487b7160e01b5f52601260045260245ffd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ea81eb0305790f458c095e5d08a9f7575e3e96e250551c34c4b4231b22a2e9f964736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101c8575f3560e01c806375f0a874116100f25780639d8f770611610092578063dd62ed3e11610062578063dd62ed3e1461051d578063df31dd3914610561578063f2fde38b1461057a578063fed3c82614610599575f80fd5b80639d8f7706146104ab578063a9059cbb146104ca578063b115e4df146104e9578063b1848c2614610508575f80fd5b806383fd0367116100cd57806383fd03671461043857806389e40cf91461044d5780638da5cb5b1461046257806395d89b411461047e575f80fd5b806375f0a874146103e75780637906ee3f14610406578063799663451461041a575f80fd5b806323b872dd1161016857806359cd90311161013857806359cd90311461036b57806370a0823114610380578063715018a6146103b457806374233c06146103c8575f80fd5b806323b872dd146102f7578063313ce5671461031657806343c98828146103375780634cd5dc6a14610356575f80fd5b80630a910d1f116101a35780630a910d1f1461026a57806318160ddd1461028d578063197b5a30146102ac5780631d97b7cd146102e3575f80fd5b806305d2743f146101d357806306fdde03146101f4578063095ea7b31461023b575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b506101f26101ed3660046112ae565b6105b8565b005b3480156101ff575f80fd5b5060408051808201909152600d81526c5465786173205265736572766560981b60208201525b60405161023291906112c7565b60405180910390f35b348015610246575f80fd5b5061025a610255366004611312565b6105ef565b6040519015158152602001610232565b348015610275575f80fd5b5061027f60065481565b604051908152602001610232565b348015610298575f80fd5b506c01431e0fae6d7217caa000000061027f565b3480156102b7575f80fd5b506005546102cb906001600160a01b031681565b6040516001600160a01b039091168152602001610232565b3480156102ee575f80fd5b506101f2610605565b348015610302575f80fd5b5061025a61031136600461133a565b61062f565b348015610321575f80fd5b5060125b60405160ff9091168152602001610232565b348015610342575f80fd5b506101f2610351366004611373565b61067f565b348015610361575f80fd5b5061027f60095481565b348015610376575f80fd5b5061027f60025481565b34801561038b575f80fd5b5061027f61039a3660046112ae565b6001600160a01b03165f908152600c602052604090205490565b3480156103bf575f80fd5b506101f26106be565b3480156103d3575f80fd5b506101f26103e23660046113ac565b61071b565b3480156103f2575f80fd5b506003546102cb906001600160a01b031681565b348015610411575f80fd5b506101f2610748565b348015610425575f80fd5b50600b5461025a90610100900460ff1681565b348015610443575f80fd5b5061027f60075481565b348015610458575f80fd5b5061027f60015481565b34801561046d575f80fd5b505f546001600160a01b03166102cb565b348015610489575f80fd5b50604080518082019091526005815264544558415360d81b6020820152610225565b3480156104b6575f80fd5b506101f26104c5366004611373565b610770565b3480156104d5575f80fd5b5061025a6104e4366004611312565b6107af565b3480156104f4575f80fd5b506004546102cb906001600160a01b031681565b348015610513575f80fd5b5061027f600a5481565b348015610528575f80fd5b5061027f6105373660046113c3565b6001600160a01b039182165f908152600d6020908152604080832093909416825291909152205490565b34801561056c575f80fd5b50600b546103259060ff1681565b348015610585575f80fd5b506101f26105943660046112ae565b6107bb565b3480156105a4575f80fd5b506101f26105b33660046112ae565b6107dc565b5f546001600160a01b031633146105cd575f80fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b5f6105fb338484610813565b5060015b92915050565b5f546001600160a01b0316331461061a575f80fd5b600b805461ff00191661010017905542600a55565b5f61063b84848461093b565b6001600160a01b0384165f908152600d6020908152604080832033808552925290912054610675918691610670908690611408565b610813565b5060019392505050565b5f546001600160a01b03163314610694575f80fd5b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146106d3575f80fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610730575f80fd5b61074281670de0b6b3a764000061141b565b60025550565b5f546001600160a01b0316331461075d575f80fd5b6c01431e0fae6d7217caa0000000600155565b5f546001600160a01b03163314610785575f80fd5b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b5f6105fb33848461093b565b5f546001600160a01b031633146107d0575f80fd5b6107d981611097565b50565b5f546001600160a01b031633146107f1575f80fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661087a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166108db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610871565b6001600160a01b038381165f818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661099f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610871565b633b9aca0081116109e55760405162461bcd60e51b815260206004820152601060248201526f135a5b881d1c985b9cd9995c88185b5d60821b6044820152606401610871565b600b54610100900460ff1680610a1257506001600160a01b0383165f908152600e602052604090205460ff165b80610a3457506001600160a01b0382165f908152600e602052604090205460ff165b610a6e5760405162461bcd60e51b815260206004820152600b60248201526a139bdd08115b98589b195960aa1b6044820152606401610871565b5f600a5442610a7d9190611408565b90506009548110158015610a985750600b54600260ff909116105b15610b0057600b805460ff16905f610aaf83611432565b82546101009290920a60ff818102199093169183160217909155600b54166001039050610ae3576006808055600755610afb565b600b5460ff16600203610afb57600360068190556007555b42600a555b6001600160a01b0384165f908152600e602052604081205460ff1680610b3d57506001600160a01b0384165f908152600e602052604090205460ff165b15610b4957505f610e4b565b60085460ff16600103610bf1576001600160a01b0385165f908152600c602052604081208054859290610b7d908490611408565b90915550506001600160a01b0384165f908152600c602052604081208054859290610ba9908490611450565b92505081905550836001600160a01b0316856001600160a01b03165f8051602061150683398151915285604051610be291815260200190565b60405180910390a35050505050565b7f000000000000000000000000384cc2409b1ee748a6f921f265e6a7ca57a5bda16001600160a01b0316856001600160a01b031603610cac57506006546001600160a01b0385165f908152600f602052604090205460ff161580610c6d57506001600160a01b0384165f908152600f602052604090205460ff16155b15610ca757600154610c9d84610c97876001600160a01b03165f908152600c602052604090205490565b90611102565b1115610ca7575f80fd5b610e4b565b7f000000000000000000000000384cc2409b1ee748a6f921f265e6a7ca57a5bda16001600160a01b0316846001600160a01b031603610e4857305f908152600c602052604090205460025481118015610d08575060085460ff16155b15610e3e576008805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610d4d57610d4d611463565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610da157610da1611463565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063791ac94790610e059085905f90869030904290600401611477565b5f604051808303815f87803b158015610e1c575f80fd5b505af1158015610e2e573d5f803e3d5ffd5b50506008805460ff191690555050505b5050600754610e4b565b505f5b8015610f63575f6064610e5e838661141b565b610e6891906114e6565b90505f610e758286611408565b6001600160a01b0388165f908152600c6020526040812080549293508792909190610ea1908490611408565b90915550506001600160a01b0386165f908152600c602052604081208054839290610ecd908490611450565b9091555050305f908152600c602052604081208054849290610ef0908490611450565b909155505060405182815230906001600160a01b038916905f805160206115068339815191529060200160405180910390a3856001600160a01b0316876001600160a01b03165f8051602061150683398151915283604051610f5491815260200190565b60405180910390a35050610ff8565b6001600160a01b0385165f908152600c602052604081208054859290610f8a908490611408565b90915550506001600160a01b0384165f908152600c602052604081208054859290610fb6908490611450565b92505081905550836001600160a01b0316856001600160a01b03165f8051602061150683398151915285604051610fef91815260200190565b60405180910390a35b475f611010606461100a846021611167565b906111e5565b90505f611023606461100a856022611167565b90505f611036606461100a866021611167565b9050821561105457600354611054906001600160a01b031684611226565b811561107057600554611070906001600160a01b031683611226565b801561108c5760045461108c906001600160a01b031682611226565b505050505050505050565b6001600160a01b0381166110a9575f80fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8061110e8385611450565b9050838110156111605760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610871565b9392505050565b5f825f0361117657505f6105ff565b5f611181838561141b565b90508261118e85836114e6565b146111605760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610871565b5f61116083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061125e565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015611259573d5f803e3d5ffd5b505050565b5f818361127e5760405162461bcd60e51b815260040161087191906112c7565b505f61128a84866114e6565b95945050505050565b80356001600160a01b03811681146112a9575f80fd5b919050565b5f602082840312156112be575f80fd5b61116082611293565b5f6020808352835180828501525f5b818110156112f2578581018301518582016040015282016112d6565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611323575f80fd5b61132c83611293565b946020939093013593505050565b5f805f6060848603121561134c575f80fd5b61135584611293565b925061136360208501611293565b9150604084013590509250925092565b5f8060408385031215611384575f80fd5b61138d83611293565b9150602083013580151581146113a1575f80fd5b809150509250929050565b5f602082840312156113bc575f80fd5b5035919050565b5f80604083850312156113d4575f80fd5b6113dd83611293565b91506113eb60208401611293565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156105ff576105ff6113f4565b80820281158282048414176105ff576105ff6113f4565b5f60ff821660ff8103611447576114476113f4565b60010192915050565b808201808211156105ff576105ff6113f4565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156114c55784516001600160a01b0316835293830193918301916001016114a0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261150057634e487b7160e01b5f52601260045260245ffd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ea81eb0305790f458c095e5d08a9f7575e3e96e250551c34c4b4231b22a2e9f964736f6c63430008150033

Deployed Bytecode Sourcemap

7974:9671:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12902:135;;;;;;;;;;-1:-1:-1;12902:135:0;;;;;:::i;:::-;;:::i;:::-;;10782:83;;;;;;;;;;-1:-1:-1;10852:5:0;;;;;;;;;;;;-1:-1:-1;;;10852:5:0;;;;10782:83;;;;;;;:::i;:::-;;;;;;;;11692:193;;;;;;;;;;-1:-1:-1;11692:193:0;;;;;:::i;:::-;;:::i;:::-;;;1360:14:1;;1353:22;1335:41;;1323:2;1308:18;11692:193:0;1195:187:1;8669:21:0;;;;;;;;;;;;;;;;;;;1533:25:1;;;1521:2;1506:18;8669:21:0;1387:177:1;11059:100:0;;;;;;;;;;-1:-1:-1;8205:24:0;11059:100;;8620:42;;;;;;;;;;-1:-1:-1;8620:42:0;;;;-1:-1:-1;;;;;8620:42:0;;;;;;-1:-1:-1;;;;;1749:32:1;;;1731:51;;1719:2;1704:18;8620:42:0;1569:219:1;13184:135:0;;;;;;;;;;;;;:::i;11893:350::-;;;;;;;;;;-1:-1:-1;11893:350:0;;;;;:::i;:::-;;:::i;10968:83::-;;;;;;;;;;-1:-1:-1;8404:2:0;10968:83;;;2298:4:1;2286:17;;;2268:36;;2256:2;2241:18;10968:83:0;2126:184:1;13570:142:0;;;;;;;;;;-1:-1:-1;13570:142:0;;;;;:::i;:::-;;:::i;8769:45::-;;;;;;;;;;;;;;;;8318:43;;;;;;;;;;;;;;;;11167:118;;;;;;;;;;-1:-1:-1;11167:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;11260:17:0;11233:7;11260:17;;;:8;:17;;;;;;;11167:118;5749:140;;;;;;;;;;;;;:::i;12772:122::-;;;;;;;;;;-1:-1:-1;12772:122:0;;;;;:::i;:::-;;:::i;8536:38::-;;;;;;;;;;-1:-1:-1;8536:38:0;;;;-1:-1:-1;;;;;8536:38:0;;;13461:97;;;;;;;;;;;;;:::i;8911:34::-;;;;;;;;;;-1:-1:-1;8911:34:0;;;;;;;;;;;8697:22;;;;;;;;;;;;;;;;8236:54;;;;;;;;;;;;;;;;5483:79;;;;;;;;;;-1:-1:-1;5521:7:0;5548:6;-1:-1:-1;;;;;5548:6:0;5483:79;;10873:87;;;;;;;;;;-1:-1:-1;10945:7:0;;;;;;;;;;;;-1:-1:-1;;;10945:7:0;;;;10873:87;;12632:128;;;;;;;;;;-1:-1:-1;12632:128:0;;;;;:::i;:::-;;:::i;11293:199::-;;;;;;;;;;-1:-1:-1;11293:199:0;;;;;:::i;:::-;;:::i;8581:32::-;;;;;;;;;;-1:-1:-1;8581:32:0;;;;-1:-1:-1;;;;;8581:32:0;;;8821:37;;;;;;;;;;;;;;;;11500:184;;;;;;;;;;-1:-1:-1;11500:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;11649:18:0;;;11617:7;11649:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11500:184;8865:33;;;;;;;;;;-1:-1:-1;8865:33:0;;;;;;;;5897:109;;;;;;;;;;-1:-1:-1;5897:109:0;;;;;:::i;:::-;;:::i;13049:123::-;;;;;;;;;;-1:-1:-1;13049:123:0;;;;;:::i;:::-;;:::i;12902:135::-;5689:4;5727:6;-1:-1:-1;;;;;5727:6:0;5713:10;:20;5602:18;;;;;;12992:15:::1;:37:::0;;-1:-1:-1;;;;;;12992:37:0::1;-1:-1:-1::0;;;;;12992:37:0;;;::::1;::::0;;;::::1;::::0;;12902:135::o;11692:193::-;11794:4;11816:39;4392:10;11839:7;11848:6;11816:8;:39::i;:::-;-1:-1:-1;11873:4:0;11692:193;;;;;:::o;13184:135::-;5689:4;5727:6;-1:-1:-1;;;;;5727:6:0;5713:10;:20;5602:18;;;;;;13239:14:::1;:21:::0;;-1:-1:-1;;13239:21:0::1;;;::::0;;13296:15:::1;13271:22;:40:::0;13184:135::o;11893:350::-;12025:4;12042:36;12052:6;12060:9;12071:6;12042:9;:36::i;:::-;-1:-1:-1;;;;;12160:19:0;;;;;;:11;:19;;;;;;;;4392:10;12160:33;;;;;;;;;12089:124;;12112:6;;12160:42;;12196:6;;12160:42;:::i;:::-;12089:8;:124::i;:::-;-1:-1:-1;12231:4:0;11893:350;;;;;:::o;13570:142::-;5689:4;5727:6;-1:-1:-1;;;;;5727:6:0;5713:10;:20;5602:18;;;;;;-1:-1:-1;;;;;13661:34:0;;;::::1;;::::0;;;:26:::1;:34;::::0;;;;:43;;-1:-1:-1;;13661:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13570:142::o;5749:140::-;5689:4;5727:6;-1:-1:-1;;;;;5727:6:0;5713:10;:20;5602:18;;;;;;5848:1:::1;5832:6:::0;;5811:40:::1;::::0;-1:-1:-1;;;;;5832:6:0;;::::1;::::0;5811:40:::1;::::0;5848:1;;5811:40:::1;5879:1;5862:19:::0;;-1:-1:-1;;;;;;5862:19:0::1;::::0;;5749:140::o;12772:122::-;5689:4;5727:6;-1:-1:-1;;;;;5727:6:0;5713:10;:20;5602:18;;;;;;12861:25:::1;:16:::0;12880:6:::1;12861:25;:::i;:::-;12851:7;:35:::0;-1:-1:-1;12772:122:0:o;13461:97::-;5689:4;5727:6;-1:-1:-1;;;;;5727:6:0;5713:10;:20;5602:18;;;;;;8205:24:::1;13521:14;:29:::0;13461:97::o;12632:128::-;5689:4;5727:6;-1:-1:-1;;;;;5727:6:0;5713:10;:20;5602:18;;;;;;-1:-1:-1;;;;;12716:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;12716:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12632:128::o;11293:199::-;11398:4;11420:42;4392:10;11444:9;11455:6;11420:9;:42::i;5897:109::-;5689:4;5727:6;-1:-1:-1;;;;;5727:6:0;5713:10;:20;5602:18;;;;;;5970:28:::1;5989:8;5970:18;:28::i;:::-;5897:109:::0;:::o;13049:123::-;5689:4;5727:6;-1:-1:-1;;;;;5727:6:0;5713:10;:20;5602:18;;;;;;13133:9:::1;:31:::0;;-1:-1:-1;;;;;;13133:31:0::1;-1:-1:-1::0;;;;;13133:31:0;;;::::1;::::0;;;::::1;::::0;;13049:123::o;12251:369::-;-1:-1:-1;;;;;12378:19:0;;12370:68;;;;-1:-1:-1;;;12370:68:0;;3965:2:1;12370:68:0;;;3947:21:1;4004:2;3984:18;;;3977:30;4043:34;4023:18;;;4016:62;-1:-1:-1;;;4094:18:1;;;4087:34;4138:19;;12370:68:0;;;;;;;;;-1:-1:-1;;;;;12457:21:0;;12449:68;;;;-1:-1:-1;;;12449:68:0;;4370:2:1;12449:68:0;;;4352:21:1;4409:2;4389:18;;;4382:30;4448:34;4428:18;;;4421:62;-1:-1:-1;;;4499:18:1;;;4492:32;4541:19;;12449:68:0;4168:398:1;12449:68:0;-1:-1:-1;;;;;12528:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12580:32;;1533:25:1;;;12580:32:0;;1506:18:1;12580:32:0;;;;;;;12251:369;;;:::o;13722:3883::-;-1:-1:-1;;;;;13844:18:0;;13836:68;;;;-1:-1:-1;;;13836:68:0;;4773:2:1;13836:68:0;;;4755:21:1;4812:2;4792:18;;;4785:30;4851:34;4831:18;;;4824:62;-1:-1:-1;;;4902:18:1;;;4895:35;4947:19;;13836:68:0;4571:401:1;13836:68:0;13932:3;13923:6;:12;13915:41;;;;-1:-1:-1;;;13915:41:0;;5179:2:1;13915:41:0;;;5161:21:1;5218:2;5198:18;;;5191:30;-1:-1:-1;;;5237:18:1;;;5230:46;5293:18;;13915:41:0;4977:340:1;13915:41:0;13975:14;;;;;;;;:43;;-1:-1:-1;;;;;;13993:25:0;;;;;;:19;:25;;;;;;;;13975:43;:70;;;-1:-1:-1;;;;;;14022:23:0;;;;;;:19;:23;;;;;;;;13975:70;13967:94;;;;-1:-1:-1;;;13967:94:0;;5524:2:1;13967:94:0;;;5506:21:1;5563:2;5543:18;;;5536:30;-1:-1:-1;;;5582:18:1;;;5575:41;5633:18;;13967:94:0;5322:335:1;13967:94:0;14092:19;14132:22;;14114:15;:40;;;;:::i;:::-;14092:62;;14194:17;;14179:11;:32;;:56;;;;-1:-1:-1;14215:16:0;;14234:1;14215:16;;;;:20;14179:56;14175:602;;;14252:16;:18;;;;;:16;:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;14293:16;;;-1:-1:-1;14293:21:0;;-1:-1:-1;14289:353:0;;14390:1;14381:10;;;14414:7;:11;14289:353;;;14455:16;;;;14475:1;14455:21;14451:191;;14587:1;14578:6;:10;;;14611:7;:11;14451:191;14746:15;14721:22;:40;14175:602;-1:-1:-1;;;;;14820:25:0;;14793:12;14820:25;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;14849:23:0;;;;;;:19;:23;;;;;;;;14820:52;14816:1509;;;-1:-1:-1;14896:1:0;14816:1509;;;14936:16;;;;;:21;14932:239;;-1:-1:-1;;;;;15013:14:0;;;;;;:8;:14;;;;;:24;;15031:6;;15013:14;:24;;15031:6;;15013:24;:::i;:::-;;;;-1:-1:-1;;;;;;;15056:12:0;;;;;;:8;:12;;;;;:22;;15072:6;;15056:12;:22;;15072:6;;15056:22;:::i;:::-;;;;;;;;15119:2;-1:-1:-1;;;;;15104:26:0;15113:4;-1:-1:-1;;;;;15104:26:0;-1:-1:-1;;;;;;;;;;;15123:6:0;15104:26;;;;1533:25:1;;1521:2;1506:18;;1387:177;15104:26:0;;;;;;;;15149:7;;13722:3883;;;:::o;14932:239::-;15199:13;-1:-1:-1;;;;;15191:21:0;:4;-1:-1:-1;;;;;15191:21:0;;15187:1127;;-1:-1:-1;15244:6:0;;-1:-1:-1;;;;;15274:32:0;;;;;;:26;:32;;;;;;;;15273:33;;:68;;-1:-1:-1;;;;;;15311:30:0;;;;;;:26;:30;;;;;;;;15310:31;15273:68;15269:165;;;15399:14;;15370:25;15388:6;15370:13;15380:2;-1:-1:-1;;;;;11260:17:0;11233:7;11260:17;;;:8;:17;;;;;;;11167:118;15370:13;:17;;:25::i;:::-;:43;;15362:52;;;;;;15187:1127;;;15465:13;-1:-1:-1;;;;;15459:19:0;:2;-1:-1:-1;;;;;15459:19:0;;15455:859;;15539:4;15499:20;15522:23;;;:8;:23;;;;;;15583:7;;15568:22;;:47;;;;-1:-1:-1;15594:16:0;;;;:21;15568:47;15564:647;;;15640:16;:20;;-1:-1:-1;;15640:20:0;15659:1;15640:20;;;15707:16;;;15721:1;15707:16;;;;;;;;-1:-1:-1;;15707:16:0;;;;;;;;;;-1:-1:-1;15707:16:0;15683:40;;15764:4;15746;15751:1;15746:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;15746:23:0;;;-1:-1:-1;;;;;15746:23:0;;;;;15802:4;15792;15797:1;15792:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15792:14:0;;;:7;;;;;;;;;:14;15829:319;;-1:-1:-1;;;15829:319:0;;:15;:92;;;;;;:319;;15952:12;;15995:1;;16027:4;;16070;;16106:15;;15829:319;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16171:16:0;:20;;-1:-1:-1;;16171:20:0;;;-1:-1:-1;;;15564:647:0;-1:-1:-1;;16240:7:0;;15455:859;;;-1:-1:-1;16297:1:0;15455:859;16396:9;;16392:593;;16450:17;16488:3;16471:13;16480:4;16471:6;:13;:::i;:::-;16470:21;;;;:::i;:::-;16450:41;-1:-1:-1;16506:22:0;16531:18;16450:41;16531:6;:18;:::i;:::-;-1:-1:-1;;;;;16566:14:0;;;;;;:8;:14;;;;;:24;;16506:43;;-1:-1:-1;16584:6:0;;16566:14;;;:24;;16584:6;;16566:24;:::i;:::-;;;;-1:-1:-1;;;;;;;16605:12:0;;;;;;:8;:12;;;;;:30;;16621:14;;16605:12;:30;;16621:14;;16605:30;:::i;:::-;;;;-1:-1:-1;;16667:4:0;16650:23;;;;:8;:23;;;;;:36;;16677:9;;16650:23;:36;;16677:9;;16650:36;:::i;:::-;;;;-1:-1:-1;;16706:40:0;;1533:25:1;;;16729:4:0;;-1:-1:-1;;;;;16706:40:0;;;-1:-1:-1;;;;;;;;;;;16706:40:0;1521:2:1;1506:18;16706:40:0;;;;;;;16781:2;-1:-1:-1;;;;;16766:34:0;16775:4;-1:-1:-1;;;;;16766:34:0;-1:-1:-1;;;;;;;;;;;16785:14:0;16766:34;;;;1533:25:1;;1521:2;1506:18;;1387:177;16766:34:0;;;;;;;;16407:405;;16392:593;;;-1:-1:-1;;;;;16864:14:0;;;;;;:8;:14;;;;;:24;;16882:6;;16864:14;:24;;16882:6;;16864:24;:::i;:::-;;;;-1:-1:-1;;;;;;;16903:12:0;;;;;;:8;:12;;;;;:22;;16919:6;;16903:12;:22;;16919:6;;16903:22;:::i;:::-;;;;;;;;16962:2;-1:-1:-1;;;;;16947:26:0;16956:4;-1:-1:-1;;;;;16947:26:0;-1:-1:-1;;;;;;;;;;;16966:6:0;16947:26;;;;1533:25:1;;1521:2;1506:18;;1387:177;16947:26:0;;;;;;;;16392:593;17018:21;16993:22;17077:31;17104:3;17077:22;17018:21;17096:2;17077:18;:22::i;:::-;:26;;:31::i;:::-;17048:60;-1:-1:-1;17142:21:0;17166:31;17193:3;17166:22;:14;17185:2;17166:18;:22::i;:31::-;17142:55;-1:-1:-1;17231:20:0;17254:31;17281:3;17254:22;:14;17273:2;17254:18;:22::i;:31::-;17231:54;-1:-1:-1;17329:22:0;;17325:90;;17379:15;;17358:57;;-1:-1:-1;;;;;17379:15:0;17396:18;17358:20;:57::i;:::-;17432:17;;17428:84;;17477:19;;17456:56;;-1:-1:-1;;;;;17477:19:0;17498:13;17456:20;:56::i;:::-;17529:16;;17525:72;;17573:9;;17552:45;;-1:-1:-1;;;;;17573:9:0;17584:12;17552:20;:45::i;:::-;13825:3780;;;;;;13722:3883;;;:::o;6014:187::-;-1:-1:-1;;;;;6088:22:0;;6080:31;;;;;;6148:6;;;6127:38;;-1:-1:-1;;;;;6127:38:0;;;;6148:6;;;6127:38;;;6176:6;:17;;-1:-1:-1;;;;;;6176:17:0;-1:-1:-1;;;;;6176:17:0;;;;;;;;;;6014:187::o;6236:181::-;6294:7;;6326:5;6330:1;6326;:5;:::i;:::-;6314:17;;6355:1;6350;:6;;6342:46;;;;-1:-1:-1;;;6342:46:0;;7645:2:1;6342:46:0;;;7627:21:1;7684:2;7664:18;;;7657:30;7723:29;7703:18;;;7696:57;7770:18;;6342:46:0;7443:351:1;6342:46:0;6408:1;6236:181;-1:-1:-1;;;6236:181:0:o;6769:250::-;6827:7;6851:1;6856;6851:6;6847:47;;-1:-1:-1;6881:1:0;6874:8;;6847:47;6906:9;6918:5;6922:1;6918;:5;:::i;:::-;6906:17;-1:-1:-1;6951:1:0;6942:5;6946:1;6906:17;6942:5;:::i;:::-;:10;6934:56;;;;-1:-1:-1;;;6934:56:0;;8001:2:1;6934:56:0;;;7983:21:1;8040:2;8020:18;;;8013:30;8079:34;8059:18;;;8052:62;-1:-1:-1;;;8130:18:1;;;8123:31;8171:19;;6934:56:0;7799:397:1;7027:132:0;7085:7;7112:39;7116:1;7119;7112:39;;;;;;;;;;;;;;;;;:3;:39::i;13327:126::-;13419:26;;-1:-1:-1;;;;;13419:18:0;;;:26;;;;;13438:6;;13419:26;;;;13438:6;13419:18;:26;;;;;;;;;;;;;;;;;;;;;13327:126;;:::o;7167:278::-;7253:7;7288:12;7281:5;7273:28;;;;-1:-1:-1;;;7273:28:0;;;;;;;;:::i;:::-;-1:-1:-1;7312:9:0;7324:5;7328:1;7324;:5;:::i;:::-;7312:17;7167:278;-1:-1:-1;;;;;7167:278:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:548::-;495:4;524:2;553;542:9;535:21;585:6;579:13;628:6;623:2;612:9;608:18;601:34;653:1;663:140;677:6;674:1;671:13;663:140;;;772:14;;;768:23;;762:30;738:17;;;757:2;734:26;727:66;692:10;;663:140;;;667:3;852:1;847:2;838:6;827:9;823:22;819:31;812:42;922:2;915;911:7;906:2;898:6;894:15;890:29;879:9;875:45;871:54;863:62;;;;383:548;;;;:::o;936:254::-;1004:6;1012;1065:2;1053:9;1044:7;1040:23;1036:32;1033:52;;;1081:1;1078;1071:12;1033:52;1104:29;1123:9;1104:29;:::i;:::-;1094:39;1180:2;1165:18;;;;1152:32;;-1:-1:-1;;;936:254:1:o;1793:328::-;1870:6;1878;1886;1939:2;1927:9;1918:7;1914:23;1910:32;1907:52;;;1955:1;1952;1945:12;1907:52;1978:29;1997:9;1978:29;:::i;:::-;1968:39;;2026:38;2060:2;2049:9;2045:18;2026:38;:::i;:::-;2016:48;;2111:2;2100:9;2096:18;2083:32;2073:42;;1793:328;;;;;:::o;2315:347::-;2380:6;2388;2441:2;2429:9;2420:7;2416:23;2412:32;2409:52;;;2457:1;2454;2447:12;2409:52;2480:29;2499:9;2480:29;:::i;:::-;2470:39;;2559:2;2548:9;2544:18;2531:32;2606:5;2599:13;2592:21;2585:5;2582:32;2572:60;;2628:1;2625;2618:12;2572:60;2651:5;2641:15;;;2315:347;;;;;:::o;2667:180::-;2726:6;2779:2;2767:9;2758:7;2754:23;2750:32;2747:52;;;2795:1;2792;2785:12;2747:52;-1:-1:-1;2818:23:1;;2667:180;-1:-1:-1;2667:180:1:o;3060:260::-;3128:6;3136;3189:2;3177:9;3168:7;3164:23;3160:32;3157:52;;;3205:1;3202;3195:12;3157:52;3228:29;3247:9;3228:29;:::i;:::-;3218:39;;3276:38;3310:2;3299:9;3295:18;3276:38;:::i;:::-;3266:48;;3060:260;;;;;:::o;3325:127::-;3386:10;3381:3;3377:20;3374:1;3367:31;3417:4;3414:1;3407:15;3441:4;3438:1;3431:15;3457:128;3524:9;;;3545:11;;;3542:37;;;3559:18;;:::i;3590:168::-;3663:9;;;3694;;3711:15;;;3705:22;;3691:37;3681:71;;3732:18;;:::i;5662:175::-;5699:3;5743:4;5736:5;5732:16;5772:4;5763:7;5760:17;5757:43;;5780:18;;:::i;:::-;5829:1;5816:15;;5662:175;-1:-1:-1;;5662:175:1:o;5842:125::-;5907:9;;;5928:10;;;5925:36;;;5941:18;;:::i;6104:127::-;6165:10;6160:3;6156:20;6153:1;6146:31;6196:4;6193:1;6186:15;6220:4;6217:1;6210:15;6236:980;6498:4;6546:3;6535:9;6531:19;6577:6;6566:9;6559:25;6603:2;6641:6;6636:2;6625:9;6621:18;6614:34;6684:3;6679:2;6668:9;6664:18;6657:31;6708:6;6743;6737:13;6774:6;6766;6759:22;6812:3;6801:9;6797:19;6790:26;;6851:2;6843:6;6839:15;6825:29;;6872:1;6882:195;6896:6;6893:1;6890:13;6882:195;;;6961:13;;-1:-1:-1;;;;;6957:39:1;6945:52;;7052:15;;;;7017:12;;;;6993:1;6911:9;6882:195;;;-1:-1:-1;;;;;;;7133:32:1;;;;7128:2;7113:18;;7106:60;-1:-1:-1;;;7197:3:1;7182:19;7175:35;7094:3;6236:980;-1:-1:-1;;;6236:980:1:o;7221:217::-;7261:1;7287;7277:132;;7331:10;7326:3;7322:20;7319:1;7312:31;7366:4;7363:1;7356:15;7394:4;7391:1;7384:15;7277:132;-1:-1:-1;7423:9:1;;7221:217::o

Swarm Source

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