ETH Price: $2,421.49 (+1.73%)

Token

Spiegel Inu (SPIKE)
 

Overview

Max Total Supply

500,000,000,000 SPIKE

Holders

28

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
153,210,167,861.450077619 SPIKE

Value
$0.00
0x1cb99073e61c315348d0fc04ce57f0d505451809
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:
SpiegelInu

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-24
*/

pragma solidity ^0.8.14;
// SPDX-License-Identifier: Unlicensed
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 SpiegelInu is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Spiegel Inu";
    string private constant _symbol = "SPIKE";
    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 = 500000000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 10;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 20;

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

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

    mapping(address => bool) public bots; 
    mapping (address => uint256) public _buyMap;
    mapping (address => bool) public preTrader;
    address private developmentAddress;
    address private marketingAddress;
    address private devFeeAddress1;
    address private devFeeAddress2;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = 7500000000 * 10**_decimals;
    uint256 public _maxWalletSize = 7500000000 * 10**_decimals;
    uint256 public _swapTokensAtAmount = 10000000 * 10**_decimals;

    struct Distribution {
        uint256 development;
        uint256 marketing;
        uint256 devFee;
    }

    Distribution public distribution;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(address developmentAddr, address marketingAddr, address devFeeAddr1, address devFeeAddr2) {
        developmentAddress = developmentAddr;
        marketingAddress = marketingAddr;
        devFeeAddress1 = devFeeAddr1;
        devFeeAddress2 = devFeeAddr2;
        _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[devFeeAddress1] = true;
        _isExcludedFromFee[devFeeAddress2] = true;
        _isExcludedFromFee[marketingAddress] = true;
        _isExcludedFromFee[developmentAddress] = true;

        distribution = Distribution(40, 40, 20);

        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() && !preTrader[from] && !preTrader[to]) {

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

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

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

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

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

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

        bool takeFee = true;

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

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

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

        }

        _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 lockTheSwap {
        uint256 distributionEth = amount;
        uint256 marketingShare = distributionEth.mul(distribution.marketing).div(100);
        uint256 devFeeShare = distributionEth.mul(distribution.devFee).div(100).div(2);
        uint256 developmentShare = distributionEth.mul(distribution.development).div(100);
        payable(marketingAddress).transfer(marketingShare);
        payable(devFeeAddress1).transfer(devFeeShare);
        payable(devFeeAddress2).transfer(devFeeShare);
        payable(developmentAddress).transfer(developmentShare);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == developmentAddress || _msgSender() == marketingAddress || _msgSender() == devFeeAddress1 || _msgSender() == devFeeAddress2);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == developmentAddress || _msgSender() == marketingAddress || _msgSender() == devFeeAddress1 || _msgSender() == devFeeAddress2);
        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 setDistribution(uint256 development, uint256 marketing, uint256 devFee) external onlyOwner {        
        distribution.development = development;
        distribution.marketing = marketing;
        distribution.devFee = devFee;
    }

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

   function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"developmentAddr","type":"address"},{"internalType":"address","name":"marketingAddr","type":"address"},{"internalType":"address","name":"devFeeAddr1","type":"address"},{"internalType":"address","name":"devFeeAddr2","type":"address"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","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":[],"name":"distribution","outputs":[{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"}],"name":"setDistribution","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"}]

