ETH Price: $3,110.27 (+1.29%)
Gas: 5 Gwei

Token

Shibaldo (SHIBALDO)
 

Overview

Max Total Supply

1,000,000,000 SHIBALDO

Holders

145

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
827,414.716218852 SHIBALDO

Value
$0.00
0x60E4502Be2B623Ed741Be58B86ab4B4C0A46dD6D
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:
SHIBALDO

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-29
*/

/**
                                                                                                                       
  :%%%%%%+    *%%%%%%= +%%%%%%+ -%%%%%%%+ %%%%%%%%%%%*.        -%%%%.      =%%%%%%%*       -%%%%%%%%%%%-      +%%%%%%-  
 =@@@@@@@@%.  #@@@@@@+ *@@@@@@* -@@@@@@@+ @@@@@@@@@@@@@+       %@@@@+      =@@@@@@@#       -@@@@@@@@@@@@*   .#@@@@@@@@+ 
#@@@@@@@@@@@: *%@@@@%- =%@@@%*= :+*@@@%+- ==@@@@+===%@@@=     :@@@@@@      :=*@@@%+=       :*%@@@@##%%@@@% .@@@@@@@@@@@#
@@@@:.  #@@@:   *@@@=   +@@@*     :@@@#     %@@@.   *@@@=     #@@@@@@=       -@@@#           -@@@#   .@@@@ :@@@%  ..@@@@
@@@@.   -===.   #@@@=   +@@@*     :@@@#     %@@@-:::#@@@=    .@@@*@@@%       -@@@#           -@@@#   .@@@@ :@@@%    @@@@
@@@@.           #@@@#+**%@@@*     :@@@#     %@@@@@@@@@%=.    +@@@:=@@@-      -@@@#           -@@@%   .@@@@ :@@@%    @@@@
@@@@%%@@@#.     #@@@@@@@@@@@*     -@@@#     %@@@@@@@@@@#:    @@@%--@@@%      -@@@#           -@@@%   .@@@@ :@@@%    @@@@
-@@@@@@@@@@=    #@@@@@@@@@@@*     -@@@#     %@@@:   #@@@=   +@@@@@@@@@@:     -@@@#           -@@@%   .@@@@ :@@@%    @@@@
 .#@@@@@@@@@:   #@@@=   +@@@+     -@@@#     %@@@.   #@@@=   @@@@:..=@@@*     -@@@#    :::.   -@@@%   .@@@@ :@@@%    @@@@
   :..  #@@@:   #@@@-   +@@@+     =@@@%-. =+@@@@****@@@@-:#%@@@@# .#@@@@*+ :=*@@@%::.:@@@@   -@@@%   .@@@@ :@@@%    @@@@
  .:    #@@@:   #@@@+. :#@@@@%+ =@@@@@@@+ @@@@@@@@@@@@%: -@@@@@@@ :@@@@@@@.=@@@@@@@@@@@@@@ :##@@@@-:.:@@@@ :@@@%    @@@@
@@@@.   %@@@: *%@@@@@= *@@@@@@+ =@@@@@@@+ %%%####****-   :+++++++ .*****## -%@@@@@@@@@@@@@ -@@@@@@@@@@@@@@ :@@@%    @@@@
@@@@%%@@@@@*  #@@@@@@= *@@@%##- .--::..                                          ..::--==+ :%@@@@@@@@@@@*.  *@@@@@%%@@@@
*@@@@@@@@@=   #@%*+=-. ..                                                                       .:-=++*:     -@@@@@@@@@*
 :%@@@@%#:                                                                                                    :#%@@@@%- 
   -:.                                                                                                            .:-   
                         Fully decentralized and community driven DeFi betting protocol.

                                         BUY - STAKE - BET - WIN !
                                                                                                
                                                                                
                                      WEBSITE - https://shibaldo.com/

                                   TWITTER - https://twitter.com/shibaldo7

                                      TELEGRAM - https://t.me/Shibaldo

                                  TELEGRAM NEWS - https://t.me/shibaldotv

                                    MEDIUM - https://medium.com/@shibaldo


*/// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }
    
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

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

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

