ETH Price: $3,667.11 (+0.75%)
 

Overview

Max Total Supply

780,186.732337 Pyromania

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
7,737.09597 Pyromania

Value
$0.00
0xa503fc64b508a805c33bbf0b1e90b7cdeaa4c26d
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:
PyromaniaToken

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-14
*/

/*
$BURN is a hyper-deflationary token that will gain value with every buy and sell. 

We will implement a burn like no other becoming the FIRST ultra-deflationary token which will act as a true burn by removing tokens from the total circulating supply. 

Supply is fixed, no more tokens will be minted meaning the price of your tokens can only go one way... UP!

Join the Pyromaniacs and let's $BURN everything to ASH

TG: https://t.me/PyromaniaERC20
Twitter: https://twitter.com/PyromaniaERC20
Medium: https://medium.com/@pyromaniaerc20/pyromania-is-a-type-of-impulse-control-disorder-that-is-characterized-by-being-unable-to-resist-93cdc7f286e1
v1 Website: https://www.pyromania-erc20.com/

*/
// SPDX-License-Identifier: MIT                                                                    

pragma solidity 0.8.9;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
    function name() public view virtual override returns (string memory) {
        return _name;
    }
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
    function decimals() public view virtual override returns (uint8) {
        return 6;
    }
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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);
    }

}

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;
    }
    
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}



library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    
    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        // Detect overflow when multiplying MIN_INT256 with -1
        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    
    function div(int256 a, int256 b) internal pure returns (int256) {
        // Prevent overflow when dividing MIN_INT256 by -1
        require(b != -1 || a != MIN_INT256);

        // Solidity already throws when dividing by 0.
        return a / b;
    }

    
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    
    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }


    function toUint256Safe(int256 a) internal pure returns (uint256) {
        require(a >= 0);
        return uint256(a);
    }
}

library SafeMathUint {
  function toInt256Safe(uint256 a) internal pure returns (int256) {
    int256 b = int256(a);
    require(b >= 0);
    return b;
  }
}


interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address); 
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

pragma solidity 0.8.9;

