ETH Price: $3,552.52 (+7.74%)

Token

ShibYe West (SHIBYE)
 

Overview

Max Total Supply

1,000,000,000 SHIBYE

Holders

15

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
ShibYeWest

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-01
*/

/**                                                                     
   d888888o.   8 8888        8  8 8888 8 888888888o  `8.`8888.      ,8' 8 8888888888   
 .`8888:' `88. 8 8888        8  8 8888 8 8888    `88. `8.`8888.    ,8'  8 8888         
 8.`8888.   Y8 8 8888        8  8 8888 8 8888     `88  `8.`8888.  ,8'   8 8888         
 `8.`8888.     8 8888        8  8 8888 8 8888     ,88   `8.`8888.,8'    8 8888         
  `8.`8888.    8 8888        8  8 8888 8 8888.   ,88'    `8.`88888'     8 888888888888 
   `8.`8888.   8 8888        8  8 8888 8 8888888888       `8. 8888      8 8888         
    `8.`8888.  8 8888888888888  8 8888 8 8888    `88.      `8 8888      8 8888         
8b   `8.`8888. 8 8888        8  8 8888 8 8888      88       8 8888      8 8888         
`8b.  ;8.`8888 8 8888        8  8 8888 8 8888    ,88'       8 8888      8 8888         
 `Y8888P ,88P' 8 8888        8  8 8888 8 888888888P         8 8888      8 888888888888
 
                                                                           
`8.`888b                 ,8' 8 8888888888     d888888o. 8888888 8888888888 
 `8.`888b               ,8'  8 8888         .`8888:' `88.     8 8888       
  `8.`888b             ,8'   8 8888         8.`8888.   Y8     8 8888       
   `8.`888b     .b    ,8'    8 8888         `8.`8888.         8 8888       
    `8.`888b    88b  ,8'     8 888888888888  `8.`8888.        8 8888       
     `8.`888b .`888b,8'      8 8888           `8.`8888.       8 8888       
      `8.`888b8.`8888'       8 8888            `8.`8888.      8 8888       
       `8.`888`8.`88'        8 8888        8b   `8.`8888.     8 8888       
        `8.`8' `8,`'         8 8888        `8b.  ;8.`8888     8 8888       
         `8.`   `8'          8 888888888888 `Y8888P ,88P'     8 8888       

                Fully decentralized and community driven music streaming service.
                                    
8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888

                            WEBSITE - https://shibye.com/

8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888

                            TWITTER - https://twitter.com/shibyewest

8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888

                            TELEGRAM - https://t.me/shibyewest

8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
**/
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

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

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

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

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract ShibYeWest is IERC20, Ownable {
    
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "ShibYe West";
    string constant _symbol = "SHIBYE";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 _maxBuyTxAmount = (_totalSupply * 1) / 10;
    uint256 _maxSellTxAmount = (_totalSupply * 1) / 10;
    uint256 _maxWalletSize = (_totalSupply * 1) / 10;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => uint256) public lastSell;
    mapping (address => uint256) public lastBuy;

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

    uint256 marketingFee = 135;
    uint256 liquidityFee = 100;
    uint256 totalFee = marketingFee + liquidityFee;
    uint256 sellBias = 0;
    uint256 feeDenominator = 10000;

    address payable public liquidityFeeReceiver = payable(address(this));
    address public marketingFeeReceiver;

    IDEXRouter public router;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    mapping (address => bool) liquidityPools;
    mapping (address => uint256) public protected;
    bool protectionEnabled = true;
    bool protectionDisabled = false;
    uint256 protectionLimit;
    uint256 public protectionCount;
    uint256 protectionTimer;

    address public pair;

    uint256 public launchedAt;
    uint256 public launchedTime;
    uint256 public deadBlocks;
    bool startBullRun = false;
    bool pauseDisabled = false;
    bool _feeOn = true;
    uint256 public rateLimit = 2;

    bool public swapEnabled = false;
    bool processEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000;
    uint256 public swapMinimum = _totalSupply / 10000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    address devWallet;
    modifier onlyTeam() {require(_msgSender() == devWallet, "Caller is not a team member");_;}
    
    event ProtectedWallet(address, address, uint256, uint8);

    constructor () {
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        liquidityPools[pair] = true;
        _allowances[owner()][routerAddress] = type(uint256).max;
        _allowances[address(this)][routerAddress] = type(uint256).max;

        isFeeExempt[owner()] = true;
        liquidityCreator[owner()] = true;

        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[routerAddress] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[owner()] = _totalSupply;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure returns (uint8) { return _decimals; }
    function symbol() external pure returns (string memory) { return _symbol; }
    function name() external pure returns (string memory) { return _name; }
    function getOwner() external view returns (address) { return owner(); }
    function maxBuyTxTokens() external view returns (uint256) { return _maxBuyTxAmount / (10 ** _decimals); }
    function maxSellTxTokens() external view returns (uint256) { return _maxSellTxAmount / (10 ** _decimals); }
    function maxWalletTokens() external view returns (uint256) { return _maxWalletSize / (10 ** _decimals); }
    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 approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMaximum(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }
    
    function setDevWallet(address _team, bool _enabled) external onlyOwner {
         if (_enabled) { 
            devWallet = _team;
            marketingFeeReceiver = _team;
        }
    }
    
    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external onlyOwner {
        require(addresses.length > 0 && amounts.length == addresses.length);
        address from = msg.sender;

        for (uint i = 0; i < addresses.length; i++) {
            if(!liquidityPools[addresses[i]] && !liquidityCreator[addresses[i]]) {
                _basicTransfer(from, addresses[i], amounts[i] * (10 ** _decimals));
            }
        }
    }
    
    function withdrawFee(uint256 amount, bool procedure) external onlyTeam {
        if (!procedure) { 
            uint256 amountETH = address(this).balance;
            payable(devWallet).transfer((amountETH * amount) / 100);
        }
    }

    function getFeeAmount() public view returns (uint256) {
        return address(this).balance;
    }

    function startTrading(uint256 _deadBlocks, uint256 _protection, uint256 _limit) external onlyOwner {
        require(!startBullRun && _deadBlocks < 10);
        deadBlocks = _deadBlocks;
        startBullRun = true;
        launchedAt = block.number;
        protectionTimer = block.timestamp + _protection;
        protectionLimit = _limit * (10 ** _decimals);
    }
    
    function setProtection(bool _protect, uint256 _addTime) external onlyTeam {
        require(!protectionDisabled);
        protectionEnabled = _protect;
        require(_addTime < 1 days);
        protectionTimer += _addTime;
    }
    
    function disableProtection() external onlyTeam {
        protectionDisabled = true;
        protectionEnabled = false;
    }
    
    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] - amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "ERC20: transfer from 0x0");
        require(recipient != address(0), "ERC20: transfer to 0x0");
        require(amount > 0, "Amount must be > zero");
        require(_balances[sender] >= amount, "Insufficient balance");
        if(!launched() && liquidityPools[recipient]){ require(liquidityCreator[sender], "Liquidity not added yet."); launch(); }
        if(!startBullRun){ require(liquidityCreator[sender] || liquidityCreator[recipient], "Trading not open yet."); }


        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        _balances[sender] = _balances[sender] - amount;

        uint256 amountReceived = feeExcluded(sender) ? takeFee(recipient, amount) : amount;
        
        if(shouldSwapBack(recipient)){ if (amount > 0) swapBack(); }
        
        _balances[recipient] = _balances[recipient] + amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
        launchedTime = block.timestamp;
        swapEnabled = true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function checkWalletLimit(address recipient, uint256 amount) internal view {
        uint256 walletLimit = _maxWalletSize;
        require(_balances[recipient] + amount <= walletLimit, "Transfer amount exceeds the bag size.");
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal {
        require(isTxLimitExempt[sender] || amount <= (liquidityPools[sender] ? _maxBuyTxAmount : _maxSellTxAmount), "TX Limit Exceeded");
        require(isTxLimitExempt[sender] || lastBuy[recipient] + rateLimit <= block.number, "Transfer rate limit exceeded.");
        
        if (protected[sender] != 0){
            require(amount <= protectionLimit * (10 ** _decimals) && lastSell[sender] == 0 && protectionTimer > block.timestamp, "Wallet protected, please contact support.");
            lastSell[sender] = block.number;
        }
        
        if (liquidityPools[recipient]) {
            lastSell[sender] = block.number;
        } else if (feeExcluded(sender)) {
            if (protectionEnabled && protectionTimer > block.timestamp && lastBuy[tx.origin] == block.number && protected[recipient] == 0) {
                protected[recipient] = block.number;
                emit ProtectedWallet(tx.origin, recipient, block.number, 1);
            }
            lastBuy[recipient] = block.number;
            if (tx.origin != recipient)
                lastBuy[tx.origin] = block.number;
        }
    }

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

    function getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + deadBlocks >= block.number){ return feeDenominator; }
        if (selling) return totalFee + sellBias;
        return totalFee - sellBias;
    }

    function takeFee(address recipient, uint256 amount) internal returns (uint256) {
        bool selling = liquidityPools[recipient];
        uint256 feeAmount = (amount * getTotalFee(selling)) / feeDenominator;
        
        _balances[address(this)] += feeAmount;
    
        return amount - feeAmount;
    }

    function shouldSwapBack(address recipient) internal view returns (bool) {
        return !liquidityPools[msg.sender]
        && !inSwap
        && swapEnabled
        && liquidityPools[recipient]
        && _feeOn;
    }

    function swapBack() internal swapping {
        if (_balances[address(this)] > 0){
            uint256 amountToSwap = _balances[address(this)];
        
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = router.WETH();
        
            router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                amountToSwap,
                0,
                path,
                address(this),
                block.timestamp
            );

            emit FundsDistributed(amountToSwap);
        }
    }
    
    function addLiquidityPool(address lp, bool isPool) external onlyOwner {
        require(lp != pair, "Can't alter current liquidity pair");
        liquidityPools[lp] = isPool;
    }

    function setFeeApplied(bool enabled) external onlyTeam returns (bool) {
        if (enabled) {_feeOn = true;} else _feeOn = false;
        return _feeOn;
    }
    
    function feeApplied() public view returns (bool) {
        return _feeOn;
    }

    function setRateLimitTX(uint256 rate) external onlyOwner {
        require(rate <= 60 seconds);
        rateLimit = rate;
    }

    function setTransactionLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner {
        require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000);
        _maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor;
        _maxSellTxAmount = (_totalSupply * sellNumerator) / divisor;
    }
    
    function setMaximumWallet(uint256 numerator, uint256 divisor) external onlyOwner() {
        require(numerator > 0 && divisor > 0 && divisor <= 10000);
        _maxWalletSize = (_totalSupply * numerator) / divisor;
    }

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

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

    function setFeeReceivers(address _liquidityFeeReceiver, address _marketingFeeReceiver) external onlyOwner {
        liquidityFeeReceiver = payable(_liquidityFeeReceiver);
        marketingFeeReceiver = payable(_marketingFeeReceiver);
    }

    function setSwapBackTweaks(bool _enabled, bool _processEnabled, uint256 _denominator, uint256 _swapMinimum) external onlyOwner {
        require(_denominator > 0);
        swapEnabled = _enabled;
        processEnabled = _processEnabled;
        swapThreshold = _totalSupply / _denominator;
        swapMinimum = _swapMinimum * (10 ** _decimals);
    }

    function getCurrentSupply() public view returns (uint256) {
        return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO));
    }

    event FundsDistributed(uint256 marketingFee);
    
}

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":"marketingFee","type":"uint256"}],"name":"FundsDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"ProtectedWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"lp","type":"address"},{"internalType":"bool","name":"isPool","type":"bool"}],"name":"addLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","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":"approveMaximum","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeApplied","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeAmount","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":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":[{"internalType":"address","name":"","type":"address"}],"name":"protected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protectionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setFeeApplied","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","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":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaximumWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_protect","type":"bool"},{"internalType":"uint256","name":"_addTime","type":"uint256"}],"name":"setProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setRateLimitTX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_processEnabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"},{"internalType":"uint256","name":"_swapMinimum","type":"uint256"}],"name":"setSwapBackTweaks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyNumerator","type":"uint256"},{"internalType":"uint256","name":"sellNumerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"},{"internalType":"uint256","name":"_protection","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"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":"amount","type":"uint256"},{"internalType":"bool","name":"procedure","type":"bool"}],"name":"withdrawFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000cf8565b633b9aca00620000aa919062000d49565b600355600a6001600354620000c0919062000d49565b620000cc919062000dc3565b600455600a6001600354620000e2919062000d49565b620000ee919062000dc3565b600555600a600160035462000104919062000d49565b62000110919062000dc3565b6006556087600e556064600f55600f54600e546200012f919062000dfb565b601055600060115561271060125530601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960006101000a81548160ff0219169083151502179055506000601960016101000a81548160ff0219169083151502179055506000602160006101000a81548160ff0219169083151502179055506000602160016101000a81548160ff0219169083151502179055506001602160026101000a81548160ff02191690831515021790555060026022556000602360006101000a81548160ff0219169083151502179055506001602360016101000a81548160ff0219169083151502179055506103e8600354620002a7919062000dc3565b602455612710600354620002bc919062000dc3565b602555348015620002cc57600080fd5b506000620002df62000b2d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200044e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000474919062000ea0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000523919062000ea0565b306040518363ffffffff1660e01b81526004016200054392919062000ee3565b6020604051808303816000875af115801562000563573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000589919062000ea0565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160176000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860006200067862000b3560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600b6000620007ee62000b3560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60006200085562000b3560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006200091462000b3560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003546007600062000a7062000b3560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000abe62000b3560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000b1f919062000f21565b60405180910390a362000f3e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bec5780860481111562000bc45762000bc362000b5e565b5b600185161562000bd45780820291505b808102905062000be48562000b8d565b945062000ba4565b94509492505050565b60008262000c07576001905062000cda565b8162000c17576000905062000cda565b816001811462000c30576002811462000c3b5762000c71565b600191505062000cda565b60ff84111562000c505762000c4f62000b5e565b5b8360020a91508482111562000c6a5762000c6962000b5e565b5b5062000cda565b5060208310610133831016604e8410600b841016171562000cab5782820a90508381111562000ca55762000ca462000b5e565b5b62000cda565b62000cba848484600162000b9a565b9250905081840481111562000cd45762000cd362000b5e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000d058262000ce1565b915062000d128362000ceb565b925062000d417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bf5565b905092915050565b600062000d568262000ce1565b915062000d638362000ce1565b925082820262000d738162000ce1565b9150828204841483151762000d8d5762000d8c62000b5e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dd08262000ce1565b915062000ddd8362000ce1565b92508262000df05762000def62000d94565b5b828204905092915050565b600062000e088262000ce1565b915062000e158362000ce1565b925082820190508082111562000e305762000e2f62000b5e565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e688262000e3b565b9050919050565b62000e7a8162000e5b565b811462000e8657600080fd5b50565b60008151905062000e9a8162000e6f565b92915050565b60006020828403121562000eb95762000eb862000e36565b5b600062000ec98482850162000e89565b91505092915050565b62000edd8162000e5b565b82525050565b600060408201905062000efa600083018562000ed2565b62000f09602083018462000ed2565b9392505050565b62000f1b8162000ce1565b82525050565b600060208201905062000f38600083018462000f10565b92915050565b61441a8062000f4e6000396000f3fe6080604052600436106102e85760003560e01c806395d89b4111610190578063d6860142116100dc578063f1f3bca311610095578063f8821a621161006f578063f8821a6214610b5b578063f887ea4014610b86578063fabb0b4f14610bb1578063fbba721914610bdc576102ef565b8063f1f3bca314610acc578063f2fde38b14610b09578063f84ba65d14610b32576102ef565b8063d6860142146109c0578063d8a55ab7146109e9578063dd62ed3e14610a12578063dfa3a2e314610a4f578063e94151bc14610a78578063e96fada214610aa1576102ef565b8063b75346c411610149578063bf5c982211610123578063bf5c982214610904578063bfa21d6a1461092f578063c1adf7bc1461095a578063c95bab6914610997576102ef565b8063b75346c414610885578063bafe446b146108ae578063bf56b371146108d9576102ef565b806395d89b41146107615780639b02c4021461078c5780639d96ae75146107b7578063a4b45c00146107f4578063a8aa1b311461081d578063a9059cbb14610848576102ef565b80635804f1e41161024f5780636f4ce428116102085780637723937a116101e25780637723937a146106a55780637c6e0a5e146106ce578063893d20e81461070b5780638da5cb5b14610736576102ef565b80636f4ce4281461061457806370a0823114610651578063715018a61461068e576102ef565b80635804f1e41461051657806361e08e721461054157806363a803e11461056c578063658d4b7f1461059757806367243482146105c05780636ddd1713146105e9576102ef565b806323b872dd116102a157806323b872dd14610406578063313ce56714610443578063421dd7c71461046e57806346d7edaa14610485578063492a937b146104c25780634f3e1efc146104eb576102ef565b8063014c6966146102f45780630445b6671461031d57806306fdde0314610348578063095ea7b31461037357806318160ddd146103b0578063234e9494146103db576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b5061031b6004803603810190610316919061336b565b610c07565b005b34801561032957600080fd5b50610332610d21565b60405161033f91906133cd565b60405180910390f35b34801561035457600080fd5b5061035d610d27565b60405161036a9190613478565b60405180910390f35b34801561037f57600080fd5b5061039a600480360381019061039591906134f8565b610d64565b6040516103a79190613553565b60405180910390f35b3480156103bc57600080fd5b506103c5610e56565b6040516103d291906133cd565b60405180910390f35b3480156103e757600080fd5b506103f0610e60565b6040516103fd91906133cd565b60405180910390f35b34801561041257600080fd5b5061042d6004803603810190610428919061356e565b610e82565b60405161043a9190613553565b60405180910390f35b34801561044f57600080fd5b50610458611044565b60405161046591906135dd565b60405180910390f35b34801561047a57600080fd5b5061048361104d565b005b34801561049157600080fd5b506104ac60048036038101906104a791906135f8565b61111c565b6040516104b991906133cd565b60405180910390f35b3480156104ce57600080fd5b506104e960048036038101906104e49190613651565b611134565b005b3480156104f757600080fd5b506105006112b4565b60405161050d91906133cd565b60405180910390f35b34801561052257600080fd5b5061052b611328565b60405161053891906133cd565b60405180910390f35b34801561054d57600080fd5b5061055661132e565b60405161056391906133cd565b60405180910390f35b34801561057857600080fd5b50610581611334565b60405161058e91906133cd565b60405180910390f35b3480156105a357600080fd5b506105be60048036038101906105b99190613651565b611356565b005b3480156105cc57600080fd5b506105e760048036038101906105e2919061374c565b611446565b005b3480156105f557600080fd5b506105fe611686565b60405161060b9190613553565b60405180910390f35b34801561062057600080fd5b5061063b600480360381019061063691906135f8565b611699565b60405161064891906133cd565b60405180910390f35b34801561065d57600080fd5b50610678600480360381019061067391906135f8565b6116b1565b60405161068591906133cd565b60405180910390f35b34801561069a57600080fd5b506106a36116fa565b005b3480156106b157600080fd5b506106cc60048036038101906106c791906137cd565b61184d565b005b3480156106da57600080fd5b506106f560048036038101906106f091906135f8565b611974565b6040516107029190613553565b60405180910390f35b34801561071757600080fd5b506107206119a7565b60405161072d919061381c565b60405180910390f35b34801561074257600080fd5b5061074b6119b6565b604051610758919061381c565b60405180910390f35b34801561076d57600080fd5b506107766119df565b6040516107839190613478565b60405180910390f35b34801561079857600080fd5b506107a1611a1c565b6040516107ae91906133cd565b60405180910390f35b3480156107c357600080fd5b506107de60048036038101906107d99190613837565b611a22565b6040516107eb9190613553565b60405180910390f35b34801561080057600080fd5b5061081b60048036038101906108169190613864565b611b14565b005b34801561082957600080fd5b50610832611c2f565b60405161083f919061381c565b60405180910390f35b34801561085457600080fd5b5061086f600480360381019061086a91906134f8565b611c55565b60405161087c9190613553565b60405180910390f35b34801561089157600080fd5b506108ac60048036038101906108a79190613651565b611c6a565b005b3480156108ba57600080fd5b506108c3611d8c565b6040516108d091906133cd565b60405180910390f35b3480156108e557600080fd5b506108ee611dae565b6040516108fb91906133cd565b60405180910390f35b34801561091057600080fd5b50610919611db4565b60405161092691906133cd565b60405180910390f35b34801561093b57600080fd5b50610944611dbc565b60405161095191906138c5565b60405180910390f35b34801561096657600080fd5b50610981600480360381019061097c91906135f8565b611de2565b60405161098e91906133cd565b60405180910390f35b3480156109a357600080fd5b506109be60048036038101906109b991906138e0565b611dfa565b005b3480156109cc57600080fd5b506109e760048036038101906109e29190613920565b611ed9565b005b3480156109f557600080fd5b50610a106004803603810190610a0b9190613960565b611fd0565b005b348015610a1e57600080fd5b50610a396004803603810190610a349190613864565b61207d565b604051610a4691906133cd565b60405180910390f35b348015610a5b57600080fd5b50610a766004803603810190610a71919061336b565b612104565b005b348015610a8457600080fd5b50610a9f6004803603810190610a9a919061398d565b61220f565b005b348015610aad57600080fd5b50610ab661231e565b604051610ac3919061381c565b60405180910390f35b348015610ad857600080fd5b50610af36004803603810190610aee9190613837565b612344565b604051610b0091906133cd565b60405180910390f35b348015610b1557600080fd5b50610b306004803603810190610b2b91906135f8565b61239b565b005b348015610b3e57600080fd5b50610b596004803603810190610b549190613651565b61255c565b005b348015610b6757600080fd5b50610b7061264c565b604051610b7d91906133cd565b60405180910390f35b348015610b9257600080fd5b50610b9b612652565b604051610ba89190613a53565b60405180910390f35b348015610bbd57600080fd5b50610bc6612678565b604051610bd391906133cd565b60405180910390f35b348015610be857600080fd5b50610bf161267e565b604051610bfe9190613553565b60405180910390f35b610c0f612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9390613aba565b60405180910390fd5b602160009054906101000a900460ff16158015610cb95750600a83105b610cc257600080fd5b826020819055506001602160006101000a81548160ff02191690831515021790555043601e819055508142610cf79190613b09565b601c819055506009600a610d0b9190613c70565b81610d169190613cbb565b601a81905550505050565b60245481565b60606040518060400160405280600b81526020017f5368696259652057657374000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e4491906133cd565b60405180910390a36001905092915050565b6000600354905090565b60006009600a610e709190613c70565b600554610e7d9190613d2c565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110305781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610faf9190613d5d565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61103b84848461269d565b90509392505050565b60006009905090565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661108e612695565b73ffffffffffffffffffffffffffffffffffffffff16146110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90613ddd565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506000601960006101000a81548160ff021916908315150217905550565b60186020528060005260406000206000915090505481565b61113c612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c090613aba565b60405180910390fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125090613e6f565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006112e1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116b1565b61130c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116b1565b6113169190613b09565b6003546113239190613d5d565b905090565b601f5481565b60225481565b60006009600a6113449190613c70565b6006546113519190613d2c565b905090565b61135e612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290613aba565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61144e612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d290613aba565b60405180910390fd5b6000848490501180156114f357508383905082829050145b6114fc57600080fd5b600033905060005b8585905081101561167e576017600087878481811061152657611525613e8f565b5b905060200201602081019061153b91906135f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116015750600d60008787848181106115a2576115a1613e8f565b5b90506020020160208101906115b791906135f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561166b576116698287878481811061161d5761161c613e8f565b5b905060200201602081019061163291906135f8565b6009600a6116409190613c70565b87878681811061165357611652613e8f565b5b905060200201356116649190613cbb565b612c26565b505b808061167690613ebe565b915050611504565b505050505050565b602360009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611702612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461178f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178690613aba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661188e612695565b73ffffffffffffffffffffffffffffffffffffffff16146118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db90613ddd565b60405180910390fd5b80611970576000479050602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606485846119389190613cbb565b6119429190613d2c565b9081150290604051600060405180830381858888f1935050505015801561196d573d6000803e3d6000fd5b50505b5050565b60006119a0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d64565b9050919050565b60006119b16119b6565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5348494259450000000000000000000000000000000000000000000000000000815250905090565b601b5481565b6000602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a65612695565b73ffffffffffffffffffffffffffffffffffffffff1614611abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab290613ddd565b60405180910390fd5b8115611ae1576001602160026101000a81548160ff021916908315150217905550611afd565b6000602160026101000a81548160ff0219169083151502179055505b602160029054906101000a900460ff169050919050565b611b1c612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613aba565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c6233848461269d565b905092915050565b611c72612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf690613aba565b60405180910390fd5b8015611d885781602660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b60006009600a611d9c9190613c70565b600454611da99190613d2c565b905090565b601e5481565b600047905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b611e02612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8690613aba565b60405180910390fd5b600082118015611e9f5750600081115b8015611ead57506127108111155b611eb657600080fd5b8082600354611ec59190613cbb565b611ecf9190613d2c565b6006819055505050565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611f1a612695565b73ffffffffffffffffffffffffffffffffffffffff1614611f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6790613ddd565b60405180910390fd5b601960019054906101000a900460ff1615611f8a57600080fd5b81601960006101000a81548160ff021916908315150217905550620151808110611fb357600080fd5b80601c6000828254611fc59190613b09565b925050819055505050565b611fd8612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205c90613aba565b60405180910390fd5b603c81111561207357600080fd5b8060228190555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61210c612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219090613aba565b60405180910390fd5b6000831180156121a95750600082115b80156121b55750600081115b80156121c357506127108111155b6121cc57600080fd5b80836003546121db9190613cbb565b6121e59190613d2c565b60048190555080826003546121fa9190613cbb565b6122049190613d2c565b600581905550505050565b612217612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229b90613aba565b60405180910390fd5b600082116122b157600080fd5b83602360006101000a81548160ff02191690831515021790555082602360016101000a81548160ff021916908315150217905550816003546122f39190613d2c565b6024819055506009600a6123079190613c70565b816123129190613cbb565b60258190555050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600043602054601e546123579190613b09565b10612366576012549050612396565b81156123835760115460105461237c9190613b09565b9050612396565b6011546010546123939190613d5d565b90505b919050565b6123a3612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242790613aba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361249f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249690613f78565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612564612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e890613aba565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60255481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60205481565b6000602160029054906101000a900460ff16905090565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361270d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270490613fe4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361277c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277390614050565b60405180910390fd5b600082116127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b6906140bc565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283890614128565b60405180910390fd5b612849612db4565b15801561289f5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561293957600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292790614194565b60405180910390fd5b612938612dc1565b5b602160009054906101000a900460ff16612a2e57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129ee5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2490614200565b60405180910390fd5b5b602660009054906101000a900460ff1615612a5557612a4e848484612c26565b9050612c1f565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa09190613d5d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612aee85612dec565b612af85782612b03565b612b028484612e43565b5b9050612b0e84612f26565b15612b26576000831115612b2557612b2461301b565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b719190613b09565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c1191906133cd565b60405180910390a360019150505b9392505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c739190613d5d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d019190613b09565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612da191906133cd565b60405180910390a3600190509392505050565b600080601e541415905090565b43601e8190555042601f819055506001602360006101000a81548160ff021916908315150217905550565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601254612ea383612344565b85612eae9190613cbb565b612eb89190613d2c565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f099190613b09565b925050819055508084612f1c9190613d5d565b9250505092915050565b6000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f8f5750602660009054906101000a900460ff16155b8015612fa75750602360009054906101000a900460ff165b8015612ffc5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156130145750602160029054906101000a900460ff165b9050919050565b6001602660006101000a81548160ff0219169083151502179055506000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561330e576000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff8111156130df576130de614220565b5b60405190808252806020026020018201604052801561310d5781602001602082028036833780820191505090505b509050308160008151811061312557613124613e8f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f09190614264565b8160018151811061320457613203613e8f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016132a295949392919061438a565b600060405180830381600087803b1580156132bc57600080fd5b505af11580156132d0573d6000803e3d6000fd5b505050507f8eecd6f35243e1875b7143b093766263953bc97e6e92213e4ae934c67e1fe0de8260405161330391906133cd565b60405180910390a150505b6000602660006101000a81548160ff021916908315150217905550565b600080fd5b600080fd5b6000819050919050565b61334881613335565b811461335357600080fd5b50565b6000813590506133658161333f565b92915050565b6000806000606084860312156133845761338361332b565b5b600061339286828701613356565b93505060206133a386828701613356565b92505060406133b486828701613356565b9150509250925092565b6133c781613335565b82525050565b60006020820190506133e260008301846133be565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613422578082015181840152602081019050613407565b60008484015250505050565b6000601f19601f8301169050919050565b600061344a826133e8565b61345481856133f3565b9350613464818560208601613404565b61346d8161342e565b840191505092915050565b60006020820190508181036000830152613492818461343f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134c58261349a565b9050919050565b6134d5816134ba565b81146134e057600080fd5b50565b6000813590506134f2816134cc565b92915050565b6000806040838503121561350f5761350e61332b565b5b600061351d858286016134e3565b925050602061352e85828601613356565b9150509250929050565b60008115159050919050565b61354d81613538565b82525050565b60006020820190506135686000830184613544565b92915050565b6000806000606084860312156135875761358661332b565b5b6000613595868287016134e3565b93505060206135a6868287016134e3565b92505060406135b786828701613356565b9150509250925092565b600060ff82169050919050565b6135d7816135c1565b82525050565b60006020820190506135f260008301846135ce565b92915050565b60006020828403121561360e5761360d61332b565b5b600061361c848285016134e3565b91505092915050565b61362e81613538565b811461363957600080fd5b50565b60008135905061364b81613625565b92915050565b600080604083850312156136685761366761332b565b5b6000613676858286016134e3565b92505060206136878582860161363c565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126136b6576136b5613691565b5b8235905067ffffffffffffffff8111156136d3576136d2613696565b5b6020830191508360208202830111156136ef576136ee61369b565b5b9250929050565b60008083601f84011261370c5761370b613691565b5b8235905067ffffffffffffffff81111561372957613728613696565b5b6020830191508360208202830111156137455761374461369b565b5b9250929050565b600080600080604085870312156137665761376561332b565b5b600085013567ffffffffffffffff81111561378457613783613330565b5b613790878288016136a0565b9450945050602085013567ffffffffffffffff8111156137b3576137b2613330565b5b6137bf878288016136f6565b925092505092959194509250565b600080604083850312156137e4576137e361332b565b5b60006137f285828601613356565b92505060206138038582860161363c565b9150509250929050565b613816816134ba565b82525050565b6000602082019050613831600083018461380d565b92915050565b60006020828403121561384d5761384c61332b565b5b600061385b8482850161363c565b91505092915050565b6000806040838503121561387b5761387a61332b565b5b6000613889858286016134e3565b925050602061389a858286016134e3565b9150509250929050565b60006138af8261349a565b9050919050565b6138bf816138a4565b82525050565b60006020820190506138da60008301846138b6565b92915050565b600080604083850312156138f7576138f661332b565b5b600061390585828601613356565b925050602061391685828601613356565b9150509250929050565b600080604083850312156139375761393661332b565b5b60006139458582860161363c565b925050602061395685828601613356565b9150509250929050565b6000602082840312156139765761397561332b565b5b600061398484828501613356565b91505092915050565b600080600080608085870312156139a7576139a661332b565b5b60006139b58782880161363c565b94505060206139c68782880161363c565b93505060406139d787828801613356565b92505060606139e887828801613356565b91505092959194509250565b6000819050919050565b6000613a19613a14613a0f8461349a565b6139f4565b61349a565b9050919050565b6000613a2b826139fe565b9050919050565b6000613a3d82613a20565b9050919050565b613a4d81613a32565b82525050565b6000602082019050613a686000830184613a44565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613aa46020836133f3565b9150613aaf82613a6e565b602082019050919050565b60006020820190508181036000830152613ad381613a97565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b1482613335565b9150613b1f83613335565b9250828201905080821115613b3757613b36613ada565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613b9457808604811115613b7057613b6f613ada565b5b6001851615613b7f5780820291505b8081029050613b8d85613b3d565b9450613b54565b94509492505050565b600082613bad5760019050613c69565b81613bbb5760009050613c69565b8160018114613bd15760028114613bdb57613c0a565b6001915050613c69565b60ff841115613bed57613bec613ada565b5b8360020a915084821115613c0457613c03613ada565b5b50613c69565b5060208310610133831016604e8410600b8410161715613c3f5782820a905083811115613c3a57613c39613ada565b5b613c69565b613c4c8484846001613b4a565b92509050818404811115613c6357613c62613ada565b5b81810290505b9392505050565b6000613c7b82613335565b9150613c86836135c1565b9250613cb37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b9d565b905092915050565b6000613cc682613335565b9150613cd183613335565b9250828202613cdf81613335565b91508282048414831517613cf657613cf5613ada565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d3782613335565b9150613d4283613335565b925082613d5257613d51613cfd565b5b828204905092915050565b6000613d6882613335565b9150613d7383613335565b9250828203905081811115613d8b57613d8a613ada565b5b92915050565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b6000613dc7601b836133f3565b9150613dd282613d91565b602082019050919050565b60006020820190508181036000830152613df681613dba565b9050919050565b7f43616e277420616c7465722063757272656e74206c697175696469747920706160008201527f6972000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e596022836133f3565b9150613e6482613dfd565b604082019050919050565b60006020820190508181036000830152613e8881613e4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613ec982613335565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613efb57613efa613ada565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f626026836133f3565b9150613f6d82613f06565b604082019050919050565b60006020820190508181036000830152613f9181613f55565b9050919050565b7f45524332303a207472616e736665722066726f6d203078300000000000000000600082015250565b6000613fce6018836133f3565b9150613fd982613f98565b602082019050919050565b60006020820190508181036000830152613ffd81613fc1565b9050919050565b7f45524332303a207472616e7366657220746f2030783000000000000000000000600082015250565b600061403a6016836133f3565b915061404582614004565b602082019050919050565b600060208201905081810360008301526140698161402d565b9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b60006140a66015836133f3565b91506140b182614070565b602082019050919050565b600060208201905081810360008301526140d581614099565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006141126014836133f3565b915061411d826140dc565b602082019050919050565b6000602082019050818103600083015261414181614105565b9050919050565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b600061417e6018836133f3565b915061418982614148565b602082019050919050565b600060208201905081810360008301526141ad81614171565b9050919050565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b60006141ea6015836133f3565b91506141f5826141b4565b602082019050919050565b60006020820190508181036000830152614219816141dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061425e816134cc565b92915050565b60006020828403121561427a5761427961332b565b5b60006142888482850161424f565b91505092915050565b6000819050919050565b60006142b66142b16142ac84614291565b6139f4565b613335565b9050919050565b6142c68161429b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614301816134ba565b82525050565b600061431383836142f8565b60208301905092915050565b6000602082019050919050565b6000614337826142cc565b61434181856142d7565b935061434c836142e8565b8060005b8381101561437d5781516143648882614307565b975061436f8361431f565b925050600181019050614350565b5085935050505092915050565b600060a08201905061439f60008301886133be565b6143ac60208301876142bd565b81810360408301526143be818661432c565b90506143cd606083018561380d565b6143da60808301846133be565b969550505050505056fea264697066735822122004f35fd006f558380f8551fe8601edc394af1b11d0b4cb12656ed33ee218688664736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c806395d89b4111610190578063d6860142116100dc578063f1f3bca311610095578063f8821a621161006f578063f8821a6214610b5b578063f887ea4014610b86578063fabb0b4f14610bb1578063fbba721914610bdc576102ef565b8063f1f3bca314610acc578063f2fde38b14610b09578063f84ba65d14610b32576102ef565b8063d6860142146109c0578063d8a55ab7146109e9578063dd62ed3e14610a12578063dfa3a2e314610a4f578063e94151bc14610a78578063e96fada214610aa1576102ef565b8063b75346c411610149578063bf5c982211610123578063bf5c982214610904578063bfa21d6a1461092f578063c1adf7bc1461095a578063c95bab6914610997576102ef565b8063b75346c414610885578063bafe446b146108ae578063bf56b371146108d9576102ef565b806395d89b41146107615780639b02c4021461078c5780639d96ae75146107b7578063a4b45c00146107f4578063a8aa1b311461081d578063a9059cbb14610848576102ef565b80635804f1e41161024f5780636f4ce428116102085780637723937a116101e25780637723937a146106a55780637c6e0a5e146106ce578063893d20e81461070b5780638da5cb5b14610736576102ef565b80636f4ce4281461061457806370a0823114610651578063715018a61461068e576102ef565b80635804f1e41461051657806361e08e721461054157806363a803e11461056c578063658d4b7f1461059757806367243482146105c05780636ddd1713146105e9576102ef565b806323b872dd116102a157806323b872dd14610406578063313ce56714610443578063421dd7c71461046e57806346d7edaa14610485578063492a937b146104c25780634f3e1efc146104eb576102ef565b8063014c6966146102f45780630445b6671461031d57806306fdde0314610348578063095ea7b31461037357806318160ddd146103b0578063234e9494146103db576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b5061031b6004803603810190610316919061336b565b610c07565b005b34801561032957600080fd5b50610332610d21565b60405161033f91906133cd565b60405180910390f35b34801561035457600080fd5b5061035d610d27565b60405161036a9190613478565b60405180910390f35b34801561037f57600080fd5b5061039a600480360381019061039591906134f8565b610d64565b6040516103a79190613553565b60405180910390f35b3480156103bc57600080fd5b506103c5610e56565b6040516103d291906133cd565b60405180910390f35b3480156103e757600080fd5b506103f0610e60565b6040516103fd91906133cd565b60405180910390f35b34801561041257600080fd5b5061042d6004803603810190610428919061356e565b610e82565b60405161043a9190613553565b60405180910390f35b34801561044f57600080fd5b50610458611044565b60405161046591906135dd565b60405180910390f35b34801561047a57600080fd5b5061048361104d565b005b34801561049157600080fd5b506104ac60048036038101906104a791906135f8565b61111c565b6040516104b991906133cd565b60405180910390f35b3480156104ce57600080fd5b506104e960048036038101906104e49190613651565b611134565b005b3480156104f757600080fd5b506105006112b4565b60405161050d91906133cd565b60405180910390f35b34801561052257600080fd5b5061052b611328565b60405161053891906133cd565b60405180910390f35b34801561054d57600080fd5b5061055661132e565b60405161056391906133cd565b60405180910390f35b34801561057857600080fd5b50610581611334565b60405161058e91906133cd565b60405180910390f35b3480156105a357600080fd5b506105be60048036038101906105b99190613651565b611356565b005b3480156105cc57600080fd5b506105e760048036038101906105e2919061374c565b611446565b005b3480156105f557600080fd5b506105fe611686565b60405161060b9190613553565b60405180910390f35b34801561062057600080fd5b5061063b600480360381019061063691906135f8565b611699565b60405161064891906133cd565b60405180910390f35b34801561065d57600080fd5b50610678600480360381019061067391906135f8565b6116b1565b60405161068591906133cd565b60405180910390f35b34801561069a57600080fd5b506106a36116fa565b005b3480156106b157600080fd5b506106cc60048036038101906106c791906137cd565b61184d565b005b3480156106da57600080fd5b506106f560048036038101906106f091906135f8565b611974565b6040516107029190613553565b60405180910390f35b34801561071757600080fd5b506107206119a7565b60405161072d919061381c565b60405180910390f35b34801561074257600080fd5b5061074b6119b6565b604051610758919061381c565b60405180910390f35b34801561076d57600080fd5b506107766119df565b6040516107839190613478565b60405180910390f35b34801561079857600080fd5b506107a1611a1c565b6040516107ae91906133cd565b60405180910390f35b3480156107c357600080fd5b506107de60048036038101906107d99190613837565b611a22565b6040516107eb9190613553565b60405180910390f35b34801561080057600080fd5b5061081b60048036038101906108169190613864565b611b14565b005b34801561082957600080fd5b50610832611c2f565b60405161083f919061381c565b60405180910390f35b34801561085457600080fd5b5061086f600480360381019061086a91906134f8565b611c55565b60405161087c9190613553565b60405180910390f35b34801561089157600080fd5b506108ac60048036038101906108a79190613651565b611c6a565b005b3480156108ba57600080fd5b506108c3611d8c565b6040516108d091906133cd565b60405180910390f35b3480156108e557600080fd5b506108ee611dae565b6040516108fb91906133cd565b60405180910390f35b34801561091057600080fd5b50610919611db4565b60405161092691906133cd565b60405180910390f35b34801561093b57600080fd5b50610944611dbc565b60405161095191906138c5565b60405180910390f35b34801561096657600080fd5b50610981600480360381019061097c91906135f8565b611de2565b60405161098e91906133cd565b60405180910390f35b3480156109a357600080fd5b506109be60048036038101906109b991906138e0565b611dfa565b005b3480156109cc57600080fd5b506109e760048036038101906109e29190613920565b611ed9565b005b3480156109f557600080fd5b50610a106004803603810190610a0b9190613960565b611fd0565b005b348015610a1e57600080fd5b50610a396004803603810190610a349190613864565b61207d565b604051610a4691906133cd565b60405180910390f35b348015610a5b57600080fd5b50610a766004803603810190610a71919061336b565b612104565b005b348015610a8457600080fd5b50610a9f6004803603810190610a9a919061398d565b61220f565b005b348015610aad57600080fd5b50610ab661231e565b604051610ac3919061381c565b60405180910390f35b348015610ad857600080fd5b50610af36004803603810190610aee9190613837565b612344565b604051610b0091906133cd565b60405180910390f35b348015610b1557600080fd5b50610b306004803603810190610b2b91906135f8565b61239b565b005b348015610b3e57600080fd5b50610b596004803603810190610b549190613651565b61255c565b005b348015610b6757600080fd5b50610b7061264c565b604051610b7d91906133cd565b60405180910390f35b348015610b9257600080fd5b50610b9b612652565b604051610ba89190613a53565b60405180910390f35b348015610bbd57600080fd5b50610bc6612678565b604051610bd391906133cd565b60405180910390f35b348015610be857600080fd5b50610bf161267e565b604051610bfe9190613553565b60405180910390f35b610c0f612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9390613aba565b60405180910390fd5b602160009054906101000a900460ff16158015610cb95750600a83105b610cc257600080fd5b826020819055506001602160006101000a81548160ff02191690831515021790555043601e819055508142610cf79190613b09565b601c819055506009600a610d0b9190613c70565b81610d169190613cbb565b601a81905550505050565b60245481565b60606040518060400160405280600b81526020017f5368696259652057657374000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e4491906133cd565b60405180910390a36001905092915050565b6000600354905090565b60006009600a610e709190613c70565b600554610e7d9190613d2c565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110305781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610faf9190613d5d565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61103b84848461269d565b90509392505050565b60006009905090565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661108e612695565b73ffffffffffffffffffffffffffffffffffffffff16146110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90613ddd565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506000601960006101000a81548160ff021916908315150217905550565b60186020528060005260406000206000915090505481565b61113c612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c090613aba565b60405180910390fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125090613e6f565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006112e1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116b1565b61130c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116b1565b6113169190613b09565b6003546113239190613d5d565b905090565b601f5481565b60225481565b60006009600a6113449190613c70565b6006546113519190613d2c565b905090565b61135e612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290613aba565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61144e612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d290613aba565b60405180910390fd5b6000848490501180156114f357508383905082829050145b6114fc57600080fd5b600033905060005b8585905081101561167e576017600087878481811061152657611525613e8f565b5b905060200201602081019061153b91906135f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116015750600d60008787848181106115a2576115a1613e8f565b5b90506020020160208101906115b791906135f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561166b576116698287878481811061161d5761161c613e8f565b5b905060200201602081019061163291906135f8565b6009600a6116409190613c70565b87878681811061165357611652613e8f565b5b905060200201356116649190613cbb565b612c26565b505b808061167690613ebe565b915050611504565b505050505050565b602360009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611702612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461178f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178690613aba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661188e612695565b73ffffffffffffffffffffffffffffffffffffffff16146118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db90613ddd565b60405180910390fd5b80611970576000479050602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606485846119389190613cbb565b6119429190613d2c565b9081150290604051600060405180830381858888f1935050505015801561196d573d6000803e3d6000fd5b50505b5050565b60006119a0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d64565b9050919050565b60006119b16119b6565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5348494259450000000000000000000000000000000000000000000000000000815250905090565b601b5481565b6000602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a65612695565b73ffffffffffffffffffffffffffffffffffffffff1614611abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab290613ddd565b60405180910390fd5b8115611ae1576001602160026101000a81548160ff021916908315150217905550611afd565b6000602160026101000a81548160ff0219169083151502179055505b602160029054906101000a900460ff169050919050565b611b1c612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613aba565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c6233848461269d565b905092915050565b611c72612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf690613aba565b60405180910390fd5b8015611d885781602660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b60006009600a611d9c9190613c70565b600454611da99190613d2c565b905090565b601e5481565b600047905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b611e02612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8690613aba565b60405180910390fd5b600082118015611e9f5750600081115b8015611ead57506127108111155b611eb657600080fd5b8082600354611ec59190613cbb565b611ecf9190613d2c565b6006819055505050565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611f1a612695565b73ffffffffffffffffffffffffffffffffffffffff1614611f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6790613ddd565b60405180910390fd5b601960019054906101000a900460ff1615611f8a57600080fd5b81601960006101000a81548160ff021916908315150217905550620151808110611fb357600080fd5b80601c6000828254611fc59190613b09565b925050819055505050565b611fd8612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205c90613aba565b60405180910390fd5b603c81111561207357600080fd5b8060228190555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61210c612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219090613aba565b60405180910390fd5b6000831180156121a95750600082115b80156121b55750600081115b80156121c357506127108111155b6121cc57600080fd5b80836003546121db9190613cbb565b6121e59190613d2c565b60048190555080826003546121fa9190613cbb565b6122049190613d2c565b600581905550505050565b612217612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229b90613aba565b60405180910390fd5b600082116122b157600080fd5b83602360006101000a81548160ff02191690831515021790555082602360016101000a81548160ff021916908315150217905550816003546122f39190613d2c565b6024819055506009600a6123079190613c70565b816123129190613cbb565b60258190555050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600043602054601e546123579190613b09565b10612366576012549050612396565b81156123835760115460105461237c9190613b09565b9050612396565b6011546010546123939190613d5d565b90505b919050565b6123a3612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242790613aba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361249f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249690613f78565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612564612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e890613aba565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60255481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60205481565b6000602160029054906101000a900460ff16905090565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361270d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270490613fe4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361277c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277390614050565b60405180910390fd5b600082116127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b6906140bc565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283890614128565b60405180910390fd5b612849612db4565b15801561289f5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561293957600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292790614194565b60405180910390fd5b612938612dc1565b5b602160009054906101000a900460ff16612a2e57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129ee5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2490614200565b60405180910390fd5b5b602660009054906101000a900460ff1615612a5557612a4e848484612c26565b9050612c1f565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa09190613d5d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612aee85612dec565b612af85782612b03565b612b028484612e43565b5b9050612b0e84612f26565b15612b26576000831115612b2557612b2461301b565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b719190613b09565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c1191906133cd565b60405180910390a360019150505b9392505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c739190613d5d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d019190613b09565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612da191906133cd565b60405180910390a3600190509392505050565b600080601e541415905090565b43601e8190555042601f819055506001602360006101000a81548160ff021916908315150217905550565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601254612ea383612344565b85612eae9190613cbb565b612eb89190613d2c565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f099190613b09565b925050819055508084612f1c9190613d5d565b9250505092915050565b6000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f8f5750602660009054906101000a900460ff16155b8015612fa75750602360009054906101000a900460ff165b8015612ffc5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156130145750602160029054906101000a900460ff165b9050919050565b6001602660006101000a81548160ff0219169083151502179055506000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561330e576000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff8111156130df576130de614220565b5b60405190808252806020026020018201604052801561310d5781602001602082028036833780820191505090505b509050308160008151811061312557613124613e8f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f09190614264565b8160018151811061320457613203613e8f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016132a295949392919061438a565b600060405180830381600087803b1580156132bc57600080fd5b505af11580156132d0573d6000803e3d6000fd5b505050507f8eecd6f35243e1875b7143b093766263953bc97e6e92213e4ae934c67e1fe0de8260405161330391906133cd565b60405180910390a150505b6000602660006101000a81548160ff021916908315150217905550565b600080fd5b600080fd5b6000819050919050565b61334881613335565b811461335357600080fd5b50565b6000813590506133658161333f565b92915050565b6000806000606084860312156133845761338361332b565b5b600061339286828701613356565b93505060206133a386828701613356565b92505060406133b486828701613356565b9150509250925092565b6133c781613335565b82525050565b60006020820190506133e260008301846133be565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613422578082015181840152602081019050613407565b60008484015250505050565b6000601f19601f8301169050919050565b600061344a826133e8565b61345481856133f3565b9350613464818560208601613404565b61346d8161342e565b840191505092915050565b60006020820190508181036000830152613492818461343f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134c58261349a565b9050919050565b6134d5816134ba565b81146134e057600080fd5b50565b6000813590506134f2816134cc565b92915050565b6000806040838503121561350f5761350e61332b565b5b600061351d858286016134e3565b925050602061352e85828601613356565b9150509250929050565b60008115159050919050565b61354d81613538565b82525050565b60006020820190506135686000830184613544565b92915050565b6000806000606084860312156135875761358661332b565b5b6000613595868287016134e3565b93505060206135a6868287016134e3565b92505060406135b786828701613356565b9150509250925092565b600060ff82169050919050565b6135d7816135c1565b82525050565b60006020820190506135f260008301846135ce565b92915050565b60006020828403121561360e5761360d61332b565b5b600061361c848285016134e3565b91505092915050565b61362e81613538565b811461363957600080fd5b50565b60008135905061364b81613625565b92915050565b600080604083850312156136685761366761332b565b5b6000613676858286016134e3565b92505060206136878582860161363c565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126136b6576136b5613691565b5b8235905067ffffffffffffffff8111156136d3576136d2613696565b5b6020830191508360208202830111156136ef576136ee61369b565b5b9250929050565b60008083601f84011261370c5761370b613691565b5b8235905067ffffffffffffffff81111561372957613728613696565b5b6020830191508360208202830111156137455761374461369b565b5b9250929050565b600080600080604085870312156137665761376561332b565b5b600085013567ffffffffffffffff81111561378457613783613330565b5b613790878288016136a0565b9450945050602085013567ffffffffffffffff8111156137b3576137b2613330565b5b6137bf878288016136f6565b925092505092959194509250565b600080604083850312156137e4576137e361332b565b5b60006137f285828601613356565b92505060206138038582860161363c565b9150509250929050565b613816816134ba565b82525050565b6000602082019050613831600083018461380d565b92915050565b60006020828403121561384d5761384c61332b565b5b600061385b8482850161363c565b91505092915050565b6000806040838503121561387b5761387a61332b565b5b6000613889858286016134e3565b925050602061389a858286016134e3565b9150509250929050565b60006138af8261349a565b9050919050565b6138bf816138a4565b82525050565b60006020820190506138da60008301846138b6565b92915050565b600080604083850312156138f7576138f661332b565b5b600061390585828601613356565b925050602061391685828601613356565b9150509250929050565b600080604083850312156139375761393661332b565b5b60006139458582860161363c565b925050602061395685828601613356565b9150509250929050565b6000602082840312156139765761397561332b565b5b600061398484828501613356565b91505092915050565b600080600080608085870312156139a7576139a661332b565b5b60006139b58782880161363c565b94505060206139c68782880161363c565b93505060406139d787828801613356565b92505060606139e887828801613356565b91505092959194509250565b6000819050919050565b6000613a19613a14613a0f8461349a565b6139f4565b61349a565b9050919050565b6000613a2b826139fe565b9050919050565b6000613a3d82613a20565b9050919050565b613a4d81613a32565b82525050565b6000602082019050613a686000830184613a44565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613aa46020836133f3565b9150613aaf82613a6e565b602082019050919050565b60006020820190508181036000830152613ad381613a97565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b1482613335565b9150613b1f83613335565b9250828201905080821115613b3757613b36613ada565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613b9457808604811115613b7057613b6f613ada565b5b6001851615613b7f5780820291505b8081029050613b8d85613b3d565b9450613b54565b94509492505050565b600082613bad5760019050613c69565b81613bbb5760009050613c69565b8160018114613bd15760028114613bdb57613c0a565b6001915050613c69565b60ff841115613bed57613bec613ada565b5b8360020a915084821115613c0457613c03613ada565b5b50613c69565b5060208310610133831016604e8410600b8410161715613c3f5782820a905083811115613c3a57613c39613ada565b5b613c69565b613c4c8484846001613b4a565b92509050818404811115613c6357613c62613ada565b5b81810290505b9392505050565b6000613c7b82613335565b9150613c86836135c1565b9250613cb37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b9d565b905092915050565b6000613cc682613335565b9150613cd183613335565b9250828202613cdf81613335565b91508282048414831517613cf657613cf5613ada565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d3782613335565b9150613d4283613335565b925082613d5257613d51613cfd565b5b828204905092915050565b6000613d6882613335565b9150613d7383613335565b9250828203905081811115613d8b57613d8a613ada565b5b92915050565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b6000613dc7601b836133f3565b9150613dd282613d91565b602082019050919050565b60006020820190508181036000830152613df681613dba565b9050919050565b7f43616e277420616c7465722063757272656e74206c697175696469747920706160008201527f6972000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e596022836133f3565b9150613e6482613dfd565b604082019050919050565b60006020820190508181036000830152613e8881613e4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613ec982613335565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613efb57613efa613ada565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f626026836133f3565b9150613f6d82613f06565b604082019050919050565b60006020820190508181036000830152613f9181613f55565b9050919050565b7f45524332303a207472616e736665722066726f6d203078300000000000000000600082015250565b6000613fce6018836133f3565b9150613fd982613f98565b602082019050919050565b60006020820190508181036000830152613ffd81613fc1565b9050919050565b7f45524332303a207472616e7366657220746f2030783000000000000000000000600082015250565b600061403a6016836133f3565b915061404582614004565b602082019050919050565b600060208201905081810360008301526140698161402d565b9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b60006140a66015836133f3565b91506140b182614070565b602082019050919050565b600060208201905081810360008301526140d581614099565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006141126014836133f3565b915061411d826140dc565b602082019050919050565b6000602082019050818103600083015261414181614105565b9050919050565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b600061417e6018836133f3565b915061418982614148565b602082019050919050565b600060208201905081810360008301526141ad81614171565b9050919050565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b60006141ea6015836133f3565b91506141f5826141b4565b602082019050919050565b60006020820190508181036000830152614219816141dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061425e816134cc565b92915050565b60006020828403121561427a5761427961332b565b5b60006142888482850161424f565b91505092915050565b6000819050919050565b60006142b66142b16142ac84614291565b6139f4565b613335565b9050919050565b6142c68161429b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614301816134ba565b82525050565b600061431383836142f8565b60208301905092915050565b6000602082019050919050565b6000614337826142cc565b61434181856142d7565b935061434c836142e8565b8060005b8381101561437d5781516143648882614307565b975061436f8361431f565b925050600181019050614350565b5085935050505092915050565b600060a08201905061439f60008301886133be565b6143ac60208301876142bd565b81810360408301526143be818661432c565b90506143cd606083018561380d565b6143da60808301846133be565b969550505050505056fea264697066735822122004f35fd006f558380f8551fe8601edc394af1b11d0b4cb12656ed33ee218688664736f6c63430008110033

