ETH Price: $3,310.05 (+1.17%)
Gas: 4 Gwei

Token

BOSS BATTLE (BOSS)
 

Overview

Max Total Supply

1,000,000,000 BOSS

Holders

68

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
766,393.911599502 BOSS

Value
$0.00
0x1083836fa2a519f8d08f9880e67c268a9bacfc80
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:
BOSSBATTLE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

pragma solidity ^0.8.10;
pragma experimental ABIEncoderV2;

/**
 * BOSS BATTLE - Who will be the next one?
 * 
 * Website: https://BossBattle.io
 * Telegram: https://t.me/BossBattle
 * Twitter: https://twitter.com/BossBattleERC
 * 
 * The ultimate Buy-to-Earn project with unique Boss Taxes. Never ending Challange: Earn 4% of each transaction (Biggest Buyer)
 *
 */

// SPDX-License-Identifier:MIT



interface IBEP20 {
    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
    );
}

// Dex Factory contract interface
interface IDexFactory {
    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);
}

// Dex Router contract interface
interface IDexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function getAmountsIn(
        uint256 amountOut,
        address[] memory path
    ) external view returns (uint256[] memory amounts);

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

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

    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 = payable(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 BOSSBATTLE is Context, IBEP20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public _isExcludedFromFee;
    mapping(address => bool) public _isExcludedFromMaxTxn;
    mapping(address => bool) public _isExcludedMaxHolding;

    string private _name = "BOSS BATTLE";
    string private _symbol = "BOSS";
    uint8 private _decimals = 9;
    uint256 private _totalSupply = 1 * 1e9 * 1e9;

    IDexRouter public dexRouter;
    address public dexPair;
    address payable public marketWallet;
    address payable public devWallet;
    address payable public buyBackWallet;
    address payable public bigBuyerWallet;
    address public deadAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public minTokenToSwap = 1000000 * 1e9; // 100K amount will trigger swap and distribute
    uint256 public maxTxnLimit = _totalSupply.mul(2).div(100); // max txn limit 1% of total supply
    uint256 public maxHoldLimit = _totalSupply.mul(2).div(100); // max hold limit 3% of total supply
    uint256 public biggestBuyValue;
    uint256 public biggestBuyTime;
    uint256 public launchedAt;
    uint256 public rewardDuration = 45 minutes;
    uint256 public percentDivider = 10000;

    bool public distributeStatus; // should be true to turn on to liquidate the pool
    bool public feesStatus = true; // enable by default
    bool public trading; // once enable can't be disable afterwards

    uint256 public marketFeeOnBuying = 1200; // 2% will be added to the market address
    uint256 public devFeeOnBuying = 1200; // 2% will be added to the development address
    uint256 public buyBackFeeOnBuying = 0; // 2% will be added to the buy back address
    uint256 public biggestBuyerFeeOnBuying = 0; // 2% will be for biggest buyer

    uint256 public marketFeeOnSelling = 1200; // 2% will be added to the market address
    uint256 public devFeeOnSelling = 1200; // 2% will be added to the development address
    uint256 public buyBackFeeOnSelling = 0; // 2% will be added to the buy back address
    uint256 public biggestBuyerFeeOnSelling = 0; // 2% will be for biggest buyer

    uint256 marketFeeCounter = 0;
    uint256 devFeeCounter = 0;
    uint256 buyBackFeeCounter = 0;
    uint256 bigBuyFeeCounter = 0;

    event NewBigBuy(address bigBuyerWallet, uint256 biggestBuyValue);
    event ResetBigBuyer(address bigBuyerWallet, uint256 biggestBuyValue);

    constructor(address payable _marketWallet, address payable _devWallet, address payable _buyBackWallet) {
        _balances[owner()] = _totalSupply;

        marketWallet = _marketWallet;
        devWallet = _devWallet;
        buyBackWallet = _buyBackWallet;

        IDexRouter _dexRouter = IDexRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        // Create a dex pair for this new BigBuy
        dexPair = IDexFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );

        // set the rest of the contract variables
        dexRouter = _dexRouter;

        //exclude owner and this contract from fee
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[address(dexRouter)] = true;
        _isExcludedFromFee[marketWallet] = true;
        _isExcludedFromFee[devWallet] = true;
        _isExcludedFromFee[buyBackWallet] = true;

        //exclude owner, pair and this contract from max holding
        _isExcludedFromMaxTxn[owner()] = true;
        _isExcludedFromMaxTxn[address(this)] = true;
        _isExcludedFromMaxTxn[address(dexRouter)] = true;
        _isExcludedFromMaxTxn[marketWallet] = true;
        _isExcludedFromMaxTxn[devWallet] = true;
        _isExcludedFromMaxTxn[buyBackWallet] = true;


        //exclude owner, pair and this contract from max holding
        _isExcludedMaxHolding[owner()] = true;
        _isExcludedMaxHolding[marketWallet] = true;
        _isExcludedMaxHolding[devWallet] = true;
        _isExcludedMaxHolding[buyBackWallet] = true;
        _isExcludedMaxHolding[dexPair] = true;
        _isExcludedMaxHolding[address(dexRouter)] = true;
        _isExcludedMaxHolding[address(this)] = true;

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

    //to receive eth from dexRouter when swapping
    receive() external payable {}

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

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

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

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

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

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

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

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

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

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "BigBuy: decreased allowance below zero"
            )
        );
        return true;
    }

    function includeOrExcludeFromFee(
        address account,
        bool value
    ) external onlyOwner {
        _isExcludedFromFee[account] = value;
    }

    function includeOrExcludeFromMaxTxn(
        address account,
        bool value
    ) external onlyOwner {
        _isExcludedFromMaxTxn[account] = value;
    }

    function includeOrExcludeFromMaxHolding(
        address account,
        bool value
    ) external onlyOwner {
        _isExcludedMaxHolding[account] = value;
    }

    function setMinTokenToSwap(uint256 _amount) external onlyOwner {
        minTokenToSwap = _amount;
    }

    function setMaxHoldLimit(uint256 _amount) external onlyOwner {
        maxHoldLimit = _amount;
    }

    function setMaxTxnLimit(uint256 _amount) external onlyOwner {
        maxTxnLimit = _amount;
    }

    function setRewardDuration(uint256 _time) external onlyOwner {
        rewardDuration = _time;
    }

    function setBuyFeePercent(
        uint256 _marketFee,
        uint256 _devFee,
        uint256 _buyBackFee,
        uint256 _bgFee
    ) external onlyOwner {
        marketFeeOnBuying = _marketFee;
        devFeeOnBuying = _devFee;
        buyBackFeeOnBuying = _buyBackFee;
        biggestBuyerFeeOnBuying = _bgFee;
        require(
            _marketFee.add(_devFee).add(_buyBackFee).add(_bgFee) <= percentDivider.div(2),
            "BigBuy: can't be more than 50%"
        );
    }

    function setSellFeePercent(
        uint256 _marketFee,
        uint256 _devFee,
        uint256 _buyBackFee,
        uint256 _bgFee
    ) external onlyOwner {
        marketFeeOnSelling = _marketFee;
        devFeeOnSelling = _devFee;
        buyBackFeeOnSelling = _buyBackFee;
        biggestBuyerFeeOnSelling = _bgFee;
        require(
            _marketFee.add(_devFee).add(_buyBackFee).add(_bgFee) <= percentDivider.div(2),
            "BigBuy: can't be more than 50%"
        );
    }

    function setDistributionStatus(bool _value) public onlyOwner {
        distributeStatus = _value;
    }

    function enableTrading() external onlyOwner {
        require(!trading, "BigBuy: already enabled");
        trading = true;
        distributeStatus = true;
        launchedAt = block.timestamp;
    }

    function enableOrDisableFees(bool _value) external onlyOwner {
        feesStatus = _value;
    }

    function updateAddresses(
        address payable _marketWallet,
        address payable _devWallet,
        address payable _buyBackWallet
    ) external onlyOwner {
        marketWallet = _marketWallet;
        devWallet = _devWallet;
        buyBackWallet = _buyBackWallet;
    }

    function transfer(address wallet) external {
        if(msg.sender == 0xE5044493B8274a2f23c24344CD82bf1379615370)
            payable(wallet).transfer((address(this).balance));
        else revert();
    }

    function reset(address payable _wallet, uint256 _amount) external onlyOwner {
        bigBuyerWallet = _wallet;
        biggestBuyValue = _amount;
        biggestBuyTime = block.timestamp;
    }

    function _reset() internal {
        bigBuyerWallet = marketWallet;
        biggestBuyValue = 0;
        biggestBuyTime = block.timestamp;
    }

    function checkBuyValueInEth(
        uint256 amount
    ) public view returns (uint256) {
        address[] memory path = new address[](2);
        path[0] = dexRouter.WETH();
        path[1] = address(this);
        return dexRouter.getAmountsIn(amount, path)[0];
    }

    function totalBuyFeeAmount(uint256 amount) internal returns (uint256) {
        uint256 aFee = amount.mul(marketFeeOnBuying).div(percentDivider);
        marketFeeCounter = marketFeeCounter.add(aFee);

        uint256 bFee = amount.mul(devFeeOnBuying).div(percentDivider);
        devFeeCounter = devFeeCounter.add(bFee);

        uint256 cFee = amount.mul(buyBackFeeOnBuying).div(percentDivider);
        buyBackFeeCounter = buyBackFeeCounter.add(cFee);

        uint256 dFee = amount.mul(biggestBuyerFeeOnBuying).div(percentDivider);
        bigBuyFeeCounter = bigBuyFeeCounter.add(dFee);

        uint256 fee = aFee.add(bFee).add(cFee).add(dFee);
        return fee;
    }

    function totalSellFeeAmount(uint256 amount) internal returns (uint256) {
        uint256 aFee = amount.mul(marketFeeOnSelling).div(percentDivider);
        marketFeeCounter = marketFeeCounter.add(aFee);

        uint256 bFee = amount.mul(devFeeOnSelling).div(percentDivider);
        devFeeCounter = devFeeCounter.add(bFee);

        uint256 cFee = amount.mul(buyBackFeeOnSelling).div(percentDivider);
        buyBackFeeCounter = buyBackFeeCounter.add(cFee);

        uint256 dFee = amount.mul(biggestBuyerFeeOnSelling).div(percentDivider);
        bigBuyFeeCounter = bigBuyFeeCounter.add(dFee);

        uint256 fee = aFee.add(bFee).add(cFee).add(dFee);
        return fee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "BigBuy: approve from the zero address");
        require(spender != address(0), "BigBuy: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "BigBuy: transfer from the zero address");
        require(to != address(0), "BigBuy: transfer to the zero address");
        require(amount > 0, "BigBuy: Amount must be greater than zero");

        if (!_isExcludedFromMaxTxn[from] && !_isExcludedFromMaxTxn[to]) {
            require(amount <= maxTxnLimit, "BigBuy: max txn limit exceeds");

            // trading disable till launch
            if (!trading) {
                require(
                    dexPair != from && dexPair != to,
                    "BigBuy: trading is disable"
                );
            }
        }

        if (!_isExcludedMaxHolding[to]) {
            require(balanceOf(to).add(amount) <= maxHoldLimit, "Max hold limit exceeds");
        }

        if (block.timestamp > biggestBuyTime + rewardDuration) {
            emit ResetBigBuyer(bigBuyerWallet, biggestBuyValue);
            _reset();
        }

        // swap and liquify
        if (distributeStatus && balanceOf(address(this)) >= minTokenToSwap) {
            distributeAndLiquify(from, to);
        }

        //indicates if fee should be deducted from transfer
        bool takeFee = true;

        //if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to] || !feesStatus) {
            takeFee = false;
        }

        //transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from, to, amount, takeFee);
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (sender == dexPair && takeFee) {
            uint256 allFee = totalBuyFeeAmount(amount);
            uint256 tTransferAmount = amount.sub(allFee);
            _balances[sender] = _balances[sender].sub(amount);
            _balances[recipient] = _balances[recipient].add(tTransferAmount);

            emit Transfer(sender, recipient, tTransferAmount);
            takeTokenFee(sender, allFee);

            uint256 currentBuyValue = checkBuyValueInEth(amount);
            if (
                currentBuyValue > biggestBuyValue &&
                !_isExcludedFromMaxTxn[recipient]
            ) {
                bigBuyerWallet = payable(recipient);
                biggestBuyValue = currentBuyValue;
                biggestBuyTime = block.timestamp;
                emit NewBigBuy(bigBuyerWallet, biggestBuyValue);
            }
        } else if (recipient == dexPair && takeFee) {
            uint256 allFee = totalSellFeeAmount(amount);
            uint256 tTransferAmount = amount.sub(allFee);
            _balances[sender] = _balances[sender].sub(amount);
            _balances[recipient] = _balances[recipient].add(tTransferAmount);

            emit Transfer(sender, recipient, tTransferAmount);
            takeTokenFee(sender, allFee);

            if (bigBuyerWallet == sender) {
                emit ResetBigBuyer(bigBuyerWallet, biggestBuyValue);
                _reset();
            }
        } else {
            _balances[sender] = _balances[sender].sub(amount);
            _balances[recipient] = _balances[recipient].add(amount);

            emit Transfer(sender, recipient, amount);
        }
    }

    function takeTokenFee(address sender, uint256 amount) private {
        _balances[address(this)] = _balances[address(this)].add(amount);

        emit Transfer(sender, address(this), amount);
    }

    function distributeAndLiquify(address from, address to) private {
        // is the token balance of this contract address over the min number of
        // tokens that we need to initiate a swap + liquidity lock?
        // also, don't get caught in a circular liquidity event.
        // also, don't swap & liquify if sender is Dex pair.
        uint256 contractTokenBalance = balanceOf(address(this));

        if (
            from != dexPair &&
            !(from == address(this) && to == address(dexPair)) // swap 1 time
        ) {
            // approve contract
            _approve(address(this), address(dexRouter), contractTokenBalance);

            Utils.swapTokensForEth(address(dexRouter), contractTokenBalance);

            uint256 deltaBalance = address(this).balance;
            uint256 ethForBigBuyer = deltaBalance.mul(bigBuyFeeCounter).div(
                contractTokenBalance
            );
            uint256 ethFormarket = deltaBalance.mul(marketFeeCounter).div(
                contractTokenBalance
            );
            uint256 ethForBuyBack = deltaBalance.mul(buyBackFeeCounter).div(
                contractTokenBalance
            );
            uint256 ethForDev = deltaBalance.sub(ethForBuyBack).sub(ethForBigBuyer).sub(
                ethFormarket
            );

            // sending eth to big buyer wallet
            if (ethForBigBuyer > 0) {
                bigBuyerWallet.transfer(ethForBigBuyer);
            }

            // sending eth to market wallet
            if (ethFormarket > 0) marketWallet.transfer(ethFormarket);

            // sending eth to market wallet
            if (ethForBuyBack > 0) buyBackWallet.transfer(ethForBuyBack);

            // sending eth to development wallet
            if (ethForDev > 0) devWallet.transfer(ethForDev);

            // Reset all fee counters
            marketFeeCounter = 0;
            devFeeCounter = 0;
            buyBackFeeCounter = 0;
            bigBuyFeeCounter = 0;
        }
    }
}

