ETH Price: $3,272.44 (+0.71%)
Gas: 1 Gwei

Token

Just Hold (堅持) (JHOLD)
 

Overview

Max Total Supply

1,000,000,000 JHOLD

Holders

86

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
456,371.6255711 JHOLD

Value
$0.00
0xd580229f564ef2b1cf39cf859f63856e9bbb2956
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:
JustHold

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-09
*/

/**


░░░░░██╗██╗░░░██╗░██████╗████████╗  ██╗░░██╗░█████╗░██╗░░░░░██████╗░
░░░░░██║██║░░░██║██╔════╝╚══██╔══╝  ██║░░██║██╔══██╗██║░░░░░██╔══██╗
░░░░░██║██║░░░██║╚█████╗░░░░██║░░░  ███████║██║░░██║██║░░░░░██║░░██║
██╗░░██║██║░░░██║░╚═══██╗░░░██║░░░  ██╔══██║██║░░██║██║░░░░░██║░░██║
╚█████╔╝╚██████╔╝██████╔╝░░░██║░░░  ██║░░██║╚█████╔╝███████╗██████╔╝
░╚════╝░░╚═════╝░╚═════╝░░░░╚═╝░░░  ╚═╝░░╚═╝░╚════╝░╚══════╝╚═════╝░

*********

Jeeters, they’re everywhere now. Wrecking projects in less than 2 hours upon launch, before most of them even have a chance of taking off. 

Just Hold isn't your average HODL token. Forget about old tokens like $HOLD that banked on pure hope and fizzled out. Just Hold ($JHOLD) is a revolutionary Anti-Jeet token with custom built features to incentivize and reward long term holding while strongly disincentivizing early seller behavior. It's the smarter way to hold and build wealth.

For more details visit the website: https://www.justhold.vip
Twitter: https://twitter.com/JustHoldERC20
Telegram: https://t.me/JustHoldERC20

*********

**/


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
contract Ownable is Context {
    address internal _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
 
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract JustHold  is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = unicode"Just Hold (堅持)";
    string private constant _symbol = "JHOLD";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);

    uint256 private constant _tTotal = 1_000_000_000 * 10**9;

    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    //Temporary Initial launch tax
    uint256 private _taxFeeOnLaunchBuy = 30;  
    uint256 private _taxFeeOnLaunchSell = 35;
 
    uint256 private _taxFee = _taxFeeOnLaunchSell;
 
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots;
    address payable private _marketingAddress = payable(0x3c395d6Ad1E94DB73f0B9833360DE4fB21Fccb15);
    address payable private _buybackAddress = payable(0x180d959c1B26354f50924866D36fcC290D6b19a3);
    address payable private _taxrewardsAddress = payable(0x51ffeef5a6BB6a76FC80E07c47bD7f0760ec4F65);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    address private _uncxLPLocker = 0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214;
    address private _cexwallet = 0x552866Bfe6cAaE60aD77E3babEA18bf7112361Fb;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    bool private dynamicTaxEnabled = false;
 
    uint256 public _maxWalletSize = _tTotal.mul(2).div(100); 
    uint256 public _swapTokensAtAmount = _tTotal.mul(1).div(1000);


    mapping (address => uint256) public userBuyTime;
    mapping (address => bool) public thresholdReached;
    mapping (address => bool) public checkpointBuy;
    uint256 public eligibleTaxThreshold = _tTotal.mul(2).div(1000);

    mapping (address => bool) public markedForReward;

    address[] public eligibleHolders;

    bool private accountTransfersAllowed = false;

    mapping(address => bool) private _isExcludedFromTransferBan;
 
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_buybackAddress] = true;
        _isExcludedFromFee[_taxrewardsAddress] = true;
        _isExcludedFromFee[address(_uniswapV2Router)] = true;
        _isExcludedFromFee[_uncxLPLocker] = true; //UNCX LP Lock address
        _isExcludedFromFee[_cexwallet] = true;

        _isExcludedFromTransferBan[owner()] = true;
        _isExcludedFromTransferBan[address(this)] = true;
        _isExcludedFromTransferBan[_marketingAddress] = true;
        _isExcludedFromTransferBan[_buybackAddress] = true;
        _isExcludedFromTransferBan[_taxrewardsAddress] = true;
        _isExcludedFromTransferBan[address(_uniswapV2Router)] = true;
        _isExcludedFromTransferBan[_uncxLPLocker] = true; //UNCX LP Lock address
        _isExcludedFromTransferBan[_cexwallet] = true;
        


        emit Transfer(address(0), _msgSender(), _tTotal);

    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[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,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_taxFee == 0) return;
 
        _previoustaxFee = _taxFee;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: 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), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            if(from != uniswapV2Pair && to != uniswapV2Pair && !_isExcludedFromTransferBan[from] && !_isExcludedFromTransferBan[to]) {
                require(accountTransfersAllowed);
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        } 
 
        bool takeFee = true;

 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {

                
                if(!thresholdReached[to]) {

                    if(!checkpointBuy[to]) {
                         userBuyTime[to] = block.timestamp;
                          checkpointBuy[to] == true;
                     }

                     if(balanceOf(to) + amount >= eligibleTaxThreshold) {
                         userBuyTime[to] = block.timestamp;
                          thresholdReached[to] = true;
                    }

                }


                if(!dynamicTaxEnabled) {
                    _taxFee = _taxFeeOnLaunchBuy;

                } else {

                    uint currentTime = block.timestamp;

                    if(currentTime >= (userBuyTime[to] + 24 hours) && currentTime < (userBuyTime[to] + 48 hours)) {
                        _taxFee = 2;
                    } else if(currentTime >= (userBuyTime[to] + 48 hours) && currentTime < (userBuyTime[to] + 72 hours) && thresholdReached[to]) {
                        _taxFee = 1;
                    } else if(currentTime >= (userBuyTime[to] + 72 hours) && thresholdReached[to]) {
                        _taxFee = 0;

                    } else {
                        _taxFee = 5;
                    }

                }

                
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {

                uint currentTime = block.timestamp;

                if(!dynamicTaxEnabled) {
                    _taxFee = _taxFeeOnLaunchSell;

                } else {

                    if(currentTime >= (userBuyTime[from] + 24 hours) && currentTime < (userBuyTime[from] + 48 hours)) {
                        _taxFee = 15;
                    } else if(currentTime >= (userBuyTime[from] + 48 hours) && currentTime < (userBuyTime[from] + 72 hours) && thresholdReached[from]) {
                        _taxFee = 5;
                    } else if(currentTime >= (userBuyTime[from] + 72 hours) && thresholdReached[from]) {
                        _taxFee = 0;

                    } else {
                        _taxFee = 25;
                    }

                }

                userBuyTime[from] = currentTime; //Reset tax rate if any amount of tokens is sold
                checkpointBuy[from] == false;

                if(balanceOf(from) - amount < eligibleTaxThreshold) {
                    thresholdReached[from] = false;
                }

                    
                
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {

        if(dynamicTaxEnabled) {
            _marketingAddress.transfer(amount.mul(3).div(5));
            _buybackAddress.transfer(amount.mul(1).div(5));
            _taxrewardsAddress.transfer(amount.mul(1).div(5));

        } else {
            _marketingAddress.transfer(amount);
        }
        
    }
 
    function openTrading() public onlyOwner {
        tradingOpen = true;
    }
 
    function manualswap() external {
        require( _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require( _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 tTransferAmount,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tTeam) =
            _getTValues(tAmount, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount) =
            _getRValues(tAmount, tTeam, currentRate);
        return (rAmount, rTransferAmount, tTransferAmount, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256
        )
    {
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tTeam);
        return (tTransferAmount, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rTeam);
        return (rAmount, rTransferAmount);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }


    function removeFromList(address _address) internal {
        uint index = findAddress(_address);
        if (index >= eligibleHolders.length) return;

        // Remove the address.
        for (uint i = index; i<eligibleHolders.length-1; i++){
            eligibleHolders[i] = eligibleHolders[i+1];
        }
        eligibleHolders.pop();
    }

    function findAddress(address _address) internal view returns(uint) {
        uint i = 0;
        while (eligibleHolders[i] != _address) {
            i++;
            if (i == eligibleHolders.length) break;
        }
        return i;
    }

    //Called once daily to keep track of holders that are eligible for tax rewards
    function updateTaxRewardList(address[] calldata holders) public returns( address[] memory) {
        require( _msgSender() == _taxrewardsAddress || _msgSender() == _marketingAddress);

        
        for(uint i=0; i < holders.length; i++) {

            bool isEligible = isEligibleForTaxRewards(holders[i]);

            if(isEligible && !markedForReward[holders[i]]) {
                markedForReward[holders[i]] = true;
                eligibleHolders.push(holders[i]);
            }

            if(!isEligible && markedForReward[holders[i]]) {
                markedForReward[holders[i]] = false;
                removeFromList(holders[i]);
            }

        }

        return eligibleHolders;

    }

    function totalEligibleForTaxReward() public view returns(uint256) {
        return eligibleHolders.length;
    }

    //Lookup a holder's current buy/sell tax rate
    function getUserCurrentBuySellTax(address user) public view returns(uint256 buy, uint256 sell) {

        if(dynamicTaxEnabled) {

            uint256 currentTime = block.timestamp;
            uint256 _buy;
            uint256 _sell;

            if(currentTime >= (userBuyTime[user] + 24 hours) && currentTime < (userBuyTime[user] + 48 hours)) {
                _buy = 2;
                _sell = 15;
                return (_buy, _sell);

            } else if(currentTime >= (userBuyTime[user] + 48 hours) && currentTime < (userBuyTime[user] + 72 hours) && thresholdReached[user]) {
                _buy = 1;
                _sell = 5;
                return (_buy, _sell);

            } else if(currentTime >= (userBuyTime[user] + 72 hours) && thresholdReached[user]) {
                _buy = 0;
                _sell = 0;
                return (_buy, _sell);
            } else {
                _buy = 5;
                _sell = 25;
                return (_buy, _sell);
            }

        } else {
            return(_taxFeeOnLaunchBuy, _taxFeeOnLaunchSell);
        }

    }


    function isEligibleForTaxRewards(address user) public view returns(bool) {
        if(block.timestamp >= (userBuyTime[user] + 72 hours) && thresholdReached[user]) {
            return true;
        }

        return false;
    }
 

    function enableDynamicTax() public onlyOwner {
        dynamicTaxEnabled = true;
    }

    //The threshold for eligiblity of full tax reduction may be adjusted in the future by the marketing wallet to keep the price fair and affordable. 
    function updateEligibleTaxThreshold(uint256 amountPrecision) public {
        // amountPrecision of 1 is 0.01%
        // amountPrecision of 10 is 0.1%
        // amountPrecision of 100 is 1%
        require( _msgSender() == _marketingAddress);
        require(amountPrecision <= 200, "Can only set to 2% or lower");

        eligibleTaxThreshold = (_tTotal * amountPrecision ) / 10000;
    }

    //Used for enabling or disabling transfers of tokens between ethereum wallets. Disabled by default. Does not impact buying/selling on Uniswap.
    function setTransfersBetweenAccountsAllowed(bool allowed) public {
        require( _msgSender() == _marketingAddress);
        accountTransfersAllowed = allowed;
    }

    //May be necessary to exempt future addresses for CEX listings
    function exemptFromBetweenAccountsTransferBan(address account) public {
        require( _msgSender() == _marketingAddress);
        _isExcludedFromTransferBan[account] = true;
    }

    //May be necessary to exempt future addresses for CEX listings
    function exemptFromFee(address account) public {
        require( _msgSender() == _marketingAddress);
        _isExcludedFromFee[account] = true;
    }
    
 
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public {
        require( _msgSender() == _marketingAddress);
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    function setMaxWalletSize(uint256 amountPercent) public onlyOwner {
        require(amountPercent>0);
        _maxWalletSize = (_tTotal * amountPercent ) / 100;
    }

    function removeMaxWalletLimit() external onlyOwner{
        _maxWalletSize = _tTotal;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkpointBuy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"eligibleHolders","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eligibleTaxThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableDynamicTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"exemptFromBetweenAccountsTransferBan","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"exemptFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserCurrentBuySellTax","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isEligibleForTaxRewards","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"markedForReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"allowed","type":"bool"}],"name":"setTransfersBetweenAccountsAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"thresholdReached","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEligibleForTaxReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPrecision","type":"uint256"}],"name":"updateEligibleTaxThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"holders","type":"address[]"}],"name":"updateTaxRewardList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userBuyTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c919062000f4c565b6000196200002b919062000fb3565b600655601e6007556023600855600854600955600954600a55733c395d6ad1e94db73f0b9833360de4fb21fccb15600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073180d959c1b26354f50924866d36fcc290d6b19a3600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507351ffeef5a6bb6a76fc80e07c47bd7f0760ec4f65600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073663a5c229c09b049e36dcc11a9b0d4a8eb9db214601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073552866bfe6caae60ad77e3babea18bf7112361fb601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260156101000a81548160ff0219169083151502179055506001601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff0219169083151502179055506200027b6064620002676002670de0b6b3a764000062000da560201b62001f961790919060201c565b62000e2860201b620020101790919060201c565b601355620002bc6103e8620002a86001670de0b6b3a764000062000da560201b62001f961790919060201c565b62000e2860201b620020101790919060201c565b601455620002fd6103e8620002e96002670de0b6b3a764000062000da560201b62001f961790919060201c565b62000e2860201b620020101790919060201c565b6018556000601b60006101000a81548160ff0219169083151502179055503480156200032857600080fd5b5060006200033b62000e7a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620003f062000e7a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004fa919062001058565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000562573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000588919062001058565b6040518363ffffffff1660e01b8152600401620005a79291906200109b565b6020604051808303816000875af1158015620005c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005ed919062001058565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200064362000e8260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c6000620009bc62000e8260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000d2f62000e7a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000060405162000d969190620010d9565b60405180910390a350620012cf565b600080830362000db9576000905062000e22565b6000828462000dc99190620010f6565b905082848262000dda919062001141565b1462000e1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e149062001200565b60405180910390fd5b809150505b92915050565b600062000e7283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000eab60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000ef5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000eec9190620012ab565b60405180910390fd5b506000838562000f06919062001141565b9050809150509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000f598262000f13565b915062000f668362000f13565b92508262000f795762000f7862000f1d565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000fc08262000f13565b915062000fcd8362000f13565b925082820390508181111562000fe85762000fe762000f84565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010208262000ff3565b9050919050565b620010328162001013565b81146200103e57600080fd5b50565b600081519050620010528162001027565b92915050565b60006020828403121562001071576200107062000fee565b5b6000620010818482850162001041565b91505092915050565b620010958162001013565b82525050565b6000604082019050620010b260008301856200108a565b620010c160208301846200108a565b9392505050565b620010d38162000f13565b82525050565b6000602082019050620010f06000830184620010c8565b92915050565b6000620011038262000f13565b9150620011108362000f13565b9250828202620011208162000f13565b915082820484148315176200113a576200113962000f84565b5b5092915050565b60006200114e8262000f13565b91506200115b8362000f13565b9250826200116e576200116d62000f1d565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011e860218362001179565b9150620011f5826200118a565b604082019050919050565b600060208201905081810360008301526200121b81620011d9565b9050919050565b600081519050919050565b60005b838110156200124d57808201518184015260208101905062001230565b60008484015250505050565b6000601f19601f8301169050919050565b6000620012778262001222565b62001283818562001179565b9350620012958185602086016200122d565b620012a08162001259565b840191505092915050565b60006020820190508181036000830152620012c781846200126a565b905092915050565b61523e80620012df6000396000f3fe6080604052600436106102335760003560e01c806370a082311161012e578063bfd79284116100ab578063dd62ed3e1161006f578063dd62ed3e1461084a578063ea1644d514610887578063f1b15c94146108b0578063f8cca599146108c7578063fc6162a9146109045761023a565b8063bfd7928414610765578063c3c8cd80146107a2578063c9567bf9146107b9578063d2107588146107d0578063d905c4551461080d5761023a565b806395d89b41116100f257806395d89b411461068057806398a5c315146106ab57806398e3bc36146106d4578063a9059cbb146106eb578063b440c68e146107285761023a565b806370a08231146105ab578063715018a6146105e857806382c3155f146105ff5780638da5cb5b1461062a5780638f9a55c0146106555761023a565b8063313ce567116101bc57806358e4b7311161018057806358e4b731146104f05780636594984214610519578063670b5ac0146105425780636b9990531461056b5780636fc3eaec146105945761023a565b8063313ce567146103f4578063484738c11461041f57806349bd5a5e1461044a5780635746e69f1461047557806358aab377146104b25761023a565b80631694505e116102035780631694505e1461030d57806318160ddd1461033857806323b872dd14610363578063255016b9146103a05780632fd689e3146103c95761023a565b8062b8cf2a1461023f57806306fdde0314610268578063095ea7b314610293578063112121b1146102d05761023a565b3661023a57005b600080fd5b34801561024b57600080fd5b50610266600480360381019061026191906142a0565b610941565b005b34801561027457600080fd5b5061027d610a6b565b60405161028a9190614368565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b591906143c0565b610aa8565b6040516102c7919061441b565b60405180910390f35b3480156102dc57600080fd5b506102f760048036038101906102f29190614436565b610ac6565b604051610304919061441b565b60405180910390f35b34801561031957600080fd5b50610322610ae6565b60405161032f91906144c2565b60405180910390f35b34801561034457600080fd5b5061034d610b0c565b60405161035a91906144ec565b60405180910390f35b34801561036f57600080fd5b5061038a60048036038101906103859190614507565b610b1c565b604051610397919061441b565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c29190614586565b610bf5565b005b3480156103d557600080fd5b506103de610c73565b6040516103eb91906144ec565b60405180910390f35b34801561040057600080fd5b50610409610c79565b60405161041691906145cf565b60405180910390f35b34801561042b57600080fd5b50610434610c82565b60405161044191906144ec565b60405180910390f35b34801561045657600080fd5b5061045f610c88565b60405161046c91906145f9565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190614436565b610cae565b6040516104a991906144ec565b60405180910390f35b3480156104be57600080fd5b506104d960048036038101906104d49190614436565b610cc6565b6040516104e7929190614614565b60405180910390f35b3480156104fc57600080fd5b5061051760048036038101906105129190614436565b610faa565b005b34801561052557600080fd5b50610540600480360381019061053b9190614436565b611066565b005b34801561054e57600080fd5b506105696004803603810190610564919061463d565b611122565b005b34801561057757600080fd5b50610592600480360381019061058d9190614436565b6111f1565b005b3480156105a057600080fd5b506105a96112e1565b005b3480156105b757600080fd5b506105d260048036038101906105cd9190614436565b611353565b6040516105df91906144ec565b60405180910390f35b3480156105f457600080fd5b506105fd6113a4565b005b34801561060b57600080fd5b506106146114f7565b60405161062191906144ec565b60405180910390f35b34801561063657600080fd5b5061063f611504565b60405161064c91906145f9565b60405180910390f35b34801561066157600080fd5b5061066a61152d565b60405161067791906144ec565b60405180910390f35b34801561068c57600080fd5b50610695611533565b6040516106a29190614368565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd919061463d565b611570565b005b3480156106e057600080fd5b506106e96115db565b005b3480156106f757600080fd5b50610712600480360381019061070d91906143c0565b611681565b60405161071f919061441b565b60405180910390f35b34801561073457600080fd5b5061074f600480360381019061074a91906146c5565b61169f565b60405161075c91906147d0565b60405180910390f35b34801561077157600080fd5b5061078c60048036038101906107879190614436565b611b07565b604051610799919061441b565b60405180910390f35b3480156107ae57600080fd5b506107b7611b27565b005b3480156107c557600080fd5b506107ce611ba1565b005b3480156107dc57600080fd5b506107f760048036038101906107f29190614436565b611c53565b604051610804919061441b565b60405180910390f35b34801561081957600080fd5b50610834600480360381019061082f9190614436565b611d13565b604051610841919061441b565b60405180910390f35b34801561085657600080fd5b50610871600480360381019061086c91906147f2565b611d33565b60405161087e91906144ec565b60405180910390f35b34801561089357600080fd5b506108ae60048036038101906108a9919061463d565b611dba565b005b3480156108bc57600080fd5b506108c5611e85565b005b3480156108d357600080fd5b506108ee60048036038101906108e9919061463d565b611f37565b6040516108fb91906145f9565b60405180910390f35b34801561091057600080fd5b5061092b60048036038101906109269190614436565b611f76565b604051610938919061441b565b60405180910390f35b61094961205a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd9061487e565b60405180910390fd5b60005b8151811015610a67576001600b60008484815181106109fb576109fa61489e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a5f906148fc565b9150506109d9565b5050565b60606040518060400160405280601281526020017f4a75737420486f6c642028e5a085e68c81290000000000000000000000000000815250905090565b6000610abc610ab561205a565b8484612062565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610b2984848461222b565b610bea84610b3561205a565b610be5856040518060600160405280602881526020016151e160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b9b61205a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134189092919063ffffffff16565b612062565b600190509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c3661205a565b73ffffffffffffffffffffffffffffffffffffffff1614610c5657600080fd5b80601b60006101000a81548160ff02191690831515021790555050565b60145481565b60006009905090565b60185481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60156020528060005260406000206000915090505481565b600080601260179054906101000a900460ff1615610f9a57600042905060008062015180601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d349190614944565b8310158015610d8f57506202a300601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d8c9190614944565b83105b15610daa5760029150600f9050818194509450505050610fa5565b6202a300601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610df89190614944565b8310158015610e5357506203f480601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e509190614944565b83105b8015610ea85750601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610ec3576001915060059050818194509450505050610fa5565b6203f480601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f119190614944565b8310158015610f695750601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610f84576000915060009050818194509450505050610fa5565b6005915060199050818194509450505050610fa5565b600754600854915091505b915091565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610feb61205a565b73ffffffffffffffffffffffffffffffffffffffff161461100b57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110a761205a565b73ffffffffffffffffffffffffffffffffffffffff16146110c757600080fd5b6001601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661116361205a565b73ffffffffffffffffffffffffffffffffffffffff161461118357600080fd5b60c88111156111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be906149c4565b60405180910390fd5b61271081670de0b6b3a76400006111de91906149e4565b6111e89190614a55565b60188190555050565b6111f961205a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d9061487e565b60405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661132261205a565b73ffffffffffffffffffffffffffffffffffffffff161461134257600080fd5b60004790506113508161347c565b50565b600061139d600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136b0565b9050919050565b6113ac61205a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309061487e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000601a80549050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b60606040518060400160405280600581526020017f4a484f4c44000000000000000000000000000000000000000000000000000000815250905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115b161205a565b73ffffffffffffffffffffffffffffffffffffffff16146115d157600080fd5b8060148190555050565b6115e361205a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611670576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116679061487e565b60405180910390fd5b670de0b6b3a7640000601381905550565b600061169561168e61205a565b848461222b565b6001905092915050565b6060600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116e261205a565b73ffffffffffffffffffffffffffffffffffffffff1614806117585750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661174061205a565b73ffffffffffffffffffffffffffffffffffffffff16145b61176157600080fd5b60005b83839050811015611a775760006117a18585848181106117875761178661489e565b5b905060200201602081019061179c9190614436565b611c53565b90508080156118215750601960008686858181106117c2576117c161489e565b5b90506020020160208101906117d79190614436565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119305760016019600087878681811061183f5761183e61489e565b5b90506020020160208101906118549190614436565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601a8585848181106118ba576118b961489e565b5b90506020020160208101906118cf9190614436565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b801580156119ae5750601960008686858181106119505761194f61489e565b5b90506020020160208101906119659190614436565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611a63576000601960008787868181106119cc576119cb61489e565b5b90506020020160208101906119e19190614436565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611a62858584818110611a4857611a4761489e565b5b9050602002016020810190611a5d9190614436565b61371e565b5b508080611a6f906148fc565b915050611764565b50601a805480602002602001604051908101604052809291908181526020018280548015611afa57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611ab0575b5050505050905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b6861205a565b73ffffffffffffffffffffffffffffffffffffffff1614611b8857600080fd5b6000611b9330611353565b9050611b9e81613863565b50565b611ba961205a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2d9061487e565b60405180910390fd5b6001601260146101000a81548160ff021916908315150217905550565b60006203f480601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca39190614944565b4210158015611cfb5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d095760019050611d0e565b600090505b919050565b60166020528060005260406000206000915054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611dc261205a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e469061487e565b60405180910390fd5b60008111611e5c57600080fd5b606481670de0b6b3a7640000611e7291906149e4565b611e7c9190614a55565b60138190555050565b611e8d61205a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f119061487e565b60405180910390fd5b6001601260176101000a81548160ff021916908315150217905550565b601a8181548110611f4757600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60196020528060005260406000206000915054906101000a900460ff1681565b6000808303611fa8576000905061200a565b60008284611fb691906149e4565b9050828482611fc59190614a55565b14612005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffc90614af8565b60405180910390fd5b809150505b92915050565b600061205283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613adc565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c890614b8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213790614c1c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161221e91906144ec565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361229a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229190614cae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230090614d40565b60405180910390fd5b6000811161234c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234390614dd2565b60405180910390fd5b612354611504565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156123c25750612392611504565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156128d257601260149054906101000a900460ff16612451576123e3611504565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244790614e64565b60405180910390fd5b5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124f55750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252b90614ef6565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125e1576013548161259684611353565b6125a09190614944565b106125e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d790614f88565b60405180910390fd5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561268d5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126e35750601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127395750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561275857601b60009054906101000a900460ff1661275757600080fd5b5b600061276330611353565b9050600060145482101590508080156127895750601260159054906101000a900460ff16155b80156127e35750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156127fb5750601260169054906101000a900460ff165b80156128515750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128a75750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128cf576128b582613863565b600047905060008111156128cd576128cc4761347c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129795750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612a2c5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612a2b5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612a3a5760009050613406565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612ae55750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612f9357601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612cdb57601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c215742601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060011515601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a905050505b60185482612c2e85611353565b612c389190614944565b10612cda5742601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b601260179054906101000a900460ff16612cfd57600754600981905550612f92565b600042905062015180601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d509190614944565b8110158015612dab57506202a300601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da89190614944565b81105b15612dbd576002600981905550612f90565b6202a300601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e0b9190614944565b8110158015612e6657506203f480601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e639190614944565b81105b8015612ebb5750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ecd576001600981905550612f8f565b6203f480601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f1b9190614944565b8110158015612f735750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612f85576000600981905550612f8e565b60056009819055505b5b5b505b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561303e5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613405576000429050601260179054906101000a900460ff1661306a576008546009819055506132f9565b62015180601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130b89190614944565b811015801561311357506202a300601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131109190614944565b81105b1561312557600f6009819055506132f8565b6202a300601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131739190614944565b81101580156131ce57506203f480601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131cb9190614944565b81105b80156132235750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132355760056009819055506132f7565b6203f480601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132839190614944565b81101580156132db5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132ed5760006009819055506132f6565b60196009819055505b5b5b5b80601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001515601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a905050506018548361339a87611353565b6133a49190614fa8565b1015613403576000601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b505b5b61341284848484613b3f565b50505050565b6000838311158290613460576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134579190614368565b60405180910390fd5b506000838561346f9190614fa8565b9050809150509392505050565b601260179054906101000a900460ff161561364357600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6134f460056134e6600386611f9690919063ffffffff16565b61201090919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561351f573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6135836005613575600186611f9690919063ffffffff16565b61201090919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156135ae573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6136126005613604600186611f9690919063ffffffff16565b61201090919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561363d573d6000803e3d6000fd5b506136ad565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156136ab573d6000803e3d6000fd5b505b50565b60006006548211156136f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136ee9061504e565b60405180910390fd5b6000613701613b6c565b9050613716818461201090919063ffffffff16565b915050919050565b600061372982613b97565b9050601a80549050811061373d5750613860565b60008190505b6001601a805490506137559190614fa8565b81101561381657601a60018261376b9190614944565b8154811061377c5761377b61489e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a82815481106137bb576137ba61489e565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808061380e906148fc565b915050613743565b50601a8054806138295761382861506e565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055505b50565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561389b5761389a6140ff565b5b6040519080825280602002602001820160405280156138c95781602001602082028036833780820191505090505b50905030816000815181106138e1576138e061489e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139ac91906150b2565b816001815181106139c0576139bf61489e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613a2730600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612062565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a8b95949392919061511a565b600060405180830381600087803b158015613aa557600080fd5b505af1158015613ab9573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b60008083118290613b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b1a9190614368565b60405180910390fd5b5060008385613b329190614a55565b9050809150509392505050565b80613b4d57613b4c613c34565b5b613b58848484613c53565b80613b6657613b65613e0b565b5b50505050565b6000806000613b79613e16565b91509150613b90818361201090919063ffffffff16565b9250505090565b600080600090505b8273ffffffffffffffffffffffffffffffffffffffff16601a8281548110613bca57613bc961489e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613c2b578080613c1b906148fc565b915050601a805490508103613b9f575b80915050919050565b60006009540315613c5157600954600a8190555060006009819055505b565b600080600080613c6285613e75565b9350935093509350613cbc84600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ec490919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613d5183600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f0e90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613d9d81613f6c565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613dfa91906144ec565b60405180910390a350505050505050565b600a54600981905550565b600080600060065490506000670de0b6b3a76400009050613e4a670de0b6b3a764000060065461201090919063ffffffff16565b821015613e6857600654670de0b6b3a7640000935093505050613e71565b81819350935050505b9091565b600080600080600080613e8a87600954614029565b915091506000613e98613b6c565b9050600080613ea88a858561407c565b9150915081818686985098509850985050505050509193509193565b6000613f0683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613418565b905092915050565b6000808284613f1d9190614944565b905083811015613f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f59906151c0565b60405180910390fd5b8091505092915050565b6000613f76613b6c565b90506000613f8d8284611f9690919063ffffffff16565b9050613fe181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f0e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600080600061405460646140468688611f9690919063ffffffff16565b61201090919063ffffffff16565b9050600061406b8287613ec490919063ffffffff16565b905080829350935050509250929050565b60008060006140948487611f9690919063ffffffff16565b905060006140ab8587611f9690919063ffffffff16565b905060006140c28284613ec490919063ffffffff16565b9050828194509450505050935093915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614137826140ee565b810181811067ffffffffffffffff82111715614156576141556140ff565b5b80604052505050565b60006141696140d5565b9050614175828261412e565b919050565b600067ffffffffffffffff821115614195576141946140ff565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006141d6826141ab565b9050919050565b6141e6816141cb565b81146141f157600080fd5b50565b600081359050614203816141dd565b92915050565b600061421c6142178461417a565b61415f565b9050808382526020820190506020840283018581111561423f5761423e6141a6565b5b835b81811015614268578061425488826141f4565b845260208401935050602081019050614241565b5050509392505050565b600082601f830112614287576142866140e9565b5b8135614297848260208601614209565b91505092915050565b6000602082840312156142b6576142b56140df565b5b600082013567ffffffffffffffff8111156142d4576142d36140e4565b5b6142e084828501614272565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614323578082015181840152602081019050614308565b60008484015250505050565b600061433a826142e9565b61434481856142f4565b9350614354818560208601614305565b61435d816140ee565b840191505092915050565b60006020820190508181036000830152614382818461432f565b905092915050565b6000819050919050565b61439d8161438a565b81146143a857600080fd5b50565b6000813590506143ba81614394565b92915050565b600080604083850312156143d7576143d66140df565b5b60006143e5858286016141f4565b92505060206143f6858286016143ab565b9150509250929050565b60008115159050919050565b61441581614400565b82525050565b6000602082019050614430600083018461440c565b92915050565b60006020828403121561444c5761444b6140df565b5b600061445a848285016141f4565b91505092915050565b6000819050919050565b600061448861448361447e846141ab565b614463565b6141ab565b9050919050565b600061449a8261446d565b9050919050565b60006144ac8261448f565b9050919050565b6144bc816144a1565b82525050565b60006020820190506144d760008301846144b3565b92915050565b6144e68161438a565b82525050565b600060208201905061450160008301846144dd565b92915050565b6000806000606084860312156145205761451f6140df565b5b600061452e868287016141f4565b935050602061453f868287016141f4565b9250506040614550868287016143ab565b9150509250925092565b61456381614400565b811461456e57600080fd5b50565b6000813590506145808161455a565b92915050565b60006020828403121561459c5761459b6140df565b5b60006145aa84828501614571565b91505092915050565b600060ff82169050919050565b6145c9816145b3565b82525050565b60006020820190506145e460008301846145c0565b92915050565b6145f3816141cb565b82525050565b600060208201905061460e60008301846145ea565b92915050565b600060408201905061462960008301856144dd565b61463660208301846144dd565b9392505050565b600060208284031215614653576146526140df565b5b6000614661848285016143ab565b91505092915050565b600080fd5b60008083601f840112614685576146846140e9565b5b8235905067ffffffffffffffff8111156146a2576146a161466a565b5b6020830191508360208202830111156146be576146bd6141a6565b5b9250929050565b600080602083850312156146dc576146db6140df565b5b600083013567ffffffffffffffff8111156146fa576146f96140e4565b5b6147068582860161466f565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614747816141cb565b82525050565b6000614759838361473e565b60208301905092915050565b6000602082019050919050565b600061477d82614712565b614787818561471d565b93506147928361472e565b8060005b838110156147c35781516147aa888261474d565b97506147b583614765565b925050600181019050614796565b5085935050505092915050565b600060208201905081810360008301526147ea8184614772565b905092915050565b60008060408385031215614809576148086140df565b5b6000614817858286016141f4565b9250506020614828858286016141f4565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006148686020836142f4565b915061487382614832565b602082019050919050565b600060208201905081810360008301526148978161485b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006149078261438a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614939576149386148cd565b5b600182019050919050565b600061494f8261438a565b915061495a8361438a565b9250828201905080821115614972576149716148cd565b5b92915050565b7f43616e206f6e6c792073657420746f203225206f72206c6f7765720000000000600082015250565b60006149ae601b836142f4565b91506149b982614978565b602082019050919050565b600060208201905081810360008301526149dd816149a1565b9050919050565b60006149ef8261438a565b91506149fa8361438a565b9250828202614a088161438a565b91508282048414831517614a1f57614a1e6148cd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a608261438a565b9150614a6b8361438a565b925082614a7b57614a7a614a26565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614ae26021836142f4565b9150614aed82614a86565b604082019050919050565b60006020820190508181036000830152614b1181614ad5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614b746024836142f4565b9150614b7f82614b18565b604082019050919050565b60006020820190508181036000830152614ba381614b67565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614c066022836142f4565b9150614c1182614baa565b604082019050919050565b60006020820190508181036000830152614c3581614bf9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614c986025836142f4565b9150614ca382614c3c565b604082019050919050565b60006020820190508181036000830152614cc781614c8b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614d2a6023836142f4565b9150614d3582614cce565b604082019050919050565b60006020820190508181036000830152614d5981614d1d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614dbc6029836142f4565b9150614dc782614d60565b604082019050919050565b60006020820190508181036000830152614deb81614daf565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000614e4e603f836142f4565b9150614e5982614df2565b604082019050919050565b60006020820190508181036000830152614e7d81614e41565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000614ee06023836142f4565b9150614eeb82614e84565b604082019050919050565b60006020820190508181036000830152614f0f81614ed3565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000614f726023836142f4565b9150614f7d82614f16565b604082019050919050565b60006020820190508181036000830152614fa181614f65565b9050919050565b6000614fb38261438a565b9150614fbe8361438a565b9250828203905081811115614fd657614fd56148cd565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000615038602a836142f4565b915061504382614fdc565b604082019050919050565b600060208201905081810360008301526150678161502b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000815190506150ac816141dd565b92915050565b6000602082840312156150c8576150c76140df565b5b60006150d68482850161509d565b91505092915050565b6000819050919050565b60006151046150ff6150fa846150df565b614463565b61438a565b9050919050565b615114816150e9565b82525050565b600060a08201905061512f60008301886144dd565b61513c602083018761510b565b818103604083015261514e8186614772565b905061515d60608301856145ea565b61516a60808301846144dd565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006151aa601b836142f4565b91506151b582615174565b602082019050919050565b600060208201905081810360008301526151d98161519d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203876ff3ceb6745ab265a8af7d3143fe3f64a038dded01edd29ca0aea84cda24464736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102335760003560e01c806370a082311161012e578063bfd79284116100ab578063dd62ed3e1161006f578063dd62ed3e1461084a578063ea1644d514610887578063f1b15c94146108b0578063f8cca599146108c7578063fc6162a9146109045761023a565b8063bfd7928414610765578063c3c8cd80146107a2578063c9567bf9146107b9578063d2107588146107d0578063d905c4551461080d5761023a565b806395d89b41116100f257806395d89b411461068057806398a5c315146106ab57806398e3bc36146106d4578063a9059cbb146106eb578063b440c68e146107285761023a565b806370a08231146105ab578063715018a6146105e857806382c3155f146105ff5780638da5cb5b1461062a5780638f9a55c0146106555761023a565b8063313ce567116101bc57806358e4b7311161018057806358e4b731146104f05780636594984214610519578063670b5ac0146105425780636b9990531461056b5780636fc3eaec146105945761023a565b8063313ce567146103f4578063484738c11461041f57806349bd5a5e1461044a5780635746e69f1461047557806358aab377146104b25761023a565b80631694505e116102035780631694505e1461030d57806318160ddd1461033857806323b872dd14610363578063255016b9146103a05780632fd689e3146103c95761023a565b8062b8cf2a1461023f57806306fdde0314610268578063095ea7b314610293578063112121b1146102d05761023a565b3661023a57005b600080fd5b34801561024b57600080fd5b50610266600480360381019061026191906142a0565b610941565b005b34801561027457600080fd5b5061027d610a6b565b60405161028a9190614368565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b591906143c0565b610aa8565b6040516102c7919061441b565b60405180910390f35b3480156102dc57600080fd5b506102f760048036038101906102f29190614436565b610ac6565b604051610304919061441b565b60405180910390f35b34801561031957600080fd5b50610322610ae6565b60405161032f91906144c2565b60405180910390f35b34801561034457600080fd5b5061034d610b0c565b60405161035a91906144ec565b60405180910390f35b34801561036f57600080fd5b5061038a60048036038101906103859190614507565b610b1c565b604051610397919061441b565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c29190614586565b610bf5565b005b3480156103d557600080fd5b506103de610c73565b6040516103eb91906144ec565b60405180910390f35b34801561040057600080fd5b50610409610c79565b60405161041691906145cf565b60405180910390f35b34801561042b57600080fd5b50610434610c82565b60405161044191906144ec565b60405180910390f35b34801561045657600080fd5b5061045f610c88565b60405161046c91906145f9565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190614436565b610cae565b6040516104a991906144ec565b60405180910390f35b3480156104be57600080fd5b506104d960048036038101906104d49190614436565b610cc6565b6040516104e7929190614614565b60405180910390f35b3480156104fc57600080fd5b5061051760048036038101906105129190614436565b610faa565b005b34801561052557600080fd5b50610540600480360381019061053b9190614436565b611066565b005b34801561054e57600080fd5b506105696004803603810190610564919061463d565b611122565b005b34801561057757600080fd5b50610592600480360381019061058d9190614436565b6111f1565b005b3480156105a057600080fd5b506105a96112e1565b005b3480156105b757600080fd5b506105d260048036038101906105cd9190614436565b611353565b6040516105df91906144ec565b60405180910390f35b3480156105f457600080fd5b506105fd6113a4565b005b34801561060b57600080fd5b506106146114f7565b60405161062191906144ec565b60405180910390f35b34801561063657600080fd5b5061063f611504565b60405161064c91906145f9565b60405180910390f35b34801561066157600080fd5b5061066a61152d565b60405161067791906144ec565b60405180910390f35b34801561068c57600080fd5b50610695611533565b6040516106a29190614368565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd919061463d565b611570565b005b3480156106e057600080fd5b506106e96115db565b005b3480156106f757600080fd5b50610712600480360381019061070d91906143c0565b611681565b60405161071f919061441b565b60405180910390f35b34801561073457600080fd5b5061074f600480360381019061074a91906146c5565b61169f565b60405161075c91906147d0565b60405180910390f35b34801561077157600080fd5b5061078c60048036038101906107879190614436565b611b07565b604051610799919061441b565b60405180910390f35b3480156107ae57600080fd5b506107b7611b27565b005b3480156107c557600080fd5b506107ce611ba1565b005b3480156107dc57600080fd5b506107f760048036038101906107f29190614436565b611c53565b604051610804919061441b565b60405180910390f35b34801561081957600080fd5b50610834600480360381019061082f9190614436565b611d13565b604051610841919061441b565b60405180910390f35b34801561085657600080fd5b50610871600480360381019061086c91906147f2565b611d33565b60405161087e91906144ec565b60405180910390f35b34801561089357600080fd5b506108ae60048036038101906108a9919061463d565b611dba565b005b3480156108bc57600080fd5b506108c5611e85565b005b3480156108d357600080fd5b506108ee60048036038101906108e9919061463d565b611f37565b6040516108fb91906145f9565b60405180910390f35b34801561091057600080fd5b5061092b60048036038101906109269190614436565b611f76565b604051610938919061441b565b60405180910390f35b61094961205a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd9061487e565b60405180910390fd5b60005b8151811015610a67576001600b60008484815181106109fb576109fa61489e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a5f906148fc565b9150506109d9565b5050565b60606040518060400160405280601281526020017f4a75737420486f6c642028e5a085e68c81290000000000000000000000000000815250905090565b6000610abc610ab561205a565b8484612062565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610b2984848461222b565b610bea84610b3561205a565b610be5856040518060600160405280602881526020016151e160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b9b61205a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134189092919063ffffffff16565b612062565b600190509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c3661205a565b73ffffffffffffffffffffffffffffffffffffffff1614610c5657600080fd5b80601b60006101000a81548160ff02191690831515021790555050565b60145481565b60006009905090565b60185481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60156020528060005260406000206000915090505481565b600080601260179054906101000a900460ff1615610f9a57600042905060008062015180601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d349190614944565b8310158015610d8f57506202a300601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d8c9190614944565b83105b15610daa5760029150600f9050818194509450505050610fa5565b6202a300601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610df89190614944565b8310158015610e5357506203f480601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e509190614944565b83105b8015610ea85750601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610ec3576001915060059050818194509450505050610fa5565b6203f480601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f119190614944565b8310158015610f695750601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610f84576000915060009050818194509450505050610fa5565b6005915060199050818194509450505050610fa5565b600754600854915091505b915091565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610feb61205a565b73ffffffffffffffffffffffffffffffffffffffff161461100b57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110a761205a565b73ffffffffffffffffffffffffffffffffffffffff16146110c757600080fd5b6001601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661116361205a565b73ffffffffffffffffffffffffffffffffffffffff161461118357600080fd5b60c88111156111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be906149c4565b60405180910390fd5b61271081670de0b6b3a76400006111de91906149e4565b6111e89190614a55565b60188190555050565b6111f961205a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d9061487e565b60405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661132261205a565b73ffffffffffffffffffffffffffffffffffffffff161461134257600080fd5b60004790506113508161347c565b50565b600061139d600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136b0565b9050919050565b6113ac61205a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309061487e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000601a80549050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b60606040518060400160405280600581526020017f4a484f4c44000000000000000000000000000000000000000000000000000000815250905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115b161205a565b73ffffffffffffffffffffffffffffffffffffffff16146115d157600080fd5b8060148190555050565b6115e361205a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611670576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116679061487e565b60405180910390fd5b670de0b6b3a7640000601381905550565b600061169561168e61205a565b848461222b565b6001905092915050565b6060600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116e261205a565b73ffffffffffffffffffffffffffffffffffffffff1614806117585750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661174061205a565b73ffffffffffffffffffffffffffffffffffffffff16145b61176157600080fd5b60005b83839050811015611a775760006117a18585848181106117875761178661489e565b5b905060200201602081019061179c9190614436565b611c53565b90508080156118215750601960008686858181106117c2576117c161489e565b5b90506020020160208101906117d79190614436565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119305760016019600087878681811061183f5761183e61489e565b5b90506020020160208101906118549190614436565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601a8585848181106118ba576118b961489e565b5b90506020020160208101906118cf9190614436565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b801580156119ae5750601960008686858181106119505761194f61489e565b5b90506020020160208101906119659190614436565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611a63576000601960008787868181106119cc576119cb61489e565b5b90506020020160208101906119e19190614436565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611a62858584818110611a4857611a4761489e565b5b9050602002016020810190611a5d9190614436565b61371e565b5b508080611a6f906148fc565b915050611764565b50601a805480602002602001604051908101604052809291908181526020018280548015611afa57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611ab0575b5050505050905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b6861205a565b73ffffffffffffffffffffffffffffffffffffffff1614611b8857600080fd5b6000611b9330611353565b9050611b9e81613863565b50565b611ba961205a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2d9061487e565b60405180910390fd5b6001601260146101000a81548160ff021916908315150217905550565b60006203f480601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca39190614944565b4210158015611cfb5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d095760019050611d0e565b600090505b919050565b60166020528060005260406000206000915054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611dc261205a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e469061487e565b60405180910390fd5b60008111611e5c57600080fd5b606481670de0b6b3a7640000611e7291906149e4565b611e7c9190614a55565b60138190555050565b611e8d61205a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f119061487e565b60405180910390fd5b6001601260176101000a81548160ff021916908315150217905550565b601a8181548110611f4757600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60196020528060005260406000206000915054906101000a900460ff1681565b6000808303611fa8576000905061200a565b60008284611fb691906149e4565b9050828482611fc59190614a55565b14612005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffc90614af8565b60405180910390fd5b809150505b92915050565b600061205283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613adc565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c890614b8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213790614c1c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161221e91906144ec565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361229a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229190614cae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230090614d40565b60405180910390fd5b6000811161234c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234390614dd2565b60405180910390fd5b612354611504565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156123c25750612392611504565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156128d257601260149054906101000a900460ff16612451576123e3611504565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244790614e64565b60405180910390fd5b5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124f55750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252b90614ef6565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125e1576013548161259684611353565b6125a09190614944565b106125e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d790614f88565b60405180910390fd5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561268d5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126e35750601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127395750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561275857601b60009054906101000a900460ff1661275757600080fd5b5b600061276330611353565b9050600060145482101590508080156127895750601260159054906101000a900460ff16155b80156127e35750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156127fb5750601260169054906101000a900460ff165b80156128515750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128a75750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128cf576128b582613863565b600047905060008111156128cd576128cc4761347c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129795750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612a2c5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612a2b5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612a3a5760009050613406565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612ae55750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612f9357601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612cdb57601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c215742601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060011515601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a905050505b60185482612c2e85611353565b612c389190614944565b10612cda5742601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b601260179054906101000a900460ff16612cfd57600754600981905550612f92565b600042905062015180601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d509190614944565b8110158015612dab57506202a300601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da89190614944565b81105b15612dbd576002600981905550612f90565b6202a300601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e0b9190614944565b8110158015612e6657506203f480601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e639190614944565b81105b8015612ebb5750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ecd576001600981905550612f8f565b6203f480601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f1b9190614944565b8110158015612f735750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612f85576000600981905550612f8e565b60056009819055505b5b5b505b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561303e5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613405576000429050601260179054906101000a900460ff1661306a576008546009819055506132f9565b62015180601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130b89190614944565b811015801561311357506202a300601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131109190614944565b81105b1561312557600f6009819055506132f8565b6202a300601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131739190614944565b81101580156131ce57506203f480601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131cb9190614944565b81105b80156132235750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132355760056009819055506132f7565b6203f480601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132839190614944565b81101580156132db5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132ed5760006009819055506132f6565b60196009819055505b5b5b5b80601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001515601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a905050506018548361339a87611353565b6133a49190614fa8565b1015613403576000601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b505b5b61341284848484613b3f565b50505050565b6000838311158290613460576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134579190614368565b60405180910390fd5b506000838561346f9190614fa8565b9050809150509392505050565b601260179054906101000a900460ff161561364357600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6134f460056134e6600386611f9690919063ffffffff16565b61201090919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561351f573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6135836005613575600186611f9690919063ffffffff16565b61201090919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156135ae573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6136126005613604600186611f9690919063ffffffff16565b61201090919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561363d573d6000803e3d6000fd5b506136ad565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156136ab573d6000803e3d6000fd5b505b50565b60006006548211156136f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136ee9061504e565b60405180910390fd5b6000613701613b6c565b9050613716818461201090919063ffffffff16565b915050919050565b600061372982613b97565b9050601a80549050811061373d5750613860565b60008190505b6001601a805490506137559190614fa8565b81101561381657601a60018261376b9190614944565b8154811061377c5761377b61489e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a82815481106137bb576137ba61489e565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808061380e906148fc565b915050613743565b50601a8054806138295761382861506e565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055505b50565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561389b5761389a6140ff565b5b6040519080825280602002602001820160405280156138c95781602001602082028036833780820191505090505b50905030816000815181106138e1576138e061489e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139ac91906150b2565b816001815181106139c0576139bf61489e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613a2730600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612062565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a8b95949392919061511a565b600060405180830381600087803b158015613aa557600080fd5b505af1158015613ab9573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b60008083118290613b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b1a9190614368565b60405180910390fd5b5060008385613b329190614a55565b9050809150509392505050565b80613b4d57613b4c613c34565b5b613b58848484613c53565b80613b6657613b65613e0b565b5b50505050565b6000806000613b79613e16565b91509150613b90818361201090919063ffffffff16565b9250505090565b600080600090505b8273ffffffffffffffffffffffffffffffffffffffff16601a8281548110613bca57613bc961489e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613c2b578080613c1b906148fc565b915050601a805490508103613b9f575b80915050919050565b60006009540315613c5157600954600a8190555060006009819055505b565b600080600080613c6285613e75565b9350935093509350613cbc84600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ec490919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613d5183600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f0e90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613d9d81613f6c565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613dfa91906144ec565b60405180910390a350505050505050565b600a54600981905550565b600080600060065490506000670de0b6b3a76400009050613e4a670de0b6b3a764000060065461201090919063ffffffff16565b821015613e6857600654670de0b6b3a7640000935093505050613e71565b81819350935050505b9091565b600080600080600080613e8a87600954614029565b915091506000613e98613b6c565b9050600080613ea88a858561407c565b9150915081818686985098509850985050505050509193509193565b6000613f0683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613418565b905092915050565b6000808284613f1d9190614944565b905083811015613f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f59906151c0565b60405180910390fd5b8091505092915050565b6000613f76613b6c565b90506000613f8d8284611f9690919063ffffffff16565b9050613fe181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f0e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600080600061405460646140468688611f9690919063ffffffff16565b61201090919063ffffffff16565b9050600061406b8287613ec490919063ffffffff16565b905080829350935050509250929050565b60008060006140948487611f9690919063ffffffff16565b905060006140ab8587611f9690919063ffffffff16565b905060006140c28284613ec490919063ffffffff16565b9050828194509450505050935093915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614137826140ee565b810181811067ffffffffffffffff82111715614156576141556140ff565b5b80604052505050565b60006141696140d5565b9050614175828261412e565b919050565b600067ffffffffffffffff821115614195576141946140ff565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006141d6826141ab565b9050919050565b6141e6816141cb565b81146141f157600080fd5b50565b600081359050614203816141dd565b92915050565b600061421c6142178461417a565b61415f565b9050808382526020820190506020840283018581111561423f5761423e6141a6565b5b835b81811015614268578061425488826141f4565b845260208401935050602081019050614241565b5050509392505050565b600082601f830112614287576142866140e9565b5b8135614297848260208601614209565b91505092915050565b6000602082840312156142b6576142b56140df565b5b600082013567ffffffffffffffff8111156142d4576142d36140e4565b5b6142e084828501614272565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614323578082015181840152602081019050614308565b60008484015250505050565b600061433a826142e9565b61434481856142f4565b9350614354818560208601614305565b61435d816140ee565b840191505092915050565b60006020820190508181036000830152614382818461432f565b905092915050565b6000819050919050565b61439d8161438a565b81146143a857600080fd5b50565b6000813590506143ba81614394565b92915050565b600080604083850312156143d7576143d66140df565b5b60006143e5858286016141f4565b92505060206143f6858286016143ab565b9150509250929050565b60008115159050919050565b61441581614400565b82525050565b6000602082019050614430600083018461440c565b92915050565b60006020828403121561444c5761444b6140df565b5b600061445a848285016141f4565b91505092915050565b6000819050919050565b600061448861448361447e846141ab565b614463565b6141ab565b9050919050565b600061449a8261446d565b9050919050565b60006144ac8261448f565b9050919050565b6144bc816144a1565b82525050565b60006020820190506144d760008301846144b3565b92915050565b6144e68161438a565b82525050565b600060208201905061450160008301846144dd565b92915050565b6000806000606084860312156145205761451f6140df565b5b600061452e868287016141f4565b935050602061453f868287016141f4565b9250506040614550868287016143ab565b9150509250925092565b61456381614400565b811461456e57600080fd5b50565b6000813590506145808161455a565b92915050565b60006020828403121561459c5761459b6140df565b5b60006145aa84828501614571565b91505092915050565b600060ff82169050919050565b6145c9816145b3565b82525050565b60006020820190506145e460008301846145c0565b92915050565b6145f3816141cb565b82525050565b600060208201905061460e60008301846145ea565b92915050565b600060408201905061462960008301856144dd565b61463660208301846144dd565b9392505050565b600060208284031215614653576146526140df565b5b6000614661848285016143ab565b91505092915050565b600080fd5b60008083601f840112614685576146846140e9565b5b8235905067ffffffffffffffff8111156146a2576146a161466a565b5b6020830191508360208202830111156146be576146bd6141a6565b5b9250929050565b600080602083850312156146dc576146db6140df565b5b600083013567ffffffffffffffff8111156146fa576146f96140e4565b5b6147068582860161466f565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614747816141cb565b82525050565b6000614759838361473e565b60208301905092915050565b6000602082019050919050565b600061477d82614712565b614787818561471d565b93506147928361472e565b8060005b838110156147c35781516147aa888261474d565b97506147b583614765565b925050600181019050614796565b5085935050505092915050565b600060208201905081810360008301526147ea8184614772565b905092915050565b60008060408385031215614809576148086140df565b5b6000614817858286016141f4565b9250506020614828858286016141f4565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006148686020836142f4565b915061487382614832565b602082019050919050565b600060208201905081810360008301526148978161485b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006149078261438a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614939576149386148cd565b5b600182019050919050565b600061494f8261438a565b915061495a8361438a565b9250828201905080821115614972576149716148cd565b5b92915050565b7f43616e206f6e6c792073657420746f203225206f72206c6f7765720000000000600082015250565b60006149ae601b836142f4565b91506149b982614978565b602082019050919050565b600060208201905081810360008301526149dd816149a1565b9050919050565b60006149ef8261438a565b91506149fa8361438a565b9250828202614a088161438a565b91508282048414831517614a1f57614a1e6148cd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a608261438a565b9150614a6b8361438a565b925082614a7b57614a7a614a26565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614ae26021836142f4565b9150614aed82614a86565b604082019050919050565b60006020820190508181036000830152614b1181614ad5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614b746024836142f4565b9150614b7f82614b18565b604082019050919050565b60006020820190508181036000830152614ba381614b67565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614c066022836142f4565b9150614c1182614baa565b604082019050919050565b60006020820190508181036000830152614c3581614bf9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614c986025836142f4565b9150614ca382614c3c565b604082019050919050565b60006020820190508181036000830152614cc781614c8b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614d2a6023836142f4565b9150614d3582614cce565b604082019050919050565b60006020820190508181036000830152614d5981614d1d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614dbc6029836142f4565b9150614dc782614d60565b604082019050919050565b60006020820190508181036000830152614deb81614daf565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000614e4e603f836142f4565b9150614e5982614df2565b604082019050919050565b60006020820190508181036000830152614e7d81614e41565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000614ee06023836142f4565b9150614eeb82614e84565b604082019050919050565b60006020820190508181036000830152614f0f81614ed3565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000614f726023836142f4565b9150614f7d82614f16565b604082019050919050565b60006020820190508181036000830152614fa181614f65565b9050919050565b6000614fb38261438a565b9150614fbe8361438a565b9250828203905081811115614fd657614fd56148cd565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000615038602a836142f4565b915061504382614fdc565b604082019050919050565b600060208201905081810360008301526150678161502b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000815190506150ac816141dd565b92915050565b6000602082840312156150c8576150c76140df565b5b60006150d68482850161509d565b91505092915050565b6000819050919050565b60006151046150ff6150fa846150df565b614463565b61438a565b9050919050565b615114816150e9565b82525050565b600060a08201905061512f60008301886144dd565b61513c602083018761510b565b818103604083015261514e8186614772565b905061515d60608301856145ea565b61516a60808301846144dd565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006151aa601b836142f4565b91506151b582615174565b602082019050919050565b600060208201905081810360008301526151d98161519d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203876ff3ceb6745ab265a8af7d3143fe3f64a038dded01edd29ca0aea84cda24464736f6c63430008110033

Deployed Bytecode Sourcemap

5761:20310:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18012:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9505:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10437:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7656:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7011:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9785:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10639:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24925:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7474:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9693:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7709:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7059:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7546:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22746:1120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;25433:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25172:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24369:400;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18190:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17806:197;;;;;;;;;;;;;:::i;:::-;;9889:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3485:148;;;;;;;;;;;;;:::i;:::-;;22573:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3269:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7411:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9597:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25602:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25971:93;;;;;;;;;;;;;:::i;:::-;;10036:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21831:734;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6660:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17599:198;;;;;;;;;;;;;:::i;:::-;;17513:77;;;;;;;;;;;;;:::i;:::-;;23876:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7600:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10244:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25794:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24121:88;;;;;;;;;;;;;:::i;:::-;;7837:32;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7780:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18012:169;3407:12;:10;:12::i;:::-;3397:22;;:6;;;;;;;;;;:22;;;3389:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18088:9:::1;18083:91;18107:5;:12;18103:1;:16;18083:91;;;18158:4;18141;:14;18146:5;18152:1;18146:8;;;;;;;;:::i;:::-;;;;;;;;18141:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;18121:3;;;;;:::i;:::-;;;;18083:91;;;;18012:169:::0;:::o;9505:83::-;9542:13;9575:5;;;;;;;;;;;;;;;;;9568:12;;9505:83;:::o;10437:193::-;10539:4;10561:39;10570:12;:10;:12::i;:::-;10584:7;10593:6;10561:8;:39::i;:::-;10618:4;10611:11;;10437:193;;;;:::o;7656:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;7011:41::-;;;;;;;;;;;;;:::o;9785:95::-;9838:7;6332:21;9858:14;;9785:95;:::o;10639:446::-;10771:4;10788:36;10798:6;10806:9;10817:6;10788:9;:36::i;:::-;10835:220;10858:6;10879:12;:10;:12::i;:::-;10906:138;10962:6;10906:138;;;;;;;;;;;;;;;;;:11;:19;10918:6;10906:19;;;;;;;;;;;;;;;:33;10926:12;:10;:12::i;:::-;10906:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;10835:8;:220::i;:::-;11073:4;11066:11;;10639:446;;;;;:::o;24925:171::-;25026:17;;;;;;;;;;;25010:33;;:12;:10;:12::i;:::-;:33;;;25001:43;;;;;;25081:7;25055:23;;:33;;;;;;;;;;;;;;;;;;24925:171;:::o;7474:61::-;;;;:::o;9693:83::-;9734:5;6003:1;9752:16;;9693:83;:::o;7709:62::-;;;;:::o;7059:28::-;;;;;;;;;;;;;:::o;7546:47::-;;;;;;;;;;;;;;;;;:::o;22746:1120::-;22814:11;22827:12;22857:17;;;;;;;;;;;22854:1003;;;22893:19;22915:15;22893:37;;22945:12;22972:13;23041:8;23021:11;:17;23033:4;23021:17;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;23005:11;:45;;:93;;;;;23089:8;23069:11;:17;23081:4;23069:17;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;23054:11;:44;23005:93;23002:762;;;23126:1;23119:8;;23154:2;23146:10;;23183:4;23189:5;23175:20;;;;;;;;;23002:762;23258:8;23238:11;:17;23250:4;23238:17;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;23222:11;:45;;:93;;;;;23306:8;23286:11;:17;23298:4;23286:17;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;23271:11;:44;23222:93;:119;;;;;23319:16;:22;23336:4;23319:22;;;;;;;;;;;;;;;;;;;;;;;;;23222:119;23219:545;;;23369:1;23362:8;;23397:1;23389:9;;23425:4;23431:5;23417:20;;;;;;;;;23219:545;23500:8;23480:11;:17;23492:4;23480:17;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;23464:11;:45;;:71;;;;;23513:16;:22;23530:4;23513:22;;;;;;;;;;;;;;;;;;;;;;;;;23464:71;23461:303;;;23563:1;23556:8;;23591:1;23583:9;;23619:4;23625:5;23611:20;;;;;;;;;23461:303;23679:1;23672:8;;23707:2;23699:10;;23736:4;23742:5;23728:20;;;;;;;;;22854:1003;23805:18;;23825:19;;23798:47;;;;22746:1120;;;;:::o;25433:154::-;25516:17;;;;;;;;;;;25500:33;;:12;:10;:12::i;:::-;:33;;;25491:43;;;;;;25575:4;25545:18;:27;25564:7;25545:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;25433:154;:::o;25172:185::-;25278:17;;;;;;;;;;;25262:33;;:12;:10;:12::i;:::-;:33;;;25253:43;;;;;;25345:4;25307:26;:35;25334:7;25307:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;25172:185;:::o;24369:400::-;24598:17;;;;;;;;;;;24582:33;;:12;:10;:12::i;:::-;:33;;;24573:43;;;;;;24654:3;24635:15;:22;;24627:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;24756:5;24736:15;6332:21;24726:25;;;;:::i;:::-;24725:36;;;;:::i;:::-;24702:20;:59;;;;24369:400;:::o;18190:92::-;3407:12;:10;:12::i;:::-;3397:22;;:6;;;;;;;;;;:22;;;3389:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18269:5:::1;18254:4;:12;18259:6;18254:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;18190:92:::0;:::o;17806:197::-;17873:17;;;;;;;;;;;17857:33;;:12;:10;:12::i;:::-;:33;;;17848:43;;;;;;17902:26;17931:21;17902:50;;17963:32;17976:18;17963:12;:32::i;:::-;17837:166;17806:197::o;9889:138::-;9955:7;9982:37;10002:7;:16;10010:7;10002:16;;;;;;;;;;;;;;;;9982:19;:37::i;:::-;9975:44;;9889:138;;;:::o;3485:148::-;3407:12;:10;:12::i;:::-;3397:22;;:6;;;;;;;;;;:22;;;3389:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3592:1:::1;3555:40;;3576:6;::::0;::::1;;;;;;;;3555:40;;;;;;;;;;;;3623:1;3606:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3485:148::o:0;22573:114::-;22630:7;22657:15;:22;;;;22650:29;;22573:114;:::o;3269:79::-;3307:7;3334:6;;;;;;;;;;;3327:13;;3269:79;:::o;7411:55::-;;;;:::o;9597:87::-;9636:13;9669:7;;;;;;;;;;;;;;;;;9662:14;;9597:87;:::o;25602:183::-;25708:17;;;;;;;;;;;25692:33;;:12;:10;:12::i;:::-;:33;;;25683:43;;;;;;25759:18;25737:19;:40;;;;25602:183;:::o;25971:93::-;3407:12;:10;:12::i;:::-;3397:22;;:6;;;;;;;;;;:22;;;3389:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6332:21:::1;26032:14;:24;;;;25971:93::o:0;10036:199::-;10141:4;10163:42;10173:12;:10;:12::i;:::-;10187:9;10198:6;10163:9;:42::i;:::-;10223:4;10216:11;;10036:199;;;;:::o;21831:734::-;21904:16;21958:18;;;;;;;;;;;21942:34;;:12;:10;:12::i;:::-;:34;;;:71;;;;21996:17;;;;;;;;;;;21980:33;;:12;:10;:12::i;:::-;:33;;;21942:71;21933:81;;;;;;22041:6;22037:484;22055:7;;:14;;22051:1;:18;22037:484;;;22093:15;22111:35;22135:7;;22143:1;22135:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22111:23;:35::i;:::-;22093:53;;22166:10;:42;;;;;22181:15;:27;22197:7;;22205:1;22197:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22181:27;;;;;;;;;;;;;;;;;;;;;;;;;22180:28;22166:42;22163:167;;;22259:4;22229:15;:27;22245:7;;22253:1;22245:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22229:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;22282:15;22303:7;;22311:1;22303:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22282:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22163:167;22350:10;22349:11;:42;;;;;22364:15;:27;22380:7;;22388:1;22380:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22364:27;;;;;;;;;;;;;;;;;;;;;;;;;22349:42;22346:162;;;22442:5;22412:15;:27;22428:7;;22436:1;22428:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22412:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;22466:26;22481:7;;22489:1;22481:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22466:14;:26::i;:::-;22346:162;22076:445;22071:3;;;;;:::i;:::-;;;;22037:484;;;;22540:15;22533:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21831:734;;;;:::o;6660:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;17599:198::-;17666:17;;;;;;;;;;;17650:33;;:12;:10;:12::i;:::-;:33;;;17641:43;;;;;;17695:23;17721:24;17739:4;17721:9;:24::i;:::-;17695:50;;17756:33;17773:15;17756:16;:33::i;:::-;17630:167;17599:198::o;17513:77::-;3407:12;:10;:12::i;:::-;3397:22;;:6;;;;;;;;;;:22;;;3389:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17578:4:::1;17564:11;;:18;;;;;;;;;;;;;;;;;;17513:77::o:0;23876:234::-;23943:4;24003:8;23983:11;:17;23995:4;23983:17;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;23963:15;:49;;:75;;;;;24016:16;:22;24033:4;24016:22;;;;;;;;;;;;;;;;;;;;;;;;;23963:75;23960:118;;;24062:4;24055:11;;;;23960:118;24097:5;24090:12;;23876:234;;;;:::o;7600:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;10244:184::-;10361:7;10393:11;:18;10405:5;10393:18;;;;;;;;;;;;;;;:27;10412:7;10393:27;;;;;;;;;;;;;;;;10386:34;;10244:184;;;;:::o;25794:169::-;3407:12;:10;:12::i;:::-;3397:22;;:6;;;;;;;;;;:22;;;3389:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25893:1:::1;25879:13;:15;25871:24;;;::::0;::::1;;25952:3;25934:13;6332:21;25924:23;;;;:::i;:::-;25923:32;;;;:::i;:::-;25906:14;:49;;;;25794:169:::0;:::o;24121:88::-;3407:12;:10;:12::i;:::-;3397:22;;:6;;;;;;;;;;:22;;;3389:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24197:4:::1;24177:17;;:24;;;;;;;;;;;;;;;;;;24121:88::o:0;7837:32::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7780:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;4236:246::-;4294:7;4323:1;4318;:6;4314:47;;4348:1;4341:8;;;;4314:47;4371:9;4387:1;4383;:5;;;;:::i;:::-;4371:17;;4416:1;4411;4407;:5;;;;:::i;:::-;:10;4399:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4473:1;4466:8;;;4236:246;;;;;:::o;4491:132::-;4549:7;4576:39;4580:1;4583;4576:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4569:46;;4491:132;;;;:::o;2017:98::-;2070:7;2097:10;2090:17;;2017:98;:::o;11657:369::-;11801:1;11784:19;;:5;:19;;;11776:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11882:1;11863:21;;:7;:21;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11964:6;11934:11;:18;11946:5;11934:18;;;;;;;;;;;;;;;:27;11953:7;11934:27;;;;;;;;;;;;;;;:36;;;;12002:7;11986:32;;11995:5;11986:32;;;12011:6;11986:32;;;;;;:::i;:::-;;;;;;;;11657:369;;;:::o;12035:4601::-;12173:1;12157:18;;:4;:18;;;12149:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12250:1;12236:16;;:2;:16;;;12228:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12320:1;12311:6;:10;12303:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12393:7;:5;:7::i;:::-;12385:15;;:4;:15;;;;:32;;;;;12410:7;:5;:7::i;:::-;12404:13;;:2;:13;;;;12385:32;12381:1276;;;12475:11;;;;;;;;;;;12470:144;;12523:7;:5;:7::i;:::-;12515:15;;:4;:15;;;12507:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;12470:144;12653:4;:10;12658:4;12653:10;;;;;;;;;;;;;;;;;;;;;;;;;12652:11;:24;;;;;12668:4;:8;12673:2;12668:8;;;;;;;;;;;;;;;;;;;;;;;;;12667:9;12652:24;12644:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12756:13;;;;;;;;;;;12750:19;;:2;:19;;;12747:146;;12823:14;;12814:6;12798:13;12808:2;12798:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12790:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;12747:146;12920:13;;;;;;;;;;;12912:21;;:4;:21;;;;:44;;;;;12943:13;;;;;;;;;;;12937:19;;:2;:19;;;;12912:44;:81;;;;;12961:26;:32;12988:4;12961:32;;;;;;;;;;;;;;;;;;;;;;;;;12960:33;12912:81;:116;;;;;12998:26;:30;13025:2;12998:30;;;;;;;;;;;;;;;;;;;;;;;;;12997:31;12912:116;12909:188;;;13057:23;;;;;;;;;;;13049:32;;;;;;12909:188;13114:28;13145:24;13163:4;13145:9;:24::i;:::-;13114:55;;13184:12;13223:19;;13199:20;:43;;13184:58;;13264:7;:18;;;;;13276:6;;;;;;;;;;;13275:7;13264:18;:43;;;;;13294:13;;;;;;;;;;;13286:21;;:4;:21;;;;13264:43;:58;;;;;13311:11;;;;;;;;;;;13264:58;:87;;;;;13327:18;:24;13346:4;13327:24;;;;;;;;;;;;;;;;;;;;;;;;;13326:25;13264:87;:114;;;;;13356:18;:22;13375:2;13356:22;;;;;;;;;;;;;;;;;;;;;;;;;13355:23;13264:114;13260:386;;;13399:38;13416:20;13399:16;:38::i;:::-;13456:26;13485:21;13456:50;;13550:1;13529:18;:22;13525:106;;;13576:35;13589:21;13576:12;:35::i;:::-;13525:106;13380:266;13260:386;12419:1238;;12381:1276;13671:12;13686:4;13671:19;;13738:18;:24;13757:4;13738:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13766:18;:22;13785:2;13766:22;;;;;;;;;;;;;;;;;;;;;;;;;13738:50;13737:102;;;;13802:13;;;;;;;;;;;13794:21;;:4;:21;;;;:44;;;;;13825:13;;;;;;;;;;;13819:19;;:2;:19;;;;13794:44;13737:102;13733:2841;;;13866:5;13856:15;;13733:2841;;;13950:13;;;;;;;;;;;13942:21;;:4;:21;;;:55;;;;;13981:15;;;;;;;;;;;13967:30;;:2;:30;;;;13942:55;13939:1367;;;14042:16;:20;14059:2;14042:20;;;;;;;;;;;;;;;;;;;;;;;;;14038:452;;14093:13;:17;14107:2;14093:17;;;;;;;;;;;;;;;;;;;;;;;;;14089:163;;14158:15;14140:11;:15;14152:2;14140:15;;;;;;;;;;;;;;;:33;;;;14223:4;14202:25;;:13;:17;14216:2;14202:17;;;;;;;;;;;;;;;;;;;;;;;;:25;14089:163;14306:20;;14296:6;14280:13;14290:2;14280:9;:13::i;:::-;:22;;;;:::i;:::-;:46;14277:192;;14374:15;14356:11;:15;14368:2;14356:15;;;;;;;;;;;;;;;:33;;;;14441:4;14418:16;:20;14435:2;14418:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;14277:192;14038:452;14516:17;;;;;;;;;;;14512:759;;14568:18;;14558:7;:28;;;;14512:759;;;14639:16;14658:15;14639:34;;14735:8;14717:11;:15;14729:2;14717:15;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;14701:11;:43;;:89;;;;;14781:8;14763:11;:15;14775:2;14763:15;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;14748:11;:42;14701:89;14698:552;;;14829:1;14819:7;:11;;;;14698:552;;;14897:8;14879:11;:15;14891:2;14879:15;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;14863:11;:43;;:89;;;;;14943:8;14925:11;:15;14937:2;14925:15;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;14910:11;:42;14863:89;:113;;;;;14956:16;:20;14973:2;14956:20;;;;;;;;;;;;;;;;;;;;;;;;;14863:113;14860:390;;;15015:1;15005:7;:11;;;;14860:390;;;15083:8;15065:11;:15;15077:2;15065:15;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;15049:11;:43;;:67;;;;;15096:16;:20;15113:2;15096:20;;;;;;;;;;;;;;;;;;;;;;;;;15049:67;15046:204;;;15155:1;15145:7;:11;;;;15046:204;;;15225:1;15215:7;:11;;;;15046:204;14860:390;14698:552;14614:657;14512:759;13939:1367;15366:13;;;;;;;;;;;15360:19;;:2;:19;;;:55;;;;;15399:15;;;;;;;;;;;15383:32;;:4;:32;;;;15360:55;15356:1204;;;15438:16;15457:15;15438:34;;15497:17;;;;;;;;;;;15493:717;;15549:19;;15539:7;:29;;;;15493:717;;;15660:8;15640:11;:17;15652:4;15640:17;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;15624:11;:45;;:93;;;;;15708:8;15688:11;:17;15700:4;15688:17;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;15673:11;:44;15624:93;15621:568;;;15756:2;15746:7;:12;;;;15621:568;;;15827:8;15807:11;:17;15819:4;15807:17;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;15791:11;:45;;:93;;;;;15875:8;15855:11;:17;15867:4;15855:17;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;15840:11;:44;15791:93;:119;;;;;15888:16;:22;15905:4;15888:22;;;;;;;;;;;;;;;;;;;;;;;;;15791:119;15788:401;;;15949:1;15939:7;:11;;;;15788:401;;;16019:8;15999:11;:17;16011:4;15999:17;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;15983:11;:45;;:71;;;;;16032:16;:22;16049:4;16032:22;;;;;;;;;;;;;;;;;;;;;;;;;15983:71;15980:209;;;16093:1;16083:7;:11;;;;15980:209;;;16163:2;16153:7;:12;;;;15980:209;15788:401;15621:568;15493:717;16250:11;16230;:17;16242:4;16230:17;;;;;;;;;;;;;;;:31;;;;16352:5;16329:28;;:13;:19;16343:4;16329:19;;;;;;;;;;;;;;;;;;;;;;;;:28;16408:20;;16399:6;16381:15;16391:4;16381:9;:15::i;:::-;:24;;;;:::i;:::-;:47;16378:125;;;16478:5;16453:16;:22;16470:4;16453:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;16378:125;15417:1143;15356:1204;13733:2841;16587:41;16602:4;16608:2;16612:6;16620:7;16587:14;:41::i;:::-;12138:4498;12035:4601;;;:::o;4003:224::-;4123:7;4156:1;4151;:6;;4159:12;4143:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4183:9;4199:1;4195;:5;;;;:::i;:::-;4183:17;;4218:1;4211:8;;;4003:224;;;;;:::o;17137:367::-;17199:17;;;;;;;;;;;17196:291;;;17233:17;;;;;;;;;;;:26;;:48;17260:20;17278:1;17260:13;17271:1;17260:6;:10;;:13;;;;:::i;:::-;:17;;:20;;;;:::i;:::-;17233:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17296:15;;;;;;;;;;;:24;;:46;17321:20;17339:1;17321:13;17332:1;17321:6;:10;;:13;;;;:::i;:::-;:17;;:20;;;;:::i;:::-;17296:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17357:18;;;;;;;;;;;:27;;:49;17385:20;17403:1;17385:13;17396:1;17385:6;:10;;:13;;;;:::i;:::-;:17;;:20;;;;:::i;:::-;17357:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17196:291;;;17441:17;;;;;;;;;;;:26;;:34;17468:6;17441:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17196:291;17137:367;:::o;11094:323::-;11189:7;11247;;11236;:18;;11214:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;11335:19;11357:10;:8;:10::i;:::-;11335:32;;11385:24;11397:11;11385:7;:11;;:24;;;;:::i;:::-;11378:31;;;11094:323;;;:::o;21129:355::-;21191:10;21204:21;21216:8;21204:11;:21::i;:::-;21191:34;;21249:15;:22;;;;21240:5;:31;21236:44;;21273:7;;;21236:44;21329:6;21338:5;21329:14;;21324:121;21370:1;21347:15;:22;;;;:24;;;;:::i;:::-;21345:1;:26;21324:121;;;21413:15;21431:1;21429;:3;;;;:::i;:::-;21413:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21392:15;21408:1;21392:18;;;;;;;;:::i;:::-;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;21373:3;;;;;:::i;:::-;;;;21324:121;;;;21455:15;:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;21180:304;21129:355;;:::o;16645:483::-;8041:4;8032:6;;:13;;;;;;;;;;;;;;;;;;16723:21:::1;16761:1;16747:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16723:40;;16792:4;16774;16779:1;16774:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16818:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16808:4;16813:1;16808:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;16851:62;16868:4;16883:15;;;;;;;;;;;16901:11;16851:8;:62::i;:::-;16924:15;;;;;;;;;;;:66;;;17005:11;17031:1;17047:4;17074;17094:15;16924:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16712:416;8077:5:::0;8068:6;;:14;;;;;;;;;;;;;;;;;;16645:483;:::o;4632:223::-;4752:7;4784:1;4780;:5;4787:12;4772:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4811:9;4827:1;4823;:5;;;;:::i;:::-;4811:17;;4846:1;4839:8;;;4632:223;;;;;:::o;18291:282::-;18447:7;18442:28;;18456:14;:12;:14::i;:::-;18442:28;18481:44;18499:6;18507:9;18518:6;18481:17;:44::i;:::-;18541:7;18536:29;;18550:15;:13;:15::i;:::-;18536:29;18291:282;;;;:::o;20689:164::-;20731:7;20752:15;20769;20788:19;:17;:19::i;:::-;20751:56;;;;20825:20;20837:7;20825;:11;;:20;;;;:::i;:::-;20818:27;;;;20689:164;:::o;21492:247::-;21553:4;21570:6;21579:1;21570:10;;21591:122;21620:8;21598:30;;:15;21614:1;21598:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:30;;;21591:122;;21645:3;;;;;:::i;:::-;;;;21672:15;:22;;;;21667:1;:27;21591:122;21663:38;21591:122;21730:1;21723:8;;;21492:247;;;:::o;11426:136::-;11484:1;11473:7;;:12;11469:25;11487:7;11469:25;11525:7;;11507:15;:25;;;;11553:1;11543:7;:11;;;;11426:136;:::o;18582:522::-;18729:15;18759:23;18797;18835:13;18862:19;18873:7;18862:10;:19::i;:::-;18714:167;;;;;;;;18910:28;18930:7;18910;:15;18918:6;18910:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;18892:7;:15;18900:6;18892:15;;;;;;;;;;;;;;;:46;;;;18970:39;18993:15;18970:7;:18;18978:9;18970:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;18949:7;:18;18957:9;18949:18;;;;;;;;;;;;;;;:60;;;;19020:16;19030:5;19020:9;:16::i;:::-;19069:9;19052:44;;19061:6;19052:44;;;19080:15;19052:44;;;;;;:::i;:::-;;;;;;;;18703:401;;;;18582:522;;;:::o;11571:77::-;11625:15;;11615:7;:25;;;;11571:77::o;20862:257::-;20913:7;20922;20942:15;20960:7;;20942:25;;20978:15;6332:21;20978:25;;21028:20;6332:21;21028:7;;:11;;:20;;;;:::i;:::-;21018:7;:30;21014:61;;;21058:7;;6332:21;21050:25;;;;;;;;21014:61;21094:7;21103;21086:25;;;;;;20862:257;;;:::o;19374:514::-;19474:7;19496;19518;19540;19576:23;19601:13;19631:29;19643:7;19652;;19631:11;:29::i;:::-;19575:85;;;;19671:19;19693:10;:8;:10::i;:::-;19671:32;;19715:15;19732:23;19772:40;19784:7;19793:5;19800:11;19772;:40::i;:::-;19714:98;;;;19831:7;19840:15;19857;19874:5;19823:57;;;;;;;;;;;;;19374:514;;;;;:::o;3858:136::-;3916:7;3943:43;3947:1;3950;3943:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3936:50;;3858:136;;;;:::o;3670:179::-;3728:7;3748:9;3764:1;3760;:5;;;;:::i;:::-;3748:17;;3789:1;3784;:6;;3776:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3840:1;3833:8;;;3670:179;;;;:::o;19113:211::-;19166:19;19188:10;:8;:10::i;:::-;19166:32;;19209:13;19225:22;19235:11;19225:5;:9;;:22;;;;:::i;:::-;19209:38;;19283:33;19310:5;19283:7;:22;19299:4;19283:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;19258:7;:22;19274:4;19258:22;;;;;;;;;;;;;;;:58;;;;19155:169;;19113:211;:::o;19897:348::-;20039:7;20061;20096:13;20112:28;20136:3;20112:19;20124:6;20112:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;20096:44;;20151:23;20177:18;20189:5;20177:7;:11;;:18;;;;:::i;:::-;20151:44;;20214:15;20231:5;20206:31;;;;;;19897:348;;;;;:::o;20254:426::-;20425:7;20447;20482:15;20500:24;20512:11;20500:7;:11;;:24;;;;:::i;:::-;20482:42;;20535:13;20551:22;20561:11;20551:5;:9;;:22;;;;:::i;:::-;20535:38;;20584:23;20610:18;20622:5;20610:7;:11;;:18;;;;:::i;:::-;20584:44;;20647:7;20656:15;20639:33;;;;;;;20254:426;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:329::-;6347:6;6396:2;6384:9;6375:7;6371:23;6367:32;6364:119;;;6402:79;;:::i;:::-;6364:119;6522:1;6547:53;6592:7;6583:6;6572:9;6568:22;6547:53;:::i;:::-;6537:63;;6493:117;6288:329;;;;:::o;6623:60::-;6651:3;6672:5;6665:12;;6623:60;;;:::o;6689:142::-;6739:9;6772:53;6790:34;6799:24;6817:5;6799:24;:::i;:::-;6790:34;:::i;:::-;6772:53;:::i;:::-;6759:66;;6689:142;;;:::o;6837:126::-;6887:9;6920:37;6951:5;6920:37;:::i;:::-;6907:50;;6837:126;;;:::o;6969:152::-;7045:9;7078:37;7109:5;7078:37;:::i;:::-;7065:50;;6969:152;;;:::o;7127:183::-;7240:63;7297:5;7240:63;:::i;:::-;7235:3;7228:76;7127:183;;:::o;7316:274::-;7435:4;7473:2;7462:9;7458:18;7450:26;;7486:97;7580:1;7569:9;7565:17;7556:6;7486:97;:::i;:::-;7316:274;;;;:::o;7596:118::-;7683:24;7701:5;7683:24;:::i;:::-;7678:3;7671:37;7596:118;;:::o;7720:222::-;7813:4;7851:2;7840:9;7836:18;7828:26;;7864:71;7932:1;7921:9;7917:17;7908:6;7864:71;:::i;:::-;7720:222;;;;:::o;7948:619::-;8025:6;8033;8041;8090:2;8078:9;8069:7;8065:23;8061:32;8058:119;;;8096:79;;:::i;:::-;8058:119;8216:1;8241:53;8286:7;8277:6;8266:9;8262:22;8241:53;:::i;:::-;8231:63;;8187:117;8343:2;8369:53;8414:7;8405:6;8394:9;8390:22;8369:53;:::i;:::-;8359:63;;8314:118;8471:2;8497:53;8542:7;8533:6;8522:9;8518:22;8497:53;:::i;:::-;8487:63;;8442:118;7948:619;;;;;:::o;8573:116::-;8643:21;8658:5;8643:21;:::i;:::-;8636:5;8633:32;8623:60;;8679:1;8676;8669:12;8623:60;8573:116;:::o;8695:133::-;8738:5;8776:6;8763:20;8754:29;;8792:30;8816:5;8792:30;:::i;:::-;8695:133;;;;:::o;8834:323::-;8890:6;8939:2;8927:9;8918:7;8914:23;8910:32;8907:119;;;8945:79;;:::i;:::-;8907:119;9065:1;9090:50;9132:7;9123:6;9112:9;9108:22;9090:50;:::i;:::-;9080:60;;9036:114;8834:323;;;;:::o;9163:86::-;9198:7;9238:4;9231:5;9227:16;9216:27;;9163:86;;;:::o;9255:112::-;9338:22;9354:5;9338:22;:::i;:::-;9333:3;9326:35;9255:112;;:::o;9373:214::-;9462:4;9500:2;9489:9;9485:18;9477:26;;9513:67;9577:1;9566:9;9562:17;9553:6;9513:67;:::i;:::-;9373:214;;;;:::o;9593:118::-;9680:24;9698:5;9680:24;:::i;:::-;9675:3;9668:37;9593:118;;:::o;9717:222::-;9810:4;9848:2;9837:9;9833:18;9825:26;;9861:71;9929:1;9918:9;9914:17;9905:6;9861:71;:::i;:::-;9717:222;;;;:::o;9945:332::-;10066:4;10104:2;10093:9;10089:18;10081:26;;10117:71;10185:1;10174:9;10170:17;10161:6;10117:71;:::i;:::-;10198:72;10266:2;10255:9;10251:18;10242:6;10198:72;:::i;:::-;9945:332;;;;;:::o;10283:329::-;10342:6;10391:2;10379:9;10370:7;10366:23;10362:32;10359:119;;;10397:79;;:::i;:::-;10359:119;10517:1;10542:53;10587:7;10578:6;10567:9;10563:22;10542:53;:::i;:::-;10532:63;;10488:117;10283:329;;;;:::o;10618:117::-;10727:1;10724;10717:12;10758:568;10831:8;10841:6;10891:3;10884:4;10876:6;10872:17;10868:27;10858:122;;10899:79;;:::i;:::-;10858:122;11012:6;10999:20;10989:30;;11042:18;11034:6;11031:30;11028:117;;;11064:79;;:::i;:::-;11028:117;11178:4;11170:6;11166:17;11154:29;;11232:3;11224:4;11216:6;11212:17;11202:8;11198:32;11195:41;11192:128;;;11239:79;;:::i;:::-;11192:128;10758:568;;;;;:::o;11332:559::-;11418:6;11426;11475:2;11463:9;11454:7;11450:23;11446:32;11443:119;;;11481:79;;:::i;:::-;11443:119;11629:1;11618:9;11614:17;11601:31;11659:18;11651:6;11648:30;11645:117;;;11681:79;;:::i;:::-;11645:117;11794:80;11866:7;11857:6;11846:9;11842:22;11794:80;:::i;:::-;11776:98;;;;11572:312;11332:559;;;;;:::o;11897:114::-;11964:6;11998:5;11992:12;11982:22;;11897:114;;;:::o;12017:184::-;12116:11;12150:6;12145:3;12138:19;12190:4;12185:3;12181:14;12166:29;;12017:184;;;;:::o;12207:132::-;12274:4;12297:3;12289:11;;12327:4;12322:3;12318:14;12310:22;;12207:132;;;:::o;12345:108::-;12422:24;12440:5;12422:24;:::i;:::-;12417:3;12410:37;12345:108;;:::o;12459:179::-;12528:10;12549:46;12591:3;12583:6;12549:46;:::i;:::-;12627:4;12622:3;12618:14;12604:28;;12459:179;;;;:::o;12644:113::-;12714:4;12746;12741:3;12737:14;12729:22;;12644:113;;;:::o;12793:732::-;12912:3;12941:54;12989:5;12941:54;:::i;:::-;13011:86;13090:6;13085:3;13011:86;:::i;:::-;13004:93;;13121:56;13171:5;13121:56;:::i;:::-;13200:7;13231:1;13216:284;13241:6;13238:1;13235:13;13216:284;;;13317:6;13311:13;13344:63;13403:3;13388:13;13344:63;:::i;:::-;13337:70;;13430:60;13483:6;13430:60;:::i;:::-;13420:70;;13276:224;13263:1;13260;13256:9;13251:14;;13216:284;;;13220:14;13516:3;13509:10;;12917:608;;;12793:732;;;;:::o;13531:373::-;13674:4;13712:2;13701:9;13697:18;13689:26;;13761:9;13755:4;13751:20;13747:1;13736:9;13732:17;13725:47;13789:108;13892:4;13883:6;13789:108;:::i;:::-;13781:116;;13531:373;;;;:::o;13910:474::-;13978:6;13986;14035:2;14023:9;14014:7;14010:23;14006:32;14003:119;;;14041:79;;:::i;:::-;14003:119;14161:1;14186:53;14231:7;14222:6;14211:9;14207:22;14186:53;:::i;:::-;14176:63;;14132:117;14288:2;14314:53;14359:7;14350:6;14339:9;14335:22;14314:53;:::i;:::-;14304:63;;14259:118;13910:474;;;;;:::o;14390:182::-;14530:34;14526:1;14518:6;14514:14;14507:58;14390:182;:::o;14578:366::-;14720:3;14741:67;14805:2;14800:3;14741:67;:::i;:::-;14734:74;;14817:93;14906:3;14817:93;:::i;:::-;14935:2;14930:3;14926:12;14919:19;;14578:366;;;:::o;14950:419::-;15116:4;15154:2;15143:9;15139:18;15131:26;;15203:9;15197:4;15193:20;15189:1;15178:9;15174:17;15167:47;15231:131;15357:4;15231:131;:::i;:::-;15223:139;;14950:419;;;:::o;15375:180::-;15423:77;15420:1;15413:88;15520:4;15517:1;15510:15;15544:4;15541:1;15534:15;15561:180;15609:77;15606:1;15599:88;15706:4;15703:1;15696:15;15730:4;15727:1;15720:15;15747:233;15786:3;15809:24;15827:5;15809:24;:::i;:::-;15800:33;;15855:66;15848:5;15845:77;15842:103;;15925:18;;:::i;:::-;15842:103;15972:1;15965:5;15961:13;15954:20;;15747:233;;;:::o;15986:191::-;16026:3;16045:20;16063:1;16045:20;:::i;:::-;16040:25;;16079:20;16097:1;16079:20;:::i;:::-;16074:25;;16122:1;16119;16115:9;16108:16;;16143:3;16140:1;16137:10;16134:36;;;16150:18;;:::i;:::-;16134:36;15986:191;;;;:::o;16183:177::-;16323:29;16319:1;16311:6;16307:14;16300:53;16183:177;:::o;16366:366::-;16508:3;16529:67;16593:2;16588:3;16529:67;:::i;:::-;16522:74;;16605:93;16694:3;16605:93;:::i;:::-;16723:2;16718:3;16714:12;16707:19;;16366:366;;;:::o;16738:419::-;16904:4;16942:2;16931:9;16927:18;16919:26;;16991:9;16985:4;16981:20;16977:1;16966:9;16962:17;16955:47;17019:131;17145:4;17019:131;:::i;:::-;17011:139;;16738:419;;;:::o;17163:410::-;17203:7;17226:20;17244:1;17226:20;:::i;:::-;17221:25;;17260:20;17278:1;17260:20;:::i;:::-;17255:25;;17315:1;17312;17308:9;17337:30;17355:11;17337:30;:::i;:::-;17326:41;;17516:1;17507:7;17503:15;17500:1;17497:22;17477:1;17470:9;17450:83;17427:139;;17546:18;;:::i;:::-;17427:139;17211:362;17163:410;;;;:::o;17579:180::-;17627:77;17624:1;17617:88;17724:4;17721:1;17714:15;17748:4;17745:1;17738:15;17765:185;17805:1;17822:20;17840:1;17822:20;:::i;:::-;17817:25;;17856:20;17874:1;17856:20;:::i;:::-;17851:25;;17895:1;17885:35;;17900:18;;:::i;:::-;17885:35;17942:1;17939;17935:9;17930:14;;17765:185;;;;:::o;17956:220::-;18096:34;18092:1;18084:6;18080:14;18073:58;18165:3;18160:2;18152:6;18148:15;18141:28;17956:220;:::o;18182:366::-;18324:3;18345:67;18409:2;18404:3;18345:67;:::i;:::-;18338:74;;18421:93;18510:3;18421:93;:::i;:::-;18539:2;18534:3;18530:12;18523:19;;18182:366;;;:::o;18554:419::-;18720:4;18758:2;18747:9;18743:18;18735:26;;18807:9;18801:4;18797:20;18793:1;18782:9;18778:17;18771:47;18835:131;18961:4;18835:131;:::i;:::-;18827:139;;18554:419;;;:::o;18979:223::-;19119:34;19115:1;19107:6;19103:14;19096:58;19188:6;19183:2;19175:6;19171:15;19164:31;18979:223;:::o;19208:366::-;19350:3;19371:67;19435:2;19430:3;19371:67;:::i;:::-;19364:74;;19447:93;19536:3;19447:93;:::i;:::-;19565:2;19560:3;19556:12;19549:19;;19208:366;;;:::o;19580:419::-;19746:4;19784:2;19773:9;19769:18;19761:26;;19833:9;19827:4;19823:20;19819:1;19808:9;19804:17;19797:47;19861:131;19987:4;19861:131;:::i;:::-;19853:139;;19580:419;;;:::o;20005:221::-;20145:34;20141:1;20133:6;20129:14;20122:58;20214:4;20209:2;20201:6;20197:15;20190:29;20005:221;:::o;20232:366::-;20374:3;20395:67;20459:2;20454:3;20395:67;:::i;:::-;20388:74;;20471:93;20560:3;20471:93;:::i;:::-;20589:2;20584:3;20580:12;20573:19;;20232:366;;;:::o;20604:419::-;20770:4;20808:2;20797:9;20793:18;20785:26;;20857:9;20851:4;20847:20;20843:1;20832:9;20828:17;20821:47;20885:131;21011:4;20885:131;:::i;:::-;20877:139;;20604:419;;;:::o;21029:224::-;21169:34;21165:1;21157:6;21153:14;21146:58;21238:7;21233:2;21225:6;21221:15;21214:32;21029:224;:::o;21259:366::-;21401:3;21422:67;21486:2;21481:3;21422:67;:::i;:::-;21415:74;;21498:93;21587:3;21498:93;:::i;:::-;21616:2;21611:3;21607:12;21600:19;;21259:366;;;:::o;21631:419::-;21797:4;21835:2;21824:9;21820:18;21812:26;;21884:9;21878:4;21874:20;21870:1;21859:9;21855:17;21848:47;21912:131;22038:4;21912:131;:::i;:::-;21904:139;;21631:419;;;:::o;22056:222::-;22196:34;22192:1;22184:6;22180:14;22173:58;22265:5;22260:2;22252:6;22248:15;22241:30;22056:222;:::o;22284:366::-;22426:3;22447:67;22511:2;22506:3;22447:67;:::i;:::-;22440:74;;22523:93;22612:3;22523:93;:::i;:::-;22641:2;22636:3;22632:12;22625:19;;22284:366;;;:::o;22656:419::-;22822:4;22860:2;22849:9;22845:18;22837:26;;22909:9;22903:4;22899:20;22895:1;22884:9;22880:17;22873:47;22937:131;23063:4;22937:131;:::i;:::-;22929:139;;22656:419;;;:::o;23081:228::-;23221:34;23217:1;23209:6;23205:14;23198:58;23290:11;23285:2;23277:6;23273:15;23266:36;23081:228;:::o;23315:366::-;23457:3;23478:67;23542:2;23537:3;23478:67;:::i;:::-;23471:74;;23554:93;23643:3;23554:93;:::i;:::-;23672:2;23667:3;23663:12;23656:19;;23315:366;;;:::o;23687:419::-;23853:4;23891:2;23880:9;23876:18;23868:26;;23940:9;23934:4;23930:20;23926:1;23915:9;23911:17;23904:47;23968:131;24094:4;23968:131;:::i;:::-;23960:139;;23687:419;;;:::o;24112:250::-;24252:34;24248:1;24240:6;24236:14;24229:58;24321:33;24316:2;24308:6;24304:15;24297:58;24112:250;:::o;24368:366::-;24510:3;24531:67;24595:2;24590:3;24531:67;:::i;:::-;24524:74;;24607:93;24696:3;24607:93;:::i;:::-;24725:2;24720:3;24716:12;24709:19;;24368:366;;;:::o;24740:419::-;24906:4;24944:2;24933:9;24929:18;24921:26;;24993:9;24987:4;24983:20;24979:1;24968:9;24964:17;24957:47;25021:131;25147:4;25021:131;:::i;:::-;25013:139;;24740:419;;;:::o;25165:222::-;25305:34;25301:1;25293:6;25289:14;25282:58;25374:5;25369:2;25361:6;25357:15;25350:30;25165:222;:::o;25393:366::-;25535:3;25556:67;25620:2;25615:3;25556:67;:::i;:::-;25549:74;;25632:93;25721:3;25632:93;:::i;:::-;25750:2;25745:3;25741:12;25734:19;;25393:366;;;:::o;25765:419::-;25931:4;25969:2;25958:9;25954:18;25946:26;;26018:9;26012:4;26008:20;26004:1;25993:9;25989:17;25982:47;26046:131;26172:4;26046:131;:::i;:::-;26038:139;;25765:419;;;:::o;26190:222::-;26330:34;26326:1;26318:6;26314:14;26307:58;26399:5;26394:2;26386:6;26382:15;26375:30;26190:222;:::o;26418:366::-;26560:3;26581:67;26645:2;26640:3;26581:67;:::i;:::-;26574:74;;26657:93;26746:3;26657:93;:::i;:::-;26775:2;26770:3;26766:12;26759:19;;26418:366;;;:::o;26790:419::-;26956:4;26994:2;26983:9;26979:18;26971:26;;27043:9;27037:4;27033:20;27029:1;27018:9;27014:17;27007:47;27071:131;27197:4;27071:131;:::i;:::-;27063:139;;26790:419;;;:::o;27215:194::-;27255:4;27275:20;27293:1;27275:20;:::i;:::-;27270:25;;27309:20;27327:1;27309:20;:::i;:::-;27304:25;;27353:1;27350;27346:9;27338:17;;27377:1;27371:4;27368:11;27365:37;;;27382:18;;:::i;:::-;27365:37;27215:194;;;;:::o;27415:229::-;27555:34;27551:1;27543:6;27539:14;27532:58;27624:12;27619:2;27611:6;27607:15;27600:37;27415:229;:::o;27650:366::-;27792:3;27813:67;27877:2;27872:3;27813:67;:::i;:::-;27806:74;;27889:93;27978:3;27889:93;:::i;:::-;28007:2;28002:3;27998:12;27991:19;;27650:366;;;:::o;28022:419::-;28188:4;28226:2;28215:9;28211:18;28203:26;;28275:9;28269:4;28265:20;28261:1;28250:9;28246:17;28239:47;28303:131;28429:4;28303:131;:::i;:::-;28295:139;;28022:419;;;:::o;28447:180::-;28495:77;28492:1;28485:88;28592:4;28589:1;28582:15;28616:4;28613:1;28606:15;28633:143;28690:5;28721:6;28715:13;28706:22;;28737:33;28764:5;28737:33;:::i;:::-;28633:143;;;;:::o;28782:351::-;28852:6;28901:2;28889:9;28880:7;28876:23;28872:32;28869:119;;;28907:79;;:::i;:::-;28869:119;29027:1;29052:64;29108:7;29099:6;29088:9;29084:22;29052:64;:::i;:::-;29042:74;;28998:128;28782:351;;;;:::o;29139:85::-;29184:7;29213:5;29202:16;;29139:85;;;:::o;29230:158::-;29288:9;29321:61;29339:42;29348:32;29374:5;29348:32;:::i;:::-;29339:42;:::i;:::-;29321:61;:::i;:::-;29308:74;;29230:158;;;:::o;29394:147::-;29489:45;29528:5;29489:45;:::i;:::-;29484:3;29477:58;29394:147;;:::o;29547:831::-;29810:4;29848:3;29837:9;29833:19;29825:27;;29862:71;29930:1;29919:9;29915:17;29906:6;29862:71;:::i;:::-;29943:80;30019:2;30008:9;30004:18;29995:6;29943:80;:::i;:::-;30070:9;30064:4;30060:20;30055:2;30044:9;30040:18;30033:48;30098:108;30201:4;30192:6;30098:108;:::i;:::-;30090:116;;30216:72;30284:2;30273:9;30269:18;30260:6;30216:72;:::i;:::-;30298:73;30366:3;30355:9;30351:19;30342:6;30298:73;:::i;:::-;29547:831;;;;;;;;:::o;30384:177::-;30524:29;30520:1;30512:6;30508:14;30501:53;30384:177;:::o;30567:366::-;30709:3;30730:67;30794:2;30789:3;30730:67;:::i;:::-;30723:74;;30806:93;30895:3;30806:93;:::i;:::-;30924:2;30919:3;30915:12;30908:19;;30567:366;;;:::o;30939:419::-;31105:4;31143:2;31132:9;31128:18;31120:26;;31192:9;31186:4;31182:20;31178:1;31167:9;31163:17;31156:47;31220:131;31346:4;31220:131;:::i;:::-;31212:139;;30939:419;;;:::o

Swarm Source

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