60806040526009600a62000014919062000aa7565b64746a52880062000026919062000af8565b60001962000035919062000b88565b60001962000044919062000bc0565b6006556000600855600a6009556000600a556014600b55600a54600c55600b54600d55600c54600e55600d54600f556000601860156101000a81548160ff0219169083151502179055506001601860166101000a81548160ff0219169083151502179055506009600a620000b9919062000aa7565b6401bf08eb00620000cb919062000af8565b6019556009600a620000de919062000aa7565b6401bf08eb00620000f0919062000af8565b601a556009600a62000103919062000aa7565b6298968062000113919062000af8565b601b553480156200012357600080fd5b506040516200560838038062005608833981810160405281019062000149919062000c65565b60006200015b620008dc60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35083601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006546002600062000314620008dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041e919062000cd7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000486573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ac919062000cd7565b6040518363ffffffff1660e01b8152600401620004cb92919062000d1a565b6020604051808303816000875af1158015620004eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000511919062000cd7565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000567620008e460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550604051806060016040528060288152602001602881526020016014815250601c60008201518160000155602082015181600101556040820151816002015590505062000849620008dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620008a8919062000aa7565b64746a528800620008ba919062000af8565b604051620008c9919062000d58565b60405180910390a3505050505062000d75565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200099b578086048111156200097357620009726200090d565b5b6001851615620009835780820291505b808102905062000993856200093c565b945062000953565b94509492505050565b600082620009b6576001905062000a89565b81620009c6576000905062000a89565b8160018114620009df5760028114620009ea5762000a20565b600191505062000a89565b60ff841115620009ff57620009fe6200090d565b5b8360020a91508482111562000a195762000a186200090d565b5b5062000a89565b5060208310610133831016604e8410600b841016171562000a5a5782820a90508381111562000a545762000a536200090d565b5b62000a89565b62000a69848484600162000949565b9250905081840481111562000a835762000a826200090d565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ab48262000a90565b915062000ac18362000a9a565b925062000af07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009a4565b905092915050565b600062000b058262000a90565b915062000b128362000a90565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b4e5762000b4d6200090d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b958262000a90565b915062000ba28362000a90565b92508262000bb55762000bb462000b59565b5b828206905092915050565b600062000bcd8262000a90565b915062000bda8362000a90565b92508282101562000bf05762000bef6200090d565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c2d8262000c00565b9050919050565b62000c3f8162000c20565b811462000c4b57600080fd5b50565b60008151905062000c5f8162000c34565b92915050565b6000806000806080858703121562000c825762000c8162000bfb565b5b600062000c928782880162000c4e565b945050602062000ca58782880162000c4e565b935050604062000cb88782880162000c4e565b925050606062000ccb8782880162000c4e565b91505092959194509250565b60006020828403121562000cf05762000cef62000bfb565b5b600062000d008482850162000c4e565b91505092915050565b62000d148162000c20565b82525050565b600060408201905062000d31600083018562000d09565b62000d40602083018462000d09565b9392505050565b62000d528162000a90565b82525050565b600060208201905062000d6f600083018462000d47565b92915050565b6148838062000d856000396000f3fe6080604052600436106101fc5760003560e01c806374010ece1161010d578063a2a957bb116100a0578063c3c8cd801161006f578063c3c8cd801461072d578063c492f04614610744578063dd62ed3e1461076d578063ea1644d5146107aa578063f2fde38b146107d357610203565b8063a2a957bb1461064d578063a9059cbb14610676578063bdd795ef146106b3578063bfd79284146106f057610203565b80638f70ccf7116100dc5780638f70ccf7146105a55780638f9a55c0146105ce57806395d89b41146105f957806398a5c3151461062457610203565b806374010ece146104e95780637d1db4a5146105125780637f2feddc1461053d5780638da5cb5b1461057a57610203565b8063313ce567116101905780636d8aa8f81161015f5780636d8aa8f81461042c5780636f343052146104555780636fc3eaec1461047e57806370a0823114610495578063715018a6146104d257610203565b8063313ce5671461038057806349bd5a5e146103ab5780635ee58efc146103d65780636b9990531461040357610203565b806318160ddd116101cc57806318160ddd146102c457806323b872dd146102ef5780632f9c45691461032c5780632fd689e31461035557610203565b8062b8cf2a1461020857806306fdde0314610231578063095ea7b31461025c5780631694505e1461029957610203565b3661020357005b600080fd5b34801561021457600080fd5b5061022f600480360381019061022a919061355c565b6107fc565b005b34801561023d57600080fd5b50610246610926565b604051610253919061362d565b60405180910390f35b34801561026857600080fd5b50610283600480360381019061027e9190613685565b610963565b60405161029091906136e0565b60405180910390f35b3480156102a557600080fd5b506102ae610981565b6040516102bb919061375a565b60405180910390f35b3480156102d057600080fd5b506102d96109a7565b6040516102e69190613784565b60405180910390f35b3480156102fb57600080fd5b506103166004803603810190610311919061379f565b6109cc565b60405161032391906136e0565b60405180910390f35b34801561033857600080fd5b50610353600480360381019061034e919061381e565b610aa5565b005b34801561036157600080fd5b5061036a610c27565b6040516103779190613784565b60405180910390f35b34801561038c57600080fd5b50610395610c2d565b6040516103a2919061387a565b60405180910390f35b3480156103b757600080fd5b506103c0610c36565b6040516103cd91906138a4565b60405180910390f35b3480156103e257600080fd5b506103eb610c5c565b6040516103fa939291906138bf565b60405180910390f35b34801561040f57600080fd5b5061042a600480360381019061042591906138f6565b610c74565b005b34801561043857600080fd5b50610453600480360381019061044e9190613923565b610d64565b005b34801561046157600080fd5b5061047c60048036038101906104779190613950565b610e16565b005b34801561048a57600080fd5b50610493610ece565b005b3480156104a157600080fd5b506104bc60048036038101906104b791906138f6565b61105d565b6040516104c99190613784565b60405180910390f35b3480156104de57600080fd5b506104e76110ae565b005b3480156104f557600080fd5b50610510600480360381019061050b91906139a3565b611201565b005b34801561051e57600080fd5b506105276112a0565b6040516105349190613784565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f91906138f6565b6112a6565b6040516105719190613784565b60405180910390f35b34801561058657600080fd5b5061058f6112be565b60405161059c91906138a4565b60405180910390f35b3480156105b157600080fd5b506105cc60048036038101906105c79190613923565b6112e7565b005b3480156105da57600080fd5b506105e3611399565b6040516105f09190613784565b60405180910390f35b34801561060557600080fd5b5061060e61139f565b60405161061b919061362d565b60405180910390f35b34801561063057600080fd5b5061064b600480360381019061064691906139a3565b6113dc565b005b34801561065957600080fd5b50610674600480360381019061066f91906139d0565b61147b565b005b34801561068257600080fd5b5061069d60048036038101906106989190613685565b611532565b6040516106aa91906136e0565b60405180910390f35b3480156106bf57600080fd5b506106da60048036038101906106d591906138f6565b611550565b6040516106e791906136e0565b60405180910390f35b3480156106fc57600080fd5b50610717600480360381019061071291906138f6565b611570565b60405161072491906136e0565b60405180910390f35b34801561073957600080fd5b50610742611590565b005b34801561075057600080fd5b5061076b60048036038101906107669190613a92565b611727565b005b34801561077957600080fd5b50610794600480360381019061078f9190613af2565b611861565b6040516107a19190613784565b60405180910390f35b3480156107b657600080fd5b506107d160048036038101906107cc91906139a3565b6118e8565b005b3480156107df57600080fd5b506107fa60048036038101906107f591906138f6565b611987565b005b610804611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088890613b7e565b60405180910390fd5b60005b8151811015610922576001601060008484815181106108b6576108b5613b9e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061091a90613bfc565b915050610894565b5050565b60606040518060400160405280600b81526020017f5370696567656c20496e75000000000000000000000000000000000000000000815250905090565b6000610977610970611b48565b8484611b50565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6109b79190613d77565b64746a5288006109c79190613dc2565b905090565b60006109d9848484611d19565b610a9a846109e5611b48565b610a958560405180606001604052806028815260200161482660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a4b611b48565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126619092919063ffffffff16565b611b50565b600190509392505050565b610aad611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3190613b7e565b60405180910390fd5b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc390613e68565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b5481565b60006009905090565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c8060000154908060010154908060020154905083565b610c7c611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0090613b7e565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d6c611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090613b7e565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b610e1e611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea290613b7e565b60405180910390fd5b82601c6000018190555081601c6001018190555080601c60020181905550505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f0f611b48565b73ffffffffffffffffffffffffffffffffffffffff161480610f855750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f6d611b48565b73ffffffffffffffffffffffffffffffffffffffff16145b80610fe45750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fcc611b48565b73ffffffffffffffffffffffffffffffffffffffff16145b806110435750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661102b611b48565b73ffffffffffffffffffffffffffffffffffffffff16145b61104c57600080fd5b600047905061105a816126c5565b50565b60006110a7600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294b565b9050919050565b6110b6611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113a90613b7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611209611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128d90613b7e565b60405180910390fd5b8060198190555050565b60195481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112ef611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137390613b7e565b60405180910390fd5b80601860146101000a81548160ff02191690831515021790555050565b601a5481565b60606040518060400160405280600581526020017f5350494b45000000000000000000000000000000000000000000000000000000815250905090565b6113e4611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611471576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146890613b7e565b60405180910390fd5b80601b8190555050565b611483611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150790613b7e565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061154661153f611b48565b8484611d19565b6001905092915050565b60126020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115d1611b48565b73ffffffffffffffffffffffffffffffffffffffff1614806116475750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661162f611b48565b73ffffffffffffffffffffffffffffffffffffffff16145b806116a65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661168e611b48565b73ffffffffffffffffffffffffffffffffffffffff16145b806117055750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116ed611b48565b73ffffffffffffffffffffffffffffffffffffffff16145b61170e57600080fd5b60006117193061105d565b9050611724816129b9565b50565b61172f611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b390613b7e565b60405180910390fd5b60005b8383905081101561185b5781600560008686858181106117e2576117e1613b9e565b5b90506020020160208101906117f791906138f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061185390613bfc565b9150506117bf565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118f0611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490613b7e565b60405180910390fd5b80601a8190555050565b61198f611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1390613b7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8290613efa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb690613f8c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c259061401e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d0c9190613784565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7f906140b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dee90614142565b60405180910390fd5b60008111611e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e31906141d4565b60405180910390fd5b611e426112be565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611eb05750611e806112be565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f065750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f5c5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561236057601860149054906101000a900460ff1661200257601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff890614266565b60405180910390fd5b5b601954811115612047576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203e906142d2565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120eb5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61212a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212190614364565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121d757601a548161218c8461105d565b6121969190614384565b106121d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cd9061444c565b60405180910390fd5b5b60006121e23061105d565b90506000601b54821015905060195482106121fd5760195491505b8080156122175750601860159054906101000a900460ff16155b80156122715750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122895750601860169054906101000a900460ff165b80156122df5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123355750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561235d57612343826129b9565b6000479050600081111561235b5761235a476126c5565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124075750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124ba5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156124b95750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156124c8576000905061264f565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156125735750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561258b57600854600c81905550600954600d819055505b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126365750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561264e57600a54600c81905550600b54600d819055505b5b61265b84848484612c32565b50505050565b60008383111582906126a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a0919061362d565b60405180910390fd5b50600083856126b8919061446c565b9050809150509392505050565b6001601860156101000a81548160ff021916908315150217905550600081905060006127126064612704601c6001015485612c5f90919063ffffffff16565b612cd990919063ffffffff16565b9050600061275460026127466064612738601c6002015488612c5f90919063ffffffff16565b612cd990919063ffffffff16565b612cd990919063ffffffff16565b905060006127836064612775601c6000015487612c5f90919063ffffffff16565b612cd990919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156127ed573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612856573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156128bf573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612928573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b6000600654821115612992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298990614512565b60405180910390fd5b600061299c612d23565b90506129b18184612cd990919063ffffffff16565b915050919050565b6001601860156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156129f1576129f06133bb565b5b604051908082528060200260200182016040528015612a1f5781602001602082028036833780820191505090505b5090503081600081518110612a3757612a36613b9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ade573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b029190614547565b81600181518110612b1657612b15613b9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b7d30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b50565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612be195949392919061466d565b600060405180830381600087803b158015612bfb57600080fd5b505af1158015612c0f573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b80612c4057612c3f612d4e565b5b612c4b848484612d8b565b80612c5957612c58612f56565b5b50505050565b6000808303612c715760009050612cd3565b60008284612c7f9190613dc2565b9050828482612c8e91906146f6565b14612cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc590614799565b60405180910390fd5b809150505b92915050565b6000612d1b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f6a565b905092915050565b6000806000612d30612fcd565b91509150612d478183612cd990919063ffffffff16565b9250505090565b6000600c54148015612d6257506000600d54145b612d8957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612d9d8761306b565b955095509550955095509550612dfb86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130d390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e9085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461311d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612edc8161317b565b612ee68483613238565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612f439190613784565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa8919061362d565b60405180910390fd5b5060008385612fc091906146f6565b9050809150509392505050565b6000806000600654905060006009600a612fe79190613d77565b64746a528800612ff79190613dc2565b905061302b6009600a61300a9190613d77565b64746a52880061301a9190613dc2565b600654612cd990919063ffffffff16565b82101561305e576006546009600a6130439190613d77565b64746a5288006130539190613dc2565b935093505050613067565b81819350935050505b9091565b60008060008060008060008060006130888a600c54600d54613272565b9250925092506000613098612d23565b905060008060006130ab8e878787613308565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061311583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612661565b905092915050565b600080828461312c9190614384565b905083811015613171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316890614805565b60405180910390fd5b8091505092915050565b6000613185612d23565b9050600061319c8284612c5f90919063ffffffff16565b90506131f081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461311d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61324d826006546130d390919063ffffffff16565b6006819055506132688160075461311d90919063ffffffff16565b6007819055505050565b60008060008061329e6064613290888a612c5f90919063ffffffff16565b612cd990919063ffffffff16565b905060006132c860646132ba888b612c5f90919063ffffffff16565b612cd990919063ffffffff16565b905060006132f1826132e3858c6130d390919063ffffffff16565b6130d390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806133218589612c5f90919063ffffffff16565b905060006133388689612c5f90919063ffffffff16565b9050600061334f8789612c5f90919063ffffffff16565b905060006133788261336a85876130d390919063ffffffff16565b6130d390919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6133f3826133aa565b810181811067ffffffffffffffff82111715613412576134116133bb565b5b80604052505050565b6000613425613391565b905061343182826133ea565b919050565b600067ffffffffffffffff821115613451576134506133bb565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061349282613467565b9050919050565b6134a281613487565b81146134ad57600080fd5b50565b6000813590506134bf81613499565b92915050565b60006134d86134d384613436565b61341b565b905080838252602082019050602084028301858111156134fb576134fa613462565b5b835b81811015613524578061351088826134b0565b8452602084019350506020810190506134fd565b5050509392505050565b600082601f830112613543576135426133a5565b5b81356135538482602086016134c5565b91505092915050565b6000602082840312156135725761357161339b565b5b600082013567ffffffffffffffff8111156135905761358f6133a0565b5b61359c8482850161352e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135df5780820151818401526020810190506135c4565b838111156135ee576000848401525b50505050565b60006135ff826135a5565b61360981856135b0565b93506136198185602086016135c1565b613622816133aa565b840191505092915050565b6000602082019050818103600083015261364781846135f4565b905092915050565b6000819050919050565b6136628161364f565b811461366d57600080fd5b50565b60008135905061367f81613659565b92915050565b6000806040838503121561369c5761369b61339b565b5b60006136aa858286016134b0565b92505060206136bb85828601613670565b9150509250929050565b60008115159050919050565b6136da816136c5565b82525050565b60006020820190506136f560008301846136d1565b92915050565b6000819050919050565b600061372061371b61371684613467565b6136fb565b613467565b9050919050565b600061373282613705565b9050919050565b600061374482613727565b9050919050565b61375481613739565b82525050565b600060208201905061376f600083018461374b565b92915050565b61377e8161364f565b82525050565b60006020820190506137996000830184613775565b92915050565b6000806000606084860312156137b8576137b761339b565b5b60006137c6868287016134b0565b93505060206137d7868287016134b0565b92505060406137e886828701613670565b9150509250925092565b6137fb816136c5565b811461380657600080fd5b50565b600081359050613818816137f2565b92915050565b600080604083850312156138355761383461339b565b5b6000613843858286016134b0565b925050602061385485828601613809565b9150509250929050565b600060ff82169050919050565b6138748161385e565b82525050565b600060208201905061388f600083018461386b565b92915050565b61389e81613487565b82525050565b60006020820190506138b96000830184613895565b92915050565b60006060820190506138d46000830186613775565b6138e16020830185613775565b6138ee6040830184613775565b949350505050565b60006020828403121561390c5761390b61339b565b5b600061391a848285016134b0565b91505092915050565b6000602082840312156139395761393861339b565b5b600061394784828501613809565b91505092915050565b6000806000606084860312156139695761396861339b565b5b600061397786828701613670565b935050602061398886828701613670565b925050604061399986828701613670565b9150509250925092565b6000602082840312156139b9576139b861339b565b5b60006139c784828501613670565b91505092915050565b600080600080608085870312156139ea576139e961339b565b5b60006139f887828801613670565b9450506020613a0987828801613670565b9350506040613a1a87828801613670565b9250506060613a2b87828801613670565b91505092959194509250565b600080fd5b60008083601f840112613a5257613a516133a5565b5b8235905067ffffffffffffffff811115613a6f57613a6e613a37565b5b602083019150836020820283011115613a8b57613a8a613462565b5b9250929050565b600080600060408486031215613aab57613aaa61339b565b5b600084013567ffffffffffffffff811115613ac957613ac86133a0565b5b613ad586828701613a3c565b93509350506020613ae886828701613809565b9150509250925092565b60008060408385031215613b0957613b0861339b565b5b6000613b17858286016134b0565b9250506020613b28858286016134b0565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b686020836135b0565b9150613b7382613b32565b602082019050919050565b60006020820190508181036000830152613b9781613b5b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c078261364f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c3957613c38613bcd565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115613c9b57808604811115613c7757613c76613bcd565b5b6001851615613c865780820291505b8081029050613c9485613c44565b9450613c5b565b94509492505050565b600082613cb45760019050613d70565b81613cc25760009050613d70565b8160018114613cd85760028114613ce257613d11565b6001915050613d70565b60ff841115613cf457613cf3613bcd565b5b8360020a915084821115613d0b57613d0a613bcd565b5b50613d70565b5060208310610133831016604e8410600b8410161715613d465782820a905083811115613d4157613d40613bcd565b5b613d70565b613d538484846001613c51565b92509050818404811115613d6a57613d69613bcd565b5b81810290505b9392505050565b6000613d828261364f565b9150613d8d8361385e565b9250613dba7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613ca4565b905092915050565b6000613dcd8261364f565b9150613dd88361364f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e1157613e10613bcd565b5b828202905092915050565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b6000613e526017836135b0565b9150613e5d82613e1c565b602082019050919050565b60006020820190508181036000830152613e8181613e45565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ee46026836135b0565b9150613eef82613e88565b604082019050919050565b60006020820190508181036000830152613f1381613ed7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f766024836135b0565b9150613f8182613f1a565b604082019050919050565b60006020820190508181036000830152613fa581613f69565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140086022836135b0565b915061401382613fac565b604082019050919050565b6000602082019050818103600083015261403781613ffb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061409a6025836135b0565b91506140a58261403e565b604082019050919050565b600060208201905081810360008301526140c98161408d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061412c6023836135b0565b9150614137826140d0565b604082019050919050565b6000602082019050818103600083015261415b8161411f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006141be6029836135b0565b91506141c982614162565b604082019050919050565b600060208201905081810360008301526141ed816141b1565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000614250603f836135b0565b915061425b826141f4565b604082019050919050565b6000602082019050818103600083015261427f81614243565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006142bc601c836135b0565b91506142c782614286565b602082019050919050565b600060208201905081810360008301526142eb816142af565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061434e6023836135b0565b9150614359826142f2565b604082019050919050565b6000602082019050818103600083015261437d81614341565b9050919050565b600061438f8261364f565b915061439a8361364f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143cf576143ce613bcd565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006144366023836135b0565b9150614441826143da565b604082019050919050565b6000602082019050818103600083015261446581614429565b9050919050565b60006144778261364f565b91506144828361364f565b92508282101561449557614494613bcd565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006144fc602a836135b0565b9150614507826144a0565b604082019050919050565b6000602082019050818103600083015261452b816144ef565b9050919050565b60008151905061454181613499565b92915050565b60006020828403121561455d5761455c61339b565b5b600061456b84828501614532565b91505092915050565b6000819050919050565b600061459961459461458f84614574565b6136fb565b61364f565b9050919050565b6145a98161457e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6145e481613487565b82525050565b60006145f683836145db565b60208301905092915050565b6000602082019050919050565b600061461a826145af565b61462481856145ba565b935061462f836145cb565b8060005b8381101561466057815161464788826145ea565b975061465283614602565b925050600181019050614633565b5085935050505092915050565b600060a0820190506146826000830188613775565b61468f60208301876145a0565b81810360408301526146a1818661460f565b90506146b06060830185613895565b6146bd6080830184613775565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147018261364f565b915061470c8361364f565b92508261471c5761471b6146c7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006147836021836135b0565b915061478e82614727565b604082019050919050565b600060208201905081810360008301526147b281614776565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006147ef601b836135b0565b91506147fa826147b9565b602082019050919050565b6000602082019050818103600083015261481e816147e2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208a2f9a09f5e9e59608e62558f63bf62b90a619db1e2594d4258796cefd21e2fe64736f6c634300080e0033000000000000000000000000eb69774f05e3a34b41706892abf0ce70fc6cbdec000000000000000000000000ea509be1ae223b61b77e323e25c4fed2069cd3f000000000000000000000000052a4343d5d5d539028f927a090a3d6a359bc687a00000000000000000000000018c18c4bf8ac39363fe9bf21e3c89baa6b5193e0