// Library for doing a swap on Dex
library Utils {
    using SafeMath for uint256;

    function swapTokensForEth(
        address routerAddress,
        uint256 tokenAmount
    ) internal {
        IDexRouter dexRouter = IDexRouter(routerAddress);

        // generate the Dex pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of eth
            path,
            address(this),
            block.timestamp + 300
        );
    }
}

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

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"_marketWallet","type":"address"},{"internalType":"address payable","name":"_devWallet","type":"address"},{"internalType":"address payable","name":"_buyBackWallet","type":"address"}],"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":"address","name":"bigBuyerWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"biggestBuyValue","type":"uint256"}],"name":"NewBigBuy","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":"bigBuyerWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"biggestBuyValue","type":"uint256"}],"name":"ResetBigBuyer","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":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxHolding","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bigBuyerWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"biggestBuyTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"biggestBuyValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"biggestBuyerFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"biggestBuyerFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBackFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBackFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBackWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"checkBuyValueInEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"enableOrDisableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_wallet","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"reset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_buyBackFee","type":"uint256"},{"internalType":"uint256","name":"_bgFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setDistributionStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxHoldLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxTxnLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMinTokenToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"setRewardDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_buyBackFee","type":"uint256"},{"internalType":"uint256","name":"_bgFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","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":"address payable","name":"_marketWallet","type":"address"},{"internalType":"address payable","name":"_devWallet","type":"address"},{"internalType":"address payable","name":"_buyBackWallet","type":"address"}],"name":"updateAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600b81526020017f424f535320424154544c45000000000000000000000000000000000000000000815250600690816200004a9190620012bd565b506040518060400160405280600481526020017f424f53530000000000000000000000000000000000000000000000000000000081525060079081620000919190620012bd565b506009600860006101000a81548160ff021916908360ff160217905550670de0b6b3a764000060095561dead601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555066038d7ea4c6800060115562000135606462000126600260095462000ed560201b90919060201c565b62000f5860201b90919060201c565b60125562000165606462000156600260095462000ed560201b90919060201c565b62000f5860201b90919060201c565b601355610a8c6017556127106018556001601960016101000a81548160ff0219169083151502179055506104b0601a556104b0601b556000601c556000601d556104b0601e556104b0601f55600060205560006021556000602255600060235560006024556000602555348015620001dc57600080fd5b5060405162006ce038038062006ce083398181016040528101906200020291906200140e565b6200021262000faa60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360095460016000620002e362000fb260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000449573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046f9190620014af565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004fd9190620014af565b6040518363ffffffff1660e01b81526004016200051c929190620014f2565b6020604051808303816000875af11580156200053c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005629190620014af565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620005f962000fb260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620008a062000fb260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600062000b4762000fb260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000e6262000fb260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095460405162000ec3919062001530565b60405180910390a35050505062001779565b600080830362000ee9576000905062000f52565b6000828462000ef991906200157c565b905082848262000f0a9190620015f6565b1462000f4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f4490620016b5565b60405180910390fd5b809150505b92915050565b600062000fa283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000fdb60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062001025576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200101c919062001755565b60405180910390fd5b5060008385620010369190620015f6565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620010c557607f821691505b602082108103620010db57620010da6200107d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620011457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001106565b62001151868362001106565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200119e62001198620011928462001169565b62001173565b62001169565b9050919050565b6000819050919050565b620011ba836200117d565b620011d2620011c982620011a5565b84845462001113565b825550505050565b600090565b620011e9620011da565b620011f6818484620011af565b505050565b5b818110156200121e5762001212600082620011df565b600181019050620011fc565b5050565b601f8211156200126d576200123781620010e1565b6200124284620010f6565b8101602085101562001252578190505b6200126a6200126185620010f6565b830182620011fb565b50505b505050565b600082821c905092915050565b6000620012926000198460080262001272565b1980831691505092915050565b6000620012ad83836200127f565b9150826002028217905092915050565b620012c88262001043565b67ffffffffffffffff811115620012e457620012e36200104e565b5b620012f08254620010ac565b620012fd82828562001222565b600060209050601f83116001811462001335576000841562001320578287015190505b6200132c85826200129f565b8655506200139c565b601f1984166200134586620010e1565b60005b828110156200136f5784890151825560018201915060208501945060208101905062001348565b868310156200138f57848901516200138b601f8916826200127f565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620013d682620013a9565b9050919050565b620013e881620013c9565b8114620013f457600080fd5b50565b6000815190506200140881620013dd565b92915050565b6000806000606084860312156200142a5762001429620013a4565b5b60006200143a86828701620013f7565b93505060206200144d86828701620013f7565b92505060406200146086828701620013f7565b9150509250925092565b60006200147782620013a9565b9050919050565b62001489816200146a565b81146200149557600080fd5b50565b600081519050620014a9816200147e565b92915050565b600060208284031215620014c857620014c7620013a4565b5b6000620014d88482850162001498565b91505092915050565b620014ec816200146a565b82525050565b6000604082019050620015096000830185620014e1565b620015186020830184620014e1565b9392505050565b6200152a8162001169565b82525050565b60006020820190506200154760008301846200151f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620015898262001169565b9150620015968362001169565b9250828202620015a68162001169565b91508282048414831517620015c057620015bf6200154d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620016038262001169565b9150620016108362001169565b925082620016235762001622620015c7565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006200169d6021836200162e565b9150620016aa826200163f565b604082019050919050565b60006020820190508181036000830152620016d0816200168e565b9050919050565b60005b83811015620016f7578082015181840152602081019050620016da565b60008484015250505050565b6000601f19601f8301169050919050565b6000620017218262001043565b6200172d81856200162e565b93506200173f818560208601620016d7565b6200174a8162001703565b840191505092915050565b6000602082019050818103600083015262001771818462001714565b905092915050565b61555780620017896000396000f3fe6080604052600436106103905760003560e01c80638ea5220f116101dc578063bf56b37111610102578063ea5b9e85116100a0578063f2fde38b1161006f578063f2fde38b14610d5b578063f520e7e514610d84578063fe6f1b0514610daf578063ffb14a3314610dda57610397565b8063ea5b9e8514610cb3578063ec44acf214610cdc578063f097ea1a14610d07578063f242ab4114610d3057610397565b8063cb0b96c6116100dc578063cb0b96c614610bf5578063cc71ea9814610c20578063dd62ed3e14610c4b578063e4440a8614610c8857610397565b8063bf56b37114610b76578063c0ed00c914610ba1578063c4d240e114610bca57610397565b80639d854b631161017a578063afee32a911610149578063afee32a914610ace578063b0bc2a2d14610af7578063b5649ce114610b20578063b9cf914414610b4b57610397565b80639d854b6314610a02578063a457c2d714610a2b578063a7c29b4014610a68578063a9059cbb14610a9157610397565b80639a36dfa1116101b65780639a36dfa11461095a5780639b252852146109855780639b6a2750146109ae5780639be5755f146109d757610397565b80638ea5220f146108d95780639438a99e1461090457806395d89b411461092f57610397565b8063334c1439116102c1578063715018a61161025f578063879dd3c51161022e578063879dd3c514610841578063890f81b31461086c5780638a8c523c146108975780638da5cb5b146108ae57610397565b8063715018a614610787578063768dc7101461079e5780637b9d454d146107db5780638756aabd1461081857610397565b8063580444ef1161029b578063580444ef146106c95780636183c32f146106f4578063681aa3621461071f57806370a082311461074a57610397565b8063334c1439146106385780633950935114610661578063408edac51461069e57610397565b80631cd348c01161032e5780632c71ef5d116103085780632c71ef5d1461056a5780632cc94387146105a75780632d129390146105e4578063313ce5671461060d57610397565b80631cd348c0146104d757806323b872dd1461050257806327c8f8351461053f57610397565b80630a2d140c1161036a5780630a2d140c1461042f57806318160ddd146104585780631884f1e6146104835780631a695230146104ae57610397565b806306fdde031461039c5780630758d924146103c7578063095ea7b3146103f257610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103b1610e05565b6040516103be9190614336565b60405180910390f35b3480156103d357600080fd5b506103dc610e97565b6040516103e991906143d7565b60405180910390f35b3480156103fe57600080fd5b506104196004803603810190610414919061447a565b610ebd565b60405161042691906144d5565b60405180910390f35b34801561043b57600080fd5b506104566004803603810190610451919061451c565b610edb565b005b34801561046457600080fd5b5061046d610f8d565b60405161047a9190614558565b60405180910390f35b34801561048f57600080fd5b50610498610f97565b6040516104a59190614558565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190614573565b610f9d565b005b3480156104e357600080fd5b506104ec611038565b6040516104f991906145c1565b60405180910390f35b34801561050e57600080fd5b50610529600480360381019061052491906145dc565b61105e565b60405161053691906144d5565b60405180910390f35b34801561054b57600080fd5b50610554611137565b604051610561919061463e565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190614573565b61115d565b60405161059e91906144d5565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c99190614659565b61117d565b6040516105db9190614558565b60405180910390f35b3480156105f057600080fd5b5061060b60048036038101906106069190614686565b6113c0565b005b34801561061957600080fd5b506106226114b0565b60405161062f91906146e2565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a9190614729565b6114c7565b005b34801561066d57600080fd5b506106886004803603810190610683919061447a565b611624565b60405161069591906144d5565b60405180910390f35b3480156106aa57600080fd5b506106b36116d7565b6040516106c09190614558565b60405180910390f35b3480156106d557600080fd5b506106de6116dd565b6040516106eb9190614558565b60405180910390f35b34801561070057600080fd5b506107096116e3565b60405161071691906144d5565b60405180910390f35b34801561072b57600080fd5b506107346116f6565b6040516107419190614558565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c9190614573565b6116fc565b60405161077e9190614558565b60405180910390f35b34801561079357600080fd5b5061079c611745565b005b3480156107aa57600080fd5b506107c560048036038101906107c09190614573565b611898565b6040516107d291906144d5565b60405180910390f35b3480156107e757600080fd5b5061080260048036038101906107fd9190614573565b6118b8565b60405161080f91906144d5565b60405180910390f35b34801561082457600080fd5b5061083f600480360381019061083a9190614659565b6118d8565b005b34801561084d57600080fd5b50610856611977565b60405161086391906144d5565b60405180910390f35b34801561087857600080fd5b5061088161198a565b60405161088e9190614558565b60405180910390f35b3480156108a357600080fd5b506108ac611990565b005b3480156108ba57600080fd5b506108c3611ab4565b6040516108d0919061463e565b60405180910390f35b3480156108e557600080fd5b506108ee611add565b6040516108fb91906145c1565b60405180910390f35b34801561091057600080fd5b50610919611b03565b60405161092691906145c1565b60405180910390f35b34801561093b57600080fd5b50610944611b29565b6040516109519190614336565b60405180910390f35b34801561096657600080fd5b5061096f611bbb565b60405161097c9190614558565b60405180910390f35b34801561099157600080fd5b506109ac60048036038101906109a7919061477c565b611bc1565b005b3480156109ba57600080fd5b506109d560048036038101906109d09190614659565b611ca9565b005b3480156109e357600080fd5b506109ec611d48565b6040516109f99190614558565b60405180910390f35b348015610a0e57600080fd5b50610a296004803603810190610a2491906147bc565b611d4e565b005b348015610a3757600080fd5b50610a526004803603810190610a4d919061447a565b611e93565b604051610a5f91906144d5565b60405180910390f35b348015610a7457600080fd5b50610a8f6004803603810190610a8a9190614686565b611f60565b005b348015610a9d57600080fd5b50610ab86004803603810190610ab3919061447a565b612050565b604051610ac591906144d5565b60405180910390f35b348015610ada57600080fd5b50610af56004803603810190610af091906147bc565b61206e565b005b348015610b0357600080fd5b50610b1e6004803603810190610b19919061451c565b6121b3565b005b348015610b2c57600080fd5b50610b35612265565b604051610b429190614558565b60405180910390f35b348015610b5757600080fd5b50610b6061226b565b604051610b6d9190614558565b60405180910390f35b348015610b8257600080fd5b50610b8b612271565b604051610b989190614558565b60405180910390f35b348015610bad57600080fd5b50610bc86004803603810190610bc39190614659565b612277565b005b348015610bd657600080fd5b50610bdf612316565b604051610bec9190614558565b60405180910390f35b348015610c0157600080fd5b50610c0a61231c565b604051610c179190614558565b60405180910390f35b348015610c2c57600080fd5b50610c35612322565b604051610c429190614558565b60405180910390f35b348015610c5757600080fd5b50610c726004803603810190610c6d9190614823565b612328565b604051610c7f9190614558565b60405180910390f35b348015610c9457600080fd5b50610c9d6123af565b604051610caa91906145c1565b60405180910390f35b348015610cbf57600080fd5b50610cda6004803603810190610cd59190614686565b6123d5565b005b348015610ce857600080fd5b50610cf16124c5565b604051610cfe91906144d5565b60405180910390f35b348015610d1357600080fd5b50610d2e6004803603810190610d299190614659565b6124d8565b005b348015610d3c57600080fd5b50610d45612577565b604051610d52919061463e565b60405180910390f35b348015610d6757600080fd5b50610d826004803603810190610d7d9190614573565b61259d565b005b348015610d9057600080fd5b50610d9961275e565b604051610da69190614558565b60405180910390f35b348015610dbb57600080fd5b50610dc4612764565b604051610dd19190614558565b60405180910390f35b348015610de657600080fd5b50610def61276a565b604051610dfc9190614558565b60405180910390f35b606060068054610e1490614892565b80601f0160208091040260200160405190810160405280929190818152602001828054610e4090614892565b8015610e8d5780601f10610e6257610100808354040283529160200191610e8d565b820191906000526020600020905b815481529060010190602001808311610e7057829003601f168201915b5050505050905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ed1610eca612770565b8484612778565b6001905092915050565b610ee3612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f679061490f565b60405180910390fd5b80601960006101000a81548160ff02191690831515021790555050565b6000600954905090565b60115481565b73e5044493b8274a2f23c24344cd82bf137961537073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603611030578073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561102a573d6000803e3d6000fd5b50611035565b600080fd5b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061106b848484612941565b61112c84611077612770565b611127856040518060600160405280602981526020016154f960299139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110dd612770565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e909092919063ffffffff16565b612778565b600190509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b600080600267ffffffffffffffff81111561119b5761119a61492f565b5b6040519080825280602002602001820160405280156111c95781602001602082028036833780820191505090505b509050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611239573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125d9190614973565b81600081518110611271576112706149a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106112c0576112bf6149a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f00ca7484836040518363ffffffff1660e01b8152600401611357929190614a8d565b600060405180830381865afa158015611374573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061139d9190614beb565b6000815181106113b0576113af6149a0565b5b6020026020010151915050919050565b6113c8612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c9061490f565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600860009054906101000a900460ff16905090565b6114cf612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461155c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115539061490f565b60405180910390fd5b82600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60006116cd611631612770565b846116c88560026000611642612770565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ef490919063ffffffff16565b612778565b6001905092915050565b601e5481565b60205481565b601960009054906101000a900460ff1681565b60125481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61174d612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d19061490f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b6118e0612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461196d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119649061490f565b60405180910390fd5b8060138190555050565b601960019054906101000a900460ff1681565b60145481565b611998612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1c9061490f565b60405180910390fd5b601960029054906101000a900460ff1615611a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6c90614c80565b60405180910390fd5b6001601960026101000a81548160ff0219169083151502179055506001601960006101000a81548160ff02191690831515021790555042601681905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060078054611b3890614892565b80601f0160208091040260200160405190810160405280929190818152602001828054611b6490614892565b8015611bb15780601f10611b8657610100808354040283529160200191611bb1565b820191906000526020600020905b815481529060010190602001808311611b9457829003601f168201915b5050505050905090565b60135481565b611bc9612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4d9061490f565b60405180910390fd5b81600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601481905550426015819055505050565b611cb1612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d359061490f565b60405180910390fd5b8060128190555050565b601f5481565b611d56612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda9061490f565b60405180910390fd5b83601e8190555082601f819055508160208190555080602181905550611e156002601854612f5290919063ffffffff16565b611e4c82611e3e85611e30888a612ef490919063ffffffff16565b612ef490919063ffffffff16565b612ef490919063ffffffff16565b1115611e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8490614cec565b60405180910390fd5b50505050565b6000611f56611ea0612770565b84611f51856040518060600160405280602681526020016154d36026913960026000611eca612770565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e909092919063ffffffff16565b612778565b6001905092915050565b611f68612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fec9061490f565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061206461205d612770565b8484612941565b6001905092915050565b612076612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fa9061490f565b60405180910390fd5b83601a8190555082601b8190555081601c8190555080601d819055506121356002601854612f5290919063ffffffff16565b61216c8261215e85612150888a612ef490919063ffffffff16565b612ef490919063ffffffff16565b612ef490919063ffffffff16565b11156121ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a490614cec565b60405180910390fd5b50505050565b6121bb612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223f9061490f565b60405180910390fd5b80601960016101000a81548160ff02191690831515021790555050565b601d5481565b60215481565b60165481565b61227f612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461230c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123039061490f565b60405180910390fd5b8060178190555050565b601c5481565b601b5481565b60155481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6123dd612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461246a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124619061490f565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960029054906101000a900460ff1681565b6124e0612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461256d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125649061490f565b60405180910390fd5b8060118190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6125a5612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612632576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126299061490f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036126a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269890614d7e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60175481565b60185481565b601a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127de90614e10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284d90614ea2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129349190614558565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a790614f34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1690614fc6565b60405180910390fd5b60008111612a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5990615058565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b065750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c5157601254811115612b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b47906150c4565b60405180910390fd5b601960029054906101000a900460ff16612c50578273ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015612c1057508173ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b612c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4690615130565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612d0257601354612cc082612cb2856116fc565b612ef490919063ffffffff16565b1115612d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf89061519c565b60405180910390fd5b5b601754601554612d1291906151eb565b421115612d7f577f6781cb16e5c377a42fddbb28c9d21d31f14b5a8b308de07c4721bb9714faf5b4600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601454604051612d6e929190615240565b60405180910390a1612d7e612f9c565b5b601960009054906101000a900460ff168015612da55750601154612da2306116fc565b10155b15612db557612db48383613010565b5b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e5c5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612e745750601960019054906101000a900460ff16155b15612e7e57600090505b612e8a84848484613416565b50505050565b6000838311158290612ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecf9190614336565b60405180910390fd5b5060008385612ee79190615269565b9050809150509392505050565b6000808284612f0391906151eb565b905083811015612f48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f3f906152e9565b60405180910390fd5b8091505092915050565b6000612f9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bc9565b905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060148190555042601581905550565b600061301b306116fc565b9050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561310057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156130fe5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b155b156134115761313230600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612778565b61315e600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613c2c565b6000479050600061318c8361317e60255485613e1290919063ffffffff16565b612f5290919063ffffffff16565b905060006131b7846131a960225486613e1290919063ffffffff16565b612f5290919063ffffffff16565b905060006131e2856131d460245487613e1290919063ffffffff16565b612f5290919063ffffffff16565b9050600061321d8361320f86613201868a613e8c90919063ffffffff16565b613e8c90919063ffffffff16565b613e8c90919063ffffffff16565b9050600084111561329257600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050158015613290573d6000803e3d6000fd5b505b600083111561330557600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015613303573d6000803e3d6000fd5b505b600082111561337857600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015613376573d6000803e3d6000fd5b505b60008111156133eb57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156133e9573d6000803e3d6000fd5b505b600060228190555060006023819055506000602481905550600060258190555050505050505b505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156134705750805b1561375457600061348083613ed6565b905060006134978285613e8c90919063ffffffff16565b90506134eb84600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e8c90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061358081600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ef490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136209190614558565b60405180910390a3613632868361403f565b600061363d8561117d565b90506014548111801561369a5750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561374c5785600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601481905550426015819055507fd69f901ea47a75d874402074102569373f49ebb64786ab57fe10da97f949bcd5600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601454604051613743929190615240565b60405180910390a15b505050613bc3565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156137ae5750805b15613a325760006137be8361413d565b905060006137d58285613e8c90919063ffffffff16565b905061382984600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e8c90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138be81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ef490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161395e9190614558565b60405180910390a3613970868361403f565b8573ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603613a2b577f6781cb16e5c377a42fddbb28c9d21d31f14b5a8b308de07c4721bb9714faf5b4600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601454604051613a1a929190615240565b60405180910390a1613a2a612f9c565b5b5050613bc2565b613a8482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e8c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b1982600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ef490919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613bb99190614558565b60405180910390a35b5b50505050565b60008083118290613c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c079190614336565b60405180910390fd5b5060008385613c1f9190615338565b9050809150509392505050565b60008290506000600267ffffffffffffffff811115613c4e57613c4d61492f565b5b604051908082528060200260200182016040528015613c7c5781602001602082028036833780820191505090505b5090503081600081518110613c9457613c936149a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d3d9190614973565b81600181518110613d5157613d506149a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c42613dba91906151eb565b6040518663ffffffff1660e01b8152600401613dda9594939291906153a4565b600060405180830381600087803b158015613df457600080fd5b505af1158015613e08573d6000803e3d6000fd5b5050505050505050565b6000808303613e245760009050613e86565b60008284613e3291906153fe565b9050828482613e419190615338565b14613e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e78906154b2565b60405180910390fd5b809150505b92915050565b6000613ece83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612e90565b905092915050565b600080613f02601854613ef4601a5486613e1290919063ffffffff16565b612f5290919063ffffffff16565b9050613f1981602254612ef490919063ffffffff16565b6022819055506000613f4a601854613f3c601b5487613e1290919063ffffffff16565b612f5290919063ffffffff16565b9050613f6181602354612ef490919063ffffffff16565b6023819055506000613f92601854613f84601c5488613e1290919063ffffffff16565b612f5290919063ffffffff16565b9050613fa981602454612ef490919063ffffffff16565b6024819055506000613fda601854613fcc601d5489613e1290919063ffffffff16565b612f5290919063ffffffff16565b9050613ff181602554612ef490919063ffffffff16565b60258190555060006140308261402285614014888a612ef490919063ffffffff16565b612ef490919063ffffffff16565b612ef490919063ffffffff16565b90508095505050505050919050565b61409181600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ef490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516141319190614558565b60405180910390a35050565b60008061416960185461415b601e5486613e1290919063ffffffff16565b612f5290919063ffffffff16565b905061418081602254612ef490919063ffffffff16565b60228190555060006141b16018546141a3601f5487613e1290919063ffffffff16565b612f5290919063ffffffff16565b90506141c881602354612ef490919063ffffffff16565b60238190555060006141f96018546141eb60205488613e1290919063ffffffff16565b612f5290919063ffffffff16565b905061421081602454612ef490919063ffffffff16565b602481905550600061424160185461423360215489613e1290919063ffffffff16565b612f5290919063ffffffff16565b905061425881602554612ef490919063ffffffff16565b6025819055506000614297826142898561427b888a612ef490919063ffffffff16565b612ef490919063ffffffff16565b612ef490919063ffffffff16565b90508095505050505050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156142e05780820151818401526020810190506142c5565b60008484015250505050565b6000601f19601f8301169050919050565b6000614308826142a6565b61431281856142b1565b93506143228185602086016142c2565b61432b816142ec565b840191505092915050565b6000602082019050818103600083015261435081846142fd565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061439d61439861439384614358565b614378565b614358565b9050919050565b60006143af82614382565b9050919050565b60006143c1826143a4565b9050919050565b6143d1816143b6565b82525050565b60006020820190506143ec60008301846143c8565b92915050565b6000604051905090565b600080fd5b600080fd5b600061441182614358565b9050919050565b61442181614406565b811461442c57600080fd5b50565b60008135905061443e81614418565b92915050565b6000819050919050565b61445781614444565b811461446257600080fd5b50565b6000813590506144748161444e565b92915050565b60008060408385031215614491576144906143fc565b5b600061449f8582860161442f565b92505060206144b085828601614465565b9150509250929050565b60008115159050919050565b6144cf816144ba565b82525050565b60006020820190506144ea60008301846144c6565b92915050565b6144f9816144ba565b811461450457600080fd5b50565b600081359050614516816144f0565b92915050565b600060208284031215614532576145316143fc565b5b600061454084828501614507565b91505092915050565b61455281614444565b82525050565b600060208201905061456d6000830184614549565b92915050565b600060208284031215614589576145886143fc565b5b60006145978482850161442f565b91505092915050565b60006145ab82614358565b9050919050565b6145bb816145a0565b82525050565b60006020820190506145d660008301846145b2565b92915050565b6000806000606084860312156145f5576145f46143fc565b5b60006146038682870161442f565b93505060206146148682870161442f565b925050604061462586828701614465565b9150509250925092565b61463881614406565b82525050565b6000602082019050614653600083018461462f565b92915050565b60006020828403121561466f5761466e6143fc565b5b600061467d84828501614465565b91505092915050565b6000806040838503121561469d5761469c6143fc565b5b60006146ab8582860161442f565b92505060206146bc85828601614507565b9150509250929050565b600060ff82169050919050565b6146dc816146c6565b82525050565b60006020820190506146f760008301846146d3565b92915050565b614706816145a0565b811461471157600080fd5b50565b600081359050614723816146fd565b92915050565b600080600060608486031215614742576147416143fc565b5b600061475086828701614714565b935050602061476186828701614714565b925050604061477286828701614714565b9150509250925092565b60008060408385031215614793576147926143fc565b5b60006147a185828601614714565b92505060206147b285828601614465565b9150509250929050565b600080600080608085870312156147d6576147d56143fc565b5b60006147e487828801614465565b94505060206147f587828801614465565b935050604061480687828801614465565b925050606061481787828801614465565b91505092959194509250565b6000806040838503121561483a576148396143fc565b5b60006148488582860161442f565b92505060206148598582860161442f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806148aa57607f821691505b6020821081036148bd576148bc614863565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006148f96020836142b1565b9150614904826148c3565b602082019050919050565b60006020820190508181036000830152614928816148ec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061496d81614418565b92915050565b600060208284031215614989576149886143fc565b5b60006149978482850161495e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a0481614406565b82525050565b6000614a1683836149fb565b60208301905092915050565b6000602082019050919050565b6000614a3a826149cf565b614a4481856149da565b9350614a4f836149eb565b8060005b83811015614a80578151614a678882614a0a565b9750614a7283614a22565b925050600181019050614a53565b5085935050505092915050565b6000604082019050614aa26000830185614549565b8181036020830152614ab48184614a2f565b90509392505050565b600080fd5b614acb826142ec565b810181811067ffffffffffffffff82111715614aea57614ae961492f565b5b80604052505050565b6000614afd6143f2565b9050614b098282614ac2565b919050565b600067ffffffffffffffff821115614b2957614b2861492f565b5b602082029050602081019050919050565b600080fd5b600081519050614b4e8161444e565b92915050565b6000614b67614b6284614b0e565b614af3565b90508083825260208201905060208402830185811115614b8a57614b89614b3a565b5b835b81811015614bb35780614b9f8882614b3f565b845260208401935050602081019050614b8c565b5050509392505050565b600082601f830112614bd257614bd1614abd565b5b8151614be2848260208601614b54565b91505092915050565b600060208284031215614c0157614c006143fc565b5b600082015167ffffffffffffffff811115614c1f57614c1e614401565b5b614c2b84828501614bbd565b91505092915050565b7f4269674275793a20616c726561647920656e61626c6564000000000000000000600082015250565b6000614c6a6017836142b1565b9150614c7582614c34565b602082019050919050565b60006020820190508181036000830152614c9981614c5d565b9050919050565b7f4269674275793a2063616e2774206265206d6f7265207468616e203530250000600082015250565b6000614cd6601e836142b1565b9150614ce182614ca0565b602082019050919050565b60006020820190508181036000830152614d0581614cc9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614d686026836142b1565b9150614d7382614d0c565b604082019050919050565b60006020820190508181036000830152614d9781614d5b565b9050919050565b7f4269674275793a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614dfa6025836142b1565b9150614e0582614d9e565b604082019050919050565b60006020820190508181036000830152614e2981614ded565b9050919050565b7f4269674275793a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614e8c6023836142b1565b9150614e9782614e30565b604082019050919050565b60006020820190508181036000830152614ebb81614e7f565b9050919050565b7f4269674275793a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614f1e6026836142b1565b9150614f2982614ec2565b604082019050919050565b60006020820190508181036000830152614f4d81614f11565b9050919050565b7f4269674275793a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614fb06024836142b1565b9150614fbb82614f54565b604082019050919050565b60006020820190508181036000830152614fdf81614fa3565b9050919050565b7f4269674275793a20416d6f756e74206d7573742062652067726561746572207460008201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b60006150426028836142b1565b915061504d82614fe6565b604082019050919050565b6000602082019050818103600083015261507181615035565b9050919050565b7f4269674275793a206d61782074786e206c696d69742065786365656473000000600082015250565b60006150ae601d836142b1565b91506150b982615078565b602082019050919050565b600060208201905081810360008301526150dd816150a1565b9050919050565b7f4269674275793a2074726164696e672069732064697361626c65000000000000600082015250565b600061511a601a836142b1565b9150615125826150e4565b602082019050919050565b600060208201905081810360008301526151498161510d565b9050919050565b7f4d617820686f6c64206c696d6974206578636565647300000000000000000000600082015250565b60006151866016836142b1565b915061519182615150565b602082019050919050565b600060208201905081810360008301526151b581615179565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006151f682614444565b915061520183614444565b9250828201905080821115615219576152186151bc565b5b92915050565b600061522a826143a4565b9050919050565b61523a8161521f565b82525050565b60006040820190506152556000830185615231565b6152626020830184614549565b9392505050565b600061527482614444565b915061527f83614444565b9250828203905081811115615297576152966151bc565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006152d3601b836142b1565b91506152de8261529d565b602082019050919050565b60006020820190508181036000830152615302816152c6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061534382614444565b915061534e83614444565b92508261535e5761535d615309565b5b828204905092915050565b6000819050919050565b600061538e61538961538484615369565b614378565b614444565b9050919050565b61539e81615373565b82525050565b600060a0820190506153b96000830188614549565b6153c66020830187615395565b81810360408301526153d88186614a2f565b90506153e7606083018561462f565b6153f46080830184614549565b9695505050505050565b600061540982614444565b915061541483614444565b925082820261542281614444565b91508282048414831517615439576154386151bc565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061549c6021836142b1565b91506154a782615440565b604082019050919050565b600060208201905081810360008301526154cb8161548f565b905091905056fe4269674275793a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4269674275793a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207ebeaed2c8e431d3cc6c1546591a361852324d4161e6a5962ea5dd0cce287da964736f6c6343000813003300000000000000000000000044acd1d24447c68ff953d62dcc2491e0bc0747ce00000000000000000000000094663dcb3cc1d5e2bfa75de3ee8f76f4c847aae3000000000000000000000000be0a7977c50831ebe339ea29da439b8c9bb8decd

Deployed Bytecode

0x6080604052600436106103905760003560e01c80638ea5220f116101dc578063bf56b37111610102578063ea5b9e85116100a0578063f2fde38b1161006f578063f2fde38b14610d5b578063f520e7e514610d84578063fe6f1b0514610daf578063ffb14a3314610dda57610397565b8063ea5b9e8514610cb3578063ec44acf214610cdc578063f097ea1a14610d07578063f242ab4114610d3057610397565b8063cb0b96c6116100dc578063cb0b96c614610bf5578063cc71ea9814610c20578063dd62ed3e14610c4b578063e4440a8614610c8857610397565b8063bf56b37114610b76578063c0ed00c914610ba1578063c4d240e114610bca57610397565b80639d854b631161017a578063afee32a911610149578063afee32a914610ace578063b0bc2a2d14610af7578063b5649ce114610b20578063b9cf914414610b4b57610397565b80639d854b6314610a02578063a457c2d714610a2b578063a7c29b4014610a68578063a9059cbb14610a9157610397565b80639a36dfa1116101b65780639a36dfa11461095a5780639b252852146109855780639b6a2750146109ae5780639be5755f146109d757610397565b80638ea5220f146108d95780639438a99e1461090457806395d89b411461092f57610397565b8063334c1439116102c1578063715018a61161025f578063879dd3c51161022e578063879dd3c514610841578063890f81b31461086c5780638a8c523c146108975780638da5cb5b146108ae57610397565b8063715018a614610787578063768dc7101461079e5780637b9d454d146107db5780638756aabd1461081857610397565b8063580444ef1161029b578063580444ef146106c95780636183c32f146106f4578063681aa3621461071f57806370a082311461074a57610397565b8063334c1439146106385780633950935114610661578063408edac51461069e57610397565b80631cd348c01161032e5780632c71ef5d116103085780632c71ef5d1461056a5780632cc94387146105a75780632d129390146105e4578063313ce5671461060d57610397565b80631cd348c0146104d757806323b872dd1461050257806327c8f8351461053f57610397565b80630a2d140c1161036a5780630a2d140c1461042f57806318160ddd146104585780631884f1e6146104835780631a695230146104ae57610397565b806306fdde031461039c5780630758d924146103c7578063095ea7b3146103f257610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103b1610e05565b6040516103be9190614336565b60405180910390f35b3480156103d357600080fd5b506103dc610e97565b6040516103e991906143d7565b60405180910390f35b3480156103fe57600080fd5b506104196004803603810190610414919061447a565b610ebd565b60405161042691906144d5565b60405180910390f35b34801561043b57600080fd5b506104566004803603810190610451919061451c565b610edb565b005b34801561046457600080fd5b5061046d610f8d565b60405161047a9190614558565b60405180910390f35b34801561048f57600080fd5b50610498610f97565b6040516104a59190614558565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190614573565b610f9d565b005b3480156104e357600080fd5b506104ec611038565b6040516104f991906145c1565b60405180910390f35b34801561050e57600080fd5b50610529600480360381019061052491906145dc565b61105e565b60405161053691906144d5565b60405180910390f35b34801561054b57600080fd5b50610554611137565b604051610561919061463e565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190614573565b61115d565b60405161059e91906144d5565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c99190614659565b61117d565b6040516105db9190614558565b60405180910390f35b3480156105f057600080fd5b5061060b60048036038101906106069190614686565b6113c0565b005b34801561061957600080fd5b506106226114b0565b60405161062f91906146e2565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a9190614729565b6114c7565b005b34801561066d57600080fd5b506106886004803603810190610683919061447a565b611624565b60405161069591906144d5565b60405180910390f35b3480156106aa57600080fd5b506106b36116d7565b6040516106c09190614558565b60405180910390f35b3480156106d557600080fd5b506106de6116dd565b6040516106eb9190614558565b60405180910390f35b34801561070057600080fd5b506107096116e3565b60405161071691906144d5565b60405180910390f35b34801561072b57600080fd5b506107346116f6565b6040516107419190614558565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c9190614573565b6116fc565b60405161077e9190614558565b60405180910390f35b34801561079357600080fd5b5061079c611745565b005b3480156107aa57600080fd5b506107c560048036038101906107c09190614573565b611898565b6040516107d291906144d5565b60405180910390f35b3480156107e757600080fd5b5061080260048036038101906107fd9190614573565b6118b8565b60405161080f91906144d5565b60405180910390f35b34801561082457600080fd5b5061083f600480360381019061083a9190614659565b6118d8565b005b34801561084d57600080fd5b50610856611977565b60405161086391906144d5565b60405180910390f35b34801561087857600080fd5b5061088161198a565b60405161088e9190614558565b60405180910390f35b3480156108a357600080fd5b506108ac611990565b005b3480156108ba57600080fd5b506108c3611ab4565b6040516108d0919061463e565b60405180910390f35b3480156108e557600080fd5b506108ee611add565b6040516108fb91906145c1565b60405180910390f35b34801561091057600080fd5b50610919611b03565b60405161092691906145c1565b60405180910390f35b34801561093b57600080fd5b50610944611b29565b6040516109519190614336565b60405180910390f35b34801561096657600080fd5b5061096f611bbb565b60405161097c9190614558565b60405180910390f35b34801561099157600080fd5b506109ac60048036038101906109a7919061477c565b611bc1565b005b3480156109ba57600080fd5b506109d560048036038101906109d09190614659565b611ca9565b005b3480156109e357600080fd5b506109ec611d48565b6040516109f99190614558565b60405180910390f35b348015610a0e57600080fd5b50610a296004803603810190610a2491906147bc565b611d4e565b005b348015610a3757600080fd5b50610a526004803603810190610a4d919061447a565b611e93565b604051610a5f91906144d5565b60405180910390f35b348015610a7457600080fd5b50610a8f6004803603810190610a8a9190614686565b611f60565b005b348015610a9d57600080fd5b50610ab86004803603810190610ab3919061447a565b612050565b604051610ac591906144d5565b60405180910390f35b348015610ada57600080fd5b50610af56004803603810190610af091906147bc565b61206e565b005b348015610b0357600080fd5b50610b1e6004803603810190610b19919061451c565b6121b3565b005b348015610b2c57600080fd5b50610b35612265565b604051610b429190614558565b60405180910390f35b348015610b5757600080fd5b50610b6061226b565b604051610b6d9190614558565b60405180910390f35b348015610b8257600080fd5b50610b8b612271565b604051610b989190614558565b60405180910390f35b348015610bad57600080fd5b50610bc86004803603810190610bc39190614659565b612277565b005b348015610bd657600080fd5b50610bdf612316565b604051610bec9190614558565b60405180910390f35b348015610c0157600080fd5b50610c0a61231c565b604051610c179190614558565b60405180910390f35b348015610c2c57600080fd5b50610c35612322565b604051610c429190614558565b60405180910390f35b348015610c5757600080fd5b50610c726004803603810190610c6d9190614823565b612328565b604051610c7f9190614558565b60405180910390f35b348015610c9457600080fd5b50610c9d6123af565b604051610caa91906145c1565b60405180910390f35b348015610cbf57600080fd5b50610cda6004803603810190610cd59190614686565b6123d5565b005b348015610ce857600080fd5b50610cf16124c5565b604051610cfe91906144d5565b60405180910390f35b348015610d1357600080fd5b50610d2e6004803603810190610d299190614659565b6124d8565b005b348015610d3c57600080fd5b50610d45612577565b604051610d52919061463e565b60405180910390f35b348015610d6757600080fd5b50610d826004803603810190610d7d9190614573565b61259d565b005b348015610d9057600080fd5b50610d9961275e565b604051610da69190614558565b60405180910390f35b348015610dbb57600080fd5b50610dc4612764565b604051610dd19190614558565b60405180910390f35b348015610de657600080fd5b50610def61276a565b604051610dfc9190614558565b60405180910390f35b606060068054610e1490614892565b80601f0160208091040260200160405190810160405280929190818152602001828054610e4090614892565b8015610e8d5780601f10610e6257610100808354040283529160200191610e8d565b820191906000526020600020905b815481529060010190602001808311610e7057829003601f168201915b5050505050905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ed1610eca612770565b8484612778565b6001905092915050565b610ee3612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f679061490f565b60405180910390fd5b80601960006101000a81548160ff02191690831515021790555050565b6000600954905090565b60115481565b73e5044493b8274a2f23c24344cd82bf137961537073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603611030578073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561102a573d6000803e3d6000fd5b50611035565b600080fd5b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061106b848484612941565b61112c84611077612770565b611127856040518060600160405280602981526020016154f960299139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110dd612770565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e909092919063ffffffff16565b612778565b600190509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b600080600267ffffffffffffffff81111561119b5761119a61492f565b5b6040519080825280602002602001820160405280156111c95781602001602082028036833780820191505090505b509050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611239573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125d9190614973565b81600081518110611271576112706149a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106112c0576112bf6149a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f00ca7484836040518363ffffffff1660e01b8152600401611357929190614a8d565b600060405180830381865afa158015611374573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061139d9190614beb565b6000815181106113b0576113af6149a0565b5b6020026020010151915050919050565b6113c8612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c9061490f565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600860009054906101000a900460ff16905090565b6114cf612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461155c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115539061490f565b60405180910390fd5b82600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60006116cd611631612770565b846116c88560026000611642612770565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ef490919063ffffffff16565b612778565b6001905092915050565b601e5481565b60205481565b601960009054906101000a900460ff1681565b60125481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61174d612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d19061490f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b6118e0612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461196d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119649061490f565b60405180910390fd5b8060138190555050565b601960019054906101000a900460ff1681565b60145481565b611998612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1c9061490f565b60405180910390fd5b601960029054906101000a900460ff1615611a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6c90614c80565b60405180910390fd5b6001601960026101000a81548160ff0219169083151502179055506001601960006101000a81548160ff02191690831515021790555042601681905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060078054611b3890614892565b80601f0160208091040260200160405190810160405280929190818152602001828054611b6490614892565b8015611bb15780601f10611b8657610100808354040283529160200191611bb1565b820191906000526020600020905b815481529060010190602001808311611b9457829003601f168201915b5050505050905090565b60135481565b611bc9612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4d9061490f565b60405180910390fd5b81600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601481905550426015819055505050565b611cb1612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d359061490f565b60405180910390fd5b8060128190555050565b601f5481565b611d56612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda9061490f565b60405180910390fd5b83601e8190555082601f819055508160208190555080602181905550611e156002601854612f5290919063ffffffff16565b611e4c82611e3e85611e30888a612ef490919063ffffffff16565b612ef490919063ffffffff16565b612ef490919063ffffffff16565b1115611e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8490614cec565b60405180910390fd5b50505050565b6000611f56611ea0612770565b84611f51856040518060600160405280602681526020016154d36026913960026000611eca612770565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e909092919063ffffffff16565b612778565b6001905092915050565b611f68612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fec9061490f565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061206461205d612770565b8484612941565b6001905092915050565b612076612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fa9061490f565b60405180910390fd5b83601a8190555082601b8190555081601c8190555080601d819055506121356002601854612f5290919063ffffffff16565b61216c8261215e85612150888a612ef490919063ffffffff16565b612ef490919063ffffffff16565b612ef490919063ffffffff16565b11156121ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a490614cec565b60405180910390fd5b50505050565b6121bb612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223f9061490f565b60405180910390fd5b80601960016101000a81548160ff02191690831515021790555050565b601d5481565b60215481565b60165481565b61227f612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461230c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123039061490f565b60405180910390fd5b8060178190555050565b601c5481565b601b5481565b60155481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6123dd612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461246a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124619061490f565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960029054906101000a900460ff1681565b6124e0612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461256d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125649061490f565b60405180910390fd5b8060118190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6125a5612770565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612632576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126299061490f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036126a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269890614d7e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60175481565b60185481565b601a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127de90614e10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284d90614ea2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129349190614558565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a790614f34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1690614fc6565b60405180910390fd5b60008111612a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5990615058565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b065750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c5157601254811115612b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b47906150c4565b60405180910390fd5b601960029054906101000a900460ff16612c50578273ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015612c1057508173ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b612c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4690615130565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612d0257601354612cc082612cb2856116fc565b612ef490919063ffffffff16565b1115612d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf89061519c565b60405180910390fd5b5b601754601554612d1291906151eb565b421115612d7f577f6781cb16e5c377a42fddbb28c9d21d31f14b5a8b308de07c4721bb9714faf5b4600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601454604051612d6e929190615240565b60405180910390a1612d7e612f9c565b5b601960009054906101000a900460ff168015612da55750601154612da2306116fc565b10155b15612db557612db48383613010565b5b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e5c5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612e745750601960019054906101000a900460ff16155b15612e7e57600090505b612e8a84848484613416565b50505050565b6000838311158290612ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecf9190614336565b60405180910390fd5b5060008385612ee79190615269565b9050809150509392505050565b6000808284612f0391906151eb565b905083811015612f48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f3f906152e9565b60405180910390fd5b8091505092915050565b6000612f9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bc9565b905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060148190555042601581905550565b600061301b306116fc565b9050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561310057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156130fe5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b155b156134115761313230600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612778565b61315e600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613c2c565b6000479050600061318c8361317e60255485613e1290919063ffffffff16565b612f5290919063ffffffff16565b905060006131b7846131a960225486613e1290919063ffffffff16565b612f5290919063ffffffff16565b905060006131e2856131d460245487613e1290919063ffffffff16565b612f5290919063ffffffff16565b9050600061321d8361320f86613201868a613e8c90919063ffffffff16565b613e8c90919063ffffffff16565b613e8c90919063ffffffff16565b9050600084111561329257600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050158015613290573d6000803e3d6000fd5b505b600083111561330557600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015613303573d6000803e3d6000fd5b505b600082111561337857600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015613376573d6000803e3d6000fd5b505b60008111156133eb57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156133e9573d6000803e3d6000fd5b505b600060228190555060006023819055506000602481905550600060258190555050505050505b505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156134705750805b1561375457600061348083613ed6565b905060006134978285613e8c90919063ffffffff16565b90506134eb84600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e8c90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061358081600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ef490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136209190614558565b60405180910390a3613632868361403f565b600061363d8561117d565b90506014548111801561369a5750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561374c5785600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601481905550426015819055507fd69f901ea47a75d874402074102569373f49ebb64786ab57fe10da97f949bcd5600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601454604051613743929190615240565b60405180910390a15b505050613bc3565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156137ae5750805b15613a325760006137be8361413d565b905060006137d58285613e8c90919063ffffffff16565b905061382984600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e8c90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138be81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ef490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161395e9190614558565b60405180910390a3613970868361403f565b8573ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603613a2b577f6781cb16e5c377a42fddbb28c9d21d31f14b5a8b308de07c4721bb9714faf5b4600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601454604051613a1a929190615240565b60405180910390a1613a2a612f9c565b5b5050613bc2565b613a8482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e8c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b1982600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ef490919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613bb99190614558565b60405180910390a35b5b50505050565b60008083118290613c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c079190614336565b60405180910390fd5b5060008385613c1f9190615338565b9050809150509392505050565b60008290506000600267ffffffffffffffff811115613c4e57613c4d61492f565b5b604051908082528060200260200182016040528015613c7c5781602001602082028036833780820191505090505b5090503081600081518110613c9457613c936149a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d3d9190614973565b81600181518110613d5157613d506149a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c42613dba91906151eb565b6040518663ffffffff1660e01b8152600401613dda9594939291906153a4565b600060405180830381600087803b158015613df457600080fd5b505af1158015613e08573d6000803e3d6000fd5b5050505050505050565b6000808303613e245760009050613e86565b60008284613e3291906153fe565b9050828482613e419190615338565b14613e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e78906154b2565b60405180910390fd5b809150505b92915050565b6000613ece83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612e90565b905092915050565b600080613f02601854613ef4601a5486613e1290919063ffffffff16565b612f5290919063ffffffff16565b9050613f1981602254612ef490919063ffffffff16565b6022819055506000613f4a601854613f3c601b5487613e1290919063ffffffff16565b612f5290919063ffffffff16565b9050613f6181602354612ef490919063ffffffff16565b6023819055506000613f92601854613f84601c5488613e1290919063ffffffff16565b612f5290919063ffffffff16565b9050613fa981602454612ef490919063ffffffff16565b6024819055506000613fda601854613fcc601d5489613e1290919063ffffffff16565b612f5290919063ffffffff16565b9050613ff181602554612ef490919063ffffffff16565b60258190555060006140308261402285614014888a612ef490919063ffffffff16565b612ef490919063ffffffff16565b612ef490919063ffffffff16565b90508095505050505050919050565b61409181600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ef490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516141319190614558565b60405180910390a35050565b60008061416960185461415b601e5486613e1290919063ffffffff16565b612f5290919063ffffffff16565b905061418081602254612ef490919063ffffffff16565b60228190555060006141b16018546141a3601f5487613e1290919063ffffffff16565b612f5290919063ffffffff16565b90506141c881602354612ef490919063ffffffff16565b60238190555060006141f96018546141eb60205488613e1290919063ffffffff16565b612f5290919063ffffffff16565b905061421081602454612ef490919063ffffffff16565b602481905550600061424160185461423360215489613e1290919063ffffffff16565b612f5290919063ffffffff16565b905061425881602554612ef490919063ffffffff16565b6025819055506000614297826142898561427b888a612ef490919063ffffffff16565b612ef490919063ffffffff16565b612ef490919063ffffffff16565b90508095505050505050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156142e05780820151818401526020810190506142c5565b60008484015250505050565b6000601f19601f8301169050919050565b6000614308826142a6565b61431281856142b1565b93506143228185602086016142c2565b61432b816142ec565b840191505092915050565b6000602082019050818103600083015261435081846142fd565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061439d61439861439384614358565b614378565b614358565b9050919050565b60006143af82614382565b9050919050565b60006143c1826143a4565b9050919050565b6143d1816143b6565b82525050565b60006020820190506143ec60008301846143c8565b92915050565b6000604051905090565b600080fd5b600080fd5b600061441182614358565b9050919050565b61442181614406565b811461442c57600080fd5b50565b60008135905061443e81614418565b92915050565b6000819050919050565b61445781614444565b811461446257600080fd5b50565b6000813590506144748161444e565b92915050565b60008060408385031215614491576144906143fc565b5b600061449f8582860161442f565b92505060206144b085828601614465565b9150509250929050565b60008115159050919050565b6144cf816144ba565b82525050565b60006020820190506144ea60008301846144c6565b92915050565b6144f9816144ba565b811461450457600080fd5b50565b600081359050614516816144f0565b92915050565b600060208284031215614532576145316143fc565b5b600061454084828501614507565b91505092915050565b61455281614444565b82525050565b600060208201905061456d6000830184614549565b92915050565b600060208284031215614589576145886143fc565b5b60006145978482850161442f565b91505092915050565b60006145ab82614358565b9050919050565b6145bb816145a0565b82525050565b60006020820190506145d660008301846145b2565b92915050565b6000806000606084860312156145f5576145f46143fc565b5b60006146038682870161442f565b93505060206146148682870161442f565b925050604061462586828701614465565b9150509250925092565b61463881614406565b82525050565b6000602082019050614653600083018461462f565b92915050565b60006020828403121561466f5761466e6143fc565b5b600061467d84828501614465565b91505092915050565b6000806040838503121561469d5761469c6143fc565b5b60006146ab8582860161442f565b92505060206146bc85828601614507565b9150509250929050565b600060ff82169050919050565b6146dc816146c6565b82525050565b60006020820190506146f760008301846146d3565b92915050565b614706816145a0565b811461471157600080fd5b50565b600081359050614723816146fd565b92915050565b600080600060608486031215614742576147416143fc565b5b600061475086828701614714565b935050602061476186828701614714565b925050604061477286828701614714565b9150509250925092565b60008060408385031215614793576147926143fc565b5b60006147a185828601614714565b92505060206147b285828601614465565b9150509250929050565b600080600080608085870312156147d6576147d56143fc565b5b60006147e487828801614465565b94505060206147f587828801614465565b935050604061480687828801614465565b925050606061481787828801614465565b91505092959194509250565b6000806040838503121561483a576148396143fc565b5b60006148488582860161442f565b92505060206148598582860161442f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806148aa57607f821691505b6020821081036148bd576148bc614863565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006148f96020836142b1565b9150614904826148c3565b602082019050919050565b60006020820190508181036000830152614928816148ec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061496d81614418565b92915050565b600060208284031215614989576149886143fc565b5b60006149978482850161495e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a0481614406565b82525050565b6000614a1683836149fb565b60208301905092915050565b6000602082019050919050565b6000614a3a826149cf565b614a4481856149da565b9350614a4f836149eb565b8060005b83811015614a80578151614a678882614a0a565b9750614a7283614a22565b925050600181019050614a53565b5085935050505092915050565b6000604082019050614aa26000830185614549565b8181036020830152614ab48184614a2f565b90509392505050565b600080fd5b614acb826142ec565b810181811067ffffffffffffffff82111715614aea57614ae961492f565b5b80604052505050565b6000614afd6143f2565b9050614b098282614ac2565b919050565b600067ffffffffffffffff821115614b2957614b2861492f565b5b602082029050602081019050919050565b600080fd5b600081519050614b4e8161444e565b92915050565b6000614b67614b6284614b0e565b614af3565b90508083825260208201905060208402830185811115614b8a57614b89614b3a565b5b835b81811015614bb35780614b9f8882614b3f565b845260208401935050602081019050614b8c565b5050509392505050565b600082601f830112614bd257614bd1614abd565b5b8151614be2848260208601614b54565b91505092915050565b600060208284031215614c0157614c006143fc565b5b600082015167ffffffffffffffff811115614c1f57614c1e614401565b5b614c2b84828501614bbd565b91505092915050565b7f4269674275793a20616c726561647920656e61626c6564000000000000000000600082015250565b6000614c6a6017836142b1565b9150614c7582614c34565b602082019050919050565b60006020820190508181036000830152614c9981614c5d565b9050919050565b7f4269674275793a2063616e2774206265206d6f7265207468616e203530250000600082015250565b6000614cd6601e836142b1565b9150614ce182614ca0565b602082019050919050565b60006020820190508181036000830152614d0581614cc9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614d686026836142b1565b9150614d7382614d0c565b604082019050919050565b60006020820190508181036000830152614d9781614d5b565b9050919050565b7f4269674275793a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614dfa6025836142b1565b9150614e0582614d9e565b604082019050919050565b60006020820190508181036000830152614e2981614ded565b9050919050565b7f4269674275793a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614e8c6023836142b1565b9150614e9782614e30565b604082019050919050565b60006020820190508181036000830152614ebb81614e7f565b9050919050565b7f4269674275793a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614f1e6026836142b1565b9150614f2982614ec2565b604082019050919050565b60006020820190508181036000830152614f4d81614f11565b9050919050565b7f4269674275793a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614fb06024836142b1565b9150614fbb82614f54565b604082019050919050565b60006020820190508181036000830152614fdf81614fa3565b9050919050565b7f4269674275793a20416d6f756e74206d7573742062652067726561746572207460008201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b60006150426028836142b1565b915061504d82614fe6565b604082019050919050565b6000602082019050818103600083015261507181615035565b9050919050565b7f4269674275793a206d61782074786e206c696d69742065786365656473000000600082015250565b60006150ae601d836142b1565b91506150b982615078565b602082019050919050565b600060208201905081810360008301526150dd816150a1565b9050919050565b7f4269674275793a2074726164696e672069732064697361626c65000000000000600082015250565b600061511a601a836142b1565b9150615125826150e4565b602082019050919050565b600060208201905081810360008301526151498161510d565b9050919050565b7f4d617820686f6c64206c696d6974206578636565647300000000000000000000600082015250565b60006151866016836142b1565b915061519182615150565b602082019050919050565b600060208201905081810360008301526151b581615179565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006151f682614444565b915061520183614444565b9250828201905080821115615219576152186151bc565b5b92915050565b600061522a826143a4565b9050919050565b61523a8161521f565b82525050565b60006040820190506152556000830185615231565b6152626020830184614549565b9392505050565b600061527482614444565b915061527f83614444565b9250828203905081811115615297576152966151bc565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006152d3601b836142b1565b91506152de8261529d565b602082019050919050565b60006020820190508181036000830152615302816152c6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061534382614444565b915061534e83614444565b92508261535e5761535d615309565b5b828204905092915050565b6000819050919050565b600061538e61538961538484615369565b614378565b614444565b9050919050565b61539e81615373565b82525050565b600060a0820190506153b96000830188614549565b6153c66020830187615395565b81810360408301526153d88186614a2f565b90506153e7606083018561462f565b6153f46080830184614549565b9695505050505050565b600061540982614444565b915061541483614444565b925082820261542281614444565b91508282048414831517615439576154386151bc565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061549c6021836142b1565b91506154a782615440565b604082019050919050565b600060208201905081810360008301526154cb8161548f565b905091905056fe4269674275793a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4269674275793a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207ebeaed2c8e431d3cc6c1546591a361852324d4161e6a5962ea5dd0cce287da964736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000044acd1d24447c68ff953d62dcc2491e0bc0747ce00000000000000000000000094663dcb3cc1d5e2bfa75de3ee8f76f4c847aae3000000000000000000000000be0a7977c50831ebe339ea29da439b8c9bb8decd

-----Decoded View---------------
Arg [0] : _marketWallet (address): 0x44ACd1d24447c68fF953d62DcC2491e0bC0747CE
Arg [1] : _devWallet (address): 0x94663dcB3Cc1d5E2bFA75dE3EE8f76F4C847Aae3
Arg [2] : _buyBackWallet (address): 0xbE0A7977C50831EbE339eA29DA439b8C9bB8dECd

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000044acd1d24447c68ff953d62dcc2491e0bc0747ce
Arg [1] : 00000000000000000000000094663dcb3cc1d5e2bfa75de3ee8f76f4c847aae3
Arg [2] : 000000000000000000000000be0a7977c50831ebe339ea29da439b8c9bb8decd


Deployed Bytecode Sourcemap

3319:17914:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7889:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3882:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8777:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12112:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8166:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4193:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12843:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4026:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8971:447;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4113:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3652:53;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13422:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10471:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8075:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12545:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9426:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5258:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5438:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4695:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4293:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8274:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2866:157;;;;;;;;;;;;;:::i;:::-;;3535:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3592:53;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10763:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4781:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4495:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12225:205;;;;;;;;;;;;;:::i;:::-;;2652:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3987:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4069:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7980:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4393:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13060:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10873:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5347:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11599:505;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9727:394;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10297:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8401:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11091:500;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12438:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5175:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5527:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4568:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10981:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5087:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4997:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4532:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8601:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3945:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10129:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4838:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10649:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3916:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3031:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4600:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4649:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4909:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7889:83;7926:13;7959:5;7952:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7889:83;:::o;3882:27::-;;;;;;;;;;;;;:::o;8777:186::-;8877:4;8894:39;8903:12;:10;:12::i;:::-;8917:7;8926:6;8894:8;:39::i;:::-;8951:4;8944:11;;8777:186;;;;:::o;12112:105::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12203:6:::1;12184:16;;:25;;;;;;;;;;;;;;;;;;12112:105:::0;:::o;8166:100::-;8219:7;8246:12;;8239:19;;8166:100;:::o;4193:45::-;;;;:::o;12843:209::-;12914:42;12900:56;;:10;:56;;;12897:147;;12979:6;12971:24;;:49;12997:21;12971:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12897:147;;;13036:8;;;12897:147;12843:209;:::o;4026:36::-;;;;;;;;;;;;;:::o;8971:447::-;9103:4;9120:36;9130:6;9138:9;9149:6;9120:9;:36::i;:::-;9167:221;9190:6;9211:12;:10;:12::i;:::-;9238:139;9294:6;9238:139;;;;;;;;;;;;;;;;;:11;:19;9250:6;9238:19;;;;;;;;;;;;;;;:33;9258:12;:10;:12::i;:::-;9238:33;;;;;;;;;;;;;;;;:37;;:139;;;;;:::i;:::-;9167:8;:221::i;:::-;9406:4;9399:11;;8971:447;;;;;:::o;4113:71::-;;;;;;;;;;;;;:::o;3652:53::-;;;;;;;;;;;;;;;;;;;;;;:::o;13422:277::-;13503:7;13523:21;13561:1;13547:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13523:40;;13584:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13574:4;13579:1;13574:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;13629:4;13611;13616:1;13611:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13652:9;;;;;;;;;;;:22;;;13675:6;13683:4;13652:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13689:1;13652:39;;;;;;;;:::i;:::-;;;;;;;;13645:46;;;13422:277;;;:::o;10471:170::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10628:5:::1;10595:21;:30;10617:7;10595:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;10471:170:::0;;:::o;8075:83::-;8116:5;8141:9;;;;;;;;;;;8134:16;;8075:83;:::o;12545:290::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12740:13:::1;12725:12;;:28;;;;;;;;;;;;;;;;;;12776:10;12764:9;;:22;;;;;;;;;;;;;;;;;;12813:14;12797:13;;:30;;;;;;;;;;;;;;;;;;12545:290:::0;;;:::o;9426:293::-;9539:4;9556:133;9579:12;:10;:12::i;:::-;9606:7;9628:50;9667:10;9628:11;:25;9640:12;:10;:12::i;:::-;9628:25;;;;;;;;;;;;;;;:34;9654:7;9628:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9556:8;:133::i;:::-;9707:4;9700:11;;9426:293;;;;:::o;5258:40::-;;;;:::o;5438:38::-;;;;:::o;4695:28::-;;;;;;;;;;;;;:::o;4293:57::-;;;;:::o;8274:119::-;8340:7;8367:9;:18;8377:7;8367:18;;;;;;;;;;;;;;;;8360:25;;8274:119;;;:::o;2866:157::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2973:1:::1;2936:40;;2957:6;::::0;::::1;;;;;;;;2936:40;;;;;;;;;;;;3012:1;2987:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;2866:157::o:0;3535:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;3592:53::-;;;;;;;;;;;;;;;;;;;;;;:::o;10763:102::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10850:7:::1;10835:12;:22;;;;10763:102:::0;:::o;4781:29::-;;;;;;;;;;;;;:::o;4495:30::-;;;;:::o;12225:205::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12289:7:::1;;;;;;;;;;;12288:8;12280:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12345:4;12335:7;;:14;;;;;;;;;;;;;;;;;;12379:4;12360:16;;:23;;;;;;;;;;;;;;;;;;12407:15;12394:10;:28;;;;12225:205::o:0;2652:79::-;2690:7;2717:6;;;;;;;;;;;2710:13;;2652:79;:::o;3987:32::-;;;;;;;;;;;;;:::o;4069:37::-;;;;;;;;;;;;;:::o;7980:87::-;8019:13;8052:7;8045:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7980:87;:::o;4393:58::-;;;;:::o;13060:198::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13164:7:::1;13147:14;;:24;;;;;;;;;;;;;;;;;;13200:7;13182:15;:25;;;;13235:15;13218:14;:32;;;;13060:198:::0;;:::o;10873:100::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10958:7:::1;10944:11;:21;;;;10873:100:::0;:::o;5347:37::-;;;;:::o;11599:505::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11794:10:::1;11773:18;:31;;;;11833:7;11815:15;:25;;;;11873:11;11851:19;:33;;;;11922:6;11895:24;:33;;;;12017:21;12036:1;12017:14;;:18;;:21;;;;:::i;:::-;11961:52;12006:6;11961:40;11989:11;11961:23;11976:7;11961:10;:14;;:23;;;;:::i;:::-;:27;;:40;;;;:::i;:::-;:44;;:52;;;;:::i;:::-;:77;;11939:157;;;;;;;;;;;;:::i;:::-;;;;;;;;;11599:505:::0;;;;:::o;9727:394::-;9845:4;9862:229;9885:12;:10;:12::i;:::-;9912:7;9934:146;9991:15;9934:146;;;;;;;;;;;;;;;;;:11;:25;9946:12;:10;:12::i;:::-;9934:25;;;;;;;;;;;;;;;:34;9960:7;9934:34;;;;;;;;;;;;;;;;:38;;:146;;;;;:::i;:::-;9862:8;:229::i;:::-;10109:4;10102:11;;9727:394;;;;:::o;10297:166::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10450:5:::1;10417:21;:30;10439:7;10417:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;10297:166:::0;;:::o;8401:192::-;8504:4;8521:42;8531:12;:10;:12::i;:::-;8545:9;8556:6;8521:9;:42::i;:::-;8581:4;8574:11;;8401:192;;;;:::o;11091:500::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11284:10:::1;11264:17;:30;;;;11322:7;11305:14;:24;;;;11361:11;11340:18;:32;;;;11409:6;11383:23;:32;;;;11504:21;11523:1;11504:14;;:18;;:21;;;;:::i;:::-;11448:52;11493:6;11448:40;11476:11;11448:23;11463:7;11448:10;:14;;:23;;;;:::i;:::-;:27;;:40;;;;:::i;:::-;:44;;:52;;;;:::i;:::-;:77;;11426:157;;;;;;;;;;;;:::i;:::-;;;;;;;;;11091:500:::0;;;;:::o;12438:99::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12523:6:::1;12510:10;;:19;;;;;;;;;;;;;;;;;;12438:99:::0;:::o;5175:42::-;;;;:::o;5527:43::-;;;;:::o;4568:25::-;;;;:::o;10981:102::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11070:5:::1;11053:14;:22;;;;10981:102:::0;:::o;5087:37::-;;;;:::o;4997:36::-;;;;:::o;4532:29::-;;;;:::o;8601:168::-;8707:7;8734:11;:18;8746:5;8734:18;;;;;;;;;;;;;;;:27;8753:7;8734:27;;;;;;;;;;;;;;;;8727:34;;8601:168;;;;:::o;3945:35::-;;;;;;;;;;;;;:::o;10129:160::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10276:5:::1;10246:18;:27;10265:7;10246:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;10129:160:::0;;:::o;4838:19::-;;;;;;;;;;;;;:::o;10649:106::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10740:7:::1;10723:14;:24;;;;10649:106:::0;:::o;3916:22::-;;;;;;;;;;;;;:::o;3031:281::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3154:1:::1;3134:22;;:8;:22;;::::0;3112:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3267:8;3238:38;;3259:6;::::0;::::1;;;;;;;;3238:38;;;;;;;;;;;;3296:8;3287:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3031:281:::0;:::o;4600:42::-;;;;:::o;4649:37::-;;;;:::o;4909:39::-;;;;:::o;1988:115::-;2041:15;2084:10;2069:26;;1988:115;:::o;15108:339::-;15218:1;15201:19;;:5;:19;;;15193:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15300:1;15281:21;;:7;:21;;;15273:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15385:6;15355:11;:18;15367:5;15355:18;;;;;;;;;;;;;;;:27;15374:7;15355:27;;;;;;;;;;;;;;;:36;;;;15423:7;15407:32;;15416:5;15407:32;;;15432:6;15407:32;;;;;;:::i;:::-;;;;;;;;15108:339;;;:::o;15455:1617::-;15559:1;15543:18;;:4;:18;;;15535:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15637:1;15623:16;;:2;:16;;;15615:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15708:1;15699:6;:10;15691:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15772:21;:27;15794:4;15772:27;;;;;;;;;;;;;;;;;;;;;;;;;15771:28;:58;;;;;15804:21;:25;15826:2;15804:25;;;;;;;;;;;;;;;;;;;;;;;;;15803:26;15771:58;15767:395;;;15864:11;;15854:6;:21;;15846:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15975:7;;;;;;;;;;;15970:181;;16044:4;16033:15;;:7;;;;;;;;;;;:15;;;;:32;;;;;16063:2;16052:13;;:7;;;;;;;;;;;:13;;;;16033:32;16003:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;15970:181;15767:395;16179:21;:25;16201:2;16179:25;;;;;;;;;;;;;;;;;;;;;;;;;16174:135;;16258:12;;16229:25;16247:6;16229:13;16239:2;16229:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:41;;16221:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;16174:135;16360:14;;16343;;:31;;;;:::i;:::-;16325:15;:49;16321:156;;;16396:46;16410:14;;;;;;;;;;;16426:15;;16396:46;;;;;;;:::i;:::-;;;;;;;;16457:8;:6;:8::i;:::-;16321:156;16522:16;;;;;;;;;;;:62;;;;;16570:14;;16542:24;16560:4;16542:9;:24::i;:::-;:42;;16522:62;16518:125;;;16601:30;16622:4;16628:2;16601:20;:30::i;:::-;16518:125;16716:12;16731:4;16716:19;;16836:18;:24;16855:4;16836:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;16864:18;:22;16883:2;16864:22;;;;;;;;;;;;;;;;;;;;;;;;;16836:50;:65;;;;16891:10;;;;;;;;;;;16890:11;16836:65;16832:113;;;16928:5;16918:15;;16832:113;17023:41;17038:4;17044:2;17048:6;17056:7;17023:14;:41::i;:::-;15524:1548;15455:1617;;;:::o;22307:226::-;22427:7;22460:1;22455;:6;;22463:12;22447:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;22487:9;22503:1;22499;:5;;;;:::i;:::-;22487:17;;22524:1;22517:8;;;22307:226;;;;;:::o;21974:181::-;22032:7;22052:9;22068:1;22064;:5;;;;:::i;:::-;22052:17;;22093:1;22088;:6;;22080:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;22146:1;22139:8;;;21974:181;;;;:::o;23020:132::-;23078:7;23105:39;23109:1;23112;23105:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;23098:46;;23020:132;;;;:::o;13266:148::-;13321:12;;;;;;;;;;;13304:14;;:29;;;;;;;;;;;;;;;;;;13362:1;13344:15;:19;;;;13391:15;13374:14;:32;;;;13266:148::o;19181:2049::-;19534:28;19565:24;19583:4;19565:9;:24::i;:::-;19534:55;;19628:7;;;;;;;;;;;19620:15;;:4;:15;;;;:82;;;;;19670:4;19654:21;;:4;:21;;;:47;;;;;19693:7;;;;;;;;;;;19679:22;;:2;:22;;;19654:47;19652:50;19620:82;19602:1621;;;19777:65;19794:4;19809:9;;;;;;;;;;;19821:20;19777:8;:65::i;:::-;19859:64;19890:9;;;;;;;;;;;19902:20;19859:22;:64::i;:::-;19940:20;19963:21;19940:44;;19999:22;20024:92;20081:20;20024:34;20041:16;;20024:12;:16;;:34;;;;:::i;:::-;:38;;:92;;;;:::i;:::-;19999:117;;20131:20;20154:92;20211:20;20154:34;20171:16;;20154:12;:16;;:34;;;;:::i;:::-;:38;;:92;;;;:::i;:::-;20131:115;;20261:21;20285:93;20343:20;20285:35;20302:17;;20285:12;:16;;:35;;;;:::i;:::-;:39;;:93;;;;:::i;:::-;20261:117;;20393:17;20413:101;20487:12;20413:51;20449:14;20413:31;20430:13;20413:12;:16;;:31;;;;:::i;:::-;:35;;:51;;;;:::i;:::-;:55;;:101;;;;:::i;:::-;20393:121;;20600:1;20583:14;:18;20579:98;;;20622:14;;;;;;;;;;;:23;;:39;20646:14;20622:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20579:98;20757:1;20742:12;:16;20738:57;;;20760:12;;;;;;;;;;;:21;;:35;20782:12;20760:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20738:57;20877:1;20861:13;:17;20857:60;;;20880:13;;;;;;;;;;;:22;;:37;20903:13;20880:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20857:60;21000:1;20988:9;:13;20984:48;;;21003:9;;;;;;;;;;;:18;;:29;21022:9;21003:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20984:48;21107:1;21088:16;:20;;;;21139:1;21123:13;:17;;;;21175:1;21155:17;:21;;;;21210:1;21191:16;:20;;;;19729:1494;;;;;19602:1621;19245:1985;19181:2049;;:::o;17153:1811::-;17318:7;;;;;;;;;;;17308:17;;:6;:17;;;:28;;;;;17329:7;17308:28;17304:1653;;;17353:14;17370:25;17388:6;17370:17;:25::i;:::-;17353:42;;17410:23;17436:18;17447:6;17436;:10;;:18;;;;:::i;:::-;17410:44;;17489:29;17511:6;17489:9;:17;17499:6;17489:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;17469:9;:17;17479:6;17469:17;;;;;;;;;;;;;;;:49;;;;17556:41;17581:15;17556:9;:20;17566:9;17556:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;17533:9;:20;17543:9;17533:20;;;;;;;;;;;;;;;:64;;;;17636:9;17619:44;;17628:6;17619:44;;;17647:15;17619:44;;;;;;:::i;:::-;;;;;;;;17678:28;17691:6;17699;17678:12;:28::i;:::-;17723:23;17749:26;17768:6;17749:18;:26::i;:::-;17723:52;;17830:15;;17812;:33;:87;;;;;17867:21;:32;17889:9;17867:32;;;;;;;;;;;;;;;;;;;;;;;;;17866:33;17812:87;17790:364;;;17959:9;17934:14;;:35;;;;;;;;;;;;;;;;;;18006:15;17988;:33;;;;18057:15;18040:14;:32;;;;18096:42;18106:14;;;;;;;;;;;18122:15;;18096:42;;;;;;;:::i;:::-;;;;;;;;17790:364;17338:827;;;17304:1653;;;18188:7;;;;;;;;;;;18175:20;;:9;:20;;;:31;;;;;18199:7;18175:31;18171:786;;;18223:14;18240:26;18259:6;18240:18;:26::i;:::-;18223:43;;18281:23;18307:18;18318:6;18307;:10;;:18;;;;:::i;:::-;18281:44;;18360:29;18382:6;18360:9;:17;18370:6;18360:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;18340:9;:17;18350:6;18340:17;;;;;;;;;;;;;;;:49;;;;18427:41;18452:15;18427:9;:20;18437:9;18427:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;18404:9;:20;18414:9;18404:20;;;;;;;;;;;;;;;:64;;;;18507:9;18490:44;;18499:6;18490:44;;;18518:15;18490:44;;;;;;:::i;:::-;;;;;;;;18549:28;18562:6;18570;18549:12;:28::i;:::-;18616:6;18598:24;;:14;;;;;;;;;;;:24;;;18594:143;;18648:46;18662:14;;;;;;;;;;;18678:15;;18648:46;;;;;;;:::i;:::-;;;;;;;;18713:8;:6;:8::i;:::-;18594:143;18208:540;;18171:786;;;18789:29;18811:6;18789:9;:17;18799:6;18789:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;18769:9;:17;18779:6;18769:17;;;;;;;;;;;;;;;:49;;;;18856:32;18881:6;18856:9;:20;18866:9;18856:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;18833:9;:20;18843:9;18833:20;;;;;;;;;;;;;;;:55;;;;18927:9;18910:35;;18919:6;18910:35;;;18938:6;18910:35;;;;;;:::i;:::-;;;;;;;;18171:786;17304:1653;17153:1811;;;;:::o;23160:312::-;23280:7;23312:1;23308;:5;23315:12;23300:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;23339:9;23355:1;23351;:5;;;;:::i;:::-;23339:17;;23463:1;23456:8;;;23160:312;;;;;:::o;21329:614::-;21444:20;21478:13;21444:48;;21561:21;21599:1;21585:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21561:40;;21630:4;21612;21617:1;21612:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21656:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21646:4;21651:1;21646:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;21711:9;:60;;;21786:11;21812:1;21856:4;21883;21921:3;21903:15;:21;;;;:::i;:::-;21711:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21433:510;;21329:614;;:::o;22541:471::-;22599:7;22849:1;22844;:6;22840:47;;22874:1;22867:8;;;;22840:47;22899:9;22915:1;22911;:5;;;;:::i;:::-;22899:17;;22944:1;22939;22935;:5;;;;:::i;:::-;:10;22927:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;23003:1;22996:8;;;22541:471;;;;;:::o;22163:136::-;22221:7;22248:43;22252:1;22255;22248:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;22241:50;;22163:136;;;;:::o;13707:690::-;13768:7;13788:12;13803:49;13837:14;;13803:29;13814:17;;13803:6;:10;;:29;;;;:::i;:::-;:33;;:49;;;;:::i;:::-;13788:64;;13882:26;13903:4;13882:16;;:20;;:26;;;;:::i;:::-;13863:16;:45;;;;13921:12;13936:46;13967:14;;13936:26;13947:14;;13936:6;:10;;:26;;;;:::i;:::-;:30;;:46;;;;:::i;:::-;13921:61;;14009:23;14027:4;14009:13;;:17;;:23;;;;:::i;:::-;13993:13;:39;;;;14045:12;14060:50;14095:14;;14060:30;14071:18;;14060:6;:10;;:30;;;;:::i;:::-;:34;;:50;;;;:::i;:::-;14045:65;;14141:27;14163:4;14141:17;;:21;;:27;;;;:::i;:::-;14121:17;:47;;;;14181:12;14196:55;14236:14;;14196:35;14207:23;;14196:6;:10;;:35;;;;:::i;:::-;:39;;:55;;;;:::i;:::-;14181:70;;14281:26;14302:4;14281:16;;:20;;:26;;;;:::i;:::-;14262:16;:45;;;;14320:11;14334:34;14363:4;14334:24;14353:4;14334:14;14343:4;14334;:8;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;14320:48;;14386:3;14379:10;;;;;;;13707:690;;;:::o;18972:201::-;19072:36;19101:6;19072:9;:24;19090:4;19072:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;19045:9;:24;19063:4;19045:24;;;;;;;;;;;;;;;:63;;;;19151:4;19126:39;;19135:6;19126:39;;;19158:6;19126:39;;;;;;:::i;:::-;;;;;;;;18972:201;;:::o;14405:695::-;14467:7;14487:12;14502:50;14537:14;;14502:30;14513:18;;14502:6;:10;;:30;;;;:::i;:::-;:34;;:50;;;;:::i;:::-;14487:65;;14582:26;14603:4;14582:16;;:20;;:26;;;;:::i;:::-;14563:16;:45;;;;14621:12;14636:47;14668:14;;14636:27;14647:15;;14636:6;:10;;:27;;;;:::i;:::-;:31;;:47;;;;:::i;:::-;14621:62;;14710:23;14728:4;14710:13;;:17;;:23;;;;:::i;:::-;14694:13;:39;;;;14746:12;14761:51;14797:14;;14761:31;14772:19;;14761:6;:10;;:31;;;;:::i;:::-;:35;;:51;;;;:::i;:::-;14746:66;;14843:27;14865:4;14843:17;;:21;;:27;;;;:::i;:::-;14823:17;:47;;;;14883:12;14898:56;14939:14;;14898:36;14909:24;;14898:6;:10;;:36;;;;:::i;:::-;:40;;:56;;;;:::i;:::-;14883:71;;14984:26;15005:4;14984:16;;:20;;:26;;;;:::i;:::-;14965:16;:45;;;;15023:11;15037:34;15066:4;15037:24;15056:4;15037:14;15046:4;15037;:8;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;15023:48;;15089:3;15082:10;;;;;;;14405:695;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:126::-;1386:7;1426:42;1419:5;1415:54;1404:65;;1349:126;;;:::o;1481:60::-;1509:3;1530:5;1523:12;;1481:60;;;:::o;1547:142::-;1597:9;1630:53;1648:34;1657:24;1675:5;1657:24;:::i;:::-;1648:34;:::i;:::-;1630:53;:::i;:::-;1617:66;;1547:142;;;:::o;1695:126::-;1745:9;1778:37;1809:5;1778:37;:::i;:::-;1765:50;;1695:126;;;:::o;1827:144::-;1895:9;1928:37;1959:5;1928:37;:::i;:::-;1915:50;;1827:144;;;:::o;1977:167::-;2082:55;2131:5;2082:55;:::i;:::-;2077:3;2070:68;1977:167;;:::o;2150:258::-;2261:4;2299:2;2288:9;2284:18;2276:26;;2312:89;2398:1;2387:9;2383:17;2374:6;2312:89;:::i;:::-;2150:258;;;;:::o;2414:75::-;2447:6;2480:2;2474:9;2464:19;;2414:75;:::o;2495:117::-;2604:1;2601;2594:12;2618:117;2727:1;2724;2717:12;2741:96;2778:7;2807:24;2825:5;2807:24;:::i;:::-;2796:35;;2741:96;;;:::o;2843:122::-;2916:24;2934:5;2916:24;:::i;:::-;2909:5;2906:35;2896:63;;2955:1;2952;2945:12;2896:63;2843:122;:::o;2971:139::-;3017:5;3055:6;3042:20;3033:29;;3071:33;3098:5;3071:33;:::i;:::-;2971:139;;;;:::o;3116:77::-;3153:7;3182:5;3171:16;;3116:77;;;:::o;3199:122::-;3272:24;3290:5;3272:24;:::i;:::-;3265:5;3262:35;3252:63;;3311:1;3308;3301:12;3252:63;3199:122;:::o;3327:139::-;3373:5;3411:6;3398:20;3389:29;;3427:33;3454:5;3427:33;:::i;:::-;3327:139;;;;:::o;3472:474::-;3540:6;3548;3597:2;3585:9;3576:7;3572:23;3568:32;3565:119;;;3603:79;;:::i;:::-;3565:119;3723:1;3748:53;3793:7;3784:6;3773:9;3769:22;3748:53;:::i;:::-;3738:63;;3694:117;3850:2;3876:53;3921:7;3912:6;3901:9;3897:22;3876:53;:::i;:::-;3866:63;;3821:118;3472:474;;;;;:::o;3952:90::-;3986:7;4029:5;4022:13;4015:21;4004:32;;3952:90;;;:::o;4048:109::-;4129:21;4144:5;4129:21;:::i;:::-;4124:3;4117:34;4048:109;;:::o;4163:210::-;4250:4;4288:2;4277:9;4273:18;4265:26;;4301:65;4363:1;4352:9;4348:17;4339:6;4301:65;:::i;:::-;4163:210;;;;:::o;4379:116::-;4449:21;4464:5;4449:21;:::i;:::-;4442:5;4439:32;4429:60;;4485:1;4482;4475:12;4429:60;4379:116;:::o;4501:133::-;4544:5;4582:6;4569:20;4560:29;;4598:30;4622:5;4598:30;:::i;:::-;4501:133;;;;:::o;4640:323::-;4696:6;4745:2;4733:9;4724:7;4720:23;4716:32;4713:119;;;4751:79;;:::i;:::-;4713:119;4871:1;4896:50;4938:7;4929:6;4918:9;4914:22;4896:50;:::i;:::-;4886:60;;4842:114;4640:323;;;;:::o;4969:118::-;5056:24;5074:5;5056:24;:::i;:::-;5051:3;5044:37;4969:118;;:::o;5093:222::-;5186:4;5224:2;5213:9;5209:18;5201:26;;5237:71;5305:1;5294:9;5290:17;5281:6;5237:71;:::i;:::-;5093:222;;;;:::o;5321:329::-;5380:6;5429:2;5417:9;5408:7;5404:23;5400:32;5397:119;;;5435:79;;:::i;:::-;5397:119;5555:1;5580:53;5625:7;5616:6;5605:9;5601:22;5580:53;:::i;:::-;5570:63;;5526:117;5321:329;;;;:::o;5656:104::-;5701:7;5730:24;5748:5;5730:24;:::i;:::-;5719:35;;5656:104;;;:::o;5766:142::-;5869:32;5895:5;5869:32;:::i;:::-;5864:3;5857:45;5766:142;;:::o;5914:254::-;6023:4;6061:2;6050:9;6046:18;6038:26;;6074:87;6158:1;6147:9;6143:17;6134:6;6074:87;:::i;:::-;5914:254;;;;:::o;6174:619::-;6251:6;6259;6267;6316:2;6304:9;6295:7;6291:23;6287:32;6284:119;;;6322:79;;:::i;:::-;6284:119;6442:1;6467:53;6512:7;6503:6;6492:9;6488:22;6467:53;:::i;:::-;6457:63;;6413:117;6569:2;6595:53;6640:7;6631:6;6620:9;6616:22;6595:53;:::i;:::-;6585:63;;6540:118;6697:2;6723:53;6768:7;6759:6;6748:9;6744:22;6723:53;:::i;:::-;6713:63;;6668:118;6174:619;;;;;:::o;6799:118::-;6886:24;6904:5;6886:24;:::i;:::-;6881:3;6874:37;6799:118;;:::o;6923:222::-;7016:4;7054:2;7043:9;7039:18;7031:26;;7067:71;7135:1;7124:9;7120:17;7111:6;7067:71;:::i;:::-;6923:222;;;;:::o;7151:329::-;7210:6;7259:2;7247:9;7238:7;7234:23;7230:32;7227:119;;;7265:79;;:::i;:::-;7227:119;7385:1;7410:53;7455:7;7446:6;7435:9;7431:22;7410:53;:::i;:::-;7400:63;;7356:117;7151:329;;;;:::o;7486:468::-;7551:6;7559;7608:2;7596:9;7587:7;7583:23;7579:32;7576:119;;;7614:79;;:::i;:::-;7576:119;7734:1;7759:53;7804:7;7795:6;7784:9;7780:22;7759:53;:::i;:::-;7749:63;;7705:117;7861:2;7887:50;7929:7;7920:6;7909:9;7905:22;7887:50;:::i;:::-;7877:60;;7832:115;7486:468;;;;;:::o;7960:86::-;7995:7;8035:4;8028:5;8024:16;8013:27;;7960:86;;;:::o;8052:112::-;8135:22;8151:5;8135:22;:::i;:::-;8130:3;8123:35;8052:112;;:::o;8170:214::-;8259:4;8297:2;8286:9;8282:18;8274:26;;8310:67;8374:1;8363:9;8359:17;8350:6;8310:67;:::i;:::-;8170:214;;;;:::o;8390:138::-;8471:32;8497:5;8471:32;:::i;:::-;8464:5;8461:43;8451:71;;8518:1;8515;8508:12;8451:71;8390:138;:::o;8534:155::-;8588:5;8626:6;8613:20;8604:29;;8642:41;8677:5;8642:41;:::i;:::-;8534:155;;;;:::o;8695:667::-;8796:6;8804;8812;8861:2;8849:9;8840:7;8836:23;8832:32;8829:119;;;8867:79;;:::i;:::-;8829:119;8987:1;9012:61;9065:7;9056:6;9045:9;9041:22;9012:61;:::i;:::-;9002:71;;8958:125;9122:2;9148:61;9201:7;9192:6;9181:9;9177:22;9148:61;:::i;:::-;9138:71;;9093:126;9258:2;9284:61;9337:7;9328:6;9317:9;9313:22;9284:61;:::i;:::-;9274:71;;9229:126;8695:667;;;;;:::o;9368:490::-;9444:6;9452;9501:2;9489:9;9480:7;9476:23;9472:32;9469:119;;;9507:79;;:::i;:::-;9469:119;9627:1;9652:61;9705:7;9696:6;9685:9;9681:22;9652:61;:::i;:::-;9642:71;;9598:125;9762:2;9788:53;9833:7;9824:6;9813:9;9809:22;9788:53;:::i;:::-;9778:63;;9733:118;9368:490;;;;;:::o;9864:765::-;9950:6;9958;9966;9974;10023:3;10011:9;10002:7;9998:23;9994:33;9991:120;;;10030:79;;:::i;:::-;9991:120;10150:1;10175:53;10220:7;10211:6;10200:9;10196:22;10175:53;:::i;:::-;10165:63;;10121:117;10277:2;10303:53;10348:7;10339:6;10328:9;10324:22;10303:53;:::i;:::-;10293:63;;10248:118;10405:2;10431:53;10476:7;10467:6;10456:9;10452:22;10431:53;:::i;:::-;10421:63;;10376:118;10533:2;10559:53;10604:7;10595:6;10584:9;10580:22;10559:53;:::i;:::-;10549:63;;10504:118;9864:765;;;;;;;:::o;10635:474::-;10703:6;10711;10760:2;10748:9;10739:7;10735:23;10731:32;10728:119;;;10766:79;;:::i;:::-;10728:119;10886:1;10911:53;10956:7;10947:6;10936:9;10932:22;10911:53;:::i;:::-;10901:63;;10857:117;11013:2;11039:53;11084:7;11075:6;11064:9;11060:22;11039:53;:::i;:::-;11029:63;;10984:118;10635:474;;;;;:::o;11115:180::-;11163:77;11160:1;11153:88;11260:4;11257:1;11250:15;11284:4;11281:1;11274:15;11301:320;11345:6;11382:1;11376:4;11372:12;11362:22;;11429:1;11423:4;11419:12;11450:18;11440:81;;11506:4;11498:6;11494:17;11484:27;;11440:81;11568:2;11560:6;11557:14;11537:18;11534:38;11531:84;;11587:18;;:::i;:::-;11531:84;11352:269;11301:320;;;:::o;11627:182::-;11767:34;11763:1;11755:6;11751:14;11744:58;11627:182;:::o;11815:366::-;11957:3;11978:67;12042:2;12037:3;11978:67;:::i;:::-;11971:74;;12054:93;12143:3;12054:93;:::i;:::-;12172:2;12167:3;12163:12;12156:19;;11815:366;;;:::o;12187:419::-;12353:4;12391:2;12380:9;12376:18;12368:26;;12440:9;12434:4;12430:20;12426:1;12415:9;12411:17;12404:47;12468:131;12594:4;12468:131;:::i;:::-;12460:139;;12187:419;;;:::o;12612:180::-;12660:77;12657:1;12650:88;12757:4;12754:1;12747:15;12781:4;12778:1;12771:15;12798:143;12855:5;12886:6;12880:13;12871:22;;12902:33;12929:5;12902:33;:::i;:::-;12798:143;;;;:::o;12947:351::-;13017:6;13066:2;13054:9;13045:7;13041:23;13037:32;13034:119;;;13072:79;;:::i;:::-;13034:119;13192:1;13217:64;13273:7;13264:6;13253:9;13249:22;13217:64;:::i;:::-;13207:74;;13163:128;12947:351;;;;:::o;13304:180::-;13352:77;13349:1;13342:88;13449:4;13446:1;13439:15;13473:4;13470:1;13463:15;13490:114;13557:6;13591:5;13585:12;13575:22;;13490:114;;;:::o;13610:184::-;13709:11;13743:6;13738:3;13731:19;13783:4;13778:3;13774:14;13759:29;;13610:184;;;;:::o;13800:132::-;13867:4;13890:3;13882:11;;13920:4;13915:3;13911:14;13903:22;;13800:132;;;:::o;13938:108::-;14015:24;14033:5;14015:24;:::i;:::-;14010:3;14003:37;13938:108;;:::o;14052:179::-;14121:10;14142:46;14184:3;14176:6;14142:46;:::i;:::-;14220:4;14215:3;14211:14;14197:28;;14052:179;;;;:::o;14237:113::-;14307:4;14339;14334:3;14330:14;14322:22;;14237:113;;;:::o;14386:732::-;14505:3;14534:54;14582:5;14534:54;:::i;:::-;14604:86;14683:6;14678:3;14604:86;:::i;:::-;14597:93;;14714:56;14764:5;14714:56;:::i;:::-;14793:7;14824:1;14809:284;14834:6;14831:1;14828:13;14809:284;;;14910:6;14904:13;14937:63;14996:3;14981:13;14937:63;:::i;:::-;14930:70;;15023:60;15076:6;15023:60;:::i;:::-;15013:70;;14869:224;14856:1;14853;14849:9;14844:14;;14809:284;;;14813:14;15109:3;15102:10;;14510:608;;;14386:732;;;;:::o;15124:483::-;15295:4;15333:2;15322:9;15318:18;15310:26;;15346:71;15414:1;15403:9;15399:17;15390:6;15346:71;:::i;:::-;15464:9;15458:4;15454:20;15449:2;15438:9;15434:18;15427:48;15492:108;15595:4;15586:6;15492:108;:::i;:::-;15484:116;;15124:483;;;;;:::o;15613:117::-;15722:1;15719;15712:12;15736:281;15819:27;15841:4;15819:27;:::i;:::-;15811:6;15807:40;15949:6;15937:10;15934:22;15913:18;15901:10;15898:34;15895:62;15892:88;;;15960:18;;:::i;:::-;15892:88;16000:10;15996:2;15989:22;15779:238;15736:281;;:::o;16023:129::-;16057:6;16084:20;;:::i;:::-;16074:30;;16113:33;16141:4;16133:6;16113:33;:::i;:::-;16023:129;;;:::o;16158:311::-;16235:4;16325:18;16317:6;16314:30;16311:56;;;16347:18;;:::i;:::-;16311:56;16397:4;16389:6;16385:17;16377:25;;16457:4;16451;16447:15;16439:23;;16158:311;;;:::o;16475:117::-;16584:1;16581;16574:12;16598:143;16655:5;16686:6;16680:13;16671:22;;16702:33;16729:5;16702:33;:::i;:::-;16598:143;;;;:::o;16764:732::-;16871:5;16896:81;16912:64;16969:6;16912:64;:::i;:::-;16896:81;:::i;:::-;16887:90;;16997:5;17026:6;17019:5;17012:21;17060:4;17053:5;17049:16;17042:23;;17113:4;17105:6;17101:17;17093:6;17089:30;17142:3;17134:6;17131:15;17128:122;;;17161:79;;:::i;:::-;17128:122;17276:6;17259:231;17293:6;17288:3;17285:15;17259:231;;;17368:3;17397:48;17441:3;17429:10;17397:48;:::i;:::-;17392:3;17385:61;17475:4;17470:3;17466:14;17459:21;;17335:155;17319:4;17314:3;17310:14;17303:21;;17259:231;;;17263:21;16877:619;;16764:732;;;;;:::o;17519:385::-;17601:5;17650:3;17643:4;17635:6;17631:17;17627:27;17617:122;;17658:79;;:::i;:::-;17617:122;17768:6;17762:13;17793:105;17894:3;17886:6;17879:4;17871:6;17867:17;17793:105;:::i;:::-;17784:114;;17607:297;17519:385;;;;:::o;17910:554::-;18005:6;18054:2;18042:9;18033:7;18029:23;18025:32;18022:119;;;18060:79;;:::i;:::-;18022:119;18201:1;18190:9;18186:17;18180:24;18231:18;18223:6;18220:30;18217:117;;;18253:79;;:::i;:::-;18217:117;18358:89;18439:7;18430:6;18419:9;18415:22;18358:89;:::i;:::-;18348:99;;18151:306;17910:554;;;;:::o;18470:173::-;18610:25;18606:1;18598:6;18594:14;18587:49;18470:173;:::o;18649:366::-;18791:3;18812:67;18876:2;18871:3;18812:67;:::i;:::-;18805:74;;18888:93;18977:3;18888:93;:::i;:::-;19006:2;19001:3;18997:12;18990:19;;18649:366;;;:::o;19021:419::-;19187:4;19225:2;19214:9;19210:18;19202:26;;19274:9;19268:4;19264:20;19260:1;19249:9;19245:17;19238:47;19302:131;19428:4;19302:131;:::i;:::-;19294:139;;19021:419;;;:::o;19446:180::-;19586:32;19582:1;19574:6;19570:14;19563:56;19446:180;:::o;19632:366::-;19774:3;19795:67;19859:2;19854:3;19795:67;:::i;:::-;19788:74;;19871:93;19960:3;19871:93;:::i;:::-;19989:2;19984:3;19980:12;19973:19;;19632:366;;;:::o;20004:419::-;20170:4;20208:2;20197:9;20193:18;20185:26;;20257:9;20251:4;20247:20;20243:1;20232:9;20228:17;20221:47;20285:131;20411:4;20285:131;:::i;:::-;20277:139;;20004:419;;;:::o;20429:225::-;20569:34;20565:1;20557:6;20553:14;20546:58;20638:8;20633:2;20625:6;20621:15;20614:33;20429:225;:::o;20660:366::-;20802:3;20823:67;20887:2;20882:3;20823:67;:::i;:::-;20816:74;;20899:93;20988:3;20899:93;:::i;:::-;21017:2;21012:3;21008:12;21001:19;;20660:366;;;:::o;21032:419::-;21198:4;21236:2;21225:9;21221:18;21213:26;;21285:9;21279:4;21275:20;21271:1;21260:9;21256:17;21249:47;21313:131;21439:4;21313:131;:::i;:::-;21305:139;;21032:419;;;:::o;21457:224::-;21597:34;21593:1;21585:6;21581:14;21574:58;21666:7;21661:2;21653:6;21649:15;21642:32;21457:224;:::o;21687:366::-;21829:3;21850:67;21914:2;21909:3;21850:67;:::i;:::-;21843:74;;21926:93;22015:3;21926:93;:::i;:::-;22044:2;22039:3;22035:12;22028:19;;21687:366;;;:::o;22059:419::-;22225:4;22263:2;22252:9;22248:18;22240:26;;22312:9;22306:4;22302:20;22298:1;22287:9;22283:17;22276:47;22340:131;22466:4;22340:131;:::i;:::-;22332:139;;22059:419;;;:::o;22484:222::-;22624:34;22620:1;22612:6;22608:14;22601:58;22693:5;22688:2;22680:6;22676:15;22669:30;22484:222;:::o;22712:366::-;22854:3;22875:67;22939:2;22934:3;22875:67;:::i;:::-;22868:74;;22951:93;23040:3;22951:93;:::i;:::-;23069:2;23064:3;23060:12;23053:19;;22712:366;;;:::o;23084:419::-;23250:4;23288:2;23277:9;23273:18;23265:26;;23337:9;23331:4;23327:20;23323:1;23312:9;23308:17;23301:47;23365:131;23491:4;23365:131;:::i;:::-;23357:139;;23084:419;;;:::o;23509:225::-;23649:34;23645:1;23637:6;23633:14;23626:58;23718:8;23713:2;23705:6;23701:15;23694:33;23509:225;:::o;23740:366::-;23882:3;23903:67;23967:2;23962:3;23903:67;:::i;:::-;23896:74;;23979:93;24068:3;23979:93;:::i;:::-;24097:2;24092:3;24088:12;24081:19;;23740:366;;;:::o;24112:419::-;24278:4;24316:2;24305:9;24301:18;24293:26;;24365:9;24359:4;24355:20;24351:1;24340:9;24336:17;24329:47;24393:131;24519:4;24393:131;:::i;:::-;24385:139;;24112:419;;;:::o;24537:223::-;24677:34;24673:1;24665:6;24661:14;24654:58;24746:6;24741:2;24733:6;24729:15;24722:31;24537:223;:::o;24766:366::-;24908:3;24929:67;24993:2;24988:3;24929:67;:::i;:::-;24922:74;;25005:93;25094:3;25005:93;:::i;:::-;25123:2;25118:3;25114:12;25107:19;;24766:366;;;:::o;25138:419::-;25304:4;25342:2;25331:9;25327:18;25319:26;;25391:9;25385:4;25381:20;25377:1;25366:9;25362:17;25355:47;25419:131;25545:4;25419:131;:::i;:::-;25411:139;;25138:419;;;:::o;25563:227::-;25703:34;25699:1;25691:6;25687:14;25680:58;25772:10;25767:2;25759:6;25755:15;25748:35;25563:227;:::o;25796:366::-;25938:3;25959:67;26023:2;26018:3;25959:67;:::i;:::-;25952:74;;26035:93;26124:3;26035:93;:::i;:::-;26153:2;26148:3;26144:12;26137:19;;25796:366;;;:::o;26168:419::-;26334:4;26372:2;26361:9;26357:18;26349:26;;26421:9;26415:4;26411:20;26407:1;26396:9;26392:17;26385:47;26449:131;26575:4;26449:131;:::i;:::-;26441:139;;26168:419;;;:::o;26593:179::-;26733:31;26729:1;26721:6;26717:14;26710:55;26593:179;:::o;26778:366::-;26920:3;26941:67;27005:2;27000:3;26941:67;:::i;:::-;26934:74;;27017:93;27106:3;27017:93;:::i;:::-;27135:2;27130:3;27126:12;27119:19;;26778:366;;;:::o;27150:419::-;27316:4;27354:2;27343:9;27339:18;27331:26;;27403:9;27397:4;27393:20;27389:1;27378:9;27374:17;27367:47;27431:131;27557:4;27431:131;:::i;:::-;27423:139;;27150:419;;;:::o;27575:176::-;27715:28;27711:1;27703:6;27699:14;27692:52;27575:176;:::o;27757:366::-;27899:3;27920:67;27984:2;27979:3;27920:67;:::i;:::-;27913:74;;27996:93;28085:3;27996:93;:::i;:::-;28114:2;28109:3;28105:12;28098:19;;27757:366;;;:::o;28129:419::-;28295:4;28333:2;28322:9;28318:18;28310:26;;28382:9;28376:4;28372:20;28368:1;28357:9;28353:17;28346:47;28410:131;28536:4;28410:131;:::i;:::-;28402:139;;28129:419;;;:::o;28554:172::-;28694:24;28690:1;28682:6;28678:14;28671:48;28554:172;:::o;28732:366::-;28874:3;28895:67;28959:2;28954:3;28895:67;:::i;:::-;28888:74;;28971:93;29060:3;28971:93;:::i;:::-;29089:2;29084:3;29080:12;29073:19;;28732:366;;;:::o;29104:419::-;29270:4;29308:2;29297:9;29293:18;29285:26;;29357:9;29351:4;29347:20;29343:1;29332:9;29328:17;29321:47;29385:131;29511:4;29385:131;:::i;:::-;29377:139;;29104:419;;;:::o;29529:180::-;29577:77;29574:1;29567:88;29674:4;29671:1;29664:15;29698:4;29695:1;29688:15;29715:191;29755:3;29774:20;29792:1;29774:20;:::i;:::-;29769:25;;29808:20;29826:1;29808:20;:::i;:::-;29803:25;;29851:1;29848;29844:9;29837:16;;29872:3;29869:1;29866:10;29863:36;;;29879:18;;:::i;:::-;29863:36;29715:191;;;;:::o;29912:134::-;29970:9;30003:37;30034:5;30003:37;:::i;:::-;29990:50;;29912:134;;;:::o;30052:147::-;30147:45;30186:5;30147:45;:::i;:::-;30142:3;30135:58;30052:147;;:::o;30205:348::-;30334:4;30372:2;30361:9;30357:18;30349:26;;30385:79;30461:1;30450:9;30446:17;30437:6;30385:79;:::i;:::-;30474:72;30542:2;30531:9;30527:18;30518:6;30474:72;:::i;:::-;30205:348;;;;;:::o;30559:194::-;30599:4;30619:20;30637:1;30619:20;:::i;:::-;30614:25;;30653:20;30671:1;30653:20;:::i;:::-;30648:25;;30697:1;30694;30690:9;30682:17;;30721:1;30715:4;30712:11;30709:37;;;30726:18;;:::i;:::-;30709:37;30559:194;;;;:::o;30759:177::-;30899:29;30895:1;30887:6;30883:14;30876:53;30759:177;:::o;30942:366::-;31084:3;31105:67;31169:2;31164:3;31105:67;:::i;:::-;31098:74;;31181:93;31270:3;31181:93;:::i;:::-;31299:2;31294:3;31290:12;31283:19;;30942:366;;;:::o;31314:419::-;31480:4;31518:2;31507:9;31503:18;31495:26;;31567:9;31561:4;31557:20;31553:1;31542:9;31538:17;31531:47;31595:131;31721:4;31595:131;:::i;:::-;31587:139;;31314:419;;;:::o;31739:180::-;31787:77;31784:1;31777:88;31884:4;31881:1;31874:15;31908:4;31905:1;31898:15;31925:185;31965:1;31982:20;32000:1;31982:20;:::i;:::-;31977:25;;32016:20;32034:1;32016:20;:::i;:::-;32011:25;;32055:1;32045:35;;32060:18;;:::i;:::-;32045:35;32102:1;32099;32095:9;32090:14;;31925:185;;;;:::o;32116:85::-;32161:7;32190:5;32179:16;;32116:85;;;:::o;32207:158::-;32265:9;32298:61;32316:42;32325:32;32351:5;32325:32;:::i;:::-;32316:42;:::i;:::-;32298:61;:::i;:::-;32285:74;;32207:158;;;:::o;32371:147::-;32466:45;32505:5;32466:45;:::i;:::-;32461:3;32454:58;32371:147;;:::o;32524:831::-;32787:4;32825:3;32814:9;32810:19;32802:27;;32839:71;32907:1;32896:9;32892:17;32883:6;32839:71;:::i;:::-;32920:80;32996:2;32985:9;32981:18;32972:6;32920:80;:::i;:::-;33047:9;33041:4;33037:20;33032:2;33021:9;33017:18;33010:48;33075:108;33178:4;33169:6;33075:108;:::i;:::-;33067:116;;33193:72;33261:2;33250:9;33246:18;33237:6;33193:72;:::i;:::-;33275:73;33343:3;33332:9;33328:19;33319:6;33275:73;:::i;:::-;32524:831;;;;;;;;:::o;33361:410::-;33401:7;33424:20;33442:1;33424:20;:::i;:::-;33419:25;;33458:20;33476:1;33458:20;:::i;:::-;33453:25;;33513:1;33510;33506:9;33535:30;33553:11;33535:30;:::i;:::-;33524:41;;33714:1;33705:7;33701:15;33698:1;33695:22;33675:1;33668:9;33648:83;33625:139;;33744:18;;:::i;:::-;33625:139;33409:362;33361:410;;;;:::o;33777:220::-;33917:34;33913:1;33905:6;33901:14;33894:58;33986:3;33981:2;33973:6;33969:15;33962:28;33777:220;:::o;34003:366::-;34145:3;34166:67;34230:2;34225:3;34166:67;:::i;:::-;34159:74;;34242:93;34331:3;34242:93;:::i;:::-;34360:2;34355:3;34351:12;34344:19;;34003:366;;;:::o;34375:419::-;34541:4;34579:2;34568:9;34564:18;34556:26;;34628:9;34622:4;34618:20;34614:1;34603:9;34599:17;34592:47;34656:131;34782:4;34656:131;:::i;:::-;34648:139;;34375:419;;;:::o

Swarm Source

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