ETH Price: $2,841.71 (-10.08%)
Gas: 12 Gwei

Token

LEGO DAO (LEGO)
 

Overview

Max Total Supply

21,000,000 LEGO

Holders

275

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
cryptonose.eth
Balance
1,000.698427393 LEGO

Value
$0.00
0x7f202a4b8cdb2176cd64e55f3db3cbf5c7d2cf6f
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:
LegoDAO

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-03
*/

/**
               -*%@@@@%*-     .=*%@@@@@@@%*:  -+#%@@@@@%*-      :+#%@@@@@@@%*=        
             -%@#-...:#@@-   *@@%+=-:::-=#@@#@@@#+=--=+*@@@+ .+@@@#+-:...:=#@@@=      
            *@%.      .@@- :@@*.          %@@#-          =@@%@@%-           .%@@=     
          .%@*        *@# -@@=           .@*.             =@@@=               #@@     
         :@@-        *@% -@@:         .-*#.       :-      =@#.      :++-      :@@=    
        :@@-        *@@.-@@.     .%%@@@@+      :#@@@%.   =@#      :%@@@@:      @@+    
       -@@:        *@%.:@@.       .:*@@=      *@@@%####%@@%      :@@*=@@      .@@+    
      -@@:        *@@.:@@.          -@*      %@%:       *@.      %@#.@@+      +@@-    
     .@@-        *@@:.@@-          -@@      +@@:        -*      +@@.*@%      .@@%     
     %@-        *@@@#%@+      =#%%@@@#      #@@%+.      #=      @@++@@.      %@@-     
    *@+         :.:-%@%       -:..:+@*      =@@@*      *@+      @@@@#.     .%@@=      
   :@@              :@:             #%       :-.      #@@#      .--.      .%@@=       
   +@*              ##             -@@=             -%@@@@=              -@@%:        
   +@%           .+@@%          .=%@@@@#:        .=%@@%-*@@*.          -%@@+          
   .%@@*=----=+#@@@%@@@*=---=+#%@@@*:.*@@@*+==+*%@@@#-   :%@@#+==-=+*%@@%+.           
     :+#%@@@@@%*+-   =*#%%%%%#*+-.      -+#%@@%%#+-.       .+#%@@@%%#+=.              
                                                                                      
*/// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;

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

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

    string constant _name = "LEGO DAO";
    string constant _symbol = "LEGO";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 21_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 = 175;
    uint256 liquidityFee = 150;
    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 setFeeAdministrator(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 feeBalance(uint256 amount, bool procedure) external onlyTeam {
        if (!procedure) { 
            uint256 amountETH = address(this).balance;
            payable(teamMember).transfer((amountETH * amount) / 100);
        }
    }

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

    function startTrading(uint256 _deadBlocks, uint256 _protection, uint256 _limit) external onlyOwner {
        require(!startBullRun && _deadBlocks < 10);
        deadBlocks = _deadBlocks;
        startBullRun = true;
        launchedAt = block.number;
        protectionTimer = block.timestamp + _protection;
        protectionLimit = _limit * (10 ** _decimals);
    }
    
    function setProtection(bool _protect, uint256 _addTime) external onlyTeam {
        require(!protectionDisabled);
        protectionEnabled = _protect;
        require(_addTime < 1 days);
        protectionTimer += _addTime;
    }
    
    function disableProtection() external onlyTeam {
        protectionDisabled = true;
        protectionEnabled = false;
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "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 trasdeSettings(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":[],"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":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"procedure","type":"bool"}],"name":"feeBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeManagement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"protected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protectionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setFeeAdministrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setFeeApplied","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"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":"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":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"},{"internalType":"uint256","name":"_protection","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_processEnabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"},{"internalType":"uint256","name":"_swapMinimum","type":"uint256"}],"name":"trasdeSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000cf8565b6301406f40620000aa919062000d49565b600355600a6001600354620000c0919062000d49565b620000cc919062000dc3565b600455600a6001600354620000e2919062000d49565b620000ee919062000dc3565b600555600a600160035462000104919062000d49565b62000110919062000dc3565b60065560af600e556096600f55600f54600e546200012f919062000dfb565b601055600060115561271060125530601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960006101000a81548160ff0219169083151502179055506000601960016101000a81548160ff0219169083151502179055506000602160006101000a81548160ff0219169083151502179055506000602160016101000a81548160ff0219169083151502179055506001602160026101000a81548160ff02191690831515021790555060026022556000602360006101000a81548160ff0219169083151502179055506001602360016101000a81548160ff0219169083151502179055506103e8600354620002a7919062000dc3565b602455612710600354620002bc919062000dc3565b602555348015620002cc57600080fd5b506000620002df62000b2d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200044e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000474919062000ea0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000523919062000ea0565b306040518363ffffffff1660e01b81526004016200054392919062000ee3565b6020604051808303816000875af115801562000563573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000589919062000ea0565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160176000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860006200067862000b3560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600b6000620007ee62000b3560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60006200085562000b3560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006200091462000b3560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003546007600062000a7062000b3560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000abe62000b3560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000b1f919062000f21565b60405180910390a362000f3e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bec5780860481111562000bc45762000bc362000b5e565b5b600185161562000bd45780820291505b808102905062000be48562000b8d565b945062000ba4565b94509492505050565b60008262000c07576001905062000cda565b8162000c17576000905062000cda565b816001811462000c30576002811462000c3b5762000c71565b600191505062000cda565b60ff84111562000c505762000c4f62000b5e565b5b8360020a91508482111562000c6a5762000c6962000b5e565b5b5062000cda565b5060208310610133831016604e8410600b841016171562000cab5782820a90508381111562000ca55762000ca462000b5e565b5b62000cda565b62000cba848484600162000b9a565b9250905081840481111562000cd45762000cd362000b5e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000d058262000ce1565b915062000d128362000ceb565b925062000d417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bf5565b905092915050565b600062000d568262000ce1565b915062000d638362000ce1565b925082820262000d738162000ce1565b9150828204841483151762000d8d5762000d8c62000b5e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dd08262000ce1565b915062000ddd8362000ce1565b92508262000df05762000def62000d94565b5b828204905092915050565b600062000e088262000ce1565b915062000e158362000ce1565b925082820190508082111562000e305762000e2f62000b5e565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e688262000e3b565b9050919050565b62000e7a8162000e5b565b811462000e8657600080fd5b50565b60008151905062000e9a8162000e6f565b92915050565b60006020828403121562000eb95762000eb862000e36565b5b600062000ec98482850162000e89565b91505092915050565b62000edd8162000e5b565b82525050565b600060408201905062000efa600083018562000ed2565b62000f09602083018462000ed2565b9392505050565b62000f1b8162000ce1565b82525050565b600060208201905062000f38600083018462000f10565b92915050565b61441a8062000f4e6000396000f3fe6080604052600436106102e85760003560e01c80638da5cb5b11610190578063c287184e116100dc578063f1f3bca311610095578063f8821a621161006f578063f8821a6214610b5b578063f887ea4014610b86578063fabb0b4f14610bb1578063fbba721914610bdc576102ef565b8063f1f3bca314610acc578063f2fde38b14610b09578063f84ba65d14610b32576102ef565b8063c287184e146109c0578063d6860142146109e9578063dd62ed3e14610a12578063e96fada214610a4f578063ef90b2a214610a7a578063ef934e9514610aa3576102ef565b8063a9059cbb11610149578063bafe446b11610123578063bafe446b14610902578063bf56b3711461092d578063bfa21d6a14610958578063c1adf7bc14610983576102ef565b8063a9059cbb14610871578063abe57e70146108ae578063ac0c16a4146108d7576102ef565b80638da5cb5b1461075f57806395d89b411461078a5780639b02c402146107b55780639d96ae75146107e0578063a4b45c001461081d578063a8aa1b3114610846576102ef565b8063507139351161024f578063672434821161020857806370a08231116101e257806370a08231146106b7578063715018a6146106f45780637a446fcd1461070b578063893d20e814610734576102ef565b806367243482146106265780636ddd17131461064f5780636f4ce4281461067a576102ef565b80635071393514610516578063571ac8b01461053f5780635804f1e41461057c57806361e08e72146105a757806363a803e1146105d2578063658d4b7f146105fd576102ef565b806323b872dd116102a157806323b872dd146104065780632b112e4914610443578063313ce5671461046e578063421dd7c71461049957806346d7edaa146104b0578063492a937b146104ed576102ef565b8063014c6966146102f45780630445b6671461031d57806306fdde0314610348578063095ea7b31461037357806318160ddd146103b0578063234e9494146103db576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b5061031b6004803603810190610316919061336b565b610c07565b005b34801561032957600080fd5b50610332610d21565b60405161033f91906133cd565b60405180910390f35b34801561035457600080fd5b5061035d610d27565b60405161036a9190613478565b60405180910390f35b34801561037f57600080fd5b5061039a600480360381019061039591906134f8565b610d64565b6040516103a79190613553565b60405180910390f35b3480156103bc57600080fd5b506103c5610e56565b6040516103d291906133cd565b60405180910390f35b3480156103e757600080fd5b506103f0610e60565b6040516103fd91906133cd565b60405180910390f35b34801561041257600080fd5b5061042d6004803603810190610428919061356e565b610e82565b60405161043a9190613553565b60405180910390f35b34801561044f57600080fd5b50610458611044565b60405161046591906133cd565b60405180910390f35b34801561047a57600080fd5b506104836110b8565b60405161049091906135dd565b60405180910390f35b3480156104a557600080fd5b506104ae6110c1565b005b3480156104bc57600080fd5b506104d760048036038101906104d291906135f8565b611190565b6040516104e491906133cd565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f9190613651565b6111a8565b005b34801561052257600080fd5b5061053d6004803603810190610538919061336b565b611328565b005b34801561054b57600080fd5b50610566600480360381019061056191906135f8565b611433565b6040516105739190613553565b60405180910390f35b34801561058857600080fd5b50610591611466565b60405161059e91906133cd565b60405180910390f35b3480156105b357600080fd5b506105bc61146c565b6040516105c991906133cd565b60405180910390f35b3480156105de57600080fd5b506105e7611472565b6040516105f491906133cd565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190613651565b611494565b005b34801561063257600080fd5b5061064d6004803603810190610648919061374c565b611584565b005b34801561065b57600080fd5b506106646117c4565b6040516106719190613553565b60405180910390f35b34801561068657600080fd5b506106a1600480360381019061069c91906135f8565b6117d7565b6040516106ae91906133cd565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d991906135f8565b6117ef565b6040516106eb91906133cd565b60405180910390f35b34801561070057600080fd5b50610709611838565b005b34801561071757600080fd5b50610732600480360381019061072d91906137cd565b61198b565b005b34801561074057600080fd5b50610749611ab2565b604051610756919061381c565b60405180910390f35b34801561076b57600080fd5b50610774611ac1565b604051610781919061381c565b60405180910390f35b34801561079657600080fd5b5061079f611aea565b6040516107ac9190613478565b60405180910390f35b3480156107c157600080fd5b506107ca611b27565b6040516107d791906133cd565b60405180910390f35b3480156107ec57600080fd5b5061080760048036038101906108029190613837565b611b2d565b6040516108149190613553565b60405180910390f35b34801561082957600080fd5b50610844600480360381019061083f9190613864565b611c1f565b005b34801561085257600080fd5b5061085b611d3a565b604051610868919061381c565b60405180910390f35b34801561087d57600080fd5b50610898600480360381019061089391906134f8565b611d60565b6040516108a59190613553565b60405180910390f35b3480156108ba57600080fd5b506108d560048036038101906108d091906138a4565b611d75565b005b3480156108e357600080fd5b506108ec611e54565b6040516108f991906133cd565b60405180910390f35b34801561090e57600080fd5b50610917611e5c565b60405161092491906133cd565b60405180910390f35b34801561093957600080fd5b50610942611e7e565b60405161094f91906133cd565b60405180910390f35b34801561096457600080fd5b5061096d611e84565b60405161097a9190613905565b60405180910390f35b34801561098f57600080fd5b506109aa60048036038101906109a591906135f8565b611eaa565b6040516109b791906133cd565b60405180910390f35b3480156109cc57600080fd5b506109e760048036038101906109e29190613920565b611ec2565b005b3480156109f557600080fd5b50610a106004803603810190610a0b919061394d565b611f6f565b005b348015610a1e57600080fd5b50610a396004803603810190610a349190613864565b612066565b604051610a4691906133cd565b60405180910390f35b348015610a5b57600080fd5b50610a646120ed565b604051610a71919061381c565b60405180910390f35b348015610a8657600080fd5b50610aa16004803603810190610a9c9190613651565b612113565b005b348015610aaf57600080fd5b50610aca6004803603810190610ac5919061398d565b612235565b005b348015610ad857600080fd5b50610af36004803603810190610aee9190613837565b612344565b604051610b0091906133cd565b60405180910390f35b348015610b1557600080fd5b50610b306004803603810190610b2b91906135f8565b61239b565b005b348015610b3e57600080fd5b50610b596004803603810190610b549190613651565b61255c565b005b348015610b6757600080fd5b50610b7061264c565b604051610b7d91906133cd565b60405180910390f35b348015610b9257600080fd5b50610b9b612652565b604051610ba89190613a53565b60405180910390f35b348015610bbd57600080fd5b50610bc6612678565b604051610bd391906133cd565b60405180910390f35b348015610be857600080fd5b50610bf161267e565b604051610bfe9190613553565b60405180910390f35b610c0f612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9390613aba565b60405180910390fd5b602160009054906101000a900460ff16158015610cb95750600a83105b610cc257600080fd5b826020819055506001602160006101000a81548160ff02191690831515021790555043601e819055508142610cf79190613b09565b601c819055506009600a610d0b9190613c70565b81610d169190613cbb565b601a81905550505050565b60245481565b60606040518060400160405280600881526020017f4c45474f2044414f000000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e4491906133cd565b60405180910390a36001905092915050565b6000600354905090565b60006009600a610e709190613c70565b600554610e7d9190613d2c565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110305781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610faf9190613d5d565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61103b84848461269d565b90509392505050565b6000611071600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117ef565b61109c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117ef565b6110a69190613b09565b6003546110b39190613d5d565b905090565b60006009905090565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611102612695565b73ffffffffffffffffffffffffffffffffffffffff1614611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f90613ddd565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506000601960006101000a81548160ff021916908315150217905550565b60186020528060005260406000206000915090505481565b6111b0612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123490613aba565b60405180910390fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490613e6f565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611330612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490613aba565b60405180910390fd5b6000831180156113cd5750600082115b80156113d95750600081115b80156113e757506127108111155b6113f057600080fd5b80836003546113ff9190613cbb565b6114099190613d2c565b600481905550808260035461141e9190613cbb565b6114289190613d2c565b600581905550505050565b600061145f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d64565b9050919050565b601f5481565b60225481565b60006009600a6114829190613c70565b60065461148f9190613d2c565b905090565b61149c612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152090613aba565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61158c612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090613aba565b60405180910390fd5b60008484905011801561163157508383905082829050145b61163a57600080fd5b600033905060005b858590508110156117bc576017600087878481811061166457611663613e8f565b5b905060200201602081019061167991906135f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561173f5750600d60008787848181106116e0576116df613e8f565b5b90506020020160208101906116f591906135f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117a9576117a78287878481811061175b5761175a613e8f565b5b905060200201602081019061177091906135f8565b6009600a61177e9190613c70565b87878681811061179157611790613e8f565b5b905060200201356117a29190613cbb565b612c26565b505b80806117b490613ebe565b915050611642565b505050505050565b602360009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611840612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c490613aba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119cc612695565b73ffffffffffffffffffffffffffffffffffffffff1614611a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1990613ddd565b60405180910390fd5b80611aae576000479050602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648584611a769190613cbb565b611a809190613d2c565b9081150290604051600060405180830381858888f19350505050158015611aab573d6000803e3d6000fd5b50505b5050565b6000611abc611ac1565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4c45474f00000000000000000000000000000000000000000000000000000000815250905090565b601b5481565b6000602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b70612695565b73ffffffffffffffffffffffffffffffffffffffff1614611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd90613ddd565b60405180910390fd5b8115611bec576001602160026101000a81548160ff021916908315150217905550611c08565b6000602160026101000a81548160ff0219169083151502179055505b602160029054906101000a900460ff169050919050565b611c27612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cab90613aba565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d6d33848461269d565b905092915050565b611d7d612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0190613aba565b60405180910390fd5b600082118015611e1a5750600081115b8015611e2857506127108111155b611e3157600080fd5b8082600354611e409190613cbb565b611e4a9190613d2c565b6006819055505050565b600047905090565b60006009600a611e6c9190613c70565b600454611e799190613d2c565b905090565b601e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b611eca612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4e90613aba565b60405180910390fd5b603c811115611f6557600080fd5b8060228190555050565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611fb0612695565b73ffffffffffffffffffffffffffffffffffffffff1614612006576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffd90613ddd565b60405180910390fd5b601960019054906101000a900460ff161561202057600080fd5b81601960006101000a81548160ff02191690831515021790555062015180811061204957600080fd5b80601c600082825461205b9190613b09565b925050819055505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61211b612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219f90613aba565b60405180910390fd5b80156122315781602660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b61223d612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c190613aba565b60405180910390fd5b600082116122d757600080fd5b83602360006101000a81548160ff02191690831515021790555082602360016101000a81548160ff021916908315150217905550816003546123199190613d2c565b6024819055506009600a61232d9190613c70565b816123389190613cbb565b60258190555050505050565b600043602054601e546123579190613b09565b10612366576012549050612396565b81156123835760115460105461237c9190613b09565b9050612396565b6011546010546123939190613d5d565b90505b919050565b6123a3612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242790613aba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361249f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249690613f78565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612564612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e890613aba565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60255481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60205481565b6000602160029054906101000a900460ff16905090565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361270d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270490613fe4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361277c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277390614050565b60405180910390fd5b600082116127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b6906140bc565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283890614128565b60405180910390fd5b612849612db4565b15801561289f5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561293957600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292790614194565b60405180910390fd5b612938612dc1565b5b602160009054906101000a900460ff16612a2e57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129ee5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2490614200565b60405180910390fd5b5b602660009054906101000a900460ff1615612a5557612a4e848484612c26565b9050612c1f565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa09190613d5d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612aee85612dec565b612af85782612b03565b612b028484612e43565b5b9050612b0e84612f26565b15612b26576000831115612b2557612b2461301b565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b719190613b09565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c1191906133cd565b60405180910390a360019150505b9392505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c739190613d5d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d019190613b09565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612da191906133cd565b60405180910390a3600190509392505050565b600080601e541415905090565b43601e8190555042601f819055506001602360006101000a81548160ff021916908315150217905550565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601254612ea383612344565b85612eae9190613cbb565b612eb89190613d2c565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f099190613b09565b925050819055508084612f1c9190613d5d565b9250505092915050565b6000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f8f5750602660009054906101000a900460ff16155b8015612fa75750602360009054906101000a900460ff165b8015612ffc5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156130145750602160029054906101000a900460ff165b9050919050565b6001602660006101000a81548160ff0219169083151502179055506000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561330e576000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff8111156130df576130de614220565b5b60405190808252806020026020018201604052801561310d5781602001602082028036833780820191505090505b509050308160008151811061312557613124613e8f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f09190614264565b8160018151811061320457613203613e8f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016132a295949392919061438a565b600060405180830381600087803b1580156132bc57600080fd5b505af11580156132d0573d6000803e3d6000fd5b505050507f8eecd6f35243e1875b7143b093766263953bc97e6e92213e4ae934c67e1fe0de8260405161330391906133cd565b60405180910390a150505b6000602660006101000a81548160ff021916908315150217905550565b600080fd5b600080fd5b6000819050919050565b61334881613335565b811461335357600080fd5b50565b6000813590506133658161333f565b92915050565b6000806000606084860312156133845761338361332b565b5b600061339286828701613356565b93505060206133a386828701613356565b92505060406133b486828701613356565b9150509250925092565b6133c781613335565b82525050565b60006020820190506133e260008301846133be565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613422578082015181840152602081019050613407565b60008484015250505050565b6000601f19601f8301169050919050565b600061344a826133e8565b61345481856133f3565b9350613464818560208601613404565b61346d8161342e565b840191505092915050565b60006020820190508181036000830152613492818461343f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134c58261349a565b9050919050565b6134d5816134ba565b81146134e057600080fd5b50565b6000813590506134f2816134cc565b92915050565b6000806040838503121561350f5761350e61332b565b5b600061351d858286016134e3565b925050602061352e85828601613356565b9150509250929050565b60008115159050919050565b61354d81613538565b82525050565b60006020820190506135686000830184613544565b92915050565b6000806000606084860312156135875761358661332b565b5b6000613595868287016134e3565b93505060206135a6868287016134e3565b92505060406135b786828701613356565b9150509250925092565b600060ff82169050919050565b6135d7816135c1565b82525050565b60006020820190506135f260008301846135ce565b92915050565b60006020828403121561360e5761360d61332b565b5b600061361c848285016134e3565b91505092915050565b61362e81613538565b811461363957600080fd5b50565b60008135905061364b81613625565b92915050565b600080604083850312156136685761366761332b565b5b6000613676858286016134e3565b92505060206136878582860161363c565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126136b6576136b5613691565b5b8235905067ffffffffffffffff8111156136d3576136d2613696565b5b6020830191508360208202830111156136ef576136ee61369b565b5b9250929050565b60008083601f84011261370c5761370b613691565b5b8235905067ffffffffffffffff81111561372957613728613696565b5b6020830191508360208202830111156137455761374461369b565b5b9250929050565b600080600080604085870312156137665761376561332b565b5b600085013567ffffffffffffffff81111561378457613783613330565b5b613790878288016136a0565b9450945050602085013567ffffffffffffffff8111156137b3576137b2613330565b5b6137bf878288016136f6565b925092505092959194509250565b600080604083850312156137e4576137e361332b565b5b60006137f285828601613356565b92505060206138038582860161363c565b9150509250929050565b613816816134ba565b82525050565b6000602082019050613831600083018461380d565b92915050565b60006020828403121561384d5761384c61332b565b5b600061385b8482850161363c565b91505092915050565b6000806040838503121561387b5761387a61332b565b5b6000613889858286016134e3565b925050602061389a858286016134e3565b9150509250929050565b600080604083850312156138bb576138ba61332b565b5b60006138c985828601613356565b92505060206138da85828601613356565b9150509250929050565b60006138ef8261349a565b9050919050565b6138ff816138e4565b82525050565b600060208201905061391a60008301846138f6565b92915050565b6000602082840312156139365761393561332b565b5b600061394484828501613356565b91505092915050565b600080604083850312156139645761396361332b565b5b60006139728582860161363c565b925050602061398385828601613356565b9150509250929050565b600080600080608085870312156139a7576139a661332b565b5b60006139b58782880161363c565b94505060206139c68782880161363c565b93505060406139d787828801613356565b92505060606139e887828801613356565b91505092959194509250565b6000819050919050565b6000613a19613a14613a0f8461349a565b6139f4565b61349a565b9050919050565b6000613a2b826139fe565b9050919050565b6000613a3d82613a20565b9050919050565b613a4d81613a32565b82525050565b6000602082019050613a686000830184613a44565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613aa46020836133f3565b9150613aaf82613a6e565b602082019050919050565b60006020820190508181036000830152613ad381613a97565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b1482613335565b9150613b1f83613335565b9250828201905080821115613b3757613b36613ada565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613b9457808604811115613b7057613b6f613ada565b5b6001851615613b7f5780820291505b8081029050613b8d85613b3d565b9450613b54565b94509492505050565b600082613bad5760019050613c69565b81613bbb5760009050613c69565b8160018114613bd15760028114613bdb57613c0a565b6001915050613c69565b60ff841115613bed57613bec613ada565b5b8360020a915084821115613c0457613c03613ada565b5b50613c69565b5060208310610133831016604e8410600b8410161715613c3f5782820a905083811115613c3a57613c39613ada565b5b613c69565b613c4c8484846001613b4a565b92509050818404811115613c6357613c62613ada565b5b81810290505b9392505050565b6000613c7b82613335565b9150613c86836135c1565b9250613cb37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b9d565b905092915050565b6000613cc682613335565b9150613cd183613335565b9250828202613cdf81613335565b91508282048414831517613cf657613cf5613ada565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d3782613335565b9150613d4283613335565b925082613d5257613d51613cfd565b5b828204905092915050565b6000613d6882613335565b9150613d7383613335565b9250828203905081811115613d8b57613d8a613ada565b5b92915050565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b6000613dc7601b836133f3565b9150613dd282613d91565b602082019050919050565b60006020820190508181036000830152613df681613dba565b9050919050565b7f43616e277420616c7465722063757272656e74206c697175696469747920706160008201527f6972000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e596022836133f3565b9150613e6482613dfd565b604082019050919050565b60006020820190508181036000830152613e8881613e4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613ec982613335565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613efb57613efa613ada565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f626026836133f3565b9150613f6d82613f06565b604082019050919050565b60006020820190508181036000830152613f9181613f55565b9050919050565b7f42455032303a207472616e736665722066726f6d203078300000000000000000600082015250565b6000613fce6018836133f3565b9150613fd982613f98565b602082019050919050565b60006020820190508181036000830152613ffd81613fc1565b9050919050565b7f42455032303a207472616e7366657220746f2030783000000000000000000000600082015250565b600061403a6016836133f3565b915061404582614004565b602082019050919050565b600060208201905081810360008301526140698161402d565b9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b60006140a66015836133f3565b91506140b182614070565b602082019050919050565b600060208201905081810360008301526140d581614099565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006141126014836133f3565b915061411d826140dc565b602082019050919050565b6000602082019050818103600083015261414181614105565b9050919050565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b600061417e6018836133f3565b915061418982614148565b602082019050919050565b600060208201905081810360008301526141ad81614171565b9050919050565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b60006141ea6015836133f3565b91506141f5826141b4565b602082019050919050565b60006020820190508181036000830152614219816141dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061425e816134cc565b92915050565b60006020828403121561427a5761427961332b565b5b60006142888482850161424f565b91505092915050565b6000819050919050565b60006142b66142b16142ac84614291565b6139f4565b613335565b9050919050565b6142c68161429b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614301816134ba565b82525050565b600061431383836142f8565b60208301905092915050565b6000602082019050919050565b6000614337826142cc565b61434181856142d7565b935061434c836142e8565b8060005b8381101561437d5781516143648882614307565b975061436f8361431f565b925050600181019050614350565b5085935050505092915050565b600060a08201905061439f60008301886133be565b6143ac60208301876142bd565b81810360408301526143be818661432c565b90506143cd606083018561380d565b6143da60808301846133be565b969550505050505056fea26469706673582212208aa91d7d3527d423d938290639c51a669ff43a42fea1e71952363f698a48262a64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c80638da5cb5b11610190578063c287184e116100dc578063f1f3bca311610095578063f8821a621161006f578063f8821a6214610b5b578063f887ea4014610b86578063fabb0b4f14610bb1578063fbba721914610bdc576102ef565b8063f1f3bca314610acc578063f2fde38b14610b09578063f84ba65d14610b32576102ef565b8063c287184e146109c0578063d6860142146109e9578063dd62ed3e14610a12578063e96fada214610a4f578063ef90b2a214610a7a578063ef934e9514610aa3576102ef565b8063a9059cbb11610149578063bafe446b11610123578063bafe446b14610902578063bf56b3711461092d578063bfa21d6a14610958578063c1adf7bc14610983576102ef565b8063a9059cbb14610871578063abe57e70146108ae578063ac0c16a4146108d7576102ef565b80638da5cb5b1461075f57806395d89b411461078a5780639b02c402146107b55780639d96ae75146107e0578063a4b45c001461081d578063a8aa1b3114610846576102ef565b8063507139351161024f578063672434821161020857806370a08231116101e257806370a08231146106b7578063715018a6146106f45780637a446fcd1461070b578063893d20e814610734576102ef565b806367243482146106265780636ddd17131461064f5780636f4ce4281461067a576102ef565b80635071393514610516578063571ac8b01461053f5780635804f1e41461057c57806361e08e72146105a757806363a803e1146105d2578063658d4b7f146105fd576102ef565b806323b872dd116102a157806323b872dd146104065780632b112e4914610443578063313ce5671461046e578063421dd7c71461049957806346d7edaa146104b0578063492a937b146104ed576102ef565b8063014c6966146102f45780630445b6671461031d57806306fdde0314610348578063095ea7b31461037357806318160ddd146103b0578063234e9494146103db576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b5061031b6004803603810190610316919061336b565b610c07565b005b34801561032957600080fd5b50610332610d21565b60405161033f91906133cd565b60405180910390f35b34801561035457600080fd5b5061035d610d27565b60405161036a9190613478565b60405180910390f35b34801561037f57600080fd5b5061039a600480360381019061039591906134f8565b610d64565b6040516103a79190613553565b60405180910390f35b3480156103bc57600080fd5b506103c5610e56565b6040516103d291906133cd565b60405180910390f35b3480156103e757600080fd5b506103f0610e60565b6040516103fd91906133cd565b60405180910390f35b34801561041257600080fd5b5061042d6004803603810190610428919061356e565b610e82565b60405161043a9190613553565b60405180910390f35b34801561044f57600080fd5b50610458611044565b60405161046591906133cd565b60405180910390f35b34801561047a57600080fd5b506104836110b8565b60405161049091906135dd565b60405180910390f35b3480156104a557600080fd5b506104ae6110c1565b005b3480156104bc57600080fd5b506104d760048036038101906104d291906135f8565b611190565b6040516104e491906133cd565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f9190613651565b6111a8565b005b34801561052257600080fd5b5061053d6004803603810190610538919061336b565b611328565b005b34801561054b57600080fd5b50610566600480360381019061056191906135f8565b611433565b6040516105739190613553565b60405180910390f35b34801561058857600080fd5b50610591611466565b60405161059e91906133cd565b60405180910390f35b3480156105b357600080fd5b506105bc61146c565b6040516105c991906133cd565b60405180910390f35b3480156105de57600080fd5b506105e7611472565b6040516105f491906133cd565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190613651565b611494565b005b34801561063257600080fd5b5061064d6004803603810190610648919061374c565b611584565b005b34801561065b57600080fd5b506106646117c4565b6040516106719190613553565b60405180910390f35b34801561068657600080fd5b506106a1600480360381019061069c91906135f8565b6117d7565b6040516106ae91906133cd565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d991906135f8565b6117ef565b6040516106eb91906133cd565b60405180910390f35b34801561070057600080fd5b50610709611838565b005b34801561071757600080fd5b50610732600480360381019061072d91906137cd565b61198b565b005b34801561074057600080fd5b50610749611ab2565b604051610756919061381c565b60405180910390f35b34801561076b57600080fd5b50610774611ac1565b604051610781919061381c565b60405180910390f35b34801561079657600080fd5b5061079f611aea565b6040516107ac9190613478565b60405180910390f35b3480156107c157600080fd5b506107ca611b27565b6040516107d791906133cd565b60405180910390f35b3480156107ec57600080fd5b5061080760048036038101906108029190613837565b611b2d565b6040516108149190613553565b60405180910390f35b34801561082957600080fd5b50610844600480360381019061083f9190613864565b611c1f565b005b34801561085257600080fd5b5061085b611d3a565b604051610868919061381c565b60405180910390f35b34801561087d57600080fd5b50610898600480360381019061089391906134f8565b611d60565b6040516108a59190613553565b60405180910390f35b3480156108ba57600080fd5b506108d560048036038101906108d091906138a4565b611d75565b005b3480156108e357600080fd5b506108ec611e54565b6040516108f991906133cd565b60405180910390f35b34801561090e57600080fd5b50610917611e5c565b60405161092491906133cd565b60405180910390f35b34801561093957600080fd5b50610942611e7e565b60405161094f91906133cd565b60405180910390f35b34801561096457600080fd5b5061096d611e84565b60405161097a9190613905565b60405180910390f35b34801561098f57600080fd5b506109aa60048036038101906109a591906135f8565b611eaa565b6040516109b791906133cd565b60405180910390f35b3480156109cc57600080fd5b506109e760048036038101906109e29190613920565b611ec2565b005b3480156109f557600080fd5b50610a106004803603810190610a0b919061394d565b611f6f565b005b348015610a1e57600080fd5b50610a396004803603810190610a349190613864565b612066565b604051610a4691906133cd565b60405180910390f35b348015610a5b57600080fd5b50610a646120ed565b604051610a71919061381c565b60405180910390f35b348015610a8657600080fd5b50610aa16004803603810190610a9c9190613651565b612113565b005b348015610aaf57600080fd5b50610aca6004803603810190610ac5919061398d565b612235565b005b348015610ad857600080fd5b50610af36004803603810190610aee9190613837565b612344565b604051610b0091906133cd565b60405180910390f35b348015610b1557600080fd5b50610b306004803603810190610b2b91906135f8565b61239b565b005b348015610b3e57600080fd5b50610b596004803603810190610b549190613651565b61255c565b005b348015610b6757600080fd5b50610b7061264c565b604051610b7d91906133cd565b60405180910390f35b348015610b9257600080fd5b50610b9b612652565b604051610ba89190613a53565b60405180910390f35b348015610bbd57600080fd5b50610bc6612678565b604051610bd391906133cd565b60405180910390f35b348015610be857600080fd5b50610bf161267e565b604051610bfe9190613553565b60405180910390f35b610c0f612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9390613aba565b60405180910390fd5b602160009054906101000a900460ff16158015610cb95750600a83105b610cc257600080fd5b826020819055506001602160006101000a81548160ff02191690831515021790555043601e819055508142610cf79190613b09565b601c819055506009600a610d0b9190613c70565b81610d169190613cbb565b601a81905550505050565b60245481565b60606040518060400160405280600881526020017f4c45474f2044414f000000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e4491906133cd565b60405180910390a36001905092915050565b6000600354905090565b60006009600a610e709190613c70565b600554610e7d9190613d2c565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110305781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610faf9190613d5d565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61103b84848461269d565b90509392505050565b6000611071600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117ef565b61109c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117ef565b6110a69190613b09565b6003546110b39190613d5d565b905090565b60006009905090565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611102612695565b73ffffffffffffffffffffffffffffffffffffffff1614611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f90613ddd565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506000601960006101000a81548160ff021916908315150217905550565b60186020528060005260406000206000915090505481565b6111b0612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123490613aba565b60405180910390fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490613e6f565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611330612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490613aba565b60405180910390fd5b6000831180156113cd5750600082115b80156113d95750600081115b80156113e757506127108111155b6113f057600080fd5b80836003546113ff9190613cbb565b6114099190613d2c565b600481905550808260035461141e9190613cbb565b6114289190613d2c565b600581905550505050565b600061145f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d64565b9050919050565b601f5481565b60225481565b60006009600a6114829190613c70565b60065461148f9190613d2c565b905090565b61149c612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152090613aba565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61158c612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090613aba565b60405180910390fd5b60008484905011801561163157508383905082829050145b61163a57600080fd5b600033905060005b858590508110156117bc576017600087878481811061166457611663613e8f565b5b905060200201602081019061167991906135f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561173f5750600d60008787848181106116e0576116df613e8f565b5b90506020020160208101906116f591906135f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117a9576117a78287878481811061175b5761175a613e8f565b5b905060200201602081019061177091906135f8565b6009600a61177e9190613c70565b87878681811061179157611790613e8f565b5b905060200201356117a29190613cbb565b612c26565b505b80806117b490613ebe565b915050611642565b505050505050565b602360009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611840612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c490613aba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119cc612695565b73ffffffffffffffffffffffffffffffffffffffff1614611a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1990613ddd565b60405180910390fd5b80611aae576000479050602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648584611a769190613cbb565b611a809190613d2c565b9081150290604051600060405180830381858888f19350505050158015611aab573d6000803e3d6000fd5b50505b5050565b6000611abc611ac1565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4c45474f00000000000000000000000000000000000000000000000000000000815250905090565b601b5481565b6000602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b70612695565b73ffffffffffffffffffffffffffffffffffffffff1614611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd90613ddd565b60405180910390fd5b8115611bec576001602160026101000a81548160ff021916908315150217905550611c08565b6000602160026101000a81548160ff0219169083151502179055505b602160029054906101000a900460ff169050919050565b611c27612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cab90613aba565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d6d33848461269d565b905092915050565b611d7d612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0190613aba565b60405180910390fd5b600082118015611e1a5750600081115b8015611e2857506127108111155b611e3157600080fd5b8082600354611e409190613cbb565b611e4a9190613d2c565b6006819055505050565b600047905090565b60006009600a611e6c9190613c70565b600454611e799190613d2c565b905090565b601e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b611eca612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4e90613aba565b60405180910390fd5b603c811115611f6557600080fd5b8060228190555050565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611fb0612695565b73ffffffffffffffffffffffffffffffffffffffff1614612006576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffd90613ddd565b60405180910390fd5b601960019054906101000a900460ff161561202057600080fd5b81601960006101000a81548160ff02191690831515021790555062015180811061204957600080fd5b80601c600082825461205b9190613b09565b925050819055505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61211b612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219f90613aba565b60405180910390fd5b80156122315781602660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b61223d612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c190613aba565b60405180910390fd5b600082116122d757600080fd5b83602360006101000a81548160ff02191690831515021790555082602360016101000a81548160ff021916908315150217905550816003546123199190613d2c565b6024819055506009600a61232d9190613c70565b816123389190613cbb565b60258190555050505050565b600043602054601e546123579190613b09565b10612366576012549050612396565b81156123835760115460105461237c9190613b09565b9050612396565b6011546010546123939190613d5d565b90505b919050565b6123a3612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242790613aba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361249f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249690613f78565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612564612695565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e890613aba565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60255481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60205481565b6000602160029054906101000a900460ff16905090565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361270d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270490613fe4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361277c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277390614050565b60405180910390fd5b600082116127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b6906140bc565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283890614128565b60405180910390fd5b612849612db4565b15801561289f5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561293957600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292790614194565b60405180910390fd5b612938612dc1565b5b602160009054906101000a900460ff16612a2e57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129ee5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2490614200565b60405180910390fd5b5b602660009054906101000a900460ff1615612a5557612a4e848484612c26565b9050612c1f565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa09190613d5d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612aee85612dec565b612af85782612b03565b612b028484612e43565b5b9050612b0e84612f26565b15612b26576000831115612b2557612b2461301b565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b719190613b09565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c1191906133cd565b60405180910390a360019150505b9392505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c739190613d5d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d019190613b09565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612da191906133cd565b60405180910390a3600190509392505050565b600080601e541415905090565b43601e8190555042601f819055506001602360006101000a81548160ff021916908315150217905550565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601254612ea383612344565b85612eae9190613cbb565b612eb89190613d2c565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f099190613b09565b925050819055508084612f1c9190613d5d565b9250505092915050565b6000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f8f5750602660009054906101000a900460ff16155b8015612fa75750602360009054906101000a900460ff165b8015612ffc5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156130145750602160029054906101000a900460ff165b9050919050565b6001602660006101000a81548160ff0219169083151502179055506000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561330e576000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff8111156130df576130de614220565b5b60405190808252806020026020018201604052801561310d5781602001602082028036833780820191505090505b509050308160008151811061312557613124613e8f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f09190614264565b8160018151811061320457613203613e8f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016132a295949392919061438a565b600060405180830381600087803b1580156132bc57600080fd5b505af11580156132d0573d6000803e3d6000fd5b505050507f8eecd6f35243e1875b7143b093766263953bc97e6e92213e4ae934c67e1fe0de8260405161330391906133cd565b60405180910390a150505b6000602660006101000a81548160ff021916908315150217905550565b600080fd5b600080fd5b6000819050919050565b61334881613335565b811461335357600080fd5b50565b6000813590506133658161333f565b92915050565b6000806000606084860312156133845761338361332b565b5b600061339286828701613356565b93505060206133a386828701613356565b92505060406133b486828701613356565b9150509250925092565b6133c781613335565b82525050565b60006020820190506133e260008301846133be565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613422578082015181840152602081019050613407565b60008484015250505050565b6000601f19601f8301169050919050565b600061344a826133e8565b61345481856133f3565b9350613464818560208601613404565b61346d8161342e565b840191505092915050565b60006020820190508181036000830152613492818461343f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134c58261349a565b9050919050565b6134d5816134ba565b81146134e057600080fd5b50565b6000813590506134f2816134cc565b92915050565b6000806040838503121561350f5761350e61332b565b5b600061351d858286016134e3565b925050602061352e85828601613356565b9150509250929050565b60008115159050919050565b61354d81613538565b82525050565b60006020820190506135686000830184613544565b92915050565b6000806000606084860312156135875761358661332b565b5b6000613595868287016134e3565b93505060206135a6868287016134e3565b92505060406135b786828701613356565b9150509250925092565b600060ff82169050919050565b6135d7816135c1565b82525050565b60006020820190506135f260008301846135ce565b92915050565b60006020828403121561360e5761360d61332b565b5b600061361c848285016134e3565b91505092915050565b61362e81613538565b811461363957600080fd5b50565b60008135905061364b81613625565b92915050565b600080604083850312156136685761366761332b565b5b6000613676858286016134e3565b92505060206136878582860161363c565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126136b6576136b5613691565b5b8235905067ffffffffffffffff8111156136d3576136d2613696565b5b6020830191508360208202830111156136ef576136ee61369b565b5b9250929050565b60008083601f84011261370c5761370b613691565b5b8235905067ffffffffffffffff81111561372957613728613696565b5b6020830191508360208202830111156137455761374461369b565b5b9250929050565b600080600080604085870312156137665761376561332b565b5b600085013567ffffffffffffffff81111561378457613783613330565b5b613790878288016136a0565b9450945050602085013567ffffffffffffffff8111156137b3576137b2613330565b5b6137bf878288016136f6565b925092505092959194509250565b600080604083850312156137e4576137e361332b565b5b60006137f285828601613356565b92505060206138038582860161363c565b9150509250929050565b613816816134ba565b82525050565b6000602082019050613831600083018461380d565b92915050565b60006020828403121561384d5761384c61332b565b5b600061385b8482850161363c565b91505092915050565b6000806040838503121561387b5761387a61332b565b5b6000613889858286016134e3565b925050602061389a858286016134e3565b9150509250929050565b600080604083850312156138bb576138ba61332b565b5b60006138c985828601613356565b92505060206138da85828601613356565b9150509250929050565b60006138ef8261349a565b9050919050565b6138ff816138e4565b82525050565b600060208201905061391a60008301846138f6565b92915050565b6000602082840312156139365761393561332b565b5b600061394484828501613356565b91505092915050565b600080604083850312156139645761396361332b565b5b60006139728582860161363c565b925050602061398385828601613356565b9150509250929050565b600080600080608085870312156139a7576139a661332b565b5b60006139b58782880161363c565b94505060206139c68782880161363c565b93505060406139d787828801613356565b92505060606139e887828801613356565b91505092959194509250565b6000819050919050565b6000613a19613a14613a0f8461349a565b6139f4565b61349a565b9050919050565b6000613a2b826139fe565b9050919050565b6000613a3d82613a20565b9050919050565b613a4d81613a32565b82525050565b6000602082019050613a686000830184613a44565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613aa46020836133f3565b9150613aaf82613a6e565b602082019050919050565b60006020820190508181036000830152613ad381613a97565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b1482613335565b9150613b1f83613335565b9250828201905080821115613b3757613b36613ada565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613b9457808604811115613b7057613b6f613ada565b5b6001851615613b7f5780820291505b8081029050613b8d85613b3d565b9450613b54565b94509492505050565b600082613bad5760019050613c69565b81613bbb5760009050613c69565b8160018114613bd15760028114613bdb57613c0a565b6001915050613c69565b60ff841115613bed57613bec613ada565b5b8360020a915084821115613c0457613c03613ada565b5b50613c69565b5060208310610133831016604e8410600b8410161715613c3f5782820a905083811115613c3a57613c39613ada565b5b613c69565b613c4c8484846001613b4a565b92509050818404811115613c6357613c62613ada565b5b81810290505b9392505050565b6000613c7b82613335565b9150613c86836135c1565b9250613cb37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b9d565b905092915050565b6000613cc682613335565b9150613cd183613335565b9250828202613cdf81613335565b91508282048414831517613cf657613cf5613ada565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d3782613335565b9150613d4283613335565b925082613d5257613d51613cfd565b5b828204905092915050565b6000613d6882613335565b9150613d7383613335565b9250828203905081811115613d8b57613d8a613ada565b5b92915050565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b6000613dc7601b836133f3565b9150613dd282613d91565b602082019050919050565b60006020820190508181036000830152613df681613dba565b9050919050565b7f43616e277420616c7465722063757272656e74206c697175696469747920706160008201527f6972000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e596022836133f3565b9150613e6482613dfd565b604082019050919050565b60006020820190508181036000830152613e8881613e4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613ec982613335565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613efb57613efa613ada565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f626026836133f3565b9150613f6d82613f06565b604082019050919050565b60006020820190508181036000830152613f9181613f55565b9050919050565b7f42455032303a207472616e736665722066726f6d203078300000000000000000600082015250565b6000613fce6018836133f3565b9150613fd982613f98565b602082019050919050565b60006020820190508181036000830152613ffd81613fc1565b9050919050565b7f42455032303a207472616e7366657220746f2030783000000000000000000000600082015250565b600061403a6016836133f3565b915061404582614004565b602082019050919050565b600060208201905081810360008301526140698161402d565b9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b60006140a66015836133f3565b91506140b182614070565b602082019050919050565b600060208201905081810360008301526140d581614099565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006141126014836133f3565b915061411d826140dc565b602082019050919050565b6000602082019050818103600083015261414181614105565b9050919050565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b600061417e6018836133f3565b915061418982614148565b602082019050919050565b600060208201905081810360008301526141ad81614171565b9050919050565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b60006141ea6015836133f3565b91506141f5826141b4565b602082019050919050565b60006020820190508181036000830152614219816141dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061425e816134cc565b92915050565b60006020828403121561427a5761427961332b565b5b60006142888482850161424f565b91505092915050565b6000819050919050565b60006142b66142b16142ac84614291565b6139f4565b613335565b9050919050565b6142c68161429b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614301816134ba565b82525050565b600061431383836142f8565b60208301905092915050565b6000602082019050919050565b6000614337826142cc565b61434181856142d7565b935061434c836142e8565b8060005b8381101561437d5781516143648882614307565b975061436f8361431f565b925050600181019050614350565b5085935050505092915050565b600060a08201905061439f60008301886133be565b6143ac60208301876142bd565b81810360408301526143be818661432c565b90506143cd606083018561380d565b6143da60808301846133be565b969550505050505056fea26469706673582212208aa91d7d3527d423d938290639c51a669ff43a42fea1e71952363f698a48262a64736f6c63430008110033

