ETH Price: $3,353.54 (-1.04%)

Token

BlockInsightAI (BIAI)
 

Overview

Max Total Supply

100,000,000 BIAI

Holders

561 (0.00%)

Market

Price

$0.01 @ 0.000003 ETH (-21.71%)

Onchain Market Cap

$1,003,882.00

Circulating Supply Market Cap

$1,004,684.00

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 BIAI

Value
$0.00 ( ~0 Eth) [0.0000%]
0x65c28fb043c9b46a9e55901c822e56844f0f1d59
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Discover a new era of on-chain intelligence. BlockInsightAI is revolutionizing how you navigate the blockchain by tracking data from the most successful traders and delivering the sharpest insights.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BlockInsightAI

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-23
*/

// SPDX-License-Identifier: Unlicensed

/**
Telegram: https://t.me/BlockInsightAIPortal
Website: https://blockinsight.ai/
Twitter: https://x.com/BlockInsightAI
WhitePaper: https://docs.blockinsight.ai/
**/
pragma solidity ^0.8.18;
 
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 BlockInsightAI is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "BlockInsightAI";
    string private constant _symbol = "BIAI";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;   
    uint256 private _taxFeeOnBuy = 5;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 5;

    event PairAddressSet(address indexed newPair);
 
    //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 = payable(0xB476a5FC4Af61d37c4465999bE7a654680C03923); //Dev Wallet
    address payable private _marketingAddress = payable(0x1d00e1c1aa01854eBf07F6fe145fa89e56096173);   //Marketing Wallet
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 1000001 * 10**9;      //%1
    uint256 public _maxWalletSize = 1000001 * 10**9;    //%1
    uint256 public _swapTokensAtAmount = 1000 * 10**9;

    bool private _maxTxn = false;
    bool private _maxWallet = false;
    bool private _maxTxnCan = false;
    bool private _maxWalletCan = false;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function setPair(address newPair) public onlyOwner {
        require(uniswapV2Pair == address(0), "Pair already initialized");
        uniswapV2Pair = newPair;
        emit PairAddressSet(newPair);
    }

    function getPairAddress() public view returns (address) {
        return uniswapV2Pair;
    }
 
    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,
                "the transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount has to 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), "Can't approve from zero address");
        require(spender != address(0), "Can't approve to zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "Cant transfer from address zero");
        require(to != address(0), "Cant transfer to address zero");
        require(amount > 0, "Amount should be above zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "Only owner can trade before trading activation");
            }
 
            require(amount <= _maxTxAmount, "Exceeded max transaction limit");
            require(!bots[from] && !bots[to], "This account is on the blacklist");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "Exceeds max wallet balance");
            }
 
            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;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    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 blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 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 setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 4%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 95, "Buy tax must be between 0% and 95%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 4%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 95, "Sell tax must be between 0% and 95%");

        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;

    }
 
    //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, bool maxTxn, bool maxTxnCan) public onlyOwner {
           _maxTxAmount = maxTxAmount;
           _maxTxn = maxTxn;
           _maxTxnCan = maxTxnCan;
        
    }
 
    function setMaxWalletSize(uint256 maxWalletSize, bool maxWallet, bool maxWalletCan) public onlyOwner {
        _maxWalletSize = maxWalletSize;
        _maxWallet = maxWallet;
        _maxWalletCan = maxWalletCan;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

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":"newPair","type":"address"}],"name":"PairAddressSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_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":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"internalType":"bool","name":"maxTxn","type":"bool"},{"internalType":"bool","name":"maxTxnCan","type":"bool"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"},{"internalType":"bool","name":"maxWallet","type":"bool"},{"internalType":"bool","name":"maxWalletCan","type":"bool"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPair","type":"address"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","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"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a00006000196200001c9190620005d4565b6000196200002b91906200063b565b600655600060085560056009556000600a556005600b55600a54600c55600b54600d55600c54600e55600d54600f5573b476a5fc4af61d37c4465999be7a654680c03923601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731d00e1c1aa01854ebf07f6fe145fa89e56096173601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066038d7ee0614a0060165566038d7ee0614a0060175564e8d4a510006018556000601960006101000a81548160ff0219169083151502179055506000601960016101000a81548160ff0219169083151502179055506000601960026101000a81548160ff0219169083151502179055506000601960036101000a81548160ff021916908315150217905550348015620001d157600080fd5b506000620001e46200056a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620002996200056a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620003476200057260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004f46200056a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200055b919062000687565b60405180910390a350620006a4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620005e1826200059b565b9150620005ee836200059b565b925082620006015762000600620005a5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000648826200059b565b915062000655836200059b565b925082820390508181111562000670576200066f6200060c565b5b92915050565b62000681816200059b565b82525050565b60006020820190506200069e600083018462000676565b92915050565b61436c80620006b46000396000f3fe6080604052600436106101e65760003560e01c80638187f51611610102578063a9059cbb11610095578063c492f04611610064578063c492f046146106c6578063dd62ed3e146106ef578063f2fde38b1461072c578063fc7d946914610755576101ed565b8063a9059cbb1461060c578063bd6bba9114610649578063bfd7928414610672578063c3c8cd80146106af576101ed565b80638f9a55c0116100d15780638f9a55c01461056457806395d89b411461058f57806398a5c315146105ba578063a2a957bb146105e3576101ed565b80638187f516146104bc5780638d5f81e2146104e55780638da5cb5b146105105780638f70ccf71461053b576101ed565b806349bd5a5e1161017a57806370a082311161014957806370a0823114610400578063715018a61461043d5780637d1db4a5146104545780637f2feddc1461047f576101ed565b806349bd5a5e1461036c5780636b999053146103975780636d8aa8f8146103c05780636fc3eaec146103e9576101ed565b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102d95780632fd689e314610316578063313ce56714610341576101ed565b8062b8cf2a146101f257806306fdde031461021b578063095ea7b3146102465780631694505e14610283576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021960048036038101906102149190613142565b61077e565b005b34801561022757600080fd5b506102306108a8565b60405161023d919061320a565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190613262565b6108e5565b60405161027a91906132bd565b60405180910390f35b34801561028f57600080fd5b50610298610903565b6040516102a59190613337565b60405180910390f35b3480156102ba57600080fd5b506102c3610929565b6040516102d09190613361565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb919061337c565b610939565b60405161030d91906132bd565b60405180910390f35b34801561032257600080fd5b5061032b610a12565b6040516103389190613361565b60405180910390f35b34801561034d57600080fd5b50610356610a18565b60405161036391906133eb565b60405180910390f35b34801561037857600080fd5b50610381610a21565b60405161038e9190613415565b60405180910390f35b3480156103a357600080fd5b506103be60048036038101906103b99190613430565b610a47565b005b3480156103cc57600080fd5b506103e760048036038101906103e29190613489565b610b37565b005b3480156103f557600080fd5b506103fe610be9565b005b34801561040c57600080fd5b5061042760048036038101906104229190613430565b610cba565b6040516104349190613361565b60405180910390f35b34801561044957600080fd5b50610452610d0b565b005b34801561046057600080fd5b50610469610e5e565b6040516104769190613361565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613430565b610e64565b6040516104b39190613361565b60405180910390f35b3480156104c857600080fd5b506104e360048036038101906104de9190613430565b610e7c565b005b3480156104f157600080fd5b506104fa611029565b6040516105079190613415565b60405180910390f35b34801561051c57600080fd5b50610525611053565b6040516105329190613415565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d9190613489565b61107c565b005b34801561057057600080fd5b5061057961112e565b6040516105869190613361565b60405180910390f35b34801561059b57600080fd5b506105a4611134565b6040516105b1919061320a565b60405180910390f35b3480156105c657600080fd5b506105e160048036038101906105dc91906134b6565b611171565b005b3480156105ef57600080fd5b5061060a600480360381019061060591906134e3565b611210565b005b34801561061857600080fd5b50610633600480360381019061062e9190613262565b61140b565b60405161064091906132bd565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b919061354a565b611429565b005b34801561067e57600080fd5b5061069960048036038101906106949190613430565b6114fe565b6040516106a691906132bd565b60405180910390f35b3480156106bb57600080fd5b506106c461151e565b005b3480156106d257600080fd5b506106ed60048036038101906106e891906135f8565b6115f7565b005b3480156106fb57600080fd5b5061071660048036038101906107119190613658565b611731565b6040516107239190613361565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e9190613430565b6117b8565b005b34801561076157600080fd5b5061077c6004803603810190610777919061354a565b611979565b005b610786611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080a906136e4565b60405180910390fd5b60005b81518110156108a45760016010600084848151811061083857610837613704565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061089c90613762565b915050610816565b5050565b60606040518060400160405280600e81526020017f426c6f636b496e73696768744149000000000000000000000000000000000000815250905090565b60006108f96108f2611a4e565b8484611a56565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b6000610946848484611c1f565b610a0784610952611a4e565b610a028560405180606001604052806025815260200161431260259139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109b8611a4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a29092919063ffffffff16565b611a56565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a4f611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad3906136e4565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b3f611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc3906136e4565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c2a611a4e565b73ffffffffffffffffffffffffffffffffffffffff161480610ca05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c88611a4e565b73ffffffffffffffffffffffffffffffffffffffff16145b610ca957600080fd5b6000479050610cb781612506565b50565b6000610d04600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612572565b9050919050565b610d13611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d97906136e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b60116020528060005260406000206000915090505481565b610e84611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f08906136e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f99906137f6565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f5d338516e06e286e70c606dc31a9818bc3ecf6eb9995eaa5c4c7cae87e86adda60405160405180910390a250565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611084611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611108906136e4565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f4249414900000000000000000000000000000000000000000000000000000000815250905090565b611179611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd906136e4565b60405180910390fd5b8060188190555050565b611218611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c906136e4565b60405180910390fd5b600084101580156112b7575060048411155b6112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed90613888565b60405180910390fd5b600082101580156113085750605f8211155b611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133e9061391a565b60405180910390fd5b60008310158015611359575060048311155b611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f906139ac565b60405180910390fd5b600081101580156113aa5750605f8111155b6113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e090613a3e565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061141f611418611a4e565b8484611c1f565b6001905092915050565b611431611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b5906136e4565b60405180910390fd5b8260168190555081601960006101000a81548160ff02191690831515021790555080601960026101000a81548160ff021916908315150217905550505050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661155f611a4e565b73ffffffffffffffffffffffffffffffffffffffff1614806115d55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115bd611a4e565b73ffffffffffffffffffffffffffffffffffffffff16145b6115de57600080fd5b60006115e930610cba565b90506115f4816125e0565b50565b6115ff611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611683906136e4565b60405180910390fd5b60005b8383905081101561172b5781600560008686858181106116b2576116b1613704565b5b90506020020160208101906116c79190613430565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061172390613762565b91505061168f565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117c0611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611844906136e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b390613ad0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611981611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a05906136e4565b60405180910390fd5b8260178190555081601960016101000a81548160ff02191690831515021790555080601960036101000a81548160ff021916908315150217905550505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ac5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abc90613b3c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2b90613ba8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c129190613361565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8590613c14565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf490613c80565b60405180910390fd5b60008111611d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3790613cec565b60405180910390fd5b611d48611053565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611db65750611d86611053565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121a157601560149054906101000a900460ff16611e4557611dd7611053565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b90613d7e565b60405180910390fd5b5b601654811115611e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8190613dea565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f2e5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6490613e56565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461201a5760175481611fcf84610cba565b611fd99190613e76565b10612019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201090613ef6565b60405180910390fd5b5b600061202530610cba565b90506000601854821015905060165482106120405760165491505b808015612058575060158054906101000a900460ff16155b80156120b25750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120ca5750601560169054906101000a900460ff165b80156121205750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121765750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561219e57612184826125e0565b6000479050600081111561219c5761219b47612506565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122485750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122fb5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122fa5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156123095760009050612490565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123b45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123cc57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124775750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561248f57600a54600c81905550600b54600d819055505b5b61249c84848484612857565b50505050565b60008383111582906124ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e1919061320a565b60405180910390fd5b50600083856124f99190613f16565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561256e573d6000803e3d6000fd5b5050565b60006006548211156125b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b090613fbc565b60405180910390fd5b60006125c3612884565b90506125d881846128af90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561261757612616612fa1565b5b6040519080825280602002602001820160405280156126455781602001602082028036833780820191505090505b509050308160008151811061265d5761265c613704565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612704573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127289190613ff1565b8160018151811061273c5761273b613704565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127a330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a56565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612807959493929190614117565b600060405180830381600087803b15801561282157600080fd5b505af1158015612835573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612865576128646128f9565b5b612870848484612936565b8061287e5761287d612b01565b5b50505050565b6000806000612891612b15565b915091506128a881836128af90919063ffffffff16565b9250505090565b60006128f183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b74565b905092915050565b6000600c5414801561290d57506000600d54145b61293457600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061294887612bd7565b9550955095509550955095506129a686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3f90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3b85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a8781612ce7565b612a918483612da4565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612aee9190613361565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a00009050612b4967016345785d8a00006006546128af90919063ffffffff16565b821015612b675760065467016345785d8a0000935093505050612b70565b81819350935050505b9091565b60008083118290612bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb2919061320a565b60405180910390fd5b5060008385612bca91906141a0565b9050809150509392505050565b6000806000806000806000806000612bf48a600c54600d54612dde565b9250925092506000612c04612884565b90506000806000612c178e878787612e74565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612c8183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124a2565b905092915050565b6000808284612c989190613e76565b905083811015612cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd49061421d565b60405180910390fd5b8091505092915050565b6000612cf1612884565b90506000612d088284612efd90919063ffffffff16565b9050612d5c81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612db982600654612c3f90919063ffffffff16565b600681905550612dd481600754612c8990919063ffffffff16565b6007819055505050565b600080600080612e0a6064612dfc888a612efd90919063ffffffff16565b6128af90919063ffffffff16565b90506000612e346064612e26888b612efd90919063ffffffff16565b6128af90919063ffffffff16565b90506000612e5d82612e4f858c612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612e8d8589612efd90919063ffffffff16565b90506000612ea48689612efd90919063ffffffff16565b90506000612ebb8789612efd90919063ffffffff16565b90506000612ee482612ed68587612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612f0f5760009050612f71565b60008284612f1d919061423d565b9050828482612f2c91906141a0565b14612f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f63906142f1565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612fd982612f90565b810181811067ffffffffffffffff82111715612ff857612ff7612fa1565b5b80604052505050565b600061300b612f77565b90506130178282612fd0565b919050565b600067ffffffffffffffff82111561303757613036612fa1565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130788261304d565b9050919050565b6130888161306d565b811461309357600080fd5b50565b6000813590506130a58161307f565b92915050565b60006130be6130b98461301c565b613001565b905080838252602082019050602084028301858111156130e1576130e0613048565b5b835b8181101561310a57806130f68882613096565b8452602084019350506020810190506130e3565b5050509392505050565b600082601f83011261312957613128612f8b565b5b81356131398482602086016130ab565b91505092915050565b60006020828403121561315857613157612f81565b5b600082013567ffffffffffffffff81111561317657613175612f86565b5b61318284828501613114565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131c55780820151818401526020810190506131aa565b60008484015250505050565b60006131dc8261318b565b6131e68185613196565b93506131f68185602086016131a7565b6131ff81612f90565b840191505092915050565b6000602082019050818103600083015261322481846131d1565b905092915050565b6000819050919050565b61323f8161322c565b811461324a57600080fd5b50565b60008135905061325c81613236565b92915050565b6000806040838503121561327957613278612f81565b5b600061328785828601613096565b92505060206132988582860161324d565b9150509250929050565b60008115159050919050565b6132b7816132a2565b82525050565b60006020820190506132d260008301846132ae565b92915050565b6000819050919050565b60006132fd6132f86132f38461304d565b6132d8565b61304d565b9050919050565b600061330f826132e2565b9050919050565b600061332182613304565b9050919050565b61333181613316565b82525050565b600060208201905061334c6000830184613328565b92915050565b61335b8161322c565b82525050565b60006020820190506133766000830184613352565b92915050565b60008060006060848603121561339557613394612f81565b5b60006133a386828701613096565b93505060206133b486828701613096565b92505060406133c58682870161324d565b9150509250925092565b600060ff82169050919050565b6133e5816133cf565b82525050565b600060208201905061340060008301846133dc565b92915050565b61340f8161306d565b82525050565b600060208201905061342a6000830184613406565b92915050565b60006020828403121561344657613445612f81565b5b600061345484828501613096565b91505092915050565b613466816132a2565b811461347157600080fd5b50565b6000813590506134838161345d565b92915050565b60006020828403121561349f5761349e612f81565b5b60006134ad84828501613474565b91505092915050565b6000602082840312156134cc576134cb612f81565b5b60006134da8482850161324d565b91505092915050565b600080600080608085870312156134fd576134fc612f81565b5b600061350b8782880161324d565b945050602061351c8782880161324d565b935050604061352d8782880161324d565b925050606061353e8782880161324d565b91505092959194509250565b60008060006060848603121561356357613562612f81565b5b60006135718682870161324d565b935050602061358286828701613474565b925050604061359386828701613474565b9150509250925092565b600080fd5b60008083601f8401126135b8576135b7612f8b565b5b8235905067ffffffffffffffff8111156135d5576135d461359d565b5b6020830191508360208202830111156135f1576135f0613048565b5b9250929050565b60008060006040848603121561361157613610612f81565b5b600084013567ffffffffffffffff81111561362f5761362e612f86565b5b61363b868287016135a2565b9350935050602061364e86828701613474565b9150509250925092565b6000806040838503121561366f5761366e612f81565b5b600061367d85828601613096565b925050602061368e85828601613096565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136ce602083613196565b91506136d982613698565b602082019050919050565b600060208201905081810360008301526136fd816136c1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061376d8261322c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361379f5761379e613733565b5b600182019050919050565b7f5061697220616c726561647920696e697469616c697a65640000000000000000600082015250565b60006137e0601883613196565b91506137eb826137aa565b602082019050919050565b6000602082019050818103600083015261380f816137d3565b9050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b6000613872602583613196565b915061387d82613816565b604082019050919050565b600060208201905081810360008301526138a181613865565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203960008201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b6000613904602283613196565b915061390f826138a8565b604082019050919050565b60006020820190508181036000830152613933816138f7565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b6000613996602683613196565b91506139a18261393a565b604082019050919050565b600060208201905081810360008301526139c581613989565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3935250000000000000000000000000000000000000000000000000000000000602082015250565b6000613a28602383613196565b9150613a33826139cc565b604082019050919050565b60006020820190508181036000830152613a5781613a1b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613aba602683613196565b9150613ac582613a5e565b604082019050919050565b60006020820190508181036000830152613ae981613aad565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f206164647265737300600082015250565b6000613b26601f83613196565b9150613b3182613af0565b602082019050919050565b60006020820190508181036000830152613b5581613b19565b9050919050565b7f43616e277420617070726f766520746f207a65726f2061646472657373000000600082015250565b6000613b92601d83613196565b9150613b9d82613b5c565b602082019050919050565b60006020820190508181036000830152613bc181613b85565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f00600082015250565b6000613bfe601f83613196565b9150613c0982613bc8565b602082019050919050565b60006020820190508181036000830152613c2d81613bf1565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f000000600082015250565b6000613c6a601d83613196565b9150613c7582613c34565b602082019050919050565b60006020820190508181036000830152613c9981613c5d565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f0000000000600082015250565b6000613cd6601b83613196565b9150613ce182613ca0565b602082019050919050565b60006020820190508181036000830152613d0581613cc9565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f7265207472616460008201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b6000613d68602e83613196565b9150613d7382613d0c565b604082019050919050565b60006020820190508181036000830152613d9781613d5b565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d69740000600082015250565b6000613dd4601e83613196565b9150613ddf82613d9e565b602082019050919050565b60006020820190508181036000830152613e0381613dc7565b9050919050565b7f54686973206163636f756e74206973206f6e2074686520626c61636b6c697374600082015250565b6000613e40602083613196565b9150613e4b82613e0a565b602082019050919050565b60006020820190508181036000830152613e6f81613e33565b9050919050565b6000613e818261322c565b9150613e8c8361322c565b9250828201905080821115613ea457613ea3613733565b5b92915050565b7f45786365656473206d61782077616c6c65742062616c616e6365000000000000600082015250565b6000613ee0601a83613196565b9150613eeb82613eaa565b602082019050919050565b60006020820190508181036000830152613f0f81613ed3565b9050919050565b6000613f218261322c565b9150613f2c8361322c565b9250828203905081811115613f4457613f43613733565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60008201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b6000613fa6602c83613196565b9150613fb182613f4a565b604082019050919050565b60006020820190508181036000830152613fd581613f99565b9050919050565b600081519050613feb8161307f565b92915050565b60006020828403121561400757614006612f81565b5b600061401584828501613fdc565b91505092915050565b6000819050919050565b600061404361403e6140398461401e565b6132d8565b61322c565b9050919050565b61405381614028565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61408e8161306d565b82525050565b60006140a08383614085565b60208301905092915050565b6000602082019050919050565b60006140c482614059565b6140ce8185614064565b93506140d983614075565b8060005b8381101561410a5781516140f18882614094565b97506140fc836140ac565b9250506001810190506140dd565b5085935050505092915050565b600060a08201905061412c6000830188613352565b614139602083018761404a565b818103604083015261414b81866140b9565b905061415a6060830185613406565b6141676080830184613352565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141ab8261322c565b91506141b68361322c565b9250826141c6576141c5614171565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614207601b83613196565b9150614212826141d1565b602082019050919050565b60006020820190508181036000830152614236816141fa565b9050919050565b60006142488261322c565b91506142538361322c565b92508282026142618161322c565b9150828204841483151761427857614277613733565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006142db602183613196565b91506142e68261427f565b604082019050919050565b6000602082019050818103600083015261430a816142ce565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d787cb27b86b6a1d1895ad807a71299303b896729980750335ade726257e2d7364736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101e65760003560e01c80638187f51611610102578063a9059cbb11610095578063c492f04611610064578063c492f046146106c6578063dd62ed3e146106ef578063f2fde38b1461072c578063fc7d946914610755576101ed565b8063a9059cbb1461060c578063bd6bba9114610649578063bfd7928414610672578063c3c8cd80146106af576101ed565b80638f9a55c0116100d15780638f9a55c01461056457806395d89b411461058f57806398a5c315146105ba578063a2a957bb146105e3576101ed565b80638187f516146104bc5780638d5f81e2146104e55780638da5cb5b146105105780638f70ccf71461053b576101ed565b806349bd5a5e1161017a57806370a082311161014957806370a0823114610400578063715018a61461043d5780637d1db4a5146104545780637f2feddc1461047f576101ed565b806349bd5a5e1461036c5780636b999053146103975780636d8aa8f8146103c05780636fc3eaec146103e9576101ed565b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102d95780632fd689e314610316578063313ce56714610341576101ed565b8062b8cf2a146101f257806306fdde031461021b578063095ea7b3146102465780631694505e14610283576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021960048036038101906102149190613142565b61077e565b005b34801561022757600080fd5b506102306108a8565b60405161023d919061320a565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190613262565b6108e5565b60405161027a91906132bd565b60405180910390f35b34801561028f57600080fd5b50610298610903565b6040516102a59190613337565b60405180910390f35b3480156102ba57600080fd5b506102c3610929565b6040516102d09190613361565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb919061337c565b610939565b60405161030d91906132bd565b60405180910390f35b34801561032257600080fd5b5061032b610a12565b6040516103389190613361565b60405180910390f35b34801561034d57600080fd5b50610356610a18565b60405161036391906133eb565b60405180910390f35b34801561037857600080fd5b50610381610a21565b60405161038e9190613415565b60405180910390f35b3480156103a357600080fd5b506103be60048036038101906103b99190613430565b610a47565b005b3480156103cc57600080fd5b506103e760048036038101906103e29190613489565b610b37565b005b3480156103f557600080fd5b506103fe610be9565b005b34801561040c57600080fd5b5061042760048036038101906104229190613430565b610cba565b6040516104349190613361565b60405180910390f35b34801561044957600080fd5b50610452610d0b565b005b34801561046057600080fd5b50610469610e5e565b6040516104769190613361565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613430565b610e64565b6040516104b39190613361565b60405180910390f35b3480156104c857600080fd5b506104e360048036038101906104de9190613430565b610e7c565b005b3480156104f157600080fd5b506104fa611029565b6040516105079190613415565b60405180910390f35b34801561051c57600080fd5b50610525611053565b6040516105329190613415565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d9190613489565b61107c565b005b34801561057057600080fd5b5061057961112e565b6040516105869190613361565b60405180910390f35b34801561059b57600080fd5b506105a4611134565b6040516105b1919061320a565b60405180910390f35b3480156105c657600080fd5b506105e160048036038101906105dc91906134b6565b611171565b005b3480156105ef57600080fd5b5061060a600480360381019061060591906134e3565b611210565b005b34801561061857600080fd5b50610633600480360381019061062e9190613262565b61140b565b60405161064091906132bd565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b919061354a565b611429565b005b34801561067e57600080fd5b5061069960048036038101906106949190613430565b6114fe565b6040516106a691906132bd565b60405180910390f35b3480156106bb57600080fd5b506106c461151e565b005b3480156106d257600080fd5b506106ed60048036038101906106e891906135f8565b6115f7565b005b3480156106fb57600080fd5b5061071660048036038101906107119190613658565b611731565b6040516107239190613361565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e9190613430565b6117b8565b005b34801561076157600080fd5b5061077c6004803603810190610777919061354a565b611979565b005b610786611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080a906136e4565b60405180910390fd5b60005b81518110156108a45760016010600084848151811061083857610837613704565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061089c90613762565b915050610816565b5050565b60606040518060400160405280600e81526020017f426c6f636b496e73696768744149000000000000000000000000000000000000815250905090565b60006108f96108f2611a4e565b8484611a56565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b6000610946848484611c1f565b610a0784610952611a4e565b610a028560405180606001604052806025815260200161431260259139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109b8611a4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a29092919063ffffffff16565b611a56565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a4f611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad3906136e4565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b3f611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc3906136e4565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c2a611a4e565b73ffffffffffffffffffffffffffffffffffffffff161480610ca05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c88611a4e565b73ffffffffffffffffffffffffffffffffffffffff16145b610ca957600080fd5b6000479050610cb781612506565b50565b6000610d04600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612572565b9050919050565b610d13611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d97906136e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b60116020528060005260406000206000915090505481565b610e84611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f08906136e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f99906137f6565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f5d338516e06e286e70c606dc31a9818bc3ecf6eb9995eaa5c4c7cae87e86adda60405160405180910390a250565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611084611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611108906136e4565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f4249414900000000000000000000000000000000000000000000000000000000815250905090565b611179611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd906136e4565b60405180910390fd5b8060188190555050565b611218611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c906136e4565b60405180910390fd5b600084101580156112b7575060048411155b6112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed90613888565b60405180910390fd5b600082101580156113085750605f8211155b611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133e9061391a565b60405180910390fd5b60008310158015611359575060048311155b611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f906139ac565b60405180910390fd5b600081101580156113aa5750605f8111155b6113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e090613a3e565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061141f611418611a4e565b8484611c1f565b6001905092915050565b611431611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b5906136e4565b60405180910390fd5b8260168190555081601960006101000a81548160ff02191690831515021790555080601960026101000a81548160ff021916908315150217905550505050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661155f611a4e565b73ffffffffffffffffffffffffffffffffffffffff1614806115d55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115bd611a4e565b73ffffffffffffffffffffffffffffffffffffffff16145b6115de57600080fd5b60006115e930610cba565b90506115f4816125e0565b50565b6115ff611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611683906136e4565b60405180910390fd5b60005b8383905081101561172b5781600560008686858181106116b2576116b1613704565b5b90506020020160208101906116c79190613430565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061172390613762565b91505061168f565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117c0611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611844906136e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b390613ad0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611981611a4e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a05906136e4565b60405180910390fd5b8260178190555081601960016101000a81548160ff02191690831515021790555080601960036101000a81548160ff021916908315150217905550505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ac5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abc90613b3c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2b90613ba8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c129190613361565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8590613c14565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf490613c80565b60405180910390fd5b60008111611d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3790613cec565b60405180910390fd5b611d48611053565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611db65750611d86611053565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121a157601560149054906101000a900460ff16611e4557611dd7611053565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b90613d7e565b60405180910390fd5b5b601654811115611e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8190613dea565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f2e5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6490613e56565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461201a5760175481611fcf84610cba565b611fd99190613e76565b10612019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201090613ef6565b60405180910390fd5b5b600061202530610cba565b90506000601854821015905060165482106120405760165491505b808015612058575060158054906101000a900460ff16155b80156120b25750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120ca5750601560169054906101000a900460ff165b80156121205750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121765750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561219e57612184826125e0565b6000479050600081111561219c5761219b47612506565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122485750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122fb5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122fa5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156123095760009050612490565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123b45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123cc57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124775750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561248f57600a54600c81905550600b54600d819055505b5b61249c84848484612857565b50505050565b60008383111582906124ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e1919061320a565b60405180910390fd5b50600083856124f99190613f16565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561256e573d6000803e3d6000fd5b5050565b60006006548211156125b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b090613fbc565b60405180910390fd5b60006125c3612884565b90506125d881846128af90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561261757612616612fa1565b5b6040519080825280602002602001820160405280156126455781602001602082028036833780820191505090505b509050308160008151811061265d5761265c613704565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612704573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127289190613ff1565b8160018151811061273c5761273b613704565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127a330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a56565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612807959493929190614117565b600060405180830381600087803b15801561282157600080fd5b505af1158015612835573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612865576128646128f9565b5b612870848484612936565b8061287e5761287d612b01565b5b50505050565b6000806000612891612b15565b915091506128a881836128af90919063ffffffff16565b9250505090565b60006128f183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b74565b905092915050565b6000600c5414801561290d57506000600d54145b61293457600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061294887612bd7565b9550955095509550955095506129a686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3f90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3b85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a8781612ce7565b612a918483612da4565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612aee9190613361565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a00009050612b4967016345785d8a00006006546128af90919063ffffffff16565b821015612b675760065467016345785d8a0000935093505050612b70565b81819350935050505b9091565b60008083118290612bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb2919061320a565b60405180910390fd5b5060008385612bca91906141a0565b9050809150509392505050565b6000806000806000806000806000612bf48a600c54600d54612dde565b9250925092506000612c04612884565b90506000806000612c178e878787612e74565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612c8183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124a2565b905092915050565b6000808284612c989190613e76565b905083811015612cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd49061421d565b60405180910390fd5b8091505092915050565b6000612cf1612884565b90506000612d088284612efd90919063ffffffff16565b9050612d5c81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612db982600654612c3f90919063ffffffff16565b600681905550612dd481600754612c8990919063ffffffff16565b6007819055505050565b600080600080612e0a6064612dfc888a612efd90919063ffffffff16565b6128af90919063ffffffff16565b90506000612e346064612e26888b612efd90919063ffffffff16565b6128af90919063ffffffff16565b90506000612e5d82612e4f858c612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612e8d8589612efd90919063ffffffff16565b90506000612ea48689612efd90919063ffffffff16565b90506000612ebb8789612efd90919063ffffffff16565b90506000612ee482612ed68587612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612f0f5760009050612f71565b60008284612f1d919061423d565b9050828482612f2c91906141a0565b14612f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f63906142f1565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612fd982612f90565b810181811067ffffffffffffffff82111715612ff857612ff7612fa1565b5b80604052505050565b600061300b612f77565b90506130178282612fd0565b919050565b600067ffffffffffffffff82111561303757613036612fa1565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130788261304d565b9050919050565b6130888161306d565b811461309357600080fd5b50565b6000813590506130a58161307f565b92915050565b60006130be6130b98461301c565b613001565b905080838252602082019050602084028301858111156130e1576130e0613048565b5b835b8181101561310a57806130f68882613096565b8452602084019350506020810190506130e3565b5050509392505050565b600082601f83011261312957613128612f8b565b5b81356131398482602086016130ab565b91505092915050565b60006020828403121561315857613157612f81565b5b600082013567ffffffffffffffff81111561317657613175612f86565b5b61318284828501613114565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131c55780820151818401526020810190506131aa565b60008484015250505050565b60006131dc8261318b565b6131e68185613196565b93506131f68185602086016131a7565b6131ff81612f90565b840191505092915050565b6000602082019050818103600083015261322481846131d1565b905092915050565b6000819050919050565b61323f8161322c565b811461324a57600080fd5b50565b60008135905061325c81613236565b92915050565b6000806040838503121561327957613278612f81565b5b600061328785828601613096565b92505060206132988582860161324d565b9150509250929050565b60008115159050919050565b6132b7816132a2565b82525050565b60006020820190506132d260008301846132ae565b92915050565b6000819050919050565b60006132fd6132f86132f38461304d565b6132d8565b61304d565b9050919050565b600061330f826132e2565b9050919050565b600061332182613304565b9050919050565b61333181613316565b82525050565b600060208201905061334c6000830184613328565b92915050565b61335b8161322c565b82525050565b60006020820190506133766000830184613352565b92915050565b60008060006060848603121561339557613394612f81565b5b60006133a386828701613096565b93505060206133b486828701613096565b92505060406133c58682870161324d565b9150509250925092565b600060ff82169050919050565b6133e5816133cf565b82525050565b600060208201905061340060008301846133dc565b92915050565b61340f8161306d565b82525050565b600060208201905061342a6000830184613406565b92915050565b60006020828403121561344657613445612f81565b5b600061345484828501613096565b91505092915050565b613466816132a2565b811461347157600080fd5b50565b6000813590506134838161345d565b92915050565b60006020828403121561349f5761349e612f81565b5b60006134ad84828501613474565b91505092915050565b6000602082840312156134cc576134cb612f81565b5b60006134da8482850161324d565b91505092915050565b600080600080608085870312156134fd576134fc612f81565b5b600061350b8782880161324d565b945050602061351c8782880161324d565b935050604061352d8782880161324d565b925050606061353e8782880161324d565b91505092959194509250565b60008060006060848603121561356357613562612f81565b5b60006135718682870161324d565b935050602061358286828701613474565b925050604061359386828701613474565b9150509250925092565b600080fd5b60008083601f8401126135b8576135b7612f8b565b5b8235905067ffffffffffffffff8111156135d5576135d461359d565b5b6020830191508360208202830111156135f1576135f0613048565b5b9250929050565b60008060006040848603121561361157613610612f81565b5b600084013567ffffffffffffffff81111561362f5761362e612f86565b5b61363b868287016135a2565b9350935050602061364e86828701613474565b9150509250925092565b6000806040838503121561366f5761366e612f81565b5b600061367d85828601613096565b925050602061368e85828601613096565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136ce602083613196565b91506136d982613698565b602082019050919050565b600060208201905081810360008301526136fd816136c1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061376d8261322c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361379f5761379e613733565b5b600182019050919050565b7f5061697220616c726561647920696e697469616c697a65640000000000000000600082015250565b60006137e0601883613196565b91506137eb826137aa565b602082019050919050565b6000602082019050818103600083015261380f816137d3565b9050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b6000613872602583613196565b915061387d82613816565b604082019050919050565b600060208201905081810360008301526138a181613865565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203960008201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b6000613904602283613196565b915061390f826138a8565b604082019050919050565b60006020820190508181036000830152613933816138f7565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b6000613996602683613196565b91506139a18261393a565b604082019050919050565b600060208201905081810360008301526139c581613989565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3935250000000000000000000000000000000000000000000000000000000000602082015250565b6000613a28602383613196565b9150613a33826139cc565b604082019050919050565b60006020820190508181036000830152613a5781613a1b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613aba602683613196565b9150613ac582613a5e565b604082019050919050565b60006020820190508181036000830152613ae981613aad565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f206164647265737300600082015250565b6000613b26601f83613196565b9150613b3182613af0565b602082019050919050565b60006020820190508181036000830152613b5581613b19565b9050919050565b7f43616e277420617070726f766520746f207a65726f2061646472657373000000600082015250565b6000613b92601d83613196565b9150613b9d82613b5c565b602082019050919050565b60006020820190508181036000830152613bc181613b85565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f00600082015250565b6000613bfe601f83613196565b9150613c0982613bc8565b602082019050919050565b60006020820190508181036000830152613c2d81613bf1565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f000000600082015250565b6000613c6a601d83613196565b9150613c7582613c34565b602082019050919050565b60006020820190508181036000830152613c9981613c5d565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f0000000000600082015250565b6000613cd6601b83613196565b9150613ce182613ca0565b602082019050919050565b60006020820190508181036000830152613d0581613cc9565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f7265207472616460008201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b6000613d68602e83613196565b9150613d7382613d0c565b604082019050919050565b60006020820190508181036000830152613d9781613d5b565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d69740000600082015250565b6000613dd4601e83613196565b9150613ddf82613d9e565b602082019050919050565b60006020820190508181036000830152613e0381613dc7565b9050919050565b7f54686973206163636f756e74206973206f6e2074686520626c61636b6c697374600082015250565b6000613e40602083613196565b9150613e4b82613e0a565b602082019050919050565b60006020820190508181036000830152613e6f81613e33565b9050919050565b6000613e818261322c565b9150613e8c8361322c565b9250828201905080821115613ea457613ea3613733565b5b92915050565b7f45786365656473206d61782077616c6c65742062616c616e6365000000000000600082015250565b6000613ee0601a83613196565b9150613eeb82613eaa565b602082019050919050565b60006020820190508181036000830152613f0f81613ed3565b9050919050565b6000613f218261322c565b9150613f2c8361322c565b9250828203905081811115613f4457613f43613733565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60008201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b6000613fa6602c83613196565b9150613fb182613f4a565b604082019050919050565b60006020820190508181036000830152613fd581613f99565b9050919050565b600081519050613feb8161307f565b92915050565b60006020828403121561400757614006612f81565b5b600061401584828501613fdc565b91505092915050565b6000819050919050565b600061404361403e6140398461401e565b6132d8565b61322c565b9050919050565b61405381614028565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61408e8161306d565b82525050565b60006140a08383614085565b60208301905092915050565b6000602082019050919050565b60006140c482614059565b6140ce8185614064565b93506140d983614075565b8060005b8381101561410a5781516140f18882614094565b97506140fc836140ac565b9250506001810190506140dd565b5085935050505092915050565b600060a08201905061412c6000830188613352565b614139602083018761404a565b818103604083015261414b81866140b9565b905061415a6060830185613406565b6141676080830184613352565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141ab8261322c565b91506141b68361322c565b9250826141c6576141c5614171565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614207601b83613196565b9150614212826141d1565b602082019050919050565b60006020820190508181036000830152614236816141fa565b9050919050565b60006142488261322c565b91506142538361322c565b92508282026142618161322c565b9150828204841483151761427857614277613733565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006142db602183613196565b91506142e68261427f565b604082019050919050565b6000602082019050818103600083015261430a816142ce565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d787cb27b86b6a1d1895ad807a71299303b896729980750335ade726257e2d7364736f6c63430008120033

Deployed Bytecode Sourcemap

4270:14576:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13385:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7241:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8173:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5725:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7521:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8375:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6041:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7429:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5773:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13563:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18010:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13141:235;;;;;;;;;;;;;:::i;:::-;;7625:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1743:148;;;;;;;;;;;;;:::i;:::-;;5917:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5431:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6922:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7137:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1527:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12786:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5979:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7333:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17818:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17072:693;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7772:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18151:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5393:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12896:236;;;;;;;;;;;;;:::i;:::-;;18607:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7980:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1900:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18376:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13385:169;1665:12;:10;:12::i;:::-;1655:22;;:6;;;;;;;;;;:22;;;1647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13461:9:::1;13456:91;13480:5;:12;13476:1;:16;13456:91;;;13531:4;13514;:14;13519:5;13525:1;13519:8;;;;;;;;:::i;:::-;;;;;;;;13514:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13494:3;;;;;:::i;:::-;;;;13456:91;;;;13385:169:::0;:::o;7241:83::-;7278:13;7311:5;;;;;;;;;;;;;;;;;7304:12;;7241:83;:::o;8173:193::-;8275:4;8297:39;8306:12;:10;:12::i;:::-;8320:7;8329:6;8297:8;:39::i;:::-;8354:4;8347:11;;8173:193;;;;:::o;5725:41::-;;;;;;;;;;;;;:::o;7521:95::-;7574:7;4832:17;7594:14;;7521:95;:::o;8375:443::-;8507:4;8524:36;8534:6;8542:9;8553:6;8524:9;:36::i;:::-;8571:217;8594:6;8615:12;:10;:12::i;:::-;8642:135;8698:6;8642:135;;;;;;;;;;;;;;;;;:11;:19;8654:6;8642:19;;;;;;;;;;;;;;;:33;8662:12;:10;:12::i;:::-;8642:33;;;;;;;;;;;;;;;;:37;;:135;;;;;:::i;:::-;8571:8;:217::i;:::-;8806:4;8799:11;;8375:443;;;;;:::o;6041:49::-;;;;:::o;7429:83::-;7470:5;4505:1;7488:16;;7429:83;:::o;5773:28::-;;;;;;;;;;;;;:::o;13563:92::-;1665:12;:10;:12::i;:::-;1655:22;;:6;;;;;;;;;;:22;;;1647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13642:5:::1;13627:4;:12;13632:6;13627:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13563:92:::0;:::o;18010:101::-;1665:12;:10;:12::i;:::-;1655:22;;:6;;;;;;;;;;:22;;;1647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18091:12:::1;18077:11;;:26;;;;;;;;;;;;;;;;;;18010:101:::0;:::o;13141:235::-;13207:19;;;;;;;;;;;13191:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13246:17;;;;;;;;;;;13230:33;;:12;:10;:12::i;:::-;:33;;;13191:72;13183:81;;;;;;13275:26;13304:21;13275:50;;13336:32;13349:18;13336:12;:32::i;:::-;13172:204;13141:235::o;7625:138::-;7691:7;7718:37;7738:7;:16;7746:7;7738:16;;;;;;;;;;;;;;;;7718:19;:37::i;:::-;7711:44;;7625:138;;;:::o;1743:148::-;1665:12;:10;:12::i;:::-;1655:22;;:6;;;;;;;;;;:22;;;1647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1850:1:::1;1813:40;;1834:6;::::0;::::1;;;;;;;;1813:40;;;;;;;;;;;;1881:1;1864:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1743:148::o:0;5917:45::-;;;;:::o;5431:43::-;;;;;;;;;;;;;;;;;:::o;6922:207::-;1665:12;:10;:12::i;:::-;1655:22;;:6;;;;;;;;;;:22;;;1647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7017:1:::1;6992:27;;:13;;;;;;;;;;;:27;;;6984:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7075:7;7059:13;;:23;;;;;;;;;;;;;;;;;;7113:7;7098:23;;;;;;;;;;;;6922:207:::0;:::o;7137:95::-;7184:7;7211:13;;;;;;;;;;;7204:20;;7137:95;:::o;1527:79::-;1565:7;1592:6;;;;;;;;;;;1585:13;;1527:79;:::o;12786:101::-;1665:12;:10;:12::i;:::-;1655:22;;:6;;;;;;;;;;:22;;;1647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12867:12:::1;12853:11;;:26;;;;;;;;;;;;;;;;;;12786:101:::0;:::o;5979:47::-;;;;:::o;7333:87::-;7372:13;7405:7;;;;;;;;;;;;;;;;;7398:14;;7333:87;:::o;17818:139::-;1665:12;:10;:12::i;:::-;1655:22;;:6;;;;;;;;;;:22;;;1647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17931:18:::1;17909:19;:40;;;;17818:139:::0;:::o;17072:693::-;1665:12;:10;:12::i;:::-;1655:22;;:6;;;;;;;;;;:22;;;1647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17231:1:::1;17214:13;:18;;:40;;;;;17253:1;17236:13;:18;;17214:40;17206:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17330:1;17315:11;:16;;:37;;;;;17350:2;17335:11;:17;;17315:37;17307:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;17428:1;17410:14;:19;;:42;;;;;17451:1;17433:14;:19;;17410:42;17402:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;17530:1;17514:12;:17;;:39;;;;;17551:2;17535:12;:18;;17514:39;17506:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;17623:13;17606:14;:30;;;;17665:14;17647:15;:32;;;;17705:11;17690:12;:26;;;;17743:12;17727:13;:28;;;;17072:693:::0;;;;:::o;7772:199::-;7877:4;7899:42;7909:12;:10;:12::i;:::-;7923:9;7934:6;7899:9;:42::i;:::-;7959:4;7952:11;;7772:199;;;;:::o;18151:216::-;1665:12;:10;:12::i;:::-;1655:22;;:6;;;;;;;;;;:22;;;1647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18272:11:::1;18257:12;:26;;;;18307:6;18297:7;;:16;;;;;;;;;;;;;;;;;;18340:9;18327:10;;:22;;;;;;;;;;;;;;;;;;18151:216:::0;;;:::o;5393:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12896:236::-;12962:19;;;;;;;;;;;12946:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13001:17;;;;;;;;;;;12985:33;;:12;:10;:12::i;:::-;:33;;;12946:72;12938:81;;;;;;13030:23;13056:24;13074:4;13056:9;:24::i;:::-;13030:50;;13091:33;13108:15;13091:16;:33::i;:::-;12927:205;12896:236::o;18607:234::-;1665:12;:10;:12::i;:::-;1655:22;;:6;;;;;;;;;;:22;;;1647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18724:9:::1;18720:114;18743:8;;:15;;18739:1;:19;18720:114;;;18814:8;18780:18;:31;18799:8;;18808:1;18799:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18780:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18760:3;;;;;:::i;:::-;;;;18720:114;;;;18607:234:::0;;;:::o;7980:184::-;8097:7;8129:11;:18;8141:5;8129:18;;;;;;;;;;;;;;;:27;8148:7;8129:27;;;;;;;;;;;;;;;;8122:34;;7980:184;;;;:::o;1900:244::-;1665:12;:10;:12::i;:::-;1655:22;;:6;;;;;;;;;;:22;;;1647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2009:1:::1;1989:22;;:8;:22;;::::0;1981:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2099:8;2070:38;;2091:6;::::0;::::1;;;;;;;;2070:38;;;;;;;;;;;;2128:8;2119:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1900:244:::0;:::o;18376:222::-;1665:12;:10;:12::i;:::-;1655:22;;:6;;;;;;;;;;:22;;;1647:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18505:13:::1;18488:14;:30;;;;18542:9;18529:10;;:22;;;;;;;;;;;;;;;;;;18578:12;18562:13;;:28;;;;;;;;;;;;;;;;;;18376:222:::0;;;:::o;276:98::-;329:7;356:10;349:17;;276:98;:::o;9517:361::-;9661:1;9644:19;;:5;:19;;;9636:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9737:1;9718:21;;:7;:21;;;9710:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9816:6;9786:11;:18;9798:5;9786:18;;;;;;;;;;;;;;;:27;9805:7;9786:27;;;;;;;;;;;;;;;:36;;;;9854:7;9838:32;;9847:5;9838:32;;;9863:6;9838:32;;;;;;:::i;:::-;;;;;;;;9517:361;;;:::o;9887:2290::-;10025:1;10009:18;;:4;:18;;;10001:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10096:1;10082:16;;:2;:16;;;10074:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;10160:1;10151:6;:10;10143:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;10219:7;:5;:7::i;:::-;10211:15;;:4;:15;;;;:32;;;;;10236:7;:5;:7::i;:::-;10230:13;;:2;:13;;;;10211:32;10207:1238;;;10301:11;;;;;;;;;;;10296:127;;10349:7;:5;:7::i;:::-;10341:15;;:4;:15;;;10333:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10296:127;10458:12;;10448:6;:22;;10440:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10529:4;:10;10534:4;10529:10;;;;;;;;;;;;;;;;;;;;;;;;;10528:11;:24;;;;;10544:4;:8;10549:2;10544:8;;;;;;;;;;;;;;;;;;;;;;;;;10543:9;10528:24;10520:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10616:13;;;;;;;;;;;10610:19;;:2;:19;;;10607:137;;10683:14;;10674:6;10658:13;10668:2;10658:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10650:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;10607:137;10761:28;10792:24;10810:4;10792:9;:24::i;:::-;10761:55;;10831:12;10870:19;;10846:20;:43;;10831:58;;10934:12;;10910:20;:36;10907:124;;11003:12;;10980:35;;10907:124;11052:7;:18;;;;;11064:6;;;;;;;;;;11063:7;11052:18;:43;;;;;11082:13;;;;;;;;;;;11074:21;;:4;:21;;;;11052:43;:58;;;;;11099:11;;;;;;;;;;;11052:58;:87;;;;;11115:18;:24;11134:4;11115:24;;;;;;;;;;;;;;;;;;;;;;;;;11114:25;11052:87;:114;;;;;11144:18;:22;11163:2;11144:22;;;;;;;;;;;;;;;;;;;;;;;;;11143:23;11052:114;11048:386;;;11187:38;11204:20;11187:16;:38::i;:::-;11244:26;11273:21;11244:50;;11338:1;11317:18;:22;11313:106;;;11364:35;11377:21;11364:12;:35::i;:::-;11313:106;11168:266;11048:386;10245:1200;;10207:1238;11458:12;11473:4;11458:19;;11523:18;:24;11542:4;11523:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11551:18;:22;11570:2;11551:22;;;;;;;;;;;;;;;;;;;;;;;;;11523:50;11522:102;;;;11587:13;;;;;;;;;;;11579:21;;:4;:21;;;;:44;;;;;11610:13;;;;;;;;;;;11604:19;;:2;:19;;;;11579:44;11522:102;11518:597;;;11651:5;11641:15;;11518:597;;;11735:13;;;;;;;;;;;11727:21;;:4;:21;;;:55;;;;;11766:15;;;;;;;;;;;11752:30;;:2;:30;;;;11727:55;11724:162;;;11815:14;;11803:9;:26;;;;11858:12;;11848:7;:22;;;;11724:162;11946:13;;;;;;;;;;;11940:19;;:2;:19;;;:55;;;;;11979:15;;;;;;;;;;;11963:32;;:4;:32;;;;11940:55;11936:165;;;12028:15;;12016:9;:27;;;;12072:13;;12062:7;:23;;;;11936:165;11518:597;12128:41;12143:4;12149:2;12153:6;12161:7;12128:14;:41::i;:::-;9990:2187;9887:2290;;;:::o;2512:224::-;2632:7;2665:1;2660;:6;;2668:12;2652:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2692:9;2708:1;2704;:5;;;;:::i;:::-;2692:17;;2727:1;2720:8;;;2512:224;;;;;:::o;12678:99::-;12735:17;;;;;;;;;;;:26;;:34;12762:6;12735:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12678:99;:::o;8827:325::-;8922:7;8980;;8969;:18;;8947:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;9070:19;9092:10;:8;:10::i;:::-;9070:32;;9120:24;9132:11;9120:7;:11;;:24;;;;:::i;:::-;9113:31;;;8827:325;;;:::o;12186:483::-;6347:4;6338:6;;:13;;;;;;;;;;;;;;;;;;12264:21:::1;12302:1;12288:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12264:40;;12333:4;12315;12320:1;12315:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12359:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12349:4;12354:1;12349:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12392:62;12409:4;12424:15;;;;;;;;;;;12442:11;12392:8;:62::i;:::-;12465:15;;;;;;;;;;;:66;;;12546:11;12572:1;12588:4;12615;12635:15;12465:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12253:416;6383:5:::0;6374:6;;:14;;;;;;;;;;;;;;;;;;12186:483;:::o;13664:282::-;13820:7;13815:28;;13829:14;:12;:14::i;:::-;13815:28;13854:44;13872:6;13880:9;13891:6;13854:17;:44::i;:::-;13914:7;13909:29;;13923:15;:13;:15::i;:::-;13909:29;13664:282;;;;:::o;16633:164::-;16675:7;16696:15;16713;16732:19;:17;:19::i;:::-;16695:56;;;;16769:20;16781:7;16769;:11;;:20;;;;:::i;:::-;16762:27;;;;16633:164;:::o;3000:132::-;3058:7;3085:39;3089:1;3092;3085:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3078:46;;3000:132;;;;:::o;9161:221::-;9221:1;9208:9;;:14;:30;;;;;9237:1;9226:7;;:12;9208:30;9240:7;9204:43;9280:9;;9260:17;:29;;;;9318:7;;9300:15;:25;;;;9351:1;9339:9;:13;;;;9373:1;9363:7;:11;;;;9161:221;:::o;13955:610::-;14102:15;14132:23;14170:12;14197:23;14235:12;14262:13;14289:19;14300:7;14289:10;:19::i;:::-;14087:221;;;;;;;;;;;;14337:28;14357:7;14337;:15;14345:6;14337:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14319:7;:15;14327:6;14319:15;;;;;;;;;;;;;;;:46;;;;14397:39;14420:15;14397:7;:18;14405:9;14397:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14376:7;:18;14384:9;14376:18;;;;;;;;;;;;;;;:60;;;;14447:16;14457:5;14447:9;:16::i;:::-;14474:23;14486:4;14492;14474:11;:23::i;:::-;14530:9;14513:44;;14522:6;14513:44;;;14541:15;14513:44;;;;;;:::i;:::-;;;;;;;;14076:489;;;;;;13955:610;;;:::o;9391:117::-;9447:17;;9435:9;:29;;;;9485:15;;9475:7;:25;;;;9391:117::o;16806:257::-;16857:7;16866;16886:15;16904:7;;16886:25;;16922:15;4832:17;16922:25;;16972:20;4832:17;16972:7;;:11;;:20;;;;:::i;:::-;16962:7;:30;16958:61;;;17002:7;;4832:17;16994:25;;;;;;;;16958:61;17038:7;17047;17030:25;;;;;;16806:257;;;:::o;3141:223::-;3261:7;3293:1;3289;:5;3296:12;3281:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3320:9;3336:1;3332;:5;;;;:::i;:::-;3320:17;;3355:1;3348:8;;;3141:223;;;;;:::o;14988:615::-;15088:7;15110;15132;15154;15176;15198;15234:23;15259:12;15273:13;15303:40;15315:7;15324:9;;15335:7;;15303:11;:40::i;:::-;15233:110;;;;;;15354:19;15376:10;:8;:10::i;:::-;15354:32;;15398:15;15415:23;15440:12;15469:46;15481:7;15490:4;15496:5;15503:11;15469;:46::i;:::-;15397:118;;;;;;15534:7;15543:15;15560:4;15566:15;15583:4;15589:5;15526:69;;;;;;;;;;;;;;;;;;;14988:615;;;;;;;:::o;2367:136::-;2425:7;2452:43;2456:1;2459;2452:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2445:50;;2367:136;;;;:::o;2179:179::-;2237:7;2257:9;2273:1;2269;:5;;;;:::i;:::-;2257:17;;2298:1;2293;:6;;2285:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2349:1;2342:8;;;2179:179;;;;:::o;14574:211::-;14627:19;14649:10;:8;:10::i;:::-;14627:32;;14670:13;14686:22;14696:11;14686:5;:9;;:22;;;;:::i;:::-;14670:38;;14744:33;14771:5;14744:7;:22;14760:4;14744:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14719:7;:22;14735:4;14719:22;;;;;;;;;;;;;;;:58;;;;14616:169;;14574:211;:::o;14794:147::-;14872:17;14884:4;14872:7;;:11;;:17;;;;:::i;:::-;14862:7;:27;;;;14913:20;14928:4;14913:10;;:14;;:20;;;;:::i;:::-;14900:10;:33;;;;14794:147;;:::o;15612:469::-;15781:7;15803;15825;15860:12;15875:30;15901:3;15875:21;15887:8;15875:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15860:45;;15916:13;15932:28;15956:3;15932:19;15944:6;15932:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15916:44;;15971:23;15997:28;16019:5;15997:17;16009:4;15997:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15971:54;;16044:15;16061:4;16067:5;16036:37;;;;;;;;;15612:469;;;;;;;:::o;16090:534::-;16284:7;16306;16328;16363:15;16381:24;16393:11;16381:7;:11;;:24;;;;:::i;:::-;16363:42;;16416:12;16431:21;16440:11;16431:4;:8;;:21;;;;:::i;:::-;16416:36;;16463:13;16479:22;16489:11;16479:5;:9;;:22;;;;:::i;:::-;16463:38;;16512:23;16538:28;16560:5;16538:17;16550:4;16538:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16512:54;;16585:7;16594:15;16611:4;16577:39;;;;;;;;;;16090:534;;;;;;;;:::o;2745:246::-;2803:7;2832:1;2827;:6;2823:47;;2857:1;2850:8;;;;2823:47;2880:9;2896:1;2892;:5;;;;:::i;:::-;2880:17;;2925:1;2920;2916;:5;;;;:::i;:::-;:10;2908:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2982:1;2975:8;;;2745:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:619::-;7690:6;7698;7706;7755:2;7743:9;7734:7;7730:23;7726:32;7723:119;;;7761:79;;:::i;:::-;7723:119;7881:1;7906:53;7951:7;7942:6;7931:9;7927:22;7906:53;:::i;:::-;7896:63;;7852:117;8008:2;8034:53;8079:7;8070:6;8059:9;8055:22;8034:53;:::i;:::-;8024:63;;7979:118;8136:2;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8107:118;7613:619;;;;;:::o;8238:86::-;8273:7;8313:4;8306:5;8302:16;8291:27;;8238:86;;;:::o;8330:112::-;8413:22;8429:5;8413:22;:::i;:::-;8408:3;8401:35;8330:112;;:::o;8448:214::-;8537:4;8575:2;8564:9;8560:18;8552:26;;8588:67;8652:1;8641:9;8637:17;8628:6;8588:67;:::i;:::-;8448:214;;;;:::o;8668:118::-;8755:24;8773:5;8755:24;:::i;:::-;8750:3;8743:37;8668:118;;:::o;8792:222::-;8885:4;8923:2;8912:9;8908:18;8900:26;;8936:71;9004:1;8993:9;8989:17;8980:6;8936:71;:::i;:::-;8792:222;;;;:::o;9020:329::-;9079:6;9128:2;9116:9;9107:7;9103:23;9099:32;9096:119;;;9134:79;;:::i;:::-;9096:119;9254:1;9279:53;9324:7;9315:6;9304:9;9300:22;9279:53;:::i;:::-;9269:63;;9225:117;9020:329;;;;:::o;9355:116::-;9425:21;9440:5;9425:21;:::i;:::-;9418:5;9415:32;9405:60;;9461:1;9458;9451:12;9405:60;9355:116;:::o;9477:133::-;9520:5;9558:6;9545:20;9536:29;;9574:30;9598:5;9574:30;:::i;:::-;9477:133;;;;:::o;9616:323::-;9672:6;9721:2;9709:9;9700:7;9696:23;9692:32;9689:119;;;9727:79;;:::i;:::-;9689:119;9847:1;9872:50;9914:7;9905:6;9894:9;9890:22;9872:50;:::i;:::-;9862:60;;9818:114;9616:323;;;;:::o;9945:329::-;10004:6;10053:2;10041:9;10032:7;10028:23;10024:32;10021:119;;;10059:79;;:::i;:::-;10021:119;10179:1;10204:53;10249:7;10240:6;10229:9;10225:22;10204:53;:::i;:::-;10194:63;;10150:117;9945:329;;;;:::o;10280:765::-;10366:6;10374;10382;10390;10439:3;10427:9;10418:7;10414:23;10410:33;10407:120;;;10446:79;;:::i;:::-;10407:120;10566:1;10591:53;10636:7;10627:6;10616:9;10612:22;10591:53;:::i;:::-;10581:63;;10537:117;10693:2;10719:53;10764:7;10755:6;10744:9;10740:22;10719:53;:::i;:::-;10709:63;;10664:118;10821:2;10847:53;10892:7;10883:6;10872:9;10868:22;10847:53;:::i;:::-;10837:63;;10792:118;10949:2;10975:53;11020:7;11011:6;11000:9;10996:22;10975:53;:::i;:::-;10965:63;;10920:118;10280:765;;;;;;;:::o;11051:607::-;11122:6;11130;11138;11187:2;11175:9;11166:7;11162:23;11158:32;11155:119;;;11193:79;;:::i;:::-;11155:119;11313:1;11338:53;11383:7;11374:6;11363:9;11359:22;11338:53;:::i;:::-;11328:63;;11284:117;11440:2;11466:50;11508:7;11499:6;11488:9;11484:22;11466:50;:::i;:::-;11456:60;;11411:115;11565:2;11591:50;11633:7;11624:6;11613:9;11609:22;11591:50;:::i;:::-;11581:60;;11536:115;11051:607;;;;;:::o;11664:117::-;11773:1;11770;11763:12;11804:568;11877:8;11887:6;11937:3;11930:4;11922:6;11918:17;11914:27;11904:122;;11945:79;;:::i;:::-;11904:122;12058:6;12045:20;12035:30;;12088:18;12080:6;12077:30;12074:117;;;12110:79;;:::i;:::-;12074:117;12224:4;12216:6;12212:17;12200:29;;12278:3;12270:4;12262:6;12258:17;12248:8;12244:32;12241:41;12238:128;;;12285:79;;:::i;:::-;12238:128;11804:568;;;;;:::o;12378:698::-;12470:6;12478;12486;12535:2;12523:9;12514:7;12510:23;12506:32;12503:119;;;12541:79;;:::i;:::-;12503:119;12689:1;12678:9;12674:17;12661:31;12719:18;12711:6;12708:30;12705:117;;;12741:79;;:::i;:::-;12705:117;12854:80;12926:7;12917:6;12906:9;12902:22;12854:80;:::i;:::-;12836:98;;;;12632:312;12983:2;13009:50;13051:7;13042:6;13031:9;13027:22;13009:50;:::i;:::-;12999:60;;12954:115;12378:698;;;;;:::o;13082:474::-;13150:6;13158;13207:2;13195:9;13186:7;13182:23;13178:32;13175:119;;;13213:79;;:::i;:::-;13175:119;13333:1;13358:53;13403:7;13394:6;13383:9;13379:22;13358:53;:::i;:::-;13348:63;;13304:117;13460:2;13486:53;13531:7;13522:6;13511:9;13507:22;13486:53;:::i;:::-;13476:63;;13431:118;13082:474;;;;;:::o;13562:182::-;13702:34;13698:1;13690:6;13686:14;13679:58;13562:182;:::o;13750:366::-;13892:3;13913:67;13977:2;13972:3;13913:67;:::i;:::-;13906:74;;13989:93;14078:3;13989:93;:::i;:::-;14107:2;14102:3;14098:12;14091:19;;13750:366;;;:::o;14122:419::-;14288:4;14326:2;14315:9;14311:18;14303:26;;14375:9;14369:4;14365:20;14361:1;14350:9;14346:17;14339:47;14403:131;14529:4;14403:131;:::i;:::-;14395:139;;14122:419;;;:::o;14547:180::-;14595:77;14592:1;14585:88;14692:4;14689:1;14682:15;14716:4;14713:1;14706:15;14733:180;14781:77;14778:1;14771:88;14878:4;14875:1;14868:15;14902:4;14899:1;14892:15;14919:233;14958:3;14981:24;14999:5;14981:24;:::i;:::-;14972:33;;15027:66;15020:5;15017:77;15014:103;;15097:18;;:::i;:::-;15014:103;15144:1;15137:5;15133:13;15126:20;;14919:233;;;:::o;15158:174::-;15298:26;15294:1;15286:6;15282:14;15275:50;15158:174;:::o;15338:366::-;15480:3;15501:67;15565:2;15560:3;15501:67;:::i;:::-;15494:74;;15577:93;15666:3;15577:93;:::i;:::-;15695:2;15690:3;15686:12;15679:19;;15338:366;;;:::o;15710:419::-;15876:4;15914:2;15903:9;15899:18;15891:26;;15963:9;15957:4;15953:20;15949:1;15938:9;15934:17;15927:47;15991:131;16117:4;15991:131;:::i;:::-;15983:139;;15710:419;;;:::o;16135:224::-;16275:34;16271:1;16263:6;16259:14;16252:58;16344:7;16339:2;16331:6;16327:15;16320:32;16135:224;:::o;16365:366::-;16507:3;16528:67;16592:2;16587:3;16528:67;:::i;:::-;16521:74;;16604:93;16693:3;16604:93;:::i;:::-;16722:2;16717:3;16713:12;16706:19;;16365:366;;;:::o;16737:419::-;16903:4;16941:2;16930:9;16926:18;16918:26;;16990:9;16984:4;16980:20;16976:1;16965:9;16961:17;16954:47;17018:131;17144:4;17018:131;:::i;:::-;17010:139;;16737:419;;;:::o;17162:221::-;17302:34;17298:1;17290:6;17286:14;17279:58;17371:4;17366:2;17358:6;17354:15;17347:29;17162:221;:::o;17389:366::-;17531:3;17552:67;17616:2;17611:3;17552:67;:::i;:::-;17545:74;;17628:93;17717:3;17628:93;:::i;:::-;17746:2;17741:3;17737:12;17730:19;;17389:366;;;:::o;17761:419::-;17927:4;17965:2;17954:9;17950:18;17942:26;;18014:9;18008:4;18004:20;18000:1;17989:9;17985:17;17978:47;18042:131;18168:4;18042:131;:::i;:::-;18034:139;;17761:419;;;:::o;18186:225::-;18326:34;18322:1;18314:6;18310:14;18303:58;18395:8;18390:2;18382:6;18378:15;18371:33;18186:225;:::o;18417:366::-;18559:3;18580:67;18644:2;18639:3;18580:67;:::i;:::-;18573:74;;18656:93;18745:3;18656:93;:::i;:::-;18774:2;18769:3;18765:12;18758:19;;18417:366;;;:::o;18789:419::-;18955:4;18993:2;18982:9;18978:18;18970:26;;19042:9;19036:4;19032:20;19028:1;19017:9;19013:17;19006:47;19070:131;19196:4;19070:131;:::i;:::-;19062:139;;18789:419;;;:::o;19214:222::-;19354:34;19350:1;19342:6;19338:14;19331:58;19423:5;19418:2;19410:6;19406:15;19399:30;19214:222;:::o;19442:366::-;19584:3;19605:67;19669:2;19664:3;19605:67;:::i;:::-;19598:74;;19681:93;19770:3;19681:93;:::i;:::-;19799:2;19794:3;19790:12;19783:19;;19442:366;;;:::o;19814:419::-;19980:4;20018:2;20007:9;20003:18;19995:26;;20067:9;20061:4;20057:20;20053:1;20042:9;20038:17;20031:47;20095:131;20221:4;20095:131;:::i;:::-;20087:139;;19814:419;;;:::o;20239:225::-;20379:34;20375:1;20367:6;20363:14;20356:58;20448:8;20443:2;20435:6;20431:15;20424:33;20239:225;:::o;20470:366::-;20612:3;20633:67;20697:2;20692:3;20633:67;:::i;:::-;20626:74;;20709:93;20798:3;20709:93;:::i;:::-;20827:2;20822:3;20818:12;20811:19;;20470:366;;;:::o;20842:419::-;21008:4;21046:2;21035:9;21031:18;21023:26;;21095:9;21089:4;21085:20;21081:1;21070:9;21066:17;21059:47;21123:131;21249:4;21123:131;:::i;:::-;21115:139;;20842:419;;;:::o;21267:181::-;21407:33;21403:1;21395:6;21391:14;21384:57;21267:181;:::o;21454:366::-;21596:3;21617:67;21681:2;21676:3;21617:67;:::i;:::-;21610:74;;21693:93;21782:3;21693:93;:::i;:::-;21811:2;21806:3;21802:12;21795:19;;21454:366;;;:::o;21826:419::-;21992:4;22030:2;22019:9;22015:18;22007:26;;22079:9;22073:4;22069:20;22065:1;22054:9;22050:17;22043:47;22107:131;22233:4;22107:131;:::i;:::-;22099:139;;21826:419;;;:::o;22251:179::-;22391:31;22387:1;22379:6;22375:14;22368:55;22251:179;:::o;22436:366::-;22578:3;22599:67;22663:2;22658:3;22599:67;:::i;:::-;22592:74;;22675:93;22764:3;22675:93;:::i;:::-;22793:2;22788:3;22784:12;22777:19;;22436:366;;;:::o;22808:419::-;22974:4;23012:2;23001:9;22997:18;22989:26;;23061:9;23055:4;23051:20;23047:1;23036:9;23032:17;23025:47;23089:131;23215:4;23089:131;:::i;:::-;23081:139;;22808:419;;;:::o;23233:181::-;23373:33;23369:1;23361:6;23357:14;23350:57;23233:181;:::o;23420:366::-;23562:3;23583:67;23647:2;23642:3;23583:67;:::i;:::-;23576:74;;23659:93;23748:3;23659:93;:::i;:::-;23777:2;23772:3;23768:12;23761:19;;23420:366;;;:::o;23792:419::-;23958:4;23996:2;23985:9;23981:18;23973:26;;24045:9;24039:4;24035:20;24031:1;24020:9;24016:17;24009:47;24073:131;24199:4;24073:131;:::i;:::-;24065:139;;23792:419;;;:::o;24217:179::-;24357:31;24353:1;24345:6;24341:14;24334:55;24217:179;:::o;24402:366::-;24544:3;24565:67;24629:2;24624:3;24565:67;:::i;:::-;24558:74;;24641:93;24730:3;24641:93;:::i;:::-;24759:2;24754:3;24750:12;24743:19;;24402:366;;;:::o;24774:419::-;24940:4;24978:2;24967:9;24963:18;24955:26;;25027:9;25021:4;25017:20;25013:1;25002:9;24998:17;24991:47;25055:131;25181:4;25055:131;:::i;:::-;25047:139;;24774:419;;;:::o;25199:177::-;25339:29;25335:1;25327:6;25323:14;25316:53;25199:177;:::o;25382:366::-;25524:3;25545:67;25609:2;25604:3;25545:67;:::i;:::-;25538:74;;25621:93;25710:3;25621:93;:::i;:::-;25739:2;25734:3;25730:12;25723:19;;25382:366;;;:::o;25754:419::-;25920:4;25958:2;25947:9;25943:18;25935:26;;26007:9;26001:4;25997:20;25993:1;25982:9;25978:17;25971:47;26035:131;26161:4;26035:131;:::i;:::-;26027:139;;25754:419;;;:::o;26179:233::-;26319:34;26315:1;26307:6;26303:14;26296:58;26388:16;26383:2;26375:6;26371:15;26364:41;26179:233;:::o;26418:366::-;26560:3;26581:67;26645:2;26640:3;26581:67;:::i;:::-;26574:74;;26657:93;26746:3;26657:93;:::i;:::-;26775:2;26770:3;26766:12;26759:19;;26418:366;;;:::o;26790:419::-;26956:4;26994:2;26983:9;26979:18;26971:26;;27043:9;27037:4;27033:20;27029:1;27018:9;27014:17;27007:47;27071:131;27197:4;27071:131;:::i;:::-;27063:139;;26790:419;;;:::o;27215:180::-;27355:32;27351:1;27343:6;27339:14;27332:56;27215:180;:::o;27401:366::-;27543:3;27564:67;27628:2;27623:3;27564:67;:::i;:::-;27557:74;;27640:93;27729:3;27640:93;:::i;:::-;27758:2;27753:3;27749:12;27742:19;;27401:366;;;:::o;27773:419::-;27939:4;27977:2;27966:9;27962:18;27954:26;;28026:9;28020:4;28016:20;28012:1;28001:9;27997:17;27990:47;28054:131;28180:4;28054:131;:::i;:::-;28046:139;;27773:419;;;:::o;28198:182::-;28338:34;28334:1;28326:6;28322:14;28315:58;28198:182;:::o;28386:366::-;28528:3;28549:67;28613:2;28608:3;28549:67;:::i;:::-;28542:74;;28625:93;28714:3;28625:93;:::i;:::-;28743:2;28738:3;28734:12;28727:19;;28386:366;;;:::o;28758:419::-;28924:4;28962:2;28951:9;28947:18;28939:26;;29011:9;29005:4;29001:20;28997:1;28986:9;28982:17;28975:47;29039:131;29165:4;29039:131;:::i;:::-;29031:139;;28758:419;;;:::o;29183:191::-;29223:3;29242:20;29260:1;29242:20;:::i;:::-;29237:25;;29276:20;29294:1;29276:20;:::i;:::-;29271:25;;29319:1;29316;29312:9;29305:16;;29340:3;29337:1;29334:10;29331:36;;;29347:18;;:::i;:::-;29331:36;29183:191;;;;:::o;29380:176::-;29520:28;29516:1;29508:6;29504:14;29497:52;29380:176;:::o;29562:366::-;29704:3;29725:67;29789:2;29784:3;29725:67;:::i;:::-;29718:74;;29801:93;29890:3;29801:93;:::i;:::-;29919:2;29914:3;29910:12;29903:19;;29562:366;;;:::o;29934:419::-;30100:4;30138:2;30127:9;30123:18;30115:26;;30187:9;30181:4;30177:20;30173:1;30162:9;30158:17;30151:47;30215:131;30341:4;30215:131;:::i;:::-;30207:139;;29934:419;;;:::o;30359:194::-;30399:4;30419:20;30437:1;30419:20;:::i;:::-;30414:25;;30453:20;30471:1;30453:20;:::i;:::-;30448:25;;30497:1;30494;30490:9;30482:17;;30521:1;30515:4;30512:11;30509:37;;;30526:18;;:::i;:::-;30509:37;30359:194;;;;:::o;30559:231::-;30699:34;30695:1;30687:6;30683:14;30676:58;30768:14;30763:2;30755:6;30751:15;30744:39;30559:231;:::o;30796:366::-;30938:3;30959:67;31023:2;31018:3;30959:67;:::i;:::-;30952:74;;31035:93;31124:3;31035:93;:::i;:::-;31153:2;31148:3;31144:12;31137:19;;30796:366;;;:::o;31168:419::-;31334:4;31372:2;31361:9;31357:18;31349:26;;31421:9;31415:4;31411:20;31407:1;31396:9;31392:17;31385:47;31449:131;31575:4;31449:131;:::i;:::-;31441:139;;31168:419;;;:::o;31593:143::-;31650:5;31681:6;31675:13;31666:22;;31697:33;31724:5;31697:33;:::i;:::-;31593:143;;;;:::o;31742:351::-;31812:6;31861:2;31849:9;31840:7;31836:23;31832:32;31829:119;;;31867:79;;:::i;:::-;31829:119;31987:1;32012:64;32068:7;32059:6;32048:9;32044:22;32012:64;:::i;:::-;32002:74;;31958:128;31742:351;;;;:::o;32099:85::-;32144:7;32173:5;32162:16;;32099:85;;;:::o;32190:158::-;32248:9;32281:61;32299:42;32308:32;32334:5;32308:32;:::i;:::-;32299:42;:::i;:::-;32281:61;:::i;:::-;32268:74;;32190:158;;;:::o;32354:147::-;32449:45;32488:5;32449:45;:::i;:::-;32444:3;32437:58;32354:147;;:::o;32507:114::-;32574:6;32608:5;32602:12;32592:22;;32507:114;;;:::o;32627:184::-;32726:11;32760:6;32755:3;32748:19;32800:4;32795:3;32791:14;32776:29;;32627:184;;;;:::o;32817:132::-;32884:4;32907:3;32899:11;;32937:4;32932:3;32928:14;32920:22;;32817:132;;;:::o;32955:108::-;33032:24;33050:5;33032:24;:::i;:::-;33027:3;33020:37;32955:108;;:::o;33069:179::-;33138:10;33159:46;33201:3;33193:6;33159:46;:::i;:::-;33237:4;33232:3;33228:14;33214:28;;33069:179;;;;:::o;33254:113::-;33324:4;33356;33351:3;33347:14;33339:22;;33254:113;;;:::o;33403:732::-;33522:3;33551:54;33599:5;33551:54;:::i;:::-;33621:86;33700:6;33695:3;33621:86;:::i;:::-;33614:93;;33731:56;33781:5;33731:56;:::i;:::-;33810:7;33841:1;33826:284;33851:6;33848:1;33845:13;33826:284;;;33927:6;33921:13;33954:63;34013:3;33998:13;33954:63;:::i;:::-;33947:70;;34040:60;34093:6;34040:60;:::i;:::-;34030:70;;33886:224;33873:1;33870;33866:9;33861:14;;33826:284;;;33830:14;34126:3;34119:10;;33527:608;;;33403:732;;;;:::o;34141:831::-;34404:4;34442:3;34431:9;34427:19;34419:27;;34456:71;34524:1;34513:9;34509:17;34500:6;34456:71;:::i;:::-;34537:80;34613:2;34602:9;34598:18;34589:6;34537:80;:::i;:::-;34664:9;34658:4;34654:20;34649:2;34638:9;34634:18;34627:48;34692:108;34795:4;34786:6;34692:108;:::i;:::-;34684:116;;34810:72;34878:2;34867:9;34863:18;34854:6;34810:72;:::i;:::-;34892:73;34960:3;34949:9;34945:19;34936:6;34892:73;:::i;:::-;34141:831;;;;;;;;:::o;34978:180::-;35026:77;35023:1;35016:88;35123:4;35120:1;35113:15;35147:4;35144:1;35137:15;35164:185;35204:1;35221:20;35239:1;35221:20;:::i;:::-;35216:25;;35255:20;35273:1;35255:20;:::i;:::-;35250:25;;35294:1;35284:35;;35299:18;;:::i;:::-;35284:35;35341:1;35338;35334:9;35329:14;;35164:185;;;;:::o;35355:177::-;35495:29;35491:1;35483:6;35479:14;35472:53;35355:177;:::o;35538:366::-;35680:3;35701:67;35765:2;35760:3;35701:67;:::i;:::-;35694:74;;35777:93;35866:3;35777:93;:::i;:::-;35895:2;35890:3;35886:12;35879:19;;35538:366;;;:::o;35910:419::-;36076:4;36114:2;36103:9;36099:18;36091:26;;36163:9;36157:4;36153:20;36149:1;36138:9;36134:17;36127:47;36191:131;36317:4;36191:131;:::i;:::-;36183:139;;35910:419;;;:::o;36335:410::-;36375:7;36398:20;36416:1;36398:20;:::i;:::-;36393:25;;36432:20;36450:1;36432:20;:::i;:::-;36427:25;;36487:1;36484;36480:9;36509:30;36527:11;36509:30;:::i;:::-;36498:41;;36688:1;36679:7;36675:15;36672:1;36669:22;36649:1;36642:9;36622:83;36599:139;;36718:18;;:::i;:::-;36599:139;36383:362;36335:410;;;;:::o;36751:220::-;36891:34;36887:1;36879:6;36875:14;36868:58;36960:3;36955:2;36947:6;36943:15;36936:28;36751:220;:::o;36977:366::-;37119:3;37140:67;37204:2;37199:3;37140:67;:::i;:::-;37133:74;;37216:93;37305:3;37216:93;:::i;:::-;37334:2;37329:3;37325:12;37318:19;;36977:366;;;:::o;37349:419::-;37515:4;37553:2;37542:9;37538:18;37530:26;;37602:9;37596:4;37592:20;37588:1;37577:9;37573:17;37566:47;37630:131;37756:4;37630:131;:::i;:::-;37622:139;;37349:419;;;:::o

Swarm Source

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