ETH Price: $3,278.05 (-1.86%)

Token

Biden Wif Hat (BHAT)
 

Overview

Max Total Supply

1,000,000,000 BHAT

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
9,853,063.529316314474622492 BHAT

Value
$0.00
0xb35ecaf1bb28894a3cd122667c028335043da060
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:
BWH

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-13
*/

/*

https://bidenwifhat.net/
https://X.com/bidenwifhatERC
https://t.me/BidenWifHatPortal

*/

// SPDX-License-Identifier: NONE

pragma solidity ^0.8.26;

abstract contract Context {
    
    function _msgSender() internal view virtual returns (address payable) {return payable(msg.sender);}
    function _msgData() internal view virtual returns (bytes memory) {this;return msg.data;}
}

contract Ownable is Context {
    address public _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

    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;
    }
}
interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface UniswapFactory {function createPair(address tokenA, address tokenB) external returns (address pair);}
interface InterfaceLP {function sync() external;}
interface UniswapRouter {
    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 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 BWH is Ownable, ERC20 {
    string constant _name = "Biden Wif Hat";
    string constant _symbol = "BHAT";
    uint8 constant _decimals = 18; 
    using SafeMath for uint256;

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    
    uint256 _totalSupply = 1 * 10**9 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply.mul(15).div(1000);
    uint256 public _maxWalletToken = _totalSupply.mul(15).div(1000);

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

    bool public IssniperMode = true;
    mapping (address => bool) public isIssnipered;

    bool public liveMode = false;
    mapping (address => bool) public isliveed;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 private liquidityFee    = 15;
    uint256 private marketingFee    = 5;
    uint256 private devFee          = 5;
    uint256 private teamFee         = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee        = teamFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 400; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;

    uint256 targetLiquidity = 5;
    uint256 targetLiquidityDenominator = 100;

    UniswapRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false;    

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 75 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () {
        router = UniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = UniswapFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
        
        _allowances[address(this)][address(router)] = type(uint256).max;
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x882C9F36Da85e8dfc12C0E0A4B1Aa5F505449A5E;
        devFeeReceiver = msg.sender;
        teamFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 
        isFeeExempt[msg.sender] = true;
        isFeeExempt[devFeeReceiver] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isliveed[msg.sender] = true;    
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[devFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) {return owner();}
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function openTrading() public onlyOwner {TradingOpen = true;}
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");}
        return _transferFrom(sender, recipient, amount);
    }

    function updateMaxWallet(uint256 maxWallPercent) public {
        require(isliveed[msg.sender]);
        require(_maxWalletToken >= _totalSupply / 1000); //no less than .1%
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
                
    }

    function updateMaxTransaction(uint256 maxTXPercent) public {
        require(isliveed[msg.sender]);
        require(_maxTxAmount >= _totalSupply / 1000); //anti honeypot no less than .1%
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

    
    function setTxLimitAbsolute(uint256 amount) external onlyOwner {
        require(_maxTxAmount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");

        if(liveMode){
                require(isliveed[recipient],"Not Whitelisted"); 
           }
        }
                      
        if(IssniperMode){
            require(!isIssnipered[sender],"Issnipered");    
        }

        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        checkTxLimit(sender, amount); 

        if(shouldSwapBack()){ swapBack(); }
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        if(burnTokens > 0){
            emit Transfer(sender, burnFeeReceiver, burnTokens);    
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner { // to marketing
        uint256 amountETH = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) public returns (bool) {
        require(isliveed[msg.sender]);
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function updateMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
      
    }
 
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uint256 balanceBefore = address(this).balance;
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
       
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function enable_Issniper(bool _status) public onlyOwner {
        IssniperMode = _status;
    }

    function enable_live(bool _status) public onlyOwner {
        liveMode = _status;

    }

    function manage_Issniper(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isIssnipered[addresses[i]] = status;
        }
    }

    function manage_live(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isliveed[addresses[i]] = status;
        }
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setFees(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%"); //antihoneypot
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"IssniperMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_Issniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_live","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isIssnipered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isliveed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liveMode","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_Issniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_live","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract UniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimitAbsolute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"updateMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"updateMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead179091556004805490911690556100306012600a610696565b61003e90633b9aca006106a4565b600581905561005c906103e89061005690600f610497565b90610523565b600655600554610075906103e89061005690600f610497565b600755600a805460ff19908116600117909155600c80549091169055600f60108190556005601181905560128190555f60138190556014819055916100ba82846106bb565b6100c491906106bb565b6100ce91906106bb565b6100d891906106bb565b60155560646016819055601781905560188190556101906019556005601f8190556020919091556023805461ffff60a01b1916600160a81b179055546103e89061012390604b6106a4565b61012d91906106ce565b60245534801561013b575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156101f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021b91906106ed565b600280546001600160a01b0319166001600160a01b039283161790556021546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015610277573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029b91906106ed565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af11580156102e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030d91906106ed565b602380546001600160a01b039283166001600160a01b0319918216811783556022805483169091179055305f8181526009602090815260408083206021548816845282528083205f199055601a8054861633908117909155601b8054871673882c9f36da85e8dfc12c0e0a4b1aa5f505449a5e178155601c8054881683178155601d8054891684179055600354601e8054909916908b1617909755818552600e8452828520805460ff19908116600190811790925588548b168752848720805482168317905582548b1687528487208054821683179055838752600d86528487208054821683179055600f8652848720805482168317905598548a16865283862080548a16821790559654891685528285208054891688179055549097168352808320805487168617905592825282822080549095169093179093556005548484526008909252808320829055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9161048a9190815260200190565b60405180910390a3610748565b5f825f036104a657505f61051d565b5f6104b183856106a4565b9050826104be85836106ce565b1461051a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f61051a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061056a60201b60201c565b5f818361058a5760405162461bcd60e51b81526004016105119190610713565b505f61059684866106ce565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156105ee578085048111156105d2576105d261059f565b60018416156105e057908102905b60019390931c9280026105b7565b935093915050565b5f826106045750600161051d565b8161061057505f61051d565b816001811461062657600281146106305761064c565b600191505061051d565b60ff8411156106415761064161059f565b50506001821b61051d565b5060208310610133831016604e8410600b841016171561066f575081810a61051d565b61067b5f1984846105b3565b805f190482111561068e5761068e61059f565b029392505050565b5f61051a60ff8416836105f6565b808202811582820484141761051d5761051d61059f565b8082018082111561051d5761051d61059f565b5f826106e857634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156106fd575f80fd5b81516001600160a01b038116811461051a575f80fd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b61233b806107555f395ff3fe608060405260043610610278575f3560e01c806377b54bad1161014a578063b2bdfa7b116100be578063dcd2e64511610078578063dcd2e6451461078a578063dd62ed3e146107a9578063df20fd49146107ed578063f2fde38b1461080c578063f84ba65d1461082b578063f887ea401461084a575f80fd5b8063b2bdfa7b146106be578063b7593ad9146106dc578063bdcf84e01461070a578063c9567bf914610729578063cf55fea91461073d578063d51ed1c81461076b575f80fd5b8063893d20e81161010f578063893d20e8146105ef5780638da5cb5b1461061f578063900ba33b1461063b57806395d89b4114610654578063a8aa1b3114610680578063a9059cbb1461069f575f80fd5b806377b54bad1461056857806378109e54146105875780637d1db4a51461059c57806383f9d9fa146105b157806386f6c3c1146105d0575f80fd5b8063201e7991116101ec578063571ac8b0116101a6578063571ac8b0146104a35780635e04e4f8146104c2578063658d4b7f146104e15780636ddd17131461050057806370a0823114610520578063715018a614610554575f80fd5b8063201e7991146103f8578063202214701461041757806323b872dd146104365780632b112e4914610455578063313ce567146104695780634f85a0c514610484575f80fd5b80630a8c98261161023d5780630a8c9826146103595780631161ae391461037257806318160ddd146103915780631c499ab0146103a55780631da1db5e146103c45780631df4ccfc146103e3575f80fd5b80630445b667146102835780630517d13d146102ab57806306fdde03146102cc57806308fd3d051461030a578063095ea7b31461033a575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b5061029860245481565b6040519081526020015b60405180910390f35b3480156102b6575f80fd5b506102ca6102c5366004611ec6565b610869565b005b3480156102d7575f80fd5b5060408051808201909152600d81526c109a59195b8815da598812185d609a1b60208201525b6040516102a29190611edd565b348015610315575f80fd5b5060235461032a90600160a01b900460ff1681565b60405190151581526020016102a2565b348015610345575f80fd5b5061032a610354366004611f2d565b6108c1565b348015610364575f80fd5b50600a5461032a9060ff1681565b34801561037d575f80fd5b5061032a61038c366004611f55565b61092d565b34801561039c575f80fd5b50600554610298565b3480156103b0575f80fd5b506102ca6103bf366004611ec6565b610940565b3480156103cf575f80fd5b506102ca6103de366004611ec6565b610997565b3480156103ee575f80fd5b5061029860155481565b348015610403575f80fd5b506102ca610412366004611f55565b610a1a565b348015610422575f80fd5b506102ca610431366004611f85565b610a4e565b348015610441575f80fd5b5061032a610450366004611fa0565b610a8a565b348015610460575f80fd5b50610298610b48565b348015610474575f80fd5b50604051601281526020016102a2565b34801561048f575f80fd5b506102ca61049e366004611fda565b610b98565b3480156104ae575f80fd5b5061032a6104bd36600461205c565b610c2b565b3480156104cd575f80fd5b506102ca6104dc366004611f85565b610c37565b3480156104ec575f80fd5b506102ca6104fb366004612075565b610c73565b34801561050b575f80fd5b5060235461032a90600160a81b900460ff1681565b34801561052b575f80fd5b5061029861053a36600461205c565b6001600160a01b03165f9081526008602052604090205490565b34801561055f575f80fd5b506102ca610cc6565b348015610573575f80fd5b5061032a610582366004611f2d565b610d37565b348015610592575f80fd5b5061029860075481565b3480156105a7575f80fd5b5061029860065481565b3480156105bc575f80fd5b506102ca6105cb366004611ec6565b610e2f565b3480156105db575f80fd5b506102ca6105ea3660046120aa565b610e7a565b3480156105fa575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016102a2565b34801561062a575f80fd5b505f546001600160a01b0316610607565b348015610646575f80fd5b50600c5461032a9060ff1681565b34801561065f575f80fd5b506040805180820190915260048152631092105560e21b60208201526102fd565b34801561068b575f80fd5b50602354610607906001600160a01b031681565b3480156106aa575f80fd5b5061032a6106b9366004611f2d565b610f3f565b3480156106c9575f80fd5b505f54610607906001600160a01b031681565b3480156106e7575f80fd5b5061032a6106f636600461205c565b600d6020525f908152604090205460ff1681565b348015610715575f80fd5b506102ca6107243660046120e9565b610f4b565b348015610734575f80fd5b506102ca610f85565b348015610748575f80fd5b5061032a61075736600461205c565b600b6020525f908152604090205460ff1681565b348015610776575f80fd5b50610298610785366004611ec6565b610fc3565b348015610795575f80fd5b506102ca6107a4366004611fda565b611008565b3480156107b4575f80fd5b506102986107c3366004612112565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b3480156107f8575f80fd5b506102ca610807366004612143565b611095565b348015610817575f80fd5b506102ca61082636600461205c565b6110e0565b348015610836575f80fd5b506102ca610845366004612075565b6111c7565b348015610855575f80fd5b50602154610607906001600160a01b031681565b335f908152600d602052604090205460ff16610883575f80fd5b6103e86005546108939190612173565b60065410156108a0575f80fd5b6103e8816005546108b19190612192565b6108bb9190612173565b60065550565b335f8181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061091b9086815260200190565b60405180910390a35060015b92915050565b5f8261093883610fc3565b119392505050565b335f908152600d602052604090205460ff1661095a575f80fd5b6103e860055461096a9190612173565b6007541015610977575f80fd5b6064816005546109879190612192565b6109919190612173565b60075550565b5f546001600160a01b031633146109c95760405162461bcd60e51b81526004016109c0906121a9565b60405180910390fd5b601b5447906001600160a01b03166108fc60646109e68585612192565b6109f09190612173565b6040518115909202915f818181858888f19350505050158015610a15573d5f803e3d5ffd5b505050565b5f546001600160a01b03163314610a435760405162461bcd60e51b81526004016109c0906121a9565b601f91909155602055565b5f546001600160a01b03163314610a775760405162461bcd60e51b81526004016109c0906121a9565b600a805460ff1916911515919091179055565b6001600160a01b0383165f9081526009602090815260408083203384529091528120545f1914610b33576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600982528381203382529091529190912054610b0f91849061121a565b6001600160a01b0385165f9081526009602090815260408083203384529091529020555b610b3e848484611252565b90505b9392505050565b6004546001600160a01b03165f90815260086020526040812054610b93906003546001600160a01b03165f90815260086020526040902054610b8d9060055490611670565b90611670565b905090565b5f546001600160a01b03163314610bc15760405162461bcd60e51b81526004016109c0906121a9565b5f5b82811015610c255781600d5f868685818110610be157610be16121de565b9050602002016020810190610bf6919061205c565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610bc3565b50505050565b5f610927825f196108c1565b5f546001600160a01b03163314610c605760405162461bcd60e51b81526004016109c0906121a9565b600c805460ff1916911515919091179055565b5f546001600160a01b03163314610c9c5760405162461bcd60e51b81526004016109c0906121a9565b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610cef5760405162461bcd60e51b81526004016109c0906121a9565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b335f908152600d602052604081205460ff16610d51575f80fd5b815f03610dc1576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dbe91906121f2565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610e0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b419190612209565b5f546001600160a01b03163314610e585760405162461bcd60e51b81526004016109c0906121a9565b6103e8600554610e689190612173565b6006541015610e75575f80fd5b600655565b5f546001600160a01b03163314610ea35760405162461bcd60e51b81526004016109c0906121a9565b60108690556013859055601184905560128390556014829055610ed482610ece858188818c8c6116b1565b906116b1565b6015556016819055610ee7600282612173565b60155410610f375760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016109c0565b505050505050565b5f610b41338484611252565b5f546001600160a01b03163314610f745760405162461bcd60e51b81526004016109c0906121a9565b601791909155601891909155601955565b5f546001600160a01b03163314610fae5760405162461bcd60e51b81526004016109c0906121a9565b6023805460ff60a01b1916600160a01b179055565b5f610927610fcf610b48565b6023546001600160a01b03165f9081526008602052604090205461100290610ffb906002905b9061170f565b859061170f565b9061178d565b5f546001600160a01b031633146110315760405162461bcd60e51b81526004016109c0906121a9565b5f5b82811015610c255781600b5f868685818110611051576110516121de565b9050602002016020810190611066919061205c565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611033565b5f546001600160a01b031633146110be5760405162461bcd60e51b81526004016109c0906121a9565b60238054921515600160a81b0260ff60a81b1990931692909217909155602455565b5f546001600160a01b031633146111095760405162461bcd60e51b81526004016109c0906121a9565b6001600160a01b03811661116e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109c0565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146111f05760405162461bcd60e51b81526004016109c0906121a9565b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b5f818484111561123d5760405162461bcd60e51b81526004016109c09190611edd565b505f6112498486612224565b95945050505050565b6025545f9060ff16156112715761126a8484846117ce565b9050610b41565b6001600160a01b0384165f9081526001602052604090205460ff161580156112b157506001600160a01b0383165f9081526001602052604090205460ff16155b1561136a57602354600160a01b900460ff166113065760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109c0565b600c5460ff161561136a576001600160a01b0383165f908152600d602052604090205460ff1661136a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b60448201526064016109c0565b600a5460ff16156113ca576001600160a01b0384165f908152600b602052604090205460ff16156113ca5760405162461bcd60e51b815260206004820152600a602482015269125cdcdb9a5c195c995960b21b60448201526064016109c0565b6001600160a01b0384165f9081526001602052604090205460ff161580156113fb57506001600160a01b0383163014155b801561141557506003546001600160a01b03848116911614155b801561142f57506023546001600160a01b03848116911614155b80156114495750601e546001600160a01b03848116911614155b80156114635750601b546001600160a01b03848116911614155b801561148757506001600160a01b0383165f908152600f602052604090205460ff16155b15611527576001600160a01b0383165f908152600860205260409020546007546114b18483612237565b11156115255760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109c0565b505b611531848361189e565b61153961190a565b156115465761154661195e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f9081526008909152919091205461159791849061121a565b6001600160a01b0385165f90815260086020908152604080832093909355600e90529081205460ff16806115e257506001600160a01b0384165f908152600e602052604090205460ff165b6115f6576115f1858486611d26565b6115f8565b825b6001600160a01b0385165f9081526008602052604090205490915061161d90826116b1565b6001600160a01b038086165f8181526008602052604090819020939093559151908716905f805160206122e68339815191529061165d9085815260200190565b60405180910390a3506001949350505050565b5f610b4183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061121a565b5f806116bd8385612237565b905083811015610b415760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109c0565b5f825f0361171e57505f610927565b5f6117298385612192565b9050826117368583612173565b14610b415760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109c0565b5f610b4183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e9a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260089091529182205461181e91849061121a565b6001600160a01b038086165f90815260086020526040808220939093559085168152205461184c90836116b1565b6001600160a01b038085165f8181526008602052604090819020939093559151908616905f805160206122e68339815191529061188c9086815260200190565b60405180910390a35060019392505050565b600654811115806118c657506001600160a01b0382165f908152600f602052604090205460ff165b6119065760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109c0565b5050565b6023545f906001600160a01b0316331480159061192a575060255460ff16155b801561193f5750602354600160a81b900460ff165b8015610b93575050602454305f90815260086020526040902054101590565b6025805460ff19166001179055601f546020545f9161197c9161092d565b6119885760105461198a565b5f5b90505f6119ad60026110026015546110028660245461170f90919063ffffffff16565b90505f6119c58260245461167090919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106119fd576119fd6121de565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a2e57611a2e6121de565b6001600160a01b03928316602091820292909201015260215460405163791ac94760e01b81524792919091169063791ac94790611a779086905f9087903090429060040161224a565b5f604051808303815f87803b158015611a8e575f80fd5b505af1158015611aa0573d5f803e3d5ffd5b505050505f611ab8824761167090919063ffffffff16565b90505f611ad2611ac988600261178d565b60155490611670565b90505f611ae660026110028481878d61170f565b90505f611b02836110026011548761170f90919063ffffffff16565b90505f611b1e846110026013548861170f90919063ffffffff16565b90505f611b3a856110026012548961170f90919063ffffffff16565b601b546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611b89576040519150601f19603f3d011682016040523d82523d5f602084013e611b8e565b606091505b5050601c546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611bdb576040519150601f19603f3d011682016040523d82523d5f602084013e611be0565b606091505b5050601d546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611c2d576040519150601f19603f3d011682016040523d82523d5f602084013e611c32565b606091505b505f9250508b159050611d0e57602154601a5460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611cac573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611cd191906122ba565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff1916905550505050505050505050565b6019546023545f91906001600160a01b0390811690841603611d4b5750601754611d66565b6023546001600160a01b0390811690861603611d6657506018545b5f611d926016546064611d799190612192565b61100284610ff56015548a61170f90919063ffffffff16565b90505f611db06015546110026014548561170f90919063ffffffff16565b90505f611dbd8383611670565b305f90815260086020526040902054909150611dd990826116b1565b305f9081526008602052604080822092909255601e546001600160a01b031681522054611e0690836116b1565b601e546001600160a01b039081165f9081526008602090815260409182902093909355518381523092918b16915f805160206122e6833981519152910160405180910390a38115611e8457601e546040518381526001600160a01b03918216918a16905f805160206122e68339815191529060200160405180910390a35b611e8e8784611670565b98975050505050505050565b5f8183611eba5760405162461bcd60e51b81526004016109c09190611edd565b505f6112498486612173565b5f60208284031215611ed6575f80fd5b5035919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611f28575f80fd5b919050565b5f8060408385031215611f3e575f80fd5b611f4783611f12565b946020939093013593505050565b5f8060408385031215611f66575f80fd5b50508035926020909101359150565b8015158114611f82575f80fd5b50565b5f60208284031215611f95575f80fd5b8135610b4181611f75565b5f805f60608486031215611fb2575f80fd5b611fbb84611f12565b9250611fc960208501611f12565b929592945050506040919091013590565b5f805f60408486031215611fec575f80fd5b833567ffffffffffffffff811115612002575f80fd5b8401601f81018613612012575f80fd5b803567ffffffffffffffff811115612028575f80fd5b8660208260051b840101111561203c575f80fd5b60209182019450925084013561205181611f75565b809150509250925092565b5f6020828403121561206c575f80fd5b610b4182611f12565b5f8060408385031215612086575f80fd5b61208f83611f12565b9150602083013561209f81611f75565b809150509250929050565b5f805f805f8060c087890312156120bf575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f606084860312156120fb575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215612123575f80fd5b61212c83611f12565b915061213a60208401611f12565b90509250929050565b5f8060408385031215612154575f80fd5b8235611f4781611f75565b634e487b7160e01b5f52601160045260245ffd5b5f8261218d57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176109275761092761215f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612202575f80fd5b5051919050565b5f60208284031215612219575f80fd5b8151610b4181611f75565b818103818111156109275761092761215f565b808201808211156109275761092761215f565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561229a5783516001600160a01b0316835260209384019390920191600101612273565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f606084860312156122cc575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b5dde35bc1df44606218328a2d022c3f0ec62df934a4069defd13df5fa0f951464736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610278575f3560e01c806377b54bad1161014a578063b2bdfa7b116100be578063dcd2e64511610078578063dcd2e6451461078a578063dd62ed3e146107a9578063df20fd49146107ed578063f2fde38b1461080c578063f84ba65d1461082b578063f887ea401461084a575f80fd5b8063b2bdfa7b146106be578063b7593ad9146106dc578063bdcf84e01461070a578063c9567bf914610729578063cf55fea91461073d578063d51ed1c81461076b575f80fd5b8063893d20e81161010f578063893d20e8146105ef5780638da5cb5b1461061f578063900ba33b1461063b57806395d89b4114610654578063a8aa1b3114610680578063a9059cbb1461069f575f80fd5b806377b54bad1461056857806378109e54146105875780637d1db4a51461059c57806383f9d9fa146105b157806386f6c3c1146105d0575f80fd5b8063201e7991116101ec578063571ac8b0116101a6578063571ac8b0146104a35780635e04e4f8146104c2578063658d4b7f146104e15780636ddd17131461050057806370a0823114610520578063715018a614610554575f80fd5b8063201e7991146103f8578063202214701461041757806323b872dd146104365780632b112e4914610455578063313ce567146104695780634f85a0c514610484575f80fd5b80630a8c98261161023d5780630a8c9826146103595780631161ae391461037257806318160ddd146103915780631c499ab0146103a55780631da1db5e146103c45780631df4ccfc146103e3575f80fd5b80630445b667146102835780630517d13d146102ab57806306fdde03146102cc57806308fd3d051461030a578063095ea7b31461033a575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b5061029860245481565b6040519081526020015b60405180910390f35b3480156102b6575f80fd5b506102ca6102c5366004611ec6565b610869565b005b3480156102d7575f80fd5b5060408051808201909152600d81526c109a59195b8815da598812185d609a1b60208201525b6040516102a29190611edd565b348015610315575f80fd5b5060235461032a90600160a01b900460ff1681565b60405190151581526020016102a2565b348015610345575f80fd5b5061032a610354366004611f2d565b6108c1565b348015610364575f80fd5b50600a5461032a9060ff1681565b34801561037d575f80fd5b5061032a61038c366004611f55565b61092d565b34801561039c575f80fd5b50600554610298565b3480156103b0575f80fd5b506102ca6103bf366004611ec6565b610940565b3480156103cf575f80fd5b506102ca6103de366004611ec6565b610997565b3480156103ee575f80fd5b5061029860155481565b348015610403575f80fd5b506102ca610412366004611f55565b610a1a565b348015610422575f80fd5b506102ca610431366004611f85565b610a4e565b348015610441575f80fd5b5061032a610450366004611fa0565b610a8a565b348015610460575f80fd5b50610298610b48565b348015610474575f80fd5b50604051601281526020016102a2565b34801561048f575f80fd5b506102ca61049e366004611fda565b610b98565b3480156104ae575f80fd5b5061032a6104bd36600461205c565b610c2b565b3480156104cd575f80fd5b506102ca6104dc366004611f85565b610c37565b3480156104ec575f80fd5b506102ca6104fb366004612075565b610c73565b34801561050b575f80fd5b5060235461032a90600160a81b900460ff1681565b34801561052b575f80fd5b5061029861053a36600461205c565b6001600160a01b03165f9081526008602052604090205490565b34801561055f575f80fd5b506102ca610cc6565b348015610573575f80fd5b5061032a610582366004611f2d565b610d37565b348015610592575f80fd5b5061029860075481565b3480156105a7575f80fd5b5061029860065481565b3480156105bc575f80fd5b506102ca6105cb366004611ec6565b610e2f565b3480156105db575f80fd5b506102ca6105ea3660046120aa565b610e7a565b3480156105fa575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016102a2565b34801561062a575f80fd5b505f546001600160a01b0316610607565b348015610646575f80fd5b50600c5461032a9060ff1681565b34801561065f575f80fd5b506040805180820190915260048152631092105560e21b60208201526102fd565b34801561068b575f80fd5b50602354610607906001600160a01b031681565b3480156106aa575f80fd5b5061032a6106b9366004611f2d565b610f3f565b3480156106c9575f80fd5b505f54610607906001600160a01b031681565b3480156106e7575f80fd5b5061032a6106f636600461205c565b600d6020525f908152604090205460ff1681565b348015610715575f80fd5b506102ca6107243660046120e9565b610f4b565b348015610734575f80fd5b506102ca610f85565b348015610748575f80fd5b5061032a61075736600461205c565b600b6020525f908152604090205460ff1681565b348015610776575f80fd5b50610298610785366004611ec6565b610fc3565b348015610795575f80fd5b506102ca6107a4366004611fda565b611008565b3480156107b4575f80fd5b506102986107c3366004612112565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b3480156107f8575f80fd5b506102ca610807366004612143565b611095565b348015610817575f80fd5b506102ca61082636600461205c565b6110e0565b348015610836575f80fd5b506102ca610845366004612075565b6111c7565b348015610855575f80fd5b50602154610607906001600160a01b031681565b335f908152600d602052604090205460ff16610883575f80fd5b6103e86005546108939190612173565b60065410156108a0575f80fd5b6103e8816005546108b19190612192565b6108bb9190612173565b60065550565b335f8181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061091b9086815260200190565b60405180910390a35060015b92915050565b5f8261093883610fc3565b119392505050565b335f908152600d602052604090205460ff1661095a575f80fd5b6103e860055461096a9190612173565b6007541015610977575f80fd5b6064816005546109879190612192565b6109919190612173565b60075550565b5f546001600160a01b031633146109c95760405162461bcd60e51b81526004016109c0906121a9565b60405180910390fd5b601b5447906001600160a01b03166108fc60646109e68585612192565b6109f09190612173565b6040518115909202915f818181858888f19350505050158015610a15573d5f803e3d5ffd5b505050565b5f546001600160a01b03163314610a435760405162461bcd60e51b81526004016109c0906121a9565b601f91909155602055565b5f546001600160a01b03163314610a775760405162461bcd60e51b81526004016109c0906121a9565b600a805460ff1916911515919091179055565b6001600160a01b0383165f9081526009602090815260408083203384529091528120545f1914610b33576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600982528381203382529091529190912054610b0f91849061121a565b6001600160a01b0385165f9081526009602090815260408083203384529091529020555b610b3e848484611252565b90505b9392505050565b6004546001600160a01b03165f90815260086020526040812054610b93906003546001600160a01b03165f90815260086020526040902054610b8d9060055490611670565b90611670565b905090565b5f546001600160a01b03163314610bc15760405162461bcd60e51b81526004016109c0906121a9565b5f5b82811015610c255781600d5f868685818110610be157610be16121de565b9050602002016020810190610bf6919061205c565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610bc3565b50505050565b5f610927825f196108c1565b5f546001600160a01b03163314610c605760405162461bcd60e51b81526004016109c0906121a9565b600c805460ff1916911515919091179055565b5f546001600160a01b03163314610c9c5760405162461bcd60e51b81526004016109c0906121a9565b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610cef5760405162461bcd60e51b81526004016109c0906121a9565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b335f908152600d602052604081205460ff16610d51575f80fd5b815f03610dc1576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dbe91906121f2565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610e0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b419190612209565b5f546001600160a01b03163314610e585760405162461bcd60e51b81526004016109c0906121a9565b6103e8600554610e689190612173565b6006541015610e75575f80fd5b600655565b5f546001600160a01b03163314610ea35760405162461bcd60e51b81526004016109c0906121a9565b60108690556013859055601184905560128390556014829055610ed482610ece858188818c8c6116b1565b906116b1565b6015556016819055610ee7600282612173565b60155410610f375760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016109c0565b505050505050565b5f610b41338484611252565b5f546001600160a01b03163314610f745760405162461bcd60e51b81526004016109c0906121a9565b601791909155601891909155601955565b5f546001600160a01b03163314610fae5760405162461bcd60e51b81526004016109c0906121a9565b6023805460ff60a01b1916600160a01b179055565b5f610927610fcf610b48565b6023546001600160a01b03165f9081526008602052604090205461100290610ffb906002905b9061170f565b859061170f565b9061178d565b5f546001600160a01b031633146110315760405162461bcd60e51b81526004016109c0906121a9565b5f5b82811015610c255781600b5f868685818110611051576110516121de565b9050602002016020810190611066919061205c565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611033565b5f546001600160a01b031633146110be5760405162461bcd60e51b81526004016109c0906121a9565b60238054921515600160a81b0260ff60a81b1990931692909217909155602455565b5f546001600160a01b031633146111095760405162461bcd60e51b81526004016109c0906121a9565b6001600160a01b03811661116e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109c0565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146111f05760405162461bcd60e51b81526004016109c0906121a9565b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b5f818484111561123d5760405162461bcd60e51b81526004016109c09190611edd565b505f6112498486612224565b95945050505050565b6025545f9060ff16156112715761126a8484846117ce565b9050610b41565b6001600160a01b0384165f9081526001602052604090205460ff161580156112b157506001600160a01b0383165f9081526001602052604090205460ff16155b1561136a57602354600160a01b900460ff166113065760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109c0565b600c5460ff161561136a576001600160a01b0383165f908152600d602052604090205460ff1661136a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b60448201526064016109c0565b600a5460ff16156113ca576001600160a01b0384165f908152600b602052604090205460ff16156113ca5760405162461bcd60e51b815260206004820152600a602482015269125cdcdb9a5c195c995960b21b60448201526064016109c0565b6001600160a01b0384165f9081526001602052604090205460ff161580156113fb57506001600160a01b0383163014155b801561141557506003546001600160a01b03848116911614155b801561142f57506023546001600160a01b03848116911614155b80156114495750601e546001600160a01b03848116911614155b80156114635750601b546001600160a01b03848116911614155b801561148757506001600160a01b0383165f908152600f602052604090205460ff16155b15611527576001600160a01b0383165f908152600860205260409020546007546114b18483612237565b11156115255760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109c0565b505b611531848361189e565b61153961190a565b156115465761154661195e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f9081526008909152919091205461159791849061121a565b6001600160a01b0385165f90815260086020908152604080832093909355600e90529081205460ff16806115e257506001600160a01b0384165f908152600e602052604090205460ff165b6115f6576115f1858486611d26565b6115f8565b825b6001600160a01b0385165f9081526008602052604090205490915061161d90826116b1565b6001600160a01b038086165f8181526008602052604090819020939093559151908716905f805160206122e68339815191529061165d9085815260200190565b60405180910390a3506001949350505050565b5f610b4183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061121a565b5f806116bd8385612237565b905083811015610b415760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109c0565b5f825f0361171e57505f610927565b5f6117298385612192565b9050826117368583612173565b14610b415760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109c0565b5f610b4183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e9a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260089091529182205461181e91849061121a565b6001600160a01b038086165f90815260086020526040808220939093559085168152205461184c90836116b1565b6001600160a01b038085165f8181526008602052604090819020939093559151908616905f805160206122e68339815191529061188c9086815260200190565b60405180910390a35060019392505050565b600654811115806118c657506001600160a01b0382165f908152600f602052604090205460ff165b6119065760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109c0565b5050565b6023545f906001600160a01b0316331480159061192a575060255460ff16155b801561193f5750602354600160a81b900460ff165b8015610b93575050602454305f90815260086020526040902054101590565b6025805460ff19166001179055601f546020545f9161197c9161092d565b6119885760105461198a565b5f5b90505f6119ad60026110026015546110028660245461170f90919063ffffffff16565b90505f6119c58260245461167090919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106119fd576119fd6121de565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a2e57611a2e6121de565b6001600160a01b03928316602091820292909201015260215460405163791ac94760e01b81524792919091169063791ac94790611a779086905f9087903090429060040161224a565b5f604051808303815f87803b158015611a8e575f80fd5b505af1158015611aa0573d5f803e3d5ffd5b505050505f611ab8824761167090919063ffffffff16565b90505f611ad2611ac988600261178d565b60155490611670565b90505f611ae660026110028481878d61170f565b90505f611b02836110026011548761170f90919063ffffffff16565b90505f611b1e846110026013548861170f90919063ffffffff16565b90505f611b3a856110026012548961170f90919063ffffffff16565b601b546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611b89576040519150601f19603f3d011682016040523d82523d5f602084013e611b8e565b606091505b5050601c546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611bdb576040519150601f19603f3d011682016040523d82523d5f602084013e611be0565b606091505b5050601d546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611c2d576040519150601f19603f3d011682016040523d82523d5f602084013e611c32565b606091505b505f9250508b159050611d0e57602154601a5460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611cac573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611cd191906122ba565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff1916905550505050505050505050565b6019546023545f91906001600160a01b0390811690841603611d4b5750601754611d66565b6023546001600160a01b0390811690861603611d6657506018545b5f611d926016546064611d799190612192565b61100284610ff56015548a61170f90919063ffffffff16565b90505f611db06015546110026014548561170f90919063ffffffff16565b90505f611dbd8383611670565b305f90815260086020526040902054909150611dd990826116b1565b305f9081526008602052604080822092909255601e546001600160a01b031681522054611e0690836116b1565b601e546001600160a01b039081165f9081526008602090815260409182902093909355518381523092918b16915f805160206122e6833981519152910160405180910390a38115611e8457601e546040518381526001600160a01b03918216918a16905f805160206122e68339815191529060200160405180910390a35b611e8e8784611670565b98975050505050505050565b5f8183611eba5760405162461bcd60e51b81526004016109c09190611edd565b505f6112498486612173565b5f60208284031215611ed6575f80fd5b5035919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611f28575f80fd5b919050565b5f8060408385031215611f3e575f80fd5b611f4783611f12565b946020939093013593505050565b5f8060408385031215611f66575f80fd5b50508035926020909101359150565b8015158114611f82575f80fd5b50565b5f60208284031215611f95575f80fd5b8135610b4181611f75565b5f805f60608486031215611fb2575f80fd5b611fbb84611f12565b9250611fc960208501611f12565b929592945050506040919091013590565b5f805f60408486031215611fec575f80fd5b833567ffffffffffffffff811115612002575f80fd5b8401601f81018613612012575f80fd5b803567ffffffffffffffff811115612028575f80fd5b8660208260051b840101111561203c575f80fd5b60209182019450925084013561205181611f75565b809150509250925092565b5f6020828403121561206c575f80fd5b610b4182611f12565b5f8060408385031215612086575f80fd5b61208f83611f12565b9150602083013561209f81611f75565b809150509250929050565b5f805f805f8060c087890312156120bf575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f606084860312156120fb575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215612123575f80fd5b61212c83611f12565b915061213a60208401611f12565b90509250929050565b5f8060408385031215612154575f80fd5b8235611f4781611f75565b634e487b7160e01b5f52601160045260245ffd5b5f8261218d57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176109275761092761215f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612202575f80fd5b5051919050565b5f60208284031215612219575f80fd5b8151610b4181611f75565b818103818111156109275761092761215f565b808201808211156109275761092761215f565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561229a5783516001600160a01b0316835260209384019390920191600101612273565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f606084860312156122cc575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b5dde35bc1df44606218328a2d022c3f0ec62df934a4069defd13df5fa0f951464736f6c634300081a0033

Deployed Bytecode Sourcemap

5015:13728:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6881:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6881:55:0;;;;;;;;10094:258;;;;;;;;;;-1:-1:-1;10094:258:0;;;;;:::i;:::-;;:::i;:::-;;8449:80;;;;;;;;;;-1:-1:-1;8521:5:0;;;;;;;;;;;;-1:-1:-1;;;8521:5:0;;;;8449:80;;;;;;;:::i;6800:31::-;;;;;;;;;;-1:-1:-1;6800:31:0;;;;-1:-1:-1;;;6800:31:0;;;;;;;;;1015:14:1;;1008:22;990:41;;978:2;963:18;6800:31:0;850:187:1;8936:216:0;;;;;;;;;;-1:-1:-1;8936:216:0;;;;;:::i;:::-;;:::i;5674:31::-;;;;;;;;;;-1:-1:-1;5674:31:0;;;;;;;;18525:150;;;;;;;;;;-1:-1:-1;18525:150:0;;;;;:::i;:::-;;:::i;8179:88::-;;;;;;;;;;-1:-1:-1;8252:12:0;;8179:88;;9820:266;;;;;;;;;;-1:-1:-1;9820:266:0;;;;;:::i;:::-;;:::i;13746:233::-;;;;;;;;;;-1:-1:-1;13746:233:0;;;;;:::i;:::-;;:::i;6157:89::-;;;;;;;;;;;;;;;;18006:182;;;;;;;;;;-1:-1:-1;18006:182:0;;;;;:::i;:::-;;:::i;16382:97::-;;;;;;;;;;-1:-1:-1;16382:97:0;;;;;:::i;:::-;;:::i;9454:358::-;;;;;;;;;;-1:-1:-1;9454:358:0;;;;;:::i;:::-;;:::i;18200:142::-;;;;;;;;;;;;;:::i;8273:80::-;;;;;;;;;;-1:-1:-1;8273:80:0;;5165:2;2766:36:1;;2754:2;2739:18;8273:80:0;2624:184:1;16802:200:0;;;;;;;;;;-1:-1:-1;16802:200:0;;;;;:::i;:::-;;:::i;9160:122::-;;;;;;;;;;-1:-1:-1;9160:122:0;;;;;:::i;:::-;;:::i;16487:91::-;;;;;;;;;;-1:-1:-1;16487:91:0;;;;;:::i;:::-;;:::i;17010:119::-;;;;;;;;;;-1:-1:-1;17010:119:0;;;;;:::i;:::-;;:::i;6844:30::-;;;;;;;;;;-1:-1:-1;6844:30:0;;;;-1:-1:-1;;;6844:30:0;;;;;;8619:105;;;;;;;;;;-1:-1:-1;8619:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8703:18:0;8685:7;8703:18;;;:9;:18;;;;;;;8619:105;1034:148;;;;;;;;;;;;;:::i;13987:301::-;;;;;;;;;;-1:-1:-1;13987:301:0;;;;;:::i;:::-;;:::i;5487:63::-;;;;;;;;;;;;;;;;5420:60;;;;;;;;;;;;;;;;10366:158;;;;;;;;;;-1:-1:-1;10366:158:0;;;;;:::i;:::-;;:::i;17272:563::-;;;;;;;;;;-1:-1:-1;17272:563:0;;;;;:::i;:::-;;:::i;8535:78::-;;;;;;;;;;-1:-1:-1;8587:7:0;885:6;-1:-1:-1;;;;;885:6:0;8535:78;;;-1:-1:-1;;;;;5072:32:1;;;5054:51;;5042:2;5027:18;8535:78:0;4908:203:1;820:79:0;;;;;;;;;;-1:-1:-1;858:7:0;885:6;-1:-1:-1;;;;;885:6:0;820:79;;5766:28;;;;;;;;;;-1:-1:-1;5766:28:0;;;;;;;;8359:84;;;;;;;;;;-1:-1:-1;8433:7:0;;;;;;;;;;;;-1:-1:-1;;;8433:7:0;;;;8359:84;;6768:19;;;;;;;;;;-1:-1:-1;6768:19:0;;;;-1:-1:-1;;;;;6768:19:0;;;9290:156;;;;;;;;;;-1:-1:-1;9290:156:0;;;;;:::i;:::-;;:::i;440:21::-;;;;;;;;;;-1:-1:-1;440:21:0;;;;-1:-1:-1;;;;;440:21:0;;;5801:41;;;;;;;;;;-1:-1:-1;5801:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14296:213;;;;;;;;;;-1:-1:-1;14296:213:0;;;;;:::i;:::-;;:::i;8869:61::-;;;;;;;;;;;;;:::i;5712:45::-;;;;;;;;;;-1:-1:-1;5712:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18350:167;;;;;;;;;;-1:-1:-1;18350:167:0;;;;;:::i;:::-;;:::i;16586:208::-;;;;;;;;;;-1:-1:-1;16586:208:0;;;;;:::i;:::-;;:::i;8730:133::-;;;;;;;;;;-1:-1:-1;8730:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8832:19:0;;;8814:7;8832:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8730:133;17843:155;;;;;;;;;;-1:-1:-1;17843:155:0;;;;;:::i;:::-;;:::i;1190:244::-;;;;;;;;;;-1:-1:-1;1190:244:0;;;;;:::i;:::-;;:::i;17137:127::-;;;;;;;;;;-1:-1:-1;17137:127:0;;;;;:::i;:::-;;:::i;6695:27::-;;;;;;;;;;-1:-1:-1;6695:27:0;;;;-1:-1:-1;;;;;6695:27:0;;;10094:258;10181:10;10172:20;;;;:8;:20;;;;;;;;10164:29;;;;;;10243:4;10228:12;;:19;;;;:::i;:::-;10212:12;;:35;;10204:44;;;;;;10340:4;10323:12;10308;;:27;;;;:::i;:::-;10307:37;;;;:::i;:::-;10292:12;:52;-1:-1:-1;10094:258:0:o;8936:216::-;9040:10;9011:4;9028:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9028:32:0;;;;;;;;;;:41;;;9085:37;9011:4;;9028:32;;9085:37;;;;9063:6;160:25:1;;148:2;133:18;;14:177;9085:37:0;;;;;;;;-1:-1:-1;9140:4:0;8936:216;;;;;:::o;18525:150::-;18605:4;18661:6;18629:29;18649:8;18629:19;:29::i;:::-;:38;;18525:150;-1:-1:-1;;;18525:150:0:o;9820:266::-;9904:10;9895:20;;;;:8;:20;;;;;;;;9887:29;;;;;;9969:4;9954:12;;:19;;;;:::i;:::-;9935:15;;:38;;9927:47;;;;;;10057:3;10038:14;10023:12;;:29;;;;:::i;:::-;10022:38;;;;:::i;:::-;10004:15;:56;-1:-1:-1;9820:266:0:o;13746:233::-;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;;;;;;;;;13905:20:::1;::::0;13865:21:::1;::::0;-1:-1:-1;;;;;13905:20:0::1;13897:74;13967:3;13936:28;13948:16:::0;13865:21;13936:28:::1;:::i;:::-;:34;;;;:::i;:::-;13897:74;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13818:161;13746:233:::0;:::o;18006:182::-;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;18103:15:::1;:25:::0;;;;18139:26:::1;:41:::0;18006:182::o;16382:97::-;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;16449:12:::1;:22:::0;;-1:-1:-1;;16449:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16382:97::o;9454:358::-;-1:-1:-1;;;;;9574:19:0;;9554:4;9574:19;;;:11;:19;;;;;;;;9594:10;9574:31;;;;;;;;-1:-1:-1;;9574:52:0;9571:176;;9676:69;;;;;;;;;;;-1:-1:-1;;;9676:69:0;;;;;;;;-1:-1:-1;;;;;9676:19:0;;-1:-1:-1;9676:19:0;;;:11;:19;;;;;9696:10;9676:31;;;;;;;;;;:69;;9712:6;;9676:35;:69::i;:::-;-1:-1:-1;;;;;9642:19:0;;;;;;:11;:19;;;;;;;;9662:10;9642:31;;;;;;;:103;9571:176;9764:40;9778:6;9786:9;9797:6;9764:13;:40::i;:::-;9757:47;;9454:358;;;;;;:::o;18200:142::-;18328:4;;-1:-1:-1;;;;;18328:4:0;18253:7;8703:18;;;:9;:18;;;;;;18280:54;;18307:4;;-1:-1:-1;;;;;18307:4:0;8685:7;8703:18;;;:9;:18;;;;;;18280:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18273:61;;18200:142;:::o;16802:200::-;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;16899:9:::1;16894:101;16910:20:::0;;::::1;16894:101;;;16977:6;16952:8;:22;16961:9;;16971:1;16961:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16952:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16952:22:0;:31;;-1:-1:-1;;16952:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;16932:3:0::1;16894:101;;;;16802:200:::0;;;:::o;9160:122::-;9215:4;9239:35;9247:7;-1:-1:-1;;9239:7:0;:35::i;16487:91::-;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;16550:8:::1;:18:::0;;-1:-1:-1;;16550:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16487:91::o;17010:119::-;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17093:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17093:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17010:119::o;1034:148::-;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;1141:1:::1;1125:6:::0;;1104:40:::1;::::0;-1:-1:-1;;;;;1125:6:0;;::::1;::::0;1104:40:::1;::::0;1141:1;;1104:40:::1;1172:1;1155:19:::0;;-1:-1:-1;;;;;;1155:19:0::1;::::0;;1034:148::o;13987:301::-;14100:10;14066:4;14091:20;;;:8;:20;;;;;;;;14083:29;;;;;;14123:6;14133:1;14123:11;14120:95;;14159:44;;-1:-1:-1;;;14159:44:0;;14197:4;14159:44;;;5054:51:1;-1:-1:-1;;;;;14159:29:0;;;;;5027:18:1;;14159:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14150:53;;14120:95;14232:48;;-1:-1:-1;;;14232:48:0;;14261:10;14232:48;;;7876:51:1;7943:18;;;7936:34;;;-1:-1:-1;;;;;14232:28:0;;;;;7849:18:1;;14232:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10366:158::-;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;10479:4:::1;10464:12;;:19;;;;:::i;:::-;10448:12;;:35;;10440:44;;;::::0;::::1;;10495:12;:21:::0;10366:158::o;17272:563::-;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;17443:12:::1;:28:::0;;;17482:7:::1;:18:::0;;;17511:12:::1;:28:::0;;;17550:6:::1;:16:::0;;;17577:7:::1;:18:::0;;;17617:73:::1;17587:8:::0;17617:59:::1;17559:7:::0;17617:59;17526:13;17617:59;17458:13;17492:8;17617:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;17606:8;:84:::0;17701:14:::1;:32:::0;;;17763:16:::1;17778:1;17718:15:::0;17763:16:::1;:::i;:::-;17752:8;;:27;17744:68;;;::::0;-1:-1:-1;;;17744:68:0;;8433:2:1;17744:68:0::1;::::0;::::1;8415:21:1::0;8472:2;8452:18;;;8445:30;8511;8491:18;;;8484:58;8559:18;;17744:68:0::1;8231:352:1::0;17744:68:0::1;17272:563:::0;;;;;;:::o;9290:156::-;9370:4;9394:44;9408:10;9420:9;9431:6;9394:13;:44::i;14296:213::-;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;14398:14:::1;:22:::0;;;;14431:13:::1;:20:::0;;;;14462:18:::1;:27:::0;14296:213::o;8869:61::-;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;8910:11:::1;:18:::0;;-1:-1:-1;;;;8910:18:0::1;-1:-1:-1::0;;;8910:18:0::1;::::0;;8869:61::o;18350:167::-;18418:7;18445:64;18486:22;:20;:22::i;:::-;18468:4;;-1:-1:-1;;;;;18468:4:0;8685:7;8703:18;;;:9;:18;;;;;;18445:36;;18458:22;;18478:1;;18458:15;:19;;:22::i;:::-;18445:8;;:12;:36::i;:::-;:40;;:64::i;16586:208::-;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;16687:9:::1;16682:105;16698:20:::0;;::::1;16682:105;;;16769:6;16740:12;:26;16753:9;;16763:1;16753:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16740:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16740:26:0;:35;;-1:-1:-1;;16740:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;16720:3:0::1;16682:105;;17843:155:::0;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;17934:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;17934:22:0::1;-1:-1:-1::0;;;;17934:22:0;;::::1;::::0;;;::::1;::::0;;;17967:13:::1;:23:::0;17843:155::o;1190:244::-;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1279:22:0;::::1;1271:73;;;::::0;-1:-1:-1;;;1271:73:0;;8790:2:1;1271:73:0::1;::::0;::::1;8772:21:1::0;8829:2;8809:18;;;8802:30;8868:34;8848:18;;;8841:62;-1:-1:-1;;;8919:18:1;;;8912:36;8965:19;;1271:73:0::1;8588:402:1::0;1271:73:0::1;1381:6;::::0;;1360:38:::1;::::0;-1:-1:-1;;;;;1360:38:0;;::::1;::::0;1381:6;::::1;::::0;1360:38:::1;::::0;::::1;1409:6;:17:::0;;-1:-1:-1;;;;;;1409:17:0::1;-1:-1:-1::0;;;;;1409:17:0;;;::::1;::::0;;;::::1;::::0;;1190:244::o;17137:127::-;947:6;;-1:-1:-1;;;;;947:6:0;291:10;947:22;939:67;;;;-1:-1:-1;;;939:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17224:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17224:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17137:127::o;2705:192::-;2791:7;2827:12;2819:6;;;;2811:29;;;;-1:-1:-1;;;2811:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2851:9:0;2863:5;2867:1;2863;:5;:::i;:::-;2851:17;2705:192;-1:-1:-1;;;;;2705:192:0:o;10532:1413::-;10644:6;;10624:4;;10644:6;;10641:63;;;10660:41;10675:6;10683:9;10694:6;10660:14;:41::i;:::-;10653:48;;;;10641:63;-1:-1:-1;;;;;10720:22:0;;;;;;:14;:22;;;;;;;;10719:23;:53;;;;-1:-1:-1;;;;;;10747:25:0;;;;;;:14;:25;;;;;;;;10746:26;10719:53;10716:232;;;10796:11;;-1:-1:-1;;;10796:11:0;;;;10788:43;;;;-1:-1:-1;;;10788:43:0;;9330:2:1;10788:43:0;;;9312:21:1;9369:2;9349:18;;;9342:30;-1:-1:-1;;;9388:18:1;;;9381:50;9448:18;;10788:43:0;9128:344:1;10788:43:0;10847:8;;;;10844:93;;;-1:-1:-1;;;;;10883:19:0;;;;;;:8;:19;;;;;;;;10875:46;;;;-1:-1:-1;;;10875:46:0;;9679:2:1;10875:46:0;;;9661:21:1;9718:2;9698:18;;;9691:30;-1:-1:-1;;;9737:18:1;;;9730:45;9792:18;;10875:46:0;9477:339:1;10875:46:0;10985:12;;;;10982:90;;;-1:-1:-1;;;;;11022:20:0;;;;;;:12;:20;;;;;;;;11021:21;11013:43;;;;-1:-1:-1;;;11013:43:0;;10023:2:1;11013:43:0;;;10005:21:1;10062:2;10042:18;;;10035:30;-1:-1:-1;;;10081:18:1;;;10074:40;10131:18;;11013:43:0;9821:334:1;11013:43:0;-1:-1:-1;;;;;11089:22:0;;;;;;:14;:22;;;;;;;;11088:23;:53;;;;-1:-1:-1;;;;;;11115:26:0;;11136:4;11115:26;;11088:53;:84;;;;-1:-1:-1;11167:4:0;;-1:-1:-1;;;;;11146:26:0;;;11167:4;;11146:26;;11088:84;:105;;;;-1:-1:-1;11189:4:0;;-1:-1:-1;;;;;11176:17:0;;;11189:4;;11176:17;;11088:105;:137;;;;-1:-1:-1;11210:15:0;;-1:-1:-1;;;;;11197:28:0;;;11210:15;;11197:28;;11088:137;:174;;;;-1:-1:-1;11242:20:0;;-1:-1:-1;;;;;11229:33:0;;;11242:20;;11229:33;;11088:174;:205;;;;-1:-1:-1;;;;;;11267:26:0;;;;;;:15;:26;;;;;;;;11266:27;11088:205;11084:397;;;-1:-1:-1;;;;;8703:18:0;;11309;8703;;;:9;:18;;;;;;11398:15;;11374:19;11387:6;8703:18;11374:19;:::i;:::-;11373:40;;11365:114;;;;-1:-1:-1;;;11365:114:0;;10492:2:1;11365:114:0;;;10474:21:1;10531:2;10511:18;;;10504:30;10570:34;10550:18;;;10543:62;10641:32;10621:18;;;10614:60;10691:19;;11365:114:0;10290:426:1;11365:114:0;11294:187;11084:397;11493:28;11506:6;11514;11493:12;:28::i;:::-;11538:16;:14;:16::i;:::-;11535:35;;;11557:10;:8;:10::i;:::-;11600:53;;;;;;;;;;;-1:-1:-1;;;11600:53:0;;;;;;;;-1:-1:-1;;;;;11600:17:0;;-1:-1:-1;11600:17:0;;;:9;:17;;;;;;;;:53;;11622:6;;11600:21;:53::i;:::-;-1:-1:-1;;;;;11580:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11690:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11713:22:0;;;;;;:11;:22;;;;;;;;11690:45;11689:93;;11748:34;11756:6;11764;11772:9;11748:7;:34::i;:::-;11689:93;;;11739:6;11689:93;-1:-1:-1;;;;;11816:20:0;;;;;;:9;:20;;;;;;11664:118;;-1:-1:-1;11816:40:0;;11664:118;11816:24;:40::i;:::-;-1:-1:-1;;;;;11793:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11872:43;;;;;;-1:-1:-1;;;;;;;;;;;11872:43:0;;;11900:14;160:25:1;;148:2;133:18;;14:177;11872:43:0;;;;;;;;-1:-1:-1;11933:4:0;;10532:1413;-1:-1:-1;;;;10532:1413:0:o;2563:136::-;2621:7;2648:43;2652:1;2655;2648:43;;;;;;;;;;;;;;;;;:3;:43::i;2376:181::-;2434:7;;2466:5;2470:1;2466;:5;:::i;:::-;2454:17;;2495:1;2490;:6;;2482:46;;;;-1:-1:-1;;;2482:46:0;;10923:2:1;2482:46:0;;;10905:21:1;10962:2;10942:18;;;10935:30;11001:29;10981:18;;;10974:57;11048:18;;2482:46:0;10721:351:1;2903:250:0;2961:7;2985:1;2990;2985:6;2981:47;;-1:-1:-1;3015:1:0;3008:8;;2981:47;3040:9;3052:5;3056:1;3052;:5;:::i;:::-;3040:17;-1:-1:-1;3085:1:0;3076:5;3080:1;3040:17;3076:5;:::i;:::-;:10;3068:56;;;;-1:-1:-1;;;3068:56:0;;11279:2:1;3068:56:0;;;11261:21:1;11318:2;11298:18;;;11291:30;11357:34;11337:18;;;11330:62;-1:-1:-1;;;11408:18:1;;;11401:31;11449:19;;3068:56:0;11077:397:1;3159:132:0;3217:7;3244:39;3248:1;3251;3244:39;;;;;;;;;;;;;;;;;:3;:39::i;11957:330::-;12087:53;;;;;;;;;;;-1:-1:-1;;;12087:53:0;;;;;;;;-1:-1:-1;;;;;12087:17:0;;12050:4;12087:17;;;:9;:17;;;;;;;:53;;12109:6;;12087:21;:53::i;:::-;-1:-1:-1;;;;;12067:17:0;;;;;;;:9;:17;;;;;;:73;;;;12174:20;;;;;;;:32;;12199:6;12174:24;:32::i;:::-;-1:-1:-1;;;;;12151:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12222:35;;;;;;-1:-1:-1;;;;;;;;;;;12222:35:0;;;12250:6;160:25:1;;148:2;133:18;;14:177;12222:35:0;;;;;;;;-1:-1:-1;12275:4:0;11957:330;;;;;:::o;12295:166::-;12392:12;;12382:6;:22;;:49;;;-1:-1:-1;;;;;;12408:23:0;;;;;;:15;:23;;;;;;;;12382:49;12374:79;;;;-1:-1:-1;;;12374:79:0;;11681:2:1;12374:79:0;;;11663:21:1;11720:2;11700:18;;;11693:30;-1:-1:-1;;;11739:18:1;;;11732:47;11796:18;;12374:79:0;11479:341:1;12374:79:0;12295:166;;:::o;13541:197::-;13628:4;;13590;;-1:-1:-1;;;;;13628:4:0;13614:10;:18;;;;:38;;-1:-1:-1;13646:6:0;;;;13645:7;13614:38;:62;;;;-1:-1:-1;13665:11:0;;-1:-1:-1;;;13665:11:0;;;;13614:62;:116;;;;-1:-1:-1;;13717:13:0;;13707:4;13689:24;;;;:9;:24;;;;;;:41;;;13541:197::o;14518:1856::-;6984:6;:13;;-1:-1:-1;;6984:13:0;6993:4;6984:13;;;14613:15:::1;::::0;14630:26:::1;::::0;6984:6;;14597:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14664:12;;14597:79;;;14660:1;14597:79;14567:109;;14687:23;14713:59;14770:1;14713:52;14756:8;;14713:38;14731:19;14713:13;;:17;;:38;;;;:::i;:59::-;14687:85;;14783:20;14806:34;14824:15;14806:13;;:17;;:34;;;;:::i;:::-;14877:16;::::0;;14891:1:::1;14877:16:::0;;;;;::::1;::::0;;14783:57;;-1:-1:-1;14853:21:0::1;::::0;14877:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14877:16:0::1;14853:40;;14922:4;14904;14909:1;14904:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14904:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14948:4:::1;::::0;14938:7;;14948:4;::::1;::::0;14938;;14948;;14938:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14938:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15021:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15021:188:0;;14989:21:::1;::::0;15021:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15093:12;;14965:21:::1;::::0;15136:4;;15163::::1;::::0;15183:15:::1;::::0;15021:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15222:17;15242:40;15268:13;15242:21;:25;;:40;;;;:::i;:::-;15222:60:::0;-1:-1:-1;15293:19:0::1;15315:40;15328:26;:19:::0;15352:1:::1;15328:23;:26::i;:::-;15315:8;::::0;;:12:::1;:40::i;:::-;15293:62:::0;-1:-1:-1;15375:26:0::1;15404:58;15460:1;15404:51;15293:62:::0;15404:51;:9;15418:19;15404:13:::1;:34::i;:58::-;15375:87;;15473:26;15502:44;15534:11;15502:27;15516:12;;15502:9;:13;;:27;;;;:::i;:44::-;15473:73;;15557:21;15581:39;15608:11;15581:22;15595:7;;15581:9;:13;;:22;;;;:::i;:39::-;15557:63;;15631:20;15654:38;15680:11;15654:21;15668:6;;15654:9;:13;;:21;;;;:::i;:38::-;15734:20;::::0;15726:65:::1;::::0;15631:61;;-1:-1:-1;15706:15:0::1;::::0;-1:-1:-1;;;;;15734:20:0;;::::1;::::0;15768:18;;15706:15;15726:65;15706:15;15726:65;15768:18;15734:20;15726:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15826:14:0::1;::::0;15818:53:::1;::::0;15705:86;;-1:-1:-1;;;;;;15826:14:0::1;::::0;15854:12;;15818:53:::1;::::0;;;15854:12;15826:14;15818:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15906:15:0::1;::::0;15898:55:::1;::::0;15802:69;;-1:-1:-1;;;;;;15906:15:0::1;::::0;15935:13;;15898:55:::1;::::0;;;15935:13;15906:15;15898:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15987:5:0::1;::::0;-1:-1:-1;;16008:19:0;;;-1:-1:-1;16005:362:0::1;;16043:6;::::0;16217:21:::1;::::0;16043:244:::1;::::0;-1:-1:-1;;;16043:244:0;;16119:4:::1;16043:244;::::0;::::1;13434:51:1::0;13501:18;;;13494:34;;;16043:6:0::1;13544:18:1::0;;;13537:34;;;13587:18;;;13580:34;-1:-1:-1;;;;;16217:21:0;;::::1;13630:19:1::0;;;13623:61;16257:15:0::1;13700:19:1::0;;;13693:35;16043:6:0;::::1;::::0;:22:::1;::::0;16073:18;;13406:19:1;;16043:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16307:48:0::1;::::0;;14374:25:1;;;14430:2;14415:18;;14408:34;;;16307:48:0::1;::::0;-1:-1:-1;14347:18:1;16307:48:0::1;;;;;;;16005:362;-1:-1:-1::0;;7002:6:0;:14;;-1:-1:-1;;7002:14:0;;;-1:-1:-1;;;;;;;;;;14518:1856:0:o;12591:942::-;12728:18;;12775:4;;12677:7;;12728:18;-1:-1:-1;;;;;12775:4:0;;;12762:17;;;;12759:154;;-1:-1:-1;12809:14:0;;12759:154;;;12854:4;;-1:-1:-1;;;;;12854:4:0;;;12844:14;;;;12841:72;;-1:-1:-1;12888:13:0;;12841:72;12925:17;12945:62;12986:14;;13003:3;12986:20;;;;:::i;:::-;12945:36;12970:10;12945:20;12956:8;;12945:6;:10;;:20;;;;:::i;:62::-;12925:82;;13018:18;13039:36;13066:8;;13039:22;13053:7;;13039:9;:13;;:22;;;;:::i;:36::-;13018:57;-1:-1:-1;13086:22:0;13111:25;:9;13018:57;13111:13;:25::i;:::-;13194:4;13176:24;;;;:9;:24;;;;;;13086:50;;-1:-1:-1;13176:44:0;;13086:50;13176:28;:44::i;:::-;13167:4;13149:24;;;;:9;:24;;;;;;:71;;;;13270:15;;-1:-1:-1;;;;;13270:15:0;13260:26;;;;:42;;13291:10;13260:30;:42::i;:::-;13241:15;;-1:-1:-1;;;;;13241:15:0;;;13231:26;;;;:9;:26;;;;;;;;;:71;;;;13318:47;160:25:1;;;13343:4:0;;13318:47;;;;-1:-1:-1;;;;;;;;;;;13318:47:0;133:18:1;13318:47:0;;;;;;;13389:14;;13386:99;;13441:15;;13424:45;;160:25:1;;;-1:-1:-1;;;;;13441:15:0;;;;13424:45;;;-1:-1:-1;;;;;;;;;;;13424:45:0;148:2:1;133:18;13424:45:0;;;;;;;13386:99;13504:21;:6;13515:9;13504:10;:21::i;:::-;13497:28;12591:942;-1:-1:-1;;;;;;;;12591:942:0:o;3297:189::-;3383:7;3418:12;3411:5;3403:28;;;;-1:-1:-1;;;3403:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3442:9:0;3454:5;3458:1;3454;:5;:::i;196:226:1:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;369:23:1;;196:226;-1:-1:-1;196:226:1:o;427:418::-;576:2;565:9;558:21;539:4;608:6;602:13;651:6;646:2;635:9;631:18;624:34;710:6;705:2;697:6;693:15;688:2;677:9;673:18;667:50;766:1;761:2;752:6;741:9;737:22;733:31;726:42;836:2;829;825:7;820:2;812:6;808:15;804:29;793:9;789:45;785:54;777:62;;;427:418;;;;:::o;1042:173::-;1110:20;;-1:-1:-1;;;;;1159:31:1;;1149:42;;1139:70;;1205:1;1202;1195:12;1139:70;1042:173;;;:::o;1220:300::-;1288:6;1296;1349:2;1337:9;1328:7;1324:23;1320:32;1317:52;;;1365:1;1362;1355:12;1317:52;1388:29;1407:9;1388:29;:::i;:::-;1378:39;1486:2;1471:18;;;;1458:32;;-1:-1:-1;;;1220:300:1:o;1525:346::-;1593:6;1601;1654:2;1642:9;1633:7;1629:23;1625:32;1622:52;;;1670:1;1667;1660:12;1622:52;-1:-1:-1;;1715:23:1;;;1835:2;1820:18;;;1807:32;;-1:-1:-1;1525:346:1:o;1876:118::-;1962:5;1955:13;1948:21;1941:5;1938:32;1928:60;;1984:1;1981;1974:12;1928:60;1876:118;:::o;1999:241::-;2055:6;2108:2;2096:9;2087:7;2083:23;2079:32;2076:52;;;2124:1;2121;2114:12;2076:52;2163:9;2150:23;2182:28;2204:5;2182:28;:::i;2245:374::-;2322:6;2330;2338;2391:2;2379:9;2370:7;2366:23;2362:32;2359:52;;;2407:1;2404;2397:12;2359:52;2430:29;2449:9;2430:29;:::i;:::-;2420:39;;2478:38;2512:2;2501:9;2497:18;2478:38;:::i;:::-;2245:374;;2468:48;;-1:-1:-1;;;2585:2:1;2570:18;;;;2557:32;;2245:374::o;2813:745::-;2905:6;2913;2921;2974:2;2962:9;2953:7;2949:23;2945:32;2942:52;;;2990:1;2987;2980:12;2942:52;3030:9;3017:23;3063:18;3055:6;3052:30;3049:50;;;3095:1;3092;3085:12;3049:50;3118:22;;3171:4;3163:13;;3159:27;-1:-1:-1;3149:55:1;;3200:1;3197;3190:12;3149:55;3240:2;3227:16;3266:18;3258:6;3255:30;3252:50;;;3298:1;3295;3288:12;3252:50;3353:7;3346:4;3336:6;3333:1;3329:14;3325:2;3321:23;3317:34;3314:47;3311:67;;;3374:1;3371;3364:12;3311:67;3405:4;3397:13;;;;-1:-1:-1;3429:6:1;-1:-1:-1;3470:20:1;;3457:34;3500:28;3457:34;3500:28;:::i;:::-;3547:5;3537:15;;;2813:745;;;;;:::o;3563:186::-;3622:6;3675:2;3663:9;3654:7;3650:23;3646:32;3643:52;;;3691:1;3688;3681:12;3643:52;3714:29;3733:9;3714:29;:::i;3754:315::-;3819:6;3827;3880:2;3868:9;3859:7;3855:23;3851:32;3848:52;;;3896:1;3893;3886:12;3848:52;3919:29;3938:9;3919:29;:::i;:::-;3909:39;;3998:2;3987:9;3983:18;3970:32;4011:28;4033:5;4011:28;:::i;:::-;4058:5;4048:15;;;3754:315;;;;;:::o;4074:829::-;4178:6;4186;4194;4202;4210;4218;4271:3;4259:9;4250:7;4246:23;4242:33;4239:53;;;4288:1;4285;4278:12;4239:53;-1:-1:-1;;4333:23:1;;;4453:2;4438:18;;4425:32;;-1:-1:-1;4556:2:1;4541:18;;4528:32;;4659:2;4644:18;;4631:32;;-1:-1:-1;4762:3:1;4747:19;;4734:33;;-1:-1:-1;4866:3:1;4851:19;4838:33;;-1:-1:-1;4074:829:1;-1:-1:-1;4074:829:1:o;5116:466::-;5193:6;5201;5209;5262:2;5250:9;5241:7;5237:23;5233:32;5230:52;;;5278:1;5275;5268:12;5230:52;-1:-1:-1;;5323:23:1;;;5443:2;5428:18;;5415:32;;-1:-1:-1;5546:2:1;5531:18;;;5518:32;;5116:466;-1:-1:-1;5116:466:1:o;5587:260::-;5655:6;5663;5716:2;5704:9;5695:7;5691:23;5687:32;5684:52;;;5732:1;5729;5722:12;5684:52;5755:29;5774:9;5755:29;:::i;:::-;5745:39;;5803:38;5837:2;5826:9;5822:18;5803:38;:::i;:::-;5793:48;;5587:260;;;;;:::o;5852:361::-;5917:6;5925;5978:2;5966:9;5957:7;5953:23;5949:32;5946:52;;;5994:1;5991;5984:12;5946:52;6033:9;6020:23;6052:28;6074:5;6052:28;:::i;6447:127::-;6508:10;6503:3;6499:20;6496:1;6489:31;6539:4;6536:1;6529:15;6563:4;6560:1;6553:15;6579:217;6619:1;6645;6635:132;;6689:10;6684:3;6680:20;6677:1;6670:31;6724:4;6721:1;6714:15;6752:4;6749:1;6742:15;6635:132;-1:-1:-1;6781:9:1;;6579:217::o;6801:168::-;6874:9;;;6905;;6922:15;;;6916:22;;6902:37;6892:71;;6943:18;;:::i;6974:356::-;7176:2;7158:21;;;7195:18;;;7188:30;7254:34;7249:2;7234:18;;7227:62;7321:2;7306:18;;6974:356::o;7335:127::-;7396:10;7391:3;7387:20;7384:1;7377:31;7427:4;7424:1;7417:15;7451:4;7448:1;7441:15;7467:230;7537:6;7590:2;7578:9;7569:7;7565:23;7561:32;7558:52;;;7606:1;7603;7596:12;7558:52;-1:-1:-1;7651:16:1;;7467:230;-1:-1:-1;7467:230:1:o;7981:245::-;8048:6;8101:2;8089:9;8080:7;8076:23;8072:32;8069:52;;;8117:1;8114;8107:12;8069:52;8149:9;8143:16;8168:28;8190:5;8168:28;:::i;8995:128::-;9062:9;;;9083:11;;;9080:37;;;9097:18;;:::i;10160:125::-;10225:9;;;10246:10;;;10243:36;;;10259:18;;:::i;11957:959::-;12219:4;12267:3;12256:9;12252:19;12298:6;12287:9;12280:25;12341:6;12336:2;12325:9;12321:18;12314:34;12384:3;12379:2;12368:9;12364:18;12357:31;12408:6;12443;12437:13;12474:6;12466;12459:22;12512:3;12501:9;12497:19;12490:26;;12551:2;12543:6;12539:15;12525:29;;12572:1;12582:195;12596:6;12593:1;12590:13;12582:195;;;12661:13;;-1:-1:-1;;;;;12657:39:1;12645:52;;12726:2;12752:15;;;;12717:12;;;;12693:1;12611:9;12582:195;;;-1:-1:-1;;;;;;;12833:32:1;;;;12828:2;12813:18;;12806:60;-1:-1:-1;;12897:3:1;12882:19;12875:35;12794:3;11957:959;-1:-1:-1;;;11957:959:1:o;13739:456::-;13827:6;13835;13843;13896:2;13884:9;13875:7;13871:23;13867:32;13864:52;;;13912:1;13909;13902:12;13864:52;-1:-1:-1;;13957:16:1;;14063:2;14048:18;;14042:25;14159:2;14144:18;;;14138:25;13957:16;;14042:25;;-1:-1:-1;14138:25:1;13739:456;-1:-1:-1;13739:456:1:o

Swarm Source

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