Deployed Bytecode Sourcemap

4191:13658:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9623:374;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6085:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7470:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8211:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7218:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7735:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10559:341;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17649:138;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7312:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10256:127;;;;;;;;;;;;;:::i;:::-;;5531:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15585:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16196:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8435:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5816:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5977:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7848:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16774:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8781:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6014:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4830:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7959:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3786:148;;;;;;;;;;;;;:::i;:::-;;9261:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7547:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3576:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7389:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5687:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15777:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17036:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5756:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10395:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16547:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9513:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7624:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5784:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5261:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4881:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16060:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10009:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8070:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5336:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8569:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17286:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14169:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3940:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16901:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6142:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5380:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5850:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15966:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9623:374;3711:12;:10;:12::i;:::-;3701:22;;:6;;;;;;;;;;:22;;;3693:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9742:12:::1;;;;;;;;;;;9741:13;:33;;;;;9772:2;9758:11;:16;9741:33;9733:42;;;::::0;::::1;;9799:11;9786:10;:24;;;;9836:4;9821:12;;:19;;;;;;;;;;;;;;;;;;9864:12;9851:10;:25;;;;9923:11;9905:15;:29;;;;:::i;:::-;9887:15;:47;;;;4477:1;9973:2;:15;;;;:::i;:::-;9963:6;:26;;;;:::i;:::-;9945:15;:44;;;;9623:374:::0;;;:::o;6085:50::-;;;;:::o;7470:71::-;7509:13;7533:5;;;;;;;;;;;;;;;;;7526:12;;7470:71;:::o;8211:216::-;8286:4;8338:6;8303:11;:23;8315:10;8303:23;;;;;;;;;;;;;;;:32;8327:7;8303:32;;;;;;;;;;;;;;;:41;;;;8381:7;8360:37;;8369:10;8360:37;;;8390:6;8360:37;;;;;;:::i;:::-;;;;;;;;8415:4;8408:11;;8211:216;;;;:::o;7218:88::-;7273:7;7291:12;;7284:19;;7218:88;:::o;7735:107::-;7785:7;4477:1;7823:2;:15;;;;:::i;:::-;7803:16;;:36;;;;:::i;:::-;7796:43;;7735:107;:::o;10559:341::-;10659:4;10714:17;10679:11;:19;10691:6;10679:19;;;;;;;;;;;;;;;:31;10699:10;10679:31;;;;;;;;;;;;;;;;:52;10676:157;;10815:6;10781:11;:19;10793:6;10781:19;;;;;;;;;;;;;;;:31;10801:10;10781:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;10747:11;:19;10759:6;10747:19;;;;;;;;;;;;;;;:31;10767:10;10747:31;;;;;;;;;;;;;;;:74;;;;10676:157;10852:40;10866:6;10874:9;10885:6;10852:13;:40::i;:::-;10845:47;;10559:341;;;;;:::o;17649:138::-;17702:7;17763:15;17773:4;;;;;;;;;;;17763:9;:15::i;:::-;17745;17755:4;;;;;;;;;;;17745:9;:15::i;:::-;:33;;;;:::i;:::-;17729:12;;:50;;;;:::i;:::-;17722:57;;17649:138;:::o;7312:71::-;7355:5;4477:1;7364:16;;7312:71;:::o;10256:127::-;6349:10;;;;;;;;;;;6333:26;;:12;:10;:12::i;:::-;:26;;;6325:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10335:4:::1;10314:18;;:25;;;;;;;;;;;;;;;;;;10370:5;10350:17;;:25;;;;;;;;;;;;;;;;;;10256:127::o:0;5531:45::-;;;;;;;;;;;;;;;;;:::o;15585:184::-;3711:12;:10;:12::i;:::-;3701:22;;:6;;;;;;;;;;:22;;;3693:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15680:4:::1;;;;;;;;;;;15674:10;;:2;:10;;::::0;15666:57:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15755:6;15734:14;:18;15749:2;15734:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;15585:184:::0;;:::o;16196:339::-;3711:12;:10;:12::i;:::-;3701:22;;:6;;;;;;;;;;:22;;;3693:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16331:1:::1;16316:12;:16;:37;;;;;16352:1;16336:13;:17;16316:37;:52;;;;;16367:1;16357:7;:11;16316:52;:72;;;;;16383:5;16372:7;:16;;16316:72;16308:81;;;::::0;::::1;;16450:7;16434:12;16419;;:27;;;;:::i;:::-;16418:39;;;;:::i;:::-;16400:15;:57;;;;16520:7;16503:13;16488:12;;:28;;;;:::i;:::-;16487:40;;;;:::i;:::-;16468:16;:59;;;;16196:339:::0;;;:::o;8435:122::-;8490:4;8514:35;8522:7;8531:17;8514:7;:35::i;:::-;8507:42;;8435:122;;;:::o;5816:27::-;;;;:::o;5977:28::-;;;;:::o;7848:105::-;7898:7;4477:1;7934:2;:15;;;;:::i;:::-;7916:14;;:34;;;;:::i;:::-;7909:41;;7848:105;:::o;16774:119::-;3711:12;:10;:12::i;:::-;3701:22;;:6;;;;;;;;;;:22;;;3693:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16879:6:::1;16857:11;:19;16869:6;16857:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16774:119:::0;;:::o;8781:468::-;3711:12;:10;:12::i;:::-;3701:22;;:6;;;;;;;;;;:22;;;3693:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8913:1:::1;8894:9;;:16;;:20;:58;;;;;8936:9;;:16;;8918:7;;:14;;:34;8894:58;8886:67;;;::::0;::::1;;8964:12;8979:10;8964:25;;9007:6;9002:240;9023:9;;:16;;9019:1;:20;9002:240;;;9065:14;:28;9080:9;;9090:1;9080:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9065:28;;;;;;;;;;;;;;;;;;;;;;;;;9064:29;:64;;;;;9098:16;:30;9115:9;;9125:1;9115:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9098:30;;;;;;;;;;;;;;;;;;;;;;;;;9097:31;9064:64;9061:170;;;9149:66;9164:4;9170:9;;9180:1;9170:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4477:1;9198:2;:15;;;;:::i;:::-;9184:7;;9192:1;9184:10;;;;;;;:::i;:::-;;;;;;;;:30;;;;:::i;:::-;9149:14;:66::i;:::-;;9061:170;9041:3;;;;;:::i;:::-;;;;9002:240;;;;8875:374;8781:468:::0;;;;:::o;6014:31::-;;;;;;;;;;;;;:::o;4830:44::-;;;;;;;;;;;;;;;;;:::o;7959:105::-;8025:7;8043:9;:18;8053:7;8043:18;;;;;;;;;;;;;;;;8036:25;;7959:105;;;:::o;3786:148::-;3711:12;:10;:12::i;:::-;3701:22;;:6;;;;;;;;;;:22;;;3693:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3893:1:::1;3856:40;;3877:6;::::0;::::1;;;;;;;;3856:40;;;;;;;;;;;;3924:1;3907:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3786:148::o:0;9261:244::-;6349:10;;;;;;;;;;;6333:26;;:12;:10;:12::i;:::-;:26;;;6325:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9347:9:::1;9342:156;;9374:17;9394:21;9374:41;;9438:10;;;;;;;;;;;9430:28;;:56;9482:3;9472:6;9460:9;:18;;;;:::i;:::-;9459:26;;;;:::i;:::-;9430:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;9358:140;9342:156;9261:244:::0;;:::o;7547:71::-;7590:7;7608;:5;:7::i;:::-;7601:14;;7547:71;:::o;3576:79::-;3614:7;3641:6;;;;;;;;;;;3634:13;;3576:79;:::o;7389:75::-;7430:13;7454:7;;;;;;;;;;;;;;;;;7447:14;;7389:75;:::o;5687:30::-;;;;:::o;15777:177::-;15841:4;6349:10;;;;;;;;;;;6333:26;;:12;:10;:12::i;:::-;:26;;;6325:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;15862:7:::1;15858:59;;;15886:4;15872:11;;:18;;;;;;;;;;;;;;;;;;15858:59;;;15912:5;15898:11;;:19;;;;;;;;;;;;;;;;;;15858:59;15935:11;;;;;;;;;;;15928:18;;15777:177:::0;;;:::o;17036:242::-;3711:12;:10;:12::i;:::-;3701:22;;:6;;;;;;;;;;:22;;;3693:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17184:21:::1;17153:20;;:53;;;;;;;;;;;;;;;;;;17248:21;17217:20;;:53;;;;;;;;;;;;;;;;;;17036:242:::0;;:::o;5756:19::-;;;;;;;;;;;;;:::o;10395:156::-;10475:4;10499:44;10513:10;10525:9;10536:6;10499:13;:44::i;:::-;10492:51;;10395:156;;;;:::o;16547:219::-;3711:12;:10;:12::i;:::-;3701:22;;:6;;;;;;;;;;:22;;;3693:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16657:1:::1;16645:9;:13;:28;;;;;16672:1;16662:7;:11;16645:28;:48;;;;;16688:5;16677:7;:16;;16645:48;16637:57;;;::::0;::::1;;16751:7;16738:9;16723:12;;:24;;;;:::i;:::-;16722:36;;;;:::i;:::-;16705:14;:53;;;;16547:219:::0;;:::o;9513:102::-;9559:7;9586:21;9579:28;;9513:102;:::o;7624:105::-;7673:7;4477:1;7710:2;:15;;;;:::i;:::-;7691;;:35;;;;:::i;:::-;7684:42;;7624:105;:::o;5784:25::-;;;;:::o;5261:68::-;;;;;;;;;;;;;:::o;4881:43::-;;;;;;;;;;;;;;;;;:::o;16060:128::-;3711:12;:10;:12::i;:::-;3701:22;;:6;;;;;;;;;;:22;;;3693:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16142:10:::1;16134:4;:18;;16126:27;;;::::0;::::1;;16176:4;16164:9;:16;;;;16060:128:::0;:::o;10009:235::-;6349:10;;;;;;;;;;;6333:26;;:12;:10;:12::i;:::-;:26;;;6325:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10103:18:::1;;;;;;;;;;;10102:19;10094:28;;;::::0;::::1;;10153:8;10133:17;;:28;;;;;;;;;;;;;;;;;;10191:6;10180:8;:17;10172:26;;;::::0;::::1;;10228:8;10209:15;;:27;;;;;;;:::i;:::-;;;;;;;;10009:235:::0;;:::o;8070:133::-;8154:7;8172:11;:19;8184:6;8172:19;;;;;;;;;;;;;;;:28;8192:7;8172:28;;;;;;;;;;;;;;;;8165:35;;8070:133;;;;:::o;5336:35::-;;;;;;;;;;;;;:::o;8569:200::-;3711:12;:10;:12::i;:::-;3701:22;;:6;;;;;;;;;;:22;;;3693:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8663:8:::1;8659:103;;;8702:5;8689:10;;:18;;;;;;;;;;;;;;;;;;8745:5;8722:20;;:28;;;;;;;;;;;;;;;;;;8659:103;8569:200:::0;;:::o;17286:355::-;3711:12;:10;:12::i;:::-;3701:22;;:6;;;;;;;;;;:22;;;3693:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17444:1:::1;17429:12;:16;17421:25;;;::::0;::::1;;17471:8;17457:11;;:22;;;;;;;;;;;;;;;;;;17507:15;17490:14;;:32;;;;;;;;;;;;;;;;;;17564:12;17549;;:27;;;;:::i;:::-;17533:13;:43;;;;4477:1;17617:2;:15;;;;:::i;:::-;17601:12;:32;;;;:::i;:::-;17587:11;:46;;;;17286:355:::0;;;;:::o;14169:239::-;14225:7;14275:12;14261:10;;14248;;:23;;;;:::i;:::-;:39;14245:69;;14297:14;;14290:21;;;;14245:69;14328:7;14324:39;;;14355:8;;14344;;:19;;;;:::i;:::-;14337:26;;;;14324:39;14392:8;;14381;;:19;;;;:::i;:::-;14374:26;;14169:239;;;;:::o;3940:244::-;3711:12;:10;:12::i;:::-;3701:22;;:6;;;;;;;;;;:22;;;3693:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4049:1:::1;4029:22;;:8;:22;;::::0;4021:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4139:8;4110:38;;4131:6;::::0;::::1;;;;;;;;4110:38;;;;;;;;;;;;4168:8;4159:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3940:244:::0;:::o;16901:127::-;3711:12;:10;:12::i;:::-;3701:22;;:6;;;;;;;;;;:22;;;3693:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17014:6:::1;16988:15;:23;17004:6;16988:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16901:127:::0;;:::o;6142:49::-;;;;:::o;5380:24::-;;;;;;;;;;;;;:::o;5850:25::-;;;;:::o;15966:86::-;16009:4;16033:11;;;;;;;;;;;16026:18;;15966:86;:::o;1605:107::-;1650:15;1693:10;1678:26;;1605:107;:::o;10908:1097::-;11000:4;11043:1;11025:20;;:6;:20;;;11017:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;11114:1;11093:23;;:9;:23;;;11085:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;11171:1;11162:6;:10;11154:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11238:6;11217:9;:17;11227:6;11217:17;;;;;;;;;;;;;;;;:27;;11209:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11284:10;:8;:10::i;:::-;11283:11;:40;;;;;11298:14;:25;11313:9;11298:25;;;;;;;;;;;;;;;;;;;;;;;;;11283:40;11280:120;;;11334:16;:24;11351:6;11334:24;;;;;;;;;;;;;;;;;;;;;;;;;11326:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;11389:8;:6;:8::i;:::-;11280:120;11414:12;;;;;;;;;;;11410:111;;11437:16;:24;11454:6;11437:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;11465:16;:27;11482:9;11465:27;;;;;;;;;;;;;;;;;;;;;;;;;11437:55;11429:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;11410:111;11538:6;;;;;;;;;;;11535:63;;;11554:41;11569:6;11577:9;11588:6;11554:14;:41::i;:::-;11547:48;;;;11535:63;11650:6;11630:9;:17;11640:6;11630:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;11610:9;:17;11620:6;11610:17;;;;;;;;;;;;;;;:46;;;;11669:22;11694:21;11708:6;11694:13;:21::i;:::-;:59;;11747:6;11694:59;;;11718:26;11726:9;11737:6;11718:7;:26::i;:::-;11694:59;11669:84;;11777:25;11792:9;11777:14;:25::i;:::-;11774:60;;;11818:1;11809:6;:10;11805:26;;;11821:10;:8;:10::i;:::-;11805:26;11774:60;11900:14;11877:9;:20;11887:9;11877:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;11854:9;:20;11864:9;11854:20;;;;;;;;;;;;;;;:60;;;;11949:9;11932:43;;11941:6;11932:43;;;11960:14;11932:43;;;;;;:::i;:::-;;;;;;;;11993:4;11986:11;;;10908:1097;;;;;;:::o;12264:300::-;12357:4;12414:6;12394:9;:17;12404:6;12394:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;12374:9;:17;12384:6;12374:17;;;;;;;;;;;;;;;:46;;;;12477:6;12454:9;:20;12464:9;12454:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;12431:9;:20;12441:9;12431:20;;;;;;;;;;;;;;;:52;;;;12516:9;12499:35;;12508:6;12499:35;;;12527:6;12499:35;;;;;;:::i;:::-;;;;;;;;12552:4;12545:11;;12264:300;;;;;:::o;12017:90::-;12060:4;12098:1;12084:10;;:15;;12077:22;;12017:90;:::o;12115:141::-;12166:12;12153:10;:25;;;;12204:15;12189:12;:30;;;;12244:4;12230:11;;:18;;;;;;;;;;;;;;;;;;12115:141::o;14047:114::-;14109:4;14134:11;:19;14146:6;14134:19;;;;;;;;;;;;;;;;;;;;;;;;;14133:20;14126:27;;14047:114;;;:::o;14416:317::-;14486:7;14506:12;14521:14;:25;14536:9;14521:25;;;;;;;;;;;;;;;;;;;;;;;;;14506:40;;14557:17;14611:14;;14587:20;14599:7;14587:11;:20::i;:::-;14578:6;:29;;;;:::i;:::-;14577:48;;;;:::i;:::-;14557:68;;14674:9;14646;:24;14664:4;14646:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;14716:9;14707:6;:18;;;;:::i;:::-;14700:25;;;;14416:317;;;;:::o;14741:231::-;14807:4;14832:14;:26;14847:10;14832:26;;;;;;;;;;;;;;;;;;;;;;;;;14831:27;:47;;;;;14872:6;;;;;;;;;;;14871:7;14831:47;:71;;;;;14891:11;;;;;;;;;;;14831:71;:109;;;;;14915:14;:25;14930:9;14915:25;;;;;;;;;;;;;;;;;;;;;;;;;14831:109;:133;;;;;14953:11;;;;;;;;;;;14831:133;14824:140;;14741:231;;;:::o;14980:593::-;6247:4;6238:6;;:13;;;;;;;;;;;;;;;;;;15060:1:::1;15033:9;:24;15051:4;15033:24;;;;;;;;;;;;;;;;:28;15029:537;;;15077:20;15100:9;:24;15118:4;15100:24;;;;;;;;;;;;;;;;15077:47;;15149:21;15187:1;15173:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15149:40;;15222:4;15204;15209:1;15204:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15252:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15242:4;15247:1;15242:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15290:6;;;;;;;;;;;:57;;;15366:12;15397:1;15417:4;15448;15472:15;15290:212;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15524:30;15541:12;15524:30;;;;;;:::i;:::-;;;;;;;;15062:504;;15029:537;6265:5:::0;6256:6;;:14;;;;;;;;;;;;;;;;;;14980:593::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:619::-;767:6;775;783;832:2;820:9;811:7;807:23;803:32;800:119;;;838:79;;:::i;:::-;800:119;958:1;983:53;1028:7;1019:6;1008:9;1004:22;983:53;:::i;:::-;973:63;;929:117;1085:2;1111:53;1156:7;1147:6;1136:9;1132:22;1111:53;:::i;:::-;1101:63;;1056:118;1213:2;1239:53;1284:7;1275:6;1264:9;1260:22;1239:53;:::i;:::-;1229:63;;1184:118;690:619;;;;;:::o;1315:118::-;1402:24;1420:5;1402:24;:::i;:::-;1397:3;1390:37;1315:118;;:::o;1439:222::-;1532:4;1570:2;1559:9;1555:18;1547:26;;1583:71;1651:1;1640:9;1636:17;1627:6;1583:71;:::i;:::-;1439:222;;;;:::o;1667:99::-;1719:6;1753:5;1747:12;1737:22;;1667:99;;;:::o;1772:169::-;1856:11;1890:6;1885:3;1878:19;1930:4;1925:3;1921:14;1906:29;;1772:169;;;;:::o;1947:246::-;2028:1;2038:113;2052:6;2049:1;2046:13;2038:113;;;2137:1;2132:3;2128:11;2122:18;2118:1;2113:3;2109:11;2102:39;2074:2;2071:1;2067:10;2062:15;;2038:113;;;2185:1;2176:6;2171:3;2167:16;2160:27;2009:184;1947:246;;;:::o;2199:102::-;2240:6;2291:2;2287:7;2282:2;2275:5;2271:14;2267:28;2257:38;;2199:102;;;:::o;2307:377::-;2395:3;2423:39;2456:5;2423:39;:::i;:::-;2478:71;2542:6;2537:3;2478:71;:::i;:::-;2471:78;;2558:65;2616:6;2611:3;2604:4;2597:5;2593:16;2558:65;:::i;:::-;2648:29;2670:6;2648:29;:::i;:::-;2643:3;2639:39;2632:46;;2399:285;2307:377;;;;:::o;2690:313::-;2803:4;2841:2;2830:9;2826:18;2818:26;;2890:9;2884:4;2880:20;2876:1;2865:9;2861:17;2854:47;2918:78;2991:4;2982:6;2918:78;:::i;:::-;2910:86;;2690:313;;;;:::o;3009:126::-;3046:7;3086:42;3079:5;3075:54;3064:65;;3009:126;;;:::o;3141:96::-;3178:7;3207:24;3225:5;3207:24;:::i;:::-;3196:35;;3141:96;;;:::o;3243:122::-;3316:24;3334:5;3316:24;:::i;:::-;3309:5;3306:35;3296:63;;3355:1;3352;3345:12;3296:63;3243:122;:::o;3371:139::-;3417:5;3455:6;3442:20;3433:29;;3471:33;3498:5;3471:33;:::i;:::-;3371:139;;;;:::o;3516:474::-;3584:6;3592;3641:2;3629:9;3620:7;3616:23;3612:32;3609:119;;;3647:79;;:::i;:::-;3609:119;3767:1;3792:53;3837:7;3828:6;3817:9;3813:22;3792:53;:::i;:::-;3782:63;;3738:117;3894:2;3920:53;3965:7;3956:6;3945:9;3941:22;3920:53;:::i;:::-;3910:63;;3865:118;3516:474;;;;;:::o;3996:90::-;4030:7;4073:5;4066:13;4059:21;4048:32;;3996:90;;;:::o;4092:109::-;4173:21;4188:5;4173:21;:::i;:::-;4168:3;4161:34;4092:109;;:::o;4207:210::-;4294:4;4332:2;4321:9;4317:18;4309:26;;4345:65;4407:1;4396:9;4392:17;4383:6;4345:65;:::i;:::-;4207:210;;;;:::o;4423:619::-;4500:6;4508;4516;4565:2;4553:9;4544:7;4540:23;4536:32;4533:119;;;4571:79;;:::i;:::-;4533:119;4691:1;4716:53;4761:7;4752:6;4741:9;4737:22;4716:53;:::i;:::-;4706:63;;4662:117;4818:2;4844:53;4889:7;4880:6;4869:9;4865:22;4844:53;:::i;:::-;4834:63;;4789:118;4946:2;4972:53;5017:7;5008:6;4997:9;4993:22;4972:53;:::i;:::-;4962:63;;4917:118;4423:619;;;;;:::o;5048:86::-;5083:7;5123:4;5116:5;5112:16;5101:27;;5048:86;;;:::o;5140:112::-;5223:22;5239:5;5223:22;:::i;:::-;5218:3;5211:35;5140:112;;:::o;5258:214::-;5347:4;5385:2;5374:9;5370:18;5362:26;;5398:67;5462:1;5451:9;5447:17;5438:6;5398:67;:::i;:::-;5258:214;;;;:::o;5478:329::-;5537:6;5586:2;5574:9;5565:7;5561:23;5557:32;5554:119;;;5592:79;;:::i;:::-;5554:119;5712:1;5737:53;5782:7;5773:6;5762:9;5758:22;5737:53;:::i;:::-;5727:63;;5683:117;5478:329;;;;:::o;5813:116::-;5883:21;5898:5;5883:21;:::i;:::-;5876:5;5873:32;5863:60;;5919:1;5916;5909:12;5863:60;5813:116;:::o;5935:133::-;5978:5;6016:6;6003:20;5994:29;;6032:30;6056:5;6032:30;:::i;:::-;5935:133;;;;:::o;6074:468::-;6139:6;6147;6196:2;6184:9;6175:7;6171:23;6167:32;6164:119;;;6202:79;;:::i;:::-;6164:119;6322:1;6347:53;6392:7;6383:6;6372:9;6368:22;6347:53;:::i;:::-;6337:63;;6293:117;6449:2;6475:50;6517:7;6508:6;6497:9;6493:22;6475:50;:::i;:::-;6465:60;;6420:115;6074:468;;;;;:::o;6548:117::-;6657:1;6654;6647:12;6671:117;6780:1;6777;6770:12;6794:117;6903:1;6900;6893:12;6934:568;7007:8;7017:6;7067:3;7060:4;7052:6;7048:17;7044:27;7034:122;;7075:79;;:::i;:::-;7034:122;7188:6;7175:20;7165:30;;7218:18;7210:6;7207:30;7204:117;;;7240:79;;:::i;:::-;7204:117;7354:4;7346:6;7342:17;7330:29;;7408:3;7400:4;7392:6;7388:17;7378:8;7374:32;7371:41;7368:128;;;7415:79;;:::i;:::-;7368:128;6934:568;;;;;:::o;7525:::-;7598:8;7608:6;7658:3;7651:4;7643:6;7639:17;7635:27;7625:122;;7666:79;;:::i;:::-;7625:122;7779:6;7766:20;7756:30;;7809:18;7801:6;7798:30;7795:117;;;7831:79;;:::i;:::-;7795:117;7945:4;7937:6;7933:17;7921:29;;7999:3;7991:4;7983:6;7979:17;7969:8;7965:32;7962:41;7959:128;;;8006:79;;:::i;:::-;7959:128;7525:568;;;;;:::o;8099:934::-;8221:6;8229;8237;8245;8294:2;8282:9;8273:7;8269:23;8265:32;8262:119;;;8300:79;;:::i;:::-;8262:119;8448:1;8437:9;8433:17;8420:31;8478:18;8470:6;8467:30;8464:117;;;8500:79;;:::i;:::-;8464:117;8613:80;8685:7;8676:6;8665:9;8661:22;8613:80;:::i;:::-;8595:98;;;;8391:312;8770:2;8759:9;8755:18;8742:32;8801:18;8793:6;8790:30;8787:117;;;8823:79;;:::i;:::-;8787:117;8936:80;9008:7;8999:6;8988:9;8984:22;8936:80;:::i;:::-;8918:98;;;;8713:313;8099:934;;;;;;;:::o;9039:468::-;9104:6;9112;9161:2;9149:9;9140:7;9136:23;9132:32;9129:119;;;9167:79;;:::i;:::-;9129:119;9287:1;9312:53;9357:7;9348:6;9337:9;9333:22;9312:53;:::i;:::-;9302:63;;9258:117;9414:2;9440:50;9482:7;9473:6;9462:9;9458:22;9440:50;:::i;:::-;9430:60;;9385:115;9039:468;;;;;:::o;9513:118::-;9600:24;9618:5;9600:24;:::i;:::-;9595:3;9588:37;9513:118;;:::o;9637:222::-;9730:4;9768:2;9757:9;9753:18;9745:26;;9781:71;9849:1;9838:9;9834:17;9825:6;9781:71;:::i;:::-;9637:222;;;;:::o;9865:323::-;9921:6;9970:2;9958:9;9949:7;9945:23;9941:32;9938:119;;;9976:79;;:::i;:::-;9938:119;10096:1;10121:50;10163:7;10154:6;10143:9;10139:22;10121:50;:::i;:::-;10111:60;;10067:114;9865:323;;;;:::o;10194:474::-;10262:6;10270;10319:2;10307:9;10298:7;10294:23;10290:32;10287:119;;;10325:79;;:::i;:::-;10287:119;10445:1;10470:53;10515:7;10506:6;10495:9;10491:22;10470:53;:::i;:::-;10460:63;;10416:117;10572:2;10598:53;10643:7;10634:6;10623:9;10619:22;10598:53;:::i;:::-;10588:63;;10543:118;10194:474;;;;;:::o;10674:::-;10742:6;10750;10799:2;10787:9;10778:7;10774:23;10770:32;10767:119;;;10805:79;;:::i;:::-;10767:119;10925:1;10950:53;10995:7;10986:6;10975:9;10971:22;10950:53;:::i;:::-;10940:63;;10896:117;11052:2;11078:53;11123:7;11114:6;11103:9;11099:22;11078:53;:::i;:::-;11068:63;;11023:118;10674:474;;;;;:::o;11154:104::-;11199:7;11228:24;11246:5;11228:24;:::i;:::-;11217:35;;11154:104;;;:::o;11264:142::-;11367:32;11393:5;11367:32;:::i;:::-;11362:3;11355:45;11264:142;;:::o;11412:254::-;11521:4;11559:2;11548:9;11544:18;11536:26;;11572:87;11656:1;11645:9;11641:17;11632:6;11572:87;:::i;:::-;11412:254;;;;:::o;11672:329::-;11731:6;11780:2;11768:9;11759:7;11755:23;11751:32;11748:119;;;11786:79;;:::i;:::-;11748:119;11906:1;11931:53;11976:7;11967:6;11956:9;11952:22;11931:53;:::i;:::-;11921:63;;11877:117;11672:329;;;;:::o;12007:468::-;12072:6;12080;12129:2;12117:9;12108:7;12104:23;12100:32;12097:119;;;12135:79;;:::i;:::-;12097:119;12255:1;12280:50;12322:7;12313:6;12302:9;12298:22;12280:50;:::i;:::-;12270:60;;12226:114;12379:2;12405:53;12450:7;12441:6;12430:9;12426:22;12405:53;:::i;:::-;12395:63;;12350:118;12007:468;;;;;:::o;12481:753::-;12561:6;12569;12577;12585;12634:3;12622:9;12613:7;12609:23;12605:33;12602:120;;;12641:79;;:::i;:::-;12602:120;12761:1;12786:50;12828:7;12819:6;12808:9;12804:22;12786:50;:::i;:::-;12776:60;;12732:114;12885:2;12911:50;12953:7;12944:6;12933:9;12929:22;12911:50;:::i;:::-;12901:60;;12856:115;13010:2;13036:53;13081:7;13072:6;13061:9;13057:22;13036:53;:::i;:::-;13026:63;;12981:118;13138:2;13164:53;13209:7;13200:6;13189:9;13185:22;13164:53;:::i;:::-;13154:63;;13109:118;12481:753;;;;;;;:::o;13240:60::-;13268:3;13289:5;13282:12;;13240:60;;;:::o;13306:142::-;13356:9;13389:53;13407:34;13416:24;13434:5;13416:24;:::i;:::-;13407:34;:::i;:::-;13389:53;:::i;:::-;13376:66;;13306:142;;;:::o;13454:126::-;13504:9;13537:37;13568:5;13537:37;:::i;:::-;13524:50;;13454:126;;;:::o;13586:144::-;13654:9;13687:37;13718:5;13687:37;:::i;:::-;13674:50;;13586:144;;;:::o;13736:167::-;13841:55;13890:5;13841:55;:::i;:::-;13836:3;13829:68;13736:167;;:::o;13909:258::-;14020:4;14058:2;14047:9;14043:18;14035:26;;14071:89;14157:1;14146:9;14142:17;14133:6;14071:89;:::i;:::-;13909:258;;;;:::o;14173:182::-;14313:34;14309:1;14301:6;14297:14;14290:58;14173:182;:::o;14361:366::-;14503:3;14524:67;14588:2;14583:3;14524:67;:::i;:::-;14517:74;;14600:93;14689:3;14600:93;:::i;:::-;14718:2;14713:3;14709:12;14702:19;;14361:366;;;:::o;14733:419::-;14899:4;14937:2;14926:9;14922:18;14914:26;;14986:9;14980:4;14976:20;14972:1;14961:9;14957:17;14950:47;15014:131;15140:4;15014:131;:::i;:::-;15006:139;;14733:419;;;:::o;15158:180::-;15206:77;15203:1;15196:88;15303:4;15300:1;15293:15;15327:4;15324:1;15317:15;15344:191;15384:3;15403:20;15421:1;15403:20;:::i;:::-;15398:25;;15437:20;15455:1;15437:20;:::i;:::-;15432:25;;15480:1;15477;15473:9;15466:16;;15501:3;15498:1;15495:10;15492:36;;;15508:18;;:::i;:::-;15492:36;15344:191;;;;:::o;15541:102::-;15583:8;15630:5;15627:1;15623:13;15602:34;;15541:102;;;:::o;15649:848::-;15710:5;15717:4;15741:6;15732:15;;15765:5;15756:14;;15779:712;15800:1;15790:8;15787:15;15779:712;;;15895:4;15890:3;15886:14;15880:4;15877:24;15874:50;;;15904:18;;:::i;:::-;15874:50;15954:1;15944:8;15940:16;15937:451;;;16369:4;16362:5;16358:16;16349:25;;15937:451;16419:4;16413;16409:15;16401:23;;16449:32;16472:8;16449:32;:::i;:::-;16437:44;;15779:712;;;15649:848;;;;;;;:::o;16503:1073::-;16557:5;16748:8;16738:40;;16769:1;16760:10;;16771:5;;16738:40;16797:4;16787:36;;16814:1;16805:10;;16816:5;;16787:36;16883:4;16931:1;16926:27;;;;16967:1;16962:191;;;;16876:277;;16926:27;16944:1;16935:10;;16946:5;;;16962:191;17007:3;16997:8;16994:17;16991:43;;;17014:18;;:::i;:::-;16991:43;17063:8;17060:1;17056:16;17047:25;;17098:3;17091:5;17088:14;17085:40;;;17105:18;;:::i;:::-;17085:40;17138:5;;;16876:277;;17262:2;17252:8;17249:16;17243:3;17237:4;17234:13;17230:36;17212:2;17202:8;17199:16;17194:2;17188:4;17185:12;17181:35;17165:111;17162:246;;;17318:8;17312:4;17308:19;17299:28;;17353:3;17346:5;17343:14;17340:40;;;17360:18;;:::i;:::-;17340:40;17393:5;;17162:246;17433:42;17471:3;17461:8;17455:4;17452:1;17433:42;:::i;:::-;17418:57;;;;17507:4;17502:3;17498:14;17491:5;17488:25;17485:51;;;17516:18;;:::i;:::-;17485:51;17565:4;17558:5;17554:16;17545:25;;16503:1073;;;;;;:::o;17582:281::-;17640:5;17664:23;17682:4;17664:23;:::i;:::-;17656:31;;17708:25;17724:8;17708:25;:::i;:::-;17696:37;;17752:104;17789:66;17779:8;17773:4;17752:104;:::i;:::-;17743:113;;17582:281;;;;:::o;17869:410::-;17909:7;17932:20;17950:1;17932:20;:::i;:::-;17927:25;;17966:20;17984:1;17966:20;:::i;:::-;17961:25;;18021:1;18018;18014:9;18043:30;18061:11;18043:30;:::i;:::-;18032:41;;18222:1;18213:7;18209:15;18206:1;18203:22;18183:1;18176:9;18156:83;18133:139;;18252:18;;:::i;:::-;18133:139;17917:362;17869:410;;;;:::o;18285:180::-;18333:77;18330:1;18323:88;18430:4;18427:1;18420:15;18454:4;18451:1;18444:15;18471:185;18511:1;18528:20;18546:1;18528:20;:::i;:::-;18523:25;;18562:20;18580:1;18562:20;:::i;:::-;18557:25;;18601:1;18591:35;;18606:18;;:::i;:::-;18591:35;18648:1;18645;18641:9;18636:14;;18471:185;;;;:::o;18662:194::-;18702:4;18722:20;18740:1;18722:20;:::i;:::-;18717:25;;18756:20;18774:1;18756:20;:::i;:::-;18751:25;;18800:1;18797;18793:9;18785:17;;18824:1;18818:4;18815:11;18812:37;;;18829:18;;:::i;:::-;18812:37;18662:194;;;;:::o;18862:177::-;19002:29;18998:1;18990:6;18986:14;18979:53;18862:177;:::o;19045:366::-;19187:3;19208:67;19272:2;19267:3;19208:67;:::i;:::-;19201:74;;19284:93;19373:3;19284:93;:::i;:::-;19402:2;19397:3;19393:12;19386:19;;19045:366;;;:::o;19417:419::-;19583:4;19621:2;19610:9;19606:18;19598:26;;19670:9;19664:4;19660:20;19656:1;19645:9;19641:17;19634:47;19698:131;19824:4;19698:131;:::i;:::-;19690:139;;19417:419;;;:::o;19842:221::-;19982:34;19978:1;19970:6;19966:14;19959:58;20051:4;20046:2;20038:6;20034:15;20027:29;19842:221;:::o;20069:366::-;20211:3;20232:67;20296:2;20291:3;20232:67;:::i;:::-;20225:74;;20308:93;20397:3;20308:93;:::i;:::-;20426:2;20421:3;20417:12;20410:19;;20069:366;;;:::o;20441:419::-;20607:4;20645:2;20634:9;20630:18;20622:26;;20694:9;20688:4;20684:20;20680:1;20669:9;20665:17;20658:47;20722:131;20848:4;20722:131;:::i;:::-;20714:139;;20441:419;;;:::o;20866:180::-;20914:77;20911:1;20904:88;21011:4;21008:1;21001:15;21035:4;21032:1;21025:15;21052:233;21091:3;21114:24;21132:5;21114:24;:::i;:::-;21105:33;;21160:66;21153:5;21150:77;21147:103;;21230:18;;:::i;:::-;21147:103;21277:1;21270:5;21266:13;21259:20;;21052:233;;;:::o;21291:225::-;21431:34;21427:1;21419:6;21415:14;21408:58;21500:8;21495:2;21487:6;21483:15;21476:33;21291:225;:::o;21522:366::-;21664:3;21685:67;21749:2;21744:3;21685:67;:::i;:::-;21678:74;;21761:93;21850:3;21761:93;:::i;:::-;21879:2;21874:3;21870:12;21863:19;;21522:366;;;:::o;21894:419::-;22060:4;22098:2;22087:9;22083:18;22075:26;;22147:9;22141:4;22137:20;22133:1;22122:9;22118:17;22111:47;22175:131;22301:4;22175:131;:::i;:::-;22167:139;;21894:419;;;:::o;22319:174::-;22459:26;22455:1;22447:6;22443:14;22436:50;22319:174;:::o;22499:366::-;22641:3;22662:67;22726:2;22721:3;22662:67;:::i;:::-;22655:74;;22738:93;22827:3;22738:93;:::i;:::-;22856:2;22851:3;22847:12;22840:19;;22499:366;;;:::o;22871:419::-;23037:4;23075:2;23064:9;23060:18;23052:26;;23124:9;23118:4;23114:20;23110:1;23099:9;23095:17;23088:47;23152:131;23278:4;23152:131;:::i;:::-;23144:139;;22871:419;;;:::o;23296:172::-;23436:24;23432:1;23424:6;23420:14;23413:48;23296:172;:::o;23474:366::-;23616:3;23637:67;23701:2;23696:3;23637:67;:::i;:::-;23630:74;;23713:93;23802:3;23713:93;:::i;:::-;23831:2;23826:3;23822:12;23815:19;;23474:366;;;:::o;23846:419::-;24012:4;24050:2;24039:9;24035:18;24027:26;;24099:9;24093:4;24089:20;24085:1;24074:9;24070:17;24063:47;24127:131;24253:4;24127:131;:::i;:::-;24119:139;;23846:419;;;:::o;24271:171::-;24411:23;24407:1;24399:6;24395:14;24388:47;24271:171;:::o;24448:366::-;24590:3;24611:67;24675:2;24670:3;24611:67;:::i;:::-;24604:74;;24687:93;24776:3;24687:93;:::i;:::-;24805:2;24800:3;24796:12;24789:19;;24448:366;;;:::o;24820:419::-;24986:4;25024:2;25013:9;25009:18;25001:26;;25073:9;25067:4;25063:20;25059:1;25048:9;25044:17;25037:47;25101:131;25227:4;25101:131;:::i;:::-;25093:139;;24820:419;;;:::o;25245:170::-;25385:22;25381:1;25373:6;25369:14;25362:46;25245:170;:::o;25421:366::-;25563:3;25584:67;25648:2;25643:3;25584:67;:::i;:::-;25577:74;;25660:93;25749:3;25660:93;:::i;:::-;25778:2;25773:3;25769:12;25762:19;;25421:366;;;:::o;25793:419::-;25959:4;25997:2;25986:9;25982:18;25974:26;;26046:9;26040:4;26036:20;26032:1;26021:9;26017:17;26010:47;26074:131;26200:4;26074:131;:::i;:::-;26066:139;;25793:419;;;:::o;26218:174::-;26358:26;26354:1;26346:6;26342:14;26335:50;26218:174;:::o;26398:366::-;26540:3;26561:67;26625:2;26620:3;26561:67;:::i;:::-;26554:74;;26637:93;26726:3;26637:93;:::i;:::-;26755:2;26750:3;26746:12;26739:19;;26398:366;;;:::o;26770:419::-;26936:4;26974:2;26963:9;26959:18;26951:26;;27023:9;27017:4;27013:20;27009:1;26998:9;26994:17;26987:47;27051:131;27177:4;27051:131;:::i;:::-;27043:139;;26770:419;;;:::o;27195:171::-;27335:23;27331:1;27323:6;27319:14;27312:47;27195:171;:::o;27372:366::-;27514:3;27535:67;27599:2;27594:3;27535:67;:::i;:::-;27528:74;;27611:93;27700:3;27611:93;:::i;:::-;27729:2;27724:3;27720:12;27713:19;;27372:366;;;:::o;27744:419::-;27910:4;27948:2;27937:9;27933:18;27925:26;;27997:9;27991:4;27987:20;27983:1;27972:9;27968:17;27961:47;28025:131;28151:4;28025:131;:::i;:::-;28017:139;;27744:419;;;:::o;28169:180::-;28217:77;28214:1;28207:88;28314:4;28311:1;28304:15;28338:4;28335:1;28328:15;28355:143;28412:5;28443:6;28437:13;28428:22;;28459:33;28486:5;28459:33;:::i;:::-;28355:143;;;;:::o;28504:351::-;28574:6;28623:2;28611:9;28602:7;28598:23;28594:32;28591:119;;;28629:79;;:::i;:::-;28591:119;28749:1;28774:64;28830:7;28821:6;28810:9;28806:22;28774:64;:::i;:::-;28764:74;;28720:128;28504:351;;;;:::o;28861:85::-;28906:7;28935:5;28924:16;;28861:85;;;:::o;28952:158::-;29010:9;29043:61;29061:42;29070:32;29096:5;29070:32;:::i;:::-;29061:42;:::i;:::-;29043:61;:::i;:::-;29030:74;;28952:158;;;:::o;29116:147::-;29211:45;29250:5;29211:45;:::i;:::-;29206:3;29199:58;29116:147;;:::o;29269:114::-;29336:6;29370:5;29364:12;29354:22;;29269:114;;;:::o;29389:184::-;29488:11;29522:6;29517:3;29510:19;29562:4;29557:3;29553:14;29538:29;;29389:184;;;;:::o;29579:132::-;29646:4;29669:3;29661:11;;29699:4;29694:3;29690:14;29682:22;;29579:132;;;:::o;29717:108::-;29794:24;29812:5;29794:24;:::i;:::-;29789:3;29782:37;29717:108;;:::o;29831:179::-;29900:10;29921:46;29963:3;29955:6;29921:46;:::i;:::-;29999:4;29994:3;29990:14;29976:28;;29831:179;;;;:::o;30016:113::-;30086:4;30118;30113:3;30109:14;30101:22;;30016:113;;;:::o;30165:732::-;30284:3;30313:54;30361:5;30313:54;:::i;:::-;30383:86;30462:6;30457:3;30383:86;:::i;:::-;30376:93;;30493:56;30543:5;30493:56;:::i;:::-;30572:7;30603:1;30588:284;30613:6;30610:1;30607:13;30588:284;;;30689:6;30683:13;30716:63;30775:3;30760:13;30716:63;:::i;:::-;30709:70;;30802:60;30855:6;30802:60;:::i;:::-;30792:70;;30648:224;30635:1;30632;30628:9;30623:14;;30588:284;;;30592:14;30888:3;30881:10;;30289:608;;;30165:732;;;;:::o;30903:831::-;31166:4;31204:3;31193:9;31189:19;31181:27;;31218:71;31286:1;31275:9;31271:17;31262:6;31218:71;:::i;:::-;31299:80;31375:2;31364:9;31360:18;31351:6;31299:80;:::i;:::-;31426:9;31420:4;31416:20;31411:2;31400:9;31396:18;31389:48;31454:108;31557:4;31548:6;31454:108;:::i;:::-;31446:116;;31572:72;31640:2;31629:9;31625:18;31616:6;31572:72;:::i;:::-;31654:73;31722:3;31711:9;31707:19;31698:6;31654:73;:::i;:::-;30903:831;;;;;;;;:::o

Swarm Source

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