ETH Price: $2,588.80 (-1.33%)

Token

Catty (CATTY)
 

Overview

Max Total Supply

420,690,000,000 CATTY

Holders

157

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 CATTY

Value
$0.00
0xF947e884e274C588798230012388fFfC0d427E36
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:
Catty

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
$CATTY
Catty, also known as Catdog, is part of the Hedz collection hand-drawn by Matt Furie in 2022.
Launched on Ethereum with the ticker $CATTY for the culture!

Website: https://catty.meme
X: https://twitter.com/CattyEthereum
Telegram: https://t.me/Catty_ETH
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.25;

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 Catty is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => bool) private bots;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private excludeFromFees;
    address payable private taxWallet = payable(0x630AB4521DB23d7e124862aa3E2eCF4810166973);

    string private constant _name = "Catty";
    string private constant _symbol = "CATTY";

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420_690_000_000 * 10 ** _decimals;
    uint256 public maxTxAmount =  2 * (_tTotal/100);
    uint256 public maxWalletSize =  2 * (_tTotal/100);
    uint256 public swapTokensAtAmount =  1 * (_tTotal/1000);
    uint256 public maxSwapTokens = 1 * (_tTotal/100);

    struct Taxes {
        uint256 initBuy;
        uint256 initSell;
        uint256 finalBuy;
        uint256 finalSell;
    }
    Taxes public taxes;

    struct ReduceTaxAt {
        uint256 buy;
        uint256 sell;
    }
    ReduceTaxAt public reduceTaxAt;
    uint256 private preventSwapBefore = 25;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private buyCount = 0;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        taxes = Taxes(22, 22, 0, 0);
        reduceTaxAt = ReduceTaxAt(25, 25);

        _balances[address(this)] = _tTotal;

        excludeFromFees[taxWallet] = true;
        excludeFromFees[owner()] = true;
        excludeFromFees[address(this)] = true;

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

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if(from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

            taxAmount = amount.mul((buyCount > reduceTaxAt.buy) ? taxes.finalBuy : taxes.initBuy).div(100);

            if(from == uniswapV2Pair && to != address(uniswapV2Router) && ! excludeFromFees[to]) {
                require(amount <= maxTxAmount, "Exceeds the Max Tx Amount.");
                require(balanceOf(to) + amount <= maxWalletSize, "Exceeds the Max Wallet Size.");
                buyCount++;
            }

            if(to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount.mul((buyCount > reduceTaxAt.sell) ? taxes.finalSell : taxes.initSell).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if(!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > swapTokensAtAmount && buyCount > preventSwapBefore) {
                if(block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 2, "Only 2 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, maxSwapTokens)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

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


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

    function swapTokensForEth(uint256 tokenAmount) private 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 removeLimits() external onlyOwner{
        maxTxAmount = maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

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

    function excludedBots(address[] memory _addresses, bool excluded) public onlyOwner {
        for (uint i = 0; i < _addresses.length; i++) {
            bots[_addresses[i]] = excluded;
        }
    }

    function checkBot(address _address) public view returns (bool) {
      return bots[_address];
    }

    receive() external payable {}

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

    function manualsend() external {
        require(_msgSender() == taxWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludedBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSwapTokens","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":"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":"reduceTaxAt","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"initBuy","type":"uint256"},{"internalType":"uint256","name":"initSell","type":"uint256"},{"internalType":"uint256","name":"finalBuy","type":"uint256"},{"internalType":"uint256","name":"finalSell","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600580546001600160a01b03191673630ab4521db23d7e124862aa3e2ecf481016697317905560646100386009600a6103ba565b610047906461f313f8806103cf565b61005191906103e6565b61005c9060026103cf565b600655606461006d6009600a6103ba565b61007c906461f313f8806103cf565b61008691906103e6565b6100919060026103cf565b6007556103e86100a36009600a6103ba565b6100b2906461f313f8806103cf565b6100bc91906103e6565b6100c79060016103cf565b60085560646100d86009600a6103ba565b6100e7906461f313f8806103cf565b6100f191906103e6565b6100fc9060016103cf565b60095560196010556012805461ffff60a81b191690555f6013819055601481905560155534801561012b575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051608081018252601680825260208083018290525f8385018190526060909301839052600a828155600b92909255600c839055600d929092558251808401909352601980845292909101829052600e829055600f919091556101d3906009906103ba565b6101e2906461f313f8806103cf565b305f908152600260209081526040808320939093556005546001600160a01b03168252600490819052918120805460ff19166001908117909155919061022f5f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff199586161790553080825260049093529081208054909316600117909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61029f6009600a6103ba565b6102ae906461f313f8806103cf565b60405190815260200160405180910390a3610405565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561031257815f19048211156102f8576102f86102c4565b8085161561030557918102915b93841c93908002906102dd565b509250929050565b5f82610328575060016103b4565b8161033457505f6103b4565b816001811461034a576002811461035457610370565b60019150506103b4565b60ff841115610365576103656102c4565b50506001821b6103b4565b5060208310610133831016604e8410600b8410161715610393575081810a6103b4565b61039d83836102d8565b805f19048211156103b0576103b06102c4565b0290505b92915050565b5f6103c860ff84168361031a565b9392505050565b80820281158282048414176103b4576103b46102c4565b5f8261040057634e487b7160e01b5f52601260045260245ffd5b500490565b611a42806104125f395ff3fe60806040526004361061013f575f3560e01c8063751039fc116100b3578063a9059cbb1161006d578063a9059cbb1461038d578063b1a4e0dc146103ac578063b732224b146103e3578063c9567bf914610412578063dd62ed3e14610426578063e2f456051461046a575f80fd5b8063751039fc146102dd5780638c0b5e22146102f15780638c910789146103065780638da5cb5b146103255780638f3fa8601461034b57806395d89b4114610360575f80fd5b806336a1efe41161010457806336a1efe41461021457806351bc3c85146102295780636fc3eaec1461023f57806370a0823114610253578063715018a614610287578063728f8eea1461029b575f80fd5b806306fdde031461014a578063095ea7b31461018957806318160ddd146101b857806323b872dd146101da578063313ce567146101f9575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b50604080518082019091526005815264436174747960d81b60208201525b6040516101809190611542565b60405180910390f35b348015610194575f80fd5b506101a86101a336600461159b565b61047f565b6040519015158152602001610180565b3480156101c3575f80fd5b506101cc610495565b604051908152602001610180565b3480156101e5575f80fd5b506101a86101f43660046115c5565b6104b6565b348015610204575f80fd5b5060405160098152602001610180565b34801561021f575f80fd5b506101cc60095481565b348015610234575f80fd5b5061023d61051d565b005b34801561024a575f80fd5b5061023d61056e565b34801561025e575f80fd5b506101cc61026d366004611603565b6001600160a01b03165f9081526002602052604090205490565b348015610292575f80fd5b5061023d61059a565b3480156102a6575f80fd5b50600a54600b54600c54600d546102bd9392919084565b604080519485526020850193909352918301526060820152608001610180565b3480156102e8575f80fd5b5061023d610614565b3480156102fc575f80fd5b506101cc60065481565b348015610311575f80fd5b5061023d61032036600461164a565b6106af565b348015610330575f80fd5b505f546040516001600160a01b039091168152602001610180565b348015610356575f80fd5b506101cc60075481565b34801561036b575f80fd5b50604080518082019091526005815264434154545960d81b6020820152610173565b348015610398575f80fd5b506101a86103a736600461159b565b610737565b3480156103b7575f80fd5b506101a86103c6366004611603565b6001600160a01b03165f9081526001602052604090205460ff1690565b3480156103ee575f80fd5b50600e54600f546103fd919082565b60408051928352602083019190915201610180565b34801561041d575f80fd5b5061023d610743565b348015610431575f80fd5b506101cc61044036600461171c565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610475575f80fd5b506101cc60085481565b5f61048b338484610aed565b5060015b92915050565b5f6104a26009600a611847565b6104b1906461f313f880611855565b905090565b5f6104c2848484610c10565b610513843361050e856040518060600160405280602881526020016119e5602891396001600160a01b038a165f90815260036020908152604080832033845290915290205491906111be565b610aed565b5060019392505050565b6005546001600160a01b0316336001600160a01b03161461053c575f80fd5b305f90815260026020526040902054801561055a5761055a816111f6565b47801561056a5761056a81611366565b5050565b6005546001600160a01b0316336001600160a01b03161461058d575f80fd5b4761059781611366565b50565b5f546001600160a01b031633146105cc5760405162461bcd60e51b81526004016105c39061186c565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461063d5760405162461bcd60e51b81526004016105c39061186c565b6106496009600a611847565b610658906461f313f880611855565b60078190556006557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61068d6009600a611847565b61069c906461f313f880611855565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106d85760405162461bcd60e51b81526004016105c39061186c565b5f5b8251811015610732578160015f8584815181106106f9576106f96118a1565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016106da565b505050565b5f61048b338484610c10565b5f546001600160a01b0316331461076c5760405162461bcd60e51b81526004016105c39061186c565b601254600160a01b900460ff16156107c65760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105c3565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108109030906108016009600a611847565b61050e906461f313f880611855565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610860573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088491906118b5565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090791906118b5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610951573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097591906118b5565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d71947306109bc816001600160a01b03165f9081526002602052604090205490565b5f806109cf5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a35573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a5a91906118d0565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610aaf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad391906118fb565b506012805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610b4f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105c3565b6001600160a01b038216610bb05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105c3565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c745760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c3565b6001600160a01b038216610cd65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c3565b5f8111610d375760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105c3565b5f80546001600160a01b03858116911614801590610d6257505f546001600160a01b03848116911614155b15611081576001600160a01b0384165f9081526001602052604090205460ff16158015610da757506001600160a01b0383165f9081526001602052604090205460ff16155b610daf575f80fd5b610ddd6064610dd7600e5f015460135411610dcc57600a54610dd0565b600c545b859061139d565b90611422565b6012549091506001600160a01b038581169116148015610e0b57506011546001600160a01b03848116911614155b8015610e2f57506001600160a01b0383165f9081526004602052604090205460ff16155b15610f1557600654821115610e865760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865204d617820547820416d6f756e742e00000000000060448201526064016105c3565b60075482610ea8856001600160a01b03165f9081526002602052604090205490565b610eb29190611916565b1115610f005760405162461bcd60e51b815260206004820152601c60248201527f4578636565647320746865204d61782057616c6c65742053697a652e0000000060448201526064016105c3565b60138054905f610f0f83611929565b91905055505b6012546001600160a01b038481169116148015610f3b57506001600160a01b0384163014155b15610f6b57610f686064610dd7600e6001015460135411610f5e57600b54610dd0565b600d54859061139d565b90505b305f90815260026020526040902054601254600160a81b900460ff16158015610fa157506012546001600160a01b038581169116145b8015610fb65750601254600160b01b900460ff165b8015610fc3575060085481115b8015610fd25750601054601354115b1561107f57601554431115610fe6575f6014555b6002601454106110385760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920322073656c6c732070657220626c6f636b2100000000000000000060448201526064016105c3565b6110556110508461104b84600954611463565b611463565b6111f6565b4780156110655761106547611366565b60148054905f61107483611929565b909155505043601555505b505b80156110f957305f908152600260205260409020546110a09082611477565b305f81815260026020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110f09085815260200190565b60405180910390a35b6001600160a01b0384165f9081526002602052604090205461111b90836114d5565b6001600160a01b0385165f9081526002602052604090205561115e61114083836114d5565b6001600160a01b0385165f9081526002602052604090205490611477565b6001600160a01b038085165f8181526002602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111a785856114d5565b60405190815260200160405180910390a350505050565b5f81848411156111e15760405162461bcd60e51b81526004016105c39190611542565b505f6111ed8486611941565b95945050505050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061123c5761123c6118a1565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611293573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b791906118b5565b816001815181106112ca576112ca6118a1565b6001600160a01b0392831660209182029290920101526011546112f09130911684610aed565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906113289085905f90869030904290600401611954565b5f604051808303815f87803b15801561133f575f80fd5b505af1158015611351573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561056a573d5f803e3d5ffd5b5f825f036113ac57505f61048f565b5f6113b78385611855565b9050826113c485836119c5565b1461141b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105c3565b9392505050565b5f61141b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611516565b5f818311611471578261141b565b50919050565b5f806114838385611916565b90508381101561141b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105c3565b5f61141b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111be565b5f81836115365760405162461bcd60e51b81526004016105c39190611542565b505f6111ed84866119c5565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610597575f80fd5b803561159681611577565b919050565b5f80604083850312156115ac575f80fd5b82356115b781611577565b946020939093013593505050565b5f805f606084860312156115d7575f80fd5b83356115e281611577565b925060208401356115f281611577565b929592945050506040919091013590565b5f60208284031215611613575f80fd5b813561141b81611577565b634e487b7160e01b5f52604160045260245ffd5b8015158114610597575f80fd5b803561159681611632565b5f806040838503121561165b575f80fd5b823567ffffffffffffffff80821115611672575f80fd5b818501915085601f830112611685575f80fd5b81356020828211156116995761169961161e565b8160051b604051601f19603f830116810181811086821117156116be576116be61161e565b6040529283528183019350848101820192898411156116db575f80fd5b948201945b83861015611700576116f18661158b565b855294820194938201936116e0565b965061170f905087820161163f565b9450505050509250929050565b5f806040838503121561172d575f80fd5b823561173881611577565b9150602083013561174881611577565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117a157815f190482111561178757611787611753565b8085161561179457918102915b93841c939080029061176c565b509250929050565b5f826117b75750600161048f565b816117c357505f61048f565b81600181146117d957600281146117e3576117ff565b600191505061048f565b60ff8411156117f4576117f4611753565b50506001821b61048f565b5060208310610133831016604e8410600b8410161715611822575081810a61048f565b61182c8383611767565b805f190482111561183f5761183f611753565b029392505050565b5f61141b60ff8416836117a9565b808202811582820484141761048f5761048f611753565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156118c5575f80fd5b815161141b81611577565b5f805f606084860312156118e2575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561190b575f80fd5b815161141b81611632565b8082018082111561048f5761048f611753565b5f6001820161193a5761193a611753565b5060010190565b8181038181111561048f5761048f611753565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119a45784516001600160a01b03168352938301939183019160010161197f565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119df57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fd6d20f327adfc15c6e42b18f508df6bcfe0646d5a6b47945672e27b4397ddb364736f6c63430008190033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c8063751039fc116100b3578063a9059cbb1161006d578063a9059cbb1461038d578063b1a4e0dc146103ac578063b732224b146103e3578063c9567bf914610412578063dd62ed3e14610426578063e2f456051461046a575f80fd5b8063751039fc146102dd5780638c0b5e22146102f15780638c910789146103065780638da5cb5b146103255780638f3fa8601461034b57806395d89b4114610360575f80fd5b806336a1efe41161010457806336a1efe41461021457806351bc3c85146102295780636fc3eaec1461023f57806370a0823114610253578063715018a614610287578063728f8eea1461029b575f80fd5b806306fdde031461014a578063095ea7b31461018957806318160ddd146101b857806323b872dd146101da578063313ce567146101f9575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b50604080518082019091526005815264436174747960d81b60208201525b6040516101809190611542565b60405180910390f35b348015610194575f80fd5b506101a86101a336600461159b565b61047f565b6040519015158152602001610180565b3480156101c3575f80fd5b506101cc610495565b604051908152602001610180565b3480156101e5575f80fd5b506101a86101f43660046115c5565b6104b6565b348015610204575f80fd5b5060405160098152602001610180565b34801561021f575f80fd5b506101cc60095481565b348015610234575f80fd5b5061023d61051d565b005b34801561024a575f80fd5b5061023d61056e565b34801561025e575f80fd5b506101cc61026d366004611603565b6001600160a01b03165f9081526002602052604090205490565b348015610292575f80fd5b5061023d61059a565b3480156102a6575f80fd5b50600a54600b54600c54600d546102bd9392919084565b604080519485526020850193909352918301526060820152608001610180565b3480156102e8575f80fd5b5061023d610614565b3480156102fc575f80fd5b506101cc60065481565b348015610311575f80fd5b5061023d61032036600461164a565b6106af565b348015610330575f80fd5b505f546040516001600160a01b039091168152602001610180565b348015610356575f80fd5b506101cc60075481565b34801561036b575f80fd5b50604080518082019091526005815264434154545960d81b6020820152610173565b348015610398575f80fd5b506101a86103a736600461159b565b610737565b3480156103b7575f80fd5b506101a86103c6366004611603565b6001600160a01b03165f9081526001602052604090205460ff1690565b3480156103ee575f80fd5b50600e54600f546103fd919082565b60408051928352602083019190915201610180565b34801561041d575f80fd5b5061023d610743565b348015610431575f80fd5b506101cc61044036600461171c565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610475575f80fd5b506101cc60085481565b5f61048b338484610aed565b5060015b92915050565b5f6104a26009600a611847565b6104b1906461f313f880611855565b905090565b5f6104c2848484610c10565b610513843361050e856040518060600160405280602881526020016119e5602891396001600160a01b038a165f90815260036020908152604080832033845290915290205491906111be565b610aed565b5060019392505050565b6005546001600160a01b0316336001600160a01b03161461053c575f80fd5b305f90815260026020526040902054801561055a5761055a816111f6565b47801561056a5761056a81611366565b5050565b6005546001600160a01b0316336001600160a01b03161461058d575f80fd5b4761059781611366565b50565b5f546001600160a01b031633146105cc5760405162461bcd60e51b81526004016105c39061186c565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461063d5760405162461bcd60e51b81526004016105c39061186c565b6106496009600a611847565b610658906461f313f880611855565b60078190556006557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61068d6009600a611847565b61069c906461f313f880611855565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106d85760405162461bcd60e51b81526004016105c39061186c565b5f5b8251811015610732578160015f8584815181106106f9576106f96118a1565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016106da565b505050565b5f61048b338484610c10565b5f546001600160a01b0316331461076c5760405162461bcd60e51b81526004016105c39061186c565b601254600160a01b900460ff16156107c65760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105c3565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108109030906108016009600a611847565b61050e906461f313f880611855565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610860573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088491906118b5565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090791906118b5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610951573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097591906118b5565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d71947306109bc816001600160a01b03165f9081526002602052604090205490565b5f806109cf5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a35573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a5a91906118d0565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610aaf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad391906118fb565b506012805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610b4f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105c3565b6001600160a01b038216610bb05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105c3565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c745760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c3565b6001600160a01b038216610cd65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c3565b5f8111610d375760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105c3565b5f80546001600160a01b03858116911614801590610d6257505f546001600160a01b03848116911614155b15611081576001600160a01b0384165f9081526001602052604090205460ff16158015610da757506001600160a01b0383165f9081526001602052604090205460ff16155b610daf575f80fd5b610ddd6064610dd7600e5f015460135411610dcc57600a54610dd0565b600c545b859061139d565b90611422565b6012549091506001600160a01b038581169116148015610e0b57506011546001600160a01b03848116911614155b8015610e2f57506001600160a01b0383165f9081526004602052604090205460ff16155b15610f1557600654821115610e865760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865204d617820547820416d6f756e742e00000000000060448201526064016105c3565b60075482610ea8856001600160a01b03165f9081526002602052604090205490565b610eb29190611916565b1115610f005760405162461bcd60e51b815260206004820152601c60248201527f4578636565647320746865204d61782057616c6c65742053697a652e0000000060448201526064016105c3565b60138054905f610f0f83611929565b91905055505b6012546001600160a01b038481169116148015610f3b57506001600160a01b0384163014155b15610f6b57610f686064610dd7600e6001015460135411610f5e57600b54610dd0565b600d54859061139d565b90505b305f90815260026020526040902054601254600160a81b900460ff16158015610fa157506012546001600160a01b038581169116145b8015610fb65750601254600160b01b900460ff165b8015610fc3575060085481115b8015610fd25750601054601354115b1561107f57601554431115610fe6575f6014555b6002601454106110385760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920322073656c6c732070657220626c6f636b2100000000000000000060448201526064016105c3565b6110556110508461104b84600954611463565b611463565b6111f6565b4780156110655761106547611366565b60148054905f61107483611929565b909155505043601555505b505b80156110f957305f908152600260205260409020546110a09082611477565b305f81815260026020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110f09085815260200190565b60405180910390a35b6001600160a01b0384165f9081526002602052604090205461111b90836114d5565b6001600160a01b0385165f9081526002602052604090205561115e61114083836114d5565b6001600160a01b0385165f9081526002602052604090205490611477565b6001600160a01b038085165f8181526002602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111a785856114d5565b60405190815260200160405180910390a350505050565b5f81848411156111e15760405162461bcd60e51b81526004016105c39190611542565b505f6111ed8486611941565b95945050505050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061123c5761123c6118a1565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611293573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b791906118b5565b816001815181106112ca576112ca6118a1565b6001600160a01b0392831660209182029290920101526011546112f09130911684610aed565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906113289085905f90869030904290600401611954565b5f604051808303815f87803b15801561133f575f80fd5b505af1158015611351573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561056a573d5f803e3d5ffd5b5f825f036113ac57505f61048f565b5f6113b78385611855565b9050826113c485836119c5565b1461141b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105c3565b9392505050565b5f61141b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611516565b5f818311611471578261141b565b50919050565b5f806114838385611916565b90508381101561141b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105c3565b5f61141b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111be565b5f81836115365760405162461bcd60e51b81526004016105c39190611542565b505f6111ed84866119c5565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610597575f80fd5b803561159681611577565b919050565b5f80604083850312156115ac575f80fd5b82356115b781611577565b946020939093013593505050565b5f805f606084860312156115d7575f80fd5b83356115e281611577565b925060208401356115f281611577565b929592945050506040919091013590565b5f60208284031215611613575f80fd5b813561141b81611577565b634e487b7160e01b5f52604160045260245ffd5b8015158114610597575f80fd5b803561159681611632565b5f806040838503121561165b575f80fd5b823567ffffffffffffffff80821115611672575f80fd5b818501915085601f830112611685575f80fd5b81356020828211156116995761169961161e565b8160051b604051601f19603f830116810181811086821117156116be576116be61161e565b6040529283528183019350848101820192898411156116db575f80fd5b948201945b83861015611700576116f18661158b565b855294820194938201936116e0565b965061170f905087820161163f565b9450505050509250929050565b5f806040838503121561172d575f80fd5b823561173881611577565b9150602083013561174881611577565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117a157815f190482111561178757611787611753565b8085161561179457918102915b93841c939080029061176c565b509250929050565b5f826117b75750600161048f565b816117c357505f61048f565b81600181146117d957600281146117e3576117ff565b600191505061048f565b60ff8411156117f4576117f4611753565b50506001821b61048f565b5060208310610133831016604e8410600b8410161715611822575081810a61048f565b61182c8383611767565b805f190482111561183f5761183f611753565b029392505050565b5f61141b60ff8416836117a9565b808202811582820484141761048f5761048f611753565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156118c5575f80fd5b815161141b81611577565b5f805f606084860312156118e2575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561190b575f80fd5b815161141b81611632565b8082018082111561048f5761048f611753565b5f6001820161193a5761193a611753565b5060010190565b8181038181111561048f5761048f611753565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119a45784516001600160a01b03168352938301939183019160010161197f565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119df57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fd6d20f327adfc15c6e42b18f508df6bcfe0646d5a6b47945672e27b4397ddb364736f6c63430008190033

Deployed Bytecode Sourcemap

3751:8291:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5736:83;;;;;;;;;;-1:-1:-1;5806:5:0;;;;;;;;;;;;-1:-1:-1;;;5806:5:0;;;;5736:83;;;;;;;:::i;:::-;;;;;;;;6569:161;;;;;;;;;;-1:-1:-1;6569:161:0;;;;;:::i;:::-;;:::i;:::-;;;1197:14:1;;1190:22;1172:41;;1160:2;1145:18;6569:161:0;1032:187:1;6013:95:0;;;;;;;;;;;;;:::i;:::-;;;1370:25:1;;;1358:2;1343:18;6013:95:0;1224:177:1;6738:313:0;;;;;;;;;;-1:-1:-1;6738:313:0;;;;;:::i;:::-;;:::i;5922:83::-;;;;;;;;;;-1:-1:-1;5922:83:0;;4291:1;2009:36:1;;1997:2;1982:18;5922:83:0;1867:184:1;4546:48:0;;;;;;;;;;;;;;;;11484:359;;;;;;;;;;;;;:::i;:::-;;11851:188;;;;;;;;;;;;;:::i;6116:119::-;;;;;;;;;;-1:-1:-1;6116:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6209:18:0;6182:7;6209:18;;;:9;:18;;;;;;;6116:119;2832:148;;;;;;;;;;;;;:::i;4738:18::-;;;;;;;;;;-1:-1:-1;4738:18:0;;;;;;;;;;;;;;;;;;;2539:25:1;;;2595:2;2580:18;;2573:34;;;;2623:18;;;2616:34;2681:2;2666:18;;2659:34;2526:3;2511:19;4738:18:0;2308:391:1;10214:141:0;;;;;;;;;;;;;:::i;4374:47::-;;;;;;;;;;;;;;;;11127:203;;;;;;;;;;-1:-1:-1;11127:203:0;;;;;:::i;:::-;;:::i;2618:79::-;;;;;;;;;;-1:-1:-1;2656:7:0;2683:6;2618:79;;-1:-1:-1;;;;;2683:6:0;;;4434:51:1;;4422:2;4407:18;2618:79:0;4288:203:1;4428:49:0;;;;;;;;;;;;;;;;5827:87;;;;;;;;;;-1:-1:-1;5899:7:0;;;;;;;;;;;;-1:-1:-1;;;5899:7:0;;;;5827:87;;6243:167;;;;;;;;;;-1:-1:-1;6243:167:0;;;;;:::i;:::-;;:::i;11338:101::-;;;;;;;;;;-1:-1:-1;11338:101:0;;;;;:::i;:::-;-1:-1:-1;;;;;11417:14:0;11395:4;11417:14;;;:4;:14;;;;;;;;;11338:101;4843:30;;;;;;;;;;-1:-1:-1;4843:30:0;;;;;;;;;;;;;4670:25:1;;;4726:2;4711:18;;4704:34;;;;4643:18;4843:30:0;4496:248:1;10462:657:0;;;;;;;;;;;;;:::i;6418:143::-;;;;;;;;;;-1:-1:-1;6418:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6526:18:0;;;6499:7;6526:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6418:143;4484:55;;;;;;;;;;;;;;;;6569:161;6644:4;6661:39;453:10;6684:7;6693:6;6661:8;:39::i;:::-;-1:-1:-1;6718:4:0;6569:161;;;;;:::o;6013:95::-;6066:7;4352:15;4291:1;4352:2;:15;:::i;:::-;4334:33;;:15;:33;:::i;:::-;6086:14;;6013:95;:::o;6738:313::-;6836:4;6853:36;6863:6;6871:9;6882:6;6853:9;:36::i;:::-;6900:121;6909:6;453:10;6931:89;6969:6;6931:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6931:19:0;;;;;;:11;:19;;;;;;;;453:10;6931:33;;;;;;;;;;:37;:89::i;:::-;6900:8;:121::i;:::-;-1:-1:-1;7039:4:0;6738:313;;;;;:::o;11484:359::-;11550:9;;-1:-1:-1;;;;;11550:9:0;453:10;-1:-1:-1;;;;;11534:25:0;;11526:34;;;;;;11612:4;11571:20;6209:18;;;:9;:18;;;;;;11632:16;;11629:76;;11663:30;11680:12;11663:16;:30::i;:::-;11736:21;11771:14;;11768:68;;11800:24;11813:10;11800:12;:24::i;:::-;11515:328;;11484:359::o;11851:188::-;11917:9;;-1:-1:-1;;;;;11917:9:0;453:10;-1:-1:-1;;;;;11901:25:0;;11893:34;;;;;;11967:21;11999:32;11967:21;11999:12;:32::i;:::-;11882:157;11851:188::o;2832:148::-;2745:6;;-1:-1:-1;;;;;2745:6:0;453:10;2745:22;2737:67;;;;-1:-1:-1;;;2737:67:0;;;;;;;:::i;:::-;;;;;;;;;2939:1:::1;2923:6:::0;;2902:40:::1;::::0;-1:-1:-1;;;;;2923:6:0;;::::1;::::0;2902:40:::1;::::0;2939:1;;2902:40:::1;2970:1;2953:19:::0;;-1:-1:-1;;;;;;2953:19:0::1;::::0;;2832:148::o;10214:141::-;2745:6;;-1:-1:-1;;;;;2745:6:0;453:10;2745:22;2737:67;;;;-1:-1:-1;;;2737:67:0;;;;;;;:::i;:::-;4352:15:::1;4291:1;4352:2;:15;:::i;:::-;4334:33;::::0;:15:::1;:33;:::i;:::-;10281:13;:23:::0;;;10267:11:::1;:37:::0;10320:27:::1;4352:15;4291:1;4352:2;:15;:::i;:::-;4334:33;::::0;:15:::1;:33;:::i;:::-;10320:27;::::0;1370:25:1;;;1358:2;1343:18;10320:27:0::1;;;;;;;10214:141::o:0;11127:203::-;2745:6;;-1:-1:-1;;;;;2745:6:0;453:10;2745:22;2737:67;;;;-1:-1:-1;;;2737:67:0;;;;;;;:::i;:::-;11226:6:::1;11221:102;11242:10;:17;11238:1;:21;11221:102;;;11303:8;11281:4;:19;11286:10;11297:1;11286:13;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11281:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11281:19:0;:30;;-1:-1:-1;;11281:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;11261:3:0::1;11221:102;;;;11127:203:::0;;:::o;6243:167::-;6321:4;6338:42;453:10;6362:9;6373:6;6338:9;:42::i;10462:657::-;2745:6;;-1:-1:-1;;;;;2745:6:0;453:10;2745:22;2737:67;;;;-1:-1:-1;;;2737:67:0;;;;;;;:::i;:::-;10526:11:::1;::::0;-1:-1:-1;;;10526:11:0;::::1;;;10525:12;10517:48;;;::::0;-1:-1:-1;;;10517:48:0;;7519:2:1;10517:48:0::1;::::0;::::1;7501:21:1::0;7558:2;7538:18;;;7531:30;7597:25;7577:18;;;7570:53;7640:18;;10517:48:0::1;7317:347:1::0;10517:48:0::1;10576:15;:80:::0;;-1:-1:-1;;;;;;10576:80:0::1;10613:42;10576:80:::0;;::::1;::::0;;;10667:58:::1;::::0;10684:4:::1;::::0;4352:15:::1;4291:1;4352:2;:15;:::i;:::-;4334:33;::::0;:15:::1;:33;:::i;10667:58::-;10770:15;;;;;;;;;-1:-1:-1::0;;;;;10770:15:0::1;-1:-1:-1::0;;;;;10770:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10752:55:0::1;;10816:4;10823:15;;;;;;;;;-1:-1:-1::0;;;;;10823:15:0::1;-1:-1:-1::0;;;;;10823:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10752:94;::::0;-1:-1:-1;;;;;;10752:94:0::1;::::0;;;;;;-1:-1:-1;;;;;8155:15:1;;;10752:94:0::1;::::0;::::1;8137:34:1::0;8207:15;;8187:18;;;8180:43;8072:18;;10752:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10736:13;:110:::0;;-1:-1:-1;;;;;10736:110:0;;::::1;-1:-1:-1::0;;;;;;10736:110:0;;::::1;;::::0;;10857:15:::1;::::0;::::1;:31;10896:21;10927:4;10933:24;10927:4:::0;-1:-1:-1;;;;;6209:18:0;6182:7;6209:18;;;:9;:18;;;;;;;6116:119;10933:24:::1;10958:1;10960::::0;10962:7:::1;2656::::0;2683:6;-1:-1:-1;;;;;2683:6:0;;2618:79;10962:7:::1;10857:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10857:129:0;;;-1:-1:-1;;;;;8593:15:1;;;10857:129:0::1;::::0;::::1;8575:34:1::0;8625:18;;;8618:34;;;;8668:18;;;8661:34;;;;8711:18;;;8704:34;8775:15;;;8754:19;;;8747:44;10970:15:0::1;8807:19:1::0;;;8800:35;8509:19;;10857:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11004:13:0::1;::::0;11035:15:::1;::::0;10997:71:::1;::::0;-1:-1:-1;;;10997:71:0;;-1:-1:-1;;;;;11035:15:0;;::::1;10997:71;::::0;::::1;9331:51:1::0;-1:-1:-1;;9398:18:1;;;9391:34;11004:13:0;::::1;::::0;-1:-1:-1;10997:29:0::1;::::0;9304:18:1;;10997:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11093:11:0::1;:18:::0;;-1:-1:-1;;;;11079:32:0;-1:-1:-1;;;11079:32:0;;;10462:657::o;7059:335::-;-1:-1:-1;;;;;7152:19:0;;7144:68;;;;-1:-1:-1;;;7144:68:0;;9888:2:1;7144:68:0;;;9870:21:1;9927:2;9907:18;;;9900:30;9966:34;9946:18;;;9939:62;-1:-1:-1;;;10017:18:1;;;10010:34;10061:19;;7144:68:0;9686:400:1;7144:68:0;-1:-1:-1;;;;;7231:21:0;;7223:68;;;;-1:-1:-1;;;7223:68:0;;10293:2:1;7223:68:0;;;10275:21:1;10332:2;10312:18;;;10305:30;10371:34;10351:18;;;10344:62;-1:-1:-1;;;10422:18:1;;;10415:32;10464:19;;7223:68:0;10091:398:1;7223:68:0;-1:-1:-1;;;;;7302:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7354:32;;1370:25:1;;;7354:32:0;;1343:18:1;7354:32:0;;;;;;;7059:335;;;:::o;7402:2198::-;-1:-1:-1;;;;;7490:18:0;;7482:68;;;;-1:-1:-1;;;7482:68:0;;10696:2:1;7482:68:0;;;10678:21:1;10735:2;10715:18;;;10708:30;10774:34;10754:18;;;10747:62;-1:-1:-1;;;10825:18:1;;;10818:35;10870:19;;7482:68:0;10494:401:1;7482:68:0;-1:-1:-1;;;;;7569:16:0;;7561:64;;;;-1:-1:-1;;;7561:64:0;;11102:2:1;7561:64:0;;;11084:21:1;11141:2;11121:18;;;11114:30;11180:34;11160:18;;;11153:62;-1:-1:-1;;;11231:18:1;;;11224:33;11274:19;;7561:64:0;10900:399:1;7561:64:0;7653:1;7644:6;:10;7636:64;;;;-1:-1:-1;;;7636:64:0;;11506:2:1;7636:64:0;;;11488:21:1;11545:2;11525:18;;;11518:30;11584:34;11564:18;;;11557:62;-1:-1:-1;;;11635:18:1;;;11628:39;11684:19;;7636:64:0;11304:405:1;7636:64:0;7711:17;2683:6;;-1:-1:-1;;;;;7746:15:0;;;2683:6;;7746:15;;;;:32;;-1:-1:-1;2656:7:0;2683:6;-1:-1:-1;;;;;7765:13:0;;;2683:6;;7765:13;;7746:32;7743:1492;;;-1:-1:-1;;;;;7804:10:0;;;;;;:4;:10;;;;;;;;7803:11;:24;;;;-1:-1:-1;;;;;;7819:8:0;;;;;;:4;:8;;;;;;;;7818:9;7803:24;7795:33;;;;;;7857:82;7935:3;7857:73;7880:11;:15;;;7869:8;;:26;7868:61;;7916:5;:13;7868:61;;;7899:14;;7868:61;7857:6;;:10;:73::i;:::-;:77;;:82::i;:::-;7967:13;;7845:94;;-1:-1:-1;;;;;;7959:21:0;;;7967:13;;7959:21;:55;;;;-1:-1:-1;7998:15:0;;-1:-1:-1;;;;;7984:30:0;;;7998:15;;7984:30;;7959:55;:80;;;;-1:-1:-1;;;;;;8020:19:0;;;;;;:15;:19;;;;;;;;8018:21;7959:80;7956:308;;;8078:11;;8068:6;:21;;8060:60;;;;-1:-1:-1;;;8060:60:0;;11916:2:1;8060:60:0;;;11898:21:1;11955:2;11935:18;;;11928:30;11994:28;11974:18;;;11967:56;12040:18;;8060:60:0;11714:350:1;8060:60:0;8173:13;;8163:6;8147:13;8157:2;-1:-1:-1;;;;;6209:18:0;6182:7;6209:18;;;:9;:18;;;;;;;6116:119;8147:13;:22;;;;:::i;:::-;:39;;8139:80;;;;-1:-1:-1;;;8139:80:0;;12401:2:1;8139:80:0;;;12383:21:1;12440:2;12420:18;;;12413:30;12479;12459:18;;;12452:58;12527:18;;8139:80:0;12199:352:1;8139:80:0;8238:8;:10;;;:8;:10;;;:::i;:::-;;;;;;7956:308;8289:13;;-1:-1:-1;;;;;8283:19:0;;;8289:13;;8283:19;:44;;;;-1:-1:-1;;;;;;8306:21:0;;8322:4;8306:21;;8283:44;8280:181;;;8360:85;8441:3;8360:76;8383:11;:16;;;8372:8;;:27;8371:64;;8421:14;;8371:64;;;8403:15;;8360:6;;:10;:76::i;:85::-;8348:97;;8280:181;8526:4;8477:28;6209:18;;;:9;:18;;;;;;8551:6;;-1:-1:-1;;;8551:6:0;;;;8550:7;:30;;;;-1:-1:-1;8567:13:0;;-1:-1:-1;;;;;8561:19:0;;;8567:13;;8561:19;8550:30;:45;;;;-1:-1:-1;8584:11:0;;-1:-1:-1;;;8584:11:0;;;;8550:45;:90;;;;;8622:18;;8599:20;:41;8550:90;:122;;;;;8655:17;;8644:8;;:28;8550:122;8547:677;;;8711:13;;8696:12;:28;8693:89;;;8761:1;8749:9;:13;8693:89;8820:1;8808:9;;:13;8800:49;;;;-1:-1:-1;;;8800:49:0;;12898:2:1;8800:49:0;;;12880:21:1;12937:2;12917:18;;;12910:30;12976:25;12956:18;;;12949:53;13019:18;;8800:49:0;12696:347:1;8800:49:0;8868:71;8885:53;8889:6;8897:40;8901:20;8923:13;;8897:3;:40::i;:::-;8885:3;:53::i;:::-;8868:16;:71::i;:::-;8987:21;9030:22;;9027:105;;9077:35;9090:21;9077:12;:35::i;:::-;9150:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;9196:12:0;9180:13;:28;-1:-1:-1;8547:677:0;7780:1455;7743:1492;9250:13;;9247:166;;9323:4;9305:24;;;;:9;:24;;;;;;:39;;9334:9;9305:28;:39::i;:::-;9296:4;9278:24;;;;:9;:24;;;;;;;:66;;;;9362:39;;-1:-1:-1;;;;;9362:39:0;;;;;;;9391:9;1370:25:1;;1358:2;1343:18;;1224:177;9362:39:0;;;;;;;;9247:166;-1:-1:-1;;;;;9441:15:0;;;;;;:9;:15;;;;;;:27;;9461:6;9441:19;:27::i;:::-;-1:-1:-1;;;;;9423:15:0;;;;;;:9;:15;;;;;:45;9495:40;9513:21;:6;9524:9;9513:10;:21::i;:::-;-1:-1:-1;;;;;9495:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9479:13:0;;;;;;;:9;:13;;;;;:56;;;;9551:41;;;9570:21;:6;9581:9;9570:10;:21::i;:::-;9551:41;;1370:25:1;;;1358:2;1343:18;9551:41:0;;;;;;;7471:2129;7402:2198;;;:::o;1510:190::-;1596:7;1632:12;1624:6;;;;1616:29;;;;-1:-1:-1;;;1616:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1656:9:0;1668:5;1672:1;1668;:5;:::i;:::-;1656:17;1510:190;-1:-1:-1;;;;;1510:190:0:o;9723:483::-;5312:6;:13;;-1:-1:-1;;;;5312:13:0;-1:-1:-1;;;5312:13:0;;;9825:16:::1;::::0;;9839:1:::1;9825:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9825:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9825:16:0::1;9801:40;;9870:4;9852;9857:1;9852:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9852:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9896:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9896:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9852:7;;9896:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9886:4;9891:1;9886:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9886:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9961:15:::1;::::0;9929:62:::1;::::0;9946:4:::1;::::0;9961:15:::1;9979:11:::0;9929:8:::1;:62::i;:::-;10002:15;::::0;:196:::1;::::0;-1:-1:-1;;;10002:196:0;;-1:-1:-1;;;;;10002:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10083:11;;10002:15:::1;::::0;10125:4;;10152::::1;::::0;10172:15:::1;::::0;10002:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5348:6:0;:14;;-1:-1:-1;;;;5348:14:0;;;-1:-1:-1;;;;9723:483:0:o;10363:91::-;10420:9;;:26;;-1:-1:-1;;;;;10420:9:0;;;;:26;;;;;10439:6;;10420:9;:26;:9;:26;10439:6;10420:9;:26;;;;;;;;;;;;;;;;;;;1708:246;1766:7;1790:1;1795;1790:6;1786:47;;-1:-1:-1;1820:1:0;1813:8;;1786:47;1843:9;1855:5;1859:1;1855;:5;:::i;:::-;1843:17;-1:-1:-1;1888:1:0;1879:5;1883:1;1843:17;1879:5;:::i;:::-;:10;1871:56;;;;-1:-1:-1;;;1871:56:0;;14590:2:1;1871:56:0;;;14572:21:1;14629:2;14609:18;;;14602:30;14668:34;14648:18;;;14641:62;-1:-1:-1;;;14719:18:1;;;14712:31;14760:19;;1871:56:0;14388:397:1;1871:56:0;1945:1;1708:246;-1:-1:-1;;;1708:246:0:o;1962:132::-;2020:7;2047:39;2051:1;2054;2047:39;;;;;;;;;;;;;;;;;:3;:39::i;9610:105::-;9667:7;9697:1;9693;:5;9692:15;;9706:1;9692:15;;;-1:-1:-1;9702:1:0;9610:105;-1:-1:-1;9610:105:0:o;1179:179::-;1237:7;;1269:5;1273:1;1269;:5;:::i;:::-;1257:17;;1298:1;1293;:6;;1285:46;;;;-1:-1:-1;;;1285:46:0;;14992:2:1;1285:46:0;;;14974:21:1;15031:2;15011:18;;;15004:30;15070:29;15050:18;;;15043:57;15117:18;;1285:46:0;14790:351:1;1366:136:0;1424:7;1451:43;1455:1;1458;1451:43;;;;;;;;;;;;;;;;;:3;:43::i;2102:189::-;2188:7;2223:12;2216:5;2208:28;;;;-1:-1:-1;;;2208:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2247:9:0;2259:5;2263:1;2259;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:134;641:20;;670:31;641:20;670:31;:::i;:::-;573:134;;;:::o;712:315::-;780:6;788;841:2;829:9;820:7;816:23;812:32;809:52;;;857:1;854;847:12;809:52;896:9;883:23;915:31;940:5;915:31;:::i;:::-;965:5;1017:2;1002:18;;;;989:32;;-1:-1:-1;;;712:315:1:o;1406:456::-;1483:6;1491;1499;1552:2;1540:9;1531:7;1527:23;1523:32;1520:52;;;1568:1;1565;1558:12;1520:52;1607:9;1594:23;1626:31;1651:5;1626:31;:::i;:::-;1676:5;-1:-1:-1;1733:2:1;1718:18;;1705:32;1746:33;1705:32;1746:33;:::i;:::-;1406:456;;1798:7;;-1:-1:-1;;;1852:2:1;1837:18;;;;1824:32;;1406:456::o;2056:247::-;2115:6;2168:2;2156:9;2147:7;2143:23;2139:32;2136:52;;;2184:1;2181;2174:12;2136:52;2223:9;2210:23;2242:31;2267:5;2242:31;:::i;2704:127::-;2765:10;2760:3;2756:20;2753:1;2746:31;2796:4;2793:1;2786:15;2820:4;2817:1;2810:15;2836:118;2922:5;2915:13;2908:21;2901:5;2898:32;2888:60;;2944:1;2941;2934:12;2959:128;3024:20;;3053:28;3024:20;3053:28;:::i;3092:1191::-;3182:6;3190;3243:2;3231:9;3222:7;3218:23;3214:32;3211:52;;;3259:1;3256;3249:12;3211:52;3299:9;3286:23;3328:18;3369:2;3361:6;3358:14;3355:34;;;3385:1;3382;3375:12;3355:34;3423:6;3412:9;3408:22;3398:32;;3468:7;3461:4;3457:2;3453:13;3449:27;3439:55;;3490:1;3487;3480:12;3439:55;3526:2;3513:16;3548:4;3571:2;3567;3564:10;3561:36;;;3577:18;;:::i;:::-;3623:2;3620:1;3616:10;3655:2;3649:9;3718:2;3714:7;3709:2;3705;3701:11;3697:25;3689:6;3685:38;3773:6;3761:10;3758:22;3753:2;3741:10;3738:18;3735:46;3732:72;;;3784:18;;:::i;:::-;3820:2;3813:22;3870:18;;;3904:15;;;;-1:-1:-1;3946:11:1;;;3942:20;;;3974:19;;;3971:39;;;4006:1;4003;3996:12;3971:39;4030:11;;;;4050:148;4066:6;4061:3;4058:15;4050:148;;;4132:23;4151:3;4132:23;:::i;:::-;4120:36;;4083:12;;;;4176;;;;4050:148;;;4217:6;-1:-1:-1;4242:35:1;;-1:-1:-1;4258:18:1;;;4242:35;:::i;:::-;4232:45;;;;;;3092:1191;;;;;:::o;4749:388::-;4817:6;4825;4878:2;4866:9;4857:7;4853:23;4849:32;4846:52;;;4894:1;4891;4884:12;4846:52;4933:9;4920:23;4952:31;4977:5;4952:31;:::i;:::-;5002:5;-1:-1:-1;5059:2:1;5044:18;;5031:32;5072:33;5031:32;5072:33;:::i;:::-;5124:7;5114:17;;;4749:388;;;;;:::o;5142:127::-;5203:10;5198:3;5194:20;5191:1;5184:31;5234:4;5231:1;5224:15;5258:4;5255:1;5248:15;5274:416;5363:1;5400:5;5363:1;5414:270;5435:7;5425:8;5422:21;5414:270;;;5494:4;5490:1;5486:6;5482:17;5476:4;5473:27;5470:53;;;5503:18;;:::i;:::-;5553:7;5543:8;5539:22;5536:55;;;5573:16;;;;5536:55;5652:22;;;;5612:15;;;;5414:270;;;5418:3;5274:416;;;;;:::o;5695:806::-;5744:5;5774:8;5764:80;;-1:-1:-1;5815:1:1;5829:5;;5764:80;5863:4;5853:76;;-1:-1:-1;5900:1:1;5914:5;;5853:76;5945:4;5963:1;5958:59;;;;6031:1;6026:130;;;;5938:218;;5958:59;5988:1;5979:10;;6002:5;;;6026:130;6063:3;6053:8;6050:17;6047:43;;;6070:18;;:::i;:::-;-1:-1:-1;;6126:1:1;6112:16;;6141:5;;5938:218;;6240:2;6230:8;6227:16;6221:3;6215:4;6212:13;6208:36;6202:2;6192:8;6189:16;6184:2;6178:4;6175:12;6171:35;6168:77;6165:159;;;-1:-1:-1;6277:19:1;;;6309:5;;6165:159;6356:34;6381:8;6375:4;6356:34;:::i;:::-;6426:6;6422:1;6418:6;6414:19;6405:7;6402:32;6399:58;;;6437:18;;:::i;:::-;6475:20;;5695:806;-1:-1:-1;;;5695:806:1:o;6506:140::-;6564:5;6593:47;6634:4;6624:8;6620:19;6614:4;6593:47;:::i;6651:168::-;6724:9;;;6755;;6772:15;;;6766:22;;6752:37;6742:71;;6793:18;;:::i;6824:356::-;7026:2;7008:21;;;7045:18;;;7038:30;7104:34;7099:2;7084:18;;7077:62;7171:2;7156:18;;6824:356::o;7185:127::-;7246:10;7241:3;7237:20;7234:1;7227:31;7277:4;7274:1;7267:15;7301:4;7298:1;7291:15;7669:251;7739:6;7792:2;7780:9;7771:7;7767:23;7763:32;7760:52;;;7808:1;7805;7798:12;7760:52;7840:9;7834:16;7859:31;7884:5;7859:31;:::i;8846:306::-;8934:6;8942;8950;9003:2;8991:9;8982:7;8978:23;8974:32;8971:52;;;9019:1;9016;9009:12;8971:52;9048:9;9042:16;9032:26;;9098:2;9087:9;9083:18;9077:25;9067:35;;9142:2;9131:9;9127:18;9121:25;9111:35;;8846:306;;;;;:::o;9436:245::-;9503:6;9556:2;9544:9;9535:7;9531:23;9527:32;9524:52;;;9572:1;9569;9562:12;9524:52;9604:9;9598:16;9623:28;9645:5;9623:28;:::i;12069:125::-;12134:9;;;12155:10;;;12152:36;;;12168:18;;:::i;12556:135::-;12595:3;12616:17;;;12613:43;;12636:18;;:::i;:::-;-1:-1:-1;12683:1:1;12672:13;;12556:135::o;13048:128::-;13115:9;;;13136:11;;;13133:37;;;13150:18;;:::i;13181:980::-;13443:4;13491:3;13480:9;13476:19;13522:6;13511:9;13504:25;13548:2;13586:6;13581:2;13570:9;13566:18;13559:34;13629:3;13624:2;13613:9;13609:18;13602:31;13653:6;13688;13682:13;13719:6;13711;13704:22;13757:3;13746:9;13742:19;13735:26;;13796:2;13788:6;13784:15;13770:29;;13817:1;13827:195;13841:6;13838:1;13835:13;13827:195;;;13906:13;;-1:-1:-1;;;;;13902:39:1;13890:52;;13997:15;;;;13962:12;;;;13938:1;13856:9;13827:195;;;-1:-1:-1;;;;;;;14078:32:1;;;;14073:2;14058:18;;14051:60;-1:-1:-1;;;14142:3:1;14127:19;14120:35;14039:3;13181:980;-1:-1:-1;;;13181:980:1:o;14166:217::-;14206:1;14232;14222:132;;14276:10;14271:3;14267:20;14264:1;14257:31;14311:4;14308:1;14301:15;14339:4;14336:1;14329:15;14222:132;-1:-1:-1;14368:9:1;;14166:217::o

Swarm Source

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