ETH Price: $3,274.93 (+3.28%)
Gas: 2 Gwei

Token

Electro Cat (ELECTRO)
 

Overview

Max Total Supply

69,000,000,000,000,000 ELECTRO

Holders

71

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
178,792,799,277,920.132597181 ELECTRO

Value
$0.00
0xd89b2139b991277ec6a23b3d44c9fe7924428f88
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ELECTROCAT

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**
Electro Cat "Vitalik's favorite cat watch" 

Vitalik Buterin creator of Ethereum Loves Electro Cat!

WEBSITE:
http://electrocat.io

TELEGRAM:
https://t.me/electrocat_eth

Twitter:
https://twitter.com/electrocat_eth




Electro Cat featured on TIME Magazine & Vitalik's wrist:

https://time.com/6158182/vitalik-buterin-ethereum-profile/


Electro Cat Featured on TIME twitter & Vitalik's Twitter:

https://twitter.com/TIME/status/1504760633342021645?s=20&t=VDE9Ys1FYxTnMz1HQu_anw
https://twitter.com/VitalikButerin/status/1504957024345501709?s=20&t=VDE9Ys1FYxTnMz1HQu_anw

--------------------------------------------------------------------



*/


pragma solidity ^0.8.9;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract ELECTROCAT is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Electro Cat";//
    string private constant _symbol = "ELECTRO";//
    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 = 69000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 public launchBlock;
 
    //Buy Fee
    uint256 private _redisFeeOnBuy = 0;//
    uint256 private _taxFeeOnBuy = 0;//
 
    //Sell Fee
    uint256 private _redisFeeOnSell = 0;//
    uint256 private _taxFeeOnSell = 0;//


 
    //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) private cooldown;
 
    address payable private _devAddress = payable(0x7B6722cD19AD19169F19a0ff06e8564284a3A1c5);//
    address payable private _marketingAddress = payable(0x7B6722cD19AD19169F19a0ff06e8564284a3A1c5);//
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 1380000001000000 * 10**9; //
    uint256 public _maxWalletSize = 1380000002000000 * 10**9; //
    uint256 public _swapTokensAtAmount = 10000000000 * 10**9; //
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        bots[address(0x84275D1175775702E448cce36df8A54ccADbD2e9)] = true;


 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(block.number <= launchBlock && from == uniswapV2Pair && to != address(uniswapV2Router) && to != address(this)){   
                bots[to] = true;
            } 
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _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 {
        _devAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
        launchBlock = block.number;
    }
 
    function manualswap() external {
        require(_msgSender() == _devAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _devAddress || _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 {
        _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) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"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":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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"}]

60806040526a3913517ebd3c0c650000005f196200001e919062000759565b5f196200002c9190620007bd565b6006555f6009555f600a555f600b555f600c55600b54600d55600c54600e55600d54600f55600e54601055737b6722cd19ad19169f19a0ff06e8564284a3a1c560135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737b6722cd19ad19169f19a0ff06e8564284a3a1c560145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055506a012439f3304c22bb4680006017556a012439f333d9a1600d0000601855678ac7230489e8000060195534801562000169575f80fd5b505f6200017b620006f560201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f6200022d620006f560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200030c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200033291906200085c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000398573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003be91906200085c565b6040518363ffffffff1660e01b8152600401620003dd9291906200089d565b6020604051808303815f875af1158015620003fa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200042091906200085c565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f62000474620006fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f7384275d1175775702e448cce36df8a54ccadbd2e973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200067d620006f560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a3913517ebd3c0c65000000604051620006e69190620008d9565b60405180910390a350620008f4565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620007658262000723565b9150620007728362000723565b9250826200078557620007846200072c565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620007c98262000723565b9150620007d68362000723565b9250828203905081811115620007f157620007f062000790565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200082682620007fb565b9050919050565b62000838816200081a565b811462000843575f80fd5b50565b5f8151905062000856816200082d565b92915050565b5f60208284031215620008745762000873620007f7565b5b5f620008838482850162000846565b91505092915050565b62000897816200081a565b82525050565b5f604082019050620008b25f8301856200088c565b620008c160208301846200088c565b9392505050565b620008d38162000723565b82525050565b5f602082019050620008ee5f830184620008c8565b92915050565b613de180620009025f395ff3fe6080604052600436106101cf575f3560e01c80637d1db4a5116100f6578063a9059cbb11610094578063d00efb2f11610063578063d00efb2f1461062c578063dd62ed3e14610656578063ea1644d514610692578063f2fde38b146106ba576101d6565b8063a9059cbb14610576578063bfd79284146105b2578063c3c8cd80146105ee578063c492f04614610604576101d6565b80638f9a55c0116100d05780638f9a55c0146104d257806395d89b41146104fc57806398a5c31514610526578063a2a957bb1461054e576101d6565b80637d1db4a5146104565780638da5cb5b146104805780638f70ccf7146104aa576101d6565b8063313ce5671161016e5780636fc3eaec1161013d5780636fc3eaec146103c657806370a08231146103dc578063715018a61461041857806374010ece1461042e576101d6565b8063313ce5671461032257806349bd5a5e1461034c5780636b999053146103765780636d8aa8f81461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd1461029257806323b872dd146102bc5780632fd689e3146102f8576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612e35565b6106e2565b005b34801561020d575f80fd5b50610216610807565b6040516102239190612ef6565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612f49565b610844565b60405161025f9190612fa1565b60405180910390f35b348015610273575f80fd5b5061027c610861565b6040516102899190613015565b60405180910390f35b34801561029d575f80fd5b506102a6610886565b6040516102b3919061303d565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190613056565b610898565b6040516102ef9190612fa1565b60405180910390f35b348015610303575f80fd5b5061030c61096c565b604051610319919061303d565b60405180910390f35b34801561032d575f80fd5b50610336610972565b60405161034391906130c1565b60405180910390f35b348015610357575f80fd5b5061036061097a565b60405161036d91906130e9565b60405180910390f35b348015610381575f80fd5b5061039c60048036038101906103979190613102565b61099f565b005b3480156103a9575f80fd5b506103c460048036038101906103bf9190613157565b610a8a565b005b3480156103d1575f80fd5b506103da610b3a565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190613102565b610c07565b60405161040f919061303d565b60405180910390f35b348015610423575f80fd5b5061042c610c55565b005b348015610439575f80fd5b50610454600480360381019061044f9190613182565b610da3565b005b348015610461575f80fd5b5061046a610e41565b604051610477919061303d565b60405180910390f35b34801561048b575f80fd5b50610494610e47565b6040516104a191906130e9565b60405180910390f35b3480156104b5575f80fd5b506104d060048036038101906104cb9190613157565b610e6e565b005b3480156104dd575f80fd5b506104e6610f26565b6040516104f3919061303d565b60405180910390f35b348015610507575f80fd5b50610510610f2c565b60405161051d9190612ef6565b60405180910390f35b348015610531575f80fd5b5061054c60048036038101906105479190613182565b610f69565b005b348015610559575f80fd5b50610574600480360381019061056f91906131ad565b611007565b005b348015610581575f80fd5b5061059c60048036038101906105979190612f49565b6110bd565b6040516105a99190612fa1565b60405180910390f35b3480156105bd575f80fd5b506105d860048036038101906105d39190613102565b6110da565b6040516105e59190612fa1565b60405180910390f35b3480156105f9575f80fd5b506106026110f7565b005b34801561060f575f80fd5b5061062a6004803603810190610625919061326a565b6111cc565b005b348015610637575f80fd5b50610640611301565b60405161064d919061303d565b60405180910390f35b348015610661575f80fd5b5061067c600480360381019061067791906132c7565b611307565b604051610689919061303d565b60405180910390f35b34801561069d575f80fd5b506106b860048036038101906106b39190613182565b611389565b005b3480156106c5575f80fd5b506106e060048036038101906106db9190613102565b611427565b005b6106ea6115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076d9061334f565b60405180910390fd5b5f5b815181101561080357600160115f8484815181106107995761079861336d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806107fb906133c7565b915050610778565b5050565b60606040518060400160405280600b81526020017f456c656374726f20436174000000000000000000000000000000000000000000815250905090565b5f6108576108506115e4565b84846115eb565b6001905092915050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6a3913517ebd3c0c65000000905090565b5f6108a48484846117ae565b610961846108b06115e4565b61095c85604051806060016040528060288152602001613d846028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109136115e4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121589092919063ffffffff16565b6115eb565b600190509392505050565b60195481565b5f6009905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109a76115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2a9061334f565b60405180910390fd5b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610a926115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b159061334f565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b7a6115e4565b73ffffffffffffffffffffffffffffffffffffffff161480610bef575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bd76115e4565b73ffffffffffffffffffffffffffffffffffffffff16145b610bf7575f80fd5b5f479050610c04816121ba565b50565b5f610c4e60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122ad565b9050919050565b610c5d6115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce09061334f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dab6115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2e9061334f565b60405180910390fd5b8060178190555050565b60175481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e766115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef99061334f565b60405180910390fd5b80601660146101000a81548160ff0219169083151502179055504360088190555050565b60185481565b60606040518060400160405280600781526020017f454c454354524f00000000000000000000000000000000000000000000000000815250905090565b610f716115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff49061334f565b60405180910390fd5b8060198190555050565b61100f6115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110929061334f565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b5f6110d06110c96115e4565b84846117ae565b6001905092915050565b6011602052805f5260405f205f915054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111376115e4565b73ffffffffffffffffffffffffffffffffffffffff1614806111ac575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111946115e4565b73ffffffffffffffffffffffffffffffffffffffff16145b6111b4575f80fd5b5f6111be30610c07565b90506111c981612319565b50565b6111d46115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611260576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112579061334f565b60405180910390fd5b5f5b838390508110156112fb578160055f8686858181106112845761128361336d565b5b90506020020160208101906112999190613102565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806112f3906133c7565b915050611262565b50505050565b60085481565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6113916115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461141d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114149061334f565b60405180910390fd5b8060188190555050565b61142f6115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b29061334f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611529576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115209061347e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611659576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116509061350c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be9061359a565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117a1919061303d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361181c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181390613628565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361188a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611881906136b6565b60405180910390fd5b5f81116118cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c390613744565b60405180910390fd5b6118d4610e47565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119425750611912610e47565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e6557601660149054906101000a900460ff166119d157611963610e47565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c7906137d2565b60405180910390fd5b5b601754811115611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d9061383a565b60405180910390fd5b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ab4575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aea906138c8565b60405180910390fd5b6008544311158015611b51575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015611baa575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611be257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c3d57600160115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ce95760185481611c9e84610c07565b611ca891906138e6565b10611ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdf90613989565b60405180910390fd5b5b5f611cf330610c07565b90505f60195482101590506017548210611d0d5760175491505b808015611d275750601660159054906101000a900460ff16155b8015611d80575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d96575060168054906101000a900460ff165b8015611de9575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e3c575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e6257611e4a82612319565b5f4790505f811115611e6057611e5f476121ba565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611f05575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611fb6575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611fb5575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611fc3575f9050612146565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561206c575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561208457600954600d81905550600a54600e819055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561212d575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561214557600b54600d81905550600c54600e819055505b5b61215284848484612584565b50505050565b5f83831115829061219f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121969190612ef6565b60405180910390fd5b505f83856121ad91906139a7565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6122096002846125b190919063ffffffff16565b90811502906040515f60405180830381858888f19350505050158015612231573d5f803e3d5ffd5b5060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6122816002846125b190919063ffffffff16565b90811502906040515f60405180830381858888f193505050501580156122a9573d5f803e3d5ffd5b5050565b5f6006548211156122f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ea90613a4a565b60405180910390fd5b5f6122fc6125fa565b905061231181846125b190919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123505761234f612c9f565b5b60405190808252806020026020018201604052801561237e5781602001602082028036833780820191505090505b50905030815f815181106123955761239461336d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612439573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061245d9190613a7c565b816001815181106124715761247061336d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124d73060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115eb565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612539959493929190613b97565b5f604051808303815f87803b158015612550575f80fd5b505af1158015612562573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b8061259257612591612623565b5b61259d84848461265c565b806125ab576125aa61281c565b5b50505050565b5f6125f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612830565b905092915050565b5f805f612605612891565b9150915061261c81836125b190919063ffffffff16565b9250505090565b5f600d5414801561263557505f600e54145b61265a57600d54600f81905550600e546010819055505f600d819055505f600e819055505b565b5f805f805f8061266b876128f6565b9550955095509550955095506126c78660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461295690919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127588560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461299f90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127a2816129fc565b6127ac8483612ab3565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612809919061303d565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b5f8083118290612876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286d9190612ef6565b60405180910390fd5b505f83856128849190613c1c565b9050809150509392505050565b5f805f60065490505f6a3913517ebd3c0c6500000090506128c86a3913517ebd3c0c650000006006546125b190919063ffffffff16565b8210156128e9576006546a3913517ebd3c0c650000009350935050506128f2565b81819350935050505b9091565b5f805f805f805f805f61290e8a600d54600e54612aed565b9250925092505f61291d6125fa565b90505f805f61292e8e878787612b7f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61299783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612158565b905092915050565b5f8082846129ad91906138e6565b9050838110156129f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e990613c96565b60405180910390fd5b8091505092915050565b5f612a056125fa565b90505f612a1b8284612c0390919063ffffffff16565b9050612a6d8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461299f90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612ac88260065461295690919063ffffffff16565b600681905550612ae38160075461299f90919063ffffffff16565b6007819055505050565b5f805f80612b176064612b09888a612c0390919063ffffffff16565b6125b190919063ffffffff16565b90505f612b406064612b32888b612c0390919063ffffffff16565b6125b190919063ffffffff16565b90505f612b6882612b5a858c61295690919063ffffffff16565b61295690919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612b968589612c0390919063ffffffff16565b90505f612bac8689612c0390919063ffffffff16565b90505f612bc28789612c0390919063ffffffff16565b90505f612bea82612bdc858761295690919063ffffffff16565b61295690919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612c13575f9050612c74565b5f8284612c209190613cb4565b9050828482612c2f9190613c1c565b14612c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6690613d65565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612cd582612c8f565b810181811067ffffffffffffffff82111715612cf457612cf3612c9f565b5b80604052505050565b5f612d06612c7a565b9050612d128282612ccc565b919050565b5f67ffffffffffffffff821115612d3157612d30612c9f565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d6f82612d46565b9050919050565b612d7f81612d65565b8114612d89575f80fd5b50565b5f81359050612d9a81612d76565b92915050565b5f612db2612dad84612d17565b612cfd565b90508083825260208201905060208402830185811115612dd557612dd4612d42565b5b835b81811015612dfe5780612dea8882612d8c565b845260208401935050602081019050612dd7565b5050509392505050565b5f82601f830112612e1c57612e1b612c8b565b5b8135612e2c848260208601612da0565b91505092915050565b5f60208284031215612e4a57612e49612c83565b5b5f82013567ffffffffffffffff811115612e6757612e66612c87565b5b612e7384828501612e08565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612eb3578082015181840152602081019050612e98565b5f8484015250505050565b5f612ec882612e7c565b612ed28185612e86565b9350612ee2818560208601612e96565b612eeb81612c8f565b840191505092915050565b5f6020820190508181035f830152612f0e8184612ebe565b905092915050565b5f819050919050565b612f2881612f16565b8114612f32575f80fd5b50565b5f81359050612f4381612f1f565b92915050565b5f8060408385031215612f5f57612f5e612c83565b5b5f612f6c85828601612d8c565b9250506020612f7d85828601612f35565b9150509250929050565b5f8115159050919050565b612f9b81612f87565b82525050565b5f602082019050612fb45f830184612f92565b92915050565b5f819050919050565b5f612fdd612fd8612fd384612d46565b612fba565b612d46565b9050919050565b5f612fee82612fc3565b9050919050565b5f612fff82612fe4565b9050919050565b61300f81612ff5565b82525050565b5f6020820190506130285f830184613006565b92915050565b61303781612f16565b82525050565b5f6020820190506130505f83018461302e565b92915050565b5f805f6060848603121561306d5761306c612c83565b5b5f61307a86828701612d8c565b935050602061308b86828701612d8c565b925050604061309c86828701612f35565b9150509250925092565b5f60ff82169050919050565b6130bb816130a6565b82525050565b5f6020820190506130d45f8301846130b2565b92915050565b6130e381612d65565b82525050565b5f6020820190506130fc5f8301846130da565b92915050565b5f6020828403121561311757613116612c83565b5b5f61312484828501612d8c565b91505092915050565b61313681612f87565b8114613140575f80fd5b50565b5f813590506131518161312d565b92915050565b5f6020828403121561316c5761316b612c83565b5b5f61317984828501613143565b91505092915050565b5f6020828403121561319757613196612c83565b5b5f6131a484828501612f35565b91505092915050565b5f805f80608085870312156131c5576131c4612c83565b5b5f6131d287828801612f35565b94505060206131e387828801612f35565b93505060406131f487828801612f35565b925050606061320587828801612f35565b91505092959194509250565b5f80fd5b5f8083601f84011261322a57613229612c8b565b5b8235905067ffffffffffffffff81111561324757613246613211565b5b60208301915083602082028301111561326357613262612d42565b5b9250929050565b5f805f6040848603121561328157613280612c83565b5b5f84013567ffffffffffffffff81111561329e5761329d612c87565b5b6132aa86828701613215565b935093505060206132bd86828701613143565b9150509250925092565b5f80604083850312156132dd576132dc612c83565b5b5f6132ea85828601612d8c565b92505060206132fb85828601612d8c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613339602083612e86565b915061334482613305565b602082019050919050565b5f6020820190508181035f8301526133668161332d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6133d182612f16565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134035761340261339a565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613468602683612e86565b91506134738261340e565b604082019050919050565b5f6020820190508181035f8301526134958161345c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134f6602483612e86565b91506135018261349c565b604082019050919050565b5f6020820190508181035f830152613523816134ea565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613584602283612e86565b915061358f8261352a565b604082019050919050565b5f6020820190508181035f8301526135b181613578565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613612602583612e86565b915061361d826135b8565b604082019050919050565b5f6020820190508181035f83015261363f81613606565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6136a0602383612e86565b91506136ab82613646565b604082019050919050565b5f6020820190508181035f8301526136cd81613694565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61372e602983612e86565b9150613739826136d4565b604082019050919050565b5f6020820190508181035f83015261375b81613722565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f6137bc603f83612e86565b91506137c782613762565b604082019050919050565b5f6020820190508181035f8301526137e9816137b0565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613824601c83612e86565b915061382f826137f0565b602082019050919050565b5f6020820190508181035f83015261385181613818565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f6138b2602383612e86565b91506138bd82613858565b604082019050919050565b5f6020820190508181035f8301526138df816138a6565b9050919050565b5f6138f082612f16565b91506138fb83612f16565b92508282019050808211156139135761391261339a565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613973602383612e86565b915061397e82613919565b604082019050919050565b5f6020820190508181035f8301526139a081613967565b9050919050565b5f6139b182612f16565b91506139bc83612f16565b92508282039050818111156139d4576139d361339a565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613a34602a83612e86565b9150613a3f826139da565b604082019050919050565b5f6020820190508181035f830152613a6181613a28565b9050919050565b5f81519050613a7681612d76565b92915050565b5f60208284031215613a9157613a90612c83565b5b5f613a9e84828501613a68565b91505092915050565b5f819050919050565b5f613aca613ac5613ac084613aa7565b612fba565b612f16565b9050919050565b613ada81613ab0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613b1281612d65565b82525050565b5f613b238383613b09565b60208301905092915050565b5f602082019050919050565b5f613b4582613ae0565b613b4f8185613aea565b9350613b5a83613afa565b805f5b83811015613b8a578151613b718882613b18565b9750613b7c83613b2f565b925050600181019050613b5d565b5085935050505092915050565b5f60a082019050613baa5f83018861302e565b613bb76020830187613ad1565b8181036040830152613bc98186613b3b565b9050613bd860608301856130da565b613be5608083018461302e565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613c2682612f16565b9150613c3183612f16565b925082613c4157613c40613bef565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c80601b83612e86565b9150613c8b82613c4c565b602082019050919050565b5f6020820190508181035f830152613cad81613c74565b9050919050565b5f613cbe82612f16565b9150613cc983612f16565b9250828202613cd781612f16565b91508282048414831517613cee57613ced61339a565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d4f602183612e86565b9150613d5a82613cf5565b604082019050919050565b5f6020820190508181035f830152613d7c81613d43565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122099b6fd40ce1841fcd41916b0eba222f837cc4eb68d2e9a0e5d22ff5d041cca4764736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101cf575f3560e01c80637d1db4a5116100f6578063a9059cbb11610094578063d00efb2f11610063578063d00efb2f1461062c578063dd62ed3e14610656578063ea1644d514610692578063f2fde38b146106ba576101d6565b8063a9059cbb14610576578063bfd79284146105b2578063c3c8cd80146105ee578063c492f04614610604576101d6565b80638f9a55c0116100d05780638f9a55c0146104d257806395d89b41146104fc57806398a5c31514610526578063a2a957bb1461054e576101d6565b80637d1db4a5146104565780638da5cb5b146104805780638f70ccf7146104aa576101d6565b8063313ce5671161016e5780636fc3eaec1161013d5780636fc3eaec146103c657806370a08231146103dc578063715018a61461041857806374010ece1461042e576101d6565b8063313ce5671461032257806349bd5a5e1461034c5780636b999053146103765780636d8aa8f81461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd1461029257806323b872dd146102bc5780632fd689e3146102f8576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612e35565b6106e2565b005b34801561020d575f80fd5b50610216610807565b6040516102239190612ef6565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612f49565b610844565b60405161025f9190612fa1565b60405180910390f35b348015610273575f80fd5b5061027c610861565b6040516102899190613015565b60405180910390f35b34801561029d575f80fd5b506102a6610886565b6040516102b3919061303d565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190613056565b610898565b6040516102ef9190612fa1565b60405180910390f35b348015610303575f80fd5b5061030c61096c565b604051610319919061303d565b60405180910390f35b34801561032d575f80fd5b50610336610972565b60405161034391906130c1565b60405180910390f35b348015610357575f80fd5b5061036061097a565b60405161036d91906130e9565b60405180910390f35b348015610381575f80fd5b5061039c60048036038101906103979190613102565b61099f565b005b3480156103a9575f80fd5b506103c460048036038101906103bf9190613157565b610a8a565b005b3480156103d1575f80fd5b506103da610b3a565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190613102565b610c07565b60405161040f919061303d565b60405180910390f35b348015610423575f80fd5b5061042c610c55565b005b348015610439575f80fd5b50610454600480360381019061044f9190613182565b610da3565b005b348015610461575f80fd5b5061046a610e41565b604051610477919061303d565b60405180910390f35b34801561048b575f80fd5b50610494610e47565b6040516104a191906130e9565b60405180910390f35b3480156104b5575f80fd5b506104d060048036038101906104cb9190613157565b610e6e565b005b3480156104dd575f80fd5b506104e6610f26565b6040516104f3919061303d565b60405180910390f35b348015610507575f80fd5b50610510610f2c565b60405161051d9190612ef6565b60405180910390f35b348015610531575f80fd5b5061054c60048036038101906105479190613182565b610f69565b005b348015610559575f80fd5b50610574600480360381019061056f91906131ad565b611007565b005b348015610581575f80fd5b5061059c60048036038101906105979190612f49565b6110bd565b6040516105a99190612fa1565b60405180910390f35b3480156105bd575f80fd5b506105d860048036038101906105d39190613102565b6110da565b6040516105e59190612fa1565b60405180910390f35b3480156105f9575f80fd5b506106026110f7565b005b34801561060f575f80fd5b5061062a6004803603810190610625919061326a565b6111cc565b005b348015610637575f80fd5b50610640611301565b60405161064d919061303d565b60405180910390f35b348015610661575f80fd5b5061067c600480360381019061067791906132c7565b611307565b604051610689919061303d565b60405180910390f35b34801561069d575f80fd5b506106b860048036038101906106b39190613182565b611389565b005b3480156106c5575f80fd5b506106e060048036038101906106db9190613102565b611427565b005b6106ea6115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076d9061334f565b60405180910390fd5b5f5b815181101561080357600160115f8484815181106107995761079861336d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806107fb906133c7565b915050610778565b5050565b60606040518060400160405280600b81526020017f456c656374726f20436174000000000000000000000000000000000000000000815250905090565b5f6108576108506115e4565b84846115eb565b6001905092915050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6a3913517ebd3c0c65000000905090565b5f6108a48484846117ae565b610961846108b06115e4565b61095c85604051806060016040528060288152602001613d846028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109136115e4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121589092919063ffffffff16565b6115eb565b600190509392505050565b60195481565b5f6009905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109a76115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2a9061334f565b60405180910390fd5b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610a926115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b159061334f565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b7a6115e4565b73ffffffffffffffffffffffffffffffffffffffff161480610bef575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bd76115e4565b73ffffffffffffffffffffffffffffffffffffffff16145b610bf7575f80fd5b5f479050610c04816121ba565b50565b5f610c4e60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122ad565b9050919050565b610c5d6115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce09061334f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dab6115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2e9061334f565b60405180910390fd5b8060178190555050565b60175481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e766115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef99061334f565b60405180910390fd5b80601660146101000a81548160ff0219169083151502179055504360088190555050565b60185481565b60606040518060400160405280600781526020017f454c454354524f00000000000000000000000000000000000000000000000000815250905090565b610f716115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff49061334f565b60405180910390fd5b8060198190555050565b61100f6115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110929061334f565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b5f6110d06110c96115e4565b84846117ae565b6001905092915050565b6011602052805f5260405f205f915054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111376115e4565b73ffffffffffffffffffffffffffffffffffffffff1614806111ac575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111946115e4565b73ffffffffffffffffffffffffffffffffffffffff16145b6111b4575f80fd5b5f6111be30610c07565b90506111c981612319565b50565b6111d46115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611260576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112579061334f565b60405180910390fd5b5f5b838390508110156112fb578160055f8686858181106112845761128361336d565b5b90506020020160208101906112999190613102565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806112f3906133c7565b915050611262565b50505050565b60085481565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6113916115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461141d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114149061334f565b60405180910390fd5b8060188190555050565b61142f6115e4565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b29061334f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611529576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115209061347e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611659576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116509061350c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be9061359a565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117a1919061303d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361181c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181390613628565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361188a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611881906136b6565b60405180910390fd5b5f81116118cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c390613744565b60405180910390fd5b6118d4610e47565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119425750611912610e47565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e6557601660149054906101000a900460ff166119d157611963610e47565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c7906137d2565b60405180910390fd5b5b601754811115611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d9061383a565b60405180910390fd5b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ab4575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aea906138c8565b60405180910390fd5b6008544311158015611b51575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015611baa575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611be257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c3d57600160115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ce95760185481611c9e84610c07565b611ca891906138e6565b10611ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdf90613989565b60405180910390fd5b5b5f611cf330610c07565b90505f60195482101590506017548210611d0d5760175491505b808015611d275750601660159054906101000a900460ff16155b8015611d80575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d96575060168054906101000a900460ff165b8015611de9575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e3c575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e6257611e4a82612319565b5f4790505f811115611e6057611e5f476121ba565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611f05575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611fb6575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611fb5575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611fc3575f9050612146565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561206c575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561208457600954600d81905550600a54600e819055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561212d575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561214557600b54600d81905550600c54600e819055505b5b61215284848484612584565b50505050565b5f83831115829061219f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121969190612ef6565b60405180910390fd5b505f83856121ad91906139a7565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6122096002846125b190919063ffffffff16565b90811502906040515f60405180830381858888f19350505050158015612231573d5f803e3d5ffd5b5060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6122816002846125b190919063ffffffff16565b90811502906040515f60405180830381858888f193505050501580156122a9573d5f803e3d5ffd5b5050565b5f6006548211156122f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ea90613a4a565b60405180910390fd5b5f6122fc6125fa565b905061231181846125b190919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123505761234f612c9f565b5b60405190808252806020026020018201604052801561237e5781602001602082028036833780820191505090505b50905030815f815181106123955761239461336d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612439573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061245d9190613a7c565b816001815181106124715761247061336d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124d73060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115eb565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612539959493929190613b97565b5f604051808303815f87803b158015612550575f80fd5b505af1158015612562573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b8061259257612591612623565b5b61259d84848461265c565b806125ab576125aa61281c565b5b50505050565b5f6125f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612830565b905092915050565b5f805f612605612891565b9150915061261c81836125b190919063ffffffff16565b9250505090565b5f600d5414801561263557505f600e54145b61265a57600d54600f81905550600e546010819055505f600d819055505f600e819055505b565b5f805f805f8061266b876128f6565b9550955095509550955095506126c78660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461295690919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127588560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461299f90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127a2816129fc565b6127ac8483612ab3565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612809919061303d565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b5f8083118290612876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286d9190612ef6565b60405180910390fd5b505f83856128849190613c1c565b9050809150509392505050565b5f805f60065490505f6a3913517ebd3c0c6500000090506128c86a3913517ebd3c0c650000006006546125b190919063ffffffff16565b8210156128e9576006546a3913517ebd3c0c650000009350935050506128f2565b81819350935050505b9091565b5f805f805f805f805f61290e8a600d54600e54612aed565b9250925092505f61291d6125fa565b90505f805f61292e8e878787612b7f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61299783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612158565b905092915050565b5f8082846129ad91906138e6565b9050838110156129f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e990613c96565b60405180910390fd5b8091505092915050565b5f612a056125fa565b90505f612a1b8284612c0390919063ffffffff16565b9050612a6d8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461299f90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612ac88260065461295690919063ffffffff16565b600681905550612ae38160075461299f90919063ffffffff16565b6007819055505050565b5f805f80612b176064612b09888a612c0390919063ffffffff16565b6125b190919063ffffffff16565b90505f612b406064612b32888b612c0390919063ffffffff16565b6125b190919063ffffffff16565b90505f612b6882612b5a858c61295690919063ffffffff16565b61295690919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612b968589612c0390919063ffffffff16565b90505f612bac8689612c0390919063ffffffff16565b90505f612bc28789612c0390919063ffffffff16565b90505f612bea82612bdc858761295690919063ffffffff16565b61295690919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612c13575f9050612c74565b5f8284612c209190613cb4565b9050828482612c2f9190613c1c565b14612c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6690613d65565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612cd582612c8f565b810181811067ffffffffffffffff82111715612cf457612cf3612c9f565b5b80604052505050565b5f612d06612c7a565b9050612d128282612ccc565b919050565b5f67ffffffffffffffff821115612d3157612d30612c9f565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d6f82612d46565b9050919050565b612d7f81612d65565b8114612d89575f80fd5b50565b5f81359050612d9a81612d76565b92915050565b5f612db2612dad84612d17565b612cfd565b90508083825260208201905060208402830185811115612dd557612dd4612d42565b5b835b81811015612dfe5780612dea8882612d8c565b845260208401935050602081019050612dd7565b5050509392505050565b5f82601f830112612e1c57612e1b612c8b565b5b8135612e2c848260208601612da0565b91505092915050565b5f60208284031215612e4a57612e49612c83565b5b5f82013567ffffffffffffffff811115612e6757612e66612c87565b5b612e7384828501612e08565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612eb3578082015181840152602081019050612e98565b5f8484015250505050565b5f612ec882612e7c565b612ed28185612e86565b9350612ee2818560208601612e96565b612eeb81612c8f565b840191505092915050565b5f6020820190508181035f830152612f0e8184612ebe565b905092915050565b5f819050919050565b612f2881612f16565b8114612f32575f80fd5b50565b5f81359050612f4381612f1f565b92915050565b5f8060408385031215612f5f57612f5e612c83565b5b5f612f6c85828601612d8c565b9250506020612f7d85828601612f35565b9150509250929050565b5f8115159050919050565b612f9b81612f87565b82525050565b5f602082019050612fb45f830184612f92565b92915050565b5f819050919050565b5f612fdd612fd8612fd384612d46565b612fba565b612d46565b9050919050565b5f612fee82612fc3565b9050919050565b5f612fff82612fe4565b9050919050565b61300f81612ff5565b82525050565b5f6020820190506130285f830184613006565b92915050565b61303781612f16565b82525050565b5f6020820190506130505f83018461302e565b92915050565b5f805f6060848603121561306d5761306c612c83565b5b5f61307a86828701612d8c565b935050602061308b86828701612d8c565b925050604061309c86828701612f35565b9150509250925092565b5f60ff82169050919050565b6130bb816130a6565b82525050565b5f6020820190506130d45f8301846130b2565b92915050565b6130e381612d65565b82525050565b5f6020820190506130fc5f8301846130da565b92915050565b5f6020828403121561311757613116612c83565b5b5f61312484828501612d8c565b91505092915050565b61313681612f87565b8114613140575f80fd5b50565b5f813590506131518161312d565b92915050565b5f6020828403121561316c5761316b612c83565b5b5f61317984828501613143565b91505092915050565b5f6020828403121561319757613196612c83565b5b5f6131a484828501612f35565b91505092915050565b5f805f80608085870312156131c5576131c4612c83565b5b5f6131d287828801612f35565b94505060206131e387828801612f35565b93505060406131f487828801612f35565b925050606061320587828801612f35565b91505092959194509250565b5f80fd5b5f8083601f84011261322a57613229612c8b565b5b8235905067ffffffffffffffff81111561324757613246613211565b5b60208301915083602082028301111561326357613262612d42565b5b9250929050565b5f805f6040848603121561328157613280612c83565b5b5f84013567ffffffffffffffff81111561329e5761329d612c87565b5b6132aa86828701613215565b935093505060206132bd86828701613143565b9150509250925092565b5f80604083850312156132dd576132dc612c83565b5b5f6132ea85828601612d8c565b92505060206132fb85828601612d8c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613339602083612e86565b915061334482613305565b602082019050919050565b5f6020820190508181035f8301526133668161332d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6133d182612f16565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134035761340261339a565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613468602683612e86565b91506134738261340e565b604082019050919050565b5f6020820190508181035f8301526134958161345c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134f6602483612e86565b91506135018261349c565b604082019050919050565b5f6020820190508181035f830152613523816134ea565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613584602283612e86565b915061358f8261352a565b604082019050919050565b5f6020820190508181035f8301526135b181613578565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613612602583612e86565b915061361d826135b8565b604082019050919050565b5f6020820190508181035f83015261363f81613606565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6136a0602383612e86565b91506136ab82613646565b604082019050919050565b5f6020820190508181035f8301526136cd81613694565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61372e602983612e86565b9150613739826136d4565b604082019050919050565b5f6020820190508181035f83015261375b81613722565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f6137bc603f83612e86565b91506137c782613762565b604082019050919050565b5f6020820190508181035f8301526137e9816137b0565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613824601c83612e86565b915061382f826137f0565b602082019050919050565b5f6020820190508181035f83015261385181613818565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f6138b2602383612e86565b91506138bd82613858565b604082019050919050565b5f6020820190508181035f8301526138df816138a6565b9050919050565b5f6138f082612f16565b91506138fb83612f16565b92508282019050808211156139135761391261339a565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613973602383612e86565b915061397e82613919565b604082019050919050565b5f6020820190508181035f8301526139a081613967565b9050919050565b5f6139b182612f16565b91506139bc83612f16565b92508282039050818111156139d4576139d361339a565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613a34602a83612e86565b9150613a3f826139da565b604082019050919050565b5f6020820190508181035f830152613a6181613a28565b9050919050565b5f81519050613a7681612d76565b92915050565b5f60208284031215613a9157613a90612c83565b5b5f613a9e84828501613a68565b91505092915050565b5f819050919050565b5f613aca613ac5613ac084613aa7565b612fba565b612f16565b9050919050565b613ada81613ab0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613b1281612d65565b82525050565b5f613b238383613b09565b60208301905092915050565b5f602082019050919050565b5f613b4582613ae0565b613b4f8185613aea565b9350613b5a83613afa565b805f5b83811015613b8a578151613b718882613b18565b9750613b7c83613b2f565b925050600181019050613b5d565b5085935050505092915050565b5f60a082019050613baa5f83018861302e565b613bb76020830187613ad1565b8181036040830152613bc98186613b3b565b9050613bd860608301856130da565b613be5608083018461302e565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613c2682612f16565b9150613c3183612f16565b925082613c4157613c40613bef565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c80601b83612e86565b9150613c8b82613c4c565b602082019050919050565b5f6020820190508181035f830152613cad81613c74565b9050919050565b5f613cbe82612f16565b9150613cc983612f16565b9250828202613cd781612f16565b91508282048414831517613cee57613ced61339a565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d4f602183612e86565b9150613d5a82613cf5565b604082019050919050565b5f6020820190508181035f830152613d7c81613d43565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122099b6fd40ce1841fcd41916b0eba222f837cc4eb68d2e9a0e5d22ff5d041cca4764736f6c63430008140033

Deployed Bytecode Sourcemap

4777:14045:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13959:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7495:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8427:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6231:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7775:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8629:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6553:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7683:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6279:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14137:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18200:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13723:227;;;;;;;;;;;;;:::i;:::-;;7879:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2250:148;;;;;;;;;;;;;:::i;:::-;;18344:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6423:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2034:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13339:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6487:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7587:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18008:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17661:294;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8026:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5929:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13486:228;;;;;;;;;;;;;:::i;:::-;;18585:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5460:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8234:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18461:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2407:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13959:169;2172:12;:10;:12::i;:::-;2162:22;;:6;;;;;;;;;;:22;;;2154:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14035:9:::1;14030:91;14054:5;:12;14050:1;:16;14030:91;;;14105:4;14088;:14;14093:5;14099:1;14093:8;;;;;;;;:::i;:::-;;;;;;;;14088:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14068:3;;;;;:::i;:::-;;;;14030:91;;;;13959:169:::0;:::o;7495:83::-;7532:13;7565:5;;;;;;;;;;;;;;;;;7558:12;;7495:83;:::o;8427:193::-;8529:4;8551:39;8560:12;:10;:12::i;:::-;8574:7;8583:6;8551:8;:39::i;:::-;8608:4;8601:11;;8427:193;;;;:::o;6231:41::-;;;;;;;;;;;;;:::o;7775:95::-;7828:7;5339:25;7848:14;;7775:95;:::o;8629:446::-;8761:4;8778:36;8788:6;8796:9;8807:6;8778:9;:36::i;:::-;8825:220;8848:6;8869:12;:10;:12::i;:::-;8896:138;8952:6;8896:138;;;;;;;;;;;;;;;;;:11;:19;8908:6;8896:19;;;;;;;;;;;;;;;:33;8916:12;:10;:12::i;:::-;8896:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8825:8;:220::i;:::-;9063:4;9056:11;;8629:446;;;;;:::o;6553:56::-;;;;:::o;7683:83::-;7724:5;5012:1;7742:16;;7683:83;:::o;6279:28::-;;;;;;;;;;;;;:::o;14137:92::-;2172:12;:10;:12::i;:::-;2162:22;;:6;;;;;;;;;;:22;;;2154:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14216:5:::1;14201:4;:12;14206:6;14201:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14137:92:::0;:::o;18200:101::-;2172:12;:10;:12::i;:::-;2162:22;;:6;;;;;;;;;;:22;;;2154:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18281:12:::1;18267:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;18200:101:::0;:::o;13723:227::-;13789:11;;;;;;;;;;;13773:27;;:12;:10;:12::i;:::-;:27;;;:64;;;;13820:17;;;;;;;;;;;13804:33;;:12;:10;:12::i;:::-;:33;;;13773:64;13765:73;;;;;;13849:26;13878:21;13849:50;;13910:32;13923:18;13910:12;:32::i;:::-;13754:196;13723:227::o;7879:138::-;7945:7;7972:37;7992:7;:16;8000:7;7992:16;;;;;;;;;;;;;;;;7972:19;:37::i;:::-;7965:44;;7879:138;;;:::o;2250:148::-;2172:12;:10;:12::i;:::-;2162:22;;:6;;;;;;;;;;:22;;;2154:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2357:1:::1;2320:40;;2341:6;::::0;::::1;;;;;;;;2320:40;;;;;;;;;;;;2388:1;2371:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2250:148::o:0;18344:108::-;2172:12;:10;:12::i;:::-;2162:22;;:6;;;;;;;;;;:22;;;2154:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18433:11:::1;18418:12;:26;;;;18344:108:::0;:::o;6423:54::-;;;;:::o;2034:79::-;2072:7;2099:6;;;;;;;;;;;2092:13;;2034:79;:::o;13339:138::-;2172:12;:10;:12::i;:::-;2162:22;;:6;;;;;;;;;;:22;;;2154:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13420:12:::1;13406:11;;:26;;;;;;;;;;;;;;;;;;13457:12;13443:11;:26;;;;13339:138:::0;:::o;6487:56::-;;;;:::o;7587:87::-;7626:13;7659:7;;;;;;;;;;;;;;;;;7652:14;;7587:87;:::o;18008:139::-;2172:12;:10;:12::i;:::-;2162:22;;:6;;;;;;;;;;:22;;;2154:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18121:18:::1;18099:19;:40;;;;18008:139:::0;:::o;17661:294::-;2172:12;:10;:12::i;:::-;2162:22;;:6;;;;;;;;;;:22;;;2154:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17812:13:::1;17795:14;:30;;;;17854:14;17836:15;:32;;;;17897:11;17882:12;:26;;;;17935:12;17919:13;:28;;;;17661:294:::0;;;;:::o;8026:199::-;8131:4;8153:42;8163:12;:10;:12::i;:::-;8177:9;8188:6;8153:9;:42::i;:::-;8213:4;8206:11;;8026:199;;;;:::o;5929:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13486:228::-;13552:11;;;;;;;;;;;13536:27;;:12;:10;:12::i;:::-;:27;;;:64;;;;13583:17;;;;;;;;;;;13567:33;;:12;:10;:12::i;:::-;:33;;;13536:64;13528:73;;;;;;13612:23;13638:24;13656:4;13638:9;:24::i;:::-;13612:50;;13673:33;13690:15;13673:16;:33::i;:::-;13517:197;13486:228::o;18585:234::-;2172:12;:10;:12::i;:::-;2162:22;;:6;;;;;;;;;;:22;;;2154:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18702:9:::1;18698:114;18721:8;;:15;;18717:1;:19;18698:114;;;18792:8;18758:18;:31;18777:8;;18786:1;18777:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18758:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18738:3;;;;;:::i;:::-;;;;18698:114;;;;18585:234:::0;;;:::o;5460:26::-;;;;:::o;8234:184::-;8351:7;8383:11;:18;8395:5;8383:18;;;;;;;;;;;;;;;:27;8402:7;8383:27;;;;;;;;;;;;;;;;8376:34;;8234:184;;;;:::o;18461:115::-;2172:12;:10;:12::i;:::-;2162:22;;:6;;;;;;;;;;:22;;;2154:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18555:13:::1;18538:14;:30;;;;18461:115:::0;:::o;2407:244::-;2172:12;:10;:12::i;:::-;2162:22;;:6;;;;;;;;;;:22;;;2154:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2516:1:::1;2496:22;;:8;:22;;::::0;2488:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2606:8;2577:38;;2598:6;::::0;::::1;;;;;;;;2577:38;;;;;;;;;;;;2635:8;2626:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2407:244:::0;:::o;783:98::-;836:7;863:10;856:17;;783:98;:::o;9772:369::-;9916:1;9899:19;;:5;:19;;;9891:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9997:1;9978:21;;:7;:21;;;9970:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10079:6;10049:11;:18;10061:5;10049:18;;;;;;;;;;;;;;;:27;10068:7;10049:27;;;;;;;;;;;;;;;:36;;;;10117:7;10101:32;;10110:5;10101:32;;;10126:6;10101:32;;;;;;:::i;:::-;;;;;;;;9772:369;;;:::o;10150:2527::-;10288:1;10272:18;;:4;:18;;;10264:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10365:1;10351:16;;:2;:16;;;10343:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10435:1;10426:6;:10;10418:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10508:7;:5;:7::i;:::-;10500:15;;:4;:15;;;;:32;;;;;10525:7;:5;:7::i;:::-;10519:13;;:2;:13;;;;10500:32;10496:1449;;;10590:11;;;;;;;;;;;10585:144;;10638:7;:5;:7::i;:::-;10630:15;;:4;:15;;;10622:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10585:144;10764:12;;10754:6;:22;;10746:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10833:4;:10;10838:4;10833:10;;;;;;;;;;;;;;;;;;;;;;;;;10832:11;:24;;;;;10848:4;:8;10853:2;10848:8;;;;;;;;;;;;;;;;;;;;;;;;;10847:9;10832:24;10824:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10933:11;;10917:12;:27;;:52;;;;;10956:13;;;;;;;;;;;10948:21;;:4;:21;;;10917:52;:86;;;;;10987:15;;;;;;;;;;;10973:30;;:2;:30;;;;10917:86;:109;;;;;11021:4;11007:19;;:2;:19;;;;10917:109;10914:166;;;11060:4;11049;:8;11054:2;11049:8;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;;;;;;;10914:166;11107:13;;;;;;;;;;;11101:19;;:2;:19;;;11098:146;;11174:14;;11165:6;11149:13;11159:2;11149:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11141:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11098:146;11261:28;11292:24;11310:4;11292:9;:24::i;:::-;11261:55;;11331:12;11370:19;;11346:20;:43;;11331:58;;11434:12;;11410:20;:36;11407:124;;11503:12;;11480:35;;11407:124;11552:7;:18;;;;;11564:6;;;;;;;;;;;11563:7;11552:18;:43;;;;;11582:13;;;;;;;;;;;11574:21;;:4;:21;;;;11552:43;:58;;;;;11599:11;;;;;;;;;;11552:58;:87;;;;;11615:18;:24;11634:4;11615:24;;;;;;;;;;;;;;;;;;;;;;;;;11614:25;11552:87;:114;;;;;11644:18;:22;11663:2;11644:22;;;;;;;;;;;;;;;;;;;;;;;;;11643:23;11552:114;11548:386;;;11687:38;11704:20;11687:16;:38::i;:::-;11744:26;11773:21;11744:50;;11838:1;11817:18;:22;11813:106;;;11864:35;11877:21;11864:12;:35::i;:::-;11813:106;11668:266;11548:386;10534:1411;;10496:1449;11958:12;11973:4;11958:19;;12023:18;:24;12042:4;12023:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12051:18;:22;12070:2;12051:22;;;;;;;;;;;;;;;;;;;;;;;;;12023:50;12022:102;;;;12087:13;;;;;;;;;;;12079:21;;:4;:21;;;;:44;;;;;12110:13;;;;;;;;;;;12104:19;;:2;:19;;;;12079:44;12022:102;12018:597;;;12151:5;12141:15;;12018:597;;;12235:13;;;;;;;;;;;12227:21;;:4;:21;;;:55;;;;;12266:15;;;;;;;;;;;12252:30;;:2;:30;;;;12227:55;12224:162;;;12315:14;;12303:9;:26;;;;12358:12;;12348:7;:22;;;;12224:162;12446:13;;;;;;;;;;;12440:19;;:2;:19;;;:55;;;;;12479:15;;;;;;;;;;;12463:32;;:4;:32;;;;12440:55;12436:165;;;12528:15;;12516:9;:27;;;;12572:13;;12562:7;:23;;;;12436:165;12018:597;12628:41;12643:4;12649:2;12653:6;12661:7;12628:14;:41::i;:::-;10253:2424;10150:2527;;;:::o;3019:224::-;3139:7;3172:1;3167;:6;;3175:12;3159:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3199:9;3215:1;3211;:5;;;;:::i;:::-;3199:17;;3234:1;3227:8;;;3019:224;;;;;:::o;13178:152::-;13235:11;;;;;;;;;;;:20;;:35;13256:13;13267:1;13256:6;:10;;:13;;;;:::i;:::-;13235:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13281:17;;;;;;;;;;;:26;;:41;13308:13;13319:1;13308:6;:10;;:13;;;;:::i;:::-;13281:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13178:152;:::o;9084:323::-;9179:7;9237;;9226;:18;;9204:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9325:19;9347:10;:8;:10::i;:::-;9325:32;;9375:24;9387:11;9375:7;:11;;:24;;;;:::i;:::-;9368:31;;;9084:323;;;:::o;12686:483::-;6716:4;6707:6;;:13;;;;;;;;;;;;;;;;;;12764:21:::1;12802:1;12788:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12764:40;;12833:4;12815;12820:1;12815:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12859:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12849:4;12854:1;12849:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12892:62;12909:4;12924:15;;;;;;;;;;;12942:11;12892:8;:62::i;:::-;12965:15;;;;;;;;;;;:66;;;13046:11;13072:1;13088:4;13115;13135:15;12965:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12753:416;6752:5:::0;6743:6;;:14;;;;;;;;;;;;;;;;;;12686:483;:::o;14238:282::-;14394:7;14389:28;;14403:14;:12;:14::i;:::-;14389:28;14428:44;14446:6;14454:9;14465:6;14428:17;:44::i;:::-;14488:7;14483:29;;14497:15;:13;:15::i;:::-;14483:29;14238:282;;;;:::o;3507:132::-;3565:7;3592:39;3596:1;3599;3592:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3585:46;;3507:132;;;;:::o;17216:167::-;17258:7;17279:15;17296;17315:19;:17;:19::i;:::-;17278:56;;;;17355:20;17367:7;17355;:11;;:20;;;;:::i;:::-;17348:27;;;;17216:167;:::o;9416:221::-;9476:1;9463:9;;:14;:30;;;;;9492:1;9481:7;;:12;9463:30;9495:7;9459:43;9535:9;;9515:17;:29;;;;9573:7;;9555:15;:25;;;;9606:1;9594:9;:13;;;;9628:1;9618:7;:11;;;;9416:221;:::o;14529:610::-;14676:15;14706:23;14744:12;14771:23;14809:12;14836:13;14863:19;14874:7;14863:10;:19::i;:::-;14661:221;;;;;;;;;;;;14911:28;14931:7;14911;:15;14919:6;14911:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14893:7;:15;14901:6;14893:15;;;;;;;;;;;;;;;:46;;;;14971:39;14994:15;14971:7;:18;14979:9;14971:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14950:7;:18;14958:9;14950:18;;;;;;;;;;;;;;;:60;;;;15021:16;15031:5;15021:9;:16::i;:::-;15048:23;15060:4;15066;15048:11;:23::i;:::-;15104:9;15087:44;;15096:6;15087:44;;;15115:15;15087:44;;;;;;:::i;:::-;;;;;;;;14650:489;;;;;;14529:610;;;:::o;9646:117::-;9702:17;;9690:9;:29;;;;9740:15;;9730:7;:25;;;;9646:117::o;3648:223::-;3768:7;3800:1;3796;:5;3803:12;3788:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3827:9;3843:1;3839;:5;;;;:::i;:::-;3827:17;;3862:1;3855:8;;;3648:223;;;;;:::o;17392:260::-;17443:7;17452;17472:15;17490:7;;17472:25;;17508:15;5339:25;17508;;17558:20;5339:25;17558:7;;:11;;:20;;;;:::i;:::-;17548:7;:30;17544:61;;;17588:7;;5339:25;17580;;;;;;;;17544:61;17627:7;17636;17619:25;;;;;;17392:260;;;:::o;15562:618::-;15662:7;15684;15706;15728;15750;15772;15808:23;15833:12;15847:13;15877:40;15889:7;15898:9;;15909:7;;15877:11;:40::i;:::-;15807:110;;;;;;15928:19;15950:10;:8;:10::i;:::-;15928:32;;15972:15;15989:23;16014:12;16043:46;16055:7;16064:4;16070:5;16077:11;16043;:46::i;:::-;15971:118;;;;;;16111:7;16120:15;16137:4;16143:15;16160:4;16166:5;16103:69;;;;;;;;;;;;;;;;;;;15562:618;;;;;;;:::o;2874:136::-;2932:7;2959:43;2963:1;2966;2959:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2952:50;;2874:136;;;;:::o;2686:179::-;2744:7;2764:9;2780:1;2776;:5;;;;:::i;:::-;2764:17;;2805:1;2800;:6;;2792:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2856:1;2849:8;;;2686:179;;;;:::o;15148:211::-;15201:19;15223:10;:8;:10::i;:::-;15201:32;;15244:13;15260:22;15270:11;15260:5;:9;;:22;;;;:::i;:::-;15244:38;;15318:33;15345:5;15318:7;:22;15334:4;15318:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15293:7;:22;15309:4;15293:22;;;;;;;;;;;;;;;:58;;;;15190:169;;15148:211;:::o;15368:147::-;15446:17;15458:4;15446:7;;:11;;:17;;;;:::i;:::-;15436:7;:27;;;;15487:20;15502:4;15487:10;;:14;;:20;;;;:::i;:::-;15474:10;:33;;;;15368:147;;:::o;16189:472::-;16358:7;16380;16402;16437:12;16452:30;16478:3;16452:21;16464:8;16452:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16437:45;;16493:13;16509:28;16533:3;16509:19;16521:6;16509:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16493:44;;16548:23;16574:28;16596:5;16574:17;16586:4;16574:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16548:54;;16624:15;16641:4;16647:5;16616:37;;;;;;;;;16189:472;;;;;;;:::o;16670:537::-;16864:7;16886;16908;16943:15;16961:24;16973:11;16961:7;:11;;:24;;;;:::i;:::-;16943:42;;16996:12;17011:21;17020:11;17011:4;:8;;:21;;;;:::i;:::-;16996:36;;17043:13;17059:22;17069:11;17059:5;:9;;:22;;;;:::i;:::-;17043:38;;17092:23;17118:28;17140:5;17118:17;17130:4;17118:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17092:54;;17168:7;17177:15;17194:4;17160:39;;;;;;;;;;16670:537;;;;;;;;:::o;3252:246::-;3310:7;3339:1;3334;:6;3330:47;;3364:1;3357:8;;;;3330:47;3387:9;3403:1;3399;:5;;;;:::i;:::-;3387:17;;3432:1;3427;3423;:5;;;;:::i;:::-;:10;3415:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3489:1;3482:8;;;3252: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:117::-;11160:1;11157;11150:12;11191:568;11264:8;11274:6;11324:3;11317:4;11309:6;11305:17;11301:27;11291:122;;11332:79;;:::i;:::-;11291:122;11445:6;11432:20;11422:30;;11475:18;11467:6;11464:30;11461:117;;;11497:79;;:::i;:::-;11461:117;11611:4;11603:6;11599:17;11587:29;;11665:3;11657:4;11649:6;11645:17;11635:8;11631:32;11628:41;11625:128;;;11672:79;;:::i;:::-;11625:128;11191:568;;;;;:::o;11765:698::-;11857:6;11865;11873;11922:2;11910:9;11901:7;11897:23;11893:32;11890:119;;;11928:79;;:::i;:::-;11890:119;12076:1;12065:9;12061:17;12048:31;12106:18;12098:6;12095:30;12092:117;;;12128:79;;:::i;:::-;12092:117;12241:80;12313:7;12304:6;12293:9;12289:22;12241:80;:::i;:::-;12223:98;;;;12019:312;12370:2;12396:50;12438:7;12429:6;12418:9;12414:22;12396:50;:::i;:::-;12386:60;;12341:115;11765:698;;;;;:::o;12469:474::-;12537:6;12545;12594:2;12582:9;12573:7;12569:23;12565:32;12562:119;;;12600:79;;:::i;:::-;12562:119;12720:1;12745:53;12790:7;12781:6;12770:9;12766:22;12745:53;:::i;:::-;12735:63;;12691:117;12847:2;12873:53;12918:7;12909:6;12898:9;12894:22;12873:53;:::i;:::-;12863:63;;12818:118;12469:474;;;;;:::o;12949:182::-;13089:34;13085:1;13077:6;13073:14;13066:58;12949:182;:::o;13137:366::-;13279:3;13300:67;13364:2;13359:3;13300:67;:::i;:::-;13293:74;;13376:93;13465:3;13376:93;:::i;:::-;13494:2;13489:3;13485:12;13478:19;;13137:366;;;:::o;13509:419::-;13675:4;13713:2;13702:9;13698:18;13690:26;;13762:9;13756:4;13752:20;13748:1;13737:9;13733:17;13726:47;13790:131;13916:4;13790:131;:::i;:::-;13782:139;;13509:419;;;:::o;13934:180::-;13982:77;13979:1;13972:88;14079:4;14076:1;14069:15;14103:4;14100:1;14093:15;14120:180;14168:77;14165:1;14158:88;14265:4;14262:1;14255:15;14289:4;14286:1;14279:15;14306:233;14345:3;14368:24;14386:5;14368:24;:::i;:::-;14359:33;;14414:66;14407:5;14404:77;14401:103;;14484:18;;:::i;:::-;14401:103;14531:1;14524:5;14520:13;14513:20;;14306:233;;;:::o;14545:225::-;14685:34;14681:1;14673:6;14669:14;14662:58;14754:8;14749:2;14741:6;14737:15;14730:33;14545:225;:::o;14776:366::-;14918:3;14939:67;15003:2;14998:3;14939:67;:::i;:::-;14932:74;;15015:93;15104:3;15015:93;:::i;:::-;15133:2;15128:3;15124:12;15117:19;;14776:366;;;:::o;15148:419::-;15314:4;15352:2;15341:9;15337:18;15329:26;;15401:9;15395:4;15391:20;15387:1;15376:9;15372:17;15365:47;15429:131;15555:4;15429:131;:::i;:::-;15421:139;;15148:419;;;:::o;15573:223::-;15713:34;15709:1;15701:6;15697:14;15690:58;15782:6;15777:2;15769:6;15765:15;15758:31;15573:223;:::o;15802:366::-;15944:3;15965:67;16029:2;16024:3;15965:67;:::i;:::-;15958:74;;16041:93;16130:3;16041:93;:::i;:::-;16159:2;16154:3;16150:12;16143:19;;15802:366;;;:::o;16174:419::-;16340:4;16378:2;16367:9;16363:18;16355:26;;16427:9;16421:4;16417:20;16413:1;16402:9;16398:17;16391:47;16455:131;16581:4;16455:131;:::i;:::-;16447:139;;16174:419;;;:::o;16599:221::-;16739:34;16735:1;16727:6;16723:14;16716:58;16808:4;16803:2;16795:6;16791:15;16784:29;16599:221;:::o;16826:366::-;16968:3;16989:67;17053:2;17048:3;16989:67;:::i;:::-;16982:74;;17065:93;17154:3;17065:93;:::i;:::-;17183:2;17178:3;17174:12;17167:19;;16826:366;;;:::o;17198:419::-;17364:4;17402:2;17391:9;17387:18;17379:26;;17451:9;17445:4;17441:20;17437:1;17426:9;17422:17;17415:47;17479:131;17605:4;17479:131;:::i;:::-;17471:139;;17198:419;;;:::o;17623:224::-;17763:34;17759:1;17751:6;17747:14;17740:58;17832:7;17827:2;17819:6;17815:15;17808:32;17623:224;:::o;17853:366::-;17995:3;18016:67;18080:2;18075:3;18016:67;:::i;:::-;18009:74;;18092:93;18181:3;18092:93;:::i;:::-;18210:2;18205:3;18201:12;18194:19;;17853:366;;;:::o;18225:419::-;18391:4;18429:2;18418:9;18414:18;18406:26;;18478:9;18472:4;18468:20;18464:1;18453:9;18449:17;18442:47;18506:131;18632:4;18506:131;:::i;:::-;18498:139;;18225:419;;;:::o;18650:222::-;18790:34;18786:1;18778:6;18774:14;18767:58;18859:5;18854:2;18846:6;18842:15;18835:30;18650:222;:::o;18878:366::-;19020:3;19041:67;19105:2;19100:3;19041:67;:::i;:::-;19034:74;;19117:93;19206:3;19117:93;:::i;:::-;19235:2;19230:3;19226:12;19219:19;;18878:366;;;:::o;19250:419::-;19416:4;19454:2;19443:9;19439:18;19431:26;;19503:9;19497:4;19493:20;19489:1;19478:9;19474:17;19467:47;19531:131;19657:4;19531:131;:::i;:::-;19523:139;;19250:419;;;:::o;19675:228::-;19815:34;19811:1;19803:6;19799:14;19792:58;19884:11;19879:2;19871:6;19867:15;19860:36;19675:228;:::o;19909:366::-;20051:3;20072:67;20136:2;20131:3;20072:67;:::i;:::-;20065:74;;20148:93;20237:3;20148:93;:::i;:::-;20266:2;20261:3;20257:12;20250:19;;19909:366;;;:::o;20281:419::-;20447:4;20485:2;20474:9;20470:18;20462:26;;20534:9;20528:4;20524:20;20520:1;20509:9;20505:17;20498:47;20562:131;20688:4;20562:131;:::i;:::-;20554:139;;20281:419;;;:::o;20706:250::-;20846:34;20842:1;20834:6;20830:14;20823:58;20915:33;20910:2;20902:6;20898:15;20891:58;20706:250;:::o;20962:366::-;21104:3;21125:67;21189:2;21184:3;21125:67;:::i;:::-;21118:74;;21201:93;21290:3;21201:93;:::i;:::-;21319:2;21314:3;21310:12;21303:19;;20962:366;;;:::o;21334:419::-;21500:4;21538:2;21527:9;21523:18;21515:26;;21587:9;21581:4;21577:20;21573:1;21562:9;21558:17;21551:47;21615:131;21741:4;21615:131;:::i;:::-;21607:139;;21334:419;;;:::o;21759:178::-;21899:30;21895:1;21887:6;21883:14;21876:54;21759:178;:::o;21943:366::-;22085:3;22106:67;22170:2;22165:3;22106:67;:::i;:::-;22099:74;;22182:93;22271:3;22182:93;:::i;:::-;22300:2;22295:3;22291:12;22284:19;;21943:366;;;:::o;22315:419::-;22481:4;22519:2;22508:9;22504:18;22496:26;;22568:9;22562:4;22558:20;22554:1;22543:9;22539:17;22532:47;22596:131;22722:4;22596:131;:::i;:::-;22588:139;;22315:419;;;:::o;22740:222::-;22880:34;22876:1;22868:6;22864:14;22857:58;22949:5;22944:2;22936:6;22932:15;22925:30;22740:222;:::o;22968:366::-;23110:3;23131:67;23195:2;23190:3;23131:67;:::i;:::-;23124:74;;23207:93;23296:3;23207:93;:::i;:::-;23325:2;23320:3;23316:12;23309:19;;22968:366;;;:::o;23340:419::-;23506:4;23544:2;23533:9;23529:18;23521:26;;23593:9;23587:4;23583:20;23579:1;23568:9;23564:17;23557:47;23621:131;23747:4;23621:131;:::i;:::-;23613:139;;23340:419;;;:::o;23765:191::-;23805:3;23824:20;23842:1;23824:20;:::i;:::-;23819:25;;23858:20;23876:1;23858:20;:::i;:::-;23853:25;;23901:1;23898;23894:9;23887:16;;23922:3;23919:1;23916:10;23913:36;;;23929:18;;:::i;:::-;23913:36;23765:191;;;;:::o;23962:222::-;24102:34;24098:1;24090:6;24086:14;24079:58;24171:5;24166:2;24158:6;24154:15;24147:30;23962:222;:::o;24190:366::-;24332:3;24353:67;24417:2;24412:3;24353:67;:::i;:::-;24346:74;;24429:93;24518:3;24429:93;:::i;:::-;24547:2;24542:3;24538:12;24531:19;;24190:366;;;:::o;24562:419::-;24728:4;24766:2;24755:9;24751:18;24743:26;;24815:9;24809:4;24805:20;24801:1;24790:9;24786:17;24779:47;24843:131;24969:4;24843:131;:::i;:::-;24835:139;;24562:419;;;:::o;24987:194::-;25027:4;25047:20;25065:1;25047:20;:::i;:::-;25042:25;;25081:20;25099:1;25081:20;:::i;:::-;25076:25;;25125:1;25122;25118:9;25110:17;;25149:1;25143:4;25140:11;25137:37;;;25154:18;;:::i;:::-;25137:37;24987:194;;;;:::o;25187:229::-;25327:34;25323:1;25315:6;25311:14;25304:58;25396:12;25391:2;25383:6;25379:15;25372:37;25187:229;:::o;25422:366::-;25564:3;25585:67;25649:2;25644:3;25585:67;:::i;:::-;25578:74;;25661:93;25750:3;25661:93;:::i;:::-;25779:2;25774:3;25770:12;25763:19;;25422:366;;;:::o;25794:419::-;25960:4;25998:2;25987:9;25983:18;25975:26;;26047:9;26041:4;26037:20;26033:1;26022:9;26018:17;26011:47;26075:131;26201:4;26075:131;:::i;:::-;26067:139;;25794:419;;;:::o;26219:143::-;26276:5;26307:6;26301:13;26292:22;;26323:33;26350:5;26323:33;:::i;:::-;26219:143;;;;:::o;26368:351::-;26438:6;26487:2;26475:9;26466:7;26462:23;26458:32;26455:119;;;26493:79;;:::i;:::-;26455:119;26613:1;26638:64;26694:7;26685:6;26674:9;26670:22;26638:64;:::i;:::-;26628:74;;26584:128;26368:351;;;;:::o;26725:85::-;26770:7;26799:5;26788:16;;26725:85;;;:::o;26816:158::-;26874:9;26907:61;26925:42;26934:32;26960:5;26934:32;:::i;:::-;26925:42;:::i;:::-;26907:61;:::i;:::-;26894:74;;26816:158;;;:::o;26980:147::-;27075:45;27114:5;27075:45;:::i;:::-;27070:3;27063:58;26980:147;;:::o;27133:114::-;27200:6;27234:5;27228:12;27218:22;;27133:114;;;:::o;27253:184::-;27352:11;27386:6;27381:3;27374:19;27426:4;27421:3;27417:14;27402:29;;27253:184;;;;:::o;27443:132::-;27510:4;27533:3;27525:11;;27563:4;27558:3;27554:14;27546:22;;27443:132;;;:::o;27581:108::-;27658:24;27676:5;27658:24;:::i;:::-;27653:3;27646:37;27581:108;;:::o;27695:179::-;27764:10;27785:46;27827:3;27819:6;27785:46;:::i;:::-;27863:4;27858:3;27854:14;27840:28;;27695:179;;;;:::o;27880:113::-;27950:4;27982;27977:3;27973:14;27965:22;;27880:113;;;:::o;28029:732::-;28148:3;28177:54;28225:5;28177:54;:::i;:::-;28247:86;28326:6;28321:3;28247:86;:::i;:::-;28240:93;;28357:56;28407:5;28357:56;:::i;:::-;28436:7;28467:1;28452:284;28477:6;28474:1;28471:13;28452:284;;;28553:6;28547:13;28580:63;28639:3;28624:13;28580:63;:::i;:::-;28573:70;;28666:60;28719:6;28666:60;:::i;:::-;28656:70;;28512:224;28499:1;28496;28492:9;28487:14;;28452:284;;;28456:14;28752:3;28745:10;;28153:608;;;28029:732;;;;:::o;28767:831::-;29030:4;29068:3;29057:9;29053:19;29045:27;;29082:71;29150:1;29139:9;29135:17;29126:6;29082:71;:::i;:::-;29163:80;29239:2;29228:9;29224:18;29215:6;29163:80;:::i;:::-;29290:9;29284:4;29280:20;29275:2;29264:9;29260:18;29253:48;29318:108;29421:4;29412:6;29318:108;:::i;:::-;29310:116;;29436:72;29504:2;29493:9;29489:18;29480:6;29436:72;:::i;:::-;29518:73;29586:3;29575:9;29571:19;29562:6;29518:73;:::i;:::-;28767:831;;;;;;;;:::o;29604:180::-;29652:77;29649:1;29642:88;29749:4;29746:1;29739:15;29773:4;29770:1;29763:15;29790:185;29830:1;29847:20;29865:1;29847:20;:::i;:::-;29842:25;;29881:20;29899:1;29881:20;:::i;:::-;29876:25;;29920:1;29910:35;;29925:18;;:::i;:::-;29910:35;29967:1;29964;29960:9;29955:14;;29790:185;;;;:::o;29981:177::-;30121:29;30117:1;30109:6;30105:14;30098:53;29981:177;:::o;30164:366::-;30306:3;30327:67;30391:2;30386:3;30327:67;:::i;:::-;30320:74;;30403:93;30492:3;30403:93;:::i;:::-;30521:2;30516:3;30512:12;30505:19;;30164:366;;;:::o;30536:419::-;30702:4;30740:2;30729:9;30725:18;30717:26;;30789:9;30783:4;30779:20;30775:1;30764:9;30760:17;30753:47;30817:131;30943:4;30817:131;:::i;:::-;30809:139;;30536:419;;;:::o;30961:410::-;31001:7;31024:20;31042:1;31024:20;:::i;:::-;31019:25;;31058:20;31076:1;31058:20;:::i;:::-;31053:25;;31113:1;31110;31106:9;31135:30;31153:11;31135:30;:::i;:::-;31124:41;;31314:1;31305:7;31301:15;31298:1;31295:22;31275:1;31268:9;31248:83;31225:139;;31344:18;;:::i;:::-;31225:139;31009:362;30961:410;;;;:::o;31377:220::-;31517:34;31513:1;31505:6;31501:14;31494:58;31586:3;31581:2;31573:6;31569:15;31562:28;31377:220;:::o;31603:366::-;31745:3;31766:67;31830:2;31825:3;31766:67;:::i;:::-;31759:74;;31842:93;31931:3;31842:93;:::i;:::-;31960:2;31955:3;31951:12;31944:19;;31603:366;;;:::o;31975:419::-;32141:4;32179:2;32168:9;32164:18;32156:26;;32228:9;32222:4;32218:20;32214:1;32203:9;32199:17;32192:47;32256:131;32382:4;32256:131;:::i;:::-;32248:139;;31975:419;;;:::o

Swarm Source

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