contract PyromaniaToken is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    bool private swapping;
        
    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
    
    uint256 public supply;

    address public operationsWallet;

    bool public tradingActive = false;
    bool public swapEnabled = true;

    uint256 public buyBurnFee;
    uint256 public buyOperationsFee;
    uint256 public buyTotalFees;

    uint256 public sellBurnFee;
    uint256 public sellOperationsFee;
    uint256 public sellTotalFees;   
    
    uint256 public tokensForBurn;
    uint256 public tokensForOperations;

    uint256 public walletDigit;
    uint256 public transDigit;
    uint256 public swapDigit;

    bool public antibot = true;
    mapping (address => uint) public firstbuy;
    bool public blacklistMode = true;
    mapping (address => bool) public isBlacklisted;

    
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public _isExcludedMaxTransactionAmount;

    mapping (address => bool) public automatedMarketMakerPairs;

    event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor() ERC20("BURN", "Pyromania") {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        
        uint256 _buyBurnFee = 8;
        uint256 _buyOperationsFee = 2;

        uint256 _sellBurnFee = 8;
        uint256 _sellOperationsFee = 2;
        
        uint256 totalSupply = 1 * 1e6 * 1e6;
        supply += totalSupply;
        
        walletDigit = 1;
        transDigit = 1;
        swapDigit = 10;

        maxTransactionAmount = supply * transDigit / 100;
        swapTokensAtAmount = supply * swapDigit / 10000;
        maxWallet = supply * walletDigit / 100;

        buyBurnFee = _buyBurnFee;
        buyOperationsFee = _buyOperationsFee;
        buyTotalFees = buyBurnFee + buyOperationsFee;
        
        sellBurnFee = _sellBurnFee;
        sellOperationsFee = _sellOperationsFee;
        sellTotalFees = sellBurnFee + sellOperationsFee;
        
        operationsWallet = 0x639c7b7af9d5dbb140C8d8644CF3d56f1E8f4d01;

        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        
        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _approve(owner(), address(uniswapV2Router), totalSupply);
        _mint(msg.sender, totalSupply);

    }

    receive() external payable {

  	}

    function enableTrading(bool _trade, bool _ab) external onlyOwner {
        tradingActive = _trade;
        antibot = _ab;
    }

    function updateTransDigit(uint256 newNum) external onlyOwner {
        require(newNum >= 1);
        transDigit = newNum;
        updateLimits();
    }

    function updateSwapSettings(bool _enable, uint256 _digit) external onlyOwner{
        swapEnabled =  _enable;
        swapDigit = _digit;
        updateLimits();
    }

    function updateWalletDigit(uint256 newNum) external onlyOwner {
        require(newNum >= 1);
        walletDigit = newNum;
        updateLimits();
    }

    
    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }
    
    function updateBuyFees(uint256 _burnFee, uint256 _operationsFee) external onlyOwner {
        buyBurnFee = _burnFee;
        buyOperationsFee = _operationsFee;
        buyTotalFees = buyBurnFee + buyOperationsFee;
        require(buyTotalFees <= 25, "Must keep fees at 20% or less");
    }
    
    function updateSellFees(uint256 _burnFee, uint256 _operationsFee) external onlyOwner {
        sellBurnFee = _burnFee;
        sellOperationsFee = _operationsFee;
        sellTotalFees = sellBurnFee + sellOperationsFee;
        require(sellTotalFees <= 25, "Must keep fees at 25% or less");
    }

    function updateOperationsWallet(address newWallet) external onlyOwner {
        operationsWallet = newWallet;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function updateLimits() private {
        maxTransactionAmount = supply * transDigit / 100;
        swapTokensAtAmount = supply * swapDigit / 10000;
        maxWallet = supply * walletDigit / 100;
    }

    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }
    
    function manage_blacklist_status(bool _status) external onlyOwner {
        blacklistMode = _status;
    }

    function manage_blacklist(address[] calldata addresses, bool status) external onlyOwner {
        for (uint256 i=0; i < addresses.length; ++i) {
            blacklist_wallet(addresses[i],status);
        }
    }

    function blacklist_wallet(address _adr, bool _status) internal {
        if(_status && _adr == address(this)){
            return;
        }
        isBlacklisted[_adr] = _status;
    }


    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        
         if(amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
        
        if (
            from != owner() &&
            to != owner() &&
            to != address(0) &&
            to != address(0xdead) &&
            !swapping
        ){
            if(!_isExcludedFromFees[from] && !_isExcludedFromFees[to]){
                require(tradingActive,"Trading is not active");
                if(antibot){
                    if(automatedMarketMakerPairs[from]){
                        if(firstbuy[to] == 0){
                            firstbuy[to] = block.number;
                        }
                        blacklist_wallet(to,true);
                    }
                    if(firstbuy[from] > 0){
                        require( firstbuy[from] > (block.number - 12), "Bought before contract was launched");
                    }
                }
                
                if(blacklistMode && !antibot){
                    require(!isBlacklisted[from],"Blacklisted");    
                }
            }

            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
            
            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            }
            else if(!_isExcludedMaxTransactionAmount[to]){
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if( 
            canSwap &&
            !swapping &&
            swapEnabled &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;
            
            swapBack();

            swapping = false;
        }
        
        bool takeFee = !swapping;

        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }
        
        uint256 fees = 0;

        if(takeFee){
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0){
                fees = amount.mul(sellTotalFees).div(100);
                tokensForBurn += fees * sellBurnFee / sellTotalFees;
                tokensForOperations += fees * sellOperationsFee / sellTotalFees;
            }

            // on buy
            else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) {

        	    fees = amount.mul(buyTotalFees).div(100);
        	    tokensForBurn += fees * buyBurnFee / buyTotalFees;
                tokensForOperations += fees * buyOperationsFee / buyTotalFees;
            }
            
            if(fees > 0){    
                super._transfer(from, address(this), fees);
                if (tokensForBurn > 0) {
                    _burn(address(this), tokensForBurn);
                    supply = totalSupply();
                    updateLimits();
                    tokensForBurn = 0;
                }
            }
        	
        	amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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 swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        bool success;
        if(contractBalance == 0) {return;}
        if(contractBalance > swapTokensAtAmount * 20){
          contractBalance = swapTokensAtAmount * 20;
        }
        swapTokensForEth(contractBalance); 
        tokensForOperations = 0;
        (success,) = address(operationsWallet).call{value: address(this).balance}("");
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antibot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyOperationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_trade","type":"bool"},{"internalType":"bool","name":"_ab","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"firstbuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"manage_blacklist_status","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellOperationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapDigit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[],"name":"tokensForBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForOperations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transDigit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_operationsFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateOperationsWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_operationsFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"},{"internalType":"uint256","name":"_digit","type":"uint256"}],"name":"updateSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateTransDigit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateWalletDigit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletDigit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600a805461ffff60a01b1916600160a81b1790556016805460ff1990811660019081179092556018805490911690911790553480156200004357600080fd5b506040805180820182526004815263212aa92760e11b6020808301918252835180850190945260098452685079726f6d616e696160b81b908401528151919291620000919160039162000895565b508051620000a790600490602084019062000895565b5050506000620000bc6200048b60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d6200012c8160016200048f565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200017257600080fd5b505afa15801562000187573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ad91906200093b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001f657600080fd5b505afa1580156200020b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023191906200093b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200027a57600080fd5b505af11580156200028f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b591906200093b565b6001600160a01b031660a0819052620002d09060016200048f565b60a051620002e090600162000509565b600980546008916002918391839164e8d4a51000918291600090620003079084906200097c565b9091555050600160138190556014819055600a6015556009546064916200032e9162000997565b6200033a9190620009b9565b60065560155460095461271091620003529162000997565b6200035e9190620009b9565b600755601354600954606491620003759162000997565b620003819190620009b9565b600855600b859055600c8490556200039a84866200097c565b600d55600e839055600f829055620003b382846200097c565b601055600a80546001600160a01b03191673639c7b7af9d5dbb140c8d8644cf3d56f1e8f4d01179055620003fb620003f36005546001600160a01b031690565b60016200055d565b620004083060016200055d565b6200041761dead60016200055d565b620004366200042e6005546001600160a01b031690565b60016200048f565b620004433060016200048f565b6200045261dead60016200048f565b62000473620004696005546001600160a01b031690565b6080518362000607565b6200047f33826200072f565b50505050505062000a19565b3390565b6005546001600160a01b03163314620004de5760405162461bcd60e51b81526020600482018190526024820152600080516020620032ef83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6001600160a01b0382166000818152601c6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620005a85760405162461bcd60e51b81526020600482018190526024820152600080516020620032ef8339815191526044820152606401620004d5565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0383166200066b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620004d5565b6001600160a01b038216620006ce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004d5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620007875760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004d5565b620007a3816002546200082b60201b620012661790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620007d6918390620012666200082b821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000806200083a83856200097c565b9050838110156200088e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620004d5565b9392505050565b828054620008a390620009dc565b90600052602060002090601f016020900481019282620008c7576000855562000912565b82601f10620008e257805160ff191683800117855562000912565b8280016001018555821562000912579182015b8281111562000912578251825591602001919060010190620008f5565b506200092092915062000924565b5090565b5b8082111562000920576000815560010162000925565b6000602082840312156200094e57600080fd5b81516001600160a01b03811681146200088e57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111562000992576200099262000966565b500190565b6000816000190483118215151615620009b457620009b462000966565b500290565b600082620009d757634e487b7160e01b600052601260045260246000fd5b500490565b600181811c90821680620009f157607f821691505b6020821081141562000a1357634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05161289462000a5b600039600081816105e70152610fe60152600081816104840152818161215e01528181612226015261226201526128946000f3fe6080604052600436106103395760003560e01c80636ddd1713116101ab578063adb873bd116100f7578063e2f4560511610095578063f8b45b051161006f578063f8b45b05146109b1578063fb002c97146109c7578063fd72e22a146109dd578063fe575a87146109fd57600080fd5b8063e2f4560514610965578063e71dc3f51461097b578063f2fde38b1461099157600080fd5b8063c0246668116100d1578063c0246668146108d3578063c8c8ebe4146108f3578063d85ba06314610909578063dd62ed3e1461091f57600080fd5b8063adb873bd1461086c578063b62496f514610882578063bbc0c742146108b257600080fd5b80638da5cb5b11610164578063975d71e21161013e578063975d71e2146107f65780639a7a23d61461080c578063a457c2d71461082c578063a9059cbb1461084c57600080fd5b80638da5cb5b146107a35780638e2eee84146107c157806395d89b41146107e157600080fd5b80636ddd1713146106e757806370a0823114610708578063715018a61461073e5780637571336a146107535780637ab4398314610773578063896648c11461078957600080fd5b806327c8f835116102855780634f77f6c01161022357806366ca9b83116101fd57806366ca9b831461066e5780636a486a8e1461068e5780636c2acb56146106a45780636d02cc02146106ba57600080fd5b80634f77f6c0146106095780634fbee1931461061f5780635a139dd41461065857600080fd5b8063313ce5671161025f578063313ce5671461057957806339509351146105955780633b4914fe146105b557806349bd5a5e146105d557600080fd5b806327c8f83514610529578063305c4c801461053f57806330d5d18d1461055957600080fd5b806313661d71116102f257806318160ddd116102cc57806318160ddd146104be5780631d777856146104d35780631fa07da5146104e957806323b872dd1461050957600080fd5b806313661d7114610432578063150de0bb146104525780631694505e1461047257600080fd5b806302dbd8f814610345578063034fc0b714610367578063047fc9aa1461038757806306fdde03146103b0578063095ea7b3146103d257806310d5de531461040257600080fd5b3661034057005b600080fd5b34801561035157600080fd5b50610365610360366004612346565b610a2d565b005b34801561037357600080fd5b5061036561038236600461237d565b610acd565b34801561039357600080fd5b5061039d60095481565b6040519081526020015b60405180910390f35b3480156103bc57600080fd5b506103c5610b0a565b6040516103a79190612398565b3480156103de57600080fd5b506103f26103ed366004612402565b610b9c565b60405190151581526020016103a7565b34801561040e57600080fd5b506103f261041d36600461242e565b601b6020526000908152604090205460ff1681565b34801561043e57600080fd5b5061036561044d36600461244b565b610bb3565b34801561045e57600080fd5b5061036561046d36600461247e565b610c0e565b34801561047e57600080fd5b506104a67f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103a7565b3480156104ca57600080fd5b5060025461039d565b3480156104df57600080fd5b5061039d60115481565b3480156104f557600080fd5b5061036561050436600461247e565b610c56565b34801561051557600080fd5b506103f2610524366004612497565b610c9b565b34801561053557600080fd5b506104a661dead81565b34801561054b57600080fd5b506016546103f29060ff1681565b34801561056557600080fd5b5061036561057436600461242e565b610d04565b34801561058557600080fd5b50604051600681526020016103a7565b3480156105a157600080fd5b506103f26105b0366004612402565b610d50565b3480156105c157600080fd5b506103656105d03660046124d8565b610d86565b3480156105e157600080fd5b506104a67f000000000000000000000000000000000000000000000000000000000000000081565b34801561061557600080fd5b5061039d600f5481565b34801561062b57600080fd5b506103f261063a36600461242e565b6001600160a01b03166000908152601a602052604090205460ff1690565b34801561066457600080fd5b5061039d600c5481565b34801561067a57600080fd5b50610365610689366004612346565b610dd4565b34801561069a57600080fd5b5061039d60105481565b3480156106b057600080fd5b5061039d60155481565b3480156106c657600080fd5b5061039d6106d536600461242e565b60176020526000908152604090205481565b3480156106f357600080fd5b50600a546103f290600160a81b900460ff1681565b34801561071457600080fd5b5061039d61072336600461242e565b6001600160a01b031660009081526020819052604090205490565b34801561074a57600080fd5b50610365610e67565b34801561075f57600080fd5b5061036561076e3660046124f4565b610edb565b34801561077f57600080fd5b5061039d60135481565b34801561079557600080fd5b506018546103f29060ff1681565b3480156107af57600080fd5b506005546001600160a01b03166104a6565b3480156107cd57600080fd5b506103656107dc366004612512565b610f30565b3480156107ed57600080fd5b506103c5610fab565b34801561080257600080fd5b5061039d60145481565b34801561081857600080fd5b506103656108273660046124f4565b610fba565b34801561083857600080fd5b506103f2610847366004612402565b611096565b34801561085857600080fd5b506103f2610867366004612402565b6110e5565b34801561087857600080fd5b5061039d600e5481565b34801561088e57600080fd5b506103f261089d36600461242e565b601c6020526000908152604090205460ff1681565b3480156108be57600080fd5b50600a546103f290600160a01b900460ff1681565b3480156108df57600080fd5b506103656108ee3660046124f4565b6110f2565b3480156108ff57600080fd5b5061039d60065481565b34801561091557600080fd5b5061039d600d5481565b34801561092b57600080fd5b5061039d61093a366004612596565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561097157600080fd5b5061039d60075481565b34801561098757600080fd5b5061039d600b5481565b34801561099d57600080fd5b506103656109ac36600461242e565b61117b565b3480156109bd57600080fd5b5061039d60085481565b3480156109d357600080fd5b5061039d60125481565b3480156109e957600080fd5b50600a546104a6906001600160a01b031681565b348015610a0957600080fd5b506103f2610a1836600461242e565b60196020526000908152604090205460ff1681565b6005546001600160a01b03163314610a605760405162461bcd60e51b8152600401610a57906125cf565b60405180910390fd5b600e829055600f819055610a74818361261a565b601081905560191015610ac95760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610a57565b5050565b6005546001600160a01b03163314610af75760405162461bcd60e51b8152600401610a57906125cf565b6018805460ff1916911515919091179055565b606060038054610b1990612632565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4590612632565b8015610b925780601f10610b6757610100808354040283529160200191610b92565b820191906000526020600020905b815481529060010190602001808311610b7557829003601f168201915b5050505050905090565b6000610ba93384846112cc565b5060015b92915050565b6005546001600160a01b03163314610bdd5760405162461bcd60e51b8152600401610a57906125cf565b600a805460ff60a01b1916600160a01b93151593909302929092179091556016805460ff1916911515919091179055565b6005546001600160a01b03163314610c385760405162461bcd60e51b8152600401610a57906125cf565b6001811015610c4657600080fd5b6013819055610c536113f1565b50565b6005546001600160a01b03163314610c805760405162461bcd60e51b8152600401610a57906125cf565b6001811015610c8e57600080fd5b6014819055610c536113f1565b6000610ca8848484611451565b610cfa8433610cf585604051806060016040528060288152602001612812602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611c77565b6112cc565b5060019392505050565b6005546001600160a01b03163314610d2e5760405162461bcd60e51b8152600401610a57906125cf565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610ba9918590610cf59086611266565b6005546001600160a01b03163314610db05760405162461bcd60e51b8152600401610a57906125cf565b600a805460ff60a81b1916600160a81b841515021790556015819055610ac96113f1565b6005546001600160a01b03163314610dfe5760405162461bcd60e51b8152600401610a57906125cf565b600b829055600c819055610e12818361261a565b600d81905560191015610ac95760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323025206f72206c6573730000006044820152606401610a57565b6005546001600160a01b03163314610e915760405162461bcd60e51b8152600401610a57906125cf565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610f055760405162461bcd60e51b8152600401610a57906125cf565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f5a5760405162461bcd60e51b8152600401610a57906125cf565b60005b82811015610fa557610f95848483818110610f7a57610f7a61266d565b9050602002016020810190610f8f919061242e565b83611cb1565b610f9e81612683565b9050610f5d565b50505050565b606060048054610b1990612632565b6005546001600160a01b03163314610fe45760405162461bcd60e51b8152600401610a57906125cf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141561108c5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a57565b610ac98282611cfa565b6000610ba93384610cf58560405180606001604052806025815260200161283a602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611c77565b6000610ba9338484611451565b6005546001600160a01b0316331461111c5760405162461bcd60e51b8152600401610a57906125cf565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111a55760405162461bcd60e51b8152600401610a57906125cf565b6001600160a01b03811661120a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a57565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600080611273838561261a565b9050838110156112c55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a57565b9392505050565b6001600160a01b03831661132e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a57565b6001600160a01b03821661138f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a57565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6064601454600954611403919061269e565b61140d91906126bd565b600655601554600954612710916114239161269e565b61142d91906126bd565b6007556013546009546064916114429161269e565b61144c91906126bd565b600855565b6001600160a01b0383166114775760405162461bcd60e51b8152600401610a57906126df565b8061148d5761148883836000611d4e565b505050565b6005546001600160a01b038481169116148015906114b957506005546001600160a01b03838116911614155b80156114cd57506001600160a01b03821615155b80156114e457506001600160a01b03821661dead14155b80156114fa5750600554600160a01b900460ff16155b15611979576001600160a01b0383166000908152601a602052604090205460ff1615801561154157506001600160a01b0382166000908152601a602052604090205460ff16155b1561171357600a54600160a01b900460ff166115975760405162461bcd60e51b815260206004820152601560248201527454726164696e67206973206e6f742061637469766560581b6044820152606401610a57565b60165460ff16156116a2576001600160a01b0383166000908152601c602052604090205460ff1615611607576001600160a01b0382166000908152601760205260409020546115fc576001600160a01b03821660009081526017602052604090204390555b611607826001611cb1565b6001600160a01b038316600090815260176020526040902054156116a257611630600c43612724565b6001600160a01b038416600090815260176020526040902054116116a25760405162461bcd60e51b815260206004820152602360248201527f426f75676874206265666f726520636f6e747261637420776173206c61756e636044820152621a195960ea1b6064820152608401610a57565b60185460ff1680156116b7575060165460ff16155b15611713576001600160a01b03831660009081526019602052604090205460ff16156117135760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610a57565b6001600160a01b0383166000908152601c602052604090205460ff16801561175457506001600160a01b0382166000908152601b602052604090205460ff16155b15611838576006548111156117c95760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610a57565b6008546001600160a01b0383166000908152602081905260409020546117ef908361261a565b11156118335760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a57565b611979565b6001600160a01b0382166000908152601c602052604090205460ff16801561187957506001600160a01b0383166000908152601b602052604090205460ff16155b156118ef576006548111156118335760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610a57565b6001600160a01b0382166000908152601b602052604090205460ff16611979576008546001600160a01b038316600090815260208190526040902054611935908361261a565b11156119795760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a57565b30600090815260208190526040902054600754811080159081906119a75750600554600160a01b900460ff16155b80156119bc5750600a54600160a81b900460ff165b80156119e157506001600160a01b0385166000908152601c602052604090205460ff16155b8015611a0657506001600160a01b0385166000908152601a602052604090205460ff16155b8015611a2b57506001600160a01b0384166000908152601a602052604090205460ff16155b15611a59576005805460ff60a01b1916600160a01b179055611a4b611e93565b6005805460ff60a01b191690555b6005546001600160a01b0386166000908152601a602052604090205460ff600160a01b909204821615911680611aa757506001600160a01b0385166000908152601a602052604090205460ff165b15611ab0575060005b60008115611c63576001600160a01b0386166000908152601c602052604090205460ff168015611ae257506000601054115b15611b7057611b076064611b0160105488611f3b90919063ffffffff16565b90611fba565b9050601054600e5482611b1a919061269e565b611b2491906126bd565b60116000828254611b35919061261a565b9091555050601054600f54611b4a908361269e565b611b5491906126bd565b60126000828254611b65919061261a565b90915550611c1d9050565b6001600160a01b0387166000908152601c602052604090205460ff168015611b9a57506000600d54115b15611c1d57611bb96064611b01600d5488611f3b90919063ffffffff16565b9050600d54600b5482611bcc919061269e565b611bd691906126bd565b60116000828254611be7919061261a565b9091555050600d54600c54611bfc908361269e565b611c0691906126bd565b60126000828254611c17919061261a565b90915550505b8015611c5657611c2e873083611d4e565b60115415611c5657611c4230601154611ffc565b600254600955611c506113f1565b60006011555b611c608186612724565b94505b611c6e878787611d4e565b50505050505050565b60008184841115611c9b5760405162461bcd60e51b8152600401610a579190612398565b506000611ca88486612724565b95945050505050565b808015611cc657506001600160a01b03821630145b15611ccf575050565b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b6001600160a01b0382166000818152601c6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611d745760405162461bcd60e51b8152600401610a57906126df565b6001600160a01b038216611dd65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a57565b611e13816040518060600160405280602681526020016127ec602691396001600160a01b0386166000908152602081905260409020549190611c77565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611e429082611266565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016113e4565b306000908152602081905260408120549081611ead575050565b600754611ebb90601461269e565b821115611ed357600754611ed090601461269e565b91505b611edc82612107565b60006012819055600a546040516001600160a01b039091169147919081818185875af1925050503d8060008114611f2f576040519150601f19603f3d011682016040523d82523d6000602084013e611f34565b606091505b5050505050565b600082611f4a57506000610bad565b6000611f56838561269e565b905082611f6385836126bd565b146112c55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a57565b60006112c583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122d6565b6001600160a01b03821661205c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a57565b612099816040518060600160405280602281526020016127ca602291396001600160a01b0385166000908152602081905260409020549190611c77565b6001600160a01b0383166000908152602081905260409020556002546120bf9082612304565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061213c5761213c61266d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b557600080fd5b505afa1580156121c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ed919061273b565b816001815181106122005761220061266d565b60200260200101906001600160a01b031690816001600160a01b03168152505061224b307f0000000000000000000000000000000000000000000000000000000000000000846112cc565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906122a0908590600090869030904290600401612758565b600060405180830381600087803b1580156122ba57600080fd5b505af11580156122ce573d6000803e3d6000fd5b505050505050565b600081836122f75760405162461bcd60e51b8152600401610a579190612398565b506000611ca884866126bd565b60006112c583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c77565b6000806040838503121561235957600080fd5b50508035926020909101359150565b8035801515811461237857600080fd5b919050565b60006020828403121561238f57600080fd5b6112c582612368565b600060208083528351808285015260005b818110156123c5578581018301518582016040015282016123a9565b818111156123d7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610c5357600080fd5b6000806040838503121561241557600080fd5b8235612420816123ed565b946020939093013593505050565b60006020828403121561244057600080fd5b81356112c5816123ed565b6000806040838503121561245e57600080fd5b61246783612368565b915061247560208401612368565b90509250929050565b60006020828403121561249057600080fd5b5035919050565b6000806000606084860312156124ac57600080fd5b83356124b7816123ed565b925060208401356124c7816123ed565b929592945050506040919091013590565b600080604083850312156124eb57600080fd5b61242083612368565b6000806040838503121561250757600080fd5b8235612467816123ed565b60008060006040848603121561252757600080fd5b833567ffffffffffffffff8082111561253f57600080fd5b818601915086601f83011261255357600080fd5b81358181111561256257600080fd5b8760208260051b850101111561257757600080fd5b60209283019550935061258d9186019050612368565b90509250925092565b600080604083850312156125a957600080fd5b82356125b4816123ed565b915060208301356125c4816123ed565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561262d5761262d612604565b500190565b600181811c9082168061264657607f821691505b6020821081141561266757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561269757612697612604565b5060010190565b60008160001904831182151516156126b8576126b8612604565b500290565b6000826126da57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60008282101561273657612736612604565b500390565b60006020828403121561274d57600080fd5b81516112c5816123ed565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127a85784516001600160a01b031683529383019391830191600101612783565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220762f296aad7e297a77a4d4bfebc927fd7684221f0a11f0a8dedb51bde7b04bed64736f6c634300080900334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed Bytecode