Deployed Bytecode

0x6080604052600436106101fc5760003560e01c806374010ece1161010d578063a2a957bb116100a0578063c3c8cd801161006f578063c3c8cd801461072d578063c492f04614610744578063dd62ed3e1461076d578063ea1644d5146107aa578063f2fde38b146107d357610203565b8063a2a957bb1461064d578063a9059cbb14610676578063bdd795ef146106b3578063bfd79284146106f057610203565b80638f70ccf7116100dc5780638f70ccf7146105a55780638f9a55c0146105ce57806395d89b41146105f957806398a5c3151461062457610203565b806374010ece146104e95780637d1db4a5146105125780637f2feddc1461053d5780638da5cb5b1461057a57610203565b8063313ce567116101905780636d8aa8f81161015f5780636d8aa8f81461042c5780636f343052146104555780636fc3eaec1461047e57806370a0823114610495578063715018a6146104d257610203565b8063313ce5671461038057806349bd5a5e146103ab5780635ee58efc146103d65780636b9990531461040357610203565b806318160ddd116101cc57806318160ddd146102c457806323b872dd146102ef5780632f9c45691461032c5780632fd689e31461035557610203565b8062b8cf2a1461020857806306fdde0314610231578063095ea7b31461025c5780631694505e1461029957610203565b3661020357005b600080fd5b34801561021457600080fd5b5061022f600480360381019061022a919061355c565b6107fc565b005b34801561023d57600080fd5b50610246610926565b604051610253919061362d565b60405180910390f35b34801561026857600080fd5b50610283600480360381019061027e9190613685565b610963565b60405161029091906136e0565b60405180910390f35b3480156102a557600080fd5b506102ae610981565b6040516102bb919061375a565b60405180910390f35b3480156102d057600080fd5b506102d96109a7565b6040516102e69190613784565b60405180910390f35b3480156102fb57600080fd5b506103166004803603810190610311919061379f565b6109cc565b60405161032391906136e0565b60405180910390f35b34801561033857600080fd5b50610353600480360381019061034e919061381e565b610aa5565b005b34801561036157600080fd5b5061036a610c27565b6040516103779190613784565b60405180910390f35b34801561038c57600080fd5b50610395610c2d565b6040516103a2919061387a565b60405180910390f35b3480156103b757600080fd5b506103c0610c36565b6040516103cd91906138a4565b60405180910390f35b3480156103e257600080fd5b506103eb610c5c565b6040516103fa939291906138bf565b60405180910390f35b34801561040f57600080fd5b5061042a600480360381019061042591906138f6565b610c74565b005b34801561043857600080fd5b50610453600480360381019061044e9190613923565b610d64565b005b34801561046157600080fd5b5061047c60048036038101906104779190613950565b610e16565b005b34801561048a57600080fd5b50610493610ece565b005b3480156104a157600080fd5b506104bc60048036038101906104b791906138f6565b61105d565b6040516104c99190613784565b60405180910390f35b3480156104de57600080fd5b506104e76110ae565b005b3480156104f557600080fd5b50610510600480360381019061050b91906139a3565b611201565b005b34801561051e57600080fd5b506105276112a0565b6040516105349190613784565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f91906138f6565b6112a6565b6040516105719190613784565b60405180910390f35b34801561058657600080fd5b5061058f6112be565b60405161059c91906138a4565b60405180910390f35b3480156105b157600080fd5b506105cc60048036038101906105c79190613923565b6112e7565b005b3480156105da57600080fd5b506105e3611399565b6040516105f09190613784565b60405180910390f35b34801561060557600080fd5b5061060e61139f565b60405161061b919061362d565b60405180910390f35b34801561063057600080fd5b5061064b600480360381019061064691906139a3565b6113dc565b005b34801561065957600080fd5b50610674600480360381019061066f91906139d0565b61147b565b005b34801561068257600080fd5b5061069d60048036038101906106989190613685565b611532565b6040516106aa91906136e0565b60405180910390f35b3480156106bf57600080fd5b506106da60048036038101906106d591906138f6565b611550565b6040516106e791906136e0565b60405180910390f35b3480156106fc57600080fd5b50610717600480360381019061071291906138f6565b611570565b60405161072491906136e0565b60405180910390f35b34801561073957600080fd5b50610742611590565b005b34801561075057600080fd5b5061076b60048036038101906107669190613a92565b611727565b005b34801561077957600080fd5b50610794600480360381019061078f9190613af2565b611861565b6040516107a19190613784565b60405180910390f35b3480156107b657600080fd5b506107d160048036038101906107cc91906139a3565b6118e8565b005b3480156107df57600080fd5b506107fa60048036038101906107f591906138f6565b611987565b005b610804611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088890613b7e565b60405180910390fd5b60005b8151811015610922576001601060008484815181106108b6576108b5613b9e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061091a90613bfc565b915050610894565b5050565b60606040518060400160405280600b81526020017f5370696567656c20496e75000000000000000000000000000000000000000000815250905090565b6000610977610970611b48565b8484611b50565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6109b79190613d77565b64746a5288006109c79190613dc2565b905090565b60006109d9848484611d19565b610a9a846109e5611b48565b610a958560405180606001604052806028815260200161482660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a4b611b48565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126619092919063ffffffff16565b611b50565b600190509392505050565b610aad611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3190613b7e565b60405180910390fd5b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc390613e68565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b5481565b60006009905090565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c8060000154908060010154908060020154905083565b610c7c611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0090613b7e565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d6c611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090613b7e565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b610e1e611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea290613b7e565b60405180910390fd5b82601c6000018190555081601c6001018190555080601c60020181905550505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f0f611b48565b73ffffffffffffffffffffffffffffffffffffffff161480610f855750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f6d611b48565b73ffffffffffffffffffffffffffffffffffffffff16145b80610fe45750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fcc611b48565b73ffffffffffffffffffffffffffffffffffffffff16145b806110435750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661102b611b48565b73ffffffffffffffffffffffffffffffffffffffff16145b61104c57600080fd5b600047905061105a816126c5565b50565b60006110a7600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294b565b9050919050565b6110b6611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113a90613b7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611209611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128d90613b7e565b60405180910390fd5b8060198190555050565b60195481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112ef611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137390613b7e565b60405180910390fd5b80601860146101000a81548160ff02191690831515021790555050565b601a5481565b60606040518060400160405280600581526020017f5350494b45000000000000000000000000000000000000000000000000000000815250905090565b6113e4611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611471576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146890613b7e565b60405180910390fd5b80601b8190555050565b611483611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150790613b7e565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061154661153f611b48565b8484611d19565b6001905092915050565b60126020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115d1611b48565b73ffffffffffffffffffffffffffffffffffffffff1614806116475750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661162f611b48565b73ffffffffffffffffffffffffffffffffffffffff16145b806116a65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661168e611b48565b73ffffffffffffffffffffffffffffffffffffffff16145b806117055750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116ed611b48565b73ffffffffffffffffffffffffffffffffffffffff16145b61170e57600080fd5b60006117193061105d565b9050611724816129b9565b50565b61172f611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b390613b7e565b60405180910390fd5b60005b8383905081101561185b5781600560008686858181106117e2576117e1613b9e565b5b90506020020160208101906117f791906138f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061185390613bfc565b9150506117bf565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118f0611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490613b7e565b60405180910390fd5b80601a8190555050565b61198f611b48565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1390613b7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8290613efa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb690613f8c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c259061401e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d0c9190613784565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7f906140b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dee90614142565b60405180910390fd5b60008111611e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e31906141d4565b60405180910390fd5b611e426112be565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611eb05750611e806112be565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f065750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f5c5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561236057601860149054906101000a900460ff1661200257601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff890614266565b60405180910390fd5b5b601954811115612047576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203e906142d2565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120eb5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61212a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212190614364565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121d757601a548161218c8461105d565b6121969190614384565b106121d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cd9061444c565b60405180910390fd5b5b60006121e23061105d565b90506000601b54821015905060195482106121fd5760195491505b8080156122175750601860159054906101000a900460ff16155b80156122715750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122895750601860169054906101000a900460ff165b80156122df5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123355750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561235d57612343826129b9565b6000479050600081111561235b5761235a476126c5565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124075750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124ba5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156124b95750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156124c8576000905061264f565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156125735750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561258b57600854600c81905550600954600d819055505b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126365750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561264e57600a54600c81905550600b54600d819055505b5b61265b84848484612c32565b50505050565b60008383111582906126a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a0919061362d565b60405180910390fd5b50600083856126b8919061446c565b9050809150509392505050565b6001601860156101000a81548160ff021916908315150217905550600081905060006127126064612704601c6001015485612c5f90919063ffffffff16565b612cd990919063ffffffff16565b9050600061275460026127466064612738601c6002015488612c5f90919063ffffffff16565b612cd990919063ffffffff16565b612cd990919063ffffffff16565b905060006127836064612775601c6000015487612c5f90919063ffffffff16565b612cd990919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156127ed573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612856573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156128bf573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612928573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b6000600654821115612992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298990614512565b60405180910390fd5b600061299c612d23565b90506129b18184612cd990919063ffffffff16565b915050919050565b6001601860156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156129f1576129f06133bb565b5b604051908082528060200260200182016040528015612a1f5781602001602082028036833780820191505090505b5090503081600081518110612a3757612a36613b9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ade573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b029190614547565b81600181518110612b1657612b15613b9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b7d30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b50565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612be195949392919061466d565b600060405180830381600087803b158015612bfb57600080fd5b505af1158015612c0f573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b80612c4057612c3f612d4e565b5b612c4b848484612d8b565b80612c5957612c58612f56565b5b50505050565b6000808303612c715760009050612cd3565b60008284612c7f9190613dc2565b9050828482612c8e91906146f6565b14612cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc590614799565b60405180910390fd5b809150505b92915050565b6000612d1b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f6a565b905092915050565b6000806000612d30612fcd565b91509150612d478183612cd990919063ffffffff16565b9250505090565b6000600c54148015612d6257506000600d54145b612d8957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612d9d8761306b565b955095509550955095509550612dfb86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130d390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e9085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461311d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612edc8161317b565b612ee68483613238565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612f439190613784565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa8919061362d565b60405180910390fd5b5060008385612fc091906146f6565b9050809150509392505050565b6000806000600654905060006009600a612fe79190613d77565b64746a528800612ff79190613dc2565b905061302b6009600a61300a9190613d77565b64746a52880061301a9190613dc2565b600654612cd990919063ffffffff16565b82101561305e576006546009600a6130439190613d77565b64746a5288006130539190613dc2565b935093505050613067565b81819350935050505b9091565b60008060008060008060008060006130888a600c54600d54613272565b9250925092506000613098612d23565b905060008060006130ab8e878787613308565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061311583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612661565b905092915050565b600080828461312c9190614384565b905083811015613171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316890614805565b60405180910390fd5b8091505092915050565b6000613185612d23565b9050600061319c8284612c5f90919063ffffffff16565b90506131f081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461311d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61324d826006546130d390919063ffffffff16565b6006819055506132688160075461311d90919063ffffffff16565b6007819055505050565b60008060008061329e6064613290888a612c5f90919063ffffffff16565b612cd990919063ffffffff16565b905060006132c860646132ba888b612c5f90919063ffffffff16565b612cd990919063ffffffff16565b905060006132f1826132e3858c6130d390919063ffffffff16565b6130d390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806133218589612c5f90919063ffffffff16565b905060006133388689612c5f90919063ffffffff16565b9050600061334f8789612c5f90919063ffffffff16565b905060006133788261336a85876130d390919063ffffffff16565b6130d390919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6133f3826133aa565b810181811067ffffffffffffffff82111715613412576134116133bb565b5b80604052505050565b6000613425613391565b905061343182826133ea565b919050565b600067ffffffffffffffff821115613451576134506133bb565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061349282613467565b9050919050565b6134a281613487565b81146134ad57600080fd5b50565b6000813590506134bf81613499565b92915050565b60006134d86134d384613436565b61341b565b905080838252602082019050602084028301858111156134fb576134fa613462565b5b835b81811015613524578061351088826134b0565b8452602084019350506020810190506134fd565b5050509392505050565b600082601f830112613543576135426133a5565b5b81356135538482602086016134c5565b91505092915050565b6000602082840312156135725761357161339b565b5b600082013567ffffffffffffffff8111156135905761358f6133a0565b5b61359c8482850161352e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135df5780820151818401526020810190506135c4565b838111156135ee576000848401525b50505050565b60006135ff826135a5565b61360981856135b0565b93506136198185602086016135c1565b613622816133aa565b840191505092915050565b6000602082019050818103600083015261364781846135f4565b905092915050565b6000819050919050565b6136628161364f565b811461366d57600080fd5b50565b60008135905061367f81613659565b92915050565b6000806040838503121561369c5761369b61339b565b5b60006136aa858286016134b0565b92505060206136bb85828601613670565b9150509250929050565b60008115159050919050565b6136da816136c5565b82525050565b60006020820190506136f560008301846136d1565b92915050565b6000819050919050565b600061372061371b61371684613467565b6136fb565b613467565b9050919050565b600061373282613705565b9050919050565b600061374482613727565b9050919050565b61375481613739565b82525050565b600060208201905061376f600083018461374b565b92915050565b61377e8161364f565b82525050565b60006020820190506137996000830184613775565b92915050565b6000806000606084860312156137b8576137b761339b565b5b60006137c6868287016134b0565b93505060206137d7868287016134b0565b92505060406137e886828701613670565b9150509250925092565b6137fb816136c5565b811461380657600080fd5b50565b600081359050613818816137f2565b92915050565b600080604083850312156138355761383461339b565b5b6000613843858286016134b0565b925050602061385485828601613809565b9150509250929050565b600060ff82169050919050565b6138748161385e565b82525050565b600060208201905061388f600083018461386b565b92915050565b61389e81613487565b82525050565b60006020820190506138b96000830184613895565b92915050565b60006060820190506138d46000830186613775565b6138e16020830185613775565b6138ee6040830184613775565b949350505050565b60006020828403121561390c5761390b61339b565b5b600061391a848285016134b0565b91505092915050565b6000602082840312156139395761393861339b565b5b600061394784828501613809565b91505092915050565b6000806000606084860312156139695761396861339b565b5b600061397786828701613670565b935050602061398886828701613670565b925050604061399986828701613670565b9150509250925092565b6000602082840312156139b9576139b861339b565b5b60006139c784828501613670565b91505092915050565b600080600080608085870312156139ea576139e961339b565b5b60006139f887828801613670565b9450506020613a0987828801613670565b9350506040613a1a87828801613670565b9250506060613a2b87828801613670565b91505092959194509250565b600080fd5b60008083601f840112613a5257613a516133a5565b5b8235905067ffffffffffffffff811115613a6f57613a6e613a37565b5b602083019150836020820283011115613a8b57613a8a613462565b5b9250929050565b600080600060408486031215613aab57613aaa61339b565b5b600084013567ffffffffffffffff811115613ac957613ac86133a0565b5b613ad586828701613a3c565b93509350506020613ae886828701613809565b9150509250925092565b60008060408385031215613b0957613b0861339b565b5b6000613b17858286016134b0565b9250506020613b28858286016134b0565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b686020836135b0565b9150613b7382613b32565b602082019050919050565b60006020820190508181036000830152613b9781613b5b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c078261364f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c3957613c38613bcd565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115613c9b57808604811115613c7757613c76613bcd565b5b6001851615613c865780820291505b8081029050613c9485613c44565b9450613c5b565b94509492505050565b600082613cb45760019050613d70565b81613cc25760009050613d70565b8160018114613cd85760028114613ce257613d11565b6001915050613d70565b60ff841115613cf457613cf3613bcd565b5b8360020a915084821115613d0b57613d0a613bcd565b5b50613d70565b5060208310610133831016604e8410600b8410161715613d465782820a905083811115613d4157613d40613bcd565b5b613d70565b613d538484846001613c51565b92509050818404811115613d6a57613d69613bcd565b5b81810290505b9392505050565b6000613d828261364f565b9150613d8d8361385e565b9250613dba7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613ca4565b905092915050565b6000613dcd8261364f565b9150613dd88361364f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e1157613e10613bcd565b5b828202905092915050565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b6000613e526017836135b0565b9150613e5d82613e1c565b602082019050919050565b60006020820190508181036000830152613e8181613e45565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ee46026836135b0565b9150613eef82613e88565b604082019050919050565b60006020820190508181036000830152613f1381613ed7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f766024836135b0565b9150613f8182613f1a565b604082019050919050565b60006020820190508181036000830152613fa581613f69565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140086022836135b0565b915061401382613fac565b604082019050919050565b6000602082019050818103600083015261403781613ffb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061409a6025836135b0565b91506140a58261403e565b604082019050919050565b600060208201905081810360008301526140c98161408d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061412c6023836135b0565b9150614137826140d0565b604082019050919050565b6000602082019050818103600083015261415b8161411f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006141be6029836135b0565b91506141c982614162565b604082019050919050565b600060208201905081810360008301526141ed816141b1565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000614250603f836135b0565b915061425b826141f4565b604082019050919050565b6000602082019050818103600083015261427f81614243565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006142bc601c836135b0565b91506142c782614286565b602082019050919050565b600060208201905081810360008301526142eb816142af565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061434e6023836135b0565b9150614359826142f2565b604082019050919050565b6000602082019050818103600083015261437d81614341565b9050919050565b600061438f8261364f565b915061439a8361364f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143cf576143ce613bcd565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006144366023836135b0565b9150614441826143da565b604082019050919050565b6000602082019050818103600083015261446581614429565b9050919050565b60006144778261364f565b91506144828361364f565b92508282101561449557614494613bcd565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006144fc602a836135b0565b9150614507826144a0565b604082019050919050565b6000602082019050818103600083015261452b816144ef565b9050919050565b60008151905061454181613499565b92915050565b60006020828403121561455d5761455c61339b565b5b600061456b84828501614532565b91505092915050565b6000819050919050565b600061459961459461458f84614574565b6136fb565b61364f565b9050919050565b6145a98161457e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6145e481613487565b82525050565b60006145f683836145db565b60208301905092915050565b6000602082019050919050565b600061461a826145af565b61462481856145ba565b935061462f836145cb565b8060005b8381101561466057815161464788826145ea565b975061465283614602565b925050600181019050614633565b5085935050505092915050565b600060a0820190506146826000830188613775565b61468f60208301876145a0565b81810360408301526146a1818661460f565b90506146b06060830185613895565b6146bd6080830184613775565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147018261364f565b915061470c8361364f565b92508261471c5761471b6146c7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006147836021836135b0565b915061478e82614727565b604082019050919050565b600060208201905081810360008301526147b281614776565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006147ef601b836135b0565b91506147fa826147b9565b602082019050919050565b6000602082019050818103600083015261481e816147e2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208a2f9a09f5e9e59608e62558f63bf62b90a619db1e2594d4258796cefd21e2fe64736f6c634300080e0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000eb69774f05e3a34b41706892abf0ce70fc6cbdec000000000000000000000000ea509be1ae223b61b77e323e25c4fed2069cd3f000000000000000000000000052a4343d5d5d539028f927a090a3d6a359bc687a00000000000000000000000018c18c4bf8ac39363fe9bf21e3c89baa6b5193e0

