ETH Price: $2,270.34 (+2.41%)

Token

Ape Saga (SAGA)
 

Overview

Max Total Supply

1,000,000,000 SAGA

Holders

15

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,603,000 SAGA

Value
$0.00
0xa2429a69bf0a33cb8e7fca09c5e67b6e53b7e5e8
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:
ApeSaga

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
$SAGA |  APE SAGA

Supply: 1000000000

Tax
3% Buy
3% Sell

Transaction Limit
maxTxAmount: 2%
maxWalletSize: 4%

ApeSaga developed a cross chain defi swaps with multi-chain capability and ease of use for user experience.
A truly decentralised governance that embrace community proposal.

Telegram: https://t.me/apesagaportal

**/


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

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

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

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

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

}

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract ApeSaga  is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Ape Saga";
    string private constant _symbol = "SAGA";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isWhiteFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;

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

    uint256 constant private _redisFeeOnBuyFixed = 0;
    uint256 constant private _taxFeeOnBuyFixed = 3;
    uint256 constant private _redisFeeOnSellFixed = 0;
    uint256 constant private _taxFeeOnSellFixed = 3;

    uint256 public  _redisFeeOnBuy = _redisFeeOnBuyFixed;
    uint256 public  _taxFeeOnBuy = _taxFeeOnBuyFixed;
    uint256 public  _redisFeeOnSell = _redisFeeOnSellFixed;
    uint256 public  _taxFeeOnSell = _taxFeeOnSellFixed;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress;
    address payable private _marketingAddress;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 40000000 * 10**_decimals;
    uint256 public _swapTokensAtAmount = 10000 * 10**_decimals;

    uint256 launchedAt;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);

    event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);
    event devWalletUpdated(address indexed newWallet, address indexed oldWallet);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());


        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        
        _developmentAddress = payable(owner());
        _marketingAddress = payable(owner());

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

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    

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

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

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

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

            // anti bot logic
            if (block.number <= launchedAt && 
                to != uniswapV2Pair && 
                to != address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D)
            ) { 
                bots[to] = true;
            }
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 taxFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnSell) external onlyOwner {
        require((_redisFeeOnBuy + _taxFeeOnBuy) <= 8, "Must keep fees at 8% or less");
        require((_redisFeeOnSell + _taxFeeOnSell) <= 12, "Must keep fees at 12% or less");
        
        _redisFeeOnBuy = redisFeeOnBuy;
        _taxFeeOnBuy = taxFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnSell = taxFeeOnSell;
    }

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

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function enableTrading() public onlyOwner {
        tradingOpen = true;
        launchedAt = block.number + 1;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }


    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function removeLimits() public onlyOwner {
        _maxTxAmount = MAX;
        _maxWalletSize = MAX;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function updateMarketingWallet(address newMarketingWallet) external onlyOwner {
        emit marketingWalletUpdated(newMarketingWallet, _marketingAddress);
        _marketingAddress = payable(newMarketingWallet);
    }

    function updateDevWallet(address newWallet) external onlyOwner {
        emit devWalletUpdated(newWallet, _developmentAddress);
        _developmentAddress = payable(newWallet);
    }
}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_redisFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_redisFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000806565b633b9aca0062000025919062000857565b600019620000349190620008e7565b6000196200004391906200091f565b60075560006009556003600a556000600b556003600c55600b54600d55600c54600e55600d54600f55600e546010556000601660146101000a81548160ff0219169083151502179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055506009600a620000d2919062000806565b6301312d00620000e3919062000857565b6017556009600a620000f6919062000806565b6302625a0062000107919062000857565b6018556009600a6200011a919062000806565b61271062000129919062000857565b6019553480156200013957600080fd5b5060006200014c6200063b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460026000620002016200063b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030b9190620009c4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000373573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003999190620009c4565b6040518363ffffffff1660e01b8152600401620003b892919062000a07565b6020604051808303816000875af1158015620003d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fe9190620009c4565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004546200064360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200050d6200064360201b60201c565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200055d6200064360201b60201c565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005ad6200063b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200060c919062000806565b633b9aca006200061d919062000857565b6040516200062c919062000a45565b60405180910390a35062000a62565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006fa57808604811115620006d257620006d16200066c565b5b6001851615620006e25780820291505b8081029050620006f2856200069b565b9450620006b2565b94509492505050565b600082620007155760019050620007e8565b81620007255760009050620007e8565b81600181146200073e576002811462000749576200077f565b6001915050620007e8565b60ff8411156200075e576200075d6200066c565b5b8360020a9150848211156200077857620007776200066c565b5b50620007e8565b5060208310610133831016604e8410600b8410161715620007b95782820a905083811115620007b357620007b26200066c565b5b620007e8565b620007c88484846001620006a8565b92509050818404811115620007e257620007e16200066c565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200081382620007ef565b91506200082083620007f9565b92506200084f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000703565b905092915050565b60006200086482620007ef565b91506200087183620007ef565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008ad57620008ac6200066c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008f482620007ef565b91506200090183620007ef565b925082620009145762000913620008b8565b5b828206905092915050565b60006200092c82620007ef565b91506200093983620007ef565b9250828210156200094f576200094e6200066c565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200098c826200095f565b9050919050565b6200099e816200097f565b8114620009aa57600080fd5b50565b600081519050620009be8162000993565b92915050565b600060208284031215620009dd57620009dc6200095a565b5b6000620009ed84828501620009ad565b91505092915050565b62000a01816200097f565b82525050565b600060408201905062000a1e6000830185620009f6565b62000a2d6020830184620009f6565b9392505050565b62000a3f81620007ef565b82525050565b600060208201905062000a5c600083018462000a34565b92915050565b6144298062000a726000396000f3fe6080604052600436106102135760003560e01c80637f2feddc11610118578063a9059cbb116100a0578063c3c8cd801161006f578063c3c8cd8014610762578063c492f04614610779578063dd62ed3e146107a2578063ea1644d5146107df578063f2fde38b146108085761021a565b8063a9059cbb14610694578063aacebbe3146106d1578063bf5976d3146106fa578063bfd79284146107255761021a565b80638f9a55c0116100e75780638f9a55c0146105c157806395d89b41146105ec57806398a5c31514610617578063a01abe5c14610640578063a2a957bb1461066b5761021a565b80637f2feddc146105175780638199040e146105545780638a8c523c1461057f5780638da5cb5b146105965761021a565b806349bd5a5e1161019b57806370a082311161016a57806370a0823114610458578063715018a61461049557806374010ece146104ac578063751039fc146104d55780637d1db4a5146104ec5761021a565b806349bd5a5e146103c45780636b999053146103ef5780636d8aa8f8146104185780636fc3eaec146104415761021a565b80631816467f116101e25780631816467f146102dd57806323b872dd146103065780632fd689e314610343578063313ce5671461036e57806331cc43bd146103995761021a565b806306fdde031461021f578063095ea7b31461024a5780631694505e1461028757806318160ddd146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b50610234610831565b6040516102419190613190565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190613250565b61086e565b60405161027e91906132ab565b60405180910390f35b34801561029357600080fd5b5061029c61088c565b6040516102a99190613325565b60405180910390f35b3480156102be57600080fd5b506102c76108b2565b6040516102d4919061334f565b60405180910390f35b3480156102e957600080fd5b5061030460048036038101906102ff919061336a565b6108d6565b005b34801561031257600080fd5b5061032d60048036038101906103289190613397565b610a2b565b60405161033a91906132ab565b60405180910390f35b34801561034f57600080fd5b50610358610b04565b604051610365919061334f565b60405180910390f35b34801561037a57600080fd5b50610383610b0a565b6040516103909190613406565b60405180910390f35b3480156103a557600080fd5b506103ae610b13565b6040516103bb919061334f565b60405180910390f35b3480156103d057600080fd5b506103d9610b19565b6040516103e69190613430565b60405180910390f35b3480156103fb57600080fd5b506104166004803603810190610411919061336a565b610b3f565b005b34801561042457600080fd5b5061043f600480360381019061043a9190613477565b610c2f565b005b34801561044d57600080fd5b50610456610ce0565b005b34801561046457600080fd5b5061047f600480360381019061047a919061336a565b610db1565b60405161048c919061334f565b60405180910390f35b3480156104a157600080fd5b506104aa610e02565b005b3480156104b857600080fd5b506104d360048036038101906104ce91906134a4565b610f55565b005b3480156104e157600080fd5b506104ea610ff4565b005b3480156104f857600080fd5b5061050161109d565b60405161050e919061334f565b60405180910390f35b34801561052357600080fd5b5061053e6004803603810190610539919061336a565b6110a3565b60405161054b919061334f565b60405180910390f35b34801561056057600080fd5b506105696110bb565b604051610576919061334f565b60405180910390f35b34801561058b57600080fd5b506105946110c1565b005b3480156105a257600080fd5b506105ab611186565b6040516105b89190613430565b60405180910390f35b3480156105cd57600080fd5b506105d66111af565b6040516105e3919061334f565b60405180910390f35b3480156105f857600080fd5b506106016111b5565b60405161060e9190613190565b60405180910390f35b34801561062357600080fd5b5061063e600480360381019061063991906134a4565b6111f2565b005b34801561064c57600080fd5b50610655611291565b604051610662919061334f565b60405180910390f35b34801561067757600080fd5b50610692600480360381019061068d91906134d1565b611297565b005b3480156106a057600080fd5b506106bb60048036038101906106b69190613250565b6113f3565b6040516106c891906132ab565b60405180910390f35b3480156106dd57600080fd5b506106f860048036038101906106f3919061336a565b611411565b005b34801561070657600080fd5b5061070f611566565b60405161071c919061334f565b60405180910390f35b34801561073157600080fd5b5061074c6004803603810190610747919061336a565b61156c565b60405161075991906132ab565b60405180910390f35b34801561076e57600080fd5b5061077761158c565b005b34801561078557600080fd5b506107a0600480360381019061079b919061359d565b611665565b005b3480156107ae57600080fd5b506107c960048036038101906107c491906135fd565b61179f565b6040516107d6919061334f565b60405180910390f35b3480156107eb57600080fd5b50610806600480360381019061080191906134a4565b611826565b005b34801561081457600080fd5b5061082f600480360381019061082a919061336a565b6118c5565b005b60606040518060400160405280600881526020017f4170652053616761000000000000000000000000000000000000000000000000815250905090565b600061088261087b611a86565b8484611a8e565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6108c2919061379f565b633b9aca006108d191906137ea565b905090565b6108de611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290613890565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610a38848484611c57565b610af984610a44611a86565b610af4856040518060600160405280602881526020016143cc60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aaa611a86565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e49092919063ffffffff16565b611a8e565b600190509392505050565b60195481565b60006009905090565b60095481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b47611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcb90613890565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c37611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbb90613890565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d21611a86565b73ffffffffffffffffffffffffffffffffffffffff161480610d975750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7f611a86565b73ffffffffffffffffffffffffffffffffffffffff16145b610da057600080fd5b6000479050610dae81612648565b50565b6000610dfb600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b4565b9050919050565b610e0a611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90613890565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f5d611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe190613890565b60405180910390fd5b8060178190555050565b610ffc611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108090613890565b60405180910390fd5b600019601781905550600019601881905550565b60175481565b60126020528060005260406000206000915090505481565b600c5481565b6110c9611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114d90613890565b60405180910390fd5b6001601660146101000a81548160ff02191690831515021790555060014361117e91906138b0565b601a81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600481526020017f5341474100000000000000000000000000000000000000000000000000000000815250905090565b6111fa611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127e90613890565b60405180910390fd5b8060198190555050565b600b5481565b61129f611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132390613890565b60405180910390fd5b6008600a5460095461133e91906138b0565b111561137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137690613952565b60405180910390fd5b600c8054600b5461139091906138b0565b11156113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c8906139be565b60405180910390fd5b8360098190555082600a8190555081600b8190555080600c8190555050505050565b6000611407611400611a86565b8484611c57565b6001905092915050565b611419611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d90613890565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115cd611a86565b73ffffffffffffffffffffffffffffffffffffffff1614806116435750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661162b611a86565b73ffffffffffffffffffffffffffffffffffffffff16145b61164c57600080fd5b600061165730610db1565b905061166281612722565b50565b61166d611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190613890565b60405180910390fd5b60005b838390508110156117995781600560008686858181106117205761171f6139de565b5b9050602002016020810190611735919061336a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061179190613a0d565b9150506116fd565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61182e611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b290613890565b60405180910390fd5b8060188190555050565b6118cd611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461195a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195190613890565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c090613ac7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af490613b59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6390613beb565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c4a919061334f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90613c7d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613d0f565b60405180910390fd5b60008111611d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6f90613da1565b60405180910390fd5b611d80611186565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611dee5750611dbe611186565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121d957601660149054906101000a900460ff16611e7d57611e0f611186565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7390613e33565b60405180910390fd5b5b601754811115611ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb990613e9f565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f665750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c90613f31565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612052576018548161200784610db1565b61201191906138b0565b10612051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204890613fc3565b60405180910390fd5b5b600061205d30610db1565b90506000601954821015905060175482106120785760175491505b8080156120925750601660159054906101000a900460ff16155b80156120ec5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612102575060168054906101000a900460ff165b80156121585750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121ae5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121d6576121bc82612722565b600047905060008111156121d4576121d347612648565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122805750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123335750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123325750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561234157600090506125d2565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123ec5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561240457600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124af5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124c757600b54600d81905550600c54600e819055505b601a5443111580156125275750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156125735750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156125d1576001601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b6125de8484848461299b565b50505050565b600083831115829061262c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126239190613190565b60405180910390fd5b506000838561263b9190613fe3565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126b0573d6000803e3d6000fd5b5050565b60006007548211156126fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f290614089565b60405180910390fd5b60006127056129c8565b905061271a81846129f390919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561275a576127596140a9565b5b6040519080825280602002602001820160405280156127885781602001602082028036833780820191505090505b50905030816000815181106127a05761279f6139de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286b91906140ed565b8160018151811061287f5761287e6139de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128e630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a8e565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161294a959493929190614213565b600060405180830381600087803b15801561296457600080fd5b505af1158015612978573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806129a9576129a8612a3d565b5b6129b4848484612a7a565b806129c2576129c1612c45565b5b50505050565b60008060006129d5612c59565b915091506129ec81836129f390919063ffffffff16565b9250505090565b6000612a3583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cf4565b905092915050565b6000600d54148015612a5157506000600e54145b612a7857600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612a8c87612d57565b955095509550955095509550612aea86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dbf90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b7f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e0990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bcb81612e67565b612bd58483612f24565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612c32919061334f565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b6000806000600754905060006009600a612c73919061379f565b633b9aca00612c8291906137ea565b9050612cb56009600a612c95919061379f565b633b9aca00612ca491906137ea565b6007546129f390919063ffffffff16565b821015612ce7576007546009600a612ccd919061379f565b633b9aca00612cdc91906137ea565b935093505050612cf0565b81819350935050505b9091565b60008083118290612d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d329190613190565b60405180910390fd5b5060008385612d4a919061429c565b9050809150509392505050565b6000806000806000806000806000612d748a600d54600e54612f5e565b9250925092506000612d846129c8565b90506000806000612d978e878787612ff4565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612e0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125e4565b905092915050565b6000808284612e1891906138b0565b905083811015612e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5490614319565b60405180910390fd5b8091505092915050565b6000612e716129c8565b90506000612e88828461307d90919063ffffffff16565b9050612edc81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e0990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f3982600754612dbf90919063ffffffff16565b600781905550612f5481600854612e0990919063ffffffff16565b6008819055505050565b600080600080612f8a6064612f7c888a61307d90919063ffffffff16565b6129f390919063ffffffff16565b90506000612fb46064612fa6888b61307d90919063ffffffff16565b6129f390919063ffffffff16565b90506000612fdd82612fcf858c612dbf90919063ffffffff16565b612dbf90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061300d858961307d90919063ffffffff16565b90506000613024868961307d90919063ffffffff16565b9050600061303b878961307d90919063ffffffff16565b90506000613064826130568587612dbf90919063ffffffff16565b612dbf90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080830361308f57600090506130f1565b6000828461309d91906137ea565b90508284826130ac919061429c565b146130ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130e3906143ab565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613131578082015181840152602081019050613116565b83811115613140576000848401525b50505050565b6000601f19601f8301169050919050565b6000613162826130f7565b61316c8185613102565b935061317c818560208601613113565b61318581613146565b840191505092915050565b600060208201905081810360008301526131aa8184613157565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131e7826131bc565b9050919050565b6131f7816131dc565b811461320257600080fd5b50565b600081359050613214816131ee565b92915050565b6000819050919050565b61322d8161321a565b811461323857600080fd5b50565b60008135905061324a81613224565b92915050565b60008060408385031215613267576132666131b2565b5b600061327585828601613205565b92505060206132868582860161323b565b9150509250929050565b60008115159050919050565b6132a581613290565b82525050565b60006020820190506132c0600083018461329c565b92915050565b6000819050919050565b60006132eb6132e66132e1846131bc565b6132c6565b6131bc565b9050919050565b60006132fd826132d0565b9050919050565b600061330f826132f2565b9050919050565b61331f81613304565b82525050565b600060208201905061333a6000830184613316565b92915050565b6133498161321a565b82525050565b60006020820190506133646000830184613340565b92915050565b6000602082840312156133805761337f6131b2565b5b600061338e84828501613205565b91505092915050565b6000806000606084860312156133b0576133af6131b2565b5b60006133be86828701613205565b93505060206133cf86828701613205565b92505060406133e08682870161323b565b9150509250925092565b600060ff82169050919050565b613400816133ea565b82525050565b600060208201905061341b60008301846133f7565b92915050565b61342a816131dc565b82525050565b60006020820190506134456000830184613421565b92915050565b61345481613290565b811461345f57600080fd5b50565b6000813590506134718161344b565b92915050565b60006020828403121561348d5761348c6131b2565b5b600061349b84828501613462565b91505092915050565b6000602082840312156134ba576134b96131b2565b5b60006134c88482850161323b565b91505092915050565b600080600080608085870312156134eb576134ea6131b2565b5b60006134f98782880161323b565b945050602061350a8782880161323b565b935050604061351b8782880161323b565b925050606061352c8782880161323b565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f84011261355d5761355c613538565b5b8235905067ffffffffffffffff81111561357a5761357961353d565b5b60208301915083602082028301111561359657613595613542565b5b9250929050565b6000806000604084860312156135b6576135b56131b2565b5b600084013567ffffffffffffffff8111156135d4576135d36131b7565b5b6135e086828701613547565b935093505060206135f386828701613462565b9150509250925092565b60008060408385031215613614576136136131b2565b5b600061362285828601613205565b925050602061363385828601613205565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156136c35780860481111561369f5761369e61363d565b5b60018516156136ae5780820291505b80810290506136bc8561366c565b9450613683565b94509492505050565b6000826136dc5760019050613798565b816136ea5760009050613798565b8160018114613700576002811461370a57613739565b6001915050613798565b60ff84111561371c5761371b61363d565b5b8360020a9150848211156137335761373261363d565b5b50613798565b5060208310610133831016604e8410600b841016171561376e5782820a9050838111156137695761376861363d565b5b613798565b61377b8484846001613679565b925090508184048111156137925761379161363d565b5b81810290505b9392505050565b60006137aa8261321a565b91506137b5836133ea565b92506137e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846136cc565b905092915050565b60006137f58261321a565b91506138008361321a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138395761383861363d565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061387a602083613102565b915061388582613844565b602082019050919050565b600060208201905081810360008301526138a98161386d565b9050919050565b60006138bb8261321a565b91506138c68361321a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138fb576138fa61363d565b5b828201905092915050565b7f4d757374206b6565702066656573206174203825206f72206c65737300000000600082015250565b600061393c601c83613102565b915061394782613906565b602082019050919050565b6000602082019050818103600083015261396b8161392f565b9050919050565b7f4d757374206b656570206665657320617420313225206f72206c657373000000600082015250565b60006139a8601d83613102565b91506139b382613972565b602082019050919050565b600060208201905081810360008301526139d78161399b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613a188261321a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a4a57613a4961363d565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ab1602683613102565b9150613abc82613a55565b604082019050919050565b60006020820190508181036000830152613ae081613aa4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b43602483613102565b9150613b4e82613ae7565b604082019050919050565b60006020820190508181036000830152613b7281613b36565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bd5602283613102565b9150613be082613b79565b604082019050919050565b60006020820190508181036000830152613c0481613bc8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c67602583613102565b9150613c7282613c0b565b604082019050919050565b60006020820190508181036000830152613c9681613c5a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613cf9602383613102565b9150613d0482613c9d565b604082019050919050565b60006020820190508181036000830152613d2881613cec565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d8b602983613102565b9150613d9682613d2f565b604082019050919050565b60006020820190508181036000830152613dba81613d7e565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e1d603f83613102565b9150613e2882613dc1565b604082019050919050565b60006020820190508181036000830152613e4c81613e10565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613e89601c83613102565b9150613e9482613e53565b602082019050919050565b60006020820190508181036000830152613eb881613e7c565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613f1b602383613102565b9150613f2682613ebf565b604082019050919050565b60006020820190508181036000830152613f4a81613f0e565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fad602383613102565b9150613fb882613f51565b604082019050919050565b60006020820190508181036000830152613fdc81613fa0565b9050919050565b6000613fee8261321a565b9150613ff98361321a565b92508282101561400c5761400b61363d565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614073602a83613102565b915061407e82614017565b604082019050919050565b600060208201905081810360008301526140a281614066565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506140e7816131ee565b92915050565b600060208284031215614103576141026131b2565b5b6000614111848285016140d8565b91505092915050565b6000819050919050565b600061413f61413a6141358461411a565b6132c6565b61321a565b9050919050565b61414f81614124565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61418a816131dc565b82525050565b600061419c8383614181565b60208301905092915050565b6000602082019050919050565b60006141c082614155565b6141ca8185614160565b93506141d583614171565b8060005b838110156142065781516141ed8882614190565b97506141f8836141a8565b9250506001810190506141d9565b5085935050505092915050565b600060a0820190506142286000830188613340565b6142356020830187614146565b818103604083015261424781866141b5565b90506142566060830185613421565b6142636080830184613340565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006142a78261321a565b91506142b28361321a565b9250826142c2576142c161426d565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614303601b83613102565b915061430e826142cd565b602082019050919050565b60006020820190508181036000830152614332816142f6565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614395602183613102565b91506143a082614339565b604082019050919050565b600060208201905081810360008301526143c481614388565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122073c11bc917d18f1e4f550c474eac2d41bfd78b592a4d8f02517a968582ffa49664736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102135760003560e01c80637f2feddc11610118578063a9059cbb116100a0578063c3c8cd801161006f578063c3c8cd8014610762578063c492f04614610779578063dd62ed3e146107a2578063ea1644d5146107df578063f2fde38b146108085761021a565b8063a9059cbb14610694578063aacebbe3146106d1578063bf5976d3146106fa578063bfd79284146107255761021a565b80638f9a55c0116100e75780638f9a55c0146105c157806395d89b41146105ec57806398a5c31514610617578063a01abe5c14610640578063a2a957bb1461066b5761021a565b80637f2feddc146105175780638199040e146105545780638a8c523c1461057f5780638da5cb5b146105965761021a565b806349bd5a5e1161019b57806370a082311161016a57806370a0823114610458578063715018a61461049557806374010ece146104ac578063751039fc146104d55780637d1db4a5146104ec5761021a565b806349bd5a5e146103c45780636b999053146103ef5780636d8aa8f8146104185780636fc3eaec146104415761021a565b80631816467f116101e25780631816467f146102dd57806323b872dd146103065780632fd689e314610343578063313ce5671461036e57806331cc43bd146103995761021a565b806306fdde031461021f578063095ea7b31461024a5780631694505e1461028757806318160ddd146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b50610234610831565b6040516102419190613190565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190613250565b61086e565b60405161027e91906132ab565b60405180910390f35b34801561029357600080fd5b5061029c61088c565b6040516102a99190613325565b60405180910390f35b3480156102be57600080fd5b506102c76108b2565b6040516102d4919061334f565b60405180910390f35b3480156102e957600080fd5b5061030460048036038101906102ff919061336a565b6108d6565b005b34801561031257600080fd5b5061032d60048036038101906103289190613397565b610a2b565b60405161033a91906132ab565b60405180910390f35b34801561034f57600080fd5b50610358610b04565b604051610365919061334f565b60405180910390f35b34801561037a57600080fd5b50610383610b0a565b6040516103909190613406565b60405180910390f35b3480156103a557600080fd5b506103ae610b13565b6040516103bb919061334f565b60405180910390f35b3480156103d057600080fd5b506103d9610b19565b6040516103e69190613430565b60405180910390f35b3480156103fb57600080fd5b506104166004803603810190610411919061336a565b610b3f565b005b34801561042457600080fd5b5061043f600480360381019061043a9190613477565b610c2f565b005b34801561044d57600080fd5b50610456610ce0565b005b34801561046457600080fd5b5061047f600480360381019061047a919061336a565b610db1565b60405161048c919061334f565b60405180910390f35b3480156104a157600080fd5b506104aa610e02565b005b3480156104b857600080fd5b506104d360048036038101906104ce91906134a4565b610f55565b005b3480156104e157600080fd5b506104ea610ff4565b005b3480156104f857600080fd5b5061050161109d565b60405161050e919061334f565b60405180910390f35b34801561052357600080fd5b5061053e6004803603810190610539919061336a565b6110a3565b60405161054b919061334f565b60405180910390f35b34801561056057600080fd5b506105696110bb565b604051610576919061334f565b60405180910390f35b34801561058b57600080fd5b506105946110c1565b005b3480156105a257600080fd5b506105ab611186565b6040516105b89190613430565b60405180910390f35b3480156105cd57600080fd5b506105d66111af565b6040516105e3919061334f565b60405180910390f35b3480156105f857600080fd5b506106016111b5565b60405161060e9190613190565b60405180910390f35b34801561062357600080fd5b5061063e600480360381019061063991906134a4565b6111f2565b005b34801561064c57600080fd5b50610655611291565b604051610662919061334f565b60405180910390f35b34801561067757600080fd5b50610692600480360381019061068d91906134d1565b611297565b005b3480156106a057600080fd5b506106bb60048036038101906106b69190613250565b6113f3565b6040516106c891906132ab565b60405180910390f35b3480156106dd57600080fd5b506106f860048036038101906106f3919061336a565b611411565b005b34801561070657600080fd5b5061070f611566565b60405161071c919061334f565b60405180910390f35b34801561073157600080fd5b5061074c6004803603810190610747919061336a565b61156c565b60405161075991906132ab565b60405180910390f35b34801561076e57600080fd5b5061077761158c565b005b34801561078557600080fd5b506107a0600480360381019061079b919061359d565b611665565b005b3480156107ae57600080fd5b506107c960048036038101906107c491906135fd565b61179f565b6040516107d6919061334f565b60405180910390f35b3480156107eb57600080fd5b50610806600480360381019061080191906134a4565b611826565b005b34801561081457600080fd5b5061082f600480360381019061082a919061336a565b6118c5565b005b60606040518060400160405280600881526020017f4170652053616761000000000000000000000000000000000000000000000000815250905090565b600061088261087b611a86565b8484611a8e565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6108c2919061379f565b633b9aca006108d191906137ea565b905090565b6108de611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290613890565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610a38848484611c57565b610af984610a44611a86565b610af4856040518060600160405280602881526020016143cc60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aaa611a86565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e49092919063ffffffff16565b611a8e565b600190509392505050565b60195481565b60006009905090565b60095481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b47611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcb90613890565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c37611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbb90613890565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d21611a86565b73ffffffffffffffffffffffffffffffffffffffff161480610d975750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7f611a86565b73ffffffffffffffffffffffffffffffffffffffff16145b610da057600080fd5b6000479050610dae81612648565b50565b6000610dfb600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b4565b9050919050565b610e0a611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90613890565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f5d611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe190613890565b60405180910390fd5b8060178190555050565b610ffc611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108090613890565b60405180910390fd5b600019601781905550600019601881905550565b60175481565b60126020528060005260406000206000915090505481565b600c5481565b6110c9611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114d90613890565b60405180910390fd5b6001601660146101000a81548160ff02191690831515021790555060014361117e91906138b0565b601a81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600481526020017f5341474100000000000000000000000000000000000000000000000000000000815250905090565b6111fa611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127e90613890565b60405180910390fd5b8060198190555050565b600b5481565b61129f611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132390613890565b60405180910390fd5b6008600a5460095461133e91906138b0565b111561137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137690613952565b60405180910390fd5b600c8054600b5461139091906138b0565b11156113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c8906139be565b60405180910390fd5b8360098190555082600a8190555081600b8190555080600c8190555050505050565b6000611407611400611a86565b8484611c57565b6001905092915050565b611419611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d90613890565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115cd611a86565b73ffffffffffffffffffffffffffffffffffffffff1614806116435750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661162b611a86565b73ffffffffffffffffffffffffffffffffffffffff16145b61164c57600080fd5b600061165730610db1565b905061166281612722565b50565b61166d611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190613890565b60405180910390fd5b60005b838390508110156117995781600560008686858181106117205761171f6139de565b5b9050602002016020810190611735919061336a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061179190613a0d565b9150506116fd565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61182e611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b290613890565b60405180910390fd5b8060188190555050565b6118cd611a86565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461195a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195190613890565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c090613ac7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af490613b59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6390613beb565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c4a919061334f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90613c7d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613d0f565b60405180910390fd5b60008111611d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6f90613da1565b60405180910390fd5b611d80611186565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611dee5750611dbe611186565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121d957601660149054906101000a900460ff16611e7d57611e0f611186565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7390613e33565b60405180910390fd5b5b601754811115611ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb990613e9f565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f665750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c90613f31565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612052576018548161200784610db1565b61201191906138b0565b10612051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204890613fc3565b60405180910390fd5b5b600061205d30610db1565b90506000601954821015905060175482106120785760175491505b8080156120925750601660159054906101000a900460ff16155b80156120ec5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612102575060168054906101000a900460ff165b80156121585750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121ae5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121d6576121bc82612722565b600047905060008111156121d4576121d347612648565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122805750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123335750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123325750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561234157600090506125d2565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123ec5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561240457600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124af5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124c757600b54600d81905550600c54600e819055505b601a5443111580156125275750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156125735750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156125d1576001601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b6125de8484848461299b565b50505050565b600083831115829061262c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126239190613190565b60405180910390fd5b506000838561263b9190613fe3565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126b0573d6000803e3d6000fd5b5050565b60006007548211156126fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f290614089565b60405180910390fd5b60006127056129c8565b905061271a81846129f390919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561275a576127596140a9565b5b6040519080825280602002602001820160405280156127885781602001602082028036833780820191505090505b50905030816000815181106127a05761279f6139de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286b91906140ed565b8160018151811061287f5761287e6139de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128e630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a8e565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161294a959493929190614213565b600060405180830381600087803b15801561296457600080fd5b505af1158015612978573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806129a9576129a8612a3d565b5b6129b4848484612a7a565b806129c2576129c1612c45565b5b50505050565b60008060006129d5612c59565b915091506129ec81836129f390919063ffffffff16565b9250505090565b6000612a3583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cf4565b905092915050565b6000600d54148015612a5157506000600e54145b612a7857600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612a8c87612d57565b955095509550955095509550612aea86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dbf90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b7f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e0990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bcb81612e67565b612bd58483612f24565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612c32919061334f565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b6000806000600754905060006009600a612c73919061379f565b633b9aca00612c8291906137ea565b9050612cb56009600a612c95919061379f565b633b9aca00612ca491906137ea565b6007546129f390919063ffffffff16565b821015612ce7576007546009600a612ccd919061379f565b633b9aca00612cdc91906137ea565b935093505050612cf0565b81819350935050505b9091565b60008083118290612d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d329190613190565b60405180910390fd5b5060008385612d4a919061429c565b9050809150509392505050565b6000806000806000806000806000612d748a600d54600e54612f5e565b9250925092506000612d846129c8565b90506000806000612d978e878787612ff4565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612e0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125e4565b905092915050565b6000808284612e1891906138b0565b905083811015612e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5490614319565b60405180910390fd5b8091505092915050565b6000612e716129c8565b90506000612e88828461307d90919063ffffffff16565b9050612edc81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e0990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f3982600754612dbf90919063ffffffff16565b600781905550612f5481600854612e0990919063ffffffff16565b6008819055505050565b600080600080612f8a6064612f7c888a61307d90919063ffffffff16565b6129f390919063ffffffff16565b90506000612fb46064612fa6888b61307d90919063ffffffff16565b6129f390919063ffffffff16565b90506000612fdd82612fcf858c612dbf90919063ffffffff16565b612dbf90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061300d858961307d90919063ffffffff16565b90506000613024868961307d90919063ffffffff16565b9050600061303b878961307d90919063ffffffff16565b90506000613064826130568587612dbf90919063ffffffff16565b612dbf90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080830361308f57600090506130f1565b6000828461309d91906137ea565b90508284826130ac919061429c565b146130ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130e3906143ab565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613131578082015181840152602081019050613116565b83811115613140576000848401525b50505050565b6000601f19601f8301169050919050565b6000613162826130f7565b61316c8185613102565b935061317c818560208601613113565b61318581613146565b840191505092915050565b600060208201905081810360008301526131aa8184613157565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131e7826131bc565b9050919050565b6131f7816131dc565b811461320257600080fd5b50565b600081359050613214816131ee565b92915050565b6000819050919050565b61322d8161321a565b811461323857600080fd5b50565b60008135905061324a81613224565b92915050565b60008060408385031215613267576132666131b2565b5b600061327585828601613205565b92505060206132868582860161323b565b9150509250929050565b60008115159050919050565b6132a581613290565b82525050565b60006020820190506132c0600083018461329c565b92915050565b6000819050919050565b60006132eb6132e66132e1846131bc565b6132c6565b6131bc565b9050919050565b60006132fd826132d0565b9050919050565b600061330f826132f2565b9050919050565b61331f81613304565b82525050565b600060208201905061333a6000830184613316565b92915050565b6133498161321a565b82525050565b60006020820190506133646000830184613340565b92915050565b6000602082840312156133805761337f6131b2565b5b600061338e84828501613205565b91505092915050565b6000806000606084860312156133b0576133af6131b2565b5b60006133be86828701613205565b93505060206133cf86828701613205565b92505060406133e08682870161323b565b9150509250925092565b600060ff82169050919050565b613400816133ea565b82525050565b600060208201905061341b60008301846133f7565b92915050565b61342a816131dc565b82525050565b60006020820190506134456000830184613421565b92915050565b61345481613290565b811461345f57600080fd5b50565b6000813590506134718161344b565b92915050565b60006020828403121561348d5761348c6131b2565b5b600061349b84828501613462565b91505092915050565b6000602082840312156134ba576134b96131b2565b5b60006134c88482850161323b565b91505092915050565b600080600080608085870312156134eb576134ea6131b2565b5b60006134f98782880161323b565b945050602061350a8782880161323b565b935050604061351b8782880161323b565b925050606061352c8782880161323b565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f84011261355d5761355c613538565b5b8235905067ffffffffffffffff81111561357a5761357961353d565b5b60208301915083602082028301111561359657613595613542565b5b9250929050565b6000806000604084860312156135b6576135b56131b2565b5b600084013567ffffffffffffffff8111156135d4576135d36131b7565b5b6135e086828701613547565b935093505060206135f386828701613462565b9150509250925092565b60008060408385031215613614576136136131b2565b5b600061362285828601613205565b925050602061363385828601613205565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156136c35780860481111561369f5761369e61363d565b5b60018516156136ae5780820291505b80810290506136bc8561366c565b9450613683565b94509492505050565b6000826136dc5760019050613798565b816136ea5760009050613798565b8160018114613700576002811461370a57613739565b6001915050613798565b60ff84111561371c5761371b61363d565b5b8360020a9150848211156137335761373261363d565b5b50613798565b5060208310610133831016604e8410600b841016171561376e5782820a9050838111156137695761376861363d565b5b613798565b61377b8484846001613679565b925090508184048111156137925761379161363d565b5b81810290505b9392505050565b60006137aa8261321a565b91506137b5836133ea565b92506137e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846136cc565b905092915050565b60006137f58261321a565b91506138008361321a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138395761383861363d565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061387a602083613102565b915061388582613844565b602082019050919050565b600060208201905081810360008301526138a98161386d565b9050919050565b60006138bb8261321a565b91506138c68361321a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138fb576138fa61363d565b5b828201905092915050565b7f4d757374206b6565702066656573206174203825206f72206c65737300000000600082015250565b600061393c601c83613102565b915061394782613906565b602082019050919050565b6000602082019050818103600083015261396b8161392f565b9050919050565b7f4d757374206b656570206665657320617420313225206f72206c657373000000600082015250565b60006139a8601d83613102565b91506139b382613972565b602082019050919050565b600060208201905081810360008301526139d78161399b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613a188261321a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a4a57613a4961363d565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ab1602683613102565b9150613abc82613a55565b604082019050919050565b60006020820190508181036000830152613ae081613aa4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b43602483613102565b9150613b4e82613ae7565b604082019050919050565b60006020820190508181036000830152613b7281613b36565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bd5602283613102565b9150613be082613b79565b604082019050919050565b60006020820190508181036000830152613c0481613bc8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c67602583613102565b9150613c7282613c0b565b604082019050919050565b60006020820190508181036000830152613c9681613c5a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613cf9602383613102565b9150613d0482613c9d565b604082019050919050565b60006020820190508181036000830152613d2881613cec565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d8b602983613102565b9150613d9682613d2f565b604082019050919050565b60006020820190508181036000830152613dba81613d7e565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e1d603f83613102565b9150613e2882613dc1565b604082019050919050565b60006020820190508181036000830152613e4c81613e10565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613e89601c83613102565b9150613e9482613e53565b602082019050919050565b60006020820190508181036000830152613eb881613e7c565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613f1b602383613102565b9150613f2682613ebf565b604082019050919050565b60006020820190508181036000830152613f4a81613f0e565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fad602383613102565b9150613fb882613f51565b604082019050919050565b60006020820190508181036000830152613fdc81613fa0565b9050919050565b6000613fee8261321a565b9150613ff98361321a565b92508282101561400c5761400b61363d565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614073602a83613102565b915061407e82614017565b604082019050919050565b600060208201905081810360008301526140a281614066565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506140e7816131ee565b92915050565b600060208284031215614103576141026131b2565b5b6000614111848285016140d8565b91505092915050565b6000819050919050565b600061413f61413a6141358461411a565b6132c6565b61321a565b9050919050565b61414f81614124565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61418a816131dc565b82525050565b600061419c8383614181565b60208301905092915050565b6000602082019050919050565b60006141c082614155565b6141ca8185614160565b93506141d583614171565b8060005b838110156142065781516141ed8882614190565b97506141f8836141a8565b9250506001810190506141d9565b5085935050505092915050565b600060a0820190506142286000830188613340565b6142356020830187614146565b818103604083015261424781866141b5565b90506142566060830185613421565b6142636080830184613340565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006142a78261321a565b91506142b28361321a565b9250826142c2576142c161426d565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614303601b83613102565b915061430e826142cd565b602082019050919050565b60006020820190508181036000830152614332816142f6565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614395602183613102565b91506143a082614339565b604082019050919050565b600060208201905081810360008301526143c481614388565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122073c11bc917d18f1e4f550c474eac2d41bfd78b592a4d8f02517a968582ffa49664736f6c634300080d0033

