ETH Price: $2,978.34 (-2.39%)
Gas: 4 Gwei

Token

RFK24 (RFK24)
 

Overview

Max Total Supply

240,000,000,000 RFK24

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
*ryoshí.eth
Balance
921,955,205.184475001 RFK24

Value
$0.00
0x6e555535beef4b055478d1da06ec27de0e3e2dd4
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:
RFK24_Token

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-05
*/

// Token: RFK24 v2
// Website: https://www.rfk24.io
// TG Channel: https://t.me/RFK24_coin
// Twitter Account https://twitter.com/RFK24_coin

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

library SafeMath {
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

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

    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

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

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

interface IDexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

interface IERC20Extended {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    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
    );
}

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

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

contract Ownable is Context {
    address private _owner;

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

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

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = payable(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IDividendDistributor {
    function setShare(address shareholder, uint256 amount) external;

    function deposit() external payable;

    function claimDividend(address _user) external;

    function getPaidEarnings(
        address shareholder
    ) external view returns (uint256);

    function getUnpaidEarnings(
        address shareholder
    ) external view returns (uint256);

    function totalDistributed() external view returns (uint256);
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;
    address public token;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    address[] public shareholders;
    mapping(address => uint256) public shareholderIndexes;
    mapping(address => uint256) public shareholderClaims;

    mapping(address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;
    uint256 currentIndex;

    modifier onlyToken() {
        require(msg.sender == token);
        _;
    }

    constructor() {
        token = msg.sender;
    }

    function setShare(
        address shareholder,
        uint256 amount
    ) external override onlyToken {
        if (shares[shareholder].amount > 0) {
            distributeDividend(shareholder);
        }

        if (amount > 0 && shares[shareholder].amount == 0) {
            addShareholder(shareholder);
        } else if (amount == 0 && shares[shareholder].amount > 0) {
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(
            shares[shareholder].amount
        );
    }

    function deposit() external payable override onlyToken {
        totalDividends = totalDividends.add(msg.value);
        dividendsPerShare = dividendsPerShare.add(
            dividendsPerShareAccuracyFactor.mul(msg.value).div(totalShares)
        );
    }

    function distributeDividend(address shareholder) internal {
        if (shares[shareholder].amount == 0) {
            return;
        }

        uint256 amount = getUnpaidEarnings(shareholder);
        if (amount > 0) {
            totalDistributed = totalDistributed.add(amount);
            payable(shareholder).transfer(amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder]
                .totalRealised
                .add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(
                shares[shareholder].amount
            );
        }
    }

    function claimDividend(address _user) external {
        distributeDividend(_user);
    }

    function getPaidEarnings(
        address shareholder
    ) public view returns (uint256) {
        return shares[shareholder].totalRealised;
    }

    function getUnpaidEarnings(
        address shareholder
    ) public view returns (uint256) {
        if (shares[shareholder].amount == 0) {
            return 0;
        }

        uint256 shareholderTotalDividends = getCumulativeDividends(
            shares[shareholder].amount
        );
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if (shareholderTotalDividends <= shareholderTotalExcluded) {
            return 0;
        }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(
        uint256 share
    ) internal view returns (uint256) {
        return
            share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[
            shareholders.length - 1
        ];
        shareholderIndexes[
            shareholders[shareholders.length - 1]
        ] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

// main contract
contract RFK24_Token is IERC20Extended, Ownable {
    using SafeMath for uint256;

    string private constant _name = "RFK24";
    string private constant _symbol = "RFK24";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 240_000_000_000 * 10 ** _decimals;

    DividendDistributor public distributor;
    IDexRouter public router;
    address public pair;
    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    uint256 _reflectionPercent = 25_00;
    uint256 _liquidityPercent = 10_00;
    uint256 _marketingPercent = 65_00;

    uint256 public totalBuyFee = 5_00;
    uint256 public totalSellFee = 5_00;
    uint256 public percentDivider = 100_00;

    uint256 public maxWalletAmount = (_totalSupply * 2) / 100;
    uint256 public launchedAt;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isWalletExmpt;
    mapping(address => bool) public isDividendExempt;

    uint256 public swapThreshold = (_totalSupply * 5) / 1000;
    bool public swapEnabled;
    bool public trading;
    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);

    constructor() Ownable() {
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x8D8a9E2D2E2d4DCa697491d4bdcC308BBc62A281;
        distributor = new DividendDistributor();

        isFeeExempt[autoLiquidityReceiver] = true;
        isFeeExempt[address(this)] = true;
        isDividendExempt[address(this)] = true;
        isWalletExmpt[autoLiquidityReceiver] = true;
        isWalletExmpt[address(this)] = true;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function totalSupply() external pure override returns (uint256) {
        return _totalSupply;
    }

    function decimals() external pure override returns (uint8) {
        return _decimals;
    }

    function symbol() external pure override returns (string memory) {
        return _symbol;
    }

    function name() external pure override returns (string memory) {
        return _name;
    }

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

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

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, _totalSupply);
    }

    function transfer(
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != _totalSupply) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (!isFeeExempt[sender] && !isFeeExempt[recipient]) {
            // trading disable till launch
            if (!trading) {
                require(
                    pair != sender && pair != recipient,
                    "Trading is disable"
                );
            }
        }

        if (!isWalletExmpt[recipient]) {
            require(
                balanceOf(recipient).add(amount) <= maxWalletAmount,
                "Max Wallet limit exceeds"
            );
        }

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

        if (shouldSwapBack()) {
            swapBack();
        }

        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );

        uint256 amountReceived;
        if (
            isFeeExempt[sender] ||
            isFeeExempt[recipient] ||
            (sender != pair && recipient != pair)
        ) {
            amountReceived = amount;
        } else {
            uint256 feeAmount;
            if (sender == pair) {
                feeAmount = amount.mul(totalBuyFee).div(percentDivider);
                amountReceived = amount.sub(feeAmount);
                takeFee(sender, feeAmount);
            } else {
                feeAmount = amount.mul(totalSellFee).div(percentDivider);
                amountReceived = amount.sub(feeAmount);
                takeFee(sender, feeAmount);
            }
        }

        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);

        if (!isDividendExempt[sender]) {
            try distributor.setShare(sender, _balances[sender]) {} catch {}
        }
        if (!isDividendExempt[recipient]) {
            try
                distributor.setShare(recipient, _balances[recipient])
            {} catch {}
        }
        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(address sender, uint256 feeAmount) internal {
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return
            msg.sender != pair &&
            !inSwap &&
            swapEnabled &&
            _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 amountToLiquify = swapThreshold
            .mul(_liquidityPercent)
            .div(percentDivider)
            .div(2);

        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);
        _allowances[address(this)][address(router)] = _totalSupply;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance.sub(balanceBefore);

        uint256 feePercentDivider = percentDivider.sub(
            _liquidityPercent.div(2)
        );

        uint256 amountEthLiquidity = amountBNB
            .mul(_liquidityPercent)
            .div(feePercentDivider)
            .div(2);

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountEthLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountEthLiquidity, amountToLiquify);
        }

        uint256 amountEthReflection = amountBNB.mul(_reflectionPercent).div(
            feePercentDivider
        );
        if (amountEthReflection > 0) {
            try distributor.deposit{value: amountEthReflection}() {} catch {}
        }

        if (address(this).balance > 0) {
            payable(marketingFeeReceiver).transfer(address(this).balance);
        }
    }

    function claimDividend() external {
        distributor.claimDividend(msg.sender);
    }

    function getPaidDividend(
        address shareholder
    ) public view returns (uint256) {
        return distributor.getPaidEarnings(shareholder);
    }

    function getUnpaidDividend(
        address shareholder
    ) external view returns (uint256) {
        return distributor.getUnpaidEarnings(shareholder);
    }

    function getTotalDistributedDividend() external view returns (uint256) {
        return distributor.totalDistributed();
    }

    function setIsDividendExempt(
        address holder,
        bool exempt
    ) external onlyOwner {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if (exempt) {
            distributor.setShare(holder, 0);
        } else {
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function addLp(address _router) external payable onlyOwner {
        router = IDexRouter(_router);
        pair = IDexFactory(router.factory()).createPair(
            address(this),
            router.WETH()
        );
        isFeeExempt[address(router)] = true;
        isDividendExempt[pair] = true;
        isDividendExempt[address(router)] = true;
        isWalletExmpt[pair] = true;
        isWalletExmpt[address(router)] = true;
        _allowances[address(this)][address(router)] = _totalSupply;
        router.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20Extended(pair).approve(address(router), type(uint).max);
    }

    function enableTrading() external onlyOwner {
        require(!trading, "Already enabled");
        trading = true;
        swapEnabled = true;
        launchedAt = block.timestamp;
    }

    function removeStuckEth(uint256 amount) external onlyOwner {
        payable(msg.sender).transfer(amount);
    }

    function removeStuckToken(
        address token,
        uint256 amount
    ) external onlyOwner {
        IERC20Extended(token).transfer(owner(), amount);
    }

    function setFeeReceivers(
        address _autoLiquidityReceiver,
        address _marketingFeeReceiver
    ) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }

    function setSwapBackSettings(
        bool _enabled,
        uint256 _amount
    ) external onlyOwner {
        require(swapThreshold > 0);
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function multiTransfer(
        address[] memory accounts,
        uint256[] memory amounts
    ) external onlyOwner {
        require(accounts.length == amounts.length, "Invalid");
        for (uint256 i; i < accounts.length; i++) {
            _basicTransfer(msg.sender, accounts[i], amounts[i]);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":[{"internalType":"address","name":"_router","type":"address"}],"name":"addLp","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getPaidDividend","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDistributedDividend","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidDividend","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletExmpt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526109c46006556103e86007556119646008556101f46009556101f4600a55612710600b55606460026009600a6200003c919062000725565b6437e11d60006200004e919062000776565b6200005a919062000776565b620000669190620007f0565b600c556103e860056009600a6200007e919062000725565b6437e11d600062000090919062000776565b6200009c919062000776565b620000a89190620007f0565b601355348015620000b857600080fd5b50620000c96200057560201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a333600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738d8a9e2d2e2d4dca697491d4bdcc308bbc62a281600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405162000227906200057d565b604051809103906000f08015801562000244573d6000803e3d6000fd5b50600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160106000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600a62000491919062000725565b6437e11d6000620004a3919062000776565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000546919062000725565b6437e11d600062000558919062000776565b60405162000567919062000839565b60405180910390a362000856565b600033905090565b6112f180620052a683390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200061957808604811115620005f157620005f06200058b565b5b6001851615620006015780820291505b80810290506200061185620005ba565b9450620005d1565b94509492505050565b60008262000634576001905062000707565b8162000644576000905062000707565b81600181146200065d576002811462000668576200069e565b600191505062000707565b60ff8411156200067d576200067c6200058b565b5b8360020a9150848211156200069757620006966200058b565b5b5062000707565b5060208310610133831016604e8410600b8410161715620006d85782820a905083811115620006d257620006d16200058b565b5b62000707565b620006e78484846001620005c7565b925090508184048111156200070157620007006200058b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000732826200070e565b91506200073f8362000718565b92506200076e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000622565b905092915050565b600062000783826200070e565b915062000790836200070e565b9250828202620007a0816200070e565b91508282048414831517620007ba57620007b96200058b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007fd826200070e565b91506200080a836200070e565b9250826200081d576200081c620007c1565b5b828204905092915050565b62000833816200070e565b82525050565b600060208201905062000850600083018462000828565b92915050565b614a4080620008666000396000f3fe60806040526004361061024a5760003560e01c80638a8c523c11610139578063ca33e64c116100b6578063ec44acf21161007a578063ec44acf2146108bc578063f0fc6bca146108e7578063f2fde38b146108fe578063f708a64f14610927578063f887ea4014610950578063fe6f1b051461097b57610251565b8063ca33e64c146107d7578063ce261d1014610802578063dd62ed3e1461082b578063df20fd4914610868578063e96fada21461089157610251565b8063a8aa1b31116100fd578063a8aa1b31146106ee578063a9059cbb14610719578063aa4bde2814610756578063bf56b37114610781578063bfe10928146107ac57610251565b80638a8c523c1461062d5780638da5cb5b1461064457806395d89b411461066f5780639d9241ec1461069a578063a4b45c00146106c557610251565b80634355855a116101c757806370a082311161018b57806370a0823114610536578063715018a61461057357806386cb8fb11461058a57806386db0c05146105c7578063893c9f2b1461060457610251565b80634355855a1461042957806349bc3feb14610466578063571ac8b0146104a357806359b107b9146104e05780636ddd17131461050b57610251565b80631961cee21161020e5780631961cee2146103305780631e89d5451461035b57806323b872dd14610384578063313ce567146103c15780633f4218e0146103ec57610251565b80630445b6671461025657806306f200031461028157806306fdde031461029d578063095ea7b3146102c857806318160ddd1461030557610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109a6565b60405161027891906139a9565b60405180910390f35b61029b60048036038101906102969190613a36565b6109ac565b005b3480156102a957600080fd5b506102b2611124565b6040516102bf9190613af3565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190613b41565b611161565b6040516102fc9190613b9c565b60405180910390f35b34801561031157600080fd5b5061031a611253565b60405161032791906139a9565b60405180910390f35b34801561033c57600080fd5b50610345611278565b60405161035291906139a9565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190613dc2565b611310565b005b34801561039057600080fd5b506103ab60048036038101906103a69190613e3a565b61144d565b6040516103b89190613b9c565b60405180910390f35b3480156103cd57600080fd5b506103d661164a565b6040516103e39190613ea9565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e9190613a36565b611653565b6040516104209190613b9c565b60405180910390f35b34801561043557600080fd5b50610450600480360381019061044b9190613a36565b611673565b60405161045d9190613b9c565b60405180910390f35b34801561047257600080fd5b5061048d60048036038101906104889190613a36565b611693565b60405161049a91906139a9565b60405180910390f35b3480156104af57600080fd5b506104ca60048036038101906104c59190613a36565b611738565b6040516104d79190613b9c565b60405180910390f35b3480156104ec57600080fd5b506104f5611768565b60405161050291906139a9565b60405180910390f35b34801561051757600080fd5b5061052061176e565b60405161052d9190613b9c565b60405180910390f35b34801561054257600080fd5b5061055d60048036038101906105589190613a36565b611781565b60405161056a91906139a9565b60405180910390f35b34801561057f57600080fd5b506105886117ca565b005b34801561059657600080fd5b506105b160048036038101906105ac9190613a36565b61191d565b6040516105be9190613b9c565b60405180910390f35b3480156105d357600080fd5b506105ee60048036038101906105e99190613a36565b61193d565b6040516105fb91906139a9565b60405180910390f35b34801561061057600080fd5b5061062b60048036038101906106269190613ec4565b6119e2565b005b34801561063957600080fd5b50610642611ac1565b005b34801561065057600080fd5b50610659611be5565b6040516106669190613f00565b60405180910390f35b34801561067b57600080fd5b50610684611c0e565b6040516106919190613af3565b60405180910390f35b3480156106a657600080fd5b506106af611c4b565b6040516106bc91906139a9565b60405180910390f35b3480156106d157600080fd5b506106ec60048036038101906106e79190613f1b565b611c51565b005b3480156106fa57600080fd5b50610703611d6c565b6040516107109190613f00565b60405180910390f35b34801561072557600080fd5b50610740600480360381019061073b9190613b41565b611d92565b60405161074d9190613b9c565b60405180910390f35b34801561076257600080fd5b5061076b611da7565b60405161077891906139a9565b60405180910390f35b34801561078d57600080fd5b50610796611dad565b6040516107a391906139a9565b60405180910390f35b3480156107b857600080fd5b506107c1611db3565b6040516107ce9190613fba565b60405180910390f35b3480156107e357600080fd5b506107ec611dd9565b6040516107f99190613f00565b60405180910390f35b34801561080e57600080fd5b5061082960048036038101906108249190613b41565b611dff565b005b34801561083757600080fd5b50610852600480360381019061084d9190613f1b565b611f1e565b60405161085f91906139a9565b60405180910390f35b34801561087457600080fd5b5061088f600480360381019061088a9190614001565b611fa5565b005b34801561089d57600080fd5b506108a661206e565b6040516108b39190613f00565b60405180910390f35b3480156108c857600080fd5b506108d1612094565b6040516108de9190613b9c565b60405180910390f35b3480156108f357600080fd5b506108fc6120a7565b005b34801561090a57600080fd5b5061092560048036038101906109209190613a36565b612136565b005b34801561093357600080fd5b5061094e60048036038101906109499190614041565b6122f7565b005b34801561095c57600080fd5b506109656125e4565b60405161097291906140a2565b60405180910390f35b34801561098757600080fd5b5061099061260a565b60405161099d91906139a9565b60405180910390f35b60135481565b6109b4612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3890614109565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b13919061413e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc0919061413e565b6040518363ffffffff1660e01b8152600401610bdd92919061416b565b6020604051808303816000875af1158015610bfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c20919061413e565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160106000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600a610ed091906142f6565b6437e11d6000610ee09190614341565b600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610fcb30611781565b600080610fd6611be5565b426040518863ffffffff1660e01b8152600401610ff8969594939291906143be565b60606040518083038185885af1158015611016573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061103b9190614434565b505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110dd929190614487565b6020604051808303816000875af11580156110fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112091906144c5565b5050565b60606040518060400160405280600581526020017f52464b3234000000000000000000000000000000000000000000000000000000815250905090565b600081600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161124191906139a9565b60405180910390a36001905092915050565b60006009600a61126391906142f6565b6437e11d60006112739190614341565b905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efca2eed6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130b91906144f2565b905090565b611318612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139c90614109565b60405180910390fd5b80518251146113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e09061456b565b60405180910390fd5b60005b8251811015611448576114343384838151811061140c5761140b61458b565b5b60200260200101518484815181106114275761142661458b565b5b6020026020010151612618565b508080611440906145ba565b9150506113ec565b505050565b60006009600a61145d91906142f6565b6437e11d600061146d9190614341565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611636576115b5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127eb9092919063ffffffff16565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611641848484612840565b90509392505050565b60006009905090565b60106020528060005260406000206000915054906101000a900460ff1681565b60126020528060005260406000206000915054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352f48158836040518263ffffffff1660e01b81526004016116f09190613f00565b602060405180830381865afa15801561170d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173191906144f2565b9050919050565b6000611761826009600a61174c91906142f6565b6437e11d600061175c9190614341565b611161565b9050919050565b60095481565b601460009054906101000a900460ff1681565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6117d2612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185690614109565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60116020528060005260406000206000915054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b815260040161199a9190613f00565b602060405180830381865afa1580156119b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119db91906144f2565b9050919050565b6119ea612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6e90614109565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611abd573d6000803e3d6000fd5b5050565b611ac9612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4d90614109565b60405180910390fd5b601460019054906101000a900460ff1615611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d9061464e565b60405180910390fd5b6001601460016101000a81548160ff0219169083151502179055506001601460006101000a81548160ff02191690831515021790555042600d81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f52464b3234000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b611c59612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdd90614109565b60405180910390fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d9f338484612840565b905092915050565b600c5481565b600d5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e07612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8b90614109565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611eb8611be5565b836040518363ffffffff1660e01b8152600401611ed6929190614487565b6020604051808303816000875af1158015611ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1991906144c5565b505050565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611fad612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461203a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203190614109565b60405180910390fd5b60006013541161204957600080fd5b81601460006101000a81548160ff021916908315150217905550806013819055505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460019054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b81526004016121029190613f00565b600060405180830381600087803b15801561211c57600080fd5b505af1158015612130573d6000803e3d6000fd5b50505050565b61213e612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c290614109565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361223a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612231906146e0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122ff612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461238c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238390614109565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156124165750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61241f57600080fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561251157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016124da929190614700565b600060405180830381600087803b1580156124f457600080fd5b505af1158015612508573d6000803e3d6000fd5b505050506125e0565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016125ad929190614487565b600060405180830381600087803b1580156125c757600080fd5b505af11580156125db573d6000803e3d6000fd5b505050505b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600033905090565b60006126a3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127eb9092919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061273882600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461313790919063ffffffff16565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127d891906139a9565b60405180910390a3600190509392505050565b6000838311158290612833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282a9190613af3565b60405180910390fd5b5082840390509392505050565b6000601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128e65750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129ec57601460019054906101000a900460ff166129eb578373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156129ab57508273ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6129ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e190614775565b60405180910390fd5b5b5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a9d57600c54612a5b83612a4d86611781565b61313790919063ffffffff16565b1115612a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a93906147e1565b60405180910390fd5b5b601460029054906101000a900460ff1615612ac457612abd848484612618565b9050613130565b612acc61314d565b15612ada57612ad9613224565b5b612b63826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127eb9092919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c495750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612cfc5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612cfb5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b15612d0957829050612dfc565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612daf57612d89600b54612d7b6009548761385090919063ffffffff16565b61386690919063ffffffff16565b9050612d9e818561387c90919063ffffffff16565b9150612daa8682613892565b612dfa565b612dd8600b54612dca600a548761385090919063ffffffff16565b61386690919063ffffffff16565b9050612ded818561387c90919063ffffffff16565b9150612df98682613892565b5b505b612e4e81600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461313790919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612eee91906139a9565b60405180910390a3601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661301057600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612fe3929190614487565b600060405180830381600087803b158015612ffd57600080fd5b505af192505050801561300e575060015b505b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661312a57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016130fd929190614487565b600060405180830381600087803b15801561311757600080fd5b505af1925050508015613128575060015b505b60019150505b9392505050565b600081836131459190614801565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131ba5750601460029054906101000a900460ff16155b80156131d25750601460009054906101000a900460ff165b801561321f5750601354600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601460026101000a81548160ff021916908315150217905550600061327f6002613271600b5461326360075460135461385090919063ffffffff16565b61386690919063ffffffff16565b61386690919063ffffffff16565b905060006132988260135461387c90919063ffffffff16565b90506009600a6132a891906142f6565b6437e11d60006132b89190614341565b600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff81111561337757613376613bbc565b5b6040519080825280602002602001820160405280156133a55781602001602082028036833780820191505090505b50905030816000815181106133bd576133bc61458b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613464573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613488919061413e565b8160018151811061349c5761349b61458b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161353f9594939291906148f3565b600060405180830381600087803b15801561355957600080fd5b505af115801561356d573d6000803e3d6000fd5b505050506000613586824761387c90919063ffffffff16565b905060006135b46135a3600260075461386690919063ffffffff16565b600b5461387c90919063ffffffff16565b905060006135f260026135e4846135d66007548861385090919063ffffffff16565b61386690919063ffffffff16565b61386690919063ffffffff16565b9050600087111561370657600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308a600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613686969594939291906143be565b60606040518083038185885af11580156136a4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136c99190614434565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450681886040516136fd92919061494d565b60405180910390a15b600061372f836137216006548761385090919063ffffffff16565b61386690919063ffffffff16565b905060008111156137b857600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156137a457600080fd5b505af1935050505080156137b6575060015b505b600047111561382b57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015613829573d6000803e3d6000fd5b505b50505050505050506000601460026101000a81548160ff021916908315150217905550565b6000818361385e9190614341565b905092915050565b6000818361387491906149a5565b905092915050565b6000818361388a91906149d6565b905092915050565b6138e481600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461313790919063ffffffff16565b600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161398491906139a9565b60405180910390a35050565b6000819050919050565b6139a381613990565b82525050565b60006020820190506139be600083018461399a565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a03826139d8565b9050919050565b613a13816139f8565b8114613a1e57600080fd5b50565b600081359050613a3081613a0a565b92915050565b600060208284031215613a4c57613a4b6139ce565b5b6000613a5a84828501613a21565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613a9d578082015181840152602081019050613a82565b60008484015250505050565b6000601f19601f8301169050919050565b6000613ac582613a63565b613acf8185613a6e565b9350613adf818560208601613a7f565b613ae881613aa9565b840191505092915050565b60006020820190508181036000830152613b0d8184613aba565b905092915050565b613b1e81613990565b8114613b2957600080fd5b50565b600081359050613b3b81613b15565b92915050565b60008060408385031215613b5857613b576139ce565b5b6000613b6685828601613a21565b9250506020613b7785828601613b2c565b9150509250929050565b60008115159050919050565b613b9681613b81565b82525050565b6000602082019050613bb16000830184613b8d565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613bf482613aa9565b810181811067ffffffffffffffff82111715613c1357613c12613bbc565b5b80604052505050565b6000613c266139c4565b9050613c328282613beb565b919050565b600067ffffffffffffffff821115613c5257613c51613bbc565b5b602082029050602081019050919050565b600080fd5b6000613c7b613c7684613c37565b613c1c565b90508083825260208201905060208402830185811115613c9e57613c9d613c63565b5b835b81811015613cc75780613cb38882613a21565b845260208401935050602081019050613ca0565b5050509392505050565b600082601f830112613ce657613ce5613bb7565b5b8135613cf6848260208601613c68565b91505092915050565b600067ffffffffffffffff821115613d1a57613d19613bbc565b5b602082029050602081019050919050565b6000613d3e613d3984613cff565b613c1c565b90508083825260208201905060208402830185811115613d6157613d60613c63565b5b835b81811015613d8a5780613d768882613b2c565b845260208401935050602081019050613d63565b5050509392505050565b600082601f830112613da957613da8613bb7565b5b8135613db9848260208601613d2b565b91505092915050565b60008060408385031215613dd957613dd86139ce565b5b600083013567ffffffffffffffff811115613df757613df66139d3565b5b613e0385828601613cd1565b925050602083013567ffffffffffffffff811115613e2457613e236139d3565b5b613e3085828601613d94565b9150509250929050565b600080600060608486031215613e5357613e526139ce565b5b6000613e6186828701613a21565b9350506020613e7286828701613a21565b9250506040613e8386828701613b2c565b9150509250925092565b600060ff82169050919050565b613ea381613e8d565b82525050565b6000602082019050613ebe6000830184613e9a565b92915050565b600060208284031215613eda57613ed96139ce565b5b6000613ee884828501613b2c565b91505092915050565b613efa816139f8565b82525050565b6000602082019050613f156000830184613ef1565b92915050565b60008060408385031215613f3257613f316139ce565b5b6000613f4085828601613a21565b9250506020613f5185828601613a21565b9150509250929050565b6000819050919050565b6000613f80613f7b613f76846139d8565b613f5b565b6139d8565b9050919050565b6000613f9282613f65565b9050919050565b6000613fa482613f87565b9050919050565b613fb481613f99565b82525050565b6000602082019050613fcf6000830184613fab565b92915050565b613fde81613b81565b8114613fe957600080fd5b50565b600081359050613ffb81613fd5565b92915050565b60008060408385031215614018576140176139ce565b5b600061402685828601613fec565b925050602061403785828601613b2c565b9150509250929050565b60008060408385031215614058576140576139ce565b5b600061406685828601613a21565b925050602061407785828601613fec565b9150509250929050565b600061408c82613f87565b9050919050565b61409c81614081565b82525050565b60006020820190506140b76000830184614093565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140f3602083613a6e565b91506140fe826140bd565b602082019050919050565b60006020820190508181036000830152614122816140e6565b9050919050565b60008151905061413881613a0a565b92915050565b600060208284031215614154576141536139ce565b5b600061416284828501614129565b91505092915050565b60006040820190506141806000830185613ef1565b61418d6020830184613ef1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561421a578086048111156141f6576141f5614194565b5b60018516156142055780820291505b8081029050614213856141c3565b94506141da565b94509492505050565b60008261423357600190506142ef565b8161424157600090506142ef565b8160018114614257576002811461426157614290565b60019150506142ef565b60ff84111561427357614272614194565b5b8360020a91508482111561428a57614289614194565b5b506142ef565b5060208310610133831016604e8410600b84101617156142c55782820a9050838111156142c0576142bf614194565b5b6142ef565b6142d284848460016141d0565b925090508184048111156142e9576142e8614194565b5b81810290505b9392505050565b600061430182613990565b915061430c83613e8d565b92506143397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614223565b905092915050565b600061434c82613990565b915061435783613990565b925082820261436581613990565b9150828204841483151761437c5761437b614194565b5b5092915050565b6000819050919050565b60006143a86143a361439e84614383565b613f5b565b613990565b9050919050565b6143b88161438d565b82525050565b600060c0820190506143d36000830189613ef1565b6143e0602083018861399a565b6143ed60408301876143af565b6143fa60608301866143af565b6144076080830185613ef1565b61441460a083018461399a565b979650505050505050565b60008151905061442e81613b15565b92915050565b60008060006060848603121561444d5761444c6139ce565b5b600061445b8682870161441f565b935050602061446c8682870161441f565b925050604061447d8682870161441f565b9150509250925092565b600060408201905061449c6000830185613ef1565b6144a9602083018461399a565b9392505050565b6000815190506144bf81613fd5565b92915050565b6000602082840312156144db576144da6139ce565b5b60006144e9848285016144b0565b91505092915050565b600060208284031215614508576145076139ce565b5b60006145168482850161441f565b91505092915050565b7f496e76616c696400000000000000000000000000000000000000000000000000600082015250565b6000614555600783613a6e565b91506145608261451f565b602082019050919050565b6000602082019050818103600083015261458481614548565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006145c582613990565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145f7576145f6614194565b5b600182019050919050565b7f416c726561647920656e61626c65640000000000000000000000000000000000600082015250565b6000614638600f83613a6e565b915061464382614602565b602082019050919050565b600060208201905081810360008301526146678161462b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006146ca602683613a6e565b91506146d58261466e565b604082019050919050565b600060208201905081810360008301526146f9816146bd565b9050919050565b60006040820190506147156000830185613ef1565b61472260208301846143af565b9392505050565b7f54726164696e672069732064697361626c650000000000000000000000000000600082015250565b600061475f601283613a6e565b915061476a82614729565b602082019050919050565b6000602082019050818103600083015261478e81614752565b9050919050565b7f4d61782057616c6c6574206c696d697420657863656564730000000000000000600082015250565b60006147cb601883613a6e565b91506147d682614795565b602082019050919050565b600060208201905081810360008301526147fa816147be565b9050919050565b600061480c82613990565b915061481783613990565b925082820190508082111561482f5761482e614194565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61486a816139f8565b82525050565b600061487c8383614861565b60208301905092915050565b6000602082019050919050565b60006148a082614835565b6148aa8185614840565b93506148b583614851565b8060005b838110156148e65781516148cd8882614870565b97506148d883614888565b9250506001810190506148b9565b5085935050505092915050565b600060a082019050614908600083018861399a565b61491560208301876143af565b81810360408301526149278186614895565b90506149366060830185613ef1565b614943608083018461399a565b9695505050505050565b6000604082019050614962600083018561399a565b61496f602083018461399a565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006149b082613990565b91506149bb83613990565b9250826149cb576149ca614976565b5b828204905092915050565b60006149e182613990565b91506149ec83613990565b9250828203905081811115614a0457614a03614194565b5b9291505056fea2646970667358221220ad59e6e71b38aaf4063c7dbbc38f9ba9270fdeba59e1bc869e45f053676006f564736f6c6343000812003360806040526ec097ce7bc90715b34b9f100000000060095534801561002357600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061127e806100736000396000f3fe6080604052600436106100e85760003560e01c8063997664d71161008a578063d4fda1f211610059578063d4fda1f2146102fd578063e2d2e2191461033a578063efca2eed14610365578063fc0c546a14610390576100e8565b8063997664d71461024c578063ab377daa14610277578063ce7c2ac2146102b4578063d0e30db0146102f3576100e8565b806328fd3198116100c657806328fd31981461016a5780633a98ef39146101a757806352f48158146101d257806366817df51461020f576100e8565b806311ce023d146100ed57806314b6ca961461011857806315f7e05e14610141575b600080fd5b3480156100f957600080fd5b506101026103bb565b60405161010f9190610f0c565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a9190610fb6565b6103c1565b005b34801561014d57600080fd5b5061016860048036038101906101639190610ff6565b610680565b005b34801561017657600080fd5b50610191600480360381019061018c9190610ff6565b61068c565b60405161019e9190610f0c565b60405180910390f35b3480156101b357600080fd5b506101bc6107a5565b6040516101c99190610f0c565b60405180910390f35b3480156101de57600080fd5b506101f960048036038101906101f49190610ff6565b6107ab565b6040516102069190610f0c565b60405180910390f35b34801561021b57600080fd5b5061023660048036038101906102319190610ff6565b6107f7565b6040516102439190610f0c565b60405180910390f35b34801561025857600080fd5b5061026161080f565b60405161026e9190610f0c565b60405180910390f35b34801561028357600080fd5b5061029e60048036038101906102999190611023565b610815565b6040516102ab919061105f565b60405180910390f35b3480156102c057600080fd5b506102db60048036038101906102d69190610ff6565b610854565b6040516102ea9392919061107a565b60405180910390f35b6102fb61087e565b005b34801561030957600080fd5b50610324600480360381019061031f9190610ff6565b610936565b6040516103319190610f0c565b60405180910390f35b34801561034657600080fd5b5061034f61094e565b60405161035c9190610f0c565b60405180910390f35b34801561037157600080fd5b5061037a610954565b6040516103879190610f0c565b60405180910390f35b34801561039c57600080fd5b506103a561095a565b6040516103b2919061105f565b60405180910390f35b60095481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461041957600080fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561046e5761046d8261097e565b5b6000811180156104c057506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156104d3576104ce82610bb7565b610535565b60008114801561052557506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156105345761053382610c66565b5b5b61059e81610590600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600554610e6990919063ffffffff16565b610e7f90919063ffffffff16565b60058190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610636600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610e95565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b6106898161097e565b50565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154036106e057600090506107a0565b600061072d600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610e95565b90506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050808211610788576000925050506107a0565b61079b8183610e6990919063ffffffff16565b925050505b919050565b60055481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b60036020528060005260406000206000915090505481565b60065481565b6001818154811061082557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d657600080fd5b6108eb34600654610e7f90919063ffffffff16565b60068190555061092e61091d60055461090f34600954610ec790919063ffffffff16565b610edd90919063ffffffff16565b600854610e7f90919063ffffffff16565b600881905550565b60026020528060005260406000206000915090505481565b60085481565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001540315610bb45760006109d48261068c565b90506000811115610bb2576109f481600754610e7f90919063ffffffff16565b6007819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a40573d6000803e3d6000fd5b5042600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ada81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610e7f90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610b6b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610e95565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600180549050600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6001808080549050610c7891906110e0565b81548110610c8957610c88611114565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110610d0757610d06611114565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260006001808080549050610da591906110e0565b81548110610db657610db5611114565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001805480610e3157610e30611143565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b60008183610e7791906110e0565b905092915050565b60008183610e8d9190611172565b905092915050565b6000610ec0600954610eb260085485610ec790919063ffffffff16565b610edd90919063ffffffff16565b9050919050565b60008183610ed591906111a6565b905092915050565b60008183610eeb9190611217565b905092915050565b6000819050919050565b610f0681610ef3565b82525050565b6000602082019050610f216000830184610efd565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610f5782610f2c565b9050919050565b610f6781610f4c565b8114610f7257600080fd5b50565b600081359050610f8481610f5e565b92915050565b610f9381610ef3565b8114610f9e57600080fd5b50565b600081359050610fb081610f8a565b92915050565b60008060408385031215610fcd57610fcc610f27565b5b6000610fdb85828601610f75565b9250506020610fec85828601610fa1565b9150509250929050565b60006020828403121561100c5761100b610f27565b5b600061101a84828501610f75565b91505092915050565b60006020828403121561103957611038610f27565b5b600061104784828501610fa1565b91505092915050565b61105981610f4c565b82525050565b60006020820190506110746000830184611050565b92915050565b600060608201905061108f6000830186610efd565b61109c6020830185610efd565b6110a96040830184610efd565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006110eb82610ef3565b91506110f683610ef3565b925082820390508181111561110e5761110d6110b1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061117d82610ef3565b915061118883610ef3565b92508282019050808211156111a05761119f6110b1565b5b92915050565b60006111b182610ef3565b91506111bc83610ef3565b92508282026111ca81610ef3565b915082820484148315176111e1576111e06110b1565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061122282610ef3565b915061122d83610ef3565b92508261123d5761123c6111e8565b5b82820490509291505056fea26469706673582212203a1d0f1b4e062c478ef715ace4c340309ea78e1d527727045adbc6eb648155e664736f6c63430008120033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c80638a8c523c11610139578063ca33e64c116100b6578063ec44acf21161007a578063ec44acf2146108bc578063f0fc6bca146108e7578063f2fde38b146108fe578063f708a64f14610927578063f887ea4014610950578063fe6f1b051461097b57610251565b8063ca33e64c146107d7578063ce261d1014610802578063dd62ed3e1461082b578063df20fd4914610868578063e96fada21461089157610251565b8063a8aa1b31116100fd578063a8aa1b31146106ee578063a9059cbb14610719578063aa4bde2814610756578063bf56b37114610781578063bfe10928146107ac57610251565b80638a8c523c1461062d5780638da5cb5b1461064457806395d89b411461066f5780639d9241ec1461069a578063a4b45c00146106c557610251565b80634355855a116101c757806370a082311161018b57806370a0823114610536578063715018a61461057357806386cb8fb11461058a57806386db0c05146105c7578063893c9f2b1461060457610251565b80634355855a1461042957806349bc3feb14610466578063571ac8b0146104a357806359b107b9146104e05780636ddd17131461050b57610251565b80631961cee21161020e5780631961cee2146103305780631e89d5451461035b57806323b872dd14610384578063313ce567146103c15780633f4218e0146103ec57610251565b80630445b6671461025657806306f200031461028157806306fdde031461029d578063095ea7b3146102c857806318160ddd1461030557610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109a6565b60405161027891906139a9565b60405180910390f35b61029b60048036038101906102969190613a36565b6109ac565b005b3480156102a957600080fd5b506102b2611124565b6040516102bf9190613af3565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190613b41565b611161565b6040516102fc9190613b9c565b60405180910390f35b34801561031157600080fd5b5061031a611253565b60405161032791906139a9565b60405180910390f35b34801561033c57600080fd5b50610345611278565b60405161035291906139a9565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190613dc2565b611310565b005b34801561039057600080fd5b506103ab60048036038101906103a69190613e3a565b61144d565b6040516103b89190613b9c565b60405180910390f35b3480156103cd57600080fd5b506103d661164a565b6040516103e39190613ea9565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e9190613a36565b611653565b6040516104209190613b9c565b60405180910390f35b34801561043557600080fd5b50610450600480360381019061044b9190613a36565b611673565b60405161045d9190613b9c565b60405180910390f35b34801561047257600080fd5b5061048d60048036038101906104889190613a36565b611693565b60405161049a91906139a9565b60405180910390f35b3480156104af57600080fd5b506104ca60048036038101906104c59190613a36565b611738565b6040516104d79190613b9c565b60405180910390f35b3480156104ec57600080fd5b506104f5611768565b60405161050291906139a9565b60405180910390f35b34801561051757600080fd5b5061052061176e565b60405161052d9190613b9c565b60405180910390f35b34801561054257600080fd5b5061055d60048036038101906105589190613a36565b611781565b60405161056a91906139a9565b60405180910390f35b34801561057f57600080fd5b506105886117ca565b005b34801561059657600080fd5b506105b160048036038101906105ac9190613a36565b61191d565b6040516105be9190613b9c565b60405180910390f35b3480156105d357600080fd5b506105ee60048036038101906105e99190613a36565b61193d565b6040516105fb91906139a9565b60405180910390f35b34801561061057600080fd5b5061062b60048036038101906106269190613ec4565b6119e2565b005b34801561063957600080fd5b50610642611ac1565b005b34801561065057600080fd5b50610659611be5565b6040516106669190613f00565b60405180910390f35b34801561067b57600080fd5b50610684611c0e565b6040516106919190613af3565b60405180910390f35b3480156106a657600080fd5b506106af611c4b565b6040516106bc91906139a9565b60405180910390f35b3480156106d157600080fd5b506106ec60048036038101906106e79190613f1b565b611c51565b005b3480156106fa57600080fd5b50610703611d6c565b6040516107109190613f00565b60405180910390f35b34801561072557600080fd5b50610740600480360381019061073b9190613b41565b611d92565b60405161074d9190613b9c565b60405180910390f35b34801561076257600080fd5b5061076b611da7565b60405161077891906139a9565b60405180910390f35b34801561078d57600080fd5b50610796611dad565b6040516107a391906139a9565b60405180910390f35b3480156107b857600080fd5b506107c1611db3565b6040516107ce9190613fba565b60405180910390f35b3480156107e357600080fd5b506107ec611dd9565b6040516107f99190613f00565b60405180910390f35b34801561080e57600080fd5b5061082960048036038101906108249190613b41565b611dff565b005b34801561083757600080fd5b50610852600480360381019061084d9190613f1b565b611f1e565b60405161085f91906139a9565b60405180910390f35b34801561087457600080fd5b5061088f600480360381019061088a9190614001565b611fa5565b005b34801561089d57600080fd5b506108a661206e565b6040516108b39190613f00565b60405180910390f35b3480156108c857600080fd5b506108d1612094565b6040516108de9190613b9c565b60405180910390f35b3480156108f357600080fd5b506108fc6120a7565b005b34801561090a57600080fd5b5061092560048036038101906109209190613a36565b612136565b005b34801561093357600080fd5b5061094e60048036038101906109499190614041565b6122f7565b005b34801561095c57600080fd5b506109656125e4565b60405161097291906140a2565b60405180910390f35b34801561098757600080fd5b5061099061260a565b60405161099d91906139a9565b60405180910390f35b60135481565b6109b4612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3890614109565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b13919061413e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc0919061413e565b6040518363ffffffff1660e01b8152600401610bdd92919061416b565b6020604051808303816000875af1158015610bfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c20919061413e565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160106000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600a610ed091906142f6565b6437e11d6000610ee09190614341565b600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610fcb30611781565b600080610fd6611be5565b426040518863ffffffff1660e01b8152600401610ff8969594939291906143be565b60606040518083038185885af1158015611016573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061103b9190614434565b505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110dd929190614487565b6020604051808303816000875af11580156110fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112091906144c5565b5050565b60606040518060400160405280600581526020017f52464b3234000000000000000000000000000000000000000000000000000000815250905090565b600081600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161124191906139a9565b60405180910390a36001905092915050565b60006009600a61126391906142f6565b6437e11d60006112739190614341565b905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efca2eed6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130b91906144f2565b905090565b611318612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139c90614109565b60405180910390fd5b80518251146113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e09061456b565b60405180910390fd5b60005b8251811015611448576114343384838151811061140c5761140b61458b565b5b60200260200101518484815181106114275761142661458b565b5b6020026020010151612618565b508080611440906145ba565b9150506113ec565b505050565b60006009600a61145d91906142f6565b6437e11d600061146d9190614341565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611636576115b5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127eb9092919063ffffffff16565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611641848484612840565b90509392505050565b60006009905090565b60106020528060005260406000206000915054906101000a900460ff1681565b60126020528060005260406000206000915054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352f48158836040518263ffffffff1660e01b81526004016116f09190613f00565b602060405180830381865afa15801561170d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173191906144f2565b9050919050565b6000611761826009600a61174c91906142f6565b6437e11d600061175c9190614341565b611161565b9050919050565b60095481565b601460009054906101000a900460ff1681565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6117d2612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185690614109565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60116020528060005260406000206000915054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b815260040161199a9190613f00565b602060405180830381865afa1580156119b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119db91906144f2565b9050919050565b6119ea612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6e90614109565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611abd573d6000803e3d6000fd5b5050565b611ac9612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4d90614109565b60405180910390fd5b601460019054906101000a900460ff1615611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d9061464e565b60405180910390fd5b6001601460016101000a81548160ff0219169083151502179055506001601460006101000a81548160ff02191690831515021790555042600d81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f52464b3234000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b611c59612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdd90614109565b60405180910390fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d9f338484612840565b905092915050565b600c5481565b600d5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e07612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8b90614109565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611eb8611be5565b836040518363ffffffff1660e01b8152600401611ed6929190614487565b6020604051808303816000875af1158015611ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1991906144c5565b505050565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611fad612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461203a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203190614109565b60405180910390fd5b60006013541161204957600080fd5b81601460006101000a81548160ff021916908315150217905550806013819055505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460019054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b81526004016121029190613f00565b600060405180830381600087803b15801561211c57600080fd5b505af1158015612130573d6000803e3d6000fd5b50505050565b61213e612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c290614109565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361223a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612231906146e0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122ff612610565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461238c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238390614109565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156124165750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61241f57600080fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561251157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016124da929190614700565b600060405180830381600087803b1580156124f457600080fd5b505af1158015612508573d6000803e3d6000fd5b505050506125e0565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016125ad929190614487565b600060405180830381600087803b1580156125c757600080fd5b505af11580156125db573d6000803e3d6000fd5b505050505b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600033905090565b60006126a3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127eb9092919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061273882600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461313790919063ffffffff16565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127d891906139a9565b60405180910390a3600190509392505050565b6000838311158290612833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282a9190613af3565b60405180910390fd5b5082840390509392505050565b6000601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128e65750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129ec57601460019054906101000a900460ff166129eb578373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156129ab57508273ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6129ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e190614775565b60405180910390fd5b5b5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a9d57600c54612a5b83612a4d86611781565b61313790919063ffffffff16565b1115612a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a93906147e1565b60405180910390fd5b5b601460029054906101000a900460ff1615612ac457612abd848484612618565b9050613130565b612acc61314d565b15612ada57612ad9613224565b5b612b63826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127eb9092919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c495750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612cfc5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612cfb5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b15612d0957829050612dfc565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612daf57612d89600b54612d7b6009548761385090919063ffffffff16565b61386690919063ffffffff16565b9050612d9e818561387c90919063ffffffff16565b9150612daa8682613892565b612dfa565b612dd8600b54612dca600a548761385090919063ffffffff16565b61386690919063ffffffff16565b9050612ded818561387c90919063ffffffff16565b9150612df98682613892565b5b505b612e4e81600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461313790919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612eee91906139a9565b60405180910390a3601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661301057600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612fe3929190614487565b600060405180830381600087803b158015612ffd57600080fd5b505af192505050801561300e575060015b505b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661312a57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016130fd929190614487565b600060405180830381600087803b15801561311757600080fd5b505af1925050508015613128575060015b505b60019150505b9392505050565b600081836131459190614801565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131ba5750601460029054906101000a900460ff16155b80156131d25750601460009054906101000a900460ff165b801561321f5750601354600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601460026101000a81548160ff021916908315150217905550600061327f6002613271600b5461326360075460135461385090919063ffffffff16565b61386690919063ffffffff16565b61386690919063ffffffff16565b905060006132988260135461387c90919063ffffffff16565b90506009600a6132a891906142f6565b6437e11d60006132b89190614341565b600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff81111561337757613376613bbc565b5b6040519080825280602002602001820160405280156133a55781602001602082028036833780820191505090505b50905030816000815181106133bd576133bc61458b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613464573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613488919061413e565b8160018151811061349c5761349b61458b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161353f9594939291906148f3565b600060405180830381600087803b15801561355957600080fd5b505af115801561356d573d6000803e3d6000fd5b505050506000613586824761387c90919063ffffffff16565b905060006135b46135a3600260075461386690919063ffffffff16565b600b5461387c90919063ffffffff16565b905060006135f260026135e4846135d66007548861385090919063ffffffff16565b61386690919063ffffffff16565b61386690919063ffffffff16565b9050600087111561370657600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308a600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613686969594939291906143be565b60606040518083038185885af11580156136a4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136c99190614434565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450681886040516136fd92919061494d565b60405180910390a15b600061372f836137216006548761385090919063ffffffff16565b61386690919063ffffffff16565b905060008111156137b857600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156137a457600080fd5b505af1935050505080156137b6575060015b505b600047111561382b57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015613829573d6000803e3d6000fd5b505b50505050505050506000601460026101000a81548160ff021916908315150217905550565b6000818361385e9190614341565b905092915050565b6000818361387491906149a5565b905092915050565b6000818361388a91906149d6565b905092915050565b6138e481600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461313790919063ffffffff16565b600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161398491906139a9565b60405180910390a35050565b6000819050919050565b6139a381613990565b82525050565b60006020820190506139be600083018461399a565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a03826139d8565b9050919050565b613a13816139f8565b8114613a1e57600080fd5b50565b600081359050613a3081613a0a565b92915050565b600060208284031215613a4c57613a4b6139ce565b5b6000613a5a84828501613a21565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613a9d578082015181840152602081019050613a82565b60008484015250505050565b6000601f19601f8301169050919050565b6000613ac582613a63565b613acf8185613a6e565b9350613adf818560208601613a7f565b613ae881613aa9565b840191505092915050565b60006020820190508181036000830152613b0d8184613aba565b905092915050565b613b1e81613990565b8114613b2957600080fd5b50565b600081359050613b3b81613b15565b92915050565b60008060408385031215613b5857613b576139ce565b5b6000613b6685828601613a21565b9250506020613b7785828601613b2c565b9150509250929050565b60008115159050919050565b613b9681613b81565b82525050565b6000602082019050613bb16000830184613b8d565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613bf482613aa9565b810181811067ffffffffffffffff82111715613c1357613c12613bbc565b5b80604052505050565b6000613c266139c4565b9050613c328282613beb565b919050565b600067ffffffffffffffff821115613c5257613c51613bbc565b5b602082029050602081019050919050565b600080fd5b6000613c7b613c7684613c37565b613c1c565b90508083825260208201905060208402830185811115613c9e57613c9d613c63565b5b835b81811015613cc75780613cb38882613a21565b845260208401935050602081019050613ca0565b5050509392505050565b600082601f830112613ce657613ce5613bb7565b5b8135613cf6848260208601613c68565b91505092915050565b600067ffffffffffffffff821115613d1a57613d19613bbc565b5b602082029050602081019050919050565b6000613d3e613d3984613cff565b613c1c565b90508083825260208201905060208402830185811115613d6157613d60613c63565b5b835b81811015613d8a5780613d768882613b2c565b845260208401935050602081019050613d63565b5050509392505050565b600082601f830112613da957613da8613bb7565b5b8135613db9848260208601613d2b565b91505092915050565b60008060408385031215613dd957613dd86139ce565b5b600083013567ffffffffffffffff811115613df757613df66139d3565b5b613e0385828601613cd1565b925050602083013567ffffffffffffffff811115613e2457613e236139d3565b5b613e3085828601613d94565b9150509250929050565b600080600060608486031215613e5357613e526139ce565b5b6000613e6186828701613a21565b9350506020613e7286828701613a21565b9250506040613e8386828701613b2c565b9150509250925092565b600060ff82169050919050565b613ea381613e8d565b82525050565b6000602082019050613ebe6000830184613e9a565b92915050565b600060208284031215613eda57613ed96139ce565b5b6000613ee884828501613b2c565b91505092915050565b613efa816139f8565b82525050565b6000602082019050613f156000830184613ef1565b92915050565b60008060408385031215613f3257613f316139ce565b5b6000613f4085828601613a21565b9250506020613f5185828601613a21565b9150509250929050565b6000819050919050565b6000613f80613f7b613f76846139d8565b613f5b565b6139d8565b9050919050565b6000613f9282613f65565b9050919050565b6000613fa482613f87565b9050919050565b613fb481613f99565b82525050565b6000602082019050613fcf6000830184613fab565b92915050565b613fde81613b81565b8114613fe957600080fd5b50565b600081359050613ffb81613fd5565b92915050565b60008060408385031215614018576140176139ce565b5b600061402685828601613fec565b925050602061403785828601613b2c565b9150509250929050565b60008060408385031215614058576140576139ce565b5b600061406685828601613a21565b925050602061407785828601613fec565b9150509250929050565b600061408c82613f87565b9050919050565b61409c81614081565b82525050565b60006020820190506140b76000830184614093565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140f3602083613a6e565b91506140fe826140bd565b602082019050919050565b60006020820190508181036000830152614122816140e6565b9050919050565b60008151905061413881613a0a565b92915050565b600060208284031215614154576141536139ce565b5b600061416284828501614129565b91505092915050565b60006040820190506141806000830185613ef1565b61418d6020830184613ef1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561421a578086048111156141f6576141f5614194565b5b60018516156142055780820291505b8081029050614213856141c3565b94506141da565b94509492505050565b60008261423357600190506142ef565b8161424157600090506142ef565b8160018114614257576002811461426157614290565b60019150506142ef565b60ff84111561427357614272614194565b5b8360020a91508482111561428a57614289614194565b5b506142ef565b5060208310610133831016604e8410600b84101617156142c55782820a9050838111156142c0576142bf614194565b5b6142ef565b6142d284848460016141d0565b925090508184048111156142e9576142e8614194565b5b81810290505b9392505050565b600061430182613990565b915061430c83613e8d565b92506143397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614223565b905092915050565b600061434c82613990565b915061435783613990565b925082820261436581613990565b9150828204841483151761437c5761437b614194565b5b5092915050565b6000819050919050565b60006143a86143a361439e84614383565b613f5b565b613990565b9050919050565b6143b88161438d565b82525050565b600060c0820190506143d36000830189613ef1565b6143e0602083018861399a565b6143ed60408301876143af565b6143fa60608301866143af565b6144076080830185613ef1565b61441460a083018461399a565b979650505050505050565b60008151905061442e81613b15565b92915050565b60008060006060848603121561444d5761444c6139ce565b5b600061445b8682870161441f565b935050602061446c8682870161441f565b925050604061447d8682870161441f565b9150509250925092565b600060408201905061449c6000830185613ef1565b6144a9602083018461399a565b9392505050565b6000815190506144bf81613fd5565b92915050565b6000602082840312156144db576144da6139ce565b5b60006144e9848285016144b0565b91505092915050565b600060208284031215614508576145076139ce565b5b60006145168482850161441f565b91505092915050565b7f496e76616c696400000000000000000000000000000000000000000000000000600082015250565b6000614555600783613a6e565b91506145608261451f565b602082019050919050565b6000602082019050818103600083015261458481614548565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006145c582613990565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145f7576145f6614194565b5b600182019050919050565b7f416c726561647920656e61626c65640000000000000000000000000000000000600082015250565b6000614638600f83613a6e565b915061464382614602565b602082019050919050565b600060208201905081810360008301526146678161462b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006146ca602683613a6e565b91506146d58261466e565b604082019050919050565b600060208201905081810360008301526146f9816146bd565b9050919050565b60006040820190506147156000830185613ef1565b61472260208301846143af565b9392505050565b7f54726164696e672069732064697361626c650000000000000000000000000000600082015250565b600061475f601283613a6e565b915061476a82614729565b602082019050919050565b6000602082019050818103600083015261478e81614752565b9050919050565b7f4d61782057616c6c6574206c696d697420657863656564730000000000000000600082015250565b60006147cb601883613a6e565b91506147d682614795565b602082019050919050565b600060208201905081810360008301526147fa816147be565b9050919050565b600061480c82613990565b915061481783613990565b925082820190508082111561482f5761482e614194565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61486a816139f8565b82525050565b600061487c8383614861565b60208301905092915050565b6000602082019050919050565b60006148a082614835565b6148aa8185614840565b93506148b583614851565b8060005b838110156148e65781516148cd8882614870565b97506148d883614888565b9250506001810190506148b9565b5085935050505092915050565b600060a082019050614908600083018861399a565b61491560208301876143af565b81810360408301526149278186614895565b90506149366060830185613ef1565b614943608083018461399a565b9695505050505050565b6000604082019050614962600083018561399a565b61496f602083018461399a565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006149b082613990565b91506149bb83613990565b9250826149cb576149ca614976565b5b828204905092915050565b60006149e182613990565b91506149ec83613990565b9250828203905081811115614a0457614a03614194565b5b9291505056fea2646970667358221220ad59e6e71b38aaf4063c7dbbc38f9ba9270fdeba59e1bc869e45f053676006f564736f6c63430008120033

Deployed Bytecode Sourcemap

10946:11606:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12078:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20430:807;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13300:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13709:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12982:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19912:127;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22227:322;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14272:419;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13092:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11919:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12021:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19574:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13958:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11567:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12141:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13402:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5929:157;;;;;;;;;;;;;:::i;:::-;;11969:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19740:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21445:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21245:192;;;;;;;;;;;;;:::i;:::-;;5715:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13194:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11607:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21742:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11331:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14083:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11695:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11759:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11255:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11357:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21567:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13529:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22002:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11400:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12171:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19476:90;;;;;;;;;;;;;:::i;:::-;;6094:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20047:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11300:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11648:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12078:56;;;;:::o;20430:807::-;5852:12;:10;:12::i;:::-;5842:22;;:6;;;;;;;;;;:22;;;5834:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20520:7:::1;20500:6;;:28;;;;;;;;;;;;;;;;;;20558:6;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20546:40;;;20609:4;20629:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20546:107;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20539:4;;:114;;;;;;;;;;;;;;;;;;20695:4;20664:11;:28;20684:6;;;;;;;;;;;20664:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;20735:4;20710:16;:22;20727:4;;;;;;;;;;;20710:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20786:4;20750:16;:33;20775:6;;;;;;;;;;;20750:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;20823:4;20801:13;:19;20815:4;;;;;;;;;;;20801:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;20871:4;20838:13;:30;20860:6;;;;;;;;;;;20838:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;11165:1;11231:2;:15;;;;:::i;:::-;11213;:33;;;;:::i;:::-;20886:11;:26;20906:4;20886:26;;;;;;;;;;;;;;;:43;20921:6;;;;;;;;;;;20886:43;;;;;;;;;;;;;;;:58;;;;20955:6;;;;;;;;;;;:22;;;20985:9;21018:4;21038:24;21056:4;21038:9;:24::i;:::-;21077:1;21093::::0;21109:7:::1;:5;:7::i;:::-;21131:15;20955:202;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21183:4;;;;;;;;;;;21168:28;;;21205:6;;;;;;;;;;;21214:14;21168:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20430:807:::0;:::o;13300:94::-;13348:13;13381:5;;;;;;;;;;;;;;;;;13374:12;;13300:94;:::o;13709:241::-;13809:4;13861:6;13826:11;:23;13838:10;13826:23;;;;;;;;;;;;;;;:32;13850:7;13826:32;;;;;;;;;;;;;;;:41;;;;13904:7;13883:37;;13892:10;13883:37;;;13913:6;13883:37;;;;;;:::i;:::-;;;;;;;;13938:4;13931:11;;13709:241;;;;:::o;12982:102::-;13037:7;11165:1;11231:2;:15;;;;:::i;:::-;11213;:33;;;;:::i;:::-;13057:19;;12982:102;:::o;19912:127::-;19974:7;20001:11;;;;;;;;;;;:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19994:37;;19912:127;:::o;22227:322::-;5852:12;:10;:12::i;:::-;5842:22;;:6;;;;;;;;;;:22;;;5834:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22385:7:::1;:14;22366:8;:15;:33;22358:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;22427:9;22422:120;22442:8;:15;22438:1;:19;22422:120;;;22479:51;22494:10;22506:8;22515:1;22506:11;;;;;;;;:::i;:::-;;;;;;;;22519:7;22527:1;22519:10;;;;;;;;:::i;:::-;;;;;;;;22479:14;:51::i;:::-;;22459:3;;;;;:::i;:::-;;;;22422:120;;;;22227:322:::0;;:::o;14272:419::-;14406:4;11165:1;11231:2;:15;;;;:::i;:::-;11213;:33;;;;:::i;:::-;14427:11;:19;14439:6;14427:19;;;;;;;;;;;;;;;:31;14447:10;14427:31;;;;;;;;;;;;;;;;:47;14423:201;;14525:87;14579:6;14525:87;;;;;;;;;;;;;;;;;:11;:19;14537:6;14525:19;;;;;;;;;;;;;;;:31;14545:10;14525:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;14491:11;:19;14503:6;14491:19;;;;;;;;;;;;;;;:31;14511:10;14491:31;;;;;;;;;;;;;;;:121;;;;14423:201;14643:40;14657:6;14665:9;14676:6;14643:13;:40::i;:::-;14636:47;;14272:419;;;;;:::o;13092:94::-;13144:5;11165:1;13162:16;;13092:94;:::o;11919:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;12021:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;19574:158::-;19657:7;19684:11;;;;;;;;;;;:27;;;19712:11;19684:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19677:47;;19574:158;;;:::o;13958:117::-;14013:4;14037:30;14045:7;11165:1;11231:2;:15;;;;:::i;:::-;11213;:33;;;;:::i;:::-;14037:7;:30::i;:::-;14030:37;;13958:117;;;:::o;11567:33::-;;;;:::o;12141:23::-;;;;;;;;;;;;;:::o;13402:119::-;13468:7;13495:9;:18;13505:7;13495:18;;;;;;;;;;;;;;;;13488:25;;13402:119;;;:::o;5929:157::-;5852:12;:10;:12::i;:::-;5842:22;;:6;;;;;;;;;;:22;;;5834:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6036:1:::1;5999:40;;6020:6;::::0;::::1;;;;;;;;5999:40;;;;;;;;;;;;6075:1;6050:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;5929:157::o:0;11969:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;19740:164::-;19827:7;19854:11;;;;;;;;;;;:29;;;19884:11;19854:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19847:49;;19740:164;;;:::o;21445:114::-;5852:12;:10;:12::i;:::-;5842:22;;:6;;;;;;;;;;:22;;;5834:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21523:10:::1;21515:28;;:36;21544:6;21515:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21445:114:::0;:::o;21245:192::-;5852:12;:10;:12::i;:::-;5842:22;;:6;;;;;;;;;;:22;;;5834:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21309:7:::1;;;;;;;;;;;21308:8;21300:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;21357:4;21347:7;;:14;;;;;;;;;;;;;;;;;;21386:4;21372:11;;:18;;;;;;;;;;;;;;;;;;21414:15;21401:10;:28;;;;21245:192::o:0;5715:79::-;5753:7;5780:6;;;;;;;;;;;5773:13;;5715:79;:::o;13194:98::-;13244:13;13277:7;;;;;;;;;;;;;;;;;13270:14;;13194:98;:::o;11607:34::-;;;;:::o;21742:252::-;5852:12;:10;:12::i;:::-;5842:22;;:6;;;;;;;;;;:22;;;5834:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21909:22:::1;21885:21;;:46;;;;;;;;;;;;;;;;;;21965:21;21942:20;;:44;;;;;;;;;;;;;;;;;;21742:252:::0;;:::o;11331:19::-;;;;;;;;;;;;;:::o;14083:181::-;14188:4;14212:44;14226:10;14238:9;14249:6;14212:13;:44::i;:::-;14205:51;;14083:181;;;;:::o;11695:57::-;;;;:::o;11759:25::-;;;;:::o;11255:38::-;;;;;;;;;;;;;:::o;11357:36::-;;;;;;;;;;;;;:::o;21567:167::-;5852:12;:10;:12::i;:::-;5842:22;;:6;;;;;;;;;;:22;;;5834:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21694:5:::1;21679:30;;;21710:7;:5;:7::i;:::-;21719:6;21679:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21567:167:::0;;:::o;13529:172::-;13638:7;13665:11;:19;13677:6;13665:19;;;;;;;;;;;;;;;:28;13685:7;13665:28;;;;;;;;;;;;;;;;13658:35;;13529:172;;;;:::o;22002:217::-;5852:12;:10;:12::i;:::-;5842:22;;:6;;;;;;;;;;:22;;;5834:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22142:1:::1;22126:13;;:17;22118:26;;;::::0;::::1;;22169:8;22155:11;;:22;;;;;;;;;;;;;;;;;;22204:7;22188:13;:23;;;;22002:217:::0;;:::o;11400:35::-;;;;;;;;;;;;;:::o;12171:19::-;;;;;;;;;;;;;:::o;19476:90::-;19521:11;;;;;;;;;;;:25;;;19547:10;19521:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19476:90::o;6094:281::-;5852:12;:10;:12::i;:::-;5842:22;;:6;;;;;;;;;;:22;;;5834:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6217:1:::1;6197:22;;:8;:22;;::::0;6175:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6330:8;6301:38;;6322:6;::::0;::::1;;;;;;;;6301:38;;;;;;;;;;;;6359:8;6350:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6094:281:::0;:::o;20047:375::-;5852:12;:10;:12::i;:::-;5842:22;;:6;;;;;;;;;;:22;;;5834:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20186:4:::1;20168:23;;:6;:23;;;;:41;;;;;20205:4;;;;;;;;;;;20195:14;;:6;:14;;;;20168:41;20160:50;;;::::0;::::1;;20248:6;20221:16;:24;20238:6;20221:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;20269:6;20265:150;;;20292:11;;;;;;;;;;;:20;;;20313:6;20321:1;20292:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20265:150;;;20356:11;;;;;;;;;;;:20;;;20377:6;20385:9;:17;20395:6;20385:17;;;;;;;;;;;;;;;;20356:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20265:150;20047:375:::0;;:::o;11300:24::-;;;;;;;;;;;;;:::o;11648:38::-;;;;:::o;5051:115::-;5104:15;5147:10;5132:26;;5051:115;:::o;16826:401::-;16953:4;16990:90;17026:6;16990:90;;;;;;;;;;;;;;;;;:9;:17;17000:6;16990:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;16970:9;:17;16980:6;16970:17;;;;;;;;;;;;;;;:110;;;;17114:32;17139:6;17114:9;:20;17124:9;17114:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17091:9;:20;17101:9;17091:20;;;;;;;;;;;;;;;:55;;;;17179:9;17162:35;;17171:6;17162:35;;;17190:6;17162:35;;;;;;:::i;:::-;;;;;;;;17215:4;17208:11;;16826:401;;;;;:::o;2236:240::-;2356:7;2414:1;2409;:6;;2417:12;2401:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2456:1;2452;:5;2445:12;;2236:240;;;;;:::o;14699:2119::-;14825:4;14847:11;:19;14859:6;14847:19;;;;;;;;;;;;;;;;;;;;;;;;;14846:20;:47;;;;;14871:11;:22;14883:9;14871:22;;;;;;;;;;;;;;;;;;;;;;;;;14870:23;14846:47;14842:299;;;14959:7;;;;;;;;;;;14954:176;;15025:6;15017:14;;:4;;;;;;;;;;;:14;;;;:35;;;;;15043:9;15035:17;;:4;;;;;;;;;;;:17;;;;15017:35;14987:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;14954:176;14842:299;15158:13;:24;15172:9;15158:24;;;;;;;;;;;;;;;;;;;;;;;;;15153:195;;15261:15;;15225:32;15250:6;15225:20;15235:9;15225;:20::i;:::-;:24;;:32;;;;:::i;:::-;:51;;15199:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;15153:195;15364:6;;;;;;;;;;;15360:87;;;15394:41;15409:6;15417:9;15428:6;15394:14;:41::i;:::-;15387:48;;;;15360:87;15463:16;:14;:16::i;:::-;15459:59;;;15496:10;:8;:10::i;:::-;15459:59;15550:90;15586:6;15550:90;;;;;;;;;;;;;;;;;:9;:17;15560:6;15550:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;15530:9;:17;15540:6;15530:17;;;;;;;;;;;;;;;:110;;;;15653:22;15704:11;:19;15716:6;15704:19;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;;15740:11;:22;15752:9;15740:22;;;;;;;;;;;;;;;;;;;;;;;;;15704:58;:112;;;;15790:4;;;;;;;;;;;15780:14;;:6;:14;;;;:35;;;;;15811:4;;;;;;;;;;;15798:17;;:9;:17;;;;15780:35;15704:112;15686:667;;;15860:6;15843:23;;15686:667;;;15899:17;15945:4;;;;;;;;;;;15935:14;;:6;:14;;;15931:411;;15982:43;16010:14;;15982:23;15993:11;;15982:6;:10;;:23;;;;:::i;:::-;:27;;:43;;;;:::i;:::-;15970:55;;16061:21;16072:9;16061:6;:10;;:21;;;;:::i;:::-;16044:38;;16101:26;16109:6;16117:9;16101:7;:26::i;:::-;15931:411;;;16180:44;16209:14;;16180:24;16191:12;;16180:6;:10;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;16168:56;;16260:21;16271:9;16260:6;:10;;:21;;;;:::i;:::-;16243:38;;16300:26;16308:6;16316:9;16300:7;:26::i;:::-;15931:411;15884:469;15686:667;16388:40;16413:14;16388:9;:20;16398:9;16388:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;16365:9;:20;16375:9;16365:20;;;;;;;;;;;;;;;:63;;;;16461:9;16444:43;;16453:6;16444:43;;;16472:14;16444:43;;;;;;:::i;:::-;;;;;;;;16505:16;:24;16522:6;16505:24;;;;;;;;;;;;;;;;;;;;;;;;;16500:120;;16550:11;;;;;;;;;;;:20;;;16571:6;16579:9;:17;16589:6;16579:17;;;;;;;;;;;;;;;;16550:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16546:63;16500:120;16635:16;:27;16652:9;16635:27;;;;;;;;;;;;;;;;;;;;;;;;;16630:159;;16700:11;;;;;;;;;;;:20;;;16721:9;16732;:20;16742:9;16732:20;;;;;;;;;;;;;;;;16700:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16679:99;16630:159;16806:4;16799:11;;;14699:2119;;;;;;:::o;1706:98::-;1764:7;1795:1;1791;:5;;;;:::i;:::-;1784:12;;1706:98;;;;:::o;17447:222::-;17496:4;17547;;;;;;;;;;;17533:18;;:10;:18;;;;:42;;;;;17569:6;;;;;;;;;;;17568:7;17533:42;:70;;;;;17592:11;;;;;;;;;;;17533:70;:128;;;;;17648:13;;17620:9;:24;17638:4;17620:24;;;;;;;;;;;;;;;;:41;;17533:128;17513:148;;17447:222;:::o;17677:1791::-;12255:4;12246:6;;:13;;;;;;;;;;;;;;;;;;17726:23:::1;17752:105;17855:1;17752:84;17821:14;;17752:50;17784:17;;17752:13;;:31;;:50;;;;:::i;:::-;:68;;:84;;;;:::i;:::-;:102;;:105;;;;:::i;:::-;17726:131;;17870:20;17893:34;17911:15;17893:13;;:17;;:34;;;;:::i;:::-;17870:57;;11165:1;11231:2;:15;;;;:::i;:::-;11213;:33;;;;:::i;:::-;17938:11;:26;17958:4;17938:26;;;;;;;;;;;;;;;:43;17973:6;;;;;;;;;;;17938:43;;;;;;;;;;;;;;;:58;;;;18007:21;18045:1;18031:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18007:40;;18076:4;18058;18063:1;18058:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18102:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18092:4;18097:1;18092:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18126:21;18150;18126:45;;18184:6;;;;;;;;;;;:57;;;18256:12;18283:1;18299:4;18326;18346:15;18184:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18385:17;18405:40;18431:13;18405:21;:25;;:40;;;;:::i;:::-;18385:60;;18458:25;18486:68;18519:24;18541:1;18519:17;;:21;;:24;;;;:::i;:::-;18486:14;;:18;;:68;;;;:::i;:::-;18458:96;;18567:26;18596:104;18698:1;18596:83;18661:17;18596:46;18624:17;;18596:9;:27;;:46;;;;:::i;:::-;:64;;:83;;;;:::i;:::-;:101;;:104;;;;:::i;:::-;18567:133;;18735:1;18717:15;:19;18713:364;;;18753:6;;;;;;;;;;;:22;;;18783:18;18829:4;18853:15;18887:1;18907::::0;18927:21:::1;;;;;;;;;;;18967:15;18753:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19017:48;19029:18;19049:15;19017:48;;;;;;;:::i;:::-;;;;;;;;18713:364;19089:27;19119:80;19171:17;19119:33;19133:18;;19119:9;:13;;:33;;;;:::i;:::-;:37;;:80;;;;:::i;:::-;19089:110;;19236:1;19214:19;:23;19210:120;;;19258:11;;;;;;;;;;;:19;;;19285;19258:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;19254:65:::0;19210:120:::1;19370:1;19346:21;:25;19342:119;;;19396:20;;;;;;;;;;;19388:38;;:61;19427:21;19388:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19342:119;17715:1753;;;;;;;;12291:5:::0;12282:6;;:14;;;;;;;;;;;;;;;;;;17677:1791::o;1918:98::-;1976:7;2007:1;2003;:5;;;;:::i;:::-;1996:12;;1918:98;;;;:::o;2024:::-;2082:7;2113:1;2109;:5;;;;:::i;:::-;2102:12;;2024:98;;;;:::o;1812:::-;1870:7;1901:1;1897;:5;;;;:::i;:::-;1890:12;;1812:98;;;;:::o;17235:204::-;17334:39;17363:9;17334;:24;17352:4;17334:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17307:9;:24;17325:4;17307:24;;;;;;;;;;;;;;;:66;;;;17414:4;17389:42;;17398:6;17389:42;;;17421:9;17389:42;;;;;;:::i;:::-;;;;;;;;17235:204;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:99::-;1663:6;1697:5;1691:12;1681:22;;1611:99;;;:::o;1716:169::-;1800:11;1834:6;1829:3;1822:19;1874:4;1869:3;1865:14;1850:29;;1716:169;;;;:::o;1891:246::-;1972:1;1982:113;1996:6;1993:1;1990:13;1982:113;;;2081:1;2076:3;2072:11;2066:18;2062:1;2057:3;2053:11;2046:39;2018:2;2015:1;2011:10;2006:15;;1982:113;;;2129:1;2120:6;2115:3;2111:16;2104:27;1953:184;1891:246;;;:::o;2143:102::-;2184:6;2235:2;2231:7;2226:2;2219:5;2215:14;2211:28;2201:38;;2143:102;;;:::o;2251:377::-;2339:3;2367:39;2400:5;2367:39;:::i;:::-;2422:71;2486:6;2481:3;2422:71;:::i;:::-;2415:78;;2502:65;2560:6;2555:3;2548:4;2541:5;2537:16;2502:65;:::i;:::-;2592:29;2614:6;2592:29;:::i;:::-;2587:3;2583:39;2576:46;;2343:285;2251:377;;;;:::o;2634:313::-;2747:4;2785:2;2774:9;2770:18;2762:26;;2834:9;2828:4;2824:20;2820:1;2809:9;2805:17;2798:47;2862:78;2935:4;2926:6;2862:78;:::i;:::-;2854:86;;2634:313;;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:117::-;4242:1;4239;4232:12;4256:180;4304:77;4301:1;4294:88;4401:4;4398:1;4391:15;4425:4;4422:1;4415:15;4442:281;4525:27;4547:4;4525:27;:::i;:::-;4517:6;4513:40;4655:6;4643:10;4640:22;4619:18;4607:10;4604:34;4601:62;4598:88;;;4666:18;;:::i;:::-;4598:88;4706:10;4702:2;4695:22;4485:238;4442:281;;:::o;4729:129::-;4763:6;4790:20;;:::i;:::-;4780:30;;4819:33;4847:4;4839:6;4819:33;:::i;:::-;4729:129;;;:::o;4864:311::-;4941:4;5031:18;5023:6;5020:30;5017:56;;;5053:18;;:::i;:::-;5017:56;5103:4;5095:6;5091:17;5083:25;;5163:4;5157;5153:15;5145:23;;4864:311;;;:::o;5181:117::-;5290:1;5287;5280:12;5321:710;5417:5;5442:81;5458:64;5515:6;5458:64;:::i;:::-;5442:81;:::i;:::-;5433:90;;5543:5;5572:6;5565:5;5558:21;5606:4;5599:5;5595:16;5588:23;;5659:4;5651:6;5647:17;5639:6;5635:30;5688:3;5680:6;5677:15;5674:122;;;5707:79;;:::i;:::-;5674:122;5822:6;5805:220;5839:6;5834:3;5831:15;5805:220;;;5914:3;5943:37;5976:3;5964:10;5943:37;:::i;:::-;5938:3;5931:50;6010:4;6005:3;6001:14;5994:21;;5881:144;5865:4;5860:3;5856:14;5849:21;;5805:220;;;5809:21;5423:608;;5321:710;;;;;:::o;6054:370::-;6125:5;6174:3;6167:4;6159:6;6155:17;6151:27;6141:122;;6182:79;;:::i;:::-;6141:122;6299:6;6286:20;6324:94;6414:3;6406:6;6399:4;6391:6;6387:17;6324:94;:::i;:::-;6315:103;;6131:293;6054:370;;;;:::o;6430:311::-;6507:4;6597:18;6589:6;6586:30;6583:56;;;6619:18;;:::i;:::-;6583:56;6669:4;6661:6;6657:17;6649:25;;6729:4;6723;6719:15;6711:23;;6430:311;;;:::o;6764:710::-;6860:5;6885:81;6901:64;6958:6;6901:64;:::i;:::-;6885:81;:::i;:::-;6876:90;;6986:5;7015:6;7008:5;7001:21;7049:4;7042:5;7038:16;7031:23;;7102:4;7094:6;7090:17;7082:6;7078:30;7131:3;7123:6;7120:15;7117:122;;;7150:79;;:::i;:::-;7117:122;7265:6;7248:220;7282:6;7277:3;7274:15;7248:220;;;7357:3;7386:37;7419:3;7407:10;7386:37;:::i;:::-;7381:3;7374:50;7453:4;7448:3;7444:14;7437:21;;7324:144;7308:4;7303:3;7299:14;7292:21;;7248:220;;;7252:21;6866:608;;6764:710;;;;;:::o;7497:370::-;7568:5;7617:3;7610:4;7602:6;7598:17;7594:27;7584:122;;7625:79;;:::i;:::-;7584:122;7742:6;7729:20;7767:94;7857:3;7849:6;7842:4;7834:6;7830:17;7767:94;:::i;:::-;7758:103;;7574:293;7497:370;;;;:::o;7873:894::-;7991:6;7999;8048:2;8036:9;8027:7;8023:23;8019:32;8016:119;;;8054:79;;:::i;:::-;8016:119;8202:1;8191:9;8187:17;8174:31;8232:18;8224:6;8221:30;8218:117;;;8254:79;;:::i;:::-;8218:117;8359:78;8429:7;8420:6;8409:9;8405:22;8359:78;:::i;:::-;8349:88;;8145:302;8514:2;8503:9;8499:18;8486:32;8545:18;8537:6;8534:30;8531:117;;;8567:79;;:::i;:::-;8531:117;8672:78;8742:7;8733:6;8722:9;8718:22;8672:78;:::i;:::-;8662:88;;8457:303;7873:894;;;;;:::o;8773:619::-;8850:6;8858;8866;8915:2;8903:9;8894:7;8890:23;8886:32;8883:119;;;8921:79;;:::i;:::-;8883:119;9041:1;9066:53;9111:7;9102:6;9091:9;9087:22;9066:53;:::i;:::-;9056:63;;9012:117;9168:2;9194:53;9239:7;9230:6;9219:9;9215:22;9194:53;:::i;:::-;9184:63;;9139:118;9296:2;9322:53;9367:7;9358:6;9347:9;9343:22;9322:53;:::i;:::-;9312:63;;9267:118;8773:619;;;;;:::o;9398:86::-;9433:7;9473:4;9466:5;9462:16;9451:27;;9398:86;;;:::o;9490:112::-;9573:22;9589:5;9573:22;:::i;:::-;9568:3;9561:35;9490:112;;:::o;9608:214::-;9697:4;9735:2;9724:9;9720:18;9712:26;;9748:67;9812:1;9801:9;9797:17;9788:6;9748:67;:::i;:::-;9608:214;;;;:::o;9828:329::-;9887:6;9936:2;9924:9;9915:7;9911:23;9907:32;9904:119;;;9942:79;;:::i;:::-;9904:119;10062:1;10087:53;10132:7;10123:6;10112:9;10108:22;10087:53;:::i;:::-;10077:63;;10033:117;9828:329;;;;:::o;10163:118::-;10250:24;10268:5;10250:24;:::i;:::-;10245:3;10238:37;10163:118;;:::o;10287:222::-;10380:4;10418:2;10407:9;10403:18;10395:26;;10431:71;10499:1;10488:9;10484:17;10475:6;10431:71;:::i;:::-;10287:222;;;;:::o;10515:474::-;10583:6;10591;10640:2;10628:9;10619:7;10615:23;10611:32;10608:119;;;10646:79;;:::i;:::-;10608:119;10766:1;10791:53;10836:7;10827:6;10816:9;10812:22;10791:53;:::i;:::-;10781:63;;10737:117;10893:2;10919:53;10964:7;10955:6;10944:9;10940:22;10919:53;:::i;:::-;10909:63;;10864:118;10515:474;;;;;:::o;10995:60::-;11023:3;11044:5;11037:12;;10995:60;;;:::o;11061:142::-;11111:9;11144:53;11162:34;11171:24;11189:5;11171:24;:::i;:::-;11162:34;:::i;:::-;11144:53;:::i;:::-;11131:66;;11061:142;;;:::o;11209:126::-;11259:9;11292:37;11323:5;11292:37;:::i;:::-;11279:50;;11209:126;;;:::o;11341:154::-;11419:9;11452:37;11483:5;11452:37;:::i;:::-;11439:50;;11341:154;;;:::o;11501:187::-;11616:65;11675:5;11616:65;:::i;:::-;11611:3;11604:78;11501:187;;:::o;11694:278::-;11815:4;11853:2;11842:9;11838:18;11830:26;;11866:99;11962:1;11951:9;11947:17;11938:6;11866:99;:::i;:::-;11694:278;;;;:::o;11978:116::-;12048:21;12063:5;12048:21;:::i;:::-;12041:5;12038:32;12028:60;;12084:1;12081;12074:12;12028:60;11978:116;:::o;12100:133::-;12143:5;12181:6;12168:20;12159:29;;12197:30;12221:5;12197:30;:::i;:::-;12100:133;;;;:::o;12239:468::-;12304:6;12312;12361:2;12349:9;12340:7;12336:23;12332:32;12329:119;;;12367:79;;:::i;:::-;12329:119;12487:1;12512:50;12554:7;12545:6;12534:9;12530:22;12512:50;:::i;:::-;12502:60;;12458:114;12611:2;12637:53;12682:7;12673:6;12662:9;12658:22;12637:53;:::i;:::-;12627:63;;12582:118;12239:468;;;;;:::o;12713:::-;12778:6;12786;12835:2;12823:9;12814:7;12810:23;12806:32;12803:119;;;12841:79;;:::i;:::-;12803:119;12961:1;12986:53;13031:7;13022:6;13011:9;13007:22;12986:53;:::i;:::-;12976:63;;12932:117;13088:2;13114:50;13156:7;13147:6;13136:9;13132:22;13114:50;:::i;:::-;13104:60;;13059:115;12713:468;;;;;:::o;13187:144::-;13255:9;13288:37;13319:5;13288:37;:::i;:::-;13275:50;;13187:144;;;:::o;13337:167::-;13442:55;13491:5;13442:55;:::i;:::-;13437:3;13430:68;13337:167;;:::o;13510:258::-;13621:4;13659:2;13648:9;13644:18;13636:26;;13672:89;13758:1;13747:9;13743:17;13734:6;13672:89;:::i;:::-;13510:258;;;;:::o;13774:182::-;13914:34;13910:1;13902:6;13898:14;13891:58;13774:182;:::o;13962:366::-;14104:3;14125:67;14189:2;14184:3;14125:67;:::i;:::-;14118:74;;14201:93;14290:3;14201:93;:::i;:::-;14319:2;14314:3;14310:12;14303:19;;13962:366;;;:::o;14334:419::-;14500:4;14538:2;14527:9;14523:18;14515:26;;14587:9;14581:4;14577:20;14573:1;14562:9;14558:17;14551:47;14615:131;14741:4;14615:131;:::i;:::-;14607:139;;14334:419;;;:::o;14759:143::-;14816:5;14847:6;14841:13;14832:22;;14863:33;14890:5;14863:33;:::i;:::-;14759:143;;;;:::o;14908:351::-;14978:6;15027:2;15015:9;15006:7;15002:23;14998:32;14995:119;;;15033:79;;:::i;:::-;14995:119;15153:1;15178:64;15234:7;15225:6;15214:9;15210:22;15178:64;:::i;:::-;15168:74;;15124:128;14908:351;;;;:::o;15265:332::-;15386:4;15424:2;15413:9;15409:18;15401:26;;15437:71;15505:1;15494:9;15490:17;15481:6;15437:71;:::i;:::-;15518:72;15586:2;15575:9;15571:18;15562:6;15518:72;:::i;:::-;15265:332;;;;;:::o;15603:180::-;15651:77;15648:1;15641:88;15748:4;15745:1;15738:15;15772:4;15769:1;15762:15;15789:102;15831:8;15878:5;15875:1;15871:13;15850:34;;15789:102;;;:::o;15897:848::-;15958:5;15965:4;15989:6;15980:15;;16013:5;16004:14;;16027:712;16048:1;16038:8;16035:15;16027:712;;;16143:4;16138:3;16134:14;16128:4;16125:24;16122:50;;;16152:18;;:::i;:::-;16122:50;16202:1;16192:8;16188:16;16185:451;;;16617:4;16610:5;16606:16;16597:25;;16185:451;16667:4;16661;16657:15;16649:23;;16697:32;16720:8;16697:32;:::i;:::-;16685:44;;16027:712;;;15897:848;;;;;;;:::o;16751:1073::-;16805:5;16996:8;16986:40;;17017:1;17008:10;;17019:5;;16986:40;17045:4;17035:36;;17062:1;17053:10;;17064:5;;17035:36;17131:4;17179:1;17174:27;;;;17215:1;17210:191;;;;17124:277;;17174:27;17192:1;17183:10;;17194:5;;;17210:191;17255:3;17245:8;17242:17;17239:43;;;17262:18;;:::i;:::-;17239:43;17311:8;17308:1;17304:16;17295:25;;17346:3;17339:5;17336:14;17333:40;;;17353:18;;:::i;:::-;17333:40;17386:5;;;17124:277;;17510:2;17500:8;17497:16;17491:3;17485:4;17482:13;17478:36;17460:2;17450:8;17447:16;17442:2;17436:4;17433:12;17429:35;17413:111;17410:246;;;17566:8;17560:4;17556:19;17547:28;;17601:3;17594:5;17591:14;17588:40;;;17608:18;;:::i;:::-;17588:40;17641:5;;17410:246;17681:42;17719:3;17709:8;17703:4;17700:1;17681:42;:::i;:::-;17666:57;;;;17755:4;17750:3;17746:14;17739:5;17736:25;17733:51;;;17764:18;;:::i;:::-;17733:51;17813:4;17806:5;17802:16;17793:25;;16751:1073;;;;;;:::o;17830:281::-;17888:5;17912:23;17930:4;17912:23;:::i;:::-;17904:31;;17956:25;17972:8;17956:25;:::i;:::-;17944:37;;18000:104;18037:66;18027:8;18021:4;18000:104;:::i;:::-;17991:113;;17830:281;;;;:::o;18117:410::-;18157:7;18180:20;18198:1;18180:20;:::i;:::-;18175:25;;18214:20;18232:1;18214:20;:::i;:::-;18209:25;;18269:1;18266;18262:9;18291:30;18309:11;18291:30;:::i;:::-;18280:41;;18470:1;18461:7;18457:15;18454:1;18451:22;18431:1;18424:9;18404:83;18381:139;;18500:18;;:::i;:::-;18381:139;18165:362;18117:410;;;;:::o;18533:85::-;18578:7;18607:5;18596:16;;18533:85;;;:::o;18624:158::-;18682:9;18715:61;18733:42;18742:32;18768:5;18742:32;:::i;:::-;18733:42;:::i;:::-;18715:61;:::i;:::-;18702:74;;18624:158;;;:::o;18788:147::-;18883:45;18922:5;18883:45;:::i;:::-;18878:3;18871:58;18788:147;;:::o;18941:807::-;19190:4;19228:3;19217:9;19213:19;19205:27;;19242:71;19310:1;19299:9;19295:17;19286:6;19242:71;:::i;:::-;19323:72;19391:2;19380:9;19376:18;19367:6;19323:72;:::i;:::-;19405:80;19481:2;19470:9;19466:18;19457:6;19405:80;:::i;:::-;19495;19571:2;19560:9;19556:18;19547:6;19495:80;:::i;:::-;19585:73;19653:3;19642:9;19638:19;19629:6;19585:73;:::i;:::-;19668;19736:3;19725:9;19721:19;19712:6;19668:73;:::i;:::-;18941:807;;;;;;;;;:::o;19754:143::-;19811:5;19842:6;19836:13;19827:22;;19858:33;19885:5;19858:33;:::i;:::-;19754:143;;;;:::o;19903:663::-;19991:6;19999;20007;20056:2;20044:9;20035:7;20031:23;20027:32;20024:119;;;20062:79;;:::i;:::-;20024:119;20182:1;20207:64;20263:7;20254:6;20243:9;20239:22;20207:64;:::i;:::-;20197:74;;20153:128;20320:2;20346:64;20402:7;20393:6;20382:9;20378:22;20346:64;:::i;:::-;20336:74;;20291:129;20459:2;20485:64;20541:7;20532:6;20521:9;20517:22;20485:64;:::i;:::-;20475:74;;20430:129;19903:663;;;;;:::o;20572:332::-;20693:4;20731:2;20720:9;20716:18;20708:26;;20744:71;20812:1;20801:9;20797:17;20788:6;20744:71;:::i;:::-;20825:72;20893:2;20882:9;20878:18;20869:6;20825:72;:::i;:::-;20572:332;;;;;:::o;20910:137::-;20964:5;20995:6;20989:13;20980:22;;21011:30;21035:5;21011:30;:::i;:::-;20910:137;;;;:::o;21053:345::-;21120:6;21169:2;21157:9;21148:7;21144:23;21140:32;21137:119;;;21175:79;;:::i;:::-;21137:119;21295:1;21320:61;21373:7;21364:6;21353:9;21349:22;21320:61;:::i;:::-;21310:71;;21266:125;21053:345;;;;:::o;21404:351::-;21474:6;21523:2;21511:9;21502:7;21498:23;21494:32;21491:119;;;21529:79;;:::i;:::-;21491:119;21649:1;21674:64;21730:7;21721:6;21710:9;21706:22;21674:64;:::i;:::-;21664:74;;21620:128;21404:351;;;;:::o;21761:157::-;21901:9;21897:1;21889:6;21885:14;21878:33;21761:157;:::o;21924:365::-;22066:3;22087:66;22151:1;22146:3;22087:66;:::i;:::-;22080:73;;22162:93;22251:3;22162:93;:::i;:::-;22280:2;22275:3;22271:12;22264:19;;21924:365;;;:::o;22295:419::-;22461:4;22499:2;22488:9;22484:18;22476:26;;22548:9;22542:4;22538:20;22534:1;22523:9;22519:17;22512:47;22576:131;22702:4;22576:131;:::i;:::-;22568:139;;22295:419;;;:::o;22720:180::-;22768:77;22765:1;22758:88;22865:4;22862:1;22855:15;22889:4;22886:1;22879:15;22906:233;22945:3;22968:24;22986:5;22968:24;:::i;:::-;22959:33;;23014:66;23007:5;23004:77;23001:103;;23084:18;;:::i;:::-;23001:103;23131:1;23124:5;23120:13;23113:20;;22906:233;;;:::o;23145:165::-;23285:17;23281:1;23273:6;23269:14;23262:41;23145:165;:::o;23316:366::-;23458:3;23479:67;23543:2;23538:3;23479:67;:::i;:::-;23472:74;;23555:93;23644:3;23555:93;:::i;:::-;23673:2;23668:3;23664:12;23657:19;;23316:366;;;:::o;23688:419::-;23854:4;23892:2;23881:9;23877:18;23869:26;;23941:9;23935:4;23931:20;23927:1;23916:9;23912:17;23905:47;23969:131;24095:4;23969:131;:::i;:::-;23961:139;;23688:419;;;:::o;24113:225::-;24253:34;24249:1;24241:6;24237:14;24230:58;24322:8;24317:2;24309:6;24305:15;24298:33;24113:225;:::o;24344:366::-;24486:3;24507:67;24571:2;24566:3;24507:67;:::i;:::-;24500:74;;24583:93;24672:3;24583:93;:::i;:::-;24701:2;24696:3;24692:12;24685:19;;24344:366;;;:::o;24716:419::-;24882:4;24920:2;24909:9;24905:18;24897:26;;24969:9;24963:4;24959:20;24955:1;24944:9;24940:17;24933:47;24997:131;25123:4;24997:131;:::i;:::-;24989:139;;24716:419;;;:::o;25141:348::-;25270:4;25308:2;25297:9;25293:18;25285:26;;25321:71;25389:1;25378:9;25374:17;25365:6;25321:71;:::i;:::-;25402:80;25478:2;25467:9;25463:18;25454:6;25402:80;:::i;:::-;25141:348;;;;;:::o;25495:168::-;25635:20;25631:1;25623:6;25619:14;25612:44;25495:168;:::o;25669:366::-;25811:3;25832:67;25896:2;25891:3;25832:67;:::i;:::-;25825:74;;25908:93;25997:3;25908:93;:::i;:::-;26026:2;26021:3;26017:12;26010:19;;25669:366;;;:::o;26041:419::-;26207:4;26245:2;26234:9;26230:18;26222:26;;26294:9;26288:4;26284:20;26280:1;26269:9;26265:17;26258:47;26322:131;26448:4;26322:131;:::i;:::-;26314:139;;26041:419;;;:::o;26466:174::-;26606:26;26602:1;26594:6;26590:14;26583:50;26466:174;:::o;26646:366::-;26788:3;26809:67;26873:2;26868:3;26809:67;:::i;:::-;26802:74;;26885:93;26974:3;26885:93;:::i;:::-;27003:2;26998:3;26994:12;26987:19;;26646:366;;;:::o;27018:419::-;27184:4;27222:2;27211:9;27207:18;27199:26;;27271:9;27265:4;27261:20;27257:1;27246:9;27242:17;27235:47;27299:131;27425:4;27299:131;:::i;:::-;27291:139;;27018:419;;;:::o;27443:191::-;27483:3;27502:20;27520:1;27502:20;:::i;:::-;27497:25;;27536:20;27554:1;27536:20;:::i;:::-;27531:25;;27579:1;27576;27572:9;27565:16;;27600:3;27597:1;27594:10;27591:36;;;27607:18;;:::i;:::-;27591:36;27443:191;;;;:::o;27640:114::-;27707:6;27741:5;27735:12;27725:22;;27640:114;;;:::o;27760:184::-;27859:11;27893:6;27888:3;27881:19;27933:4;27928:3;27924:14;27909:29;;27760:184;;;;:::o;27950:132::-;28017:4;28040:3;28032:11;;28070:4;28065:3;28061:14;28053:22;;27950:132;;;:::o;28088:108::-;28165:24;28183:5;28165:24;:::i;:::-;28160:3;28153:37;28088:108;;:::o;28202:179::-;28271:10;28292:46;28334:3;28326:6;28292:46;:::i;:::-;28370:4;28365:3;28361:14;28347:28;;28202:179;;;;:::o;28387:113::-;28457:4;28489;28484:3;28480:14;28472:22;;28387:113;;;:::o;28536:732::-;28655:3;28684:54;28732:5;28684:54;:::i;:::-;28754:86;28833:6;28828:3;28754:86;:::i;:::-;28747:93;;28864:56;28914:5;28864:56;:::i;:::-;28943:7;28974:1;28959:284;28984:6;28981:1;28978:13;28959:284;;;29060:6;29054:13;29087:63;29146:3;29131:13;29087:63;:::i;:::-;29080:70;;29173:60;29226:6;29173:60;:::i;:::-;29163:70;;29019:224;29006:1;29003;28999:9;28994:14;;28959:284;;;28963:14;29259:3;29252:10;;28660:608;;;28536:732;;;;:::o;29274:831::-;29537:4;29575:3;29564:9;29560:19;29552:27;;29589:71;29657:1;29646:9;29642:17;29633:6;29589:71;:::i;:::-;29670:80;29746:2;29735:9;29731:18;29722:6;29670:80;:::i;:::-;29797:9;29791:4;29787:20;29782:2;29771:9;29767:18;29760:48;29825:108;29928:4;29919:6;29825:108;:::i;:::-;29817:116;;29943:72;30011:2;30000:9;29996:18;29987:6;29943:72;:::i;:::-;30025:73;30093:3;30082:9;30078:19;30069:6;30025:73;:::i;:::-;29274:831;;;;;;;;:::o;30111:332::-;30232:4;30270:2;30259:9;30255:18;30247:26;;30283:71;30351:1;30340:9;30336:17;30327:6;30283:71;:::i;:::-;30364:72;30432:2;30421:9;30417:18;30408:6;30364:72;:::i;:::-;30111:332;;;;;:::o;30449:180::-;30497:77;30494:1;30487:88;30594:4;30591:1;30584:15;30618:4;30615:1;30608:15;30635:185;30675:1;30692:20;30710:1;30692:20;:::i;:::-;30687:25;;30726:20;30744:1;30726:20;:::i;:::-;30721:25;;30765:1;30755:35;;30770:18;;:::i;:::-;30755:35;30812:1;30809;30805:9;30800:14;;30635:185;;;;:::o;30826:194::-;30866:4;30886:20;30904:1;30886:20;:::i;:::-;30881:25;;30920:20;30938:1;30920:20;:::i;:::-;30915:25;;30964:1;30961;30957:9;30949:17;;30988:1;30982:4;30979:11;30976:37;;;30993:18;;:::i;:::-;30976:37;30826:194;;;;:::o

Swarm Source

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