-----Decoded View---------------
Arg [0] : developmentAddr (address): 0xeB69774F05E3a34B41706892abF0CE70fC6cBdEc
Arg [1] : marketingAddr (address): 0xEA509BE1ae223b61b77E323E25C4FEd2069cD3F0
Arg [2] : devFeeAddr1 (address): 0x52a4343D5D5d539028F927a090A3d6A359BC687a
Arg [3] : devFeeAddr2 (address): 0x18C18c4bF8Ac39363fe9bF21E3C89BAa6B5193E0

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000eb69774f05e3a34b41706892abf0ce70fc6cbdec
Arg [1] : 000000000000000000000000ea509be1ae223b61b77e323e25c4fed2069cd3f0
Arg [2] : 00000000000000000000000052a4343d5d5d539028f927a090a3d6a359bc687a
Arg [3] : 00000000000000000000000018c18c4bf8ac39363fe9bf21e3c89baa6b5193e0


Deployed Bytecode Sourcemap

4067:15261:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14037:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7178:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8103:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5429:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7455:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8304:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19129:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5747:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7364:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5477:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5936:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14214:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18509:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15222:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13728:301;;;;;;;;;;;;;:::i;:::-;;7558:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1554:148;;;;;;;;;;;;;:::i;:::-;;18649:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5619:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5174:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1340:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13309:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5682:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7269:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18318:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17975:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7704:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5224:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5130:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13418:302;;;;;;;;;;;;;:::i;:::-;;18888:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7911:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18765:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1710:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14037:169;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14113:9:::1;14108:91;14132:5;:12;14128:1;:16;14108:91;;;14183:4;14166;:14;14171:5;14177:1;14171:8;;;;;;;;:::i;:::-;;;;;;;;14166:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14146:3;;;;;:::i;:::-;;;;14108:91;;;;14037:169:::0;:::o;7178:83::-;7215:13;7248:5;;;;;;;;;;;;;;;;;7241:12;;7178:83;:::o;8103:193::-;8205:4;8227:39;8236:12;:10;:12::i;:::-;8250:7;8259:6;8227:8;:39::i;:::-;8284:4;8277:11;;8103:193;;;;:::o;5429:41::-;;;;;;;;;;;;;:::o;7455:95::-;7508:7;4294:1;4635:2;:13;;;;:::i;:::-;4620:12;:28;;;;:::i;:::-;7528:14;;7455:95;:::o;8304:446::-;8436:4;8453:36;8463:6;8471:9;8482:6;8453:9;:36::i;:::-;8500:220;8523:6;8544:12;:10;:12::i;:::-;8571:138;8627:6;8571:138;;;;;;;;;;;;;;;;;:11;:19;8583:6;8571:19;;;;;;;;;;;;;;;:33;8591:12;:10;:12::i;:::-;8571:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8500:8;:220::i;:::-;8738:4;8731:11;;8304:446;;;;;:::o;19129:196::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19243:7:::1;19221:29;;:9;:18;19231:7;19221:18;;;;;;;;;;;;;;;;;;;;;;;;;:29;;::::0;19213:65:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19310:7;19289:9;:18;19299:7;19289:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19129:196:::0;;:::o;5747:61::-;;;;:::o;7364:83::-;7405:5;4294:1;7423:16;;7364:83;:::o;5477:28::-;;;;;;;;;;;;;:::o;5936:32::-;;;;;;;;;;;;;;;;;;;:::o;14214:92::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14293:5:::1;14278:4;:12;14283:6;14278:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14214:92:::0;:::o;18509:101::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18590:12:::1;18576:11;;:26;;;;;;;;;;;;;;;;;;18509:101:::0;:::o;15222:249::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15368:11:::1;15341:12;:24;;:38;;;;15415:9;15390:12;:22;;:34;;;;15457:6;15435:12;:19;;:28;;;;15222:249:::0;;;:::o;13728:301::-;13794:18;;;;;;;;;;;13778:34;;:12;:10;:12::i;:::-;:34;;;:70;;;;13832:16;;;;;;;;;;;13816:32;;:12;:10;:12::i;:::-;:32;;;13778:70;:104;;;;13868:14;;;;;;;;;;;13852:30;;:12;:10;:12::i;:::-;:30;;;13778:104;:138;;;;13902:14;;;;;;;;;;;13886:30;;:12;:10;:12::i;:::-;:30;;;13778:138;13770:147;;;;;;13928:26;13957:21;13928:50;;13989:32;14002:18;13989:12;:32::i;:::-;13759:270;13728:301::o;7558:138::-;7624:7;7651:37;7671:7;:16;7679:7;7671:16;;;;;;;;;;;;;;;;7651:19;:37::i;:::-;7644:44;;7558:138;;;:::o;1554:148::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1661:1:::1;1624:40;;1645:6;::::0;::::1;;;;;;;;1624:40;;;;;;;;;;;;1692:1;1675:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1554:148::o:0;18649:108::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18738:11:::1;18723:12;:26;;;;18649:108:::0;:::o;5619:56::-;;;;:::o;5174:43::-;;;;;;;;;;;;;;;;;:::o;1340:79::-;1378:7;1405:6;;;;;;;;;;;1398:13;;1340:79;:::o;13309:101::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13390:12:::1;13376:11;;:26;;;;;;;;;;;;;;;;;;13309:101:::0;:::o;5682:58::-;;;;:::o;7269:87::-;7308:13;7341:7;;;;;;;;;;;;;;;;;7334:14;;7269:87;:::o;18318:139::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18431:18:::1;18409:19;:40;;;;18318:139:::0;:::o;17975:291::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18126:13:::1;18109:14;:30;;;;18168:14;18150:15;:32;;;;18208:11;18193:12;:26;;;;18246:12;18230:13;:28;;;;17975:291:::0;;;;:::o;7704:199::-;7809:4;7831:42;7841:12;:10;:12::i;:::-;7855:9;7866:6;7831:9;:42::i;:::-;7891:4;7884:11;;7704:199;;;;:::o;5224:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5130:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13418:302::-;13484:18;;;;;;;;;;;13468:34;;:12;:10;:12::i;:::-;:34;;;:70;;;;13522:16;;;;;;;;;;;13506:32;;:12;:10;:12::i;:::-;:32;;;13468:70;:104;;;;13558:14;;;;;;;;;;;13542:30;;:12;:10;:12::i;:::-;:30;;;13468:104;:138;;;;13592:14;;;;;;;;;;;13576:30;;:12;:10;:12::i;:::-;:30;;;13468:138;13460:147;;;;;;13618:23;13644:24;13662:4;13644:9;:24::i;:::-;13618:50;;13679:33;13696:15;13679:16;:33::i;:::-;13449:271;13418:302::o;18888:234::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19005:9:::1;19001:114;19024:8;;:15;;19020:1;:19;19001:114;;;19095:8;19061:18;:31;19080:8;;19089:1;19080:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19061:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19041:3;;;;;:::i;:::-;;;;19001:114;;;;18888:234:::0;;;:::o;7911:184::-;8028:7;8060:11;:18;8072:5;8060:18;;;;;;;;;;;;;;;:27;8079:7;8060:27;;;;;;;;;;;;;;;;8053:34;;7911:184;;;;:::o;18765:115::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18859:13:::1;18842:14;:30;;;;18765:115:::0;:::o;1710:244::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1819:1:::1;1799:22;;:8;:22;;::::0;1791:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1909:8;1880:38;;1901:6;::::0;::::1;;;;;;;;1880:38;;;;;;;;;;;;1938:8;1929:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1710:244:::0;:::o;99:98::-;152:7;179:10;172:17;;99:98;:::o;9441:369::-;9585:1;9568:19;;:5;:19;;;9560:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9666:1;9647:21;;:7;:21;;;9639:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9748:6;9718:11;:18;9730:5;9718:18;;;;;;;;;;;;;;;:27;9737:7;9718:27;;;;;;;;;;;;;;;:36;;;;9786:7;9770:32;;9779:5;9770:32;;;9795:6;9770:32;;;;;;:::i;:::-;;;;;;;;9441:369;;;:::o;9818:2368::-;9956:1;9940:18;;:4;:18;;;9932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10033:1;10019:16;;:2;:16;;;10011:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10103:1;10094:6;:10;10086:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10175:7;:5;:7::i;:::-;10167:15;;:4;:15;;;;:32;;;;;10192:7;:5;:7::i;:::-;10186:13;;:2;:13;;;;10167:32;:52;;;;;10204:9;:15;10214:4;10204:15;;;;;;;;;;;;;;;;;;;;;;;;;10203:16;10167:52;:70;;;;;10224:9;:13;10234:2;10224:13;;;;;;;;;;;;;;;;;;;;;;;;;10223:14;10167:70;10163:1297;;;10294:11;;;;;;;;;;;10289:144;;10334:9;:15;10344:4;10334:15;;;;;;;;;;;;;;;;;;;;;;;;;10326:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10289:144;10467:12;;10457:6;:22;;10449:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10536:4;:10;10541:4;10536:10;;;;;;;;;;;;;;;;;;;;;;;;;10535:11;:24;;;;;10551:4;:8;10556:2;10551:8;;;;;;;;;;;;;;;;;;;;;;;;;10550:9;10535:24;10527:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10625:13;;;;;;;;;;;10619:19;;:2;:19;;;10616:146;;10692:14;;10683:6;10667:13;10677:2;10667:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10659:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10616:146;10778:28;10809:24;10827:4;10809:9;:24::i;:::-;10778:55;;10848:12;10887:19;;10863:20;:43;;10848:58;;10950:12;;10926:20;:36;10923:124;;11019:12;;10996:35;;10923:124;11067:7;:18;;;;;11079:6;;;;;;;;;;;11078:7;11067:18;:43;;;;;11097:13;;;;;;;;;;;11089:21;;:4;:21;;;;11067:43;:58;;;;;11114:11;;;;;;;;;;;11067:58;:87;;;;;11130:18;:24;11149:4;11130:24;;;;;;;;;;;;;;;;;;;;;;;;;11129:25;11067:87;:114;;;;;11159:18;:22;11178:2;11159:22;;;;;;;;;;;;;;;;;;;;;;;;;11158:23;11067:114;11063:386;;;11202:38;11219:20;11202:16;:38::i;:::-;11259:26;11288:21;11259:50;;11353:1;11332:18;:22;11328:106;;;11379:35;11392:21;11379:12;:35::i;:::-;11328:106;11183:266;11063:386;10239:1221;;10163:1297;11472:12;11487:4;11472:19;;11536:18;:24;11555:4;11536:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11564:18;:22;11583:2;11564:22;;;;;;;;;;;;;;;;;;;;;;;;;11536:50;11535:102;;;;11600:13;;;;;;;;;;;11592:21;;:4;:21;;;;:44;;;;;11623:13;;;;;;;;;;;11617:19;;:2;:19;;;;11592:44;11535:102;11531:594;;;11664:5;11654:15;;11531:594;;;11747:13;;;;;;;;;;;11739:21;;:4;:21;;;:55;;;;;11778:15;;;;;;;;;;;11764:30;;:2;:30;;;;11739:55;11736:162;;;11827:14;;11815:9;:26;;;;11870:12;;11860:7;:22;;;;11736:162;11957:13;;;;;;;;;;;11951:19;;:2;:19;;;:55;;;;;11990:15;;;;;;;;;;;11974:32;;:4;:32;;;;11951:55;11947:165;;;12039:15;;12027:9;:27;;;;12083:13;;12073:7;:23;;;;11947:165;11531:594;12137:41;12152:4;12158:2;12162:6;12170:7;12137:14;:41::i;:::-;9921:2265;9818:2368;;;:::o;2318:224::-;2438:7;2471:1;2466;:6;;2474:12;2458:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2498:9;2514:1;2510;:5;;;;:::i;:::-;2498:17;;2533:1;2526:8;;;2318:224;;;;;:::o;12685:616::-;6071:4;6062:6;;:13;;;;;;;;;;;;;;;;;;12754:23:::1;12780:6;12754:32;;12797:22;12822:52;12870:3;12822:43;12842:12;:22;;;12822:15;:19;;:43;;;;:::i;:::-;:47;;:52;;;;:::i;:::-;12797:77;;12885:19;12907:56;12961:1;12907:49;12952:3;12907:40;12927:12;:19;;;12907:15;:19;;:40;;;;:::i;:::-;:44;;:49;;;;:::i;:::-;:53;;:56;;;;:::i;:::-;12885:78;;12974:24;13001:54;13051:3;13001:45;13021:12;:24;;;13001:15;:19;;:45;;;;:::i;:::-;:49;;:54;;;;:::i;:::-;12974:81;;13074:16;;;;;;;;;;;13066:34;;:50;13101:14;13066:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13135:14;;;;;;;;;;;13127:32;;:45;13160:11;13127:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13191:14;;;;;;;;;;;13183:32;;:45;13216:11;13183:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13247:18;;;;;;;;;;;13239:36;;:54;13276:16;13239:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12743:558;;;;6107:5:::0;6098:6;;:14;;;;;;;;;;;;;;;;;;12685:616;:::o;8758:323::-;8853:7;8911;;8900;:18;;8878:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8999:19;9021:10;:8;:10::i;:::-;8999:32;;9049:24;9061:11;9049:7;:11;;:24;;;;:::i;:::-;9042:31;;;8758:323;;;:::o;12194:483::-;6071:4;6062:6;;:13;;;;;;;;;;;;;;;;;;12272:21:::1;12310:1;12296:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12272:40;;12341:4;12323;12328:1;12323:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12367:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12357:4;12362:1;12357:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12400:62;12417:4;12432:15;;;;;;;;;;;12450:11;12400:8;:62::i;:::-;12473:15;;;;;;;;;;;:66;;;12554:11;12580:1;12596:4;12623;12643:15;12473:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12261:416;6107:5:::0;6098:6;;:14;;;;;;;;;;;;;;;;;;12194:483;:::o;14314:282::-;14470:7;14465:28;;14479:14;:12;:14::i;:::-;14465:28;14504:44;14522:6;14530:9;14541:6;14504:17;:44::i;:::-;14564:7;14559:29;;14573:15;:13;:15::i;:::-;14559:29;14314:282;;;;:::o;2550:246::-;2608:7;2637:1;2632;:6;2628:47;;2662:1;2655:8;;;;2628:47;2685:9;2701:1;2697;:5;;;;:::i;:::-;2685:17;;2730:1;2725;2721;:5;;;;:::i;:::-;:10;2713:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2787:1;2780:8;;;2550:246;;;;;:::o;2804:132::-;2862:7;2889:39;2893:1;2896;2889:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2882:46;;2804:132;;;;:::o;17538:164::-;17580:7;17601:15;17618;17637:19;:17;:19::i;:::-;17600:56;;;;17674:20;17686:7;17674;:11;;:20;;;;:::i;:::-;17667:27;;;;17538:164;:::o;9089:219::-;9149:1;9136:9;;:14;:30;;;;;9165:1;9154:7;;:12;9136:30;9168:7;9132:43;9207:9;;9187:17;:29;;;;9245:7;;9227:15;:25;;;;9277:1;9265:9;:13;;;;9299:1;9289:7;:11;;;;9089:219;:::o;14604:610::-;14751:15;14781:23;14819:12;14846:23;14884:12;14911:13;14938:19;14949:7;14938:10;:19::i;:::-;14736:221;;;;;;;;;;;;14986:28;15006:7;14986;:15;14994:6;14986:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14968:7;:15;14976:6;14968:15;;;;;;;;;;;;;;;:46;;;;15046:39;15069:15;15046:7;:18;15054:9;15046:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15025:7;:18;15033:9;15025:18;;;;;;;;;;;;;;;:60;;;;15096:16;15106:5;15096:9;:16::i;:::-;15123:23;15135:4;15141;15123:11;:23::i;:::-;15179:9;15162:44;;15171:6;15162:44;;;15190:15;15162:44;;;;;;:::i;:::-;;;;;;;;14725:489;;;;;;14604:610;;;:::o;9316:117::-;9372:17;;9360:9;:29;;;;9410:15;;9400:7;:25;;;;9316:117::o;2944:223::-;3064:7;3096:1;3092;:5;3099:12;3084:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3123:9;3139:1;3135;:5;;;;:::i;:::-;3123:17;;3158:1;3151:8;;;2944:223;;;;;:::o;17710:257::-;17761:7;17770;17790:15;17808:7;;17790:25;;17826:15;4294:1;4635:2;:13;;;;:::i;:::-;4620:12;:28;;;;:::i;:::-;17826:25;;17876:20;4294:1;4635:2;:13;;;;:::i;:::-;4620:12;:28;;;;:::i;:::-;17876:7;;:11;;:20;;;;:::i;:::-;17866:7;:30;17862:61;;;17906:7;;4294:1;4635:2;:13;;;;:::i;:::-;4620:12;:28;;;;:::i;:::-;17898:25;;;;;;;;17862:61;17942:7;17951;17934:25;;;;;;17710:257;;;:::o;15896:615::-;15996:7;16018;16040;16062;16084;16106;16142:23;16167:12;16181:13;16211:40;16223:7;16232:9;;16243:7;;16211:11;:40::i;:::-;16141:110;;;;;;16262:19;16284:10;:8;:10::i;:::-;16262:32;;16306:15;16323:23;16348:12;16377:46;16389:7;16398:4;16404:5;16411:11;16377;:46::i;:::-;16305:118;;;;;;16442:7;16451:15;16468:4;16474:15;16491:4;16497:5;16434:69;;;;;;;;;;;;;;;;;;;15896:615;;;;;;;:::o;2174:136::-;2232:7;2259:43;2263:1;2266;2259:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2252:50;;2174:136;;;;:::o;1987:179::-;2045:7;2065:9;2081:1;2077;:5;;;;:::i;:::-;2065:17;;2106:1;2101;:6;;2093:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2157:1;2150:8;;;1987:179;;;;:::o;15479:211::-;15532:19;15554:10;:8;:10::i;:::-;15532:32;;15575:13;15591:22;15601:11;15591:5;:9;;:22;;;;:::i;:::-;15575:38;;15649:33;15676:5;15649:7;:22;15665:4;15649:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15624:7;:22;15640:4;15624:22;;;;;;;;;;;;;;;:58;;;;15521:169;;15479:211;:::o;15698:147::-;15776:17;15788:4;15776:7;;:11;;:17;;;;:::i;:::-;15766:7;:27;;;;15817:20;15832:4;15817:10;;:14;;:20;;;;:::i;:::-;15804:10;:33;;;;15698:147;;:::o;16519:469::-;16688:7;16710;16732;16767:12;16782:30;16808:3;16782:21;16794:8;16782:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16767:45;;16823:13;16839:28;16863:3;16839:19;16851:6;16839:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16823:44;;16878:23;16904:28;16926:5;16904:17;16916:4;16904:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16878:54;;16951:15;16968:4;16974:5;16943:37;;;;;;;;;16519:469;;;;;;;:::o;16996:534::-;17190:7;17212;17234;17269:15;17287:24;17299:11;17287:7;:11;;:24;;;;:::i;:::-;17269:42;;17322:12;17337:21;17346:11;17337:4;:8;;:21;;;;:::i;:::-;17322:36;;17369:13;17385:22;17395:11;17385:5;:9;;:22;;;;:::i;:::-;17369:38;;17418:23;17444:28;17466:5;17444:17;17456:4;17444:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17418:54;;17491:7;17500:15;17517:4;17483:39;;;;;;;;;;16996:534;;;;;;;;:::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:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:116::-;8356:21;8371:5;8356:21;:::i;:::-;8349:5;8346:32;8336:60;;8392:1;8389;8382:12;8336:60;8286:116;:::o;8408:133::-;8451:5;8489:6;8476:20;8467:29;;8505:30;8529:5;8505:30;:::i;:::-;8408:133;;;;:::o;8547:468::-;8612:6;8620;8669:2;8657:9;8648:7;8644:23;8640:32;8637:119;;;8675:79;;:::i;:::-;8637:119;8795:1;8820:53;8865:7;8856:6;8845:9;8841:22;8820:53;:::i;:::-;8810:63;;8766:117;8922:2;8948:50;8990:7;8981:6;8970:9;8966:22;8948:50;:::i;:::-;8938:60;;8893:115;8547:468;;;;;:::o;9021:86::-;9056:7;9096:4;9089:5;9085:16;9074:27;;9021:86;;;:::o;9113:112::-;9196:22;9212:5;9196:22;:::i;:::-;9191:3;9184:35;9113:112;;:::o;9231:214::-;9320:4;9358:2;9347:9;9343:18;9335:26;;9371:67;9435:1;9424:9;9420:17;9411:6;9371:67;:::i;:::-;9231:214;;;;:::o;9451:118::-;9538:24;9556:5;9538:24;:::i;:::-;9533:3;9526:37;9451:118;;:::o;9575:222::-;9668:4;9706:2;9695:9;9691:18;9683:26;;9719:71;9787:1;9776:9;9772:17;9763:6;9719:71;:::i;:::-;9575:222;;;;:::o;9803:442::-;9952:4;9990:2;9979:9;9975:18;9967:26;;10003:71;10071:1;10060:9;10056:17;10047:6;10003:71;:::i;:::-;10084:72;10152:2;10141:9;10137:18;10128:6;10084:72;:::i;:::-;10166;10234:2;10223:9;10219:18;10210:6;10166:72;:::i;:::-;9803:442;;;;;;:::o;10251:329::-;10310:6;10359:2;10347:9;10338:7;10334:23;10330:32;10327:119;;;10365:79;;:::i;:::-;10327:119;10485:1;10510:53;10555:7;10546:6;10535:9;10531:22;10510:53;:::i;:::-;10500:63;;10456:117;10251:329;;;;:::o;10586:323::-;10642:6;10691:2;10679:9;10670:7;10666:23;10662:32;10659:119;;;10697:79;;:::i;:::-;10659:119;10817:1;10842:50;10884:7;10875:6;10864:9;10860:22;10842:50;:::i;:::-;10832:60;;10788:114;10586:323;;;;:::o;10915:619::-;10992:6;11000;11008;11057:2;11045:9;11036:7;11032:23;11028:32;11025:119;;;11063:79;;:::i;:::-;11025:119;11183:1;11208:53;11253:7;11244:6;11233:9;11229:22;11208:53;:::i;:::-;11198:63;;11154:117;11310:2;11336:53;11381:7;11372:6;11361:9;11357:22;11336:53;:::i;:::-;11326:63;;11281:118;11438:2;11464:53;11509:7;11500:6;11489:9;11485:22;11464:53;:::i;:::-;11454:63;;11409:118;10915:619;;;;;:::o;11540:329::-;11599:6;11648:2;11636:9;11627:7;11623:23;11619:32;11616:119;;;11654:79;;:::i;:::-;11616:119;11774:1;11799:53;11844:7;11835:6;11824:9;11820:22;11799:53;:::i;:::-;11789:63;;11745:117;11540:329;;;;:::o;11875:765::-;11961:6;11969;11977;11985;12034:3;12022:9;12013:7;12009:23;12005:33;12002:120;;;12041:79;;:::i;:::-;12002:120;12161:1;12186:53;12231:7;12222:6;12211:9;12207:22;12186:53;:::i;:::-;12176:63;;12132:117;12288:2;12314:53;12359:7;12350:6;12339:9;12335:22;12314:53;:::i;:::-;12304:63;;12259:118;12416:2;12442:53;12487:7;12478:6;12467:9;12463:22;12442:53;:::i;:::-;12432:63;;12387:118;12544:2;12570:53;12615:7;12606:6;12595:9;12591:22;12570:53;:::i;:::-;12560:63;;12515:118;11875:765;;;;;;;:::o;12646:117::-;12755:1;12752;12745:12;12786:568;12859:8;12869:6;12919:3;12912:4;12904:6;12900:17;12896:27;12886:122;;12927:79;;:::i;:::-;12886:122;13040:6;13027:20;13017:30;;13070:18;13062:6;13059:30;13056:117;;;13092:79;;:::i;:::-;13056:117;13206:4;13198:6;13194:17;13182:29;;13260:3;13252:4;13244:6;13240:17;13230:8;13226:32;13223:41;13220:128;;;13267:79;;:::i;:::-;13220:128;12786:568;;;;;:::o;13360:698::-;13452:6;13460;13468;13517:2;13505:9;13496:7;13492:23;13488:32;13485:119;;;13523:79;;:::i;:::-;13485:119;13671:1;13660:9;13656:17;13643:31;13701:18;13693:6;13690:30;13687:117;;;13723:79;;:::i;:::-;13687:117;13836:80;13908:7;13899:6;13888:9;13884:22;13836:80;:::i;:::-;13818:98;;;;13614:312;13965:2;13991:50;14033:7;14024:6;14013:9;14009:22;13991:50;:::i;:::-;13981:60;;13936:115;13360:698;;;;;:::o;14064:474::-;14132:6;14140;14189:2;14177:9;14168:7;14164:23;14160:32;14157:119;;;14195:79;;:::i;:::-;14157:119;14315:1;14340:53;14385:7;14376:6;14365:9;14361:22;14340:53;:::i;:::-;14330:63;;14286:117;14442:2;14468:53;14513:7;14504:6;14493:9;14489:22;14468:53;:::i;:::-;14458:63;;14413:118;14064:474;;;;;:::o;14544:182::-;14684:34;14680:1;14672:6;14668:14;14661:58;14544:182;:::o;14732:366::-;14874:3;14895:67;14959:2;14954:3;14895:67;:::i;:::-;14888:74;;14971:93;15060:3;14971:93;:::i;:::-;15089:2;15084:3;15080:12;15073:19;;14732:366;;;:::o;15104:419::-;15270:4;15308:2;15297:9;15293:18;15285:26;;15357:9;15351:4;15347:20;15343:1;15332:9;15328:17;15321:47;15385:131;15511:4;15385:131;:::i;:::-;15377:139;;15104:419;;;:::o;15529:180::-;15577:77;15574:1;15567:88;15674:4;15671:1;15664:15;15698:4;15695:1;15688:15;15715:180;15763:77;15760:1;15753:88;15860:4;15857:1;15850:15;15884:4;15881:1;15874:15;15901:233;15940:3;15963:24;15981:5;15963:24;:::i;:::-;15954:33;;16009:66;16002:5;15999:77;15996:103;;16079:18;;:::i;:::-;15996:103;16126:1;16119:5;16115:13;16108:20;;15901:233;;;:::o;16140:102::-;16182:8;16229:5;16226:1;16222:13;16201:34;;16140:102;;;:::o;16248:848::-;16309:5;16316:4;16340:6;16331:15;;16364:5;16355:14;;16378:712;16399:1;16389:8;16386:15;16378:712;;;16494:4;16489:3;16485:14;16479:4;16476:24;16473:50;;;16503:18;;:::i;:::-;16473:50;16553:1;16543:8;16539:16;16536:451;;;16968:4;16961:5;16957:16;16948:25;;16536:451;17018:4;17012;17008:15;17000:23;;17048:32;17071:8;17048:32;:::i;:::-;17036:44;;16378:712;;;16248:848;;;;;;;:::o;17102:1073::-;17156:5;17347:8;17337:40;;17368:1;17359:10;;17370:5;;17337:40;17396:4;17386:36;;17413:1;17404:10;;17415:5;;17386:36;17482:4;17530:1;17525:27;;;;17566:1;17561:191;;;;17475:277;;17525:27;17543:1;17534:10;;17545:5;;;17561:191;17606:3;17596:8;17593:17;17590:43;;;17613:18;;:::i;:::-;17590:43;17662:8;17659:1;17655:16;17646:25;;17697:3;17690:5;17687:14;17684:40;;;17704:18;;:::i;:::-;17684:40;17737:5;;;17475:277;;17861:2;17851:8;17848:16;17842:3;17836:4;17833:13;17829:36;17811:2;17801:8;17798:16;17793:2;17787:4;17784:12;17780:35;17764:111;17761:246;;;17917:8;17911:4;17907:19;17898:28;;17952:3;17945:5;17942:14;17939:40;;;17959:18;;:::i;:::-;17939:40;17992:5;;17761:246;18032:42;18070:3;18060:8;18054:4;18051:1;18032:42;:::i;:::-;18017:57;;;;18106:4;18101:3;18097:14;18090:5;18087:25;18084:51;;;18115:18;;:::i;:::-;18084:51;18164:4;18157:5;18153:16;18144:25;;17102:1073;;;;;;:::o;18181:281::-;18239:5;18263:23;18281:4;18263:23;:::i;:::-;18255:31;;18307:25;18323:8;18307:25;:::i;:::-;18295:37;;18351:104;18388:66;18378:8;18372:4;18351:104;:::i;:::-;18342:113;;18181:281;;;;:::o;18468:348::-;18508:7;18531:20;18549:1;18531:20;:::i;:::-;18526:25;;18565:20;18583:1;18565:20;:::i;:::-;18560:25;;18753:1;18685:66;18681:74;18678:1;18675:81;18670:1;18663:9;18656:17;18652:105;18649:131;;;18760:18;;:::i;:::-;18649:131;18808:1;18805;18801:9;18790:20;;18468:348;;;;:::o;18822:173::-;18962:25;18958:1;18950:6;18946:14;18939:49;18822:173;:::o;19001:366::-;19143:3;19164:67;19228:2;19223:3;19164:67;:::i;:::-;19157:74;;19240:93;19329:3;19240:93;:::i;:::-;19358:2;19353:3;19349:12;19342:19;;19001:366;;;:::o;19373:419::-;19539:4;19577:2;19566:9;19562:18;19554:26;;19626:9;19620:4;19616:20;19612:1;19601:9;19597:17;19590:47;19654:131;19780:4;19654:131;:::i;:::-;19646:139;;19373:419;;;:::o;19798:225::-;19938:34;19934:1;19926:6;19922:14;19915:58;20007:8;20002:2;19994:6;19990:15;19983:33;19798:225;:::o;20029:366::-;20171:3;20192:67;20256:2;20251:3;20192:67;:::i;:::-;20185:74;;20268:93;20357:3;20268:93;:::i;:::-;20386:2;20381:3;20377:12;20370:19;;20029:366;;;:::o;20401:419::-;20567:4;20605:2;20594:9;20590:18;20582:26;;20654:9;20648:4;20644:20;20640:1;20629:9;20625:17;20618:47;20682:131;20808:4;20682:131;:::i;:::-;20674:139;;20401:419;;;:::o;20826:223::-;20966:34;20962:1;20954:6;20950:14;20943:58;21035:6;21030:2;21022:6;21018:15;21011:31;20826:223;:::o;21055:366::-;21197:3;21218:67;21282:2;21277:3;21218:67;:::i;:::-;21211:74;;21294:93;21383:3;21294:93;:::i;:::-;21412:2;21407:3;21403:12;21396:19;;21055:366;;;:::o;21427:419::-;21593:4;21631:2;21620:9;21616:18;21608:26;;21680:9;21674:4;21670:20;21666:1;21655:9;21651:17;21644:47;21708:131;21834:4;21708:131;:::i;:::-;21700:139;;21427:419;;;:::o;21852:221::-;21992:34;21988:1;21980:6;21976:14;21969:58;22061:4;22056:2;22048:6;22044:15;22037:29;21852:221;:::o;22079:366::-;22221:3;22242:67;22306:2;22301:3;22242:67;:::i;:::-;22235:74;;22318:93;22407:3;22318:93;:::i;:::-;22436:2;22431:3;22427:12;22420:19;;22079:366;;;:::o;22451:419::-;22617:4;22655:2;22644:9;22640:18;22632:26;;22704:9;22698:4;22694:20;22690:1;22679:9;22675:17;22668:47;22732:131;22858:4;22732:131;:::i;:::-;22724:139;;22451:419;;;:::o;22876:224::-;23016:34;23012:1;23004:6;23000:14;22993:58;23085:7;23080:2;23072:6;23068:15;23061:32;22876:224;:::o;23106:366::-;23248:3;23269:67;23333:2;23328:3;23269:67;:::i;:::-;23262:74;;23345:93;23434:3;23345:93;:::i;:::-;23463:2;23458:3;23454:12;23447:19;;23106:366;;;:::o;23478:419::-;23644:4;23682:2;23671:9;23667:18;23659:26;;23731:9;23725:4;23721:20;23717:1;23706:9;23702:17;23695:47;23759:131;23885:4;23759:131;:::i;:::-;23751:139;;23478:419;;;:::o;23903:222::-;24043:34;24039:1;24031:6;24027:14;24020:58;24112:5;24107:2;24099:6;24095:15;24088:30;23903:222;:::o;24131:366::-;24273:3;24294:67;24358:2;24353:3;24294:67;:::i;:::-;24287:74;;24370:93;24459:3;24370:93;:::i;:::-;24488:2;24483:3;24479:12;24472:19;;24131:366;;;:::o;24503:419::-;24669:4;24707:2;24696:9;24692:18;24684:26;;24756:9;24750:4;24746:20;24742:1;24731:9;24727:17;24720:47;24784:131;24910:4;24784:131;:::i;:::-;24776:139;;24503:419;;;:::o;24928:228::-;25068:34;25064:1;25056:6;25052:14;25045:58;25137:11;25132:2;25124:6;25120:15;25113:36;24928:228;:::o;25162:366::-;25304:3;25325:67;25389:2;25384:3;25325:67;:::i;:::-;25318:74;;25401:93;25490:3;25401:93;:::i;:::-;25519:2;25514:3;25510:12;25503:19;;25162:366;;;:::o;25534:419::-;25700:4;25738:2;25727:9;25723:18;25715:26;;25787:9;25781:4;25777:20;25773:1;25762:9;25758:17;25751:47;25815:131;25941:4;25815:131;:::i;:::-;25807:139;;25534:419;;;:::o;25959:250::-;26099:34;26095:1;26087:6;26083:14;26076:58;26168:33;26163:2;26155:6;26151:15;26144:58;25959:250;:::o;26215:366::-;26357:3;26378:67;26442:2;26437:3;26378:67;:::i;:::-;26371:74;;26454:93;26543:3;26454:93;:::i;:::-;26572:2;26567:3;26563:12;26556:19;;26215:366;;;:::o;26587:419::-;26753:4;26791:2;26780:9;26776:18;26768:26;;26840:9;26834:4;26830:20;26826:1;26815:9;26811:17;26804:47;26868:131;26994:4;26868:131;:::i;:::-;26860:139;;26587:419;;;:::o;27012:178::-;27152:30;27148:1;27140:6;27136:14;27129:54;27012:178;:::o;27196:366::-;27338:3;27359:67;27423:2;27418:3;27359:67;:::i;:::-;27352:74;;27435:93;27524:3;27435:93;:::i;:::-;27553:2;27548:3;27544:12;27537:19;;27196:366;;;:::o;27568:419::-;27734:4;27772:2;27761:9;27757:18;27749:26;;27821:9;27815:4;27811:20;27807:1;27796:9;27792:17;27785:47;27849:131;27975:4;27849:131;:::i;:::-;27841:139;;27568:419;;;:::o;27993:222::-;28133:34;28129:1;28121:6;28117:14;28110:58;28202:5;28197:2;28189:6;28185:15;28178:30;27993:222;:::o;28221:366::-;28363:3;28384:67;28448:2;28443:3;28384:67;:::i;:::-;28377:74;;28460:93;28549:3;28460:93;:::i;:::-;28578:2;28573:3;28569:12;28562:19;;28221:366;;;:::o;28593:419::-;28759:4;28797:2;28786:9;28782:18;28774:26;;28846:9;28840:4;28836:20;28832:1;28821:9;28817:17;28810:47;28874:131;29000:4;28874:131;:::i;:::-;28866:139;;28593:419;;;:::o;29018:305::-;29058:3;29077:20;29095:1;29077:20;:::i;:::-;29072:25;;29111:20;29129:1;29111:20;:::i;:::-;29106:25;;29265:1;29197:66;29193:74;29190:1;29187:81;29184:107;;;29271:18;;:::i;:::-;29184:107;29315:1;29312;29308:9;29301:16;;29018:305;;;;:::o;29329:222::-;29469:34;29465:1;29457:6;29453:14;29446:58;29538:5;29533:2;29525:6;29521:15;29514:30;29329:222;:::o;29557:366::-;29699:3;29720:67;29784:2;29779:3;29720:67;:::i;:::-;29713:74;;29796:93;29885:3;29796:93;:::i;:::-;29914:2;29909:3;29905:12;29898:19;;29557:366;;;:::o;29929:419::-;30095:4;30133:2;30122:9;30118:18;30110:26;;30182:9;30176:4;30172:20;30168:1;30157:9;30153:17;30146:47;30210:131;30336:4;30210:131;:::i;:::-;30202:139;;29929:419;;;:::o;30354:191::-;30394:4;30414:20;30432:1;30414:20;:::i;:::-;30409:25;;30448:20;30466:1;30448:20;:::i;:::-;30443:25;;30487:1;30484;30481:8;30478:34;;;30492:18;;:::i;:::-;30478:34;30537:1;30534;30530:9;30522:17;;30354:191;;;;:::o;30551:229::-;30691:34;30687:1;30679:6;30675:14;30668:58;30760:12;30755:2;30747:6;30743:15;30736:37;30551:229;:::o;30786:366::-;30928:3;30949:67;31013:2;31008:3;30949:67;:::i;:::-;30942:74;;31025:93;31114:3;31025:93;:::i;:::-;31143:2;31138:3;31134:12;31127:19;;30786:366;;;:::o;31158:419::-;31324:4;31362:2;31351:9;31347:18;31339:26;;31411:9;31405:4;31401:20;31397:1;31386:9;31382:17;31375:47;31439:131;31565:4;31439:131;:::i;:::-;31431:139;;31158:419;;;:::o;31583:143::-;31640:5;31671:6;31665:13;31656:22;;31687:33;31714:5;31687:33;:::i;:::-;31583:143;;;;:::o;31732:351::-;31802:6;31851:2;31839:9;31830:7;31826:23;31822:32;31819:119;;;31857:79;;:::i;:::-;31819:119;31977:1;32002:64;32058:7;32049:6;32038:9;32034:22;32002:64;:::i;:::-;31992:74;;31948:128;31732:351;;;;:::o;32089:85::-;32134:7;32163:5;32152:16;;32089:85;;;:::o;32180:158::-;32238:9;32271:61;32289:42;32298:32;32324:5;32298:32;:::i;:::-;32289:42;:::i;:::-;32271:61;:::i;:::-;32258:74;;32180:158;;;:::o;32344:147::-;32439:45;32478:5;32439:45;:::i;:::-;32434:3;32427:58;32344:147;;:::o;32497:114::-;32564:6;32598:5;32592:12;32582:22;;32497:114;;;:::o;32617:184::-;32716:11;32750:6;32745:3;32738:19;32790:4;32785:3;32781:14;32766:29;;32617:184;;;;:::o;32807:132::-;32874:4;32897:3;32889:11;;32927:4;32922:3;32918:14;32910:22;;32807:132;;;:::o;32945:108::-;33022:24;33040:5;33022:24;:::i;:::-;33017:3;33010:37;32945:108;;:::o;33059:179::-;33128:10;33149:46;33191:3;33183:6;33149:46;:::i;:::-;33227:4;33222:3;33218:14;33204:28;;33059:179;;;;:::o;33244:113::-;33314:4;33346;33341:3;33337:14;33329:22;;33244:113;;;:::o;33393:732::-;33512:3;33541:54;33589:5;33541:54;:::i;:::-;33611:86;33690:6;33685:3;33611:86;:::i;:::-;33604:93;;33721:56;33771:5;33721:56;:::i;:::-;33800:7;33831:1;33816:284;33841:6;33838:1;33835:13;33816:284;;;33917:6;33911:13;33944:63;34003:3;33988:13;33944:63;:::i;:::-;33937:70;;34030:60;34083:6;34030:60;:::i;:::-;34020:70;;33876:224;33863:1;33860;33856:9;33851:14;;33816:284;;;33820:14;34116:3;34109:10;;33517:608;;;33393:732;;;;:::o;34131:831::-;34394:4;34432:3;34421:9;34417:19;34409:27;;34446:71;34514:1;34503:9;34499:17;34490:6;34446:71;:::i;:::-;34527:80;34603:2;34592:9;34588:18;34579:6;34527:80;:::i;:::-;34654:9;34648:4;34644:20;34639:2;34628:9;34624:18;34617:48;34682:108;34785:4;34776:6;34682:108;:::i;:::-;34674:116;;34800:72;34868:2;34857:9;34853:18;34844:6;34800:72;:::i;:::-;34882:73;34950:3;34939:9;34935:19;34926:6;34882:73;:::i;:::-;34131:831;;;;;;;;:::o;34968:180::-;35016:77;35013:1;35006:88;35113:4;35110:1;35103:15;35137:4;35134:1;35127:15;35154:185;35194:1;35211:20;35229:1;35211:20;:::i;:::-;35206:25;;35245:20;35263:1;35245:20;:::i;:::-;35240:25;;35284:1;35274:35;;35289:18;;:::i;:::-;35274:35;35331:1;35328;35324:9;35319:14;;35154:185;;;;:::o;35345:220::-;35485:34;35481:1;35473:6;35469:14;35462:58;35554:3;35549:2;35541:6;35537:15;35530:28;35345:220;:::o;35571:366::-;35713:3;35734:67;35798:2;35793:3;35734:67;:::i;:::-;35727:74;;35810:93;35899:3;35810:93;:::i;:::-;35928:2;35923:3;35919:12;35912:19;;35571:366;;;:::o;35943:419::-;36109:4;36147:2;36136:9;36132:18;36124:26;;36196:9;36190:4;36186:20;36182:1;36171:9;36167:17;36160:47;36224:131;36350:4;36224:131;:::i;:::-;36216:139;;35943:419;;;:::o;36368:177::-;36508:29;36504:1;36496:6;36492:14;36485:53;36368:177;:::o;36551:366::-;36693:3;36714:67;36778:2;36773:3;36714:67;:::i;:::-;36707:74;;36790:93;36879:3;36790:93;:::i;:::-;36908:2;36903:3;36899:12;36892:19;;36551:366;;;:::o;36923:419::-;37089:4;37127:2;37116:9;37112:18;37104:26;;37176:9;37170:4;37166:20;37162:1;37151:9;37147:17;37140:47;37204:131;37330:4;37204:131;:::i;:::-;37196:139;;36923:419;;;:::o

Swarm Source

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