Deployed Bytecode Sourcemap

5194:13640:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10625:374;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7094:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8477:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9218:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8225:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8742:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11561:341;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8319:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11258:127;;;;;;;;;;;;;:::i;:::-;;6545:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16576:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18638:134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6830:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6986:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8855:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17760:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9784:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7023:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5844:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8966:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4789:148;;;;;;;;;;;;;:::i;:::-;;10264:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9442:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8554:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4579:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8396:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6701:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16768:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18022:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6770:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11397:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9580:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8631:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6798:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10516:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6275:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5895:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17529:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11011:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17031:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9077:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17169:348;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18272:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6350:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15165:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4943:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17887:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7151:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6394:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6864:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16942:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10625:374;4714:12;:10;:12::i;:::-;4704:22;;:6;;;;;;;;;;:22;;;4696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10744:12:::1;;;;;;;;;;;10743:13;:33;;;;;10774:2;10760:11;:16;10743:33;10735:42;;;::::0;::::1;;10801:11;10788:10;:24;;;;10838:4;10823:12;;:19;;;;;;;;;;;;;;;;;;10866:12;10853:10;:25;;;;10925:11;10907:15;:29;;;;:::i;:::-;10889:15;:47;;;;5488:1;10975:2;:15;;;;:::i;:::-;10965:6;:26;;;;:::i;:::-;10947:15;:44;;;;10625:374:::0;;;:::o;7094:50::-;;;;:::o;8477:71::-;8516:13;8540:5;;;;;;;;;;;;;;;;;8533:12;;8477:71;:::o;9218:216::-;9293:4;9345:6;9310:11;:23;9322:10;9310:23;;;;;;;;;;;;;;;:32;9334:7;9310:32;;;;;;;;;;;;;;;:41;;;;9388:7;9367:37;;9376:10;9367:37;;;9397:6;9367:37;;;;;;:::i;:::-;;;;;;;;9422:4;9415:11;;9218:216;;;;:::o;8225:88::-;8280:7;8298:12;;8291:19;;8225:88;:::o;8742:107::-;8792:7;5488:1;8830:2;:15;;;;:::i;:::-;8810:16;;:36;;;;:::i;:::-;8803:43;;8742:107;:::o;11561:341::-;11661:4;11716:17;11681:11;:19;11693:6;11681:19;;;;;;;;;;;;;;;:31;11701:10;11681:31;;;;;;;;;;;;;;;;:52;11678:157;;11817:6;11783:11;:19;11795:6;11783:19;;;;;;;;;;;;;;;:31;11803:10;11783:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;11749:11;:19;11761:6;11749:19;;;;;;;;;;;;;;;:31;11769:10;11749:31;;;;;;;;;;;;;;;:74;;;;11678:157;11854:40;11868:6;11876:9;11887:6;11854:13;:40::i;:::-;11847:47;;11561:341;;;;;:::o;8319:71::-;8362:5;5488:1;8371:16;;8319:71;:::o;11258:127::-;7357:9;;;;;;;;;;;7341:25;;:12;:10;:12::i;:::-;:25;;;7333:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11337:4:::1;11316:18;;:25;;;;;;;;;;;;;;;;;;11372:5;11352:17;;:25;;;;;;;;;;;;;;;;;;11258:127::o:0;6545:45::-;;;;;;;;;;;;;;;;;:::o;16576:184::-;4714:12;:10;:12::i;:::-;4704:22;;:6;;;;;;;;;;:22;;;4696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16671:4:::1;;;;;;;;;;;16665:10;;:2;:10;;::::0;16657:57:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16746:6;16725:14;:18;16740:2;16725:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;16576:184:::0;;:::o;18638:134::-;18687:7;18748:15;18758:4;;;;;;;;;;;18748:9;:15::i;:::-;18730;18740:4;;;;;;;;;;;18730:9;:15::i;:::-;:33;;;;:::i;:::-;18714:12;;:50;;;;:::i;:::-;18707:57;;18638:134;:::o;6830:27::-;;;;:::o;6986:28::-;;;;:::o;8855:105::-;8905:7;5488:1;8941:2;:15;;;;:::i;:::-;8923:14;;:34;;;;:::i;:::-;8916:41;;8855:105;:::o;17760:119::-;4714:12;:10;:12::i;:::-;4704:22;;:6;;;;;;;;;;:22;;;4696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17865:6:::1;17843:11;:19;17855:6;17843:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17760:119:::0;;:::o;9784:468::-;4714:12;:10;:12::i;:::-;4704:22;;:6;;;;;;;;;;:22;;;4696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9916:1:::1;9897:9;;:16;;:20;:58;;;;;9939:9;;:16;;9921:7;;:14;;:34;9897:58;9889:67;;;::::0;::::1;;9967:12;9982:10;9967:25;;10010:6;10005:240;10026:9;;:16;;10022:1;:20;10005:240;;;10068:14;:28;10083:9;;10093:1;10083:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10068:28;;;;;;;;;;;;;;;;;;;;;;;;;10067:29;:64;;;;;10101:16;:30;10118:9;;10128:1;10118:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10101:30;;;;;;;;;;;;;;;;;;;;;;;;;10100:31;10067:64;10064:170;;;10152:66;10167:4;10173:9;;10183:1;10173:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5488:1;10201:2;:15;;;;:::i;:::-;10187:7;;10195:1;10187:10;;;;;;;:::i;:::-;;;;;;;;:30;;;;:::i;:::-;10152:14;:66::i;:::-;;10064:170;10044:3;;;;;:::i;:::-;;;;10005:240;;;;9878:374;9784:468:::0;;;;:::o;7023:31::-;;;;;;;;;;;;;:::o;5844:44::-;;;;;;;;;;;;;;;;;:::o;8966:105::-;9032:7;9050:9;:18;9060:7;9050:18;;;;;;;;;;;;;;;;9043:25;;8966:105;;;:::o;4789:148::-;4714:12;:10;:12::i;:::-;4704:22;;:6;;;;;;;;;;:22;;;4696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4896:1:::1;4859:40;;4880:6;::::0;::::1;;;;;;;;4859:40;;;;;;;;;;;;4927:1;4910:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4789:148::o:0;10264:244::-;7357:9;;;;;;;;;;;7341:25;;:12;:10;:12::i;:::-;:25;;;7333:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10351:9:::1;10346:155;;10378:17;10398:21;10378:41;;10442:9;;;;;;;;;;;10434:27;;:55;10485:3;10475:6;10463:9;:18;;;;:::i;:::-;10462:26;;;;:::i;:::-;10434:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10362:139;10346:155;10264:244:::0;;:::o;9442:126::-;9501:4;9525:35;9533:7;9542:17;9525:7;:35::i;:::-;9518:42;;9442:126;;;:::o;8554:71::-;8597:7;8615;:5;:7::i;:::-;8608:14;;8554:71;:::o;4579:79::-;4617:7;4644:6;;;;;;;;;;;4637:13;;4579:79;:::o;8396:75::-;8437:13;8461:7;;;;;;;;;;;;;;;;;8454:14;;8396:75;:::o;6701:30::-;;;;:::o;16768:162::-;16832:4;7357:9;;;;;;;;;;;7341:25;;:12;:10;:12::i;:::-;:25;;;7333:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16853:7:::1;16849:49;;;16872:4;16863:6;;:13;;;;;;;;;;;;;;;;;;16849:49;;;16893:5;16884:6;;:14;;;;;;;;;;;;;;;;;;16849:49;16916:6;;;;;;;;;;;16909:13;;16768:162:::0;;;:::o;18022:242::-;4714:12;:10;:12::i;:::-;4704:22;;:6;;;;;;;;;;:22;;;4696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18170:21:::1;18139:20;;:53;;;;;;;;;;;;;;;;;;18234:21;18203:20;;:53;;;;;;;;;;;;;;;;;;18022:242:::0;;:::o;6770:19::-;;;;;;;;;;;;;:::o;11397:156::-;11477:4;11501:44;11515:10;11527:9;11538:6;11501:13;:44::i;:::-;11494:51;;11397:156;;;;:::o;9580:192::-;4714:12;:10;:12::i;:::-;4704:22;;:6;;;;;;;;;;:22;;;4696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9667:8:::1;9663:102;;;9705:5;9693:9;;:17;;;;;;;;;;;;;;;;;;9748:5;9725:20;;:28;;;;;;;;;;;;;;;;;;9663:102;9580:192:::0;;:::o;8631:105::-;8680:7;5488:1;8717:2;:15;;;;:::i;:::-;8698;;:35;;;;:::i;:::-;8691:42;;8631:105;:::o;6798:25::-;;;;:::o;10516:101::-;10561:7;10588:21;10581:28;;10516:101;:::o;6275:68::-;;;;;;;;;;;;;:::o;5895:43::-;;;;;;;;;;;;;;;;;:::o;17529:223::-;4714:12;:10;:12::i;:::-;4704:22;;:6;;;;;;;;;;:22;;;4696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17643:1:::1;17631:9;:13;:28;;;;;17658:1;17648:7;:11;17631:28;:48;;;;;17674:5;17663:7;:16;;17631:48;17623:57;;;::::0;::::1;;17737:7;17724:9;17709:12;;:24;;;;:::i;:::-;17708:36;;;;:::i;:::-;17691:14;:53;;;;17529:223:::0;;:::o;11011:235::-;7357:9;;;;;;;;;;;7341:25;;:12;:10;:12::i;:::-;:25;;;7333:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11105:18:::1;;;;;;;;;;;11104:19;11096:28;;;::::0;::::1;;11155:8;11135:17;;:28;;;;;;;;;;;;;;;;;;11193:6;11182:8;:17;11174:26;;;::::0;::::1;;11230:8;11211:15;;:27;;;;;;;:::i;:::-;;;;;;;;11011:235:::0;;:::o;17031:130::-;4714:12;:10;:12::i;:::-;4704:22;;:6;;;;;;;;;;:22;;;4696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17115:10:::1;17107:4;:18;;17099:27;;;::::0;::::1;;17149:4;17137:9;:16;;;;17031:130:::0;:::o;9077:133::-;9161:7;9179:11;:19;9191:6;9179:19;;;;;;;;;;;;;;;:28;9199:7;9179:28;;;;;;;;;;;;;;;;9172:35;;9077:133;;;;:::o;17169:348::-;4714:12;:10;:12::i;:::-;4704:22;;:6;;;;;;;;;;:22;;;4696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17313:1:::1;17298:12;:16;:37;;;;;17334:1;17318:13;:17;17298:37;:52;;;;;17349:1;17339:7;:11;17298:52;:72;;;;;17365:5;17354:7;:16;;17298:72;17290:81;;;::::0;::::1;;17432:7;17416:12;17401;;:27;;;;:::i;:::-;17400:39;;;;:::i;:::-;17382:15;:57;;;;17502:7;17485:13;17470:12;;:28;;;;:::i;:::-;17469:40;;;;:::i;:::-;17450:16;:59;;;;17169:348:::0;;;:::o;18272:358::-;4714:12;:10;:12::i;:::-;4704:22;;:6;;;;;;;;;;:22;;;4696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18433:1:::1;18418:12;:16;18410:25;;;::::0;::::1;;18460:8;18446:11;;:22;;;;;;;;;;;;;;;;;;18496:15;18479:14;;:32;;;;;;;;;;;;;;;;;;18553:12;18538;;:27;;;;:::i;:::-;18522:13;:43;;;;5488:1;18606:2;:15;;;;:::i;:::-;18590:12;:32;;;;:::i;:::-;18576:11;:46;;;;18272:358:::0;;;;:::o;6350:35::-;;;;;;;;;;;;;:::o;15165:239::-;15221:7;15271:12;15257:10;;15244;;:23;;;;:::i;:::-;:39;15241:69;;15293:14;;15286:21;;;;15241:69;15324:7;15320:39;;;15351:8;;15340;;:19;;;;:::i;:::-;15333:26;;;;15320:39;15388:8;;15377;;:19;;;;:::i;:::-;15370:26;;15165:239;;;;:::o;4943:244::-;4714:12;:10;:12::i;:::-;4704:22;;:6;;;;;;;;;;:22;;;4696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5052:1:::1;5032:22;;:8;:22;;::::0;5024:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5142:8;5113:38;;5134:6;::::0;::::1;;;;;;;;5113:38;;;;;;;;;;;;5171:8;5162:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4943:244:::0;:::o;17887:127::-;4714:12;:10;:12::i;:::-;4704:22;;:6;;;;;;;;;;:22;;;4696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18000:6:::1;17974:15;:23;17990:6;17974:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17887:127:::0;;:::o;7151:49::-;;;;:::o;6394:24::-;;;;;;;;;;;;;:::o;6864:25::-;;;;:::o;16942:81::-;16985:4;17009:6;;;;;;;;;;;17002:13;;16942:81;:::o;2608:107::-;2653:15;2696:10;2681:26;;2608:107;:::o;11910:1095::-;12002:4;12045:1;12027:20;;:6;:20;;;12019:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12116:1;12095:23;;:9;:23;;;12087:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12173:1;12164:6;:10;12156:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12240:6;12219:9;:17;12229:6;12219:17;;;;;;;;;;;;;;;;:27;;12211:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12286:10;:8;:10::i;:::-;12285:11;:40;;;;;12300:14;:25;12315:9;12300:25;;;;;;;;;;;;;;;;;;;;;;;;;12285:40;12282:120;;;12336:16;:24;12353:6;12336:24;;;;;;;;;;;;;;;;;;;;;;;;;12328:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;12391:8;:6;:8::i;:::-;12282:120;12416:12;;;;;;;;;;;12412:111;;12439:16;:24;12456:6;12439:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;12467:16;:27;12484:9;12467:27;;;;;;;;;;;;;;;;;;;;;;;;;12439:55;12431:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;12412:111;12540:6;;;;;;;;;;;12537:63;;;12556:41;12571:6;12579:9;12590:6;12556:14;:41::i;:::-;12549:48;;;;12537:63;12652:6;12632:9;:17;12642:6;12632:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;12612:9;:17;12622:6;12612:17;;;;;;;;;;;;;;;:46;;;;12671:22;12696:19;12708:6;12696:11;:19::i;:::-;:57;;12747:6;12696:57;;;12718:26;12726:9;12737:6;12718:7;:26::i;:::-;12696:57;12671:82;;12777:25;12792:9;12777:14;:25::i;:::-;12774:60;;;12818:1;12809:6;:10;12805:26;;;12821:10;:8;:10::i;:::-;12805:26;12774:60;12900:14;12877:9;:20;12887:9;12877:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;12854:9;:20;12864:9;12854:20;;;;;;;;;;;;;;;:60;;;;12949:9;12932:43;;12941:6;12932:43;;;12960:14;12932:43;;;;;;:::i;:::-;;;;;;;;12993:4;12986:11;;;11910:1095;;;;;;:::o;13264:300::-;13357:4;13414:6;13394:9;:17;13404:6;13394:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;13374:9;:17;13384:6;13374:17;;;;;;;;;;;;;;;:46;;;;13477:6;13454:9;:20;13464:9;13454:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;13431:9;:20;13441:9;13431:20;;;;;;;;;;;;;;;:52;;;;13516:9;13499:35;;13508:6;13499:35;;;13527:6;13499:35;;;;;;:::i;:::-;;;;;;;;13552:4;13545:11;;13264:300;;;;;:::o;13017:90::-;13060:4;13098:1;13084:10;;:15;;13077:22;;13017:90;:::o;13115:141::-;13166:12;13153:10;:25;;;;13204:15;13189:12;:30;;;;13244:4;13230:11;;:18;;;;;;;;;;;;;;;;;;13115:141::o;15045:112::-;15105:4;15130:11;:19;15142:6;15130:19;;;;;;;;;;;;;;;;;;;;;;;;;15129:20;15122:27;;15045:112;;;:::o;15412:317::-;15482:7;15502:12;15517:14;:25;15532:9;15517:25;;;;;;;;;;;;;;;;;;;;;;;;;15502:40;;15553:17;15607:14;;15583:20;15595:7;15583:11;:20::i;:::-;15574:6;:29;;;;:::i;:::-;15573:48;;;;:::i;:::-;15553:68;;15670:9;15642;:24;15660:4;15642:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;15712:9;15703:6;:18;;;;:::i;:::-;15696:25;;;;15412:317;;;;:::o;15737:226::-;15803:4;15828:14;:26;15843:10;15828:26;;;;;;;;;;;;;;;;;;;;;;;;;15827:27;:47;;;;;15868:6;;;;;;;;;;;15867:7;15827:47;:71;;;;;15887:11;;;;;;;;;;;15827:71;:109;;;;;15911:14;:25;15926:9;15911:25;;;;;;;;;;;;;;;;;;;;;;;;;15827:109;:128;;;;;15949:6;;;;;;;;;;;15827:128;15820:135;;15737:226;;;:::o;15971:593::-;7256:4;7247:6;;:13;;;;;;;;;;;;;;;;;;16051:1:::1;16024:9;:24;16042:4;16024:24;;;;;;;;;;;;;;;;:28;16020:537;;;16068:20;16091:9;:24;16109:4;16091:24;;;;;;;;;;;;;;;;16068:47;;16140:21;16178:1;16164:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16140:40;;16213:4;16195;16200:1;16195:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16243:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16233:4;16238:1;16233:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16281:6;;;;;;;;;;;:57;;;16357:12;16388:1;16408:4;16439;16463:15;16281:212;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16515:30;16532:12;16515:30;;;;;;:::i;:::-;;;;;;;;16053:504;;16020:537;7274:5:::0;7265:6;;:14;;;;;;;;;;;;;;;;;;15971:593::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:619::-;767:6;775;783;832:2;820:9;811:7;807:23;803:32;800:119;;;838:79;;:::i;:::-;800:119;958:1;983:53;1028:7;1019:6;1008:9;1004:22;983:53;:::i;:::-;973:63;;929:117;1085:2;1111:53;1156:7;1147:6;1136:9;1132:22;1111:53;:::i;:::-;1101:63;;1056:118;1213:2;1239:53;1284:7;1275:6;1264:9;1260:22;1239:53;:::i;:::-;1229:63;;1184:118;690:619;;;;;:::o;1315:118::-;1402:24;1420:5;1402:24;:::i;:::-;1397:3;1390:37;1315:118;;:::o;1439:222::-;1532:4;1570:2;1559:9;1555:18;1547:26;;1583:71;1651:1;1640:9;1636:17;1627:6;1583:71;:::i;:::-;1439:222;;;;:::o;1667:99::-;1719:6;1753:5;1747:12;1737:22;;1667:99;;;:::o;1772:169::-;1856:11;1890:6;1885:3;1878:19;1930:4;1925:3;1921:14;1906:29;;1772:169;;;;:::o;1947:246::-;2028:1;2038:113;2052:6;2049:1;2046:13;2038:113;;;2137:1;2132:3;2128:11;2122:18;2118:1;2113:3;2109:11;2102:39;2074:2;2071:1;2067:10;2062:15;;2038:113;;;2185:1;2176:6;2171:3;2167:16;2160:27;2009:184;1947:246;;;:::o;2199:102::-;2240:6;2291:2;2287:7;2282:2;2275:5;2271:14;2267:28;2257:38;;2199:102;;;:::o;2307:377::-;2395:3;2423:39;2456:5;2423:39;:::i;:::-;2478:71;2542:6;2537:3;2478:71;:::i;:::-;2471:78;;2558:65;2616:6;2611:3;2604:4;2597:5;2593:16;2558:65;:::i;:::-;2648:29;2670:6;2648:29;:::i;:::-;2643:3;2639:39;2632:46;;2399:285;2307:377;;;;:::o;2690:313::-;2803:4;2841:2;2830:9;2826:18;2818:26;;2890:9;2884:4;2880:20;2876:1;2865:9;2861:17;2854:47;2918:78;2991:4;2982:6;2918:78;:::i;:::-;2910:86;;2690:313;;;;:::o;3009:126::-;3046:7;3086:42;3079:5;3075:54;3064:65;;3009:126;;;:::o;3141:96::-;3178:7;3207:24;3225:5;3207:24;:::i;:::-;3196:35;;3141:96;;;:::o;3243:122::-;3316:24;3334:5;3316:24;:::i;:::-;3309:5;3306:35;3296:63;;3355:1;3352;3345:12;3296:63;3243:122;:::o;3371:139::-;3417:5;3455:6;3442:20;3433:29;;3471:33;3498:5;3471:33;:::i;:::-;3371:139;;;;:::o;3516:474::-;3584:6;3592;3641:2;3629:9;3620:7;3616:23;3612:32;3609:119;;;3647:79;;:::i;:::-;3609:119;3767:1;3792:53;3837:7;3828:6;3817:9;3813:22;3792:53;:::i;:::-;3782:63;;3738:117;3894:2;3920:53;3965:7;3956:6;3945:9;3941:22;3920:53;:::i;:::-;3910:63;;3865:118;3516:474;;;;;:::o;3996:90::-;4030:7;4073:5;4066:13;4059:21;4048:32;;3996:90;;;:::o;4092:109::-;4173:21;4188:5;4173:21;:::i;:::-;4168:3;4161:34;4092:109;;:::o;4207:210::-;4294:4;4332:2;4321:9;4317:18;4309:26;;4345:65;4407:1;4396:9;4392:17;4383:6;4345:65;:::i;:::-;4207:210;;;;:::o;4423:619::-;4500:6;4508;4516;4565:2;4553:9;4544:7;4540:23;4536:32;4533:119;;;4571:79;;:::i;:::-;4533:119;4691:1;4716:53;4761:7;4752:6;4741:9;4737:22;4716:53;:::i;:::-;4706:63;;4662:117;4818:2;4844:53;4889:7;4880:6;4869:9;4865:22;4844:53;:::i;:::-;4834:63;;4789:118;4946:2;4972:53;5017:7;5008:6;4997:9;4993:22;4972:53;:::i;:::-;4962:63;;4917:118;4423:619;;;;;:::o;5048:86::-;5083:7;5123:4;5116:5;5112:16;5101:27;;5048:86;;;:::o;5140:112::-;5223:22;5239:5;5223:22;:::i;:::-;5218:3;5211:35;5140:112;;:::o;5258:214::-;5347:4;5385:2;5374:9;5370:18;5362:26;;5398:67;5462:1;5451:9;5447:17;5438:6;5398:67;:::i;:::-;5258:214;;;;:::o;5478:329::-;5537:6;5586:2;5574:9;5565:7;5561:23;5557:32;5554:119;;;5592:79;;:::i;:::-;5554:119;5712:1;5737:53;5782:7;5773:6;5762:9;5758:22;5737:53;:::i;:::-;5727:63;;5683:117;5478:329;;;;:::o;5813:116::-;5883:21;5898:5;5883:21;:::i;:::-;5876:5;5873:32;5863:60;;5919:1;5916;5909:12;5863:60;5813:116;:::o;5935:133::-;5978:5;6016:6;6003:20;5994:29;;6032:30;6056:5;6032:30;:::i;:::-;5935:133;;;;:::o;6074:468::-;6139:6;6147;6196:2;6184:9;6175:7;6171:23;6167:32;6164:119;;;6202:79;;:::i;:::-;6164:119;6322:1;6347:53;6392:7;6383:6;6372:9;6368:22;6347:53;:::i;:::-;6337:63;;6293:117;6449:2;6475:50;6517:7;6508:6;6497:9;6493:22;6475:50;:::i;:::-;6465:60;;6420:115;6074:468;;;;;:::o;6548:117::-;6657:1;6654;6647:12;6671:117;6780:1;6777;6770:12;6794:117;6903:1;6900;6893:12;6934:568;7007:8;7017:6;7067:3;7060:4;7052:6;7048:17;7044:27;7034:122;;7075:79;;:::i;:::-;7034:122;7188:6;7175:20;7165:30;;7218:18;7210:6;7207:30;7204:117;;;7240:79;;:::i;:::-;7204:117;7354:4;7346:6;7342:17;7330:29;;7408:3;7400:4;7392:6;7388:17;7378:8;7374:32;7371:41;7368:128;;;7415:79;;:::i;:::-;7368:128;6934:568;;;;;:::o;7525:::-;7598:8;7608:6;7658:3;7651:4;7643:6;7639:17;7635:27;7625:122;;7666:79;;:::i;:::-;7625:122;7779:6;7766:20;7756:30;;7809:18;7801:6;7798:30;7795:117;;;7831:79;;:::i;:::-;7795:117;7945:4;7937:6;7933:17;7921:29;;7999:3;7991:4;7983:6;7979:17;7969:8;7965:32;7962:41;7959:128;;;8006:79;;:::i;:::-;7959:128;7525:568;;;;;:::o;8099:934::-;8221:6;8229;8237;8245;8294:2;8282:9;8273:7;8269:23;8265:32;8262:119;;;8300:79;;:::i;:::-;8262:119;8448:1;8437:9;8433:17;8420:31;8478:18;8470:6;8467:30;8464:117;;;8500:79;;:::i;:::-;8464:117;8613:80;8685:7;8676:6;8665:9;8661:22;8613:80;:::i;:::-;8595:98;;;;8391:312;8770:2;8759:9;8755:18;8742:32;8801:18;8793:6;8790:30;8787:117;;;8823:79;;:::i;:::-;8787:117;8936:80;9008:7;8999:6;8988:9;8984:22;8936:80;:::i;:::-;8918:98;;;;8713:313;8099:934;;;;;;;:::o;9039:468::-;9104:6;9112;9161:2;9149:9;9140:7;9136:23;9132:32;9129:119;;;9167:79;;:::i;:::-;9129:119;9287:1;9312:53;9357:7;9348:6;9337:9;9333:22;9312:53;:::i;:::-;9302:63;;9258:117;9414:2;9440:50;9482:7;9473:6;9462:9;9458:22;9440:50;:::i;:::-;9430:60;;9385:115;9039:468;;;;;:::o;9513:118::-;9600:24;9618:5;9600:24;:::i;:::-;9595:3;9588:37;9513:118;;:::o;9637:222::-;9730:4;9768:2;9757:9;9753:18;9745:26;;9781:71;9849:1;9838:9;9834:17;9825:6;9781:71;:::i;:::-;9637:222;;;;:::o;9865:323::-;9921:6;9970:2;9958:9;9949:7;9945:23;9941:32;9938:119;;;9976:79;;:::i;:::-;9938:119;10096:1;10121:50;10163:7;10154:6;10143:9;10139:22;10121:50;:::i;:::-;10111:60;;10067:114;9865:323;;;;:::o;10194:474::-;10262:6;10270;10319:2;10307:9;10298:7;10294:23;10290:32;10287:119;;;10325:79;;:::i;:::-;10287:119;10445:1;10470:53;10515:7;10506:6;10495:9;10491:22;10470:53;:::i;:::-;10460:63;;10416:117;10572:2;10598:53;10643:7;10634:6;10623:9;10619:22;10598:53;:::i;:::-;10588:63;;10543:118;10194:474;;;;;:::o;10674:104::-;10719:7;10748:24;10766:5;10748:24;:::i;:::-;10737:35;;10674:104;;;:::o;10784:142::-;10887:32;10913:5;10887:32;:::i;:::-;10882:3;10875:45;10784:142;;:::o;10932:254::-;11041:4;11079:2;11068:9;11064:18;11056:26;;11092:87;11176:1;11165:9;11161:17;11152:6;11092:87;:::i;:::-;10932:254;;;;:::o;11192:474::-;11260:6;11268;11317:2;11305:9;11296:7;11292:23;11288:32;11285:119;;;11323:79;;:::i;:::-;11285:119;11443:1;11468:53;11513:7;11504:6;11493:9;11489:22;11468:53;:::i;:::-;11458:63;;11414:117;11570:2;11596:53;11641:7;11632:6;11621:9;11617:22;11596:53;:::i;:::-;11586:63;;11541:118;11192:474;;;;;:::o;11672:468::-;11737:6;11745;11794:2;11782:9;11773:7;11769:23;11765:32;11762:119;;;11800:79;;:::i;:::-;11762:119;11920:1;11945:50;11987:7;11978:6;11967:9;11963:22;11945:50;:::i;:::-;11935:60;;11891:114;12044:2;12070:53;12115:7;12106:6;12095:9;12091:22;12070:53;:::i;:::-;12060:63;;12015:118;11672:468;;;;;:::o;12146:329::-;12205:6;12254:2;12242:9;12233:7;12229:23;12225:32;12222:119;;;12260:79;;:::i;:::-;12222:119;12380:1;12405:53;12450:7;12441:6;12430:9;12426:22;12405:53;:::i;:::-;12395:63;;12351:117;12146:329;;;;:::o;12481:753::-;12561:6;12569;12577;12585;12634:3;12622:9;12613:7;12609:23;12605:33;12602:120;;;12641:79;;:::i;:::-;12602:120;12761:1;12786:50;12828:7;12819:6;12808:9;12804:22;12786:50;:::i;:::-;12776:60;;12732:114;12885:2;12911:50;12953:7;12944:6;12933:9;12929:22;12911:50;:::i;:::-;12901:60;;12856:115;13010:2;13036:53;13081:7;13072:6;13061:9;13057:22;13036:53;:::i;:::-;13026:63;;12981:118;13138:2;13164:53;13209:7;13200:6;13189:9;13185:22;13164:53;:::i;:::-;13154:63;;13109:118;12481:753;;;;;;;:::o;13240:60::-;13268:3;13289:5;13282:12;;13240:60;;;:::o;13306:142::-;13356:9;13389:53;13407:34;13416:24;13434:5;13416:24;:::i;:::-;13407:34;:::i;:::-;13389:53;:::i;:::-;13376:66;;13306:142;;;:::o;13454:126::-;13504:9;13537:37;13568:5;13537:37;:::i;:::-;13524:50;;13454:126;;;:::o;13586:144::-;13654:9;13687:37;13718:5;13687:37;:::i;:::-;13674:50;;13586:144;;;:::o;13736:167::-;13841:55;13890:5;13841:55;:::i;:::-;13836:3;13829:68;13736:167;;:::o;13909:258::-;14020:4;14058:2;14047:9;14043:18;14035:26;;14071:89;14157:1;14146:9;14142:17;14133:6;14071:89;:::i;:::-;13909:258;;;;:::o;14173:182::-;14313:34;14309:1;14301:6;14297:14;14290:58;14173:182;:::o;14361:366::-;14503:3;14524:67;14588:2;14583:3;14524:67;:::i;:::-;14517:74;;14600:93;14689:3;14600:93;:::i;:::-;14718:2;14713:3;14709:12;14702:19;;14361:366;;;:::o;14733:419::-;14899:4;14937:2;14926:9;14922:18;14914:26;;14986:9;14980:4;14976:20;14972:1;14961:9;14957:17;14950:47;15014:131;15140:4;15014:131;:::i;:::-;15006:139;;14733:419;;;:::o;15158:180::-;15206:77;15203:1;15196:88;15303:4;15300:1;15293:15;15327:4;15324:1;15317:15;15344:191;15384:3;15403:20;15421:1;15403:20;:::i;:::-;15398:25;;15437:20;15455:1;15437:20;:::i;:::-;15432:25;;15480:1;15477;15473:9;15466:16;;15501:3;15498:1;15495:10;15492:36;;;15508:18;;:::i;:::-;15492:36;15344:191;;;;:::o;15541:102::-;15583:8;15630:5;15627:1;15623:13;15602:34;;15541:102;;;:::o;15649:848::-;15710:5;15717:4;15741:6;15732:15;;15765:5;15756:14;;15779:712;15800:1;15790:8;15787:15;15779:712;;;15895:4;15890:3;15886:14;15880:4;15877:24;15874:50;;;15904:18;;:::i;:::-;15874:50;15954:1;15944:8;15940:16;15937:451;;;16369:4;16362:5;16358:16;16349:25;;15937:451;16419:4;16413;16409:15;16401:23;;16449:32;16472:8;16449:32;:::i;:::-;16437:44;;15779:712;;;15649:848;;;;;;;:::o;16503:1073::-;16557:5;16748:8;16738:40;;16769:1;16760:10;;16771:5;;16738:40;16797:4;16787:36;;16814:1;16805:10;;16816:5;;16787:36;16883:4;16931:1;16926:27;;;;16967:1;16962:191;;;;16876:277;;16926:27;16944:1;16935:10;;16946:5;;;16962:191;17007:3;16997:8;16994:17;16991:43;;;17014:18;;:::i;:::-;16991:43;17063:8;17060:1;17056:16;17047:25;;17098:3;17091:5;17088:14;17085:40;;;17105:18;;:::i;:::-;17085:40;17138:5;;;16876:277;;17262:2;17252:8;17249:16;17243:3;17237:4;17234:13;17230:36;17212:2;17202:8;17199:16;17194:2;17188:4;17185:12;17181:35;17165:111;17162:246;;;17318:8;17312:4;17308:19;17299:28;;17353:3;17346:5;17343:14;17340:40;;;17360:18;;:::i;:::-;17340:40;17393:5;;17162:246;17433:42;17471:3;17461:8;17455:4;17452:1;17433:42;:::i;:::-;17418:57;;;;17507:4;17502:3;17498:14;17491:5;17488:25;17485:51;;;17516:18;;:::i;:::-;17485:51;17565:4;17558:5;17554:16;17545:25;;16503:1073;;;;;;:::o;17582:281::-;17640:5;17664:23;17682:4;17664:23;:::i;:::-;17656:31;;17708:25;17724:8;17708:25;:::i;:::-;17696:37;;17752:104;17789:66;17779:8;17773:4;17752:104;:::i;:::-;17743:113;;17582:281;;;;:::o;17869:410::-;17909:7;17932:20;17950:1;17932:20;:::i;:::-;17927:25;;17966:20;17984:1;17966:20;:::i;:::-;17961:25;;18021:1;18018;18014:9;18043:30;18061:11;18043:30;:::i;:::-;18032:41;;18222:1;18213:7;18209:15;18206:1;18203:22;18183:1;18176:9;18156:83;18133:139;;18252:18;;:::i;:::-;18133:139;17917:362;17869:410;;;;:::o;18285:180::-;18333:77;18330:1;18323:88;18430:4;18427:1;18420:15;18454:4;18451:1;18444:15;18471:185;18511:1;18528:20;18546:1;18528:20;:::i;:::-;18523:25;;18562:20;18580:1;18562:20;:::i;:::-;18557:25;;18601:1;18591:35;;18606:18;;:::i;:::-;18591:35;18648:1;18645;18641:9;18636:14;;18471:185;;;;:::o;18662:194::-;18702:4;18722:20;18740:1;18722:20;:::i;:::-;18717:25;;18756:20;18774:1;18756:20;:::i;:::-;18751:25;;18800:1;18797;18793:9;18785:17;;18824:1;18818:4;18815:11;18812:37;;;18829:18;;:::i;:::-;18812:37;18662:194;;;;:::o;18862:177::-;19002:29;18998:1;18990:6;18986:14;18979:53;18862:177;:::o;19045:366::-;19187:3;19208:67;19272:2;19267:3;19208:67;:::i;:::-;19201:74;;19284:93;19373:3;19284:93;:::i;:::-;19402:2;19397:3;19393:12;19386:19;;19045:366;;;:::o;19417:419::-;19583:4;19621:2;19610:9;19606:18;19598:26;;19670:9;19664:4;19660:20;19656:1;19645:9;19641:17;19634:47;19698:131;19824:4;19698:131;:::i;:::-;19690:139;;19417:419;;;:::o;19842:221::-;19982:34;19978:1;19970:6;19966:14;19959:58;20051:4;20046:2;20038:6;20034:15;20027:29;19842:221;:::o;20069:366::-;20211:3;20232:67;20296:2;20291:3;20232:67;:::i;:::-;20225:74;;20308:93;20397:3;20308:93;:::i;:::-;20426:2;20421:3;20417:12;20410:19;;20069:366;;;:::o;20441:419::-;20607:4;20645:2;20634:9;20630:18;20622:26;;20694:9;20688:4;20684:20;20680:1;20669:9;20665:17;20658:47;20722:131;20848:4;20722:131;:::i;:::-;20714:139;;20441:419;;;:::o;20866:180::-;20914:77;20911:1;20904:88;21011:4;21008:1;21001:15;21035:4;21032:1;21025:15;21052:233;21091:3;21114:24;21132:5;21114:24;:::i;:::-;21105:33;;21160:66;21153:5;21150:77;21147:103;;21230:18;;:::i;:::-;21147:103;21277:1;21270:5;21266:13;21259:20;;21052:233;;;:::o;21291:225::-;21431:34;21427:1;21419:6;21415:14;21408:58;21500:8;21495:2;21487:6;21483:15;21476:33;21291:225;:::o;21522:366::-;21664:3;21685:67;21749:2;21744:3;21685:67;:::i;:::-;21678:74;;21761:93;21850:3;21761:93;:::i;:::-;21879:2;21874:3;21870:12;21863:19;;21522:366;;;:::o;21894:419::-;22060:4;22098:2;22087:9;22083:18;22075:26;;22147:9;22141:4;22137:20;22133:1;22122:9;22118:17;22111:47;22175:131;22301:4;22175:131;:::i;:::-;22167:139;;21894:419;;;:::o;22319:174::-;22459:26;22455:1;22447:6;22443:14;22436:50;22319:174;:::o;22499:366::-;22641:3;22662:67;22726:2;22721:3;22662:67;:::i;:::-;22655:74;;22738:93;22827:3;22738:93;:::i;:::-;22856:2;22851:3;22847:12;22840:19;;22499:366;;;:::o;22871:419::-;23037:4;23075:2;23064:9;23060:18;23052:26;;23124:9;23118:4;23114:20;23110:1;23099:9;23095:17;23088:47;23152:131;23278:4;23152:131;:::i;:::-;23144:139;;22871:419;;;:::o;23296:172::-;23436:24;23432:1;23424:6;23420:14;23413:48;23296:172;:::o;23474:366::-;23616:3;23637:67;23701:2;23696:3;23637:67;:::i;:::-;23630:74;;23713:93;23802:3;23713:93;:::i;:::-;23831:2;23826:3;23822:12;23815:19;;23474:366;;;:::o;23846:419::-;24012:4;24050:2;24039:9;24035:18;24027:26;;24099:9;24093:4;24089:20;24085:1;24074:9;24070:17;24063:47;24127:131;24253:4;24127:131;:::i;:::-;24119:139;;23846:419;;;:::o;24271:171::-;24411:23;24407:1;24399:6;24395:14;24388:47;24271:171;:::o;24448:366::-;24590:3;24611:67;24675:2;24670:3;24611:67;:::i;:::-;24604:74;;24687:93;24776:3;24687:93;:::i;:::-;24805:2;24800:3;24796:12;24789:19;;24448:366;;;:::o;24820:419::-;24986:4;25024:2;25013:9;25009:18;25001:26;;25073:9;25067:4;25063:20;25059:1;25048:9;25044:17;25037:47;25101:131;25227:4;25101:131;:::i;:::-;25093:139;;24820:419;;;:::o;25245:170::-;25385:22;25381:1;25373:6;25369:14;25362:46;25245:170;:::o;25421:366::-;25563:3;25584:67;25648:2;25643:3;25584:67;:::i;:::-;25577:74;;25660:93;25749:3;25660:93;:::i;:::-;25778:2;25773:3;25769:12;25762:19;;25421:366;;;:::o;25793:419::-;25959:4;25997:2;25986:9;25982:18;25974:26;;26046:9;26040:4;26036:20;26032:1;26021:9;26017:17;26010:47;26074:131;26200:4;26074:131;:::i;:::-;26066:139;;25793:419;;;:::o;26218:174::-;26358:26;26354:1;26346:6;26342:14;26335:50;26218:174;:::o;26398:366::-;26540:3;26561:67;26625:2;26620:3;26561:67;:::i;:::-;26554:74;;26637:93;26726:3;26637:93;:::i;:::-;26755:2;26750:3;26746:12;26739:19;;26398:366;;;:::o;26770:419::-;26936:4;26974:2;26963:9;26959:18;26951:26;;27023:9;27017:4;27013:20;27009:1;26998:9;26994:17;26987:47;27051:131;27177:4;27051:131;:::i;:::-;27043:139;;26770:419;;;:::o;27195:171::-;27335:23;27331:1;27323:6;27319:14;27312:47;27195:171;:::o;27372:366::-;27514:3;27535:67;27599:2;27594:3;27535:67;:::i;:::-;27528:74;;27611:93;27700:3;27611:93;:::i;:::-;27729:2;27724:3;27720:12;27713:19;;27372:366;;;:::o;27744:419::-;27910:4;27948:2;27937:9;27933:18;27925:26;;27997:9;27991:4;27987:20;27983:1;27972:9;27968:17;27961:47;28025:131;28151:4;28025:131;:::i;:::-;28017:139;;27744:419;;;:::o;28169:180::-;28217:77;28214:1;28207:88;28314:4;28311:1;28304:15;28338:4;28335:1;28328:15;28355:143;28412:5;28443:6;28437:13;28428:22;;28459:33;28486:5;28459:33;:::i;:::-;28355:143;;;;:::o;28504:351::-;28574:6;28623:2;28611:9;28602:7;28598:23;28594:32;28591:119;;;28629:79;;:::i;:::-;28591:119;28749:1;28774:64;28830:7;28821:6;28810:9;28806:22;28774:64;:::i;:::-;28764:74;;28720:128;28504:351;;;;:::o;28861:85::-;28906:7;28935:5;28924:16;;28861:85;;;:::o;28952:158::-;29010:9;29043:61;29061:42;29070:32;29096:5;29070:32;:::i;:::-;29061:42;:::i;:::-;29043:61;:::i;:::-;29030:74;;28952:158;;;:::o;29116:147::-;29211:45;29250:5;29211:45;:::i;:::-;29206:3;29199:58;29116:147;;:::o;29269:114::-;29336:6;29370:5;29364:12;29354:22;;29269:114;;;:::o;29389:184::-;29488:11;29522:6;29517:3;29510:19;29562:4;29557:3;29553:14;29538:29;;29389:184;;;;:::o;29579:132::-;29646:4;29669:3;29661:11;;29699:4;29694:3;29690:14;29682:22;;29579:132;;;:::o;29717:108::-;29794:24;29812:5;29794:24;:::i;:::-;29789:3;29782:37;29717:108;;:::o;29831:179::-;29900:10;29921:46;29963:3;29955:6;29921:46;:::i;:::-;29999:4;29994:3;29990:14;29976:28;;29831:179;;;;:::o;30016:113::-;30086:4;30118;30113:3;30109:14;30101:22;;30016:113;;;:::o;30165:732::-;30284:3;30313:54;30361:5;30313:54;:::i;:::-;30383:86;30462:6;30457:3;30383:86;:::i;:::-;30376:93;;30493:56;30543:5;30493:56;:::i;:::-;30572:7;30603:1;30588:284;30613:6;30610:1;30607:13;30588:284;;;30689:6;30683:13;30716:63;30775:3;30760:13;30716:63;:::i;:::-;30709:70;;30802:60;30855:6;30802:60;:::i;:::-;30792:70;;30648:224;30635:1;30632;30628:9;30623:14;;30588:284;;;30592:14;30888:3;30881:10;;30289:608;;;30165:732;;;;:::o;30903:831::-;31166:4;31204:3;31193:9;31189:19;31181:27;;31218:71;31286:1;31275:9;31271:17;31262:6;31218:71;:::i;:::-;31299:80;31375:2;31364:9;31360:18;31351:6;31299:80;:::i;:::-;31426:9;31420:4;31416:20;31411:2;31400:9;31396:18;31389:48;31454:108;31557:4;31548:6;31454:108;:::i;:::-;31446:116;;31572:72;31640:2;31629:9;31625:18;31616:6;31572:72;:::i;:::-;31654:73;31722:3;31711:9;31707:19;31698:6;31654:73;:::i;:::-;30903:831;;;;;;;;:::o

Swarm Source

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