ETH Price: $3,887.41 (-0.66%)

Token

Hybrid Chain (HRC)
 

Overview

Max Total Supply

1,000,000,000 HRC

Holders

363 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.605041318232113528 HRC

Value
$0.00
0xccfd9b4dac0e3ea0ece09d01e00c68dbcebe6bb8
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Hybrid Chain is a blockchain project that embraces a hybrid model, combining elements from both public and private blockchains.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
HybridChain

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**
/*

Hybrid Blockchain

Website       : https://hybridchain.ai/
Telegram      : https://t.me/HybridChainPortal
Twitter       : https://twitter.com/HybridchainSG
Documentation : https://docs.hybridchain.ai

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

interface IERC20 {
    
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
    
}


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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}

library Address {
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

abstract contract Ownable is Context {
    address private _owner;


    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = 0x6a03067fF47a322d79F0B8d4Fc70891c33e05eF5;
        emit OwnershipTransferred(address(0), _owner);
    }

    function owner() public view virtual 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;
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}


contract HybridChain is Context, IERC20, Ownable { 
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _checkExcludedFee; 

   
    address payable public Developer_Creator = payable(0x5c7DF899A16EA107Ab8Da6226A572C6Fd6B6E0eb);
 
    string private _name = "Hybrid Chain"; 
    string private _symbol = "HRC";  
    uint8 private _decimals = 18;
    uint256 private _tTotal = 1000000000 * 10**18;
    uint256 private _tFeeTotal;

    uint8 private txCount = 0;
    uint8 private swapTrigger = 3; 

    uint256 private maxPossibleFee = 30; 

    uint256 private _previousTotalFee = _TotalFee; 
    uint256 private _previousBuyFee = _tax_Buy_Coin; 
    uint256 private _previousSellFee = _tax_Sell_Coin; 

    uint256 private _TotalFee = 30;
    uint256 public _tax_Buy_Coin = 15;
    uint256 public _tax_Sell_Coin = 15;

    uint256 public _maxWalletTransactions = _tTotal.mul(1).div(100);
    uint256 private _previousMaxWalletToken = _maxWalletTransactions;


    uint256 public _maxTransactions = _tTotal.mul(1).div(100); 
    uint256 private _previousMaxTxAmount = _maxTransactions;

                                     
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        _tOwned[owner()] = _tTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        
        
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _checkExcludedFee[owner()] = true;
        _checkExcludedFee[address(this)] = true;
        _checkExcludedFee[Developer_Creator] = true;
        
        emit Transfer(address(0), owner(), _tTotal);
    }



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

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

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

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

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

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

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

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

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

    function 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 excludeTaxLimit(address account) public onlyOwner {
        _checkExcludedFee[account] = true;
    }
    
    function includeInTaxLimit(address account) public onlyOwner {
        _checkExcludedFee[account] = false;
    }
    

    function _update_tax(uint256 Update_Buy_Tax, uint256 Update_Sell_Tax) external onlyOwner() {

        require((Update_Buy_Tax + Update_Sell_Tax) <= maxPossibleFee, "Fee is too high!");
        _tax_Sell_Coin = Update_Sell_Tax;
        _tax_Buy_Coin = Update_Buy_Tax;

    }
    
    function set_Swap_And_Liquify_Enabled(bool true_or_false) public onlyOwner {
        swapAndLiquifyEnabled = true_or_false;
        emit SwapAndLiquifyEnabledUpdated(true_or_false);
    }

    function Deployer_Owner_Update(address payable wallet) public onlyOwner() {
        Developer_Creator = wallet;
        _checkExcludedFee[Developer_Creator] = true;
    }

    function set_Number_Of_Transactions_Before_Liquify_Trigger(uint8 number_of_transactions) public onlyOwner {
        swapTrigger = number_of_transactions;
    }
    
    receive() external payable {}


    bool public transferTax_ = false;

    function Transfers_Fees_Updates(bool true_or_false) external onlyOwner {
        transferTax_ = true_or_false;
    }

     function Max_Wallet_Update(uint256 maxWallPercent_x100) external onlyOwner() {
        _maxWalletTransactions = _tTotal*maxWallPercent_x100/10000;
    }

    function Max_Transaction_Update(uint256 maxTxPercent_x100) external onlyOwner() {
        _maxTransactions = _tTotal*maxTxPercent_x100/10000;
    }    
    


    function removeAllFee() private {
        if(_TotalFee == 0 && _tax_Buy_Coin == 0 && _tax_Sell_Coin == 0) return;


        _previousBuyFee = _tax_Buy_Coin; 
        _previousSellFee = _tax_Sell_Coin; 
        _previousTotalFee = _TotalFee;
        _tax_Buy_Coin = 0;
        _tax_Sell_Coin = 0;
        _TotalFee = 0;

    }
    
    function restoreAllFee() private {
    
    _TotalFee = _previousTotalFee;
    _tax_Buy_Coin = _previousBuyFee; 
    _tax_Sell_Coin = _previousSellFee; 

    }

    function _approve(address owner, address spender, uint256 amount) private {

        require(owner != address(0) && spender != address(0), "ERR: zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);

    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        
        
        if (to != owner() &&
            to != Developer_Creator &&
            to != address(this) &&
            to != uniswapV2Pair &&
           
            from != owner()){
            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletTransactions,"You are trying to buy too many tokens. You have reached the limit for one wallet.");}

        if (from != owner() && to != owner())
            require(amount <= _maxTransactions, "You are trying to buy more than the max transaction limit.");



        if(
            txCount >= swapTrigger && 
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled 
            )
        {  
            
            txCount = 0;
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTransactions) {contractTokenBalance = _maxTransactions;}
            if(contractTokenBalance > 0){
            swapAndLiquify(contractTokenBalance);
        }
        }


        
        bool takeFee = true;
         
        if(_checkExcludedFee[from] || _checkExcludedFee[to] || (transferTax_ && from != uniswapV2Pair && to != uniswapV2Pair)){
            takeFee = false;
        } else if (from == uniswapV2Pair){_TotalFee = _tax_Buy_Coin;} else if (to == uniswapV2Pair){_TotalFee = _tax_Sell_Coin;}
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);
        }


    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        
        swapTokensForBNB(contractTokenBalance);
        uint256 contractBNB = address(this).balance;
        sendToWallet(Developer_Creator,contractBNB);
    }


    function process_Transaction (uint256 percent_Of_Tokens_To_Process) public onlyOwner {
        // Do not trigger if already in swap
        require(!inSwapAndLiquify, "Currently processing, try later."); 
        if (percent_Of_Tokens_To_Process > 100){percent_Of_Tokens_To_Process == 100;}
        uint256 tokensOnContract = balanceOf(address(this));
        uint256 sendTokens = tokensOnContract*percent_Of_Tokens_To_Process/100;
        swapAndLiquify(sendTokens);
    }


    function swapTokensForBNB(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 New_Router_and_Update_Pair(address newRouter) public onlyOwner() {
        IUniswapV2Router02 _newPCSRouter = IUniswapV2Router02(newRouter);
        uniswapV2Pair = IUniswapV2Factory(_newPCSRouter.factory()).createPair(address(this), _newPCSRouter.WETH());
        uniswapV2Router = _newPCSRouter;
    }
   
    function New_Router_Address(address newRouter) public onlyOwner() {
        IUniswapV2Router02 _newPCSRouter = IUniswapV2Router02(newRouter);
        uniswapV2Router = _newPCSRouter;
    }
    
    function New_Pair_Address(address newPair) public onlyOwner() {
        uniswapV2Pair = newPair;
    }


    function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
        
        
        if(!takeFee){
            removeAllFee();
            } else {
                txCount++;
            }
            _transferTokens(sender, recipient, amount);
        
        if(!takeFee)
            restoreAllFee();
    }

    function _transferTokens(address sender, address recipient, uint256 tAmount) private {
        (uint256 tTransferAmount, uint256 tDev) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _tOwned[address(this)] = _tOwned[address(this)].add(tDev);   
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tDev = tAmount*_TotalFee/100;
        uint256 tTransferAmount = tAmount.sub(tDev);
        return (tTransferAmount, tDev);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address payable","name":"wallet","type":"address"}],"name":"Deployer_Owner_Update","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Developer_Creator","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent_x100","type":"uint256"}],"name":"Max_Transaction_Update","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_x100","type":"uint256"}],"name":"Max_Wallet_Update","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPair","type":"address"}],"name":"New_Pair_Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"New_Router_Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"New_Router_and_Update_Pair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"Transfers_Fees_Updates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_checkExcludedFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTransactions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletTransactions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tax_Buy_Coin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tax_Sell_Coin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"Update_Buy_Tax","type":"uint256"},{"internalType":"uint256","name":"Update_Sell_Tax","type":"uint256"}],"name":"_update_tax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":"address","name":"account","type":"address"}],"name":"excludeTaxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInTaxLimit","outputs":[],"stateMutability":"nonpayable","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent_Of_Tokens_To_Process","type":"uint256"}],"name":"process_Transaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"number_of_transactions","type":"uint8"}],"name":"set_Number_Of_Transactions_Before_Liquify_Trigger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"set_Swap_And_Liquify_Enabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","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":"transferTax_","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

600480546001600160a01b031916735c7df899a16ea107ab8da6226a572c6fd6b6e0eb17905560c0604052600c60808190526b243cb13934b21021b430b4b760a11b60a0908152620000559160059190620004b5565b506040805180820190915260038082526248524360e81b60209092019182526200008291600691620004b5565b5060078054601260ff199091161790556b033b2e3c9fd0803ce80000006008819055600a805461ffff1916610300179055601e600b819055600f8054600c5560108054600d5560118054600e5592825581905590556200010c90606490620000f890600162000492602090811b6200109b17901c565b620004a760201b620010ae1790919060201c565b601255601254601355620001386064620000f860016008546200049260201b6200109b1790919060201c565b60148190556015556017805461ffff60a81b1916600160a81b1790553480156200016157600080fd5b50600080546001600160a01b031916736a03067ff47a322d79f0b8d4fc70891c33e05ef590811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360085460016000620001cf6000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024657600080fd5b505afa1580156200025b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028191906200055b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ca57600080fd5b505afa158015620002df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030591906200055b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200034e57600080fd5b505af115801562000363573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038991906200055b565b601780546001600160a01b03199081166001600160a01b039384161790915560168054909116918316919091179055600160036000620003d16000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556004549091168352912080549092161790556200043b6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008546040516200048391815260200190565b60405180910390a35062000614565b6000620004a08284620005a9565b9392505050565b6000620004a0828462000586565b828054620004c390620005d7565b90600052602060002090601f016020900481019282620004e7576000855562000532565b82601f106200050257805160ff191683800117855562000532565b8280016001018555821562000532579182015b828111156200053257825182559160200191906001019062000515565b506200054092915062000544565b5090565b5b8082111562000540576000815560010162000545565b6000602082840312156200056e57600080fd5b81516001600160a01b0381168114620004a057600080fd5b600082620005a457634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615620005d257634e487b7160e01b600052601160045260246000fd5b500290565b600181811c90821680620005ec57607f821691505b602082108114156200060e57634e487b7160e01b600052602260045260246000fd5b50919050565b611cb280620006246000396000f3fe6080604052600436106102295760003560e01c80637caefa8911610123578063c53ff4bb116100ab578063df0e397a1161006f578063df0e397a1461069a578063f08eac12146106ba578063f2fde38b146106da578063f6a99754146106fa578063f7739b5f1461071a57600080fd5b8063c53ff4bb146105d4578063cdceec76146105f4578063d60f343914610614578063da2f262b14610634578063dd62ed3e1461065457600080fd5b8063a457c2d7116100f2578063a457c2d71461053d578063a9059cbb1461055d578063a9419f8d1461057d578063c15c2bc71461059d578063c2cb0bbc146105be57600080fd5b80637caefa89146104d45780638c0aba1e146104f45780638da5cb5b1461050a57806395d89b411461052857600080fd5b8063313ce567116101b15780636db28e4c116101755780636db28e4c146104335780636f88a54a1461045357806370a0823114610473578063715018a6146104a9578063752bf25d146104be57600080fd5b8063313ce5671461038057806339509351146103a257806349bd5a5e146103c25780634a57c273146103e25780634a74bb021461041257600080fd5b806318160ddd116101f857806318160ddd146102ea5780632064d4eb14610309578063220f66961461031f57806323b872dd146103405780632d6988221461036057600080fd5b806306fdde0314610235578063095ea7b31461026057806313a3c08b146102905780631694505e146102b257600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a61073a565b6040516102579190611a25565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004611979565b6107cc565b6040519015158152602001610257565b34801561029c57600080fd5b506102b06102ab3660046119c7565b6107e2565b005b3480156102be57600080fd5b506016546102d2906001600160a01b031681565b6040516001600160a01b039091168152602001610257565b3480156102f657600080fd5b506008545b604051908152602001610257565b34801561031557600080fd5b506102fb60145481565b34801561032b57600080fd5b5060175461028090600160a01b900460ff1681565b34801561034c57600080fd5b5061028061035b366004611938565b6108a6565b34801561036c57600080fd5b506102b061037b3660046118c5565b61090f565b34801561038c57600080fd5b5060075460405160ff9091168152602001610257565b3480156103ae57600080fd5b506102806103bd366004611979565b61095d565b3480156103ce57600080fd5b506017546102d2906001600160a01b031681565b3480156103ee57600080fd5b506102806103fd3660046118c5565b60036020526000908152604090205460ff1681565b34801561041e57600080fd5b5060175461028090600160a81b900460ff1681565b34801561043f57600080fd5b506102b061044e3660046118c5565b610993565b34801561045f57600080fd5b506102b061046e3660046118c5565b6109de565b34801561047f57600080fd5b506102fb61048e3660046118c5565b6001600160a01b031660009081526001602052604090205490565b3480156104b557600080fd5b506102b0610a2a565b3480156104ca57600080fd5b506102fb60105481565b3480156104e057600080fd5b506102b06104ef366004611a02565b610a9e565b34801561050057600080fd5b506102fb60115481565b34801561051657600080fd5b506000546001600160a01b03166102d2565b34801561053457600080fd5b5061024a610ae4565b34801561054957600080fd5b50610280610558366004611979565b610af3565b34801561056957600080fd5b50610280610578366004611979565b610b42565b34801561058957600080fd5b506102b06105983660046119a5565b610b4f565b3480156105a957600080fd5b5060175461028090600160b01b900460ff1681565b3480156105ca57600080fd5b506102fb60125481565b3480156105e057600080fd5b506102b06105ef3660046118c5565b610b97565b34801561060057600080fd5b506102b061060f3660046119c7565b610be3565b34801561062057600080fd5b506004546102d2906001600160a01b031681565b34801561064057600080fd5b506102b061064f3660046119e0565b610c2e565b34801561066057600080fd5b506102fb61066f3660046118ff565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156106a657600080fd5b506102b06106b53660046118c5565b610cae565b3480156106c657600080fd5b506102b06106d53660046119c7565b610e80565b3480156106e657600080fd5b506102b06106f53660046118c5565b610ecb565b34801561070657600080fd5b506102b06107153660046118c5565b610fb5565b34801561072657600080fd5b506102b06107353660046119a5565b611019565b60606005805461074990611b90565b80601f016020809104026020016040519081016040528092919081815260200182805461077590611b90565b80156107c25780601f10610797576101008083540402835291602001916107c2565b820191906000526020600020905b8154815290600101906020018083116107a557829003601f168201915b5050505050905090565b60006107d93384846110ba565b50600192915050565b6000546001600160a01b031633146108155760405162461bcd60e51b815260040161080c90611a7a565b60405180910390fd5b601754600160a01b900460ff161561086f5760405162461bcd60e51b815260206004820181905260248201527f43757272656e746c792070726f63657373696e672c20747279206c617465722e604482015260640161080c565b3060009081526001602052604081205490606461088c8484611b5a565b6108969190611b38565b90506108a18161117b565b505050565b60006108b38484846111c0565b610905843361090085604051806060016040528060288152602001611c30602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611513565b6110ba565b5060019392505050565b6000546001600160a01b031633146109395760405162461bcd60e51b815260040161080c90611a7a565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916107d9918590610900908661153f565b6000546001600160a01b031633146109bd5760405162461bcd60e51b815260040161080c90611a7a565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b03163314610a085760405162461bcd60e51b815260040161080c90611a7a565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a545760405162461bcd60e51b815260040161080c90611a7a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610ac85760405162461bcd60e51b815260040161080c90611a7a565b600a805460ff9092166101000261ff0019909216919091179055565b60606006805461074990611b90565b60006107d9338461090085604051806060016040528060258152602001611c58602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190611513565b60006107d93384846111c0565b6000546001600160a01b03163314610b795760405162461bcd60e51b815260040161080c90611a7a565b60178054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b03163314610bc15760405162461bcd60e51b815260040161080c90611a7a565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c0d5760405162461bcd60e51b815260040161080c90611a7a565b61271081600854610c1e9190611b5a565b610c289190611b38565b60125550565b6000546001600160a01b03163314610c585760405162461bcd60e51b815260040161080c90611a7a565b600b54610c658284611b20565b1115610ca65760405162461bcd60e51b815260206004820152601060248201526f46656520697320746f6f20686967682160801b604482015260640161080c565b601155601055565b6000546001600160a01b03163314610cd85760405162461bcd60e51b815260040161080c90611a7a565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d1657600080fd5b505afa158015610d2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4e91906118e2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d9657600080fd5b505afa158015610daa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dce91906118e2565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610e1657600080fd5b505af1158015610e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4e91906118e2565b601780546001600160a01b039283166001600160a01b0319918216179091556016805493909216921691909117905550565b6000546001600160a01b03163314610eaa5760405162461bcd60e51b815260040161080c90611a7a565b61271081600854610ebb9190611b5a565b610ec59190611b38565b60145550565b6000546001600160a01b03163314610ef55760405162461bcd60e51b815260040161080c90611a7a565b6001600160a01b038116610f5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161080c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610fdf5760405162461bcd60e51b815260040161080c90611a7a565b600480546001600160a01b039092166001600160a01b0319909216821790556000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146110435760405162461bcd60e51b815260040161080c90611a7a565b60178054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061109090831515815260200190565b60405180910390a150565b60006110a78284611b5a565b9392505050565b60006110a78284611b38565b6001600160a01b038316158015906110da57506001600160a01b03821615155b61111a5760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b604482015260640161080c565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6017805460ff60a01b1916600160a01b1790556111978161154b565b60045447906111af906001600160a01b0316826116b4565b50506017805460ff60a01b19169055565b6000546001600160a01b038381169116148015906111ec57506004546001600160a01b03838116911614155b801561120157506001600160a01b0382163014155b801561121b57506017546001600160a01b03838116911614155b801561123557506000546001600160a01b03848116911614155b156112f0576001600160a01b0382166000908152600160205260409020546012546112608383611b20565b11156112ee5760405162461bcd60e51b815260206004820152605160248201527f596f752061726520747279696e6720746f2062757920746f6f206d616e79207460448201527f6f6b656e732e20596f752068617665207265616368656420746865206c696d696064820152703a103337b91037b732903bb0b63632ba1760791b608482015260a40161080c565b505b6000546001600160a01b0384811691161480159061131c57506000546001600160a01b03838116911614155b15611399576014548111156113995760405162461bcd60e51b815260206004820152603a60248201527f596f752061726520747279696e6720746f20627579206d6f7265207468616e2060448201527f746865206d6178207472616e73616374696f6e206c696d69742e000000000000606482015260840161080c565b600a5460ff610100820481169116108015906113bf5750601754600160a01b900460ff16155b80156113d957506017546001600160a01b03848116911614155b80156113ee5750601754600160a81b900460ff165b1561142d57600a805460ff191690553060009081526001602052604090205460145481111561141c57506014545b801561142b5761142b8161117b565b505b6001600160a01b03831660009081526003602052604090205460019060ff168061146f57506001600160a01b03831660009081526003602052604090205460ff165b806114b65750601754600160b01b900460ff16801561149c57506017546001600160a01b03858116911614155b80156114b657506017546001600160a01b03848116911614155b156114c357506000611501565b6017546001600160a01b03858116911614156114e457601054600f55611501565b6017546001600160a01b038481169116141561150157601154600f555b61150d848484846116ea565b50505050565b600081848411156115375760405162461bcd60e51b815260040161080c9190611a25565b505050900390565b60006110a78284611b20565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061158057611580611c01565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156115d457600080fd5b505afa1580156115e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160c91906118e2565b8160018151811061161f5761161f611c01565b6001600160a01b03928316602091820292909201015260165461164591309116846110ba565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac9479061167e908590600090869030904290600401611aaf565b600060405180830381600087803b15801561169857600080fd5b505af11580156116ac573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156108a1573d6000803e3d6000fd5b806116fc576116f7611750565b611729565b600a805460ff1690600061170f83611bcb565b91906101000a81548160ff021916908360ff160217905550505b611734848484611795565b8061150d5761150d600c54600f55600d54601055600e54601155565b600f541580156117605750601054155b801561176c5750601154155b1561177357565b60108054600d5560118054600e55600f8054600c556000928390559082905555565b6000806117a183611881565b6001600160a01b03871660009081526001602052604090205491935091506117c990846118b9565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546117f8908361153f565b6001600160a01b038516600090815260016020526040808220929092553081522054611824908261153f565b3060009081526001602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b60008060006064600f54856118969190611b5a565b6118a09190611b38565b905060006118ae85836118b9565b959194509092505050565b60006110a78284611b79565b6000602082840312156118d757600080fd5b81356110a781611c17565b6000602082840312156118f457600080fd5b81516110a781611c17565b6000806040838503121561191257600080fd5b823561191d81611c17565b9150602083013561192d81611c17565b809150509250929050565b60008060006060848603121561194d57600080fd5b833561195881611c17565b9250602084013561196881611c17565b929592945050506040919091013590565b6000806040838503121561198c57600080fd5b823561199781611c17565b946020939093013593505050565b6000602082840312156119b757600080fd5b813580151581146110a757600080fd5b6000602082840312156119d957600080fd5b5035919050565b600080604083850312156119f357600080fd5b50508035926020909101359150565b600060208284031215611a1457600080fd5b813560ff811681146110a757600080fd5b600060208083528351808285015260005b81811015611a5257858101830151858201604001528201611a36565b81811115611a64576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611aff5784516001600160a01b031683529383019391830191600101611ada565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611b3357611b33611beb565b500190565b600082611b5557634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611b7457611b74611beb565b500290565b600082821015611b8b57611b8b611beb565b500390565b600181811c90821680611ba457607f821691505b60208210811415611bc557634e487b7160e01b600052602260045260246000fd5b50919050565b600060ff821660ff811415611be257611be2611beb565b60010192915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114611c2c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081bb5efe55c092e4d772dd239a556bfd080e27451593778fd363844d2b99cead64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80637caefa8911610123578063c53ff4bb116100ab578063df0e397a1161006f578063df0e397a1461069a578063f08eac12146106ba578063f2fde38b146106da578063f6a99754146106fa578063f7739b5f1461071a57600080fd5b8063c53ff4bb146105d4578063cdceec76146105f4578063d60f343914610614578063da2f262b14610634578063dd62ed3e1461065457600080fd5b8063a457c2d7116100f2578063a457c2d71461053d578063a9059cbb1461055d578063a9419f8d1461057d578063c15c2bc71461059d578063c2cb0bbc146105be57600080fd5b80637caefa89146104d45780638c0aba1e146104f45780638da5cb5b1461050a57806395d89b411461052857600080fd5b8063313ce567116101b15780636db28e4c116101755780636db28e4c146104335780636f88a54a1461045357806370a0823114610473578063715018a6146104a9578063752bf25d146104be57600080fd5b8063313ce5671461038057806339509351146103a257806349bd5a5e146103c25780634a57c273146103e25780634a74bb021461041257600080fd5b806318160ddd116101f857806318160ddd146102ea5780632064d4eb14610309578063220f66961461031f57806323b872dd146103405780632d6988221461036057600080fd5b806306fdde0314610235578063095ea7b31461026057806313a3c08b146102905780631694505e146102b257600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a61073a565b6040516102579190611a25565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004611979565b6107cc565b6040519015158152602001610257565b34801561029c57600080fd5b506102b06102ab3660046119c7565b6107e2565b005b3480156102be57600080fd5b506016546102d2906001600160a01b031681565b6040516001600160a01b039091168152602001610257565b3480156102f657600080fd5b506008545b604051908152602001610257565b34801561031557600080fd5b506102fb60145481565b34801561032b57600080fd5b5060175461028090600160a01b900460ff1681565b34801561034c57600080fd5b5061028061035b366004611938565b6108a6565b34801561036c57600080fd5b506102b061037b3660046118c5565b61090f565b34801561038c57600080fd5b5060075460405160ff9091168152602001610257565b3480156103ae57600080fd5b506102806103bd366004611979565b61095d565b3480156103ce57600080fd5b506017546102d2906001600160a01b031681565b3480156103ee57600080fd5b506102806103fd3660046118c5565b60036020526000908152604090205460ff1681565b34801561041e57600080fd5b5060175461028090600160a81b900460ff1681565b34801561043f57600080fd5b506102b061044e3660046118c5565b610993565b34801561045f57600080fd5b506102b061046e3660046118c5565b6109de565b34801561047f57600080fd5b506102fb61048e3660046118c5565b6001600160a01b031660009081526001602052604090205490565b3480156104b557600080fd5b506102b0610a2a565b3480156104ca57600080fd5b506102fb60105481565b3480156104e057600080fd5b506102b06104ef366004611a02565b610a9e565b34801561050057600080fd5b506102fb60115481565b34801561051657600080fd5b506000546001600160a01b03166102d2565b34801561053457600080fd5b5061024a610ae4565b34801561054957600080fd5b50610280610558366004611979565b610af3565b34801561056957600080fd5b50610280610578366004611979565b610b42565b34801561058957600080fd5b506102b06105983660046119a5565b610b4f565b3480156105a957600080fd5b5060175461028090600160b01b900460ff1681565b3480156105ca57600080fd5b506102fb60125481565b3480156105e057600080fd5b506102b06105ef3660046118c5565b610b97565b34801561060057600080fd5b506102b061060f3660046119c7565b610be3565b34801561062057600080fd5b506004546102d2906001600160a01b031681565b34801561064057600080fd5b506102b061064f3660046119e0565b610c2e565b34801561066057600080fd5b506102fb61066f3660046118ff565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156106a657600080fd5b506102b06106b53660046118c5565b610cae565b3480156106c657600080fd5b506102b06106d53660046119c7565b610e80565b3480156106e657600080fd5b506102b06106f53660046118c5565b610ecb565b34801561070657600080fd5b506102b06107153660046118c5565b610fb5565b34801561072657600080fd5b506102b06107353660046119a5565b611019565b60606005805461074990611b90565b80601f016020809104026020016040519081016040528092919081815260200182805461077590611b90565b80156107c25780601f10610797576101008083540402835291602001916107c2565b820191906000526020600020905b8154815290600101906020018083116107a557829003601f168201915b5050505050905090565b60006107d93384846110ba565b50600192915050565b6000546001600160a01b031633146108155760405162461bcd60e51b815260040161080c90611a7a565b60405180910390fd5b601754600160a01b900460ff161561086f5760405162461bcd60e51b815260206004820181905260248201527f43757272656e746c792070726f63657373696e672c20747279206c617465722e604482015260640161080c565b3060009081526001602052604081205490606461088c8484611b5a565b6108969190611b38565b90506108a18161117b565b505050565b60006108b38484846111c0565b610905843361090085604051806060016040528060288152602001611c30602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611513565b6110ba565b5060019392505050565b6000546001600160a01b031633146109395760405162461bcd60e51b815260040161080c90611a7a565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916107d9918590610900908661153f565b6000546001600160a01b031633146109bd5760405162461bcd60e51b815260040161080c90611a7a565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b03163314610a085760405162461bcd60e51b815260040161080c90611a7a565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a545760405162461bcd60e51b815260040161080c90611a7a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610ac85760405162461bcd60e51b815260040161080c90611a7a565b600a805460ff9092166101000261ff0019909216919091179055565b60606006805461074990611b90565b60006107d9338461090085604051806060016040528060258152602001611c58602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190611513565b60006107d93384846111c0565b6000546001600160a01b03163314610b795760405162461bcd60e51b815260040161080c90611a7a565b60178054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b03163314610bc15760405162461bcd60e51b815260040161080c90611a7a565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c0d5760405162461bcd60e51b815260040161080c90611a7a565b61271081600854610c1e9190611b5a565b610c289190611b38565b60125550565b6000546001600160a01b03163314610c585760405162461bcd60e51b815260040161080c90611a7a565b600b54610c658284611b20565b1115610ca65760405162461bcd60e51b815260206004820152601060248201526f46656520697320746f6f20686967682160801b604482015260640161080c565b601155601055565b6000546001600160a01b03163314610cd85760405162461bcd60e51b815260040161080c90611a7a565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d1657600080fd5b505afa158015610d2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4e91906118e2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d9657600080fd5b505afa158015610daa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dce91906118e2565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610e1657600080fd5b505af1158015610e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4e91906118e2565b601780546001600160a01b039283166001600160a01b0319918216179091556016805493909216921691909117905550565b6000546001600160a01b03163314610eaa5760405162461bcd60e51b815260040161080c90611a7a565b61271081600854610ebb9190611b5a565b610ec59190611b38565b60145550565b6000546001600160a01b03163314610ef55760405162461bcd60e51b815260040161080c90611a7a565b6001600160a01b038116610f5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161080c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610fdf5760405162461bcd60e51b815260040161080c90611a7a565b600480546001600160a01b039092166001600160a01b0319909216821790556000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146110435760405162461bcd60e51b815260040161080c90611a7a565b60178054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061109090831515815260200190565b60405180910390a150565b60006110a78284611b5a565b9392505050565b60006110a78284611b38565b6001600160a01b038316158015906110da57506001600160a01b03821615155b61111a5760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b604482015260640161080c565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6017805460ff60a01b1916600160a01b1790556111978161154b565b60045447906111af906001600160a01b0316826116b4565b50506017805460ff60a01b19169055565b6000546001600160a01b038381169116148015906111ec57506004546001600160a01b03838116911614155b801561120157506001600160a01b0382163014155b801561121b57506017546001600160a01b03838116911614155b801561123557506000546001600160a01b03848116911614155b156112f0576001600160a01b0382166000908152600160205260409020546012546112608383611b20565b11156112ee5760405162461bcd60e51b815260206004820152605160248201527f596f752061726520747279696e6720746f2062757920746f6f206d616e79207460448201527f6f6b656e732e20596f752068617665207265616368656420746865206c696d696064820152703a103337b91037b732903bb0b63632ba1760791b608482015260a40161080c565b505b6000546001600160a01b0384811691161480159061131c57506000546001600160a01b03838116911614155b15611399576014548111156113995760405162461bcd60e51b815260206004820152603a60248201527f596f752061726520747279696e6720746f20627579206d6f7265207468616e2060448201527f746865206d6178207472616e73616374696f6e206c696d69742e000000000000606482015260840161080c565b600a5460ff610100820481169116108015906113bf5750601754600160a01b900460ff16155b80156113d957506017546001600160a01b03848116911614155b80156113ee5750601754600160a81b900460ff165b1561142d57600a805460ff191690553060009081526001602052604090205460145481111561141c57506014545b801561142b5761142b8161117b565b505b6001600160a01b03831660009081526003602052604090205460019060ff168061146f57506001600160a01b03831660009081526003602052604090205460ff165b806114b65750601754600160b01b900460ff16801561149c57506017546001600160a01b03858116911614155b80156114b657506017546001600160a01b03848116911614155b156114c357506000611501565b6017546001600160a01b03858116911614156114e457601054600f55611501565b6017546001600160a01b038481169116141561150157601154600f555b61150d848484846116ea565b50505050565b600081848411156115375760405162461bcd60e51b815260040161080c9190611a25565b505050900390565b60006110a78284611b20565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061158057611580611c01565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156115d457600080fd5b505afa1580156115e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160c91906118e2565b8160018151811061161f5761161f611c01565b6001600160a01b03928316602091820292909201015260165461164591309116846110ba565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac9479061167e908590600090869030904290600401611aaf565b600060405180830381600087803b15801561169857600080fd5b505af11580156116ac573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156108a1573d6000803e3d6000fd5b806116fc576116f7611750565b611729565b600a805460ff1690600061170f83611bcb565b91906101000a81548160ff021916908360ff160217905550505b611734848484611795565b8061150d5761150d600c54600f55600d54601055600e54601155565b600f541580156117605750601054155b801561176c5750601154155b1561177357565b60108054600d5560118054600e55600f8054600c556000928390559082905555565b6000806117a183611881565b6001600160a01b03871660009081526001602052604090205491935091506117c990846118b9565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546117f8908361153f565b6001600160a01b038516600090815260016020526040808220929092553081522054611824908261153f565b3060009081526001602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b60008060006064600f54856118969190611b5a565b6118a09190611b38565b905060006118ae85836118b9565b959194509092505050565b60006110a78284611b79565b6000602082840312156118d757600080fd5b81356110a781611c17565b6000602082840312156118f457600080fd5b81516110a781611c17565b6000806040838503121561191257600080fd5b823561191d81611c17565b9150602083013561192d81611c17565b809150509250929050565b60008060006060848603121561194d57600080fd5b833561195881611c17565b9250602084013561196881611c17565b929592945050506040919091013590565b6000806040838503121561198c57600080fd5b823561199781611c17565b946020939093013593505050565b6000602082840312156119b757600080fd5b813580151581146110a757600080fd5b6000602082840312156119d957600080fd5b5035919050565b600080604083850312156119f357600080fd5b50508035926020909101359150565b600060208284031215611a1457600080fd5b813560ff811681146110a757600080fd5b600060208083528351808285015260005b81811015611a5257858101830151858201604001528201611a36565b81811115611a64576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611aff5784516001600160a01b031683529383019391830191600101611ada565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611b3357611b33611beb565b500190565b600082611b5557634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611b7457611b74611beb565b500290565b600082821015611b8b57611b8b611beb565b500390565b600181811c90821680611ba457607f821691505b60208210811415611bc557634e487b7160e01b600052602260045260246000fd5b50919050565b600060ff821660ff811415611be257611be2611beb565b60010192915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114611c2c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122081bb5efe55c092e4d772dd239a556bfd080e27451593778fd363844d2b99cead64736f6c63430008070033

Deployed Bytecode Sourcemap

14223:11360:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16670:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17501:161;;;;;;;;;;-1:-1:-1;17501:161:0;;;;;:::i;:::-;;:::i;:::-;;;3852:14:1;;3845:22;3827:41;;3815:2;3800:18;17501:161:0;3687:187:1;22931:480:0;;;;;;;;;;-1:-1:-1;22931:480:0;;;;;:::i;:::-;;:::i;:::-;;15565:41;;;;;;;;;;-1:-1:-1;15565:41:0;;;;-1:-1:-1;;;;;15565:41:0;;;;;;-1:-1:-1;;;;;3110:32:1;;;3092:51;;3080:2;3065:18;15565:41:0;2946:203:1;16947:95:0;;;;;;;;;;-1:-1:-1;17027:7:0;;16947:95;;;7599:25:1;;;7587:2;7572:18;16947:95:0;7453:177:1;15397:57:0;;;;;;;;;;;;;;;;15648:28;;;;;;;;;;-1:-1:-1;15648:28:0;;;;-1:-1:-1;;;15648:28:0;;;;;;17670:313;;;;;;;;;;-1:-1:-1;17670:313:0;;;;;:::i;:::-;;:::i;18500:111::-;;;;;;;;;;-1:-1:-1;18500:111:0;;;;;:::i;:::-;;:::i;16856:83::-;;;;;;;;;;-1:-1:-1;16922:9:0;;16856:83;;16922:9;;;;8762:36:1;;8750:2;8735:18;16856:83:0;8620:184:1;17991:218:0;;;;;;;;;;-1:-1:-1;17991:218:0;;;;;:::i;:::-;;:::i;15613:28::-;;;;;;;;;;-1:-1:-1;15613:28:0;;;;-1:-1:-1;;;;;15613:28:0;;;14474:50;;;;;;;;;;-1:-1:-1;14474:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15683:40;;;;;;;;;;-1:-1:-1;15683:40:0;;;;-1:-1:-1;;;15683:40:0;;;;;;18623:114;;;;;;;;;;-1:-1:-1;18623:114:0;;;;;:::i;:::-;;:::i;24437:104::-;;;;;;;;;;-1:-1:-1;24437:104:0;;;;;:::i;:::-;;:::i;17050:117::-;;;;;;;;;;-1:-1:-1;17050:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;17143:16:0;17116:7;17143:16;;;:7;:16;;;;;;;17050:117;6012:148;;;;;;;;;;;;;:::i;15169:33::-;;;;;;;;;;;;;;;;19421:161;;;;;;;;;;-1:-1:-1;19421:161:0;;;;;:::i;:::-;;:::i;15209:34::-;;;;;;;;;;;;;;;;5789:87;;;;;;;;;;-1:-1:-1;5835:7:0;5862:6;-1:-1:-1;;;;;5862:6:0;5789:87;;16761;;;;;;;;;;;;;:::i;18217:269::-;;;;;;;;;;-1:-1:-1;18217:269:0;;;;;:::i;:::-;;:::i;17175:167::-;;;;;;;;;;-1:-1:-1;17175:167:0;;;;;:::i;:::-;;:::i;19674:118::-;;;;;;;;;;-1:-1:-1;19674:118:0;;;;;:::i;:::-;;:::i;19633:32::-;;;;;;;;;;-1:-1:-1;19633:32:0;;;;-1:-1:-1;;;19633:32:0;;;;;;15252:63;;;;;;;;;;;;;;;;24234:191;;;;;;;;;;-1:-1:-1;24234:191:0;;;;;:::i;:::-;;:::i;19801:154::-;;;;;;;;;;-1:-1:-1;19801:154:0;;;;;:::i;:::-;;:::i;14539:94::-;;;;;;;;;;-1:-1:-1;14539:94:0;;;;-1:-1:-1;;;;;14539:94:0;;;18751:279;;;;;;;;;;-1:-1:-1;18751:279:0;;;;;:::i;:::-;;:::i;17350:143::-;;;;;;;;;;-1:-1:-1;17350:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;17458:18:0;;;17431:7;17458:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17350:143;23907:316;;;;;;;;;;-1:-1:-1;23907:316:0;;;;;:::i;:::-;;:::i;19963:149::-;;;;;;;;;;-1:-1:-1;19963:149:0;;;;;:::i;:::-;;:::i;6168:244::-;;;;;;;;;;-1:-1:-1;6168:244:0;;;;;:::i;:::-;;:::i;19240:173::-;;;;;;;;;;-1:-1:-1;19240:173:0;;;;;:::i;:::-;;:::i;19042:190::-;;;;;;;;;;-1:-1:-1;19042:190:0;;;;;:::i;:::-;;:::i;16670:83::-;16707:13;16740:5;16733:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16670:83;:::o;17501:161::-;17576:4;17593:39;1988:10;17616:7;17625:6;17593:8;:39::i;:::-;-1:-1:-1;17650:4:0;17501:161;;;;:::o;22931:480::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;;;;;;;;;23082:16:::1;::::0;-1:-1:-1;;;23082:16:0;::::1;;;23081:17;23073:62;;;::::0;-1:-1:-1;;;23073:62:0;;6458:2:1;23073:62:0::1;::::0;::::1;6440:21:1::0;;;6477:18;;;6470:30;6536:34;6516:18;;;6509:62;6588:18;;23073:62:0::1;6256:356:1::0;23073:62:0::1;23279:4;23234:24;17143:16:::0;;;:7;:16;;;;;;;23363:3:::1;23317:45;23334:28:::0;17143:16;23317:45:::1;:::i;:::-;:49;;;;:::i;:::-;23296:70;;23377:26;23392:10;23377:14;:26::i;:::-;23016:395;;22931:480:::0;:::o;17670:313::-;17768:4;17785:36;17795:6;17803:9;17814:6;17785:9;:36::i;:::-;17832:121;17841:6;1988:10;17863:89;17901:6;17863:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17863:19:0;;;;;;:11;:19;;;;;;;;1988:10;17863:33;;;;;;;;;;:37;:89::i;:::-;17832:8;:121::i;:::-;-1:-1:-1;17971:4:0;17670:313;;;;;:::o;18500:111::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18570:26:0::1;;::::0;;;:17:::1;:26;::::0;;;;:33;;-1:-1:-1;;18570:33:0::1;18599:4;18570:33;::::0;;18500:111::o;17991:218::-;1988:10;18079:4;18128:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18128:34:0;;;;;;;;;;18079:4;;18096:83;;18119:7;;18128:50;;18167:10;18128:38;:50::i;18623:114::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18695:26:0::1;18724:5;18695:26:::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;18695:34:0::1;::::0;;18623:114::o;24437:104::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;24510:13:::1;:23:::0;;-1:-1:-1;;;;;;24510:23:0::1;-1:-1:-1::0;;;;;24510:23:0;;;::::1;::::0;;;::::1;::::0;;24437:104::o;6012:148::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;6119:1:::1;6103:6:::0;;6082:40:::1;::::0;-1:-1:-1;;;;;6103:6:0;;::::1;::::0;6082:40:::1;::::0;6119:1;;6082:40:::1;6150:1;6133:19:::0;;-1:-1:-1;;;;;;6133:19:0::1;::::0;;6012:148::o;19421:161::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;19538:11:::1;:36:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;19538:36:0;;::::1;::::0;;;::::1;::::0;;19421:161::o;16761:87::-;16800:13;16833:7;16826:14;;;;;:::i;18217:269::-;18310:4;18327:129;1988:10;18350:7;18359:96;18398:15;18359:96;;;;;;;;;;;;;;;;;1988:10;18359:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18359:34:0;;;;;;;;;;;;:38;:96::i;17175:167::-;17253:4;17270:42;1988:10;17294:9;17305:6;17270:9;:42::i;19674:118::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;19756:12:::1;:28:::0;;;::::1;;-1:-1:-1::0;;;19756:28:0::1;-1:-1:-1::0;;;;19756:28:0;;::::1;::::0;;;::::1;::::0;;19674:118::o;24234:191::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;24386:15:::1;:31:::0;;-1:-1:-1;;;;;;24386:31:0::1;-1:-1:-1::0;;;;;24386:31:0;;;::::1;::::0;;;::::1;::::0;;24234:191::o;19801:154::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;19942:5:::1;19922:19;19914:7;;:27;;;;:::i;:::-;:33;;;;:::i;:::-;19889:22;:58:::0;-1:-1:-1;19801:154:0:o;18751:279::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;18901:14:::1;::::0;18864:32:::1;18881:15:::0;18864:14;:32:::1;:::i;:::-;18863:52;;18855:81;;;::::0;-1:-1:-1;;;18855:81:0;;5752:2:1;18855:81:0::1;::::0;::::1;5734:21:1::0;5791:2;5771:18;;;5764:30;-1:-1:-1;;;5810:18:1;;;5803:46;5866:18;;18855:81:0::1;5550:340:1::0;18855:81:0::1;18947:14;:32:::0;18990:13:::1;:30:::0;18751:279::o;23907:316::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;23992:32:::1;24046:9;23992:64;;24101:13;-1:-1:-1::0;;;;;24101:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24083:53:0::1;;24145:4;24152:13;-1:-1:-1::0;;;;;24152:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24083:90;::::0;-1:-1:-1;;;;;;24083:90:0::1;::::0;;;;;;-1:-1:-1;;;;;3608:15:1;;;24083:90:0::1;::::0;::::1;3590:34:1::0;3660:15;;3640:18;;;3633:43;3525:18;;24083:90:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24067:13;:106:::0;;-1:-1:-1;;;;;24067:106:0;;::::1;-1:-1:-1::0;;;;;;24067:106:0;;::::1;;::::0;;;24184:15:::1;:31:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;23907:316:0:o;19963:149::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;20099:5:::1;20081:17;20073:7;;:25;;;;:::i;:::-;:31;;;;:::i;:::-;20054:16;:50:::0;-1:-1:-1;19963:149:0:o;6168:244::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6257:22:0;::::1;6249:73;;;::::0;-1:-1:-1;;;6249:73:0;;4918:2:1;6249:73:0::1;::::0;::::1;4900:21:1::0;4957:2;4937:18;;;4930:30;4996:34;4976:18;;;4969:62;-1:-1:-1;;;5047:18:1;;;5040:36;5093:19;;6249:73:0::1;4716:402:1::0;6249:73:0::1;6359:6;::::0;;6338:38:::1;::::0;-1:-1:-1;;;;;6338:38:0;;::::1;::::0;6359:6;::::1;::::0;6338:38:::1;::::0;::::1;6387:6;:17:::0;;-1:-1:-1;;;;;;6387:17:0::1;-1:-1:-1::0;;;;;6387:17:0;;;::::1;::::0;;;::::1;::::0;;6168:244::o;19240:173::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;19325:17:::1;:26:::0;;-1:-1:-1;;;;;19325:26:0;;::::1;-1:-1:-1::0;;;;;;19325:26:0;;::::1;::::0;::::1;::::0;;:17:::1;19362:36:::0;;;:17:::1;:36;::::0;;;;:43;;-1:-1:-1;;19362:43:0::1;19325:26:::0;19362:43:::1;::::0;;19240:173::o;19042:190::-;5835:7;5862:6;-1:-1:-1;;;;;5862:6:0;1988:10;5924:23;5916:68;;;;-1:-1:-1;;;5916:68:0;;;;;;;:::i;:::-;19128:21:::1;:37:::0;;;::::1;;-1:-1:-1::0;;;19128:37:0::1;-1:-1:-1::0;;;;19128:37:0;;::::1;;::::0;;19181:43:::1;::::0;::::1;::::0;::::1;::::0;19152:13;3852:14:1;3845:22;3827:41;;3815:2;3800:18;;3687:187;19181:43:0::1;;;;;;;;19042:190:::0;:::o;1221:98::-;1279:7;1306:5;1310:1;1306;:5;:::i;:::-;1299:12;1221:98;-1:-1:-1;;;1221:98:0:o;1331:::-;1389:7;1416:5;1420:1;1416;:5;:::i;20653:266::-;-1:-1:-1;;;;;20748:19:0;;;;;;:44;;-1:-1:-1;;;;;;20771:21:0;;;;20748:44;20740:74;;;;-1:-1:-1;;;20740:74:0;;7309:2:1;20740:74:0;;;7291:21:1;7348:2;7328:18;;;7321:30;-1:-1:-1;;;7367:18:1;;;7360:47;7424:18;;20740:74:0;7107:341:1;20740:74:0;-1:-1:-1;;;;;20825:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;20877:32;;7599:25:1;;;20877:32:0;;7572:18:1;20877:32:0;;;;;;;20653:266;;;:::o;22672:249::-;15972:16;:23;;-1:-1:-1;;;;15972:23:0;-1:-1:-1;;;15972:23:0;;;22767:38:::1;22784:20:::0;22767:16:::1;:38::i;:::-;22883:17;::::0;22838:21:::1;::::0;22870:43:::1;::::0;-1:-1:-1;;;;;22883:17:0::1;22838:21:::0;22870:12:::1;:43::i;:::-;-1:-1:-1::0;;16018:16:0;:24;;-1:-1:-1;;;;16018:24:0;;;22672:249::o;20927:1607::-;5835:7;5862:6;-1:-1:-1;;;;;21065:13:0;;;5862:6;;21065:13;;;;:53;;-1:-1:-1;21101:17:0;;-1:-1:-1;;;;;21095:23:0;;;21101:17;;21095:23;;21065:53;:89;;;;-1:-1:-1;;;;;;21135:19:0;;21149:4;21135:19;;21065:89;:125;;;;-1:-1:-1;21177:13:0;;-1:-1:-1;;;;;21171:19:0;;;21177:13;;21171:19;;21065:125;:170;;;;-1:-1:-1;5835:7:0;5862:6;-1:-1:-1;;;;;21220:15:0;;;5862:6;;21220:15;;21065:170;21061:381;;;-1:-1:-1;;;;;17143:16:0;;21251:18;17143:16;;;:7;:16;;;;;;21333:22;;21309:19;21322:6;17143:16;21309:19;:::i;:::-;21308:47;;21300:140;;;;-1:-1:-1;;;21300:140:0;;6819:2:1;21300:140:0;;;6801:21:1;6858:2;6838:18;;;6831:30;6897:34;6877:18;;;6870:62;6968:34;6948:18;;;6941:62;-1:-1:-1;;;7019:19:1;;;7012:48;7077:19;;21300:140:0;6617:485:1;21300:140:0;21236:206;21061:381;5835:7;5862:6;-1:-1:-1;;;;;21458:15:0;;;5862:6;;21458:15;;;;:32;;-1:-1:-1;5835:7:0;5862:6;-1:-1:-1;;;;;21477:13:0;;;5862:6;;21477:13;;21458:32;21454:148;;;21523:16;;21513:6;:26;;21505:97;;;;-1:-1:-1;;;21505:97:0;;5325:2:1;21505:97:0;;;5307:21:1;5364:2;5344:18;;;5337:30;5403:34;5383:18;;;5376:62;5474:28;5454:18;;;5447:56;5520:19;;21505:97:0;5123:422:1;21505:97:0;21647:11;;;;;;;;21636:7;;:22;;;;:57;;-1:-1:-1;21677:16:0;;-1:-1:-1;;;21677:16:0;;;;21676:17;21636:57;:95;;;;-1:-1:-1;21718:13:0;;-1:-1:-1;;;;;21710:21:0;;;21718:13;;21710:21;;21636:95;:133;;;;-1:-1:-1;21748:21:0;;-1:-1:-1;;;21748:21:0;;;;21636:133;21619:505;;;21826:7;:11;;-1:-1:-1;;21826:11:0;;;21901:4;-1:-1:-1;17143:16:0;;;-1:-1:-1;17143:16:0;;;;;;21948;;21925:39;;21922:86;;;-1:-1:-1;21990:16:0;;21922:86;22025:24;;22022:91;;22065:36;22080:20;22065:14;:36::i;:::-;21795:329;21619:505;-1:-1:-1;;;;;22192:23:0;;22148:12;22192:23;;;:17;:23;;;;;;22163:4;;22192:23;;;:48;;-1:-1:-1;;;;;;22219:21:0;;;;;;:17;:21;;;;;;;;22192:48;:114;;;-1:-1:-1;22245:12:0;;-1:-1:-1;;;22245:12:0;;;;:37;;;;-1:-1:-1;22269:13:0;;-1:-1:-1;;;;;22261:21:0;;;22269:13;;22261:21;;22245:37;:60;;;;-1:-1:-1;22292:13:0;;-1:-1:-1;;;;;22286:19:0;;;22292:13;;22286:19;;22245:60;22189:279;;;-1:-1:-1;22332:5:0;22189:279;;;22367:13;;-1:-1:-1;;;;;22359:21:0;;;22367:13;;22359:21;22355:113;;;22394:13;;22382:9;:25;22355:113;;;22425:13;;-1:-1:-1;;;;;22419:19:0;;;22425:13;;22419:19;22415:53;;;22452:14;;22440:9;:26;22415:53;22488:38;22503:4;22508:2;22511:6;22518:7;22488:14;:38::i;:::-;21030:1504;20927:1607;;;:::o;1437:206::-;1523:7;1584:12;1576:6;;;;1568:29;;;;-1:-1:-1;;;1568:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1619:5:0;;;1437:206::o;1009:98::-;1067:7;1094:5;1098:1;1094;:5;:::i;23421:474::-;23513:16;;;23527:1;23513:16;;;;;;;;23489:21;;23513:16;;;;;;;;;;-1:-1:-1;23513:16:0;23489:40;;23558:4;23540;23545:1;23540:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23540:23:0;;;:7;;;;;;;;;;:23;;;;23584:15;;:22;;;-1:-1:-1;;;23584:22:0;;;;:15;;;;;:20;;:22;;;;;23540:7;;23584:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23574:4;23579:1;23574:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23574:32:0;;;:7;;;;;;;;;:32;23649:15;;23617:62;;23634:4;;23649:15;23667:11;23617:8;:62::i;:::-;23690:15;;:197;;-1:-1:-1;;;23690:197:0;;-1:-1:-1;;;;;23690:15:0;;;;:66;;:197;;23771:11;;23690:15;;23814:4;;23841;;23861:15;;23690:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23476:419;23421:474;:::o;22542:120::-;22627:23;;-1:-1:-1;;;;;22627:15:0;;;:23;;;;;22643:6;;22627:23;;;;22643:6;22627:15;:23;;;;;;;;;;;;;;;;;;;24551:360;24682:7;24678:107;;24705:14;:12;:14::i;:::-;24678:107;;;24760:7;:9;;;;;:7;:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;24678:107;24799:42;24815:6;24823:9;24834:6;24799:15;:42::i;:::-;24866:7;24862:41;;24888:15;20538:17;;20526:9;:29;20578:15;;20562:13;:31;20618:16;;20601:14;:33;20480:165;20132:336;20178:9;;:14;:36;;;;-1:-1:-1;20196:13:0;;:18;20178:36;:59;;;;-1:-1:-1;20218:14:0;;:19;20178:59;20175:71;;;20132:336::o;20175:71::-;20278:13;;;20260:15;:31;20322:14;;;20303:16;:33;20368:9;;;20348:17;:29;-1:-1:-1;20388:17:0;;;;20416:18;;;;20445:13;20132:336::o;24919:424::-;25016:23;25041:12;25057:19;25068:7;25057:10;:19::i;:::-;-1:-1:-1;;;;;25105:15:0;;;;;;:7;:15;;;;;;25015:61;;-1:-1:-1;25015:61:0;-1:-1:-1;25105:28:0;;25125:7;25105:19;:28::i;:::-;-1:-1:-1;;;;;25087:15:0;;;;;;;:7;:15;;;;;;:46;;;;25165:18;;;;;;;:39;;25188:15;25165:22;:39::i;:::-;-1:-1:-1;;;;;25144:18:0;;;;;;:7;:18;;;;;;:60;;;;25256:4;25240:22;;;;:32;;25267:4;25240:26;:32::i;:::-;25231:4;25215:22;;;;:7;:22;;;;;;;;;:57;;;;25291:44;7599:25:1;;;-1:-1:-1;;;;;25291:44:0;;;;;;;;;;7572:18:1;25291:44:0;;;;;;;25004:339;;24919:424;;;:::o;25351:227::-;25410:7;25419;25439:12;25472:3;25462:9;;25454:7;:17;;;;:::i;:::-;:21;;;;:::i;:::-;25439:36;-1:-1:-1;25486:23:0;25512:17;:7;25439:36;25512:11;:17::i;:::-;25486:43;25565:4;;-1:-1:-1;25351:227:0;;-1:-1:-1;;;25351:227:0:o;1115:98::-;1173:7;1200:5;1204:1;1200;:5;:::i;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:52;;;405:1;402;395:12;357:52;437:9;431:16;456:31;481:5;456:31;:::i;782:388::-;850:6;858;911:2;899:9;890:7;886:23;882:32;879:52;;;927:1;924;917:12;879:52;966:9;953:23;985:31;1010:5;985:31;:::i;:::-;1035:5;-1:-1:-1;1092:2:1;1077:18;;1064:32;1105:33;1064:32;1105:33;:::i;:::-;1157:7;1147:17;;;782:388;;;;;:::o;1175:456::-;1252:6;1260;1268;1321:2;1309:9;1300:7;1296:23;1292:32;1289:52;;;1337:1;1334;1327:12;1289:52;1376:9;1363:23;1395:31;1420:5;1395:31;:::i;:::-;1445:5;-1:-1:-1;1502:2:1;1487:18;;1474:32;1515:33;1474:32;1515:33;:::i;:::-;1175:456;;1567:7;;-1:-1:-1;;;1621:2:1;1606:18;;;;1593:32;;1175:456::o;1636:315::-;1704:6;1712;1765:2;1753:9;1744:7;1740:23;1736:32;1733:52;;;1781:1;1778;1771:12;1733:52;1820:9;1807:23;1839:31;1864:5;1839:31;:::i;:::-;1889:5;1941:2;1926:18;;;;1913:32;;-1:-1:-1;;;1636:315:1:o;1956:273::-;2012:6;2065:2;2053:9;2044:7;2040:23;2036:32;2033:52;;;2081:1;2078;2071:12;2033:52;2120:9;2107:23;2173:5;2166:13;2159:21;2152:5;2149:32;2139:60;;2195:1;2192;2185:12;2234:180;2293:6;2346:2;2334:9;2325:7;2321:23;2317:32;2314:52;;;2362:1;2359;2352:12;2314:52;-1:-1:-1;2385:23:1;;2234:180;-1:-1:-1;2234:180:1:o;2419:248::-;2487:6;2495;2548:2;2536:9;2527:7;2523:23;2519:32;2516:52;;;2564:1;2561;2554:12;2516:52;-1:-1:-1;;2587:23:1;;;2657:2;2642:18;;;2629:32;;-1:-1:-1;2419:248:1:o;2672:269::-;2729:6;2782:2;2770:9;2761:7;2757:23;2753:32;2750:52;;;2798:1;2795;2788:12;2750:52;2837:9;2824:23;2887:4;2880:5;2876:16;2869:5;2866:27;2856:55;;2907:1;2904;2897:12;4114:597;4226:4;4255:2;4284;4273:9;4266:21;4316:6;4310:13;4359:6;4354:2;4343:9;4339:18;4332:34;4384:1;4394:140;4408:6;4405:1;4402:13;4394:140;;;4503:14;;;4499:23;;4493:30;4469:17;;;4488:2;4465:26;4458:66;4423:10;;4394:140;;;4552:6;4549:1;4546:13;4543:91;;;4622:1;4617:2;4608:6;4597:9;4593:22;4589:31;4582:42;4543:91;-1:-1:-1;4695:2:1;4674:15;-1:-1:-1;;4670:29:1;4655:45;;;;4702:2;4651:54;;4114:597;-1:-1:-1;;;4114:597:1:o;5895:356::-;6097:2;6079:21;;;6116:18;;;6109:30;6175:34;6170:2;6155:18;;6148:62;6242:2;6227:18;;5895:356::o;7635:980::-;7897:4;7945:3;7934:9;7930:19;7976:6;7965:9;7958:25;8002:2;8040:6;8035:2;8024:9;8020:18;8013:34;8083:3;8078:2;8067:9;8063:18;8056:31;8107:6;8142;8136:13;8173:6;8165;8158:22;8211:3;8200:9;8196:19;8189:26;;8250:2;8242:6;8238:15;8224:29;;8271:1;8281:195;8295:6;8292:1;8289:13;8281:195;;;8360:13;;-1:-1:-1;;;;;8356:39:1;8344:52;;8451:15;;;;8416:12;;;;8392:1;8310:9;8281:195;;;-1:-1:-1;;;;;;;8532:32:1;;;;8527:2;8512:18;;8505:60;-1:-1:-1;;;8596:3:1;8581:19;8574:35;8493:3;7635:980;-1:-1:-1;;;7635:980:1:o;8809:128::-;8849:3;8880:1;8876:6;8873:1;8870:13;8867:39;;;8886:18;;:::i;:::-;-1:-1:-1;8922:9:1;;8809:128::o;8942:217::-;8982:1;9008;8998:132;;9052:10;9047:3;9043:20;9040:1;9033:31;9087:4;9084:1;9077:15;9115:4;9112:1;9105:15;8998:132;-1:-1:-1;9144:9:1;;8942:217::o;9164:168::-;9204:7;9270:1;9266;9262:6;9258:14;9255:1;9252:21;9247:1;9240:9;9233:17;9229:45;9226:71;;;9277:18;;:::i;:::-;-1:-1:-1;9317:9:1;;9164:168::o;9337:125::-;9377:4;9405:1;9402;9399:8;9396:34;;;9410:18;;:::i;:::-;-1:-1:-1;9447:9:1;;9337:125::o;9467:380::-;9546:1;9542:12;;;;9589;;;9610:61;;9664:4;9656:6;9652:17;9642:27;;9610:61;9717:2;9709:6;9706:14;9686:18;9683:38;9680:161;;;9763:10;9758:3;9754:20;9751:1;9744:31;9798:4;9795:1;9788:15;9826:4;9823:1;9816:15;9680:161;;9467:380;;;:::o;9852:175::-;9889:3;9933:4;9926:5;9922:16;9962:4;9953:7;9950:17;9947:43;;;9970:18;;:::i;:::-;10019:1;10006:15;;9852:175;-1:-1:-1;;9852:175:1:o;10032:127::-;10093:10;10088:3;10084:20;10081:1;10074:31;10124:4;10121:1;10114:15;10148:4;10145:1;10138:15;10164:127;10225:10;10220:3;10216:20;10213:1;10206:31;10256:4;10253:1;10246:15;10280:4;10277:1;10270:15;10428:131;-1:-1:-1;;;;;10503:31:1;;10493:42;;10483:70;;10549:1;10546;10539:12;10483:70;10428:131;:::o

Swarm Source

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