0x6080604052600436106103395760003560e01c80636ddd1713116101ab578063adb873bd116100f7578063e2f4560511610095578063f8b45b051161006f578063f8b45b05146109b1578063fb002c97146109c7578063fd72e22a146109dd578063fe575a87146109fd57600080fd5b8063e2f4560514610965578063e71dc3f51461097b578063f2fde38b1461099157600080fd5b8063c0246668116100d1578063c0246668146108d3578063c8c8ebe4146108f3578063d85ba06314610909578063dd62ed3e1461091f57600080fd5b8063adb873bd1461086c578063b62496f514610882578063bbc0c742146108b257600080fd5b80638da5cb5b11610164578063975d71e21161013e578063975d71e2146107f65780639a7a23d61461080c578063a457c2d71461082c578063a9059cbb1461084c57600080fd5b80638da5cb5b146107a35780638e2eee84146107c157806395d89b41146107e157600080fd5b80636ddd1713146106e757806370a0823114610708578063715018a61461073e5780637571336a146107535780637ab4398314610773578063896648c11461078957600080fd5b806327c8f835116102855780634f77f6c01161022357806366ca9b83116101fd57806366ca9b831461066e5780636a486a8e1461068e5780636c2acb56146106a45780636d02cc02146106ba57600080fd5b80634f77f6c0146106095780634fbee1931461061f5780635a139dd41461065857600080fd5b8063313ce5671161025f578063313ce5671461057957806339509351146105955780633b4914fe146105b557806349bd5a5e146105d557600080fd5b806327c8f83514610529578063305c4c801461053f57806330d5d18d1461055957600080fd5b806313661d71116102f257806318160ddd116102cc57806318160ddd146104be5780631d777856146104d35780631fa07da5146104e957806323b872dd1461050957600080fd5b806313661d7114610432578063150de0bb146104525780631694505e1461047257600080fd5b806302dbd8f814610345578063034fc0b714610367578063047fc9aa1461038757806306fdde03146103b0578063095ea7b3146103d257806310d5de531461040257600080fd5b3661034057005b600080fd5b34801561035157600080fd5b50610365610360366004612346565b610a2d565b005b34801561037357600080fd5b5061036561038236600461237d565b610acd565b34801561039357600080fd5b5061039d60095481565b6040519081526020015b60405180910390f35b3480156103bc57600080fd5b506103c5610b0a565b6040516103a79190612398565b3480156103de57600080fd5b506103f26103ed366004612402565b610b9c565b60405190151581526020016103a7565b34801561040e57600080fd5b506103f261041d36600461242e565b601b6020526000908152604090205460ff1681565b34801561043e57600080fd5b5061036561044d36600461244b565b610bb3565b34801561045e57600080fd5b5061036561046d36600461247e565b610c0e565b34801561047e57600080fd5b506104a67f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016103a7565b3480156104ca57600080fd5b5060025461039d565b3480156104df57600080fd5b5061039d60115481565b3480156104f557600080fd5b5061036561050436600461247e565b610c56565b34801561051557600080fd5b506103f2610524366004612497565b610c9b565b34801561053557600080fd5b506104a661dead81565b34801561054b57600080fd5b506016546103f29060ff1681565b34801561056557600080fd5b5061036561057436600461242e565b610d04565b34801561058557600080fd5b50604051600681526020016103a7565b3480156105a157600080fd5b506103f26105b0366004612402565b610d50565b3480156105c157600080fd5b506103656105d03660046124d8565b610d86565b3480156105e157600080fd5b506104a67f00000000000000000000000098c901cb59c1cacf99754a9f033f078816d9f21881565b34801561061557600080fd5b5061039d600f5481565b34801561062b57600080fd5b506103f261063a36600461242e565b6001600160a01b03166000908152601a602052604090205460ff1690565b34801561066457600080fd5b5061039d600c5481565b34801561067a57600080fd5b50610365610689366004612346565b610dd4565b34801561069a57600080fd5b5061039d60105481565b3480156106b057600080fd5b5061039d60155481565b3480156106c657600080fd5b5061039d6106d536600461242e565b60176020526000908152604090205481565b3480156106f357600080fd5b50600a546103f290600160a81b900460ff1681565b34801561071457600080fd5b5061039d61072336600461242e565b6001600160a01b031660009081526020819052604090205490565b34801561074a57600080fd5b50610365610e67565b34801561075f57600080fd5b5061036561076e3660046124f4565b610edb565b34801561077f57600080fd5b5061039d60135481565b34801561079557600080fd5b506018546103f29060ff1681565b3480156107af57600080fd5b506005546001600160a01b03166104a6565b3480156107cd57600080fd5b506103656107dc366004612512565b610f30565b3480156107ed57600080fd5b506103c5610fab565b34801561080257600080fd5b5061039d60145481565b34801561081857600080fd5b506103656108273660046124f4565b610fba565b34801561083857600080fd5b506103f2610847366004612402565b611096565b34801561085857600080fd5b506103f2610867366004612402565b6110e5565b34801561087857600080fd5b5061039d600e5481565b34801561088e57600080fd5b506103f261089d36600461242e565b601c6020526000908152604090205460ff1681565b3480156108be57600080fd5b50600a546103f290600160a01b900460ff1681565b3480156108df57600080fd5b506103656108ee3660046124f4565b6110f2565b3480156108ff57600080fd5b5061039d60065481565b34801561091557600080fd5b5061039d600d5481565b34801561092b57600080fd5b5061039d61093a366004612596565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561097157600080fd5b5061039d60075481565b34801561098757600080fd5b5061039d600b5481565b34801561099d57600080fd5b506103656109ac36600461242e565b61117b565b3480156109bd57600080fd5b5061039d60085481565b3480156109d357600080fd5b5061039d60125481565b3480156109e957600080fd5b50600a546104a6906001600160a01b031681565b348015610a0957600080fd5b506103f2610a1836600461242e565b60196020526000908152604090205460ff1681565b6005546001600160a01b03163314610a605760405162461bcd60e51b8152600401610a57906125cf565b60405180910390fd5b600e829055600f819055610a74818361261a565b601081905560191015610ac95760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610a57565b5050565b6005546001600160a01b03163314610af75760405162461bcd60e51b8152600401610a57906125cf565b6018805460ff1916911515919091179055565b606060038054610b1990612632565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4590612632565b8015610b925780601f10610b6757610100808354040283529160200191610b92565b820191906000526020600020905b815481529060010190602001808311610b7557829003601f168201915b5050505050905090565b6000610ba93384846112cc565b5060015b92915050565b6005546001600160a01b03163314610bdd5760405162461bcd60e51b8152600401610a57906125cf565b600a805460ff60a01b1916600160a01b93151593909302929092179091556016805460ff1916911515919091179055565b6005546001600160a01b03163314610c385760405162461bcd60e51b8152600401610a57906125cf565b6001811015610c4657600080fd5b6013819055610c536113f1565b50565b6005546001600160a01b03163314610c805760405162461bcd60e51b8152600401610a57906125cf565b6001811015610c8e57600080fd5b6014819055610c536113f1565b6000610ca8848484611451565b610cfa8433610cf585604051806060016040528060288152602001612812602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611c77565b6112cc565b5060019392505050565b6005546001600160a01b03163314610d2e5760405162461bcd60e51b8152600401610a57906125cf565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610ba9918590610cf59086611266565b6005546001600160a01b03163314610db05760405162461bcd60e51b8152600401610a57906125cf565b600a805460ff60a81b1916600160a81b841515021790556015819055610ac96113f1565b6005546001600160a01b03163314610dfe5760405162461bcd60e51b8152600401610a57906125cf565b600b829055600c819055610e12818361261a565b600d81905560191015610ac95760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323025206f72206c6573730000006044820152606401610a57565b6005546001600160a01b03163314610e915760405162461bcd60e51b8152600401610a57906125cf565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610f055760405162461bcd60e51b8152600401610a57906125cf565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f5a5760405162461bcd60e51b8152600401610a57906125cf565b60005b82811015610fa557610f95848483818110610f7a57610f7a61266d565b9050602002016020810190610f8f919061242e565b83611cb1565b610f9e81612683565b9050610f5d565b50505050565b606060048054610b1990612632565b6005546001600160a01b03163314610fe45760405162461bcd60e51b8152600401610a57906125cf565b7f00000000000000000000000098c901cb59c1cacf99754a9f033f078816d9f2186001600160a01b0316826001600160a01b0316141561108c5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a57565b610ac98282611cfa565b6000610ba93384610cf58560405180606001604052806025815260200161283a602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611c77565b6000610ba9338484611451565b6005546001600160a01b0316331461111c5760405162461bcd60e51b8152600401610a57906125cf565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111a55760405162461bcd60e51b8152600401610a57906125cf565b6001600160a01b03811661120a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a57565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600080611273838561261a565b9050838110156112c55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a57565b9392505050565b6001600160a01b03831661132e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a57565b6001600160a01b03821661138f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a57565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6064601454600954611403919061269e565b61140d91906126bd565b600655601554600954612710916114239161269e565b61142d91906126bd565b6007556013546009546064916114429161269e565b61144c91906126bd565b600855565b6001600160a01b0383166114775760405162461bcd60e51b8152600401610a57906126df565b8061148d5761148883836000611d4e565b505050565b6005546001600160a01b038481169116148015906114b957506005546001600160a01b03838116911614155b80156114cd57506001600160a01b03821615155b80156114e457506001600160a01b03821661dead14155b80156114fa5750600554600160a01b900460ff16155b15611979576001600160a01b0383166000908152601a602052604090205460ff1615801561154157506001600160a01b0382166000908152601a602052604090205460ff16155b1561171357600a54600160a01b900460ff166115975760405162461bcd60e51b815260206004820152601560248201527454726164696e67206973206e6f742061637469766560581b6044820152606401610a57565b60165460ff16156116a2576001600160a01b0383166000908152601c602052604090205460ff1615611607576001600160a01b0382166000908152601760205260409020546115fc576001600160a01b03821660009081526017602052604090204390555b611607826001611cb1565b6001600160a01b038316600090815260176020526040902054156116a257611630600c43612724565b6001600160a01b038416600090815260176020526040902054116116a25760405162461bcd60e51b815260206004820152602360248201527f426f75676874206265666f726520636f6e747261637420776173206c61756e636044820152621a195960ea1b6064820152608401610a57565b60185460ff1680156116b7575060165460ff16155b15611713576001600160a01b03831660009081526019602052604090205460ff16156117135760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610a57565b6001600160a01b0383166000908152601c602052604090205460ff16801561175457506001600160a01b0382166000908152601b602052604090205460ff16155b15611838576006548111156117c95760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610a57565b6008546001600160a01b0383166000908152602081905260409020546117ef908361261a565b11156118335760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a57565b611979565b6001600160a01b0382166000908152601c602052604090205460ff16801561187957506001600160a01b0383166000908152601b602052604090205460ff16155b156118ef576006548111156118335760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610a57565b6001600160a01b0382166000908152601b602052604090205460ff16611979576008546001600160a01b038316600090815260208190526040902054611935908361261a565b11156119795760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a57565b30600090815260208190526040902054600754811080159081906119a75750600554600160a01b900460ff16155b80156119bc5750600a54600160a81b900460ff165b80156119e157506001600160a01b0385166000908152601c602052604090205460ff16155b8015611a0657506001600160a01b0385166000908152601a602052604090205460ff16155b8015611a2b57506001600160a01b0384166000908152601a602052604090205460ff16155b15611a59576005805460ff60a01b1916600160a01b179055611a4b611e93565b6005805460ff60a01b191690555b6005546001600160a01b0386166000908152601a602052604090205460ff600160a01b909204821615911680611aa757506001600160a01b0385166000908152601a602052604090205460ff165b15611ab0575060005b60008115611c63576001600160a01b0386166000908152601c602052604090205460ff168015611ae257506000601054115b15611b7057611b076064611b0160105488611f3b90919063ffffffff16565b90611fba565b9050601054600e5482611b1a919061269e565b611b2491906126bd565b60116000828254611b35919061261a565b9091555050601054600f54611b4a908361269e565b611b5491906126bd565b60126000828254611b65919061261a565b90915550611c1d9050565b6001600160a01b0387166000908152601c602052604090205460ff168015611b9a57506000600d54115b15611c1d57611bb96064611b01600d5488611f3b90919063ffffffff16565b9050600d54600b5482611bcc919061269e565b611bd691906126bd565b60116000828254611be7919061261a565b9091555050600d54600c54611bfc908361269e565b611c0691906126bd565b60126000828254611c17919061261a565b90915550505b8015611c5657611c2e873083611d4e565b60115415611c5657611c4230601154611ffc565b600254600955611c506113f1565b60006011555b611c608186612724565b94505b611c6e878787611d4e565b50505050505050565b60008184841115611c9b5760405162461bcd60e51b8152600401610a579190612398565b506000611ca88486612724565b95945050505050565b808015611cc657506001600160a01b03821630145b15611ccf575050565b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b6001600160a01b0382166000818152601c6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611d745760405162461bcd60e51b8152600401610a57906126df565b6001600160a01b038216611dd65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a57565b611e13816040518060600160405280602681526020016127ec602691396001600160a01b0386166000908152602081905260409020549190611c77565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611e429082611266565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016113e4565b306000908152602081905260408120549081611ead575050565b600754611ebb90601461269e565b821115611ed357600754611ed090601461269e565b91505b611edc82612107565b60006012819055600a546040516001600160a01b039091169147919081818185875af1925050503d8060008114611f2f576040519150601f19603f3d011682016040523d82523d6000602084013e611f34565b606091505b5050505050565b600082611f4a57506000610bad565b6000611f56838561269e565b905082611f6385836126bd565b146112c55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a57565b60006112c583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122d6565b6001600160a01b03821661205c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a57565b612099816040518060600160405280602281526020016127ca602291396001600160a01b0385166000908152602081905260409020549190611c77565b6001600160a01b0383166000908152602081905260409020556002546120bf9082612304565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061213c5761213c61266d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b557600080fd5b505afa1580156121c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ed919061273b565b816001815181106122005761220061266d565b60200260200101906001600160a01b031690816001600160a01b03168152505061224b307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846112cc565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906122a0908590600090869030904290600401612758565b600060405180830381600087803b1580156122ba57600080fd5b505af11580156122ce573d6000803e3d6000fd5b505050505050565b600081836122f75760405162461bcd60e51b8152600401610a579190612398565b506000611ca884866126bd565b60006112c583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c77565b6000806040838503121561235957600080fd5b50508035926020909101359150565b8035801515811461237857600080fd5b919050565b60006020828403121561238f57600080fd5b6112c582612368565b600060208083528351808285015260005b818110156123c5578581018301518582016040015282016123a9565b818111156123d7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610c5357600080fd5b6000806040838503121561241557600080fd5b8235612420816123ed565b946020939093013593505050565b60006020828403121561244057600080fd5b81356112c5816123ed565b6000806040838503121561245e57600080fd5b61246783612368565b915061247560208401612368565b90509250929050565b60006020828403121561249057600080fd5b5035919050565b6000806000606084860312156124ac57600080fd5b83356124b7816123ed565b925060208401356124c7816123ed565b929592945050506040919091013590565b600080604083850312156124eb57600080fd5b61242083612368565b6000806040838503121561250757600080fd5b8235612467816123ed565b60008060006040848603121561252757600080fd5b833567ffffffffffffffff8082111561253f57600080fd5b818601915086601f83011261255357600080fd5b81358181111561256257600080fd5b8760208260051b850101111561257757600080fd5b60209283019550935061258d9186019050612368565b90509250925092565b600080604083850312156125a957600080fd5b82356125b4816123ed565b915060208301356125c4816123ed565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561262d5761262d612604565b500190565b600181811c9082168061264657607f821691505b6020821081141561266757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561269757612697612604565b5060010190565b60008160001904831182151516156126b8576126b8612604565b500290565b6000826126da57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60008282101561273657612736612604565b500390565b60006020828403121561274d57600080fd5b81516112c5816123ed565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127a85784516001600160a01b031683529383019391830191600101612783565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220762f296aad7e297a77a4d4bfebc927fd7684221f0a11f0a8dedb51bde7b04bed64736f6c63430008090033