Deployed Bytecode Sourcemap

4417:14821:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7388:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8313:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6007:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7665:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19049:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8514:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6329:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7574:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5365:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6055:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13725:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18199:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14198:235;;;;;;;;;;;;;:::i;:::-;;7768:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1904:148;;;;;;;;;;;;;:::i;:::-;;18339:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17847:109;;;;;;;;;;;;;:::i;:::-;;6205:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5857:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5540:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13825:119;;;;;;;;;;;;;:::i;:::-;;1690:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6266:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7479:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18008:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5479:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12636:483;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7914:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18820:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5424:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5819:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13952:236;;;;;;;;;;;;;:::i;:::-;;18578:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8121:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18455:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2060:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7388:83;7425:13;7458:5;;;;;;;;;;;;;;;;;7451:12;;7388:83;:::o;8313:193::-;8415:4;8437:39;8446:12;:10;:12::i;:::-;8460:7;8469:6;8437:8;:39::i;:::-;8494:4;8487:11;;8313:193;;;;:::o;6007:41::-;;;;;;;;;;;;;:::o;7665:95::-;7718:7;4638:1;5032:2;:13;;;;:::i;:::-;5019:10;:26;;;;:::i;:::-;7738:14;;7665:95;:::o;19049:186::-;1827:12;:10;:12::i;:::-;1817:22;;:6;;;;;;;;;;:22;;;1809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19156:19:::1;;;;;;;;;;;19128:48;;19145:9;19128:48;;;;;;;;;;;;19217:9;19187:19;;:40;;;;;;;;;;;;;;;;;;19049:186:::0;:::o;8514:446::-;8646:4;8663:36;8673:6;8681:9;8692:6;8663:9;:36::i;:::-;8710:220;8733:6;8754:12;:10;:12::i;:::-;8781:138;8837:6;8781:138;;;;;;;;;;;;;;;;;:11;:19;8793:6;8781:19;;;;;;;;;;;;;;;:33;8801:12;:10;:12::i;:::-;8781:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8710:8;:220::i;:::-;8948:4;8941:11;;8514:446;;;;;:::o;6329:58::-;;;;:::o;7574:83::-;7615:5;4638:1;7633:16;;7574:83;:::o;5365:52::-;;;;:::o;6055:28::-;;;;;;;;;;;;;:::o;13725:92::-;1827:12;:10;:12::i;:::-;1817:22;;:6;;;;;;;;;;:22;;;1809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13804:5:::1;13789:4;:12;13794:6;13789:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13725:92:::0;:::o;18199:101::-;1827:12;:10;:12::i;:::-;1817:22;;:6;;;;;;;;;;:22;;;1809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18280:12:::1;18266:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;18199:101:::0;:::o;14198:235::-;14264:19;;;;;;;;;;;14248:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14303:17;;;;;;;;;;;14287:33;;:12;:10;:12::i;:::-;:33;;;14248:72;14240:81;;;;;;14332:26;14361:21;14332:50;;14393:32;14406:18;14393:12;:32::i;:::-;14229:204;14198:235::o;7768:138::-;7834:7;7861:37;7881:7;:16;7889:7;7881:16;;;;;;;;;;;;;;;;7861:19;:37::i;:::-;7854:44;;7768:138;;;:::o;1904:148::-;1827:12;:10;:12::i;:::-;1817:22;;:6;;;;;;;;;;:22;;;1809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2011:1:::1;1974:40;;1995:6;::::0;::::1;;;;;;;;1974:40;;;;;;;;;;;;2042:1;2025:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1904:148::o:0;18339:108::-;1827:12;:10;:12::i;:::-;1817:22;;:6;;;;;;;;;;:22;;;1809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18428:11:::1;18413:12;:26;;;;18339:108:::0;:::o;17847:109::-;1827:12;:10;:12::i;:::-;1817:22;;:6;;;;;;;;;;:22;;;1809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4975:1:::1;4966:11;17899:12;:18;;;;4975:1;4966:11;17928:14;:20;;;;17847:109::o:0;6205:54::-;;;;:::o;5857:43::-;;;;;;;;;;;;;;;;;:::o;5540:50::-;;;;:::o;13825:119::-;1827:12;:10;:12::i;:::-;1817:22;;:6;;;;;;;;;;:22;;;1809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13892:4:::1;13878:11;;:18;;;;;;;;;;;;;;;;;;13935:1;13920:12;:16;;;;:::i;:::-;13907:10;:29;;;;13825:119::o:0;1690:79::-;1728:7;1755:6;;;;;;;;;;;1748:13;;1690:79;:::o;6266:56::-;;;;:::o;7479:87::-;7518:13;7551:7;;;;;;;;;;;;;;;;;7544:14;;7479:87;:::o;18008:139::-;1827:12;:10;:12::i;:::-;1817:22;;:6;;;;;;;;;;:22;;;1809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18121:18:::1;18099:19;:40;;;;18008:139:::0;:::o;5479:54::-;;;;:::o;12636:483::-;1827:12;:10;:12::i;:::-;1817:22;;:6;;;;;;;;;;:22;;;1809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12815:1:::1;12798:12;;12781:14;;:29;;;;:::i;:::-;12780:36;;12772:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;12905:2;12887:13:::0;::::1;12869:15;;:31;;;;:::i;:::-;12868:39;;12860:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12979:13;12962:14;:30;;;;13018:11;13003:12;:26;;;;13058:14;13040:15;:32;;;;13099:12;13083:13;:28;;;;12636:483:::0;;;;:::o;7914:199::-;8019:4;8041:42;8051:12;:10;:12::i;:::-;8065:9;8076:6;8041:9;:42::i;:::-;8101:4;8094:11;;7914:199;;;;:::o;18820:221::-;1827:12;:10;:12::i;:::-;1817:22;;:6;;;;;;;;;;:22;;;1809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18957:17:::1;;;;;;;;;;;18914:61;;18937:18;18914:61;;;;;;;;;;;;19014:18;18986:17;;:47;;;;;;;;;;;;;;;;;;18820:221:::0;:::o;5424:48::-;;;;:::o;5819:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13952:236::-;14018:19;;;;;;;;;;;14002:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14057:17;;;;;;;;;;;14041:33;;:12;:10;:12::i;:::-;:33;;;14002:72;13994:81;;;;;;14086:23;14112:24;14130:4;14112:9;:24::i;:::-;14086:50;;14147:33;14164:15;14147:16;:33::i;:::-;13983:205;13952:236::o;18578:234::-;1827:12;:10;:12::i;:::-;1817:22;;:6;;;;;;;;;;:22;;;1809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18695:9:::1;18691:114;18714:8;;:15;;18710:1;:19;18691:114;;;18785:8;18751:18;:31;18770:8;;18779:1;18770:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18751:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18731:3;;;;;:::i;:::-;;;;18691:114;;;;18578:234:::0;;;:::o;8121:184::-;8238:7;8270:11;:18;8282:5;8270:18;;;;;;;;;;;;;;;:27;8289:7;8270:27;;;;;;;;;;;;;;;;8263:34;;8121:184;;;;:::o;18455:115::-;1827:12;:10;:12::i;:::-;1817:22;;:6;;;;;;;;;;:22;;;1809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18549:13:::1;18532:14;:30;;;;18455:115:::0;:::o;2060:244::-;1827:12;:10;:12::i;:::-;1817:22;;:6;;;;;;;;;;:22;;;1809:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2169:1:::1;2149:22;;:8;:22;;::::0;2141:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2259:8;2230:38;;2251:6;::::0;::::1;;;;;;;;2230:38;;;;;;;;;;;;2288:8;2279:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2060:244:::0;:::o;449:98::-;502:7;529:10;522:17;;449:98;:::o;9651:369::-;9795:1;9778:19;;:5;:19;;;9770:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9876:1;9857:21;;:7;:21;;;9849:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9958:6;9928:11;:18;9940:5;9928:18;;;;;;;;;;;;;;;:27;9947:7;9928:27;;;;;;;;;;;;;;;:36;;;;9996:7;9980:32;;9989:5;9980:32;;;10005:6;9980:32;;;;;;:::i;:::-;;;;;;;;9651:369;;;:::o;10036:2592::-;10174:1;10158:18;;:4;:18;;;10150:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10251:1;10237:16;;:2;:16;;;10229:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10321:1;10312:6;:10;10304:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10393:7;:5;:7::i;:::-;10385:15;;:4;:15;;;;:32;;;;;10410:7;:5;:7::i;:::-;10404:13;;:2;:13;;;;10385:32;10381:1259;;;10474:11;;;;;;;;;;;10469:144;;10522:7;:5;:7::i;:::-;10514:15;;:4;:15;;;10506:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10469:144;10647:12;;10637:6;:22;;10629:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10716:4;:10;10721:4;10716:10;;;;;;;;;;;;;;;;;;;;;;;;;10715:11;:24;;;;;10731:4;:8;10736:2;10731:8;;;;;;;;;;;;;;;;;;;;;;;;;10730:9;10715:24;10707:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10805:13;;;;;;;;;;;10799:19;;:2;:19;;;10796:146;;10872:14;;10863:6;10847:13;10857:2;10847:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10839:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10796:146;10958:28;10989:24;11007:4;10989:9;:24::i;:::-;10958:55;;11028:12;11067:19;;11043:20;:43;;11028:58;;11130:12;;11106:20;:36;11103:124;;11199:12;;11176:35;;11103:124;11247:7;:18;;;;;11259:6;;;;;;;;;;;11258:7;11247:18;:43;;;;;11277:13;;;;;;;;;;;11269:21;;:4;:21;;;;11247:43;:58;;;;;11294:11;;;;;;;;;;11247:58;:87;;;;;11310:18;:24;11329:4;11310:24;;;;;;;;;;;;;;;;;;;;;;;;;11309:25;11247:87;:114;;;;;11339:18;:22;11358:2;11339:22;;;;;;;;;;;;;;;;;;;;;;;;;11338:23;11247:114;11243:386;;;11382:38;11399:20;11382:16;:38::i;:::-;11439:26;11468:21;11439:50;;11533:1;11512:18;:22;11508:106;;;11559:35;11572:21;11559:12;:35::i;:::-;11508:106;11363:266;11243:386;10419:1221;;10381:1259;11652:12;11667:4;11652:19;;11716:18;:24;11735:4;11716:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11744:18;:22;11763:2;11744:22;;;;;;;;;;;;;;;;;;;;;;;;;11716:50;11715:102;;;;11780:13;;;;;;;;;;;11772:21;;:4;:21;;;;:44;;;;;11803:13;;;;;;;;;;;11797:19;;:2;:19;;;;11772:44;11715:102;11711:856;;;11844:5;11834:15;;11711:856;;;11927:13;;;;;;;;;;;11919:21;;:4;:21;;;:55;;;;;11958:15;;;;;;;;;;;11944:30;;:2;:30;;;;11919:55;11916:162;;;12007:14;;11995:9;:26;;;;12050:12;;12040:7;:22;;;;11916:162;12137:13;;;;;;;;;;;12131:19;;:2;:19;;;:55;;;;;12170:15;;;;;;;;;;;12154:32;;:4;:32;;;;12131:55;12127:165;;;12219:15;;12207:9;:27;;;;12263:13;;12253:7;:23;;;;12127:165;12359:10;;12343:12;:26;;:67;;;;;12397:13;;;;;;;;;;;12391:19;;:2;:19;;;;12343:67;:146;;;;;12446:42;12432:57;;:2;:57;;;;12343:146;12339:217;;;12536:4;12525;:8;12530:2;12525:8;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;;;;;;;12339:217;11711:856;12579:41;12594:4;12600:2;12604:6;12612:7;12579:14;:41::i;:::-;10139:2489;10036:2592;;;:::o;2668:224::-;2788:7;2821:1;2816;:6;;2824:12;2808:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2848:9;2864:1;2860;:5;;;;:::i;:::-;2848:17;;2883:1;2876:8;;;2668:224;;;;;:::o;13618:99::-;13675:17;;;;;;;;;;;:26;;:34;13702:6;13675:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13618:99;:::o;8968:323::-;9063:7;9121;;9110;:18;;9088:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9209:19;9231:10;:8;:10::i;:::-;9209:32;;9259:24;9271:11;9259:7;:11;;:24;;;;:::i;:::-;9252:31;;;8968:323;;;:::o;13127:483::-;6693:4;6684:6;;:13;;;;;;;;;;;;;;;;;;13205:21:::1;13243:1;13229:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13205:40;;13274:4;13256;13261:1;13256:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13300:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13290:4;13295:1;13290:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13333:62;13350:4;13365:15;;;;;;;;;;;13383:11;13333:8;:62::i;:::-;13406:15;;;;;;;;;;;:66;;;13487:11;13513:1;13529:4;13556;13576:15;13406:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13194:416;6729:5:::0;6720:6;;:14;;;;;;;;;;;;;;;;;;13127:483;:::o;14449:282::-;14605:7;14600:28;;14614:14;:12;:14::i;:::-;14600:28;14639:44;14657:6;14665:9;14676:6;14639:17;:44::i;:::-;14699:7;14694:29;;14708:15;:13;:15::i;:::-;14694:29;14449:282;;;;:::o;17410:164::-;17452:7;17473:15;17490;17509:19;:17;:19::i;:::-;17472:56;;;;17546:20;17558:7;17546;:11;;:20;;;;:::i;:::-;17539:27;;;;17410:164;:::o;3154:132::-;3212:7;3239:39;3243:1;3246;3239:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3232:46;;3154:132;;;;:::o;9299:219::-;9359:1;9346:9;;:14;:30;;;;;9375:1;9364:7;;:12;9346:30;9378:7;9342:43;9417:9;;9397:17;:29;;;;9455:7;;9437:15;:25;;;;9487:1;9475:9;:13;;;;9509:1;9499:7;:11;;;;9299:219;:::o;14739:610::-;14886:15;14916:23;14954:12;14981:23;15019:12;15046:13;15073:19;15084:7;15073:10;:19::i;:::-;14871:221;;;;;;;;;;;;15121:28;15141:7;15121;:15;15129:6;15121:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15103:7;:15;15111:6;15103:15;;;;;;;;;;;;;;;:46;;;;15181:39;15204:15;15181:7;:18;15189:9;15181:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15160:7;:18;15168:9;15160:18;;;;;;;;;;;;;;;:60;;;;15231:16;15241:5;15231:9;:16::i;:::-;15258:23;15270:4;15276;15258:11;:23::i;:::-;15314:9;15297:44;;15306:6;15297:44;;;15325:15;15297:44;;;;;;:::i;:::-;;;;;;;;14860:489;;;;;;14739:610;;;:::o;9526:117::-;9582:17;;9570:9;:29;;;;9620:15;;9610:7;:25;;;;9526:117::o;17582:257::-;17633:7;17642;17662:15;17680:7;;17662:25;;17698:15;4638:1;5032:2;:13;;;;:::i;:::-;5019:10;:26;;;;:::i;:::-;17698:25;;17748:20;4638:1;5032:2;:13;;;;:::i;:::-;5019:10;:26;;;;:::i;:::-;17748:7;;:11;;:20;;;;:::i;:::-;17738:7;:30;17734:61;;;17778:7;;4638:1;5032:2;:13;;;;:::i;:::-;5019:10;:26;;;;:::i;:::-;17770:25;;;;;;;;17734:61;17814:7;17823;17806:25;;;;;;17582:257;;;:::o;3294:223::-;3414:7;3446:1;3442;:5;3449:12;3434:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3473:9;3489:1;3485;:5;;;;:::i;:::-;3473:17;;3508:1;3501:8;;;3294:223;;;;;:::o;15768:615::-;15868:7;15890;15912;15934;15956;15978;16014:23;16039:12;16053:13;16083:40;16095:7;16104:9;;16115:7;;16083:11;:40::i;:::-;16013:110;;;;;;16134:19;16156:10;:8;:10::i;:::-;16134:32;;16178:15;16195:23;16220:12;16249:46;16261:7;16270:4;16276:5;16283:11;16249;:46::i;:::-;16177:118;;;;;;16314:7;16323:15;16340:4;16346:15;16363:4;16369:5;16306:69;;;;;;;;;;;;;;;;;;;15768:615;;;;;;;:::o;2524:136::-;2582:7;2609:43;2613:1;2616;2609:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2602:50;;2524:136;;;;:::o;2337:179::-;2395:7;2415:9;2431:1;2427;:5;;;;:::i;:::-;2415:17;;2456:1;2451;:6;;2443:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2507:1;2500:8;;;2337:179;;;;:::o;15357:211::-;15410:19;15432:10;:8;:10::i;:::-;15410:32;;15453:13;15469:22;15479:11;15469:5;:9;;:22;;;;:::i;:::-;15453:38;;15527:33;15554:5;15527:7;:22;15543:4;15527:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15502:7;:22;15518:4;15502:22;;;;;;;;;;;;;;;:58;;;;15399:169;;15357:211;:::o;15576:147::-;15654:17;15666:4;15654:7;;:11;;:17;;;;:::i;:::-;15644:7;:27;;;;15695:20;15710:4;15695:10;;:14;;:20;;;;:::i;:::-;15682:10;:33;;;;15576:147;;:::o;16391:469::-;16560:7;16582;16604;16639:12;16654:30;16680:3;16654:21;16666:8;16654:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16639:45;;16695:13;16711:28;16735:3;16711:19;16723:6;16711:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16695:44;;16750:23;16776:28;16798:5;16776:17;16788:4;16776:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16750:54;;16823:15;16840:4;16846:5;16815:37;;;;;;;;;16391:469;;;;;;;:::o;16868:534::-;17062:7;17084;17106;17141:15;17159:24;17171:11;17159:7;:11;;:24;;;;:::i;:::-;17141:42;;17194:12;17209:21;17218:11;17209:4;:8;;:21;;;;:::i;:::-;17194:36;;17241:13;17257:22;17267:11;17257:5;:9;;:22;;;;:::i;:::-;17241:38;;17290:23;17316:28;17338:5;17316:17;17328:4;17316:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17290:54;;17363:7;17372:15;17389:4;17355:39;;;;;;;;;;16868:534;;;;;;;;:::o;2900:246::-;2958:7;2987:1;2982;:6;2978:47;;3012:1;3005:8;;;;2978:47;3035:9;3051:1;3047;:5;;;;:::i;:::-;3035:17;;3080:1;3075;3071;:5;;;;:::i;:::-;:10;3063:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3137:1;3130:8;;;2900:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:329::-;4878:6;4927:2;4915:9;4906:7;4902:23;4898:32;4895:119;;;4933:79;;:::i;:::-;4895:119;5053:1;5078:53;5123:7;5114:6;5103:9;5099:22;5078:53;:::i;:::-;5068:63;;5024:117;4819:329;;;;:::o;5154:619::-;5231:6;5239;5247;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5549:2;5575:53;5620:7;5611:6;5600:9;5596:22;5575:53;:::i;:::-;5565:63;;5520:118;5677:2;5703:53;5748:7;5739:6;5728:9;5724:22;5703:53;:::i;:::-;5693:63;;5648:118;5154:619;;;;;:::o;5779:86::-;5814:7;5854:4;5847:5;5843:16;5832:27;;5779:86;;;:::o;5871:112::-;5954:22;5970:5;5954:22;:::i;:::-;5949:3;5942:35;5871:112;;:::o;5989:214::-;6078:4;6116:2;6105:9;6101:18;6093:26;;6129:67;6193:1;6182:9;6178:17;6169:6;6129:67;:::i;:::-;5989:214;;;;:::o;6209:118::-;6296:24;6314:5;6296:24;:::i;:::-;6291:3;6284:37;6209:118;;:::o;6333:222::-;6426:4;6464:2;6453:9;6449:18;6441:26;;6477:71;6545:1;6534:9;6530:17;6521:6;6477:71;:::i;:::-;6333:222;;;;:::o;6561:116::-;6631:21;6646:5;6631:21;:::i;:::-;6624:5;6621:32;6611:60;;6667:1;6664;6657:12;6611:60;6561:116;:::o;6683:133::-;6726:5;6764:6;6751:20;6742:29;;6780:30;6804:5;6780:30;:::i;:::-;6683:133;;;;:::o;6822:323::-;6878:6;6927:2;6915:9;6906:7;6902:23;6898:32;6895:119;;;6933:79;;:::i;:::-;6895:119;7053:1;7078:50;7120:7;7111:6;7100:9;7096:22;7078:50;:::i;:::-;7068:60;;7024:114;6822:323;;;;:::o;7151:329::-;7210:6;7259:2;7247:9;7238:7;7234:23;7230:32;7227:119;;;7265:79;;:::i;:::-;7227:119;7385:1;7410:53;7455:7;7446:6;7435:9;7431:22;7410:53;:::i;:::-;7400:63;;7356:117;7151:329;;;;:::o;7486:765::-;7572:6;7580;7588;7596;7645:3;7633:9;7624:7;7620:23;7616:33;7613:120;;;7652:79;;:::i;:::-;7613:120;7772:1;7797:53;7842:7;7833:6;7822:9;7818:22;7797:53;:::i;:::-;7787:63;;7743:117;7899:2;7925:53;7970:7;7961:6;7950:9;7946:22;7925:53;:::i;:::-;7915:63;;7870:118;8027:2;8053:53;8098:7;8089:6;8078:9;8074:22;8053:53;:::i;:::-;8043:63;;7998:118;8155:2;8181:53;8226:7;8217:6;8206:9;8202:22;8181:53;:::i;:::-;8171:63;;8126:118;7486:765;;;;;;;:::o;8257:117::-;8366:1;8363;8356:12;8380:117;8489:1;8486;8479:12;8503:117;8612:1;8609;8602:12;8643:568;8716:8;8726:6;8776:3;8769:4;8761:6;8757:17;8753:27;8743:122;;8784:79;;:::i;:::-;8743:122;8897:6;8884:20;8874:30;;8927:18;8919:6;8916:30;8913:117;;;8949:79;;:::i;:::-;8913:117;9063:4;9055:6;9051:17;9039:29;;9117:3;9109:4;9101:6;9097:17;9087:8;9083:32;9080:41;9077:128;;;9124:79;;:::i;:::-;9077:128;8643:568;;;;;:::o;9217:698::-;9309:6;9317;9325;9374:2;9362:9;9353:7;9349:23;9345:32;9342:119;;;9380:79;;:::i;:::-;9342:119;9528:1;9517:9;9513:17;9500:31;9558:18;9550:6;9547:30;9544:117;;;9580:79;;:::i;:::-;9544:117;9693:80;9765:7;9756:6;9745:9;9741:22;9693:80;:::i;:::-;9675:98;;;;9471:312;9822:2;9848:50;9890:7;9881:6;9870:9;9866:22;9848:50;:::i;:::-;9838:60;;9793:115;9217:698;;;;;:::o;9921:474::-;9989:6;9997;10046:2;10034:9;10025:7;10021:23;10017:32;10014:119;;;10052:79;;:::i;:::-;10014:119;10172:1;10197:53;10242:7;10233:6;10222:9;10218:22;10197:53;:::i;:::-;10187:63;;10143:117;10299:2;10325:53;10370:7;10361:6;10350:9;10346:22;10325:53;:::i;:::-;10315:63;;10270:118;9921:474;;;;;:::o;10401:180::-;10449:77;10446:1;10439:88;10546:4;10543:1;10536:15;10570:4;10567:1;10560:15;10587:102;10629:8;10676:5;10673:1;10669:13;10648:34;;10587:102;;;:::o;10695:848::-;10756:5;10763:4;10787:6;10778:15;;10811:5;10802:14;;10825:712;10846:1;10836:8;10833:15;10825:712;;;10941:4;10936:3;10932:14;10926:4;10923:24;10920:50;;;10950:18;;:::i;:::-;10920:50;11000:1;10990:8;10986:16;10983:451;;;11415:4;11408:5;11404:16;11395:25;;10983:451;11465:4;11459;11455:15;11447:23;;11495:32;11518:8;11495:32;:::i;:::-;11483:44;;10825:712;;;10695:848;;;;;;;:::o;11549:1073::-;11603:5;11794:8;11784:40;;11815:1;11806:10;;11817:5;;11784:40;11843:4;11833:36;;11860:1;11851:10;;11862:5;;11833:36;11929:4;11977:1;11972:27;;;;12013:1;12008:191;;;;11922:277;;11972:27;11990:1;11981:10;;11992:5;;;12008:191;12053:3;12043:8;12040:17;12037:43;;;12060:18;;:::i;:::-;12037:43;12109:8;12106:1;12102:16;12093:25;;12144:3;12137:5;12134:14;12131:40;;;12151:18;;:::i;:::-;12131:40;12184:5;;;11922:277;;12308:2;12298:8;12295:16;12289:3;12283:4;12280:13;12276:36;12258:2;12248:8;12245:16;12240:2;12234:4;12231:12;12227:35;12211:111;12208:246;;;12364:8;12358:4;12354:19;12345:28;;12399:3;12392:5;12389:14;12386:40;;;12406:18;;:::i;:::-;12386:40;12439:5;;12208:246;12479:42;12517:3;12507:8;12501:4;12498:1;12479:42;:::i;:::-;12464:57;;;;12553:4;12548:3;12544:14;12537:5;12534:25;12531:51;;;12562:18;;:::i;:::-;12531:51;12611:4;12604:5;12600:16;12591:25;;11549:1073;;;;;;:::o;12628:281::-;12686:5;12710:23;12728:4;12710:23;:::i;:::-;12702:31;;12754:25;12770:8;12754:25;:::i;:::-;12742:37;;12798:104;12835:66;12825:8;12819:4;12798:104;:::i;:::-;12789:113;;12628:281;;;;:::o;12915:348::-;12955:7;12978:20;12996:1;12978:20;:::i;:::-;12973:25;;13012:20;13030:1;13012:20;:::i;:::-;13007:25;;13200:1;13132:66;13128:74;13125:1;13122:81;13117:1;13110:9;13103:17;13099:105;13096:131;;;13207:18;;:::i;:::-;13096:131;13255:1;13252;13248:9;13237:20;;12915:348;;;;:::o;13269:182::-;13409:34;13405:1;13397:6;13393:14;13386:58;13269:182;:::o;13457:366::-;13599:3;13620:67;13684:2;13679:3;13620:67;:::i;:::-;13613:74;;13696:93;13785:3;13696:93;:::i;:::-;13814:2;13809:3;13805:12;13798:19;;13457:366;;;:::o;13829:419::-;13995:4;14033:2;14022:9;14018:18;14010:26;;14082:9;14076:4;14072:20;14068:1;14057:9;14053:17;14046:47;14110:131;14236:4;14110:131;:::i;:::-;14102:139;;13829:419;;;:::o;14254:305::-;14294:3;14313:20;14331:1;14313:20;:::i;:::-;14308:25;;14347:20;14365:1;14347:20;:::i;:::-;14342:25;;14501:1;14433:66;14429:74;14426:1;14423:81;14420:107;;;14507:18;;:::i;:::-;14420:107;14551:1;14548;14544:9;14537:16;;14254:305;;;;:::o;14565:178::-;14705:30;14701:1;14693:6;14689:14;14682:54;14565:178;:::o;14749:366::-;14891:3;14912:67;14976:2;14971:3;14912:67;:::i;:::-;14905:74;;14988:93;15077:3;14988:93;:::i;:::-;15106:2;15101:3;15097:12;15090:19;;14749:366;;;:::o;15121:419::-;15287:4;15325:2;15314:9;15310:18;15302:26;;15374:9;15368:4;15364:20;15360:1;15349:9;15345:17;15338:47;15402:131;15528:4;15402:131;:::i;:::-;15394:139;;15121:419;;;:::o;15546:179::-;15686:31;15682:1;15674:6;15670:14;15663:55;15546:179;:::o;15731:366::-;15873:3;15894:67;15958:2;15953:3;15894:67;:::i;:::-;15887:74;;15970:93;16059:3;15970:93;:::i;:::-;16088:2;16083:3;16079:12;16072:19;;15731:366;;;:::o;16103:419::-;16269:4;16307:2;16296:9;16292:18;16284:26;;16356:9;16350:4;16346:20;16342:1;16331:9;16327:17;16320:47;16384:131;16510:4;16384:131;:::i;:::-;16376:139;;16103:419;;;:::o;16528:180::-;16576:77;16573:1;16566:88;16673:4;16670:1;16663:15;16697:4;16694:1;16687:15;16714:233;16753:3;16776:24;16794:5;16776:24;:::i;:::-;16767:33;;16822:66;16815:5;16812:77;16809:103;;16892:18;;:::i;:::-;16809:103;16939:1;16932:5;16928:13;16921:20;;16714:233;;;:::o;16953:225::-;17093:34;17089:1;17081:6;17077:14;17070:58;17162:8;17157:2;17149:6;17145:15;17138:33;16953:225;:::o;17184:366::-;17326:3;17347:67;17411:2;17406:3;17347:67;:::i;:::-;17340:74;;17423:93;17512:3;17423:93;:::i;:::-;17541:2;17536:3;17532:12;17525:19;;17184:366;;;:::o;17556:419::-;17722:4;17760:2;17749:9;17745:18;17737:26;;17809:9;17803:4;17799:20;17795:1;17784:9;17780:17;17773:47;17837:131;17963:4;17837:131;:::i;:::-;17829:139;;17556:419;;;:::o;17981:223::-;18121:34;18117:1;18109:6;18105:14;18098:58;18190:6;18185:2;18177:6;18173:15;18166:31;17981:223;:::o;18210:366::-;18352:3;18373:67;18437:2;18432:3;18373:67;:::i;:::-;18366:74;;18449:93;18538:3;18449:93;:::i;:::-;18567:2;18562:3;18558:12;18551:19;;18210:366;;;:::o;18582:419::-;18748:4;18786:2;18775:9;18771:18;18763:26;;18835:9;18829:4;18825:20;18821:1;18810:9;18806:17;18799:47;18863:131;18989:4;18863:131;:::i;:::-;18855:139;;18582:419;;;:::o;19007:221::-;19147:34;19143:1;19135:6;19131:14;19124:58;19216:4;19211:2;19203:6;19199:15;19192:29;19007:221;:::o;19234:366::-;19376:3;19397:67;19461:2;19456:3;19397:67;:::i;:::-;19390:74;;19473:93;19562:3;19473:93;:::i;:::-;19591:2;19586:3;19582:12;19575:19;;19234:366;;;:::o;19606:419::-;19772:4;19810:2;19799:9;19795:18;19787:26;;19859:9;19853:4;19849:20;19845:1;19834:9;19830:17;19823:47;19887:131;20013:4;19887:131;:::i;:::-;19879:139;;19606:419;;;:::o;20031:224::-;20171:34;20167:1;20159:6;20155:14;20148:58;20240:7;20235:2;20227:6;20223:15;20216:32;20031:224;:::o;20261:366::-;20403:3;20424:67;20488:2;20483:3;20424:67;:::i;:::-;20417:74;;20500:93;20589:3;20500:93;:::i;:::-;20618:2;20613:3;20609:12;20602:19;;20261:366;;;:::o;20633:419::-;20799:4;20837:2;20826:9;20822:18;20814:26;;20886:9;20880:4;20876:20;20872:1;20861:9;20857:17;20850:47;20914:131;21040:4;20914:131;:::i;:::-;20906:139;;20633:419;;;:::o;21058:222::-;21198:34;21194:1;21186:6;21182:14;21175:58;21267:5;21262:2;21254:6;21250:15;21243:30;21058:222;:::o;21286:366::-;21428:3;21449:67;21513:2;21508:3;21449:67;:::i;:::-;21442:74;;21525:93;21614:3;21525:93;:::i;:::-;21643:2;21638:3;21634:12;21627:19;;21286:366;;;:::o;21658:419::-;21824:4;21862:2;21851:9;21847:18;21839:26;;21911:9;21905:4;21901:20;21897:1;21886:9;21882:17;21875:47;21939:131;22065:4;21939:131;:::i;:::-;21931:139;;21658:419;;;:::o;22083:228::-;22223:34;22219:1;22211:6;22207:14;22200:58;22292:11;22287:2;22279:6;22275:15;22268:36;22083:228;:::o;22317:366::-;22459:3;22480:67;22544:2;22539:3;22480:67;:::i;:::-;22473:74;;22556:93;22645:3;22556:93;:::i;:::-;22674:2;22669:3;22665:12;22658:19;;22317:366;;;:::o;22689:419::-;22855:4;22893:2;22882:9;22878:18;22870:26;;22942:9;22936:4;22932:20;22928:1;22917:9;22913:17;22906:47;22970:131;23096:4;22970:131;:::i;:::-;22962:139;;22689:419;;;:::o;23114:250::-;23254:34;23250:1;23242:6;23238:14;23231:58;23323:33;23318:2;23310:6;23306:15;23299:58;23114:250;:::o;23370:366::-;23512:3;23533:67;23597:2;23592:3;23533:67;:::i;:::-;23526:74;;23609:93;23698:3;23609:93;:::i;:::-;23727:2;23722:3;23718:12;23711:19;;23370:366;;;:::o;23742:419::-;23908:4;23946:2;23935:9;23931:18;23923:26;;23995:9;23989:4;23985:20;23981:1;23970:9;23966:17;23959:47;24023:131;24149:4;24023:131;:::i;:::-;24015:139;;23742:419;;;:::o;24167:178::-;24307:30;24303:1;24295:6;24291:14;24284:54;24167:178;:::o;24351:366::-;24493:3;24514:67;24578:2;24573:3;24514:67;:::i;:::-;24507:74;;24590:93;24679:3;24590:93;:::i;:::-;24708:2;24703:3;24699:12;24692:19;;24351:366;;;:::o;24723:419::-;24889:4;24927:2;24916:9;24912:18;24904:26;;24976:9;24970:4;24966:20;24962:1;24951:9;24947:17;24940:47;25004:131;25130:4;25004:131;:::i;:::-;24996:139;;24723:419;;;:::o;25148:222::-;25288:34;25284:1;25276:6;25272:14;25265:58;25357:5;25352:2;25344:6;25340:15;25333:30;25148:222;:::o;25376:366::-;25518:3;25539:67;25603:2;25598:3;25539:67;:::i;:::-;25532:74;;25615:93;25704:3;25615:93;:::i;:::-;25733:2;25728:3;25724:12;25717:19;;25376:366;;;:::o;25748:419::-;25914:4;25952:2;25941:9;25937:18;25929:26;;26001:9;25995:4;25991:20;25987:1;25976:9;25972:17;25965:47;26029:131;26155:4;26029:131;:::i;:::-;26021:139;;25748:419;;;:::o;26173:222::-;26313:34;26309:1;26301:6;26297:14;26290:58;26382:5;26377:2;26369:6;26365:15;26358:30;26173:222;:::o;26401:366::-;26543:3;26564:67;26628:2;26623:3;26564:67;:::i;:::-;26557:74;;26640:93;26729:3;26640:93;:::i;:::-;26758:2;26753:3;26749:12;26742:19;;26401:366;;;:::o;26773:419::-;26939:4;26977:2;26966:9;26962:18;26954:26;;27026:9;27020:4;27016:20;27012:1;27001:9;26997:17;26990:47;27054:131;27180:4;27054:131;:::i;:::-;27046:139;;26773:419;;;:::o;27198:191::-;27238:4;27258:20;27276:1;27258:20;:::i;:::-;27253:25;;27292:20;27310:1;27292:20;:::i;:::-;27287:25;;27331:1;27328;27325:8;27322:34;;;27336:18;;:::i;:::-;27322:34;27381:1;27378;27374:9;27366:17;;27198:191;;;;:::o;27395:229::-;27535:34;27531:1;27523:6;27519:14;27512:58;27604:12;27599:2;27591:6;27587:15;27580:37;27395:229;:::o;27630:366::-;27772:3;27793:67;27857:2;27852:3;27793:67;:::i;:::-;27786:74;;27869:93;27958:3;27869:93;:::i;:::-;27987:2;27982:3;27978:12;27971:19;;27630:366;;;:::o;28002:419::-;28168:4;28206:2;28195:9;28191:18;28183:26;;28255:9;28249:4;28245:20;28241:1;28230:9;28226:17;28219:47;28283:131;28409:4;28283:131;:::i;:::-;28275:139;;28002:419;;;:::o;28427:180::-;28475:77;28472:1;28465:88;28572:4;28569:1;28562:15;28596:4;28593:1;28586:15;28613:143;28670:5;28701:6;28695:13;28686:22;;28717:33;28744:5;28717:33;:::i;:::-;28613:143;;;;:::o;28762:351::-;28832:6;28881:2;28869:9;28860:7;28856:23;28852:32;28849:119;;;28887:79;;:::i;:::-;28849:119;29007:1;29032:64;29088:7;29079:6;29068:9;29064:22;29032:64;:::i;:::-;29022:74;;28978:128;28762:351;;;;:::o;29119:85::-;29164:7;29193:5;29182:16;;29119:85;;;:::o;29210:158::-;29268:9;29301:61;29319:42;29328:32;29354:5;29328:32;:::i;:::-;29319:42;:::i;:::-;29301:61;:::i;:::-;29288:74;;29210:158;;;:::o;29374:147::-;29469:45;29508:5;29469:45;:::i;:::-;29464:3;29457:58;29374:147;;:::o;29527:114::-;29594:6;29628:5;29622:12;29612:22;;29527:114;;;:::o;29647:184::-;29746:11;29780:6;29775:3;29768:19;29820:4;29815:3;29811:14;29796:29;;29647:184;;;;:::o;29837:132::-;29904:4;29927:3;29919:11;;29957:4;29952:3;29948:14;29940:22;;29837:132;;;:::o;29975:108::-;30052:24;30070:5;30052:24;:::i;:::-;30047:3;30040:37;29975:108;;:::o;30089:179::-;30158:10;30179:46;30221:3;30213:6;30179:46;:::i;:::-;30257:4;30252:3;30248:14;30234:28;;30089:179;;;;:::o;30274:113::-;30344:4;30376;30371:3;30367:14;30359:22;;30274:113;;;:::o;30423:732::-;30542:3;30571:54;30619:5;30571:54;:::i;:::-;30641:86;30720:6;30715:3;30641:86;:::i;:::-;30634:93;;30751:56;30801:5;30751:56;:::i;:::-;30830:7;30861:1;30846:284;30871:6;30868:1;30865:13;30846:284;;;30947:6;30941:13;30974:63;31033:3;31018:13;30974:63;:::i;:::-;30967:70;;31060:60;31113:6;31060:60;:::i;:::-;31050:70;;30906:224;30893:1;30890;30886:9;30881:14;;30846:284;;;30850:14;31146:3;31139:10;;30547:608;;;30423:732;;;;:::o;31161:831::-;31424:4;31462:3;31451:9;31447:19;31439:27;;31476:71;31544:1;31533:9;31529:17;31520:6;31476:71;:::i;:::-;31557:80;31633:2;31622:9;31618:18;31609:6;31557:80;:::i;:::-;31684:9;31678:4;31674:20;31669:2;31658:9;31654:18;31647:48;31712:108;31815:4;31806:6;31712:108;:::i;:::-;31704:116;;31830:72;31898:2;31887:9;31883:18;31874:6;31830:72;:::i;:::-;31912:73;31980:3;31969:9;31965:19;31956:6;31912:73;:::i;:::-;31161:831;;;;;;;;:::o;31998:180::-;32046:77;32043:1;32036:88;32143:4;32140:1;32133:15;32167:4;32164:1;32157:15;32184:185;32224:1;32241:20;32259:1;32241:20;:::i;:::-;32236:25;;32275:20;32293:1;32275:20;:::i;:::-;32270:25;;32314:1;32304:35;;32319:18;;:::i;:::-;32304:35;32361:1;32358;32354:9;32349:14;;32184:185;;;;:::o;32375:177::-;32515:29;32511:1;32503:6;32499:14;32492:53;32375:177;:::o;32558:366::-;32700:3;32721:67;32785:2;32780:3;32721:67;:::i;:::-;32714:74;;32797:93;32886:3;32797:93;:::i;:::-;32915:2;32910:3;32906:12;32899:19;;32558:366;;;:::o;32930:419::-;33096:4;33134:2;33123:9;33119:18;33111:26;;33183:9;33177:4;33173:20;33169:1;33158:9;33154:17;33147:47;33211:131;33337:4;33211:131;:::i;:::-;33203:139;;32930:419;;;:::o;33355:220::-;33495:34;33491:1;33483:6;33479:14;33472:58;33564:3;33559:2;33551:6;33547:15;33540:28;33355:220;:::o;33581:366::-;33723:3;33744:67;33808:2;33803:3;33744:67;:::i;:::-;33737:74;;33820:93;33909:3;33820:93;:::i;:::-;33938:2;33933:3;33929:12;33922:19;;33581:366;;;:::o;33953:419::-;34119:4;34157:2;34146:9;34142:18;34134:26;;34206:9;34200:4;34196:20;34192:1;34181:9;34177:17;34170:47;34234:131;34360:4;34234:131;:::i;:::-;34226:139;;33953:419;;;:::o

Swarm Source

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