abstract contract 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 SHIBALDO is IERC20, Ownable {
    using Address for address;
    
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Shibaldo";
    string constant _symbol = "SHIBALDO";
    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 _feeApplied = 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 teamMember;
    modifier onlyTeam() {require(_msgSender() == teamMember, "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 approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }
    
    function setTeamMember(address _team, bool _enabled) external onlyOwner {
         if (_enabled) { 
            teamMember = _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 clearStuckBalance(uint256 amount, bool procedure) external onlyTeam {
        if (!procedure) { 
            uint256 amountETH = address(this).balance;
            payable(teamMember).transfer((amountETH * amount) / 100);
        }
    }

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

    function openTrading(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), "BEP20: transfer from 0x0");
        require(recipient != address(0), "BEP20: 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 = shouldTakeFee(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 (shouldTakeFee(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 shouldTakeFee(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]
        && _feeApplied;
    }

    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) {_feeApplied = true;} else _feeApplied = false;
        return _feeApplied;
    }
    
    function feeApplied() public view returns (bool) {
        return _feeApplied;
    }

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

    function setTxLimit(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 setMaxWallet(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 setSwapBackSettings(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 getCirculatingSupply() 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":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"procedure","type":"bool"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","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":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeBalance","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":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"},{"internalType":"uint256","name":"_protection","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"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":"setMaxWallet","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":"setRateLimit","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":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTeamMember","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":"setTxLimit","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"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000d33565b633b9aca00620000aa919062000e70565b600355600a6001600354620000c0919062000e70565b620000cc919062000ca0565b600455600a6001600354620000e2919062000e70565b620000ee919062000ca0565b600555600a600160035462000104919062000e70565b62000110919062000ca0565b6006556087600e556064600f55600f54600e546200012f919062000c43565b601055600060115561271060125530601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960006101000a81548160ff0219169083151502179055506000601960016101000a81548160ff0219169083151502179055506000602160006101000a81548160ff0219169083151502179055506000602160016101000a81548160ff0219169083151502179055506001602160026101000a81548160ff02191690831515021790555060026022556000602360006101000a81548160ff0219169083151502179055506001602360016101000a81548160ff0219169083151502179055506103e8600354620002a7919062000ca0565b602455612710600354620002bc919062000ca0565b602555348015620002cc57600080fd5b506000620002df62000b5d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044957600080fd5b505afa1580156200045e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000484919062000ba5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200050857600080fd5b505afa1580156200051d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000543919062000ba5565b306040518363ffffffff1660e01b81526004016200056392919062000bf9565b602060405180830381600087803b1580156200057e57600080fd5b505af115801562000593573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005b9919062000ba5565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160176000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60086000620006a862000b6560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600b60006200081e62000b6560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60006200088562000b6560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006200094462000b6560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003546007600062000aa062000b6560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000aee62000b6560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000b4f919062000c26565b60405180910390a362000fa6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062000b9f8162000f8c565b92915050565b60006020828403121562000bbe5762000bbd62000f7a565b5b600062000bce8482850162000b8e565b91505092915050565b62000be28162000ed1565b82525050565b62000bf38162000f05565b82525050565b600060408201905062000c10600083018562000bd7565b62000c1f602083018462000bd7565b9392505050565b600060208201905062000c3d600083018462000be8565b92915050565b600062000c508262000f05565b915062000c5d8362000f05565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c955762000c9462000f1c565b5b828201905092915050565b600062000cad8262000f05565b915062000cba8362000f05565b92508262000ccd5762000ccc62000f4b565b5b828204905092915050565b6000808291508390505b600185111562000d2a5780860481111562000d025762000d0162000f1c565b5b600185161562000d125780820291505b808102905062000d228562000f7f565b945062000ce2565b94509492505050565b600062000d408262000f05565b915062000d4d8362000f0f565b925062000d7c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d84565b905092915050565b60008262000d96576001905062000e69565b8162000da6576000905062000e69565b816001811462000dbf576002811462000dca5762000e00565b600191505062000e69565b60ff84111562000ddf5762000dde62000f1c565b5b8360020a91508482111562000df95762000df862000f1c565b5b5062000e69565b5060208310610133831016604e8410600b841016171562000e3a5782820a90508381111562000e345762000e3362000f1c565b5b62000e69565b62000e49848484600162000cd8565b9250905081840481111562000e635762000e6262000f1c565b5b81810290505b9392505050565b600062000e7d8262000f05565b915062000e8a8362000f05565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ec65762000ec562000f1c565b5b828202905092915050565b600062000ede8262000ee5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000f978162000ed1565b811462000fa357600080fd5b50565b61443d8062000fb66000396000f3fe6080604052600436106102e85760003560e01c806375d1ea8b11610190578063c1adf7bc116100dc578063f1f3bca311610095578063f8821a621161006f578063f8821a6214610b5b578063f887ea4014610b86578063fabb0b4f14610bb1578063fbba721914610bdc576102ef565b8063f1f3bca314610acc578063f2fde38b14610b09578063f84ba65d14610b32576102ef565b8063c1adf7bc146109aa578063c287184e146109e7578063d4c30ceb14610a10578063d686014214610a3b578063dd62ed3e14610a64578063e96fada214610aa1576102ef565b8063a4b45c0011610149578063abe57e7011610123578063abe57e7014610900578063bafe446b14610929578063bf56b37114610954578063bfa21d6a1461097f576102ef565b8063a4b45c001461086f578063a8aa1b3114610898578063a9059cbb146108c3576102ef565b806375d1ea8b1461075d578063893d20e8146107865780638da5cb5b146107b157806395d89b41146107dc5780639b02c402146108075780639d96ae7514610832576102ef565b8063507139351161024f57806363a803e1116102085780636ddd1713116101e25780636ddd1713146106a15780636f4ce428146106cc57806370a0823114610709578063715018a614610746576102ef565b806363a803e114610624578063658d4b7f1461064f5780636724348214610678576102ef565b8063507139351461051657806354a1dfc91461053f578063571ac8b0146105685780635804f1e4146105a557806360bba03d146105d057806361e08e72146105f9576102ef565b80632b112e49116102a15780632b112e491461041a578063313ce5671461044557806334848b9a14610470578063421dd7c71461049957806346d7edaa146104b0578063492a937b146104ed576102ef565b80630445b667146102f457806306fdde031461031f578063095ea7b31461034a57806318160ddd14610387578063234e9494146103b257806323b872dd146103dd576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610c07565b6040516103169190613c53565b60405180910390f35b34801561032b57600080fd5b50610334610c0d565b6040516103419190613af1565b60405180910390f35b34801561035657600080fd5b50610371600480360381019061036c919061356b565b610c4a565b60405161037e9190613abb565b60405180910390f35b34801561039357600080fd5b5061039c610d3c565b6040516103a99190613c53565b60405180910390f35b3480156103be57600080fd5b506103c7610d46565b6040516103d49190613c53565b60405180910390f35b3480156103e957600080fd5b5061040460048036038101906103ff91906134d8565b610d68565b6040516104119190613abb565b60405180910390f35b34801561042657600080fd5b5061042f610f2a565b60405161043c9190613c53565b60405180910390f35b34801561045157600080fd5b5061045a610f9e565b6040516104679190613cc8565b60405180910390f35b34801561047c57600080fd5b50610497600480360381019061049291906137ad565b610fa7565b005b3480156104a557600080fd5b506104ae6110c1565b005b3480156104bc57600080fd5b506104d760048036038101906104d2919061343e565b611190565b6040516104e49190613c53565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f919061352b565b6111a8565b005b34801561052257600080fd5b5061053d600480360381019061053891906137ad565b611329565b005b34801561054b57600080fd5b5061056660048036038101906105619190613659565b611434565b005b34801561057457600080fd5b5061058f600480360381019061058a919061343e565b611543565b60405161059c9190613abb565b60405180910390f35b3480156105b157600080fd5b506105ba611576565b6040516105c79190613c53565b60405180910390f35b3480156105dc57600080fd5b506105f760048036038101906105f2919061352b565b61157c565b005b34801561060557600080fd5b5061060e61169e565b60405161061b9190613c53565b60405180910390f35b34801561063057600080fd5b506106396116a4565b6040516106469190613c53565b60405180910390f35b34801561065b57600080fd5b506106766004803603810190610671919061352b565b6116c6565b005b34801561068457600080fd5b5061069f600480360381019061069a91906135ab565b6117b6565b005b3480156106ad57600080fd5b506106b66119f6565b6040516106c39190613abb565b60405180910390f35b3480156106d857600080fd5b506106f360048036038101906106ee919061343e565b611a09565b6040516107009190613c53565b60405180910390f35b34801561071557600080fd5b50610730600480360381019061072b919061343e565b611a21565b60405161073d9190613c53565b60405180910390f35b34801561075257600080fd5b5061075b611a6a565b005b34801561076957600080fd5b50610784600480360381019061077f919061372d565b611bbd565b005b34801561079257600080fd5b5061079b611ce4565b6040516107a89190613a85565b60405180910390f35b3480156107bd57600080fd5b506107c6611cf3565b6040516107d39190613a85565b60405180910390f35b3480156107e857600080fd5b506107f1611d1c565b6040516107fe9190613af1565b60405180910390f35b34801561081357600080fd5b5061081c611d59565b6040516108299190613c53565b60405180910390f35b34801561083e57600080fd5b506108596004803603810190610854919061362c565b611d5f565b6040516108669190613abb565b60405180910390f35b34801561087b57600080fd5b5061089660048036038101906108919190613498565b611e51565b005b3480156108a457600080fd5b506108ad611f6c565b6040516108ba9190613a85565b60405180910390f35b3480156108cf57600080fd5b506108ea60048036038101906108e5919061356b565b611f92565b6040516108f79190613abb565b60405180910390f35b34801561090c57600080fd5b506109276004803603810190610922919061376d565b611fa7565b005b34801561093557600080fd5b5061093e612086565b60405161094b9190613c53565b60405180910390f35b34801561096057600080fd5b506109696120a8565b6040516109769190613c53565b60405180910390f35b34801561098b57600080fd5b506109946120ae565b6040516109a19190613aa0565b60405180910390f35b3480156109b657600080fd5b506109d160048036038101906109cc919061343e565b6120d4565b6040516109de9190613c53565b60405180910390f35b3480156109f357600080fd5b50610a0e6004803603810190610a099190613700565b6120ec565b005b348015610a1c57600080fd5b50610a25612199565b604051610a329190613c53565b60405180910390f35b348015610a4757600080fd5b50610a626004803603810190610a5d91906136c0565b6121a1565b005b348015610a7057600080fd5b50610a8b6004803603810190610a869190613498565b612298565b604051610a989190613c53565b60405180910390f35b348015610aad57600080fd5b50610ab661231f565b604051610ac39190613a85565b60405180910390f35b348015610ad857600080fd5b50610af36004803603810190610aee919061362c565b612345565b604051610b009190613c53565b60405180910390f35b348015610b1557600080fd5b50610b306004803603810190610b2b919061343e565b61239c565b005b348015610b3e57600080fd5b50610b596004803603810190610b54919061352b565b61255e565b005b348015610b6757600080fd5b50610b7061264e565b604051610b7d9190613c53565b60405180910390f35b348015610b9257600080fd5b50610b9b612654565b604051610ba89190613ad6565b60405180910390f35b348015610bbd57600080fd5b50610bc661267a565b604051610bd39190613c53565b60405180910390f35b348015610be857600080fd5b50610bf1612680565b604051610bfe9190613abb565b60405180910390f35b60245481565b60606040518060400160405280600881526020017f53686962616c646f000000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d2a9190613c53565b60405180910390a36001905092915050565b6000600354905090565b60006009600a610d569190613e12565b600554610d639190613d8e565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f165781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e959190613f8a565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f21848484612697565b90509392505050565b6000610f57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a21565b610f82600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a21565b610f8c9190613d38565b600354610f999190613f8a565b905090565b60006009905090565b610faf612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103390613bf3565b60405180910390fd5b602160009054906101000a900460ff161580156110595750600a83105b61106257600080fd5b826020819055506001602160006101000a81548160ff02191690831515021790555043601e8190555081426110979190613d38565b601c819055506009600a6110ab9190613e12565b816110b69190613f30565b601a81905550505050565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611102612c22565b73ffffffffffffffffffffffffffffffffffffffff1614611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f90613bb3565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506000601960006101000a81548160ff021916908315150217905550565b60186020528060005260406000206000915090505481565b6111b0612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123490613bf3565b60405180910390fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c590613c33565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611331612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b590613bf3565b60405180910390fd5b6000831180156113ce5750600082115b80156113da5750600081115b80156113e857506127108111155b6113f157600080fd5b80836003546114009190613f30565b61140a9190613d8e565b600481905550808260035461141f9190613f30565b6114299190613d8e565b600581905550505050565b61143c612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c090613bf3565b60405180910390fd5b600082116114d657600080fd5b83602360006101000a81548160ff02191690831515021790555082602360016101000a81548160ff021916908315150217905550816003546115189190613d8e565b6024819055506009600a61152c9190613e12565b816115379190613f30565b60258190555050505050565b600061156f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c4a565b9050919050565b601f5481565b611584612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160890613bf3565b60405180910390fd5b801561169a5781602660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b60225481565b60006009600a6116b49190613e12565b6006546116c19190613d8e565b905090565b6116ce612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175290613bf3565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117be612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184290613bf3565b60405180910390fd5b60008484905011801561186357508383905082829050145b61186c57600080fd5b600033905060005b858590508110156119ee576017600087878481811061189657611895614147565b5b90506020020160208101906118ab919061343e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119715750600d600087878481811061191257611911614147565b5b9050602002016020810190611927919061343e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119db576119d98287878481811061198d5761198c614147565b5b90506020020160208101906119a2919061343e565b6009600a6119b09190613e12565b8787868181106119c3576119c2614147565b5b905060200201356119d49190613f30565b612c2a565b505b80806119e6906140a0565b915050611874565b505050505050565b602360009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611a72612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af690613bf3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611bfe612c22565b73ffffffffffffffffffffffffffffffffffffffff1614611c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4b90613bb3565b60405180910390fd5b80611ce0576000479050602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648584611ca89190613f30565b611cb29190613d8e565b9081150290604051600060405180830381858888f19350505050158015611cdd573d6000803e3d6000fd5b50505b5050565b6000611cee611cf3565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f53484942414c444f000000000000000000000000000000000000000000000000815250905090565b601b5481565b6000602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611da2612c22565b73ffffffffffffffffffffffffffffffffffffffff1614611df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611def90613bb3565b60405180910390fd5b8115611e1e576001602160026101000a81548160ff021916908315150217905550611e3a565b6000602160026101000a81548160ff0219169083151502179055505b602160029054906101000a900460ff169050919050565b611e59612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edd90613bf3565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f9f338484612697565b905092915050565b611faf612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461203c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203390613bf3565b60405180910390fd5b60008211801561204c5750600081115b801561205a57506127108111155b61206357600080fd5b80826003546120729190613f30565b61207c9190613d8e565b6006819055505050565b60006009600a6120969190613e12565b6004546120a39190613d8e565b905090565b601e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b6120f4612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217890613bf3565b60405180910390fd5b603c81111561218f57600080fd5b8060228190555050565b600047905090565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166121e2612c22565b73ffffffffffffffffffffffffffffffffffffffff1614612238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222f90613bb3565b60405180910390fd5b601960019054906101000a900460ff161561225257600080fd5b81601960006101000a81548160ff02191690831515021790555062015180811061227b57600080fd5b80601c600082825461228d9190613d38565b925050819055505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600043602054601e546123589190613d38565b10612367576012549050612397565b81156123845760115460105461237d9190613d38565b9050612397565b6011546010546123949190613f8a565b90505b919050565b6123a4612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242890613bf3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249890613b53565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612566612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ea90613bf3565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60255481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60205481565b6000602160029054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ff90613b33565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276f90613b73565b60405180910390fd5b600082116127bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b290613b13565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561283d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283490613b93565b60405180910390fd5b612845612db8565b15801561289b5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561293557600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661292c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292390613bd3565b60405180910390fd5b612934612dc5565b5b602160009054906101000a900460ff16612a2a57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129ea5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2090613c13565b60405180910390fd5b5b602660009054906101000a900460ff1615612a5157612a4a848484612c2a565b9050612c1b565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a9c9190613f8a565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612aea85612df0565b612af45782612aff565b612afe8484612e47565b5b9050612b0a84612f2a565b15612b22576000831115612b2157612b2061301f565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6d9190613d38565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c0d9190613c53565b60405180910390a360019150505b9392505050565b600033905090565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c779190613f8a565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d059190613d38565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612da59190613c53565b60405180910390a3600190509392505050565b600080601e541415905090565b43601e8190555042601f819055506001602360006101000a81548160ff021916908315150217905550565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601254612ea783612345565b85612eb29190613f30565b612ebc9190613d8e565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f0d9190613d38565b925050819055508084612f209190613f8a565b9250505092915050565b6000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f935750602660009054906101000a900460ff16155b8015612fab5750602360009054906101000a900460ff165b80156130005750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156130185750602160029054906101000a900460ff165b9050919050565b6001602660006101000a81548160ff0219169083151502179055506000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115613321576000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff8111156130e3576130e2614176565b5b6040519080825280602002602001820160405280156131115781602001602082028036833780820191505090505b509050308160008151811061312957613128614147565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156131cb57600080fd5b505afa1580156131df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613203919061346b565b8160018151811061321757613216614147565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016132b5959493929190613c6e565b600060405180830381600087803b1580156132cf57600080fd5b505af11580156132e3573d6000803e3d6000fd5b505050507f8eecd6f35243e1875b7143b093766263953bc97e6e92213e4ae934c67e1fe0de826040516133169190613c53565b60405180910390a150505b6000602660006101000a81548160ff021916908315150217905550565b60008135905061334d816143c2565b92915050565b600081519050613362816143c2565b92915050565b60008083601f84011261337e5761337d6141aa565b5b8235905067ffffffffffffffff81111561339b5761339a6141a5565b5b6020830191508360208202830111156133b7576133b66141af565b5b9250929050565b60008083601f8401126133d4576133d36141aa565b5b8235905067ffffffffffffffff8111156133f1576133f06141a5565b5b60208301915083602082028301111561340d5761340c6141af565b5b9250929050565b600081359050613423816143d9565b92915050565b600081359050613438816143f0565b92915050565b600060208284031215613454576134536141b9565b5b60006134628482850161333e565b91505092915050565b600060208284031215613481576134806141b9565b5b600061348f84828501613353565b91505092915050565b600080604083850312156134af576134ae6141b9565b5b60006134bd8582860161333e565b92505060206134ce8582860161333e565b9150509250929050565b6000806000606084860312156134f1576134f06141b9565b5b60006134ff8682870161333e565b93505060206135108682870161333e565b925050604061352186828701613429565b9150509250925092565b60008060408385031215613542576135416141b9565b5b60006135508582860161333e565b925050602061356185828601613414565b9150509250929050565b60008060408385031215613582576135816141b9565b5b60006135908582860161333e565b92505060206135a185828601613429565b9150509250929050565b600080600080604085870312156135c5576135c46141b9565b5b600085013567ffffffffffffffff8111156135e3576135e26141b4565b5b6135ef87828801613368565b9450945050602085013567ffffffffffffffff811115613612576136116141b4565b5b61361e878288016133be565b925092505092959194509250565b600060208284031215613642576136416141b9565b5b600061365084828501613414565b91505092915050565b60008060008060808587031215613673576136726141b9565b5b600061368187828801613414565b945050602061369287828801613414565b93505060406136a387828801613429565b92505060606136b487828801613429565b91505092959194509250565b600080604083850312156136d7576136d66141b9565b5b60006136e585828601613414565b92505060206136f685828601613429565b9150509250929050565b600060208284031215613716576137156141b9565b5b600061372484828501613429565b91505092915050565b60008060408385031215613744576137436141b9565b5b600061375285828601613429565b925050602061376385828601613414565b9150509250929050565b60008060408385031215613784576137836141b9565b5b600061379285828601613429565b92505060206137a385828601613429565b9150509250929050565b6000806000606084860312156137c6576137c56141b9565b5b60006137d486828701613429565b93505060206137e586828701613429565b92505060406137f686828701613429565b9150509250925092565b600061380c8383613827565b60208301905092915050565b61382181613fd0565b82525050565b61383081613fbe565b82525050565b61383f81613fbe565b82525050565b600061385082613cf3565b61385a8185613d16565b935061386583613ce3565b8060005b8381101561389657815161387d8882613800565b975061388883613d09565b925050600181019050613869565b5085935050505092915050565b6138ac81613fe2565b82525050565b6138bb81614025565b82525050565b6138ca81614037565b82525050565b60006138db82613cfe565b6138e58185613d27565b93506138f581856020860161406d565b6138fe816141be565b840191505092915050565b6000613916601583613d27565b9150613921826141dc565b602082019050919050565b6000613939601883613d27565b915061394482614205565b602082019050919050565b600061395c602683613d27565b91506139678261422e565b604082019050919050565b600061397f601683613d27565b915061398a8261427d565b602082019050919050565b60006139a2601483613d27565b91506139ad826142a6565b602082019050919050565b60006139c5601b83613d27565b91506139d0826142cf565b602082019050919050565b60006139e8601883613d27565b91506139f3826142f8565b602082019050919050565b6000613a0b602083613d27565b9150613a1682614321565b602082019050919050565b6000613a2e601583613d27565b9150613a398261434a565b602082019050919050565b6000613a51602283613d27565b9150613a5c82614373565b604082019050919050565b613a708161400e565b82525050565b613a7f81614018565b82525050565b6000602082019050613a9a6000830184613836565b92915050565b6000602082019050613ab56000830184613818565b92915050565b6000602082019050613ad060008301846138a3565b92915050565b6000602082019050613aeb60008301846138b2565b92915050565b60006020820190508181036000830152613b0b81846138d0565b905092915050565b60006020820190508181036000830152613b2c81613909565b9050919050565b60006020820190508181036000830152613b4c8161392c565b9050919050565b60006020820190508181036000830152613b6c8161394f565b9050919050565b60006020820190508181036000830152613b8c81613972565b9050919050565b60006020820190508181036000830152613bac81613995565b9050919050565b60006020820190508181036000830152613bcc816139b8565b9050919050565b60006020820190508181036000830152613bec816139db565b9050919050565b60006020820190508181036000830152613c0c816139fe565b9050919050565b60006020820190508181036000830152613c2c81613a21565b9050919050565b60006020820190508181036000830152613c4c81613a44565b9050919050565b6000602082019050613c686000830184613a67565b92915050565b600060a082019050613c836000830188613a67565b613c9060208301876138c1565b8181036040830152613ca28186613845565b9050613cb16060830185613836565b613cbe6080830184613a67565b9695505050505050565b6000602082019050613cdd6000830184613a76565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613d438261400e565b9150613d4e8361400e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d8357613d826140e9565b5b828201905092915050565b6000613d998261400e565b9150613da48361400e565b925082613db457613db3614118565b5b828204905092915050565b6000808291508390505b6001851115613e0957808604811115613de557613de46140e9565b5b6001851615613df45780820291505b8081029050613e02856141cf565b9450613dc9565b94509492505050565b6000613e1d8261400e565b9150613e2883614018565b9250613e557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613e5d565b905092915050565b600082613e6d5760019050613f29565b81613e7b5760009050613f29565b8160018114613e915760028114613e9b57613eca565b6001915050613f29565b60ff841115613ead57613eac6140e9565b5b8360020a915084821115613ec457613ec36140e9565b5b50613f29565b5060208310610133831016604e8410600b8410161715613eff5782820a905083811115613efa57613ef96140e9565b5b613f29565b613f0c8484846001613dbf565b92509050818404811115613f2357613f226140e9565b5b81810290505b9392505050565b6000613f3b8261400e565b9150613f468361400e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f7f57613f7e6140e9565b5b828202905092915050565b6000613f958261400e565b9150613fa08361400e565b925082821015613fb357613fb26140e9565b5b828203905092915050565b6000613fc982613fee565b9050919050565b6000613fdb82613fee565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061403082614049565b9050919050565b60006140428261400e565b9050919050565b60006140548261405b565b9050919050565b600061406682613fee565b9050919050565b60005b8381101561408b578082015181840152602081019050614070565b8381111561409a576000848401525b50505050565b60006140ab8261400e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140de576140dd6140e9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b7f42455032303a207472616e736665722066726f6d203078300000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a207472616e7366657220746f2030783000000000000000000000600082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b7f43616e277420616c7465722063757272656e74206c697175696469747920706160008201527f6972000000000000000000000000000000000000000000000000000000000000602082015250565b6143cb81613fbe565b81146143d657600080fd5b50565b6143e281613fe2565b81146143ed57600080fd5b50565b6143f98161400e565b811461440457600080fd5b5056fea26469706673582212208e295fcf293e93e6a2d187839529fb00b66d200f1d522815cf1c19330d6cf3af64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c806375d1ea8b11610190578063c1adf7bc116100dc578063f1f3bca311610095578063f8821a621161006f578063f8821a6214610b5b578063f887ea4014610b86578063fabb0b4f14610bb1578063fbba721914610bdc576102ef565b8063f1f3bca314610acc578063f2fde38b14610b09578063f84ba65d14610b32576102ef565b8063c1adf7bc146109aa578063c287184e146109e7578063d4c30ceb14610a10578063d686014214610a3b578063dd62ed3e14610a64578063e96fada214610aa1576102ef565b8063a4b45c0011610149578063abe57e7011610123578063abe57e7014610900578063bafe446b14610929578063bf56b37114610954578063bfa21d6a1461097f576102ef565b8063a4b45c001461086f578063a8aa1b3114610898578063a9059cbb146108c3576102ef565b806375d1ea8b1461075d578063893d20e8146107865780638da5cb5b146107b157806395d89b41146107dc5780639b02c402146108075780639d96ae7514610832576102ef565b8063507139351161024f57806363a803e1116102085780636ddd1713116101e25780636ddd1713146106a15780636f4ce428146106cc57806370a0823114610709578063715018a614610746576102ef565b806363a803e114610624578063658d4b7f1461064f5780636724348214610678576102ef565b8063507139351461051657806354a1dfc91461053f578063571ac8b0146105685780635804f1e4146105a557806360bba03d146105d057806361e08e72146105f9576102ef565b80632b112e49116102a15780632b112e491461041a578063313ce5671461044557806334848b9a14610470578063421dd7c71461049957806346d7edaa146104b0578063492a937b146104ed576102ef565b80630445b667146102f457806306fdde031461031f578063095ea7b31461034a57806318160ddd14610387578063234e9494146103b257806323b872dd146103dd576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610c07565b6040516103169190613c53565b60405180910390f35b34801561032b57600080fd5b50610334610c0d565b6040516103419190613af1565b60405180910390f35b34801561035657600080fd5b50610371600480360381019061036c919061356b565b610c4a565b60405161037e9190613abb565b60405180910390f35b34801561039357600080fd5b5061039c610d3c565b6040516103a99190613c53565b60405180910390f35b3480156103be57600080fd5b506103c7610d46565b6040516103d49190613c53565b60405180910390f35b3480156103e957600080fd5b5061040460048036038101906103ff91906134d8565b610d68565b6040516104119190613abb565b60405180910390f35b34801561042657600080fd5b5061042f610f2a565b60405161043c9190613c53565b60405180910390f35b34801561045157600080fd5b5061045a610f9e565b6040516104679190613cc8565b60405180910390f35b34801561047c57600080fd5b50610497600480360381019061049291906137ad565b610fa7565b005b3480156104a557600080fd5b506104ae6110c1565b005b3480156104bc57600080fd5b506104d760048036038101906104d2919061343e565b611190565b6040516104e49190613c53565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f919061352b565b6111a8565b005b34801561052257600080fd5b5061053d600480360381019061053891906137ad565b611329565b005b34801561054b57600080fd5b5061056660048036038101906105619190613659565b611434565b005b34801561057457600080fd5b5061058f600480360381019061058a919061343e565b611543565b60405161059c9190613abb565b60405180910390f35b3480156105b157600080fd5b506105ba611576565b6040516105c79190613c53565b60405180910390f35b3480156105dc57600080fd5b506105f760048036038101906105f2919061352b565b61157c565b005b34801561060557600080fd5b5061060e61169e565b60405161061b9190613c53565b60405180910390f35b34801561063057600080fd5b506106396116a4565b6040516106469190613c53565b60405180910390f35b34801561065b57600080fd5b506106766004803603810190610671919061352b565b6116c6565b005b34801561068457600080fd5b5061069f600480360381019061069a91906135ab565b6117b6565b005b3480156106ad57600080fd5b506106b66119f6565b6040516106c39190613abb565b60405180910390f35b3480156106d857600080fd5b506106f360048036038101906106ee919061343e565b611a09565b6040516107009190613c53565b60405180910390f35b34801561071557600080fd5b50610730600480360381019061072b919061343e565b611a21565b60405161073d9190613c53565b60405180910390f35b34801561075257600080fd5b5061075b611a6a565b005b34801561076957600080fd5b50610784600480360381019061077f919061372d565b611bbd565b005b34801561079257600080fd5b5061079b611ce4565b6040516107a89190613a85565b60405180910390f35b3480156107bd57600080fd5b506107c6611cf3565b6040516107d39190613a85565b60405180910390f35b3480156107e857600080fd5b506107f1611d1c565b6040516107fe9190613af1565b60405180910390f35b34801561081357600080fd5b5061081c611d59565b6040516108299190613c53565b60405180910390f35b34801561083e57600080fd5b506108596004803603810190610854919061362c565b611d5f565b6040516108669190613abb565b60405180910390f35b34801561087b57600080fd5b5061089660048036038101906108919190613498565b611e51565b005b3480156108a457600080fd5b506108ad611f6c565b6040516108ba9190613a85565b60405180910390f35b3480156108cf57600080fd5b506108ea60048036038101906108e5919061356b565b611f92565b6040516108f79190613abb565b60405180910390f35b34801561090c57600080fd5b506109276004803603810190610922919061376d565b611fa7565b005b34801561093557600080fd5b5061093e612086565b60405161094b9190613c53565b60405180910390f35b34801561096057600080fd5b506109696120a8565b6040516109769190613c53565b60405180910390f35b34801561098b57600080fd5b506109946120ae565b6040516109a19190613aa0565b60405180910390f35b3480156109b657600080fd5b506109d160048036038101906109cc919061343e565b6120d4565b6040516109de9190613c53565b60405180910390f35b3480156109f357600080fd5b50610a0e6004803603810190610a099190613700565b6120ec565b005b348015610a1c57600080fd5b50610a25612199565b604051610a329190613c53565b60405180910390f35b348015610a4757600080fd5b50610a626004803603810190610a5d91906136c0565b6121a1565b005b348015610a7057600080fd5b50610a8b6004803603810190610a869190613498565b612298565b604051610a989190613c53565b60405180910390f35b348015610aad57600080fd5b50610ab661231f565b604051610ac39190613a85565b60405180910390f35b348015610ad857600080fd5b50610af36004803603810190610aee919061362c565b612345565b604051610b009190613c53565b60405180910390f35b348015610b1557600080fd5b50610b306004803603810190610b2b919061343e565b61239c565b005b348015610b3e57600080fd5b50610b596004803603810190610b54919061352b565b61255e565b005b348015610b6757600080fd5b50610b7061264e565b604051610b7d9190613c53565b60405180910390f35b348015610b9257600080fd5b50610b9b612654565b604051610ba89190613ad6565b60405180910390f35b348015610bbd57600080fd5b50610bc661267a565b604051610bd39190613c53565b60405180910390f35b348015610be857600080fd5b50610bf1612680565b604051610bfe9190613abb565b60405180910390f35b60245481565b60606040518060400160405280600881526020017f53686962616c646f000000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d2a9190613c53565b60405180910390a36001905092915050565b6000600354905090565b60006009600a610d569190613e12565b600554610d639190613d8e565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f165781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e959190613f8a565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f21848484612697565b90509392505050565b6000610f57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a21565b610f82600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a21565b610f8c9190613d38565b600354610f999190613f8a565b905090565b60006009905090565b610faf612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103390613bf3565b60405180910390fd5b602160009054906101000a900460ff161580156110595750600a83105b61106257600080fd5b826020819055506001602160006101000a81548160ff02191690831515021790555043601e8190555081426110979190613d38565b601c819055506009600a6110ab9190613e12565b816110b69190613f30565b601a81905550505050565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611102612c22565b73ffffffffffffffffffffffffffffffffffffffff1614611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f90613bb3565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506000601960006101000a81548160ff021916908315150217905550565b60186020528060005260406000206000915090505481565b6111b0612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123490613bf3565b60405180910390fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c590613c33565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611331612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b590613bf3565b60405180910390fd5b6000831180156113ce5750600082115b80156113da5750600081115b80156113e857506127108111155b6113f157600080fd5b80836003546114009190613f30565b61140a9190613d8e565b600481905550808260035461141f9190613f30565b6114299190613d8e565b600581905550505050565b61143c612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c090613bf3565b60405180910390fd5b600082116114d657600080fd5b83602360006101000a81548160ff02191690831515021790555082602360016101000a81548160ff021916908315150217905550816003546115189190613d8e565b6024819055506009600a61152c9190613e12565b816115379190613f30565b60258190555050505050565b600061156f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c4a565b9050919050565b601f5481565b611584612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160890613bf3565b60405180910390fd5b801561169a5781602660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b60225481565b60006009600a6116b49190613e12565b6006546116c19190613d8e565b905090565b6116ce612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175290613bf3565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117be612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184290613bf3565b60405180910390fd5b60008484905011801561186357508383905082829050145b61186c57600080fd5b600033905060005b858590508110156119ee576017600087878481811061189657611895614147565b5b90506020020160208101906118ab919061343e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119715750600d600087878481811061191257611911614147565b5b9050602002016020810190611927919061343e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119db576119d98287878481811061198d5761198c614147565b5b90506020020160208101906119a2919061343e565b6009600a6119b09190613e12565b8787868181106119c3576119c2614147565b5b905060200201356119d49190613f30565b612c2a565b505b80806119e6906140a0565b915050611874565b505050505050565b602360009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611a72612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af690613bf3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611bfe612c22565b73ffffffffffffffffffffffffffffffffffffffff1614611c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4b90613bb3565b60405180910390fd5b80611ce0576000479050602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648584611ca89190613f30565b611cb29190613d8e565b9081150290604051600060405180830381858888f19350505050158015611cdd573d6000803e3d6000fd5b50505b5050565b6000611cee611cf3565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f53484942414c444f000000000000000000000000000000000000000000000000815250905090565b601b5481565b6000602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611da2612c22565b73ffffffffffffffffffffffffffffffffffffffff1614611df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611def90613bb3565b60405180910390fd5b8115611e1e576001602160026101000a81548160ff021916908315150217905550611e3a565b6000602160026101000a81548160ff0219169083151502179055505b602160029054906101000a900460ff169050919050565b611e59612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edd90613bf3565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f9f338484612697565b905092915050565b611faf612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461203c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203390613bf3565b60405180910390fd5b60008211801561204c5750600081115b801561205a57506127108111155b61206357600080fd5b80826003546120729190613f30565b61207c9190613d8e565b6006819055505050565b60006009600a6120969190613e12565b6004546120a39190613d8e565b905090565b601e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b6120f4612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217890613bf3565b60405180910390fd5b603c81111561218f57600080fd5b8060228190555050565b600047905090565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166121e2612c22565b73ffffffffffffffffffffffffffffffffffffffff1614612238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222f90613bb3565b60405180910390fd5b601960019054906101000a900460ff161561225257600080fd5b81601960006101000a81548160ff02191690831515021790555062015180811061227b57600080fd5b80601c600082825461228d9190613d38565b925050819055505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600043602054601e546123589190613d38565b10612367576012549050612397565b81156123845760115460105461237d9190613d38565b9050612397565b6011546010546123949190613f8a565b90505b919050565b6123a4612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242890613bf3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249890613b53565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612566612c22565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ea90613bf3565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60255481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60205481565b6000602160029054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ff90613b33565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276f90613b73565b60405180910390fd5b600082116127bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b290613b13565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561283d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283490613b93565b60405180910390fd5b612845612db8565b15801561289b5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561293557600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661292c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292390613bd3565b60405180910390fd5b612934612dc5565b5b602160009054906101000a900460ff16612a2a57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129ea5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2090613c13565b60405180910390fd5b5b602660009054906101000a900460ff1615612a5157612a4a848484612c2a565b9050612c1b565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a9c9190613f8a565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612aea85612df0565b612af45782612aff565b612afe8484612e47565b5b9050612b0a84612f2a565b15612b22576000831115612b2157612b2061301f565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6d9190613d38565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c0d9190613c53565b60405180910390a360019150505b9392505050565b600033905090565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c779190613f8a565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d059190613d38565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612da59190613c53565b60405180910390a3600190509392505050565b600080601e541415905090565b43601e8190555042601f819055506001602360006101000a81548160ff021916908315150217905550565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601254612ea783612345565b85612eb29190613f30565b612ebc9190613d8e565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f0d9190613d38565b925050819055508084612f209190613f8a565b9250505092915050565b6000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f935750602660009054906101000a900460ff16155b8015612fab5750602360009054906101000a900460ff165b80156130005750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156130185750602160029054906101000a900460ff165b9050919050565b6001602660006101000a81548160ff0219169083151502179055506000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115613321576000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff8111156130e3576130e2614176565b5b6040519080825280602002602001820160405280156131115781602001602082028036833780820191505090505b509050308160008151811061312957613128614147565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156131cb57600080fd5b505afa1580156131df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613203919061346b565b8160018151811061321757613216614147565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016132b5959493929190613c6e565b600060405180830381600087803b1580156132cf57600080fd5b505af11580156132e3573d6000803e3d6000fd5b505050507f8eecd6f35243e1875b7143b093766263953bc97e6e92213e4ae934c67e1fe0de826040516133169190613c53565b60405180910390a150505b6000602660006101000a81548160ff021916908315150217905550565b60008135905061334d816143c2565b92915050565b600081519050613362816143c2565b92915050565b60008083601f84011261337e5761337d6141aa565b5b8235905067ffffffffffffffff81111561339b5761339a6141a5565b5b6020830191508360208202830111156133b7576133b66141af565b5b9250929050565b60008083601f8401126133d4576133d36141aa565b5b8235905067ffffffffffffffff8111156133f1576133f06141a5565b5b60208301915083602082028301111561340d5761340c6141af565b5b9250929050565b600081359050613423816143d9565b92915050565b600081359050613438816143f0565b92915050565b600060208284031215613454576134536141b9565b5b60006134628482850161333e565b91505092915050565b600060208284031215613481576134806141b9565b5b600061348f84828501613353565b91505092915050565b600080604083850312156134af576134ae6141b9565b5b60006134bd8582860161333e565b92505060206134ce8582860161333e565b9150509250929050565b6000806000606084860312156134f1576134f06141b9565b5b60006134ff8682870161333e565b93505060206135108682870161333e565b925050604061352186828701613429565b9150509250925092565b60008060408385031215613542576135416141b9565b5b60006135508582860161333e565b925050602061356185828601613414565b9150509250929050565b60008060408385031215613582576135816141b9565b5b60006135908582860161333e565b92505060206135a185828601613429565b9150509250929050565b600080600080604085870312156135c5576135c46141b9565b5b600085013567ffffffffffffffff8111156135e3576135e26141b4565b5b6135ef87828801613368565b9450945050602085013567ffffffffffffffff811115613612576136116141b4565b5b61361e878288016133be565b925092505092959194509250565b600060208284031215613642576136416141b9565b5b600061365084828501613414565b91505092915050565b60008060008060808587031215613673576136726141b9565b5b600061368187828801613414565b945050602061369287828801613414565b93505060406136a387828801613429565b92505060606136b487828801613429565b91505092959194509250565b600080604083850312156136d7576136d66141b9565b5b60006136e585828601613414565b92505060206136f685828601613429565b9150509250929050565b600060208284031215613716576137156141b9565b5b600061372484828501613429565b91505092915050565b60008060408385031215613744576137436141b9565b5b600061375285828601613429565b925050602061376385828601613414565b9150509250929050565b60008060408385031215613784576137836141b9565b5b600061379285828601613429565b92505060206137a385828601613429565b9150509250929050565b6000806000606084860312156137c6576137c56141b9565b5b60006137d486828701613429565b93505060206137e586828701613429565b92505060406137f686828701613429565b9150509250925092565b600061380c8383613827565b60208301905092915050565b61382181613fd0565b82525050565b61383081613fbe565b82525050565b61383f81613fbe565b82525050565b600061385082613cf3565b61385a8185613d16565b935061386583613ce3565b8060005b8381101561389657815161387d8882613800565b975061388883613d09565b925050600181019050613869565b5085935050505092915050565b6138ac81613fe2565b82525050565b6138bb81614025565b82525050565b6138ca81614037565b82525050565b60006138db82613cfe565b6138e58185613d27565b93506138f581856020860161406d565b6138fe816141be565b840191505092915050565b6000613916601583613d27565b9150613921826141dc565b602082019050919050565b6000613939601883613d27565b915061394482614205565b602082019050919050565b600061395c602683613d27565b91506139678261422e565b604082019050919050565b600061397f601683613d27565b915061398a8261427d565b602082019050919050565b60006139a2601483613d27565b91506139ad826142a6565b602082019050919050565b60006139c5601b83613d27565b91506139d0826142cf565b602082019050919050565b60006139e8601883613d27565b91506139f3826142f8565b602082019050919050565b6000613a0b602083613d27565b9150613a1682614321565b602082019050919050565b6000613a2e601583613d27565b9150613a398261434a565b602082019050919050565b6000613a51602283613d27565b9150613a5c82614373565b604082019050919050565b613a708161400e565b82525050565b613a7f81614018565b82525050565b6000602082019050613a9a6000830184613836565b92915050565b6000602082019050613ab56000830184613818565b92915050565b6000602082019050613ad060008301846138a3565b92915050565b6000602082019050613aeb60008301846138b2565b92915050565b60006020820190508181036000830152613b0b81846138d0565b905092915050565b60006020820190508181036000830152613b2c81613909565b9050919050565b60006020820190508181036000830152613b4c8161392c565b9050919050565b60006020820190508181036000830152613b6c8161394f565b9050919050565b60006020820190508181036000830152613b8c81613972565b9050919050565b60006020820190508181036000830152613bac81613995565b9050919050565b60006020820190508181036000830152613bcc816139b8565b9050919050565b60006020820190508181036000830152613bec816139db565b9050919050565b60006020820190508181036000830152613c0c816139fe565b9050919050565b60006020820190508181036000830152613c2c81613a21565b9050919050565b60006020820190508181036000830152613c4c81613a44565b9050919050565b6000602082019050613c686000830184613a67565b92915050565b600060a082019050613c836000830188613a67565b613c9060208301876138c1565b8181036040830152613ca28186613845565b9050613cb16060830185613836565b613cbe6080830184613a67565b9695505050505050565b6000602082019050613cdd6000830184613a76565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613d438261400e565b9150613d4e8361400e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d8357613d826140e9565b5b828201905092915050565b6000613d998261400e565b9150613da48361400e565b925082613db457613db3614118565b5b828204905092915050565b6000808291508390505b6001851115613e0957808604811115613de557613de46140e9565b5b6001851615613df45780820291505b8081029050613e02856141cf565b9450613dc9565b94509492505050565b6000613e1d8261400e565b9150613e2883614018565b9250613e557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613e5d565b905092915050565b600082613e6d5760019050613f29565b81613e7b5760009050613f29565b8160018114613e915760028114613e9b57613eca565b6001915050613f29565b60ff841115613ead57613eac6140e9565b5b8360020a915084821115613ec457613ec36140e9565b5b50613f29565b5060208310610133831016604e8410600b8410161715613eff5782820a905083811115613efa57613ef96140e9565b5b613f29565b613f0c8484846001613dbf565b92509050818404811115613f2357613f226140e9565b5b81810290505b9392505050565b6000613f3b8261400e565b9150613f468361400e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f7f57613f7e6140e9565b5b828202905092915050565b6000613f958261400e565b9150613fa08361400e565b925082821015613fb357613fb26140e9565b5b828203905092915050565b6000613fc982613fee565b9050919050565b6000613fdb82613fee565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061403082614049565b9050919050565b60006140428261400e565b9050919050565b60006140548261405b565b9050919050565b600061406682613fee565b9050919050565b60005b8381101561408b578082015181840152602081019050614070565b8381111561409a576000848401525b50505050565b60006140ab8261400e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140de576140dd6140e9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b7f42455032303a207472616e736665722066726f6d203078300000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a207472616e7366657220746f2030783000000000000000000000600082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b7f43616e277420616c7465722063757272656e74206c697175696469747920706160008201527f6972000000000000000000000000000000000000000000000000000000000000602082015250565b6143cb81613fbe565b81146143d657600080fd5b50565b6143e281613fe2565b81146143ed57600080fd5b50565b6143f98161400e565b811461440457600080fd5b5056fea26469706673582212208e295fcf293e93e6a2d187839529fb00b66d200f1d522815cf1c19330d6cf3af64736f6c63430008070033

Deployed Bytecode Sourcemap

7826:13703:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9760:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11145:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11886:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10893:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11410:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14234:341;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21329:138;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10987:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13299:373;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13931:127;;;;;;;;;;;;;:::i;:::-;;9206:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19260:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19871:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20961:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12110:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9491:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12244:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9652:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11523:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20449:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12450:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9689:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8505:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11634:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7421:148;;;;;;;;;;;;;:::i;:::-;;12930:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11222:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7211:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11064:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9362:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19452:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20711:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9431:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14070:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20222:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11299:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9459:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8936:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8556:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19735:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13189:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13684:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11745:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9011:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17844:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7575:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20576:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9817:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9055:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9525:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19641:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9760:50;;;;:::o;11145:71::-;11184:13;11208:5;;;;;;;;;;;;;;;;;11201:12;;11145:71;:::o;11886:216::-;11961:4;12013:6;11978:11;:23;11990:10;11978:23;;;;;;;;;;;;;;;:32;12002:7;11978:32;;;;;;;;;;;;;;;:41;;;;12056:7;12035:37;;12044:10;12035:37;;;12065:6;12035:37;;;;;;:::i;:::-;;;;;;;;12090:4;12083:11;;11886:216;;;;:::o;10893:88::-;10948:7;10966:12;;10959:19;;10893:88;:::o;11410:107::-;11460:7;8149:1;11498:2;:15;;;;:::i;:::-;11478:16;;:36;;;;:::i;:::-;11471:43;;11410:107;:::o;14234:341::-;14334:4;14389:17;14354:11;:19;14366:6;14354:19;;;;;;;;;;;;;;;:31;14374:10;14354:31;;;;;;;;;;;;;;;;:52;14351:157;;14490:6;14456:11;:19;14468:6;14456:19;;;;;;;;;;;;;;;:31;14476:10;14456:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;14422:11;:19;14434:6;14422:19;;;;;;;;;;;;;;;:31;14442:10;14422:31;;;;;;;;;;;;;;;:74;;;;14351:157;14527:40;14541:6;14549:9;14560:6;14527:13;:40::i;:::-;14520:47;;14234:341;;;;;:::o;21329:138::-;21382:7;21443:15;21453:4;;;;;;;;;;;21443:9;:15::i;:::-;21425;21435:4;;;;;;;;;;;21425:9;:15::i;:::-;:33;;;;:::i;:::-;21409:12;;:50;;;;:::i;:::-;21402:57;;21329:138;:::o;10987:71::-;11030:5;8149:1;11039:16;;10987:71;:::o;13299:373::-;7346:12;:10;:12::i;:::-;7336:22;;:6;;;;;;;;;;:22;;;7328:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13417:12:::1;;;;;;;;;;;13416:13;:33;;;;;13447:2;13433:11;:16;13416:33;13408:42;;;::::0;::::1;;13474:11;13461:10;:24;;;;13511:4;13496:12;;:19;;;;;;;;;;;;;;;;;;13539:12;13526:10;:25;;;;13598:11;13580:15;:29;;;;:::i;:::-;13562:15;:47;;;;8149:1;13648:2;:15;;;;:::i;:::-;13638:6;:26;;;;:::i;:::-;13620:15;:44;;;;13299:373:::0;;;:::o;13931:127::-;10024:10;;;;;;;;;;;10008:26;;:12;:10;:12::i;:::-;:26;;;10000:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;14010:4:::1;13989:18;;:25;;;;;;;;;;;;;;;;;;14045:5;14025:17;;:25;;;;;;;;;;;;;;;;;;13931:127::o:0;9206:45::-;;;;;;;;;;;;;;;;;:::o;19260:184::-;7346:12;:10;:12::i;:::-;7336:22;;:6;;;;;;;;;;:22;;;7328:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19355:4:::1;;;;;;;;;;;19349:10;;:2;:10;;;;19341:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;19430:6;19409:14;:18;19424:2;19409:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;19260:184:::0;;:::o;19871:339::-;7346:12;:10;:12::i;:::-;7336:22;;:6;;;;;;;;;;:22;;;7328:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20006:1:::1;19991:12;:16;:37;;;;;20027:1;20011:13;:17;19991:37;:52;;;;;20042:1;20032:7;:11;19991:52;:72;;;;;20058:5;20047:7;:16;;19991:72;19983:81;;;::::0;::::1;;20125:7;20109:12;20094;;:27;;;;:::i;:::-;20093:39;;;;:::i;:::-;20075:15;:57;;;;20195:7;20178:13;20163:12;;:28;;;;:::i;:::-;20162:40;;;;:::i;:::-;20143:16;:59;;;;19871:339:::0;;;:::o;20961:360::-;7346:12;:10;:12::i;:::-;7336:22;;:6;;;;;;;;;;:22;;;7328:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21124:1:::1;21109:12;:16;21101:25;;;::::0;::::1;;21151:8;21137:11;;:22;;;;;;;;;;;;;;;;;;21187:15;21170:14;;:32;;;;;;;;;;;;;;;;;;21244:12;21229;;:27;;;;:::i;:::-;21213:13;:43;;;;8149:1;21297:2;:15;;;;:::i;:::-;21281:12;:32;;;;:::i;:::-;21267:11;:46;;;;20961:360:::0;;;;:::o;12110:122::-;12165:4;12189:35;12197:7;12206:17;12189:7;:35::i;:::-;12182:42;;12110:122;;;:::o;9491:27::-;;;;:::o;12244:194::-;7346:12;:10;:12::i;:::-;7336:22;;:6;;;;;;;;;;:22;;;7328:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12332:8:::1;12328:103;;;12371:5;12358:10;;:18;;;;;;;;;;;;;;;;;;12414:5;12391:20;;:28;;;;;;;;;;;;;;;;;;12328:103;12244:194:::0;;:::o;9652:28::-;;;;:::o;11523:105::-;11573:7;8149:1;11609:2;:15;;;;:::i;:::-;11591:14;;:34;;;;:::i;:::-;11584:41;;11523:105;:::o;20449:119::-;7346:12;:10;:12::i;:::-;7336:22;;:6;;;;;;;;;;:22;;;7328:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20554:6:::1;20532:11;:19;20544:6;20532:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20449:119:::0;;:::o;12450:468::-;7346:12;:10;:12::i;:::-;7336:22;;:6;;;;;;;;;;:22;;;7328:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12582:1:::1;12563:9;;:16;;:20;:58;;;;;12605:9;;:16;;12587:7;;:14;;:34;12563:58;12555:67;;;::::0;::::1;;12633:12;12648:10;12633:25;;12676:6;12671:240;12692:9;;:16;;12688:1;:20;12671:240;;;12734:14;:28;12749:9;;12759:1;12749:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12734:28;;;;;;;;;;;;;;;;;;;;;;;;;12733:29;:64;;;;;12767:16;:30;12784:9;;12794:1;12784:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12767:30;;;;;;;;;;;;;;;;;;;;;;;;;12766:31;12733:64;12730:170;;;12818:66;12833:4;12839:9;;12849:1;12839:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8149:1;12867:2;:15;;;;:::i;:::-;12853:7;;12861:1;12853:10;;;;;;;:::i;:::-;;;;;;;;:30;;;;:::i;:::-;12818:14;:66::i;:::-;;12730:170;12710:3;;;;;:::i;:::-;;;;12671:240;;;;12544:374;12450:468:::0;;;;:::o;9689:31::-;;;;;;;;;;;;;:::o;8505:44::-;;;;;;;;;;;;;;;;;:::o;11634:105::-;11700:7;11718:9;:18;11728:7;11718:18;;;;;;;;;;;;;;;;11711:25;;11634:105;;;:::o;7421:148::-;7346:12;:10;:12::i;:::-;7336:22;;:6;;;;;;;;;;:22;;;7328:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7528:1:::1;7491:40;;7512:6;::::0;::::1;;;;;;;;7491:40;;;;;;;;;;;;7559:1;7542:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;7421:148::o:0;12930:251::-;10024:10;;;;;;;;;;;10008:26;;:12;:10;:12::i;:::-;:26;;;10000:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13023:9:::1;13018:156;;13050:17;13070:21;13050:41;;13114:10;;;;;;;;;;;13106:28;;:56;13158:3;13148:6;13136:9;:18;;;;:::i;:::-;13135:26;;;;:::i;:::-;13106:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13034:140;13018:156;12930:251:::0;;:::o;11222:71::-;11265:7;11283;:5;:7::i;:::-;11276:14;;11222:71;:::o;7211:79::-;7249:7;7276:6;;;;;;;;;;;7269:13;;7211:79;:::o;11064:75::-;11105:13;11129:7;;;;;;;;;;;;;;;;;11122:14;;11064:75;:::o;9362:30::-;;;;:::o;19452:177::-;19516:4;10024:10;;;;;;;;;;;10008:26;;:12;:10;:12::i;:::-;:26;;;10000:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;19537:7:::1;19533:59;;;19561:4;19547:11;;:18;;;;;;;;;;;;;;;;;;19533:59;;;19587:5;19573:11;;:19;;;;;;;;;;;;;;;;;;19533:59;19610:11;;;;;;;;;;;19603:18;;19452:177:::0;;;:::o;20711:242::-;7346:12;:10;:12::i;:::-;7336:22;;:6;;;;;;;;;;:22;;;7328:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20859:21:::1;20828:20;;:53;;;;;;;;;;;;;;;;;;20923:21;20892:20;;:53;;;;;;;;;;;;;;;;;;20711:242:::0;;:::o;9431:19::-;;;;;;;;;;;;;:::o;14070:156::-;14150:4;14174:44;14188:10;14200:9;14211:6;14174:13;:44::i;:::-;14167:51;;14070:156;;;;:::o;20222:219::-;7346:12;:10;:12::i;:::-;7336:22;;:6;;;;;;;;;;:22;;;7328:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20332:1:::1;20320:9;:13;:28;;;;;20347:1;20337:7;:11;20320:28;:48;;;;;20363:5;20352:7;:16;;20320:48;20312:57;;;::::0;::::1;;20426:7;20413:9;20398:12;;:24;;;;:::i;:::-;20397:36;;;;:::i;:::-;20380:14;:53;;;;20222:219:::0;;:::o;11299:105::-;11348:7;8149:1;11385:2;:15;;;;:::i;:::-;11366;;:35;;;;:::i;:::-;11359:42;;11299:105;:::o;9459:25::-;;;;:::o;8936:68::-;;;;;;;;;;;;;:::o;8556:43::-;;;;;;;;;;;;;;;;;:::o;19735:128::-;7346:12;:10;:12::i;:::-;7336:22;;:6;;;;;;;;;;:22;;;7328:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19817:10:::1;19809:4;:18;;19801:27;;;::::0;::::1;;19851:4;19839:9;:16;;;;19735:128:::0;:::o;13189:102::-;13235:7;13262:21;13255:28;;13189:102;:::o;13684:235::-;10024:10;;;;;;;;;;;10008:26;;:12;:10;:12::i;:::-;:26;;;10000:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13778:18:::1;;;;;;;;;;;13777:19;13769:28;;;::::0;::::1;;13828:8;13808:17;;:28;;;;;;;;;;;;;;;;;;13866:6;13855:8;:17;13847:26;;;::::0;::::1;;13903:8;13884:15;;:27;;;;;;;:::i;:::-;;;;;;;;13684:235:::0;;:::o;11745:133::-;11829:7;11847:11;:19;11859:6;11847:19;;;;;;;;;;;;;;;:28;11867:7;11847:28;;;;;;;;;;;;;;;;11840:35;;11745:133;;;;:::o;9011:35::-;;;;;;;;;;;;;:::o;17844:239::-;17900:7;17950:12;17936:10;;17923;;:23;;;;:::i;:::-;:39;17920:69;;17972:14;;17965:21;;;;17920:69;18003:7;17999:39;;;18030:8;;18019;;:19;;;;:::i;:::-;18012:26;;;;17999:39;18067:8;;18056;;:19;;;;:::i;:::-;18049:26;;17844:239;;;;:::o;7575:244::-;7346:12;:10;:12::i;:::-;7336:22;;:6;;;;;;;;;;:22;;;7328:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7684:1:::1;7664:22;;:8;:22;;;;7656:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7774:8;7745:38;;7766:6;::::0;::::1;;;;;;;;7745:38;;;;;;;;;;;;7803:8;7794:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;7575:244:::0;:::o;20576:127::-;7346:12;:10;:12::i;:::-;7336:22;;:6;;;;;;;;;;:22;;;7328:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20689:6:::1;20663:15;:23;20679:6;20663:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;20576:127:::0;;:::o;9817:49::-;;;;:::o;9055:24::-;;;;;;;;;;;;;:::o;9525:25::-;;;;:::o;19641:86::-;19684:4;19708:11;;;;;;;;;;;19701:18;;19641:86;:::o;14583:1097::-;14675:4;14718:1;14700:20;;:6;:20;;;;14692:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;14789:1;14768:23;;:9;:23;;;;14760:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;14846:1;14837:6;:10;14829:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;14913:6;14892:9;:17;14902:6;14892:17;;;;;;;;;;;;;;;;:27;;14884:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;14959:10;:8;:10::i;:::-;14958:11;:40;;;;;14973:14;:25;14988:9;14973:25;;;;;;;;;;;;;;;;;;;;;;;;;14958:40;14955:120;;;15009:16;:24;15026:6;15009:24;;;;;;;;;;;;;;;;;;;;;;;;;15001:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;15064:8;:6;:8::i;:::-;14955:120;15089:12;;;;;;;;;;;15085:111;;15112:16;:24;15129:6;15112:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;15140:16;:27;15157:9;15140:27;;;;;;;;;;;;;;;;;;;;;;;;;15112:55;15104:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;15085:111;15213:6;;;;;;;;;;;15210:63;;;15229:41;15244:6;15252:9;15263:6;15229:14;:41::i;:::-;15222:48;;;;15210:63;15325:6;15305:9;:17;15315:6;15305:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;15285:9;:17;15295:6;15285:17;;;;;;;;;;;;;;;:46;;;;15344:22;15369:21;15383:6;15369:13;:21::i;:::-;:59;;15422:6;15369:59;;;15393:26;15401:9;15412:6;15393:7;:26::i;:::-;15369:59;15344:84;;15452:25;15467:9;15452:14;:25::i;:::-;15449:60;;;15493:1;15484:6;:10;15480:26;;;15496:10;:8;:10::i;:::-;15480:26;15449:60;15575:14;15552:9;:20;15562:9;15552:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;15529:9;:20;15539:9;15529:20;;;;;;;;;;;;;;;:60;;;;15624:9;15607:43;;15616:6;15607:43;;;15635:14;15607:43;;;;;;:::i;:::-;;;;;;;;15668:4;15661:11;;;14583:1097;;;;;;:::o;5240:107::-;5285:15;5328:10;5313:26;;5240:107;:::o;15939:300::-;16032:4;16089:6;16069:9;:17;16079:6;16069:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;16049:9;:17;16059:6;16049:17;;;;;;;;;;;;;;;:46;;;;16152:6;16129:9;:20;16139:9;16129:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;16106:9;:20;16116:9;16106:20;;;;;;;;;;;;;;;:52;;;;16191:9;16174:35;;16183:6;16174:35;;;16202:6;16174:35;;;;;;:::i;:::-;;;;;;;;16227:4;16220:11;;15939:300;;;;;:::o;15692:90::-;15735:4;15773:1;15759:10;;:15;;15752:22;;15692:90;:::o;15790:141::-;15841:12;15828:10;:25;;;;15879:15;15864:12;:30;;;;15919:4;15905:11;;:18;;;;;;;;;;;;;;;;;;15790:141::o;17722:114::-;17784:4;17809:11;:19;17821:6;17809:19;;;;;;;;;;;;;;;;;;;;;;;;;17808:20;17801:27;;17722:114;;;:::o;18091:317::-;18161:7;18181:12;18196:14;:25;18211:9;18196:25;;;;;;;;;;;;;;;;;;;;;;;;;18181:40;;18232:17;18286:14;;18262:20;18274:7;18262:11;:20::i;:::-;18253:6;:29;;;;:::i;:::-;18252:48;;;;:::i;:::-;18232:68;;18349:9;18321;:24;18339:4;18321:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;18391:9;18382:6;:18;;;;:::i;:::-;18375:25;;;;18091:317;;;;:::o;18416:231::-;18482:4;18507:14;:26;18522:10;18507:26;;;;;;;;;;;;;;;;;;;;;;;;;18506:27;:47;;;;;18547:6;;;;;;;;;;;18546:7;18506:47;:71;;;;;18566:11;;;;;;;;;;;18506:71;:109;;;;;18590:14;:25;18605:9;18590:25;;;;;;;;;;;;;;;;;;;;;;;;;18506:109;:133;;;;;18628:11;;;;;;;;;;;18506:133;18499:140;;18416:231;;;:::o;18655:593::-;9922:4;9913:6;;:13;;;;;;;;;;;;;;;;;;18735:1:::1;18708:9;:24;18726:4;18708:24;;;;;;;;;;;;;;;;:28;18704:537;;;18752:20;18775:9;:24;18793:4;18775:24;;;;;;;;;;;;;;;;18752:47;;18824:21;18862:1;18848:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18824:40;;18897:4;18879;18884:1;18879:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18927:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18917:4;18922:1;18917:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18965:6;;;;;;;;;;;:57;;;19041:12;19072:1;19092:4;19123;19147:15;18965:212;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19199:30;19216:12;19199:30;;;;;;:::i;:::-;;;;;;;;18737:504;;18704:537;9940:5:::0;9931:6;;:14;;;;;;;;;;;;;;;;;;18655:593::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;909:::-;982:8;992:6;1042:3;1035:4;1027:6;1023:17;1019:27;1009:122;;1050:79;;:::i;:::-;1009:122;1163:6;1150:20;1140:30;;1193:18;1185:6;1182:30;1179:117;;;1215:79;;:::i;:::-;1179:117;1329:4;1321:6;1317:17;1305:29;;1383:3;1375:4;1367:6;1363:17;1353:8;1349:32;1346:41;1343:128;;;1390:79;;:::i;:::-;1343:128;909:568;;;;;:::o;1483:133::-;1526:5;1564:6;1551:20;1542:29;;1580:30;1604:5;1580:30;:::i;:::-;1483:133;;;;:::o;1622:139::-;1668:5;1706:6;1693:20;1684:29;;1722:33;1749:5;1722:33;:::i;:::-;1622:139;;;;:::o;1767:329::-;1826:6;1875:2;1863:9;1854:7;1850:23;1846:32;1843:119;;;1881:79;;:::i;:::-;1843:119;2001:1;2026:53;2071:7;2062:6;2051:9;2047:22;2026:53;:::i;:::-;2016:63;;1972:117;1767:329;;;;:::o;2102:351::-;2172:6;2221:2;2209:9;2200:7;2196:23;2192:32;2189:119;;;2227:79;;:::i;:::-;2189:119;2347:1;2372:64;2428:7;2419:6;2408:9;2404:22;2372:64;:::i;:::-;2362:74;;2318:128;2102:351;;;;:::o;2459:474::-;2527:6;2535;2584:2;2572:9;2563:7;2559:23;2555:32;2552:119;;;2590:79;;:::i;:::-;2552:119;2710:1;2735:53;2780:7;2771:6;2760:9;2756:22;2735:53;:::i;:::-;2725:63;;2681:117;2837:2;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2808:118;2459:474;;;;;:::o;2939:619::-;3016:6;3024;3032;3081:2;3069:9;3060:7;3056:23;3052:32;3049:119;;;3087:79;;:::i;:::-;3049:119;3207:1;3232:53;3277:7;3268:6;3257:9;3253:22;3232:53;:::i;:::-;3222:63;;3178:117;3334:2;3360:53;3405:7;3396:6;3385:9;3381:22;3360:53;:::i;:::-;3350:63;;3305:118;3462:2;3488:53;3533:7;3524:6;3513:9;3509:22;3488:53;:::i;:::-;3478:63;;3433:118;2939:619;;;;;:::o;3564:468::-;3629:6;3637;3686:2;3674:9;3665:7;3661:23;3657:32;3654:119;;;3692:79;;:::i;:::-;3654:119;3812:1;3837:53;3882:7;3873:6;3862:9;3858:22;3837:53;:::i;:::-;3827:63;;3783:117;3939:2;3965:50;4007:7;3998:6;3987:9;3983:22;3965:50;:::i;:::-;3955:60;;3910:115;3564:468;;;;;:::o;4038:474::-;4106:6;4114;4163:2;4151:9;4142:7;4138:23;4134:32;4131:119;;;4169:79;;:::i;:::-;4131:119;4289:1;4314:53;4359:7;4350:6;4339:9;4335:22;4314:53;:::i;:::-;4304:63;;4260:117;4416:2;4442:53;4487:7;4478:6;4467:9;4463:22;4442:53;:::i;:::-;4432:63;;4387:118;4038:474;;;;;:::o;4518:934::-;4640:6;4648;4656;4664;4713:2;4701:9;4692:7;4688:23;4684:32;4681:119;;;4719:79;;:::i;:::-;4681:119;4867:1;4856:9;4852:17;4839:31;4897:18;4889:6;4886:30;4883:117;;;4919:79;;:::i;:::-;4883:117;5032:80;5104:7;5095:6;5084:9;5080:22;5032:80;:::i;:::-;5014:98;;;;4810:312;5189:2;5178:9;5174:18;5161:32;5220:18;5212:6;5209:30;5206:117;;;5242:79;;:::i;:::-;5206:117;5355:80;5427:7;5418:6;5407:9;5403:22;5355:80;:::i;:::-;5337:98;;;;5132:313;4518:934;;;;;;;:::o;5458:323::-;5514:6;5563:2;5551:9;5542:7;5538:23;5534:32;5531:119;;;5569:79;;:::i;:::-;5531:119;5689:1;5714:50;5756:7;5747:6;5736:9;5732:22;5714:50;:::i;:::-;5704:60;;5660:114;5458:323;;;;:::o;5787:753::-;5867:6;5875;5883;5891;5940:3;5928:9;5919:7;5915:23;5911:33;5908:120;;;5947:79;;:::i;:::-;5908:120;6067:1;6092:50;6134:7;6125:6;6114:9;6110:22;6092:50;:::i;:::-;6082:60;;6038:114;6191:2;6217:50;6259:7;6250:6;6239:9;6235:22;6217:50;:::i;:::-;6207:60;;6162:115;6316:2;6342:53;6387:7;6378:6;6367:9;6363:22;6342:53;:::i;:::-;6332:63;;6287:118;6444:2;6470:53;6515:7;6506:6;6495:9;6491:22;6470:53;:::i;:::-;6460:63;;6415:118;5787:753;;;;;;;:::o;6546:468::-;6611:6;6619;6668:2;6656:9;6647:7;6643:23;6639:32;6636:119;;;6674:79;;:::i;:::-;6636:119;6794:1;6819:50;6861:7;6852:6;6841:9;6837:22;6819:50;:::i;:::-;6809:60;;6765:114;6918:2;6944:53;6989:7;6980:6;6969:9;6965:22;6944:53;:::i;:::-;6934:63;;6889:118;6546:468;;;;;:::o;7020:329::-;7079:6;7128:2;7116:9;7107:7;7103:23;7099:32;7096:119;;;7134:79;;:::i;:::-;7096:119;7254:1;7279:53;7324:7;7315:6;7304:9;7300:22;7279:53;:::i;:::-;7269:63;;7225:117;7020:329;;;;:::o;7355:468::-;7420:6;7428;7477:2;7465:9;7456:7;7452:23;7448:32;7445:119;;;7483:79;;:::i;:::-;7445:119;7603:1;7628:53;7673:7;7664:6;7653:9;7649:22;7628:53;:::i;:::-;7618:63;;7574:117;7730:2;7756:50;7798:7;7789:6;7778:9;7774:22;7756:50;:::i;:::-;7746:60;;7701:115;7355:468;;;;;:::o;7829:474::-;7897:6;7905;7954:2;7942:9;7933:7;7929:23;7925:32;7922:119;;;7960:79;;:::i;:::-;7922:119;8080:1;8105:53;8150:7;8141:6;8130:9;8126:22;8105:53;:::i;:::-;8095:63;;8051:117;8207:2;8233:53;8278:7;8269:6;8258:9;8254:22;8233:53;:::i;:::-;8223:63;;8178:118;7829:474;;;;;:::o;8309:619::-;8386:6;8394;8402;8451:2;8439:9;8430:7;8426:23;8422:32;8419:119;;;8457:79;;:::i;:::-;8419:119;8577:1;8602:53;8647:7;8638:6;8627:9;8623:22;8602:53;:::i;:::-;8592:63;;8548:117;8704:2;8730:53;8775:7;8766:6;8755:9;8751:22;8730:53;:::i;:::-;8720:63;;8675:118;8832:2;8858:53;8903:7;8894:6;8883:9;8879:22;8858:53;:::i;:::-;8848:63;;8803:118;8309:619;;;;;:::o;8934:179::-;9003:10;9024:46;9066:3;9058:6;9024:46;:::i;:::-;9102:4;9097:3;9093:14;9079:28;;8934:179;;;;:::o;9119:142::-;9222:32;9248:5;9222:32;:::i;:::-;9217:3;9210:45;9119:142;;:::o;9267:108::-;9344:24;9362:5;9344:24;:::i;:::-;9339:3;9332:37;9267:108;;:::o;9381:118::-;9468:24;9486:5;9468:24;:::i;:::-;9463:3;9456:37;9381:118;;:::o;9535:732::-;9654:3;9683:54;9731:5;9683:54;:::i;:::-;9753:86;9832:6;9827:3;9753:86;:::i;:::-;9746:93;;9863:56;9913:5;9863:56;:::i;:::-;9942:7;9973:1;9958:284;9983:6;9980:1;9977:13;9958:284;;;10059:6;10053:13;10086:63;10145:3;10130:13;10086:63;:::i;:::-;10079:70;;10172:60;10225:6;10172:60;:::i;:::-;10162:70;;10018:224;10005:1;10002;9998:9;9993:14;;9958:284;;;9962:14;10258:3;10251:10;;9659:608;;;9535:732;;;;:::o;10273:109::-;10354:21;10369:5;10354:21;:::i;:::-;10349:3;10342:34;10273:109;;:::o;10388:167::-;10493:55;10542:5;10493:55;:::i;:::-;10488:3;10481:68;10388:167;;:::o;10561:147::-;10656:45;10695:5;10656:45;:::i;:::-;10651:3;10644:58;10561:147;;:::o;10714:364::-;10802:3;10830:39;10863:5;10830:39;:::i;:::-;10885:71;10949:6;10944:3;10885:71;:::i;:::-;10878:78;;10965:52;11010:6;11005:3;10998:4;10991:5;10987:16;10965:52;:::i;:::-;11042:29;11064:6;11042:29;:::i;:::-;11037:3;11033:39;11026:46;;10806:272;10714:364;;;;:::o;11084:366::-;11226:3;11247:67;11311:2;11306:3;11247:67;:::i;:::-;11240:74;;11323:93;11412:3;11323:93;:::i;:::-;11441:2;11436:3;11432:12;11425:19;;11084:366;;;:::o;11456:::-;11598:3;11619:67;11683:2;11678:3;11619:67;:::i;:::-;11612:74;;11695:93;11784:3;11695:93;:::i;:::-;11813:2;11808:3;11804:12;11797:19;;11456:366;;;:::o;11828:::-;11970:3;11991:67;12055:2;12050:3;11991:67;:::i;:::-;11984:74;;12067:93;12156:3;12067:93;:::i;:::-;12185:2;12180:3;12176:12;12169:19;;11828:366;;;:::o;12200:::-;12342:3;12363:67;12427:2;12422:3;12363:67;:::i;:::-;12356:74;;12439:93;12528:3;12439:93;:::i;:::-;12557:2;12552:3;12548:12;12541:19;;12200:366;;;:::o;12572:::-;12714:3;12735:67;12799:2;12794:3;12735:67;:::i;:::-;12728:74;;12811:93;12900:3;12811:93;:::i;:::-;12929:2;12924:3;12920:12;12913:19;;12572:366;;;:::o;12944:::-;13086:3;13107:67;13171:2;13166:3;13107:67;:::i;:::-;13100:74;;13183:93;13272:3;13183:93;:::i;:::-;13301:2;13296:3;13292:12;13285:19;;12944:366;;;:::o;13316:::-;13458:3;13479:67;13543:2;13538:3;13479:67;:::i;:::-;13472:74;;13555:93;13644:3;13555:93;:::i;:::-;13673:2;13668:3;13664:12;13657:19;;13316:366;;;:::o;13688:::-;13830:3;13851:67;13915:2;13910:3;13851:67;:::i;:::-;13844:74;;13927:93;14016:3;13927:93;:::i;:::-;14045:2;14040:3;14036:12;14029:19;;13688:366;;;:::o;14060:::-;14202:3;14223:67;14287:2;14282:3;14223:67;:::i;:::-;14216:74;;14299:93;14388:3;14299:93;:::i;:::-;14417:2;14412:3;14408:12;14401:19;;14060:366;;;:::o;14432:::-;14574:3;14595:67;14659:2;14654:3;14595:67;:::i;:::-;14588:74;;14671:93;14760:3;14671:93;:::i;:::-;14789:2;14784:3;14780:12;14773:19;;14432:366;;;:::o;14804:118::-;14891:24;14909:5;14891:24;:::i;:::-;14886:3;14879:37;14804:118;;:::o;14928:112::-;15011:22;15027:5;15011:22;:::i;:::-;15006:3;14999:35;14928:112;;:::o;15046:222::-;15139:4;15177:2;15166:9;15162:18;15154:26;;15190:71;15258:1;15247:9;15243:17;15234:6;15190:71;:::i;:::-;15046:222;;;;:::o;15274:254::-;15383:4;15421:2;15410:9;15406:18;15398:26;;15434:87;15518:1;15507:9;15503:17;15494:6;15434:87;:::i;:::-;15274:254;;;;:::o;15534:210::-;15621:4;15659:2;15648:9;15644:18;15636:26;;15672:65;15734:1;15723:9;15719:17;15710:6;15672:65;:::i;:::-;15534:210;;;;:::o;15750:258::-;15861:4;15899:2;15888:9;15884:18;15876:26;;15912:89;15998:1;15987:9;15983:17;15974:6;15912:89;:::i;:::-;15750:258;;;;:::o;16014:313::-;16127:4;16165:2;16154:9;16150:18;16142:26;;16214:9;16208:4;16204:20;16200:1;16189:9;16185:17;16178:47;16242:78;16315:4;16306:6;16242:78;:::i;:::-;16234:86;;16014:313;;;;:::o;16333:419::-;16499:4;16537:2;16526:9;16522:18;16514:26;;16586:9;16580:4;16576:20;16572:1;16561:9;16557:17;16550:47;16614:131;16740:4;16614:131;:::i;:::-;16606:139;;16333:419;;;:::o;16758:::-;16924:4;16962:2;16951:9;16947:18;16939:26;;17011:9;17005:4;17001:20;16997:1;16986:9;16982:17;16975:47;17039:131;17165:4;17039:131;:::i;:::-;17031:139;;16758:419;;;:::o;17183:::-;17349:4;17387:2;17376:9;17372:18;17364:26;;17436:9;17430:4;17426:20;17422:1;17411:9;17407:17;17400:47;17464:131;17590:4;17464:131;:::i;:::-;17456:139;;17183:419;;;:::o;17608:::-;17774:4;17812:2;17801:9;17797:18;17789:26;;17861:9;17855:4;17851:20;17847:1;17836:9;17832:17;17825:47;17889:131;18015:4;17889:131;:::i;:::-;17881:139;;17608:419;;;:::o;18033:::-;18199:4;18237:2;18226:9;18222:18;18214:26;;18286:9;18280:4;18276:20;18272:1;18261:9;18257:17;18250:47;18314:131;18440:4;18314:131;:::i;:::-;18306:139;;18033:419;;;:::o;18458:::-;18624:4;18662:2;18651:9;18647:18;18639:26;;18711:9;18705:4;18701:20;18697:1;18686:9;18682:17;18675:47;18739:131;18865:4;18739:131;:::i;:::-;18731:139;;18458:419;;;:::o;18883:::-;19049:4;19087:2;19076:9;19072:18;19064:26;;19136:9;19130:4;19126:20;19122:1;19111:9;19107:17;19100:47;19164:131;19290:4;19164:131;:::i;:::-;19156:139;;18883:419;;;:::o;19308:::-;19474:4;19512:2;19501:9;19497:18;19489:26;;19561:9;19555:4;19551:20;19547:1;19536:9;19532:17;19525:47;19589:131;19715:4;19589:131;:::i;:::-;19581:139;;19308:419;;;:::o;19733:::-;19899:4;19937:2;19926:9;19922:18;19914:26;;19986:9;19980:4;19976:20;19972:1;19961:9;19957:17;19950:47;20014:131;20140:4;20014:131;:::i;:::-;20006:139;;19733:419;;;:::o;20158:::-;20324:4;20362:2;20351:9;20347:18;20339:26;;20411:9;20405:4;20401:20;20397:1;20386:9;20382:17;20375:47;20439:131;20565:4;20439:131;:::i;:::-;20431:139;;20158:419;;;:::o;20583:222::-;20676:4;20714:2;20703:9;20699:18;20691:26;;20727:71;20795:1;20784:9;20780:17;20771:6;20727:71;:::i;:::-;20583:222;;;;:::o;20811:831::-;21074:4;21112:3;21101:9;21097:19;21089:27;;21126:71;21194:1;21183:9;21179:17;21170:6;21126:71;:::i;:::-;21207:80;21283:2;21272:9;21268:18;21259:6;21207:80;:::i;:::-;21334:9;21328:4;21324:20;21319:2;21308:9;21304:18;21297:48;21362:108;21465:4;21456:6;21362:108;:::i;:::-;21354:116;;21480:72;21548:2;21537:9;21533:18;21524:6;21480:72;:::i;:::-;21562:73;21630:3;21619:9;21615:19;21606:6;21562:73;:::i;:::-;20811:831;;;;;;;;:::o;21648:214::-;21737:4;21775:2;21764:9;21760:18;21752:26;;21788:67;21852:1;21841:9;21837:17;21828:6;21788:67;:::i;:::-;21648:214;;;;:::o;21949:132::-;22016:4;22039:3;22031:11;;22069:4;22064:3;22060:14;22052:22;;21949:132;;;:::o;22087:114::-;22154:6;22188:5;22182:12;22172:22;;22087:114;;;:::o;22207:99::-;22259:6;22293:5;22287:12;22277:22;;22207:99;;;:::o;22312:113::-;22382:4;22414;22409:3;22405:14;22397:22;;22312:113;;;:::o;22431:184::-;22530:11;22564:6;22559:3;22552:19;22604:4;22599:3;22595:14;22580:29;;22431:184;;;;:::o;22621:169::-;22705:11;22739:6;22734:3;22727:19;22779:4;22774:3;22770:14;22755:29;;22621:169;;;;:::o;22796:305::-;22836:3;22855:20;22873:1;22855:20;:::i;:::-;22850:25;;22889:20;22907:1;22889:20;:::i;:::-;22884:25;;23043:1;22975:66;22971:74;22968:1;22965:81;22962:107;;;23049:18;;:::i;:::-;22962:107;23093:1;23090;23086:9;23079:16;;22796:305;;;;:::o;23107:185::-;23147:1;23164:20;23182:1;23164:20;:::i;:::-;23159:25;;23198:20;23216:1;23198:20;:::i;:::-;23193:25;;23237:1;23227:35;;23242:18;;:::i;:::-;23227:35;23284:1;23281;23277:9;23272:14;;23107:185;;;;:::o;23298:848::-;23359:5;23366:4;23390:6;23381:15;;23414:5;23405:14;;23428:712;23449:1;23439:8;23436:15;23428:712;;;23544:4;23539:3;23535:14;23529:4;23526:24;23523:50;;;23553:18;;:::i;:::-;23523:50;23603:1;23593:8;23589:16;23586:451;;;24018:4;24011:5;24007:16;23998:25;;23586:451;24068:4;24062;24058:15;24050:23;;24098:32;24121:8;24098:32;:::i;:::-;24086:44;;23428:712;;;23298:848;;;;;;;:::o;24152:281::-;24210:5;24234:23;24252:4;24234:23;:::i;:::-;24226:31;;24278:25;24294:8;24278:25;:::i;:::-;24266:37;;24322:104;24359:66;24349:8;24343:4;24322:104;:::i;:::-;24313:113;;24152:281;;;;:::o;24439:1073::-;24493:5;24684:8;24674:40;;24705:1;24696:10;;24707:5;;24674:40;24733:4;24723:36;;24750:1;24741:10;;24752:5;;24723:36;24819:4;24867:1;24862:27;;;;24903:1;24898:191;;;;24812:277;;24862:27;24880:1;24871:10;;24882:5;;;24898:191;24943:3;24933:8;24930:17;24927:43;;;24950:18;;:::i;:::-;24927:43;24999:8;24996:1;24992:16;24983:25;;25034:3;25027:5;25024:14;25021:40;;;25041:18;;:::i;:::-;25021:40;25074:5;;;24812:277;;25198:2;25188:8;25185:16;25179:3;25173:4;25170:13;25166:36;25148:2;25138:8;25135:16;25130:2;25124:4;25121:12;25117:35;25101:111;25098:246;;;25254:8;25248:4;25244:19;25235:28;;25289:3;25282:5;25279:14;25276:40;;;25296:18;;:::i;:::-;25276:40;25329:5;;25098:246;25369:42;25407:3;25397:8;25391:4;25388:1;25369:42;:::i;:::-;25354:57;;;;25443:4;25438:3;25434:14;25427:5;25424:25;25421:51;;;25452:18;;:::i;:::-;25421:51;25501:4;25494:5;25490:16;25481:25;;24439:1073;;;;;;:::o;25518:348::-;25558:7;25581:20;25599:1;25581:20;:::i;:::-;25576:25;;25615:20;25633:1;25615:20;:::i;:::-;25610:25;;25803:1;25735:66;25731:74;25728:1;25725:81;25720:1;25713:9;25706:17;25702:105;25699:131;;;25810:18;;:::i;:::-;25699:131;25858:1;25855;25851:9;25840:20;;25518:348;;;;:::o;25872:191::-;25912:4;25932:20;25950:1;25932:20;:::i;:::-;25927:25;;25966:20;25984:1;25966:20;:::i;:::-;25961:25;;26005:1;26002;25999:8;25996:34;;;26010:18;;:::i;:::-;25996:34;26055:1;26052;26048:9;26040:17;;25872:191;;;;:::o;26069:96::-;26106:7;26135:24;26153:5;26135:24;:::i;:::-;26124:35;;26069:96;;;:::o;26171:104::-;26216:7;26245:24;26263:5;26245:24;:::i;:::-;26234:35;;26171:104;;;:::o;26281:90::-;26315:7;26358:5;26351:13;26344:21;26333:32;;26281:90;;;:::o;26377:126::-;26414:7;26454:42;26447:5;26443:54;26432:65;;26377:126;;;:::o;26509:77::-;26546:7;26575:5;26564:16;;26509:77;;;:::o;26592:86::-;26627:7;26667:4;26660:5;26656:16;26645:27;;26592:86;;;:::o;26684:144::-;26752:9;26785:37;26816:5;26785:37;:::i;:::-;26772:50;;26684:144;;;:::o;26834:121::-;26892:9;26925:24;26943:5;26925:24;:::i;:::-;26912:37;;26834:121;;;:::o;26961:126::-;27011:9;27044:37;27075:5;27044:37;:::i;:::-;27031:50;;26961:126;;;:::o;27093:113::-;27143:9;27176:24;27194:5;27176:24;:::i;:::-;27163:37;;27093:113;;;:::o;27212:307::-;27280:1;27290:113;27304:6;27301:1;27298:13;27290:113;;;27389:1;27384:3;27380:11;27374:18;27370:1;27365:3;27361:11;27354:39;27326:2;27323:1;27319:10;27314:15;;27290:113;;;27421:6;27418:1;27415:13;27412:101;;;27501:1;27492:6;27487:3;27483:16;27476:27;27412:101;27261:258;27212:307;;;:::o;27525:233::-;27564:3;27587:24;27605:5;27587:24;:::i;:::-;27578:33;;27633:66;27626:5;27623:77;27620:103;;;27703:18;;:::i;:::-;27620:103;27750:1;27743:5;27739:13;27732:20;;27525:233;;;:::o;27764:180::-;27812:77;27809:1;27802:88;27909:4;27906:1;27899:15;27933:4;27930:1;27923:15;27950:180;27998:77;27995:1;27988:88;28095:4;28092:1;28085:15;28119:4;28116:1;28109:15;28136:180;28184:77;28181:1;28174:88;28281:4;28278:1;28271:15;28305:4;28302:1;28295:15;28322:180;28370:77;28367:1;28360:88;28467:4;28464:1;28457:15;28491:4;28488:1;28481:15;28508:117;28617:1;28614;28607:12;28631:117;28740:1;28737;28730:12;28754:117;28863:1;28860;28853:12;28877:117;28986:1;28983;28976:12;29000:117;29109:1;29106;29099:12;29123:102;29164:6;29215:2;29211:7;29206:2;29199:5;29195:14;29191:28;29181:38;;29123:102;;;:::o;29231:::-;29273:8;29320:5;29317:1;29313:13;29292:34;;29231:102;;;:::o;29339:171::-;29479:23;29475:1;29467:6;29463:14;29456:47;29339:171;:::o;29516:174::-;29656:26;29652:1;29644:6;29640:14;29633:50;29516:174;:::o;29696:225::-;29836:34;29832:1;29824:6;29820:14;29813:58;29905:8;29900:2;29892:6;29888:15;29881:33;29696:225;:::o;29927:172::-;30067:24;30063:1;30055:6;30051:14;30044:48;29927:172;:::o;30105:170::-;30245:22;30241:1;30233:6;30229:14;30222:46;30105:170;:::o;30281:177::-;30421:29;30417:1;30409:6;30405:14;30398:53;30281:177;:::o;30464:174::-;30604:26;30600:1;30592:6;30588:14;30581:50;30464:174;:::o;30644:182::-;30784:34;30780:1;30772:6;30768:14;30761:58;30644:182;:::o;30832:171::-;30972:23;30968:1;30960:6;30956:14;30949:47;30832:171;:::o;31009:221::-;31149:34;31145:1;31137:6;31133:14;31126:58;31218:4;31213:2;31205:6;31201:15;31194:29;31009:221;:::o;31236:122::-;31309:24;31327:5;31309:24;:::i;:::-;31302:5;31299:35;31289:63;;31348:1;31345;31338:12;31289:63;31236:122;:::o;31364:116::-;31434:21;31449:5;31434:21;:::i;:::-;31427:5;31424:32;31414:60;;31470:1;31467;31460:12;31414:60;31364:116;:::o;31486:122::-;31559:24;31577:5;31559:24;:::i;:::-;31552:5;31549:35;31539:63;;31598:1;31595;31588:12;31539:63;31486:122;:::o

Swarm Source

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