Deployed Bytecode Sourcemap

10863:11367:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15479:301;;;;;;;;;;-1:-1:-1;15479:301:0;;;;;:::i;:::-;;:::i;:::-;;16902:108;;;;;;;;;;-1:-1:-1;16902:108:0;;;;;:::i;:::-;;:::i;11269:21::-;;;;;;;;;;;;;;;;;;;763:25:1;;;751:2;736:18;11269:21:0;;;;;;;;2816:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3715:169::-;;;;;;;;;;-1:-1:-1;3715:169:0;;;;;:::i;:::-;;:::i;:::-;;;2022:14:1;;2015:22;1997:41;;1985:2;1970:18;3715:169:0;1857:187:1;12057:64:0;;;;;;;;;;-1:-1:-1;12057:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14366:130;;;;;;;;;;-1:-1:-1;14366:130:0;;;;;:::i;:::-;;:::i;14846:157::-;;;;;;;;;;-1:-1:-1;14846:157:0;;;;;:::i;:::-;;:::i;10947:51::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2930:32:1;;;2912:51;;2900:2;2885:18;10947:51:0;2739:230:1;3130:108:0;;;;;;;;;;-1:-1:-1;3218:12:0;;3130:108;;11640:28;;;;;;;;;;;;;;;;14504:155;;;;;;;;;;-1:-1:-1;14504:155:0;;;;;:::i;:::-;;:::i;3890:355::-;;;;;;;;;;-1:-1:-1;3890:355:0;;;;;:::i;:::-;;:::i;11050:53::-;;;;;;;;;;;;11096:6;11050:53;;11816:26;;;;;;;;;;-1:-1:-1;11816:26:0;;;;;;;;15788:117;;;;;;;;;;-1:-1:-1;15788:117:0;;;;;:::i;:::-;;:::i;3032:92::-;;;;;;;;;;-1:-1:-1;3032:92:0;;3115:1;3785:36:1;;3773:2;3758:18;3032:92:0;3643:184:1;4251:218:0;;;;;;;;;;-1:-1:-1;4251:218:0;;;;;:::i;:::-;;:::i;14667:171::-;;;;;;;;;;-1:-1:-1;14667:171:0;;;;;:::i;:::-;;:::i;11005:38::-;;;;;;;;;;;;;;;11557:32;;;;;;;;;;;;;;;;16765:125;;;;;;;;;;-1:-1:-1;16765:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;16854:28:0;16830:4;16854:28;;;:19;:28;;;;;;;;;16765:125;11450:31;;;;;;;;;;;;;;;;15173:294;;;;;;;;;;-1:-1:-1;15173:294:0;;;;;:::i;:::-;;:::i;11596:28::-;;;;;;;;;;;;;;;;11783:24;;;;;;;;;;;;;;;;11849:41;;;;;;;;;;-1:-1:-1;11849:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;11379:30;;;;;;;;;;-1:-1:-1;11379:30:0;;;;-1:-1:-1;;;11379:30:0;;;;;;3244:127;;;;;;;;;;-1:-1:-1;3244:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3345:18:0;3318:7;3345:18;;;;;;;;;;;;3244:127;8429:148;;;;;;;;;;;;;:::i;15017:144::-;;;;;;;;;;-1:-1:-1;15017:144:0;;;;;:::i;:::-;;:::i;11718:26::-;;;;;;;;;;;;;;;;11897:32;;;;;;;;;;-1:-1:-1;11897:32:0;;;;;;;;8203:79;;;;;;;;;;-1:-1:-1;8268:6:0;;-1:-1:-1;;;;;8268:6:0;8203:79;;17018:215;;;;;;;;;;-1:-1:-1;17018:215:0;;;;;:::i;:::-;;:::i;2922:104::-;;;;;;;;;;;;;:::i;11751:25::-;;;;;;;;;;;;;;;;16317:244;;;;;;;;;;-1:-1:-1;16317:244:0;;;;;:::i;:::-;;:::i;4475:269::-;;;;;;;;;;-1:-1:-1;4475:269:0;;;;;:::i;:::-;;:::i;3377:175::-;;;;;;;;;;-1:-1:-1;3377:175:0;;;;;:::i;:::-;;:::i;11524:26::-;;;;;;;;;;;;;;;;12130:58;;;;;;;;;;-1:-1:-1;12130:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11339:33;;;;;;;;;;-1:-1:-1;11339:33:0;;;;-1:-1:-1;;;11339:33:0;;;;;;15913:182;;;;;;;;;;-1:-1:-1;15913:182:0;;;;;:::i;:::-;;:::i;11150:35::-;;;;;;;;;;;;;;;;11488:27;;;;;;;;;;;;;;;;3558:151;;;;;;;;;;-1:-1:-1;3558:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3674:18:0;;;3647:7;3674:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3558:151;11192:33;;;;;;;;;;;;;;;;11418:25;;;;;;;;;;;;;;;;8591:244;;;;;;;;;;-1:-1:-1;8591:244:0;;;;;:::i;:::-;;:::i;11232:24::-;;;;;;;;;;;;;;;;11675:34;;;;;;;;;;;;;;;;11299:31;;;;;;;;;;-1:-1:-1;11299:31:0;;;;-1:-1:-1;;;;;11299:31:0;;;11936:46;;;;;;;;;;-1:-1:-1;11936:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15479:301;8336:6;;-1:-1:-1;;;;;8336:6:0;954:10;8336:22;8328:67;;;;-1:-1:-1;;;8328:67:0;;;;;;;:::i;:::-;;;;;;;;;15575:11:::1;:22:::0;;;15608:17:::1;:34:::0;;;15669:31:::1;15628:14:::0;15589:8;15669:31:::1;:::i;:::-;15653:13;:47:::0;;;15736:2:::1;-1:-1:-1::0;15719:19:0::1;15711:61;;;::::0;-1:-1:-1;;;15711:61:0;;6320:2:1;15711:61:0::1;::::0;::::1;6302:21:1::0;6359:2;6339:18;;;6332:30;6398:31;6378:18;;;6371:59;6447:18;;15711:61:0::1;6118:353:1::0;15711:61:0::1;15479:301:::0;;:::o;16902:108::-;8336:6;;-1:-1:-1;;;;;8336:6:0;954:10;8336:22;8328:67;;;;-1:-1:-1;;;8328:67:0;;;;;;;:::i;:::-;16979:13:::1;:23:::0;;-1:-1:-1;;16979:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16902:108::o;2816:100::-;2870:13;2903:5;2896:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2816:100;:::o;3715:169::-;3798:4;3815:39;954:10;3838:7;3847:6;3815:8;:39::i;:::-;-1:-1:-1;3872:4:0;3715:169;;;;;:::o;14366:130::-;8336:6;;-1:-1:-1;;;;;8336:6:0;954:10;8336:22;8328:67;;;;-1:-1:-1;;;8328:67:0;;;;;;;:::i;:::-;14442:13:::1;:22:::0;;-1:-1:-1;;;;14442:22:0::1;-1:-1:-1::0;;;14442:22:0;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;;14475:7:::1;:13:::0;;-1:-1:-1;;14475:13:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14366:130::o;14846:157::-;8336:6;;-1:-1:-1;;;;;8336:6:0;954:10;8336:22;8328:67;;;;-1:-1:-1;;;8328:67:0;;;;;;;:::i;:::-;14937:1:::1;14927:6;:11;;14919:20;;;::::0;::::1;;14950:11;:20:::0;;;14981:14:::1;:12;:14::i;:::-;14846:157:::0;:::o;14504:155::-;8336:6;;-1:-1:-1;;;;;8336:6:0;954:10;8336:22;8328:67;;;;-1:-1:-1;;;8328:67:0;;;;;;;:::i;:::-;14594:1:::1;14584:6;:11;;14576:20;;;::::0;::::1;;14607:10;:19:::0;;;14637:14:::1;:12;:14::i;3890:355::-:0;4030:4;4047:36;4057:6;4065:9;4076:6;4047:9;:36::i;:::-;4094:121;4103:6;954:10;4125:89;4163:6;4125:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4125:19:0;;;;;;:11;:19;;;;;;;;954:10;4125:33;;;;;;;;;;:37;:89::i;:::-;4094:8;:121::i;:::-;-1:-1:-1;4233:4:0;3890:355;;;;;:::o;15788:117::-;8336:6;;-1:-1:-1;;;;;8336:6:0;954:10;8336:22;8328:67;;;;-1:-1:-1;;;8328:67:0;;;;;;;:::i;:::-;15869:16:::1;:28:::0;;-1:-1:-1;;;;;;15869:28:0::1;-1:-1:-1::0;;;;;15869:28:0;;;::::1;::::0;;;::::1;::::0;;15788:117::o;4251:218::-;954:10;4339:4;4388:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4388:34:0;;;;;;;;;;4339:4;;4356:83;;4379:7;;4388:50;;4427:10;4388:38;:50::i;14667:171::-;8336:6;;-1:-1:-1;;;;;8336:6:0;954:10;8336:22;8328:67;;;;-1:-1:-1;;;8328:67:0;;;;;;;:::i;:::-;14754:11:::1;:22:::0;;-1:-1:-1;;;;14754:22:0::1;-1:-1:-1::0;;;14754:22:0;::::1;;;;::::0;;:11:::1;14787:18:::0;;;14816:14:::1;:12;:14::i;15173:294::-:0;8336:6;;-1:-1:-1;;;;;8336:6:0;954:10;8336:22;8328:67;;;;-1:-1:-1;;;8328:67:0;;;;;;;:::i;:::-;15268:10:::1;:21:::0;;;15300:16:::1;:33:::0;;;15359:29:::1;15319:14:::0;15281:8;15359:29:::1;:::i;:::-;15344:12;:44:::0;;;15423:2:::1;-1:-1:-1::0;15407:18:0::1;15399:60;;;::::0;-1:-1:-1;;;15399:60:0;;7063:2:1;15399:60:0::1;::::0;::::1;7045:21:1::0;7102:2;7082:18;;;7075:30;7141:31;7121:18;;;7114:59;7190:18;;15399:60:0::1;6861:353:1::0;8429:148:0;8336:6;;-1:-1:-1;;;;;8336:6:0;954:10;8336:22;8328:67;;;;-1:-1:-1;;;8328:67:0;;;;;;;:::i;:::-;8520:6:::1;::::0;8499:40:::1;::::0;8536:1:::1;::::0;-1:-1:-1;;;;;8520:6:0::1;::::0;8499:40:::1;::::0;8536:1;;8499:40:::1;8550:6;:19:::0;;-1:-1:-1;;;;;;8550:19:0::1;::::0;;8429:148::o;15017:144::-;8336:6;;-1:-1:-1;;;;;8336:6:0;954:10;8336:22;8328:67;;;;-1:-1:-1;;;8328:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15107:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;15107:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15017:144::o;17018:215::-;8336:6;;-1:-1:-1;;;;;8336:6:0;954:10;8336:22;8328:67;;;;-1:-1:-1;;;8328:67:0;;;;;;;:::i;:::-;17122:9:::1;17117:109;17135:20:::0;;::::1;17117:109;;;17177:37;17194:9;;17204:1;17194:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17207:6;17177:16;:37::i;:::-;17157:3;::::0;::::1;:::i;:::-;;;17117:109;;;;17018:215:::0;;;:::o;2922:104::-;2978:13;3011:7;3004:14;;;;;:::i;16317:244::-;8336:6;;-1:-1:-1;;;;;8336:6:0;954:10;8336:22;8328:67;;;;-1:-1:-1;;;8328:67:0;;;;;;;:::i;:::-;16424:13:::1;-1:-1:-1::0;;;;;16416:21:0::1;:4;-1:-1:-1::0;;;;;16416:21:0::1;;;16408:91;;;::::0;-1:-1:-1;;;16408:91:0;;7693:2:1;16408:91:0::1;::::0;::::1;7675:21:1::0;7732:2;7712:18;;;7705:30;7771:34;7751:18;;;7744:62;7842:27;7822:18;;;7815:55;7887:19;;16408:91:0::1;7491:421:1::0;16408:91:0::1;16512:41;16541:4;16547:5;16512:28;:41::i;4475:269::-:0;4568:4;4585:129;954:10;4608:7;4617:96;4656:15;4617:96;;;;;;;;;;;;;;;;;954:10;4617:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4617:34:0;;;;;;;;;;;;:38;:96::i;3377:175::-;3463:4;3480:42;954:10;3504:9;3515:6;3480:9;:42::i;15913:182::-;8336:6;;-1:-1:-1;;;;;8336:6:0;954:10;8336:22;8328:67;;;;-1:-1:-1;;;8328:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15998:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;15998:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16053:34;;1997:41:1;;;16053:34:0::1;::::0;1970:18:1;16053:34:0::1;;;;;;;15913:182:::0;;:::o;8591:244::-;8336:6;;-1:-1:-1;;;;;8336:6:0;954:10;8336:22;8328:67;;;;-1:-1:-1;;;8328:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8680:22:0;::::1;8672:73;;;::::0;-1:-1:-1;;;8672:73:0;;8119:2:1;8672:73:0::1;::::0;::::1;8101:21:1::0;8158:2;8138:18;;;8131:30;8197:34;8177:18;;;8170:62;-1:-1:-1;;;8248:18:1;;;8241:36;8294:19;;8672:73:0::1;7917:402:1::0;8672:73:0::1;8782:6;::::0;8761:38:::1;::::0;-1:-1:-1;;;;;8761:38:0;;::::1;::::0;8782:6:::1;::::0;8761:38:::1;::::0;8782:6:::1;::::0;8761:38:::1;8810:6;:17:::0;;-1:-1:-1;;;;;;8810:17:0::1;-1:-1:-1::0;;;;;8810:17:0;;;::::1;::::0;;;::::1;::::0;;8591:244::o;6396:181::-;6454:7;;6486:5;6490:1;6486;:5;:::i;:::-;6474:17;;6515:1;6510;:6;;6502:46;;;;-1:-1:-1;;;6502:46:0;;8526:2:1;6502:46:0;;;8508:21:1;8565:2;8545:18;;;8538:30;8604:29;8584:18;;;8577:57;8651:18;;6502:46:0;8324:351:1;6502:46:0;6568:1;6396:181;-1:-1:-1;;;6396:181:0:o;5977:380::-;-1:-1:-1;;;;;6113:19:0;;6105:68;;;;-1:-1:-1;;;6105:68:0;;8882:2:1;6105:68:0;;;8864:21:1;8921:2;8901:18;;;8894:30;8960:34;8940:18;;;8933:62;-1:-1:-1;;;9011:18:1;;;9004:34;9055:19;;6105:68:0;8680:400:1;6105:68:0;-1:-1:-1;;;;;6192:21:0;;6184:68;;;;-1:-1:-1;;;6184:68:0;;9287:2:1;6184:68:0;;;9269:21:1;9326:2;9306:18;;;9299:30;9365:34;9345:18;;;9338:62;-1:-1:-1;;;9416:18:1;;;9409:32;9458:19;;6184:68:0;9085:398:1;6184:68:0;-1:-1:-1;;;;;6265:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6317:32;;763:25:1;;;6317:32:0;;736:18:1;6317:32:0;;;;;;;;5977:380;;;:::o;16103:206::-;16191:3;16178:10;;16169:6;;:19;;;;:::i;:::-;:25;;;;:::i;:::-;16146:20;:48;16235:9;;16226:6;;16247:5;;16226:18;;;:::i;:::-;:26;;;;:::i;:::-;16205:18;:47;16284:11;;16275:6;;16298:3;;16275:20;;;:::i;:::-;:26;;;;:::i;:::-;16263:9;:38;16103:206::o;17441:3841::-;-1:-1:-1;;;;;17573:18:0;;17565:68;;;;-1:-1:-1;;;17565:68:0;;;;;;;:::i;:::-;17658:11;17655:92;;17686:28;17702:4;17708:2;17712:1;17686:15;:28::i;:::-;17441:3841;;;:::o;17655:92::-;8268:6;;-1:-1:-1;;;;;17785:15:0;;;8268:6;;17785:15;;;;:45;;-1:-1:-1;8268:6:0;;-1:-1:-1;;;;;17817:13:0;;;8268:6;;17817:13;;17785:45;:78;;;;-1:-1:-1;;;;;;17847:16:0;;;;17785:78;:116;;;;-1:-1:-1;;;;;;17880:21:0;;17894:6;17880:21;;17785:116;:142;;;;-1:-1:-1;17919:8:0;;-1:-1:-1;;;17919:8:0;;;;17918:9;17785:142;17767:1699;;;-1:-1:-1;;;;;17957:25:0;;;;;;:19;:25;;;;;;;;17956:26;:54;;;;-1:-1:-1;;;;;;17987:23:0;;;;;;:19;:23;;;;;;;;17986:24;17956:54;17953:789;;;18038:13;;-1:-1:-1;;;18038:13:0;;;;18030:46;;;;-1:-1:-1;;;18030:46:0;;10491:2:1;18030:46:0;;;10473:21:1;10530:2;10510:18;;;10503:30;-1:-1:-1;;;10549:18:1;;;10542:51;10610:18;;18030:46:0;10289:345:1;18030:46:0;18098:7;;;;18095:477;;;-1:-1:-1;;;;;18132:31:0;;;;;;:25;:31;;;;;;;;18129:244;;;-1:-1:-1;;;;;18194:12:0;;;;;;:8;:12;;;;;;18191:107;;-1:-1:-1;;;;;18243:12:0;;;;;;:8;:12;;;;;18258;18243:27;;18191:107;18324:25;18341:2;18344:4;18324:16;:25::i;:::-;-1:-1:-1;;;;;18398:14:0;;18415:1;18398:14;;;:8;:14;;;;;;:18;18395:158;;18471:17;18486:2;18471:12;:17;:::i;:::-;-1:-1:-1;;;;;18453:14:0;;;;;;:8;:14;;;;;;:36;18444:85;;;;-1:-1:-1;;;18444:85:0;;10971:2:1;18444:85:0;;;10953:21:1;11010:2;10990:18;;;10983:30;11049:34;11029:18;;;11022:62;-1:-1:-1;;;11100:18:1;;;11093:33;11143:19;;18444:85:0;10769:399:1;18444:85:0;18611:13;;;;:25;;;;-1:-1:-1;18629:7:0;;;;18628:8;18611:25;18608:119;;;-1:-1:-1;;;;;18669:19:0;;;;;;:13;:19;;;;;;;;18668:20;18660:43;;;;-1:-1:-1;;;18660:43:0;;11375:2:1;18660:43:0;;;11357:21:1;11414:2;11394:18;;;11387:30;-1:-1:-1;;;11433:18:1;;;11426:41;11484:18;;18660:43:0;11173:335:1;18660:43:0;-1:-1:-1;;;;;18762:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;18798:35:0;;;;;;:31;:35;;;;;;;;18797:36;18762:71;18758:697;;;18872:20;;18862:6;:30;;18854:96;;;;-1:-1:-1;;;18854:96:0;;11715:2:1;18854:96:0;;;11697:21:1;11754:2;11734:18;;;11727:30;11793:34;11773:18;;;11766:62;-1:-1:-1;;;11844:18:1;;;11837:51;11905:19;;18854:96:0;11513:417:1;18854:96:0;19003:9;;-1:-1:-1;;;;;3345:18:0;;3318:7;3345:18;;;;;;;;;;;18977:22;;:6;:22;:::i;:::-;:35;;18969:67;;;;-1:-1:-1;;;18969:67:0;;12137:2:1;18969:67:0;;;12119:21:1;12176:2;12156:18;;;12149:30;-1:-1:-1;;;12195:18:1;;;12188:49;12254:18;;18969:67:0;11935:343:1;18969:67:0;18758:697;;;-1:-1:-1;;;;;19089:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;19123:37:0;;;;;;:31;:37;;;;;;;;19122:38;19089:71;19085:370;;;19199:20;;19189:6;:30;;19181:97;;;;-1:-1:-1;;;19181:97:0;;12485:2:1;19181:97:0;;;12467:21:1;12524:2;12504:18;;;12497:30;12563:34;12543:18;;;12536:62;-1:-1:-1;;;12614:18:1;;;12607:52;12676:19;;19181:97:0;12283:418:1;19085:370:0;-1:-1:-1;;;;;19317:35:0;;;;;;:31;:35;;;;;;;;19313:142;;19406:9;;-1:-1:-1;;;;;3345:18:0;;3318:7;3345:18;;;;;;;;;;;19380:22;;:6;:22;:::i;:::-;:35;;19372:67;;;;-1:-1:-1;;;19372:67:0;;12137:2:1;19372:67:0;;;12119:21:1;12176:2;12156:18;;;12149:30;-1:-1:-1;;;12195:18:1;;;12188:49;12254:18;;19372:67:0;11935:343:1;19372:67:0;19527:4;19478:28;3345:18;;;;;;;;;;;19593;;19569:42;;;;;;;19642:33;;-1:-1:-1;19667:8:0;;-1:-1:-1;;;19667:8:0;;;;19666:9;19642:33;:61;;;;-1:-1:-1;19692:11:0;;-1:-1:-1;;;19692:11:0;;;;19642:61;:110;;;;-1:-1:-1;;;;;;19721:31:0;;;;;;:25;:31;;;;;;;;19720:32;19642:110;:153;;;;-1:-1:-1;;;;;;19770:25:0;;;;;;:19;:25;;;;;;;;19769:26;19642:153;:194;;;;-1:-1:-1;;;;;;19813:23:0;;;;;;:19;:23;;;;;;;;19812:24;19642:194;19624:338;;;19863:8;:15;;-1:-1:-1;;;;19863:15:0;-1:-1:-1;;;19863:15:0;;;19907:10;:8;:10::i;:::-;19934:8;:16;;-1:-1:-1;;;;19934:16:0;;;19624:338;19998:8;;-1:-1:-1;;;;;20022:25:0;;19982:12;20022:25;;;:19;:25;;;;;;19998:8;-1:-1:-1;;;19998:8:0;;;;;19997:9;;20022:25;;:52;;-1:-1:-1;;;;;;20051:23:0;;;;;;:19;:23;;;;;;;;20022:52;20019:99;;;-1:-1:-1;20101:5:0;20019:99;20138:12;20170:7;20167:1062;;;-1:-1:-1;;;;;20221:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;20270:1;20254:13;;:17;20221:50;20217:602;;;20298:34;20328:3;20298:25;20309:13;;20298:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;20291:41;;20389:13;;20375:11;;20368:4;:18;;;;:::i;:::-;:34;;;;:::i;:::-;20351:13;;:51;;;;;;;:::i;:::-;;;;-1:-1:-1;;20471:13:0;;20451:17;;20444:24;;:4;:24;:::i;:::-;:40;;;;:::i;:::-;20421:19;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;20217:602:0;;-1:-1:-1;20217:602:0;;-1:-1:-1;;;;;20547:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;20597:1;20582:12;;:16;20547:51;20544:275;;;20625:33;20654:3;20625:24;20636:12;;20625:6;:10;;:24;;;;:::i;:33::-;20618:40;;20711:12;;20698:10;;20691:4;:17;;;;:::i;:::-;:32;;;;:::i;:::-;20674:13;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;;20791:12:0;;20772:16;;20765:23;;:4;:23;:::i;:::-;:38;;;;:::i;:::-;20742:19;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;20544:275:0;20850:8;;20847:334;;20882:42;20898:4;20912;20919;20882:15;:42::i;:::-;20947:13;;:17;20943:223;;20989:35;21003:4;21010:13;;20989:5;:35::i;:::-;3218:12;;21047:6;:22;21092:14;:12;:14::i;:::-;21145:1;21129:13;:17;20943:223;21203:14;21213:4;21203:14;;:::i;:::-;;;20167:1062;21241:33;21257:4;21263:2;21267:6;21241:15;:33::i;:::-;17554:3728;;;;17441:3841;;;:::o;6741:192::-;6827:7;6863:12;6855:6;;;;6847:29;;;;-1:-1:-1;;;6847:29:0;;;;;;;;:::i;:::-;-1:-1:-1;6887:9:0;6899:5;6903:1;6899;:5;:::i;:::-;6887:17;6741:192;-1:-1:-1;;;;;6741:192:0:o;17241:190::-;17318:7;:32;;;;-1:-1:-1;;;;;;17329:21:0;;17345:4;17329:21;17318:32;17315:69;;;17241:190;;:::o;17315:69::-;-1:-1:-1;;;;;17394:19:0;;;;;;;;:13;:19;;;;;:29;;-1:-1:-1;;17394:29:0;;;;;;;;;;17241:190::o;16569:188::-;-1:-1:-1;;;;;16652:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;16652:39:0;;;;;;;;;;16709:40;;16652:39;;:31;16709:40;;;16569:188;;:::o;4750:513::-;-1:-1:-1;;;;;4890:20:0;;4882:70;;;;-1:-1:-1;;;4882:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4971:23:0;;4963:71;;;;-1:-1:-1;;;4963:71:0;;12908:2:1;4963:71:0;;;12890:21:1;12947:2;12927:18;;;12920:30;12986:34;12966:18;;;12959:62;-1:-1:-1;;;13037:18:1;;;13030:33;13080:19;;4963:71:0;12706:399:1;4963:71:0;5067;5089:6;5067:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5067:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;5047:17:0;;;:9;:17;;;;;;;;;;;:91;;;;5172:20;;;;;;;:32;;5197:6;5172:24;:32::i;:::-;-1:-1:-1;;;;;5149:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;5220:35;763:25:1;;;5149:20:0;;5220:35;;;;;;736:18:1;5220:35:0;617:177:1;21773:452:0;21856:4;21812:23;3345:18;;;;;;;;;;;;;21896:34;;21922:7;;21773:452::o;21896:34::-;21961:18;;:23;;21982:2;21961:23;:::i;:::-;21943:15;:41;21940:111;;;22016:18;;:23;;22037:2;22016:23;:::i;:::-;21998:41;;21940:111;22061:33;22078:15;22061:16;:33::i;:::-;22128:1;22106:19;:23;;;22161:16;;22153:64;;-1:-1:-1;;;;;22161:16:0;;;;22191:21;;22153:64;;22128:1;22153:64;22191:21;22161:16;22153:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21773:452:0:o;6947:250::-;7005:7;7029:6;7025:47;;-1:-1:-1;7059:1:0;7052:8;;7025:47;7084:9;7096:5;7100:1;7096;:5;:::i;:::-;7084:17;-1:-1:-1;7129:1:0;7120:5;7124:1;7084:17;7120:5;:::i;:::-;:10;7112:56;;;;-1:-1:-1;;;7112:56:0;;13522:2:1;7112:56:0;;;13504:21:1;13561:2;13541:18;;;13534:30;13600:34;13580:18;;;13573:62;-1:-1:-1;;;13651:18:1;;;13644:31;13692:19;;7112:56:0;13320:397:1;7211:132:0;7269:7;7296:39;7300:1;7303;7296:39;;;;;;;;;;;;;;;;;:3;:39::i;5607:356::-;-1:-1:-1;;;;;5691:21:0;;5683:67;;;;-1:-1:-1;;;5683:67:0;;13924:2:1;5683:67:0;;;13906:21:1;13963:2;13943:18;;;13936:30;14002:34;13982:18;;;13975:62;-1:-1:-1;;;14053:18:1;;;14046:31;14094:19;;5683:67:0;13722:397:1;5683:67:0;5784:68;5807:6;5784:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5784:18:0;;:9;:18;;;;;;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;5763:18:0;;:9;:18;;;;;;;;;;:89;5878:12;;:24;;5895:6;5878:16;:24::i;:::-;5863:12;:39;5918:37;;763:25:1;;;5944:1:0;;-1:-1:-1;;;;;5918:37:0;;;;;751:2:1;736:18;5918:37:0;;;;;;;5607:356;;:::o;21290:471::-;21380:16;;;21394:1;21380:16;;;;;;;;21356:21;;21380:16;;;;;;;;;;-1:-1:-1;21380:16:0;21356:40;;21425:4;21407;21412:1;21407:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21407:23:0;;;-1:-1:-1;;;;;21407:23:0;;;;;21451:15;-1:-1:-1;;;;;21451:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21441:4;21446:1;21441:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;21441:32:0;;;-1:-1:-1;;;;;21441:32:0;;;;;21484:62;21501:4;21516:15;21534:11;21484:8;:62::i;:::-;21557:196;;-1:-1:-1;;;21557:196:0;;-1:-1:-1;;;;;21557:15:0;:66;;;;:196;;21638:11;;21664:1;;21680:4;;21707;;21727:15;;21557:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21345:416;21290:471;:::o;7355:189::-;7441:7;7476:12;7469:5;7461:28;;;;-1:-1:-1;;;7461:28:0;;;;;;;;:::i;:::-;-1:-1:-1;7500:9:0;7512:5;7516:1;7512;:5;:::i;6591:136::-;6649:7;6676:43;6680:1;6683;6676:43;;;;;;;;;;;;;;;;;:3;:43::i;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:160::-;332:20;;388:13;;381:21;371:32;;361:60;;417:1;414;407:12;361:60;267:160;;;:::o;432:180::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;580:26;596:9;580:26;:::i;799:597::-;911:4;940:2;969;958:9;951:21;1001:6;995:13;1044:6;1039:2;1028:9;1024:18;1017:34;1069:1;1079:140;1093:6;1090:1;1087:13;1079:140;;;1188:14;;;1184:23;;1178:30;1154:17;;;1173:2;1150:26;1143:66;1108:10;;1079:140;;;1237:6;1234:1;1231:13;1228:91;;;1307:1;1302:2;1293:6;1282:9;1278:22;1274:31;1267:42;1228:91;-1:-1:-1;1380:2:1;1359:15;-1:-1:-1;;1355:29:1;1340:45;;;;1387:2;1336:54;;799:597;-1:-1:-1;;;799:597:1:o;1401:131::-;-1:-1:-1;;;;;1476:31:1;;1466:42;;1456:70;;1522:1;1519;1512:12;1537:315;1605:6;1613;1666:2;1654:9;1645:7;1641:23;1637:32;1634:52;;;1682:1;1679;1672:12;1634:52;1721:9;1708:23;1740:31;1765:5;1740:31;:::i;:::-;1790:5;1842:2;1827:18;;;;1814:32;;-1:-1:-1;;;1537:315:1:o;2049:247::-;2108:6;2161:2;2149:9;2140:7;2136:23;2132:32;2129:52;;;2177:1;2174;2167:12;2129:52;2216:9;2203:23;2235:31;2260:5;2235:31;:::i;2301:248::-;2363:6;2371;2424:2;2412:9;2403:7;2399:23;2395:32;2392:52;;;2440:1;2437;2430:12;2392:52;2463:26;2479:9;2463:26;:::i;:::-;2453:36;;2508:35;2539:2;2528:9;2524:18;2508:35;:::i;:::-;2498:45;;2301:248;;;;;:::o;2554:180::-;2613:6;2666:2;2654:9;2645:7;2641:23;2637:32;2634:52;;;2682:1;2679;2672:12;2634:52;-1:-1:-1;2705:23:1;;2554:180;-1:-1:-1;2554:180:1:o;2974:456::-;3051:6;3059;3067;3120:2;3108:9;3099:7;3095:23;3091:32;3088:52;;;3136:1;3133;3126:12;3088:52;3175:9;3162:23;3194:31;3219:5;3194:31;:::i;:::-;3244:5;-1:-1:-1;3301:2:1;3286:18;;3273:32;3314:33;3273:32;3314:33;:::i;:::-;2974:456;;3366:7;;-1:-1:-1;;;3420:2:1;3405:18;;;;3392:32;;2974:456::o;3832:248::-;3897:6;3905;3958:2;3946:9;3937:7;3933:23;3929:32;3926:52;;;3974:1;3971;3964:12;3926:52;3997:26;4013:9;3997:26;:::i;4085:315::-;4150:6;4158;4211:2;4199:9;4190:7;4186:23;4182:32;4179:52;;;4227:1;4224;4217:12;4179:52;4266:9;4253:23;4285:31;4310:5;4285:31;:::i;4405:689::-;4497:6;4505;4513;4566:2;4554:9;4545:7;4541:23;4537:32;4534:52;;;4582:1;4579;4572:12;4534:52;4622:9;4609:23;4651:18;4692:2;4684:6;4681:14;4678:34;;;4708:1;4705;4698:12;4678:34;4746:6;4735:9;4731:22;4721:32;;4791:7;4784:4;4780:2;4776:13;4772:27;4762:55;;4813:1;4810;4803:12;4762:55;4853:2;4840:16;4879:2;4871:6;4868:14;4865:34;;;4895:1;4892;4885:12;4865:34;4950:7;4943:4;4933:6;4930:1;4926:14;4922:2;4918:23;4914:34;4911:47;4908:67;;;4971:1;4968;4961:12;4908:67;5002:4;4994:13;;;;-1:-1:-1;5026:6:1;-1:-1:-1;5051:37:1;;5067:20;;;-1:-1:-1;5051:37:1;:::i;:::-;5041:47;;4405:689;;;;;:::o;5099:388::-;5167:6;5175;5228:2;5216:9;5207:7;5203:23;5199:32;5196:52;;;5244:1;5241;5234:12;5196:52;5283:9;5270:23;5302:31;5327:5;5302:31;:::i;:::-;5352:5;-1:-1:-1;5409:2:1;5394:18;;5381:32;5422:33;5381:32;5422:33;:::i;:::-;5474:7;5464:17;;;5099:388;;;;;:::o;5492:356::-;5694:2;5676:21;;;5713:18;;;5706:30;5772:34;5767:2;5752:18;;5745:62;5839:2;5824:18;;5492:356::o;5853:127::-;5914:10;5909:3;5905:20;5902:1;5895:31;5945:4;5942:1;5935:15;5969:4;5966:1;5959:15;5985:128;6025:3;6056:1;6052:6;6049:1;6046:13;6043:39;;;6062:18;;:::i;:::-;-1:-1:-1;6098:9:1;;5985:128::o;6476:380::-;6555:1;6551:12;;;;6598;;;6619:61;;6673:4;6665:6;6661:17;6651:27;;6619:61;6726:2;6718:6;6715:14;6695:18;6692:38;6689:161;;;6772:10;6767:3;6763:20;6760:1;6753:31;6807:4;6804:1;6797:15;6835:4;6832:1;6825:15;6689:161;;6476:380;;;:::o;7219:127::-;7280:10;7275:3;7271:20;7268:1;7261:31;7311:4;7308:1;7301:15;7335:4;7332:1;7325:15;7351:135;7390:3;-1:-1:-1;;7411:17:1;;7408:43;;;7431:18;;:::i;:::-;-1:-1:-1;7478:1:1;7467:13;;7351:135::o;9488:168::-;9528:7;9594:1;9590;9586:6;9582:14;9579:1;9576:21;9571:1;9564:9;9557:17;9553:45;9550:71;;;9601:18;;:::i;:::-;-1:-1:-1;9641:9:1;;9488:168::o;9661:217::-;9701:1;9727;9717:132;;9771:10;9766:3;9762:20;9759:1;9752:31;9806:4;9803:1;9796:15;9834:4;9831:1;9824:15;9717:132;-1:-1:-1;9863:9:1;;9661:217::o;9883:401::-;10085:2;10067:21;;;10124:2;10104:18;;;10097:30;10163:34;10158:2;10143:18;;10136:62;-1:-1:-1;;;10229:2:1;10214:18;;10207:35;10274:3;10259:19;;9883:401::o;10639:125::-;10679:4;10707:1;10704;10701:8;10698:34;;;10712:18;;:::i;:::-;-1:-1:-1;10749:9:1;;10639:125::o;14256:251::-;14326:6;14379:2;14367:9;14358:7;14354:23;14350:32;14347:52;;;14395:1;14392;14385:12;14347:52;14427:9;14421:16;14446:31;14471:5;14446:31;:::i;14512:980::-;14774:4;14822:3;14811:9;14807:19;14853:6;14842:9;14835:25;14879:2;14917:6;14912:2;14901:9;14897:18;14890:34;14960:3;14955:2;14944:9;14940:18;14933:31;14984:6;15019;15013:13;15050:6;15042;15035:22;15088:3;15077:9;15073:19;15066:26;;15127:2;15119:6;15115:15;15101:29;;15148:1;15158:195;15172:6;15169:1;15166:13;15158:195;;;15237:13;;-1:-1:-1;;;;;15233:39:1;15221:52;;15328:15;;;;15293:12;;;;15269:1;15187:9;15158:195;;;-1:-1:-1;;;;;;;15409:32:1;;;;15404:2;15389:18;;15382:60;-1:-1:-1;;;15473:3:1;15458:19;15451:35;15370:3;14512:980;-1:-1:-1;;;14512:980:1:o

Swarm Source

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