ETH Price: $2,622.62 (+0.84%)
Gas: 1 Gwei

Token

Engine of Chaos (Chaos)
 

Overview

Max Total Supply

100,000,000 Chaos

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,000,000 Chaos

Value
$0.00
0x315d035b8f5804997dfa76c9b79da3a9688baa17
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:
Chaos

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-11-20
*/

/**
*
私は黒い白鳥です
https://medium.com/@kuroihakucho/chaos-is-here-211562f49a2
https://t.me/+1CgXELO8QDE3NDQx
*
*/

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 Chaos is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Engine of Chaos";
    string private constant _symbol = "Chaos";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**_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 = 10;

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

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

    mapping(address => bool) public bots; 
    mapping (address => uint256) public _buyMap;
    address 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 = 2000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _swapTokensAtAmount = 250000 * 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(50, 50, 0);

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

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

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

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

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

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

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

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

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

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

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

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

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

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

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

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

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

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

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

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

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

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

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

        bool takeFee = true;

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

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

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

        }

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

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":"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":[],"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"}]

60806040526009600a62000014919062000aa1565b6305f5e10062000025919062000af2565b60001962000034919062000b82565b60001962000043919062000bba565b6006556000600855600a6009556000600a55600a600b55600a54600c55600b54600d55600c54600e55600d54600f556000601760156101000a81548160ff0219169083151502179055506001601760166101000a81548160ff0219169083151502179055506009600a620000b8919062000aa1565b621e8480620000c8919062000af2565b6018556009600a620000db919062000aa1565b621e8480620000eb919062000af2565b6019556009600a620000fe919062000aa1565b6203d0906200010e919062000af2565b601a553480156200011e57600080fd5b506040516200527138038062005271833981810160405281019062000144919062000c5f565b600062000156620008d660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35083601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600260006200030f620008d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000419919062000cd1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000481573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a7919062000cd1565b6040518363ffffffff1660e01b8152600401620004c692919062000d14565b6020604051808303816000875af1158015620004e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050c919062000cd1565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000562620008de60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550604051806060016040528060328152602001603281526020016000815250601b60008201518160000155602082015181600101556040820151816002015590505062000844620008d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620008a3919062000aa1565b6305f5e100620008b4919062000af2565b604051620008c3919062000d52565b60405180910390a3505050505062000d6f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000995578086048111156200096d576200096c62000907565b5b60018516156200097d5780820291505b80810290506200098d8562000936565b94506200094d565b94509492505050565b600082620009b0576001905062000a83565b81620009c0576000905062000a83565b8160018114620009d95760028114620009e45762000a1a565b600191505062000a83565b60ff841115620009f957620009f862000907565b5b8360020a91508482111562000a135762000a1262000907565b5b5062000a83565b5060208310610133831016604e8410600b841016171562000a545782820a90508381111562000a4e5762000a4d62000907565b5b62000a83565b62000a63848484600162000943565b9250905081840481111562000a7d5762000a7c62000907565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000aae8262000a8a565b915062000abb8362000a94565b925062000aea7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200099e565b905092915050565b600062000aff8262000a8a565b915062000b0c8362000a8a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b485762000b4762000907565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b8f8262000a8a565b915062000b9c8362000a8a565b92508262000baf5762000bae62000b53565b5b828206905092915050565b600062000bc78262000a8a565b915062000bd48362000a8a565b92508282101562000bea5762000be962000907565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c278262000bfa565b9050919050565b62000c398162000c1a565b811462000c4557600080fd5b50565b60008151905062000c598162000c2e565b92915050565b6000806000806080858703121562000c7c5762000c7b62000bf5565b5b600062000c8c8782880162000c48565b945050602062000c9f8782880162000c48565b935050604062000cb28782880162000c48565b925050606062000cc58782880162000c48565b91505092959194509250565b60006020828403121562000cea5762000ce962000bf5565b5b600062000cfa8482850162000c48565b91505092915050565b62000d0e8162000c1a565b82525050565b600060408201905062000d2b600083018562000d03565b62000d3a602083018462000d03565b9392505050565b62000d4c8162000a8a565b82525050565b600060208201905062000d69600083018462000d41565b92915050565b6144f28062000d7f6000396000f3fe6080604052600436106101e65760003560e01c806374010ece11610102578063a2a957bb11610095578063c492f04611610064578063c492f046146106c8578063dd62ed3e146106f1578063ea1644d51461072e578063f2fde38b14610757576101ed565b8063a2a957bb1461060e578063a9059cbb14610637578063bfd7928414610674578063c3c8cd80146106b1576101ed565b80638f70ccf7116100d15780638f70ccf7146105665780638f9a55c01461058f57806395d89b41146105ba57806398a5c315146105e5576101ed565b806374010ece146104aa5780637d1db4a5146104d35780637f2feddc146104fe5780638da5cb5b1461053b576101ed565b806349bd5a5e1161017a5780636f343052116101495780636f343052146104165780636fc3eaec1461043f57806370a0823114610456578063715018a614610493576101ed565b806349bd5a5e1461036c5780635ee58efc146103975780636b999053146103c45780636d8aa8f8146103ed576101ed565b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102d95780632fd689e314610316578063313ce56714610341576101ed565b8062b8cf2a146101f257806306fdde031461021b578063095ea7b3146102465780631694505e14610283576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021960048036038101906102149190613277565b610780565b005b34801561022757600080fd5b506102306108aa565b60405161023d9190613348565b60405180910390f35b34801561025257600080fd5b5061026d600480360381019061026891906133a0565b6108e7565b60405161027a91906133fb565b60405180910390f35b34801561028f57600080fd5b50610298610905565b6040516102a59190613475565b60405180910390f35b3480156102ba57600080fd5b506102c361092b565b6040516102d0919061349f565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb91906134ba565b61094f565b60405161030d91906133fb565b60405180910390f35b34801561032257600080fd5b5061032b610a28565b604051610338919061349f565b60405180910390f35b34801561034d57600080fd5b50610356610a2e565b6040516103639190613529565b60405180910390f35b34801561037857600080fd5b50610381610a37565b60405161038e9190613553565b60405180910390f35b3480156103a357600080fd5b506103ac610a5d565b6040516103bb9392919061356e565b60405180910390f35b3480156103d057600080fd5b506103eb60048036038101906103e691906135a5565b610a75565b005b3480156103f957600080fd5b50610414600480360381019061040f91906135fe565b610b65565b005b34801561042257600080fd5b5061043d6004803603810190610438919061362b565b610c17565b005b34801561044b57600080fd5b50610454610ccf565b005b34801561046257600080fd5b5061047d600480360381019061047891906135a5565b610e5e565b60405161048a919061349f565b60405180910390f35b34801561049f57600080fd5b506104a8610eaf565b005b3480156104b657600080fd5b506104d160048036038101906104cc919061367e565b611002565b005b3480156104df57600080fd5b506104e86110a1565b6040516104f5919061349f565b60405180910390f35b34801561050a57600080fd5b50610525600480360381019061052091906135a5565b6110a7565b604051610532919061349f565b60405180910390f35b34801561054757600080fd5b506105506110bf565b60405161055d9190613553565b60405180910390f35b34801561057257600080fd5b5061058d600480360381019061058891906135fe565b6110e8565b005b34801561059b57600080fd5b506105a461119a565b6040516105b1919061349f565b60405180910390f35b3480156105c657600080fd5b506105cf6111a0565b6040516105dc9190613348565b60405180910390f35b3480156105f157600080fd5b5061060c6004803603810190610607919061367e565b6111dd565b005b34801561061a57600080fd5b50610635600480360381019061063091906136ab565b61127c565b005b34801561064357600080fd5b5061065e600480360381019061065991906133a0565b611333565b60405161066b91906133fb565b60405180910390f35b34801561068057600080fd5b5061069b600480360381019061069691906135a5565b611351565b6040516106a891906133fb565b60405180910390f35b3480156106bd57600080fd5b506106c6611371565b005b3480156106d457600080fd5b506106ef60048036038101906106ea919061376d565b611508565b005b3480156106fd57600080fd5b50610718600480360381019061071391906137cd565b611642565b604051610725919061349f565b60405180910390f35b34801561073a57600080fd5b506107556004803603810190610750919061367e565b6116c9565b005b34801561076357600080fd5b5061077e600480360381019061077991906135a5565b611768565b005b610788611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080c90613859565b60405180910390fd5b60005b81518110156108a65760016010600084848151811061083a57610839613879565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061089e906138d7565b915050610818565b5050565b60606040518060400160405280600f81526020017f456e67696e65206f66204368616f730000000000000000000000000000000000815250905090565b60006108fb6108f4611929565b8484611931565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a61093b9190613a52565b6305f5e10061094a9190613a9d565b905090565b600061095c848484611afa565b610a1d84610968611929565b610a188560405180606001604052806028815260200161449560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ce611929565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237f9092919063ffffffff16565b611931565b600190509392505050565b601a5481565b60006009905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b8060000154908060010154908060020154905083565b610a7d611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0190613859565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b6d611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf190613859565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b610c1f611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca390613859565b60405180910390fd5b82601b6000018190555081601b6001018190555080601b60020181905550505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d10611929565b73ffffffffffffffffffffffffffffffffffffffff161480610d865750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6e611929565b73ffffffffffffffffffffffffffffffffffffffff16145b80610de55750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dcd611929565b73ffffffffffffffffffffffffffffffffffffffff16145b80610e445750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e2c611929565b73ffffffffffffffffffffffffffffffffffffffff16145b610e4d57600080fd5b6000479050610e5b816123e3565b50565b6000610ea8600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612669565b9050919050565b610eb7611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3b90613859565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61100a611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90613859565b60405180910390fd5b8060188190555050565b60185481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110f0611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117490613859565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60195481565b60606040518060400160405280600581526020017f4368616f73000000000000000000000000000000000000000000000000000000815250905090565b6111e5611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126990613859565b60405180910390fd5b80601a8190555050565b611284611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890613859565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000611347611340611929565b8484611afa565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113b2611929565b73ffffffffffffffffffffffffffffffffffffffff1614806114285750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611410611929565b73ffffffffffffffffffffffffffffffffffffffff16145b806114875750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661146f611929565b73ffffffffffffffffffffffffffffffffffffffff16145b806114e65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114ce611929565b73ffffffffffffffffffffffffffffffffffffffff16145b6114ef57600080fd5b60006114fa30610e5e565b9050611505816126d7565b50565b611510611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461159d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159490613859565b60405180910390fd5b60005b8383905081101561163c5781600560008686858181106115c3576115c2613879565b5b90506020020160208101906115d891906135a5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611634906138d7565b9150506115a0565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116d1611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175590613859565b60405180910390fd5b8060198190555050565b611770611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f490613859565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361186c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186390613b69565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199790613bfb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0690613c8d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611aed919061349f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6090613d1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613db1565b60405180910390fd5b60008111611c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1290613e43565b60405180910390fd5b611c236110bf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c915750611c616110bf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561207e57601760149054906101000a900460ff16611d2057611cb26110bf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1690613ed5565b60405180910390fd5b5b601854811115611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c90613f41565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e095750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3f90613fd3565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ef55760195481611eaa84610e5e565b611eb49190613ff3565b10611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb906140bb565b60405180910390fd5b5b6000611f0030610e5e565b90506000601a5482101590506018548210611f1b5760185491505b808015611f355750601760159054906101000a900460ff16155b8015611f8f5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa75750601760169054906101000a900460ff165b8015611ffd5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120535750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561207b57612061826126d7565b6000479050600081111561207957612078476123e3565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121255750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121d85750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121d75750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121e6576000905061236d565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122915750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122a957600854600c81905550600954600d819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123545750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561236c57600a54600c81905550600b54600d819055505b5b61237984848484612950565b50505050565b60008383111582906123c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123be9190613348565b60405180910390fd5b50600083856123d691906140db565b9050809150509392505050565b6001601760156101000a81548160ff021916908315150217905550600081905060006124306064612422601b600101548561297d90919063ffffffff16565b6129f790919063ffffffff16565b9050600061247260026124646064612456601b600201548861297d90919063ffffffff16565b6129f790919063ffffffff16565b6129f790919063ffffffff16565b905060006124a16064612493601b600001548761297d90919063ffffffff16565b6129f790919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561250b573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612574573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156125dd573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612646573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b60006006548211156126b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a790614181565b60405180910390fd5b60006126ba612a41565b90506126cf81846129f790919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561270f5761270e6130d6565b5b60405190808252806020026020018201604052801561273d5781602001602082028036833780820191505090505b509050308160008151811061275557612754613879565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282091906141b6565b8160018151811061283457612833613879565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061289b30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611931565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128ff9594939291906142dc565b600060405180830381600087803b15801561291957600080fd5b505af115801561292d573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b8061295e5761295d612a6c565b5b612969848484612aa9565b8061297757612976612c74565b5b50505050565b600080830361298f57600090506129f1565b6000828461299d9190613a9d565b90508284826129ac9190614365565b146129ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e390614408565b60405180910390fd5b809150505b92915050565b6000612a3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c88565b905092915050565b6000806000612a4e612ceb565b91509150612a6581836129f790919063ffffffff16565b9250505090565b6000600c54148015612a8057506000600d54145b612aa757600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612abb87612d86565b955095509550955095509550612b1986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dee90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bae85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bfa81612e96565b612c048483612f53565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612c61919061349f565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc69190613348565b60405180910390fd5b5060008385612cde9190614365565b9050809150509392505050565b6000806000600654905060006009600a612d059190613a52565b6305f5e100612d149190613a9d565b9050612d476009600a612d279190613a52565b6305f5e100612d369190613a9d565b6006546129f790919063ffffffff16565b821015612d79576006546009600a612d5f9190613a52565b6305f5e100612d6e9190613a9d565b935093505050612d82565b81819350935050505b9091565b6000806000806000806000806000612da38a600c54600d54612f8d565b9250925092506000612db3612a41565b90506000806000612dc68e878787613023565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612e3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061237f565b905092915050565b6000808284612e479190613ff3565b905083811015612e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8390614474565b60405180910390fd5b8091505092915050565b6000612ea0612a41565b90506000612eb7828461297d90919063ffffffff16565b9050612f0b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f6882600654612dee90919063ffffffff16565b600681905550612f8381600754612e3890919063ffffffff16565b6007819055505050565b600080600080612fb96064612fab888a61297d90919063ffffffff16565b6129f790919063ffffffff16565b90506000612fe36064612fd5888b61297d90919063ffffffff16565b6129f790919063ffffffff16565b9050600061300c82612ffe858c612dee90919063ffffffff16565b612dee90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061303c858961297d90919063ffffffff16565b90506000613053868961297d90919063ffffffff16565b9050600061306a878961297d90919063ffffffff16565b90506000613093826130858587612dee90919063ffffffff16565b612dee90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61310e826130c5565b810181811067ffffffffffffffff8211171561312d5761312c6130d6565b5b80604052505050565b60006131406130ac565b905061314c8282613105565b919050565b600067ffffffffffffffff82111561316c5761316b6130d6565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131ad82613182565b9050919050565b6131bd816131a2565b81146131c857600080fd5b50565b6000813590506131da816131b4565b92915050565b60006131f36131ee84613151565b613136565b905080838252602082019050602084028301858111156132165761321561317d565b5b835b8181101561323f578061322b88826131cb565b845260208401935050602081019050613218565b5050509392505050565b600082601f83011261325e5761325d6130c0565b5b813561326e8482602086016131e0565b91505092915050565b60006020828403121561328d5761328c6130b6565b5b600082013567ffffffffffffffff8111156132ab576132aa6130bb565b5b6132b784828501613249565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156132fa5780820151818401526020810190506132df565b83811115613309576000848401525b50505050565b600061331a826132c0565b61332481856132cb565b93506133348185602086016132dc565b61333d816130c5565b840191505092915050565b60006020820190508181036000830152613362818461330f565b905092915050565b6000819050919050565b61337d8161336a565b811461338857600080fd5b50565b60008135905061339a81613374565b92915050565b600080604083850312156133b7576133b66130b6565b5b60006133c5858286016131cb565b92505060206133d68582860161338b565b9150509250929050565b60008115159050919050565b6133f5816133e0565b82525050565b600060208201905061341060008301846133ec565b92915050565b6000819050919050565b600061343b61343661343184613182565b613416565b613182565b9050919050565b600061344d82613420565b9050919050565b600061345f82613442565b9050919050565b61346f81613454565b82525050565b600060208201905061348a6000830184613466565b92915050565b6134998161336a565b82525050565b60006020820190506134b46000830184613490565b92915050565b6000806000606084860312156134d3576134d26130b6565b5b60006134e1868287016131cb565b93505060206134f2868287016131cb565b92505060406135038682870161338b565b9150509250925092565b600060ff82169050919050565b6135238161350d565b82525050565b600060208201905061353e600083018461351a565b92915050565b61354d816131a2565b82525050565b60006020820190506135686000830184613544565b92915050565b60006060820190506135836000830186613490565b6135906020830185613490565b61359d6040830184613490565b949350505050565b6000602082840312156135bb576135ba6130b6565b5b60006135c9848285016131cb565b91505092915050565b6135db816133e0565b81146135e657600080fd5b50565b6000813590506135f8816135d2565b92915050565b600060208284031215613614576136136130b6565b5b6000613622848285016135e9565b91505092915050565b600080600060608486031215613644576136436130b6565b5b60006136528682870161338b565b93505060206136638682870161338b565b92505060406136748682870161338b565b9150509250925092565b600060208284031215613694576136936130b6565b5b60006136a28482850161338b565b91505092915050565b600080600080608085870312156136c5576136c46130b6565b5b60006136d38782880161338b565b94505060206136e48782880161338b565b93505060406136f58782880161338b565b92505060606137068782880161338b565b91505092959194509250565b600080fd5b60008083601f84011261372d5761372c6130c0565b5b8235905067ffffffffffffffff81111561374a57613749613712565b5b6020830191508360208202830111156137665761376561317d565b5b9250929050565b600080600060408486031215613786576137856130b6565b5b600084013567ffffffffffffffff8111156137a4576137a36130bb565b5b6137b086828701613717565b935093505060206137c3868287016135e9565b9150509250925092565b600080604083850312156137e4576137e36130b6565b5b60006137f2858286016131cb565b9250506020613803858286016131cb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138436020836132cb565b915061384e8261380d565b602082019050919050565b6000602082019050818103600083015261387281613836565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138e28261336a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613914576139136138a8565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b600185111561397657808604811115613952576139516138a8565b5b60018516156139615780820291505b808102905061396f8561391f565b9450613936565b94509492505050565b60008261398f5760019050613a4b565b8161399d5760009050613a4b565b81600181146139b357600281146139bd576139ec565b6001915050613a4b565b60ff8411156139cf576139ce6138a8565b5b8360020a9150848211156139e6576139e56138a8565b5b50613a4b565b5060208310610133831016604e8410600b8410161715613a215782820a905083811115613a1c57613a1b6138a8565b5b613a4b565b613a2e848484600161392c565b92509050818404811115613a4557613a446138a8565b5b81810290505b9392505050565b6000613a5d8261336a565b9150613a688361350d565b9250613a957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461397f565b905092915050565b6000613aa88261336a565b9150613ab38361336a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613aec57613aeb6138a8565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b536026836132cb565b9150613b5e82613af7565b604082019050919050565b60006020820190508181036000830152613b8281613b46565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613be56024836132cb565b9150613bf082613b89565b604082019050919050565b60006020820190508181036000830152613c1481613bd8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c776022836132cb565b9150613c8282613c1b565b604082019050919050565b60006020820190508181036000830152613ca681613c6a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613d096025836132cb565b9150613d1482613cad565b604082019050919050565b60006020820190508181036000830152613d3881613cfc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d9b6023836132cb565b9150613da682613d3f565b604082019050919050565b60006020820190508181036000830152613dca81613d8e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613e2d6029836132cb565b9150613e3882613dd1565b604082019050919050565b60006020820190508181036000830152613e5c81613e20565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613ebf603f836132cb565b9150613eca82613e63565b604082019050919050565b60006020820190508181036000830152613eee81613eb2565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613f2b601c836132cb565b9150613f3682613ef5565b602082019050919050565b60006020820190508181036000830152613f5a81613f1e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fbd6023836132cb565b9150613fc882613f61565b604082019050919050565b60006020820190508181036000830152613fec81613fb0565b9050919050565b6000613ffe8261336a565b91506140098361336a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561403e5761403d6138a8565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006140a56023836132cb565b91506140b082614049565b604082019050919050565b600060208201905081810360008301526140d481614098565b9050919050565b60006140e68261336a565b91506140f18361336a565b925082821015614104576141036138a8565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061416b602a836132cb565b91506141768261410f565b604082019050919050565b6000602082019050818103600083015261419a8161415e565b9050919050565b6000815190506141b0816131b4565b92915050565b6000602082840312156141cc576141cb6130b6565b5b60006141da848285016141a1565b91505092915050565b6000819050919050565b60006142086142036141fe846141e3565b613416565b61336a565b9050919050565b614218816141ed565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614253816131a2565b82525050565b6000614265838361424a565b60208301905092915050565b6000602082019050919050565b60006142898261421e565b6142938185614229565b935061429e8361423a565b8060005b838110156142cf5781516142b68882614259565b97506142c183614271565b9250506001810190506142a2565b5085935050505092915050565b600060a0820190506142f16000830188613490565b6142fe602083018761420f565b8181036040830152614310818661427e565b905061431f6060830185613544565b61432c6080830184613490565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143708261336a565b915061437b8361336a565b92508261438b5761438a614336565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006143f26021836132cb565b91506143fd82614396565b604082019050919050565b60006020820190508181036000830152614421816143e5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061445e601b836132cb565b915061446982614428565b602082019050919050565b6000602082019050818103600083015261448d81614451565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ff2c3a1fc0518013d59b71284fb3d120aed5f663811425ed4de708d5cc71c24c64736f6c634300080e0033000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f

Deployed Bytecode

0x6080604052600436106101e65760003560e01c806374010ece11610102578063a2a957bb11610095578063c492f04611610064578063c492f046146106c8578063dd62ed3e146106f1578063ea1644d51461072e578063f2fde38b14610757576101ed565b8063a2a957bb1461060e578063a9059cbb14610637578063bfd7928414610674578063c3c8cd80146106b1576101ed565b80638f70ccf7116100d15780638f70ccf7146105665780638f9a55c01461058f57806395d89b41146105ba57806398a5c315146105e5576101ed565b806374010ece146104aa5780637d1db4a5146104d35780637f2feddc146104fe5780638da5cb5b1461053b576101ed565b806349bd5a5e1161017a5780636f343052116101495780636f343052146104165780636fc3eaec1461043f57806370a0823114610456578063715018a614610493576101ed565b806349bd5a5e1461036c5780635ee58efc146103975780636b999053146103c45780636d8aa8f8146103ed576101ed565b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102d95780632fd689e314610316578063313ce56714610341576101ed565b8062b8cf2a146101f257806306fdde031461021b578063095ea7b3146102465780631694505e14610283576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021960048036038101906102149190613277565b610780565b005b34801561022757600080fd5b506102306108aa565b60405161023d9190613348565b60405180910390f35b34801561025257600080fd5b5061026d600480360381019061026891906133a0565b6108e7565b60405161027a91906133fb565b60405180910390f35b34801561028f57600080fd5b50610298610905565b6040516102a59190613475565b60405180910390f35b3480156102ba57600080fd5b506102c361092b565b6040516102d0919061349f565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb91906134ba565b61094f565b60405161030d91906133fb565b60405180910390f35b34801561032257600080fd5b5061032b610a28565b604051610338919061349f565b60405180910390f35b34801561034d57600080fd5b50610356610a2e565b6040516103639190613529565b60405180910390f35b34801561037857600080fd5b50610381610a37565b60405161038e9190613553565b60405180910390f35b3480156103a357600080fd5b506103ac610a5d565b6040516103bb9392919061356e565b60405180910390f35b3480156103d057600080fd5b506103eb60048036038101906103e691906135a5565b610a75565b005b3480156103f957600080fd5b50610414600480360381019061040f91906135fe565b610b65565b005b34801561042257600080fd5b5061043d6004803603810190610438919061362b565b610c17565b005b34801561044b57600080fd5b50610454610ccf565b005b34801561046257600080fd5b5061047d600480360381019061047891906135a5565b610e5e565b60405161048a919061349f565b60405180910390f35b34801561049f57600080fd5b506104a8610eaf565b005b3480156104b657600080fd5b506104d160048036038101906104cc919061367e565b611002565b005b3480156104df57600080fd5b506104e86110a1565b6040516104f5919061349f565b60405180910390f35b34801561050a57600080fd5b50610525600480360381019061052091906135a5565b6110a7565b604051610532919061349f565b60405180910390f35b34801561054757600080fd5b506105506110bf565b60405161055d9190613553565b60405180910390f35b34801561057257600080fd5b5061058d600480360381019061058891906135fe565b6110e8565b005b34801561059b57600080fd5b506105a461119a565b6040516105b1919061349f565b60405180910390f35b3480156105c657600080fd5b506105cf6111a0565b6040516105dc9190613348565b60405180910390f35b3480156105f157600080fd5b5061060c6004803603810190610607919061367e565b6111dd565b005b34801561061a57600080fd5b50610635600480360381019061063091906136ab565b61127c565b005b34801561064357600080fd5b5061065e600480360381019061065991906133a0565b611333565b60405161066b91906133fb565b60405180910390f35b34801561068057600080fd5b5061069b600480360381019061069691906135a5565b611351565b6040516106a891906133fb565b60405180910390f35b3480156106bd57600080fd5b506106c6611371565b005b3480156106d457600080fd5b506106ef60048036038101906106ea919061376d565b611508565b005b3480156106fd57600080fd5b50610718600480360381019061071391906137cd565b611642565b604051610725919061349f565b60405180910390f35b34801561073a57600080fd5b506107556004803603810190610750919061367e565b6116c9565b005b34801561076357600080fd5b5061077e600480360381019061077991906135a5565b611768565b005b610788611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080c90613859565b60405180910390fd5b60005b81518110156108a65760016010600084848151811061083a57610839613879565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061089e906138d7565b915050610818565b5050565b60606040518060400160405280600f81526020017f456e67696e65206f66204368616f730000000000000000000000000000000000815250905090565b60006108fb6108f4611929565b8484611931565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a61093b9190613a52565b6305f5e10061094a9190613a9d565b905090565b600061095c848484611afa565b610a1d84610968611929565b610a188560405180606001604052806028815260200161449560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ce611929565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237f9092919063ffffffff16565b611931565b600190509392505050565b601a5481565b60006009905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b8060000154908060010154908060020154905083565b610a7d611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0190613859565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b6d611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf190613859565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b610c1f611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca390613859565b60405180910390fd5b82601b6000018190555081601b6001018190555080601b60020181905550505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d10611929565b73ffffffffffffffffffffffffffffffffffffffff161480610d865750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6e611929565b73ffffffffffffffffffffffffffffffffffffffff16145b80610de55750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dcd611929565b73ffffffffffffffffffffffffffffffffffffffff16145b80610e445750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e2c611929565b73ffffffffffffffffffffffffffffffffffffffff16145b610e4d57600080fd5b6000479050610e5b816123e3565b50565b6000610ea8600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612669565b9050919050565b610eb7611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3b90613859565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61100a611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90613859565b60405180910390fd5b8060188190555050565b60185481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110f0611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117490613859565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60195481565b60606040518060400160405280600581526020017f4368616f73000000000000000000000000000000000000000000000000000000815250905090565b6111e5611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126990613859565b60405180910390fd5b80601a8190555050565b611284611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890613859565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000611347611340611929565b8484611afa565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113b2611929565b73ffffffffffffffffffffffffffffffffffffffff1614806114285750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611410611929565b73ffffffffffffffffffffffffffffffffffffffff16145b806114875750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661146f611929565b73ffffffffffffffffffffffffffffffffffffffff16145b806114e65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114ce611929565b73ffffffffffffffffffffffffffffffffffffffff16145b6114ef57600080fd5b60006114fa30610e5e565b9050611505816126d7565b50565b611510611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461159d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159490613859565b60405180910390fd5b60005b8383905081101561163c5781600560008686858181106115c3576115c2613879565b5b90506020020160208101906115d891906135a5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611634906138d7565b9150506115a0565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116d1611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175590613859565b60405180910390fd5b8060198190555050565b611770611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f490613859565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361186c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186390613b69565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199790613bfb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0690613c8d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611aed919061349f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6090613d1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613db1565b60405180910390fd5b60008111611c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1290613e43565b60405180910390fd5b611c236110bf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c915750611c616110bf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561207e57601760149054906101000a900460ff16611d2057611cb26110bf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1690613ed5565b60405180910390fd5b5b601854811115611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c90613f41565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e095750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3f90613fd3565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ef55760195481611eaa84610e5e565b611eb49190613ff3565b10611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb906140bb565b60405180910390fd5b5b6000611f0030610e5e565b90506000601a5482101590506018548210611f1b5760185491505b808015611f355750601760159054906101000a900460ff16155b8015611f8f5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa75750601760169054906101000a900460ff165b8015611ffd5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120535750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561207b57612061826126d7565b6000479050600081111561207957612078476123e3565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121255750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121d85750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121d75750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121e6576000905061236d565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122915750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122a957600854600c81905550600954600d819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123545750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561236c57600a54600c81905550600b54600d819055505b5b61237984848484612950565b50505050565b60008383111582906123c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123be9190613348565b60405180910390fd5b50600083856123d691906140db565b9050809150509392505050565b6001601760156101000a81548160ff021916908315150217905550600081905060006124306064612422601b600101548561297d90919063ffffffff16565b6129f790919063ffffffff16565b9050600061247260026124646064612456601b600201548861297d90919063ffffffff16565b6129f790919063ffffffff16565b6129f790919063ffffffff16565b905060006124a16064612493601b600001548761297d90919063ffffffff16565b6129f790919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561250b573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612574573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156125dd573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612646573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b60006006548211156126b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a790614181565b60405180910390fd5b60006126ba612a41565b90506126cf81846129f790919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561270f5761270e6130d6565b5b60405190808252806020026020018201604052801561273d5781602001602082028036833780820191505090505b509050308160008151811061275557612754613879565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282091906141b6565b8160018151811061283457612833613879565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061289b30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611931565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128ff9594939291906142dc565b600060405180830381600087803b15801561291957600080fd5b505af115801561292d573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b8061295e5761295d612a6c565b5b612969848484612aa9565b8061297757612976612c74565b5b50505050565b600080830361298f57600090506129f1565b6000828461299d9190613a9d565b90508284826129ac9190614365565b146129ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e390614408565b60405180910390fd5b809150505b92915050565b6000612a3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c88565b905092915050565b6000806000612a4e612ceb565b91509150612a6581836129f790919063ffffffff16565b9250505090565b6000600c54148015612a8057506000600d54145b612aa757600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612abb87612d86565b955095509550955095509550612b1986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dee90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bae85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bfa81612e96565b612c048483612f53565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612c61919061349f565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc69190613348565b60405180910390fd5b5060008385612cde9190614365565b9050809150509392505050565b6000806000600654905060006009600a612d059190613a52565b6305f5e100612d149190613a9d565b9050612d476009600a612d279190613a52565b6305f5e100612d369190613a9d565b6006546129f790919063ffffffff16565b821015612d79576006546009600a612d5f9190613a52565b6305f5e100612d6e9190613a9d565b935093505050612d82565b81819350935050505b9091565b6000806000806000806000806000612da38a600c54600d54612f8d565b9250925092506000612db3612a41565b90506000806000612dc68e878787613023565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612e3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061237f565b905092915050565b6000808284612e479190613ff3565b905083811015612e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8390614474565b60405180910390fd5b8091505092915050565b6000612ea0612a41565b90506000612eb7828461297d90919063ffffffff16565b9050612f0b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f6882600654612dee90919063ffffffff16565b600681905550612f8381600754612e3890919063ffffffff16565b6007819055505050565b600080600080612fb96064612fab888a61297d90919063ffffffff16565b6129f790919063ffffffff16565b90506000612fe36064612fd5888b61297d90919063ffffffff16565b6129f790919063ffffffff16565b9050600061300c82612ffe858c612dee90919063ffffffff16565b612dee90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061303c858961297d90919063ffffffff16565b90506000613053868961297d90919063ffffffff16565b9050600061306a878961297d90919063ffffffff16565b90506000613093826130858587612dee90919063ffffffff16565b612dee90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61310e826130c5565b810181811067ffffffffffffffff8211171561312d5761312c6130d6565b5b80604052505050565b60006131406130ac565b905061314c8282613105565b919050565b600067ffffffffffffffff82111561316c5761316b6130d6565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131ad82613182565b9050919050565b6131bd816131a2565b81146131c857600080fd5b50565b6000813590506131da816131b4565b92915050565b60006131f36131ee84613151565b613136565b905080838252602082019050602084028301858111156132165761321561317d565b5b835b8181101561323f578061322b88826131cb565b845260208401935050602081019050613218565b5050509392505050565b600082601f83011261325e5761325d6130c0565b5b813561326e8482602086016131e0565b91505092915050565b60006020828403121561328d5761328c6130b6565b5b600082013567ffffffffffffffff8111156132ab576132aa6130bb565b5b6132b784828501613249565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156132fa5780820151818401526020810190506132df565b83811115613309576000848401525b50505050565b600061331a826132c0565b61332481856132cb565b93506133348185602086016132dc565b61333d816130c5565b840191505092915050565b60006020820190508181036000830152613362818461330f565b905092915050565b6000819050919050565b61337d8161336a565b811461338857600080fd5b50565b60008135905061339a81613374565b92915050565b600080604083850312156133b7576133b66130b6565b5b60006133c5858286016131cb565b92505060206133d68582860161338b565b9150509250929050565b60008115159050919050565b6133f5816133e0565b82525050565b600060208201905061341060008301846133ec565b92915050565b6000819050919050565b600061343b61343661343184613182565b613416565b613182565b9050919050565b600061344d82613420565b9050919050565b600061345f82613442565b9050919050565b61346f81613454565b82525050565b600060208201905061348a6000830184613466565b92915050565b6134998161336a565b82525050565b60006020820190506134b46000830184613490565b92915050565b6000806000606084860312156134d3576134d26130b6565b5b60006134e1868287016131cb565b93505060206134f2868287016131cb565b92505060406135038682870161338b565b9150509250925092565b600060ff82169050919050565b6135238161350d565b82525050565b600060208201905061353e600083018461351a565b92915050565b61354d816131a2565b82525050565b60006020820190506135686000830184613544565b92915050565b60006060820190506135836000830186613490565b6135906020830185613490565b61359d6040830184613490565b949350505050565b6000602082840312156135bb576135ba6130b6565b5b60006135c9848285016131cb565b91505092915050565b6135db816133e0565b81146135e657600080fd5b50565b6000813590506135f8816135d2565b92915050565b600060208284031215613614576136136130b6565b5b6000613622848285016135e9565b91505092915050565b600080600060608486031215613644576136436130b6565b5b60006136528682870161338b565b93505060206136638682870161338b565b92505060406136748682870161338b565b9150509250925092565b600060208284031215613694576136936130b6565b5b60006136a28482850161338b565b91505092915050565b600080600080608085870312156136c5576136c46130b6565b5b60006136d38782880161338b565b94505060206136e48782880161338b565b93505060406136f58782880161338b565b92505060606137068782880161338b565b91505092959194509250565b600080fd5b60008083601f84011261372d5761372c6130c0565b5b8235905067ffffffffffffffff81111561374a57613749613712565b5b6020830191508360208202830111156137665761376561317d565b5b9250929050565b600080600060408486031215613786576137856130b6565b5b600084013567ffffffffffffffff8111156137a4576137a36130bb565b5b6137b086828701613717565b935093505060206137c3868287016135e9565b9150509250925092565b600080604083850312156137e4576137e36130b6565b5b60006137f2858286016131cb565b9250506020613803858286016131cb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138436020836132cb565b915061384e8261380d565b602082019050919050565b6000602082019050818103600083015261387281613836565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138e28261336a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613914576139136138a8565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b600185111561397657808604811115613952576139516138a8565b5b60018516156139615780820291505b808102905061396f8561391f565b9450613936565b94509492505050565b60008261398f5760019050613a4b565b8161399d5760009050613a4b565b81600181146139b357600281146139bd576139ec565b6001915050613a4b565b60ff8411156139cf576139ce6138a8565b5b8360020a9150848211156139e6576139e56138a8565b5b50613a4b565b5060208310610133831016604e8410600b8410161715613a215782820a905083811115613a1c57613a1b6138a8565b5b613a4b565b613a2e848484600161392c565b92509050818404811115613a4557613a446138a8565b5b81810290505b9392505050565b6000613a5d8261336a565b9150613a688361350d565b9250613a957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461397f565b905092915050565b6000613aa88261336a565b9150613ab38361336a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613aec57613aeb6138a8565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b536026836132cb565b9150613b5e82613af7565b604082019050919050565b60006020820190508181036000830152613b8281613b46565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613be56024836132cb565b9150613bf082613b89565b604082019050919050565b60006020820190508181036000830152613c1481613bd8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c776022836132cb565b9150613c8282613c1b565b604082019050919050565b60006020820190508181036000830152613ca681613c6a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613d096025836132cb565b9150613d1482613cad565b604082019050919050565b60006020820190508181036000830152613d3881613cfc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d9b6023836132cb565b9150613da682613d3f565b604082019050919050565b60006020820190508181036000830152613dca81613d8e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613e2d6029836132cb565b9150613e3882613dd1565b604082019050919050565b60006020820190508181036000830152613e5c81613e20565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613ebf603f836132cb565b9150613eca82613e63565b604082019050919050565b60006020820190508181036000830152613eee81613eb2565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613f2b601c836132cb565b9150613f3682613ef5565b602082019050919050565b60006020820190508181036000830152613f5a81613f1e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fbd6023836132cb565b9150613fc882613f61565b604082019050919050565b60006020820190508181036000830152613fec81613fb0565b9050919050565b6000613ffe8261336a565b91506140098361336a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561403e5761403d6138a8565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006140a56023836132cb565b91506140b082614049565b604082019050919050565b600060208201905081810360008301526140d481614098565b9050919050565b60006140e68261336a565b91506140f18361336a565b925082821015614104576141036138a8565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061416b602a836132cb565b91506141768261410f565b604082019050919050565b6000602082019050818103600083015261419a8161415e565b9050919050565b6000815190506141b0816131b4565b92915050565b6000602082840312156141cc576141cb6130b6565b5b60006141da848285016141a1565b91505092915050565b6000819050919050565b60006142086142036141fe846141e3565b613416565b61336a565b9050919050565b614218816141ed565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614253816131a2565b82525050565b6000614265838361424a565b60208301905092915050565b6000602082019050919050565b60006142898261421e565b6142938185614229565b935061429e8361423a565b8060005b838110156142cf5781516142b68882614259565b97506142c183614271565b9250506001810190506142a2565b5085935050505092915050565b600060a0820190506142f16000830188613490565b6142fe602083018761420f565b8181036040830152614310818661427e565b905061431f6060830185613544565b61432c6080830184613490565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143708261336a565b915061437b8361336a565b92508261438b5761438a614336565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006143f26021836132cb565b91506143fd82614396565b604082019050919050565b60006020820190508181036000830152614421816143e5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061445e601b836132cb565b915061446982614428565b602082019050919050565b6000602082019050818103600083015261448d81614451565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ff2c3a1fc0518013d59b71284fb3d120aed5f663811425ed4de708d5cc71c24c64736f6c634300080e0033

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

000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f

-----Decoded View---------------
Arg [0] : developmentAddr (address): 0xAE4843C1A1369dDd860f40e9D74DA50919937C3F
Arg [1] : marketingAddr (address): 0xAE4843C1A1369dDd860f40e9D74DA50919937C3F
Arg [2] : devFeeAddr1 (address): 0xAE4843C1A1369dDd860f40e9D74DA50919937C3F
Arg [3] : devFeeAddr2 (address): 0xAE4843C1A1369dDd860f40e9D74DA50919937C3F

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f
Arg [1] : 000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f
Arg [2] : 000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f
Arg [3] : 000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f


Deployed Bytecode Sourcemap

4202:14958:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14072:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7251:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8176:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5511:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7528:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8377:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5823:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7437:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5559:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6010:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14249:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18544:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15257:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13763:301;;;;;;;;;;;;;:::i;:::-;;7631:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1689:148;;;;;;;;;;;;;:::i;:::-;;18684:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5701:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5305:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1475:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13344:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5761:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7342:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18353:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18010:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7777:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5261:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13453:302;;;;;;;;;;;;;:::i;:::-;;18923:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7984:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18800:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1845:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14072:169;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14148:9:::1;14143:91;14167:5;:12;14163:1;:16;14143:91;;;14218:4;14201;:14;14206:5;14212:1;14206:8;;;;;;;;:::i;:::-;;;;;;;;14201:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14181:3;;;;;:::i;:::-;;;;14143:91;;;;14072:169:::0;:::o;7251:83::-;7288:13;7321:5;;;;;;;;;;;;;;;;;7314:12;;7251:83;:::o;8176:193::-;8278:4;8300:39;8309:12;:10;:12::i;:::-;8323:7;8332:6;8300:8;:39::i;:::-;8357:4;8350:11;;8176:193;;;;:::o;5511:41::-;;;;;;;;;;;;;:::o;7528:95::-;7581:7;4428:1;4766:2;:13;;;;:::i;:::-;4754:9;:25;;;;:::i;:::-;7601:14;;7528:95;:::o;8377:446::-;8509:4;8526:36;8536:6;8544:9;8555:6;8526:9;:36::i;:::-;8573:220;8596:6;8617:12;:10;:12::i;:::-;8644:138;8700:6;8644:138;;;;;;;;;;;;;;;;;:11;:19;8656:6;8644:19;;;;;;;;;;;;;;;:33;8664:12;:10;:12::i;:::-;8644:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8573:8;:220::i;:::-;8811:4;8804:11;;8377:446;;;;;:::o;5823:59::-;;;;:::o;7437:83::-;7478:5;4428:1;7496:16;;7437:83;:::o;5559:28::-;;;;;;;;;;;;;:::o;6010:32::-;;;;;;;;;;;;;;;;;;;:::o;14249:92::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14328:5:::1;14313:4;:12;14318:6;14313:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14249:92:::0;:::o;18544:101::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18625:12:::1;18611:11;;:26;;;;;;;;;;;;;;;;;;18544:101:::0;:::o;15257:249::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15403:11:::1;15376:12;:24;;:38;;;;15450:9;15425:12;:22;;:34;;;;15492:6;15470:12;:19;;:28;;;;15257:249:::0;;;:::o;13763:301::-;13829:18;;;;;;;;;;;13813:34;;:12;:10;:12::i;:::-;:34;;;:70;;;;13867:16;;;;;;;;;;;13851:32;;:12;:10;:12::i;:::-;:32;;;13813:70;:104;;;;13903:14;;;;;;;;;;;13887:30;;:12;:10;:12::i;:::-;:30;;;13813:104;:138;;;;13937:14;;;;;;;;;;;13921:30;;:12;:10;:12::i;:::-;:30;;;13813:138;13805:147;;;;;;13963:26;13992:21;13963:50;;14024:32;14037:18;14024:12;:32::i;:::-;13794:270;13763:301::o;7631:138::-;7697:7;7724:37;7744:7;:16;7752:7;7744:16;;;;;;;;;;;;;;;;7724:19;:37::i;:::-;7717:44;;7631:138;;;:::o;1689:148::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1796:1:::1;1759:40;;1780:6;::::0;::::1;;;;;;;;1759:40;;;;;;;;;;;;1827:1;1810:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1689:148::o:0;18684:108::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18773:11:::1;18758:12;:26;;;;18684:108:::0;:::o;5701:53::-;;;;:::o;5305:43::-;;;;;;;;;;;;;;;;;:::o;1475:79::-;1513:7;1540:6;;;;;;;;;;;1533:13;;1475:79;:::o;13344:101::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13425:12:::1;13411:11;;:26;;;;;;;;;;;;;;;;;;13344:101:::0;:::o;5761:55::-;;;;:::o;7342:87::-;7381:13;7414:7;;;;;;;;;;;;;;;;;7407:14;;7342:87;:::o;18353:139::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18466:18:::1;18444:19;:40;;;;18353:139:::0;:::o;18010:291::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18161:13:::1;18144:14;:30;;;;18203:14;18185:15;:32;;;;18243:11;18228:12;:26;;;;18281:12;18265:13;:28;;;;18010:291:::0;;;;:::o;7777:199::-;7882:4;7904:42;7914:12;:10;:12::i;:::-;7928:9;7939:6;7904:9;:42::i;:::-;7964:4;7957:11;;7777:199;;;;:::o;5261:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13453:302::-;13519:18;;;;;;;;;;;13503:34;;:12;:10;:12::i;:::-;:34;;;:70;;;;13557:16;;;;;;;;;;;13541:32;;:12;:10;:12::i;:::-;:32;;;13503:70;:104;;;;13593:14;;;;;;;;;;;13577:30;;:12;:10;:12::i;:::-;:30;;;13503:104;:138;;;;13627:14;;;;;;;;;;;13611:30;;:12;:10;:12::i;:::-;:30;;;13503:138;13495:147;;;;;;13653:23;13679:24;13697:4;13679:9;:24::i;:::-;13653:50;;13714:33;13731:15;13714:16;:33::i;:::-;13484:271;13453:302::o;18923:234::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19040:9:::1;19036:114;19059:8;;:15;;19055:1;:19;19036:114;;;19130:8;19096:18;:31;19115:8;;19124:1;19115:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19096:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19076:3;;;;;:::i;:::-;;;;19036:114;;;;18923:234:::0;;;:::o;7984:184::-;8101:7;8133:11;:18;8145:5;8133:18;;;;;;;;;;;;;;;:27;8152:7;8133:27;;;;;;;;;;;;;;;;8126:34;;7984:184;;;;:::o;18800:115::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18894:13:::1;18877:14;:30;;;;18800:115:::0;:::o;1845:244::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1954:1:::1;1934:22;;:8;:22;;::::0;1926:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2044:8;2015:38;;2036:6;::::0;::::1;;;;;;;;2015:38;;;;;;;;;;;;2073:8;2064:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1845:244:::0;:::o;234:98::-;287:7;314:10;307:17;;234:98;:::o;9514:369::-;9658:1;9641:19;;:5;:19;;;9633:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9739:1;9720:21;;:7;:21;;;9712:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9821:6;9791:11;:18;9803:5;9791:18;;;;;;;;;;;;;;;:27;9810:7;9791:27;;;;;;;;;;;;;;;:36;;;;9859:7;9843:32;;9852:5;9843:32;;;9868:6;9843:32;;;;;;:::i;:::-;;;;;;;;9514:369;;;:::o;9891:2330::-;10029:1;10013:18;;:4;:18;;;10005:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10106:1;10092:16;;:2;:16;;;10084:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10176:1;10167:6;:10;10159:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10248:7;:5;:7::i;:::-;10240:15;;:4;:15;;;;:32;;;;;10265:7;:5;:7::i;:::-;10259:13;;:2;:13;;;;10240:32;10236:1259;;;10329:11;;;;;;;;;;;10324:144;;10377:7;:5;:7::i;:::-;10369:15;;:4;:15;;;10361:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10324:144;10502:12;;10492:6;:22;;10484:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10571:4;:10;10576:4;10571:10;;;;;;;;;;;;;;;;;;;;;;;;;10570:11;:24;;;;;10586:4;:8;10591:2;10586:8;;;;;;;;;;;;;;;;;;;;;;;;;10585:9;10570:24;10562:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10660:13;;;;;;;;;;;10654:19;;:2;:19;;;10651:146;;10727:14;;10718:6;10702:13;10712:2;10702:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10694:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10651:146;10813:28;10844:24;10862:4;10844:9;:24::i;:::-;10813:55;;10883:12;10922:19;;10898:20;:43;;10883:58;;10985:12;;10961:20;:36;10958:124;;11054:12;;11031:35;;10958:124;11102:7;:18;;;;;11114:6;;;;;;;;;;;11113:7;11102:18;:43;;;;;11132:13;;;;;;;;;;;11124:21;;:4;:21;;;;11102:43;:58;;;;;11149:11;;;;;;;;;;;11102:58;:87;;;;;11165:18;:24;11184:4;11165:24;;;;;;;;;;;;;;;;;;;;;;;;;11164:25;11102:87;:114;;;;;11194:18;:22;11213:2;11194:22;;;;;;;;;;;;;;;;;;;;;;;;;11193:23;11102:114;11098:386;;;11237:38;11254:20;11237:16;:38::i;:::-;11294:26;11323:21;11294:50;;11388:1;11367:18;:22;11363:106;;;11414:35;11427:21;11414:12;:35::i;:::-;11363:106;11218:266;11098:386;10274:1221;;10236:1259;11507:12;11522:4;11507:19;;11571:18;:24;11590:4;11571:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11599:18;:22;11618:2;11599:22;;;;;;;;;;;;;;;;;;;;;;;;;11571:50;11570:102;;;;11635:13;;;;;;;;;;;11627:21;;:4;:21;;;;:44;;;;;11658:13;;;;;;;;;;;11652:19;;:2;:19;;;;11627:44;11570:102;11566:594;;;11699:5;11689:15;;11566:594;;;11782:13;;;;;;;;;;;11774:21;;:4;:21;;;:55;;;;;11813:15;;;;;;;;;;;11799:30;;:2;:30;;;;11774:55;11771:162;;;11862:14;;11850:9;:26;;;;11905:12;;11895:7;:22;;;;11771:162;11992:13;;;;;;;;;;;11986:19;;:2;:19;;;:55;;;;;12025:15;;;;;;;;;;;12009:32;;:4;:32;;;;11986:55;11982:165;;;12074:15;;12062:9;:27;;;;12118:13;;12108:7;:23;;;;11982:165;11566:594;12172:41;12187:4;12193:2;12197:6;12205:7;12172:14;:41::i;:::-;9994:2227;9891:2330;;;:::o;2453:224::-;2573:7;2606:1;2601;:6;;2609:12;2593:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2633:9;2649:1;2645;:5;;;;:::i;:::-;2633:17;;2668:1;2661:8;;;2453:224;;;;;:::o;12720:616::-;6145:4;6136:6;;:13;;;;;;;;;;;;;;;;;;12789:23:::1;12815:6;12789:32;;12832:22;12857:52;12905:3;12857:43;12877:12;:22;;;12857:15;:19;;:43;;;;:::i;:::-;:47;;:52;;;;:::i;:::-;12832:77;;12920:19;12942:56;12996:1;12942:49;12987:3;12942:40;12962:12;:19;;;12942:15;:19;;:40;;;;:::i;:::-;:44;;:49;;;;:::i;:::-;:53;;:56;;;;:::i;:::-;12920:78;;13009:24;13036:54;13086:3;13036:45;13056:12;:24;;;13036:15;:19;;:45;;;;:::i;:::-;:49;;:54;;;;:::i;:::-;13009:81;;13109:16;;;;;;;;;;;13101:34;;:50;13136:14;13101:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13170:14;;;;;;;;;;;13162:32;;:45;13195:11;13162:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13226:14;;;;;;;;;;;13218:32;;:45;13251:11;13218:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13282:18;;;;;;;;;;;13274:36;;:54;13311:16;13274:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12778:558;;;;6181:5:::0;6172:6;;:14;;;;;;;;;;;;;;;;;;12720:616;:::o;8831:323::-;8926:7;8984;;8973;:18;;8951:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9072:19;9094:10;:8;:10::i;:::-;9072:32;;9122:24;9134:11;9122:7;:11;;:24;;;;:::i;:::-;9115:31;;;8831:323;;;:::o;12229:483::-;6145:4;6136:6;;:13;;;;;;;;;;;;;;;;;;12307:21:::1;12345:1;12331:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12307:40;;12376:4;12358;12363:1;12358:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12402:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12392:4;12397:1;12392:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12435:62;12452:4;12467:15;;;;;;;;;;;12485:11;12435:8;:62::i;:::-;12508:15;;;;;;;;;;;:66;;;12589:11;12615:1;12631:4;12658;12678:15;12508:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12296:416;6181:5:::0;6172:6;;:14;;;;;;;;;;;;;;;;;;12229:483;:::o;14349:282::-;14505:7;14500:28;;14514:14;:12;:14::i;:::-;14500:28;14539:44;14557:6;14565:9;14576:6;14539:17;:44::i;:::-;14599:7;14594:29;;14608:15;:13;:15::i;:::-;14594:29;14349:282;;;;:::o;2685:246::-;2743:7;2772:1;2767;:6;2763:47;;2797:1;2790:8;;;;2763:47;2820:9;2836:1;2832;:5;;;;:::i;:::-;2820:17;;2865:1;2860;2856;:5;;;;:::i;:::-;:10;2848:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2922:1;2915:8;;;2685:246;;;;;:::o;2939:132::-;2997:7;3024:39;3028:1;3031;3024:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3017:46;;2939:132;;;;:::o;17573:164::-;17615:7;17636:15;17653;17672:19;:17;:19::i;:::-;17635:56;;;;17709:20;17721:7;17709;:11;;:20;;;;:::i;:::-;17702:27;;;;17573:164;:::o;9162:219::-;9222:1;9209:9;;:14;:30;;;;;9238:1;9227:7;;:12;9209:30;9241:7;9205:43;9280:9;;9260:17;:29;;;;9318:7;;9300:15;:25;;;;9350:1;9338:9;:13;;;;9372:1;9362:7;:11;;;;9162:219;:::o;14639:610::-;14786:15;14816:23;14854:12;14881:23;14919:12;14946:13;14973:19;14984:7;14973:10;:19::i;:::-;14771:221;;;;;;;;;;;;15021:28;15041:7;15021;:15;15029:6;15021:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15003:7;:15;15011:6;15003:15;;;;;;;;;;;;;;;:46;;;;15081:39;15104:15;15081:7;:18;15089:9;15081:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15060:7;:18;15068:9;15060:18;;;;;;;;;;;;;;;:60;;;;15131:16;15141:5;15131:9;:16::i;:::-;15158:23;15170:4;15176;15158:11;:23::i;:::-;15214:9;15197:44;;15206:6;15197:44;;;15225:15;15197:44;;;;;;:::i;:::-;;;;;;;;14760:489;;;;;;14639:610;;;:::o;9389:117::-;9445:17;;9433:9;:29;;;;9483:15;;9473:7;:25;;;;9389:117::o;3079:223::-;3199:7;3231:1;3227;:5;3234:12;3219:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3258:9;3274:1;3270;:5;;;;:::i;:::-;3258:17;;3293:1;3286:8;;;3079:223;;;;;:::o;17745:257::-;17796:7;17805;17825:15;17843:7;;17825:25;;17861:15;4428:1;4766:2;:13;;;;:::i;:::-;4754:9;:25;;;;:::i;:::-;17861;;17911:20;4428:1;4766:2;:13;;;;:::i;:::-;4754:9;:25;;;;:::i;:::-;17911:7;;:11;;:20;;;;:::i;:::-;17901:7;:30;17897:61;;;17941:7;;4428:1;4766:2;:13;;;;:::i;:::-;4754:9;:25;;;;:::i;:::-;17933;;;;;;;;17897:61;17977:7;17986;17969:25;;;;;;17745:257;;;:::o;15931:615::-;16031:7;16053;16075;16097;16119;16141;16177:23;16202:12;16216:13;16246:40;16258:7;16267:9;;16278:7;;16246:11;:40::i;:::-;16176:110;;;;;;16297:19;16319:10;:8;:10::i;:::-;16297:32;;16341:15;16358:23;16383:12;16412:46;16424:7;16433:4;16439:5;16446:11;16412;:46::i;:::-;16340:118;;;;;;16477:7;16486:15;16503:4;16509:15;16526:4;16532:5;16469:69;;;;;;;;;;;;;;;;;;;15931:615;;;;;;;:::o;2309:136::-;2367:7;2394:43;2398:1;2401;2394:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2387:50;;2309:136;;;;:::o;2122:179::-;2180:7;2200:9;2216:1;2212;:5;;;;:::i;:::-;2200:17;;2241:1;2236;:6;;2228:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2292:1;2285:8;;;2122:179;;;;:::o;15514:211::-;15567:19;15589:10;:8;:10::i;:::-;15567:32;;15610:13;15626:22;15636:11;15626:5;:9;;:22;;;;:::i;:::-;15610:38;;15684:33;15711:5;15684:7;:22;15700:4;15684:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15659:7;:22;15675:4;15659:22;;;;;;;;;;;;;;;:58;;;;15556:169;;15514:211;:::o;15733:147::-;15811:17;15823:4;15811:7;;:11;;:17;;;;:::i;:::-;15801:7;:27;;;;15852:20;15867:4;15852:10;;:14;;:20;;;;:::i;:::-;15839:10;:33;;;;15733:147;;:::o;16554:469::-;16723:7;16745;16767;16802:12;16817:30;16843:3;16817:21;16829:8;16817:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16802:45;;16858:13;16874:28;16898:3;16874:19;16886:6;16874:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16858:44;;16913:23;16939:28;16961:5;16939:17;16951:4;16939:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16913:54;;16986:15;17003:4;17009:5;16978:37;;;;;;;;;16554:469;;;;;;;:::o;17031:534::-;17225:7;17247;17269;17304:15;17322:24;17334:11;17322:7;:11;;:24;;;;:::i;:::-;17304:42;;17357:12;17372:21;17381:11;17372:4;:8;;:21;;;;:::i;:::-;17357:36;;17404:13;17420:22;17430:11;17420:5;:9;;:22;;;;:::i;:::-;17404:38;;17453:23;17479:28;17501:5;17479:17;17491:4;17479:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17453:54;;17526:7;17535:15;17552:4;17518:39;;;;;;;;;;17031: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:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:442::-;9217:4;9255:2;9244:9;9240:18;9232:26;;9268:71;9336:1;9325:9;9321:17;9312:6;9268:71;:::i;:::-;9349:72;9417:2;9406:9;9402:18;9393:6;9349:72;:::i;:::-;9431;9499:2;9488:9;9484:18;9475:6;9431:72;:::i;:::-;9068:442;;;;;;:::o;9516:329::-;9575:6;9624:2;9612:9;9603:7;9599:23;9595:32;9592:119;;;9630:79;;:::i;:::-;9592:119;9750:1;9775:53;9820:7;9811:6;9800:9;9796:22;9775:53;:::i;:::-;9765:63;;9721:117;9516:329;;;;:::o;9851:116::-;9921:21;9936:5;9921:21;:::i;:::-;9914:5;9911:32;9901:60;;9957:1;9954;9947:12;9901:60;9851:116;:::o;9973:133::-;10016:5;10054:6;10041:20;10032:29;;10070:30;10094:5;10070:30;:::i;:::-;9973:133;;;;:::o;10112:323::-;10168:6;10217:2;10205:9;10196:7;10192:23;10188:32;10185:119;;;10223:79;;:::i;:::-;10185:119;10343:1;10368:50;10410:7;10401:6;10390:9;10386:22;10368:50;:::i;:::-;10358:60;;10314:114;10112:323;;;;:::o;10441:619::-;10518:6;10526;10534;10583:2;10571:9;10562:7;10558:23;10554:32;10551:119;;;10589:79;;:::i;:::-;10551:119;10709:1;10734:53;10779:7;10770:6;10759:9;10755:22;10734:53;:::i;:::-;10724:63;;10680:117;10836:2;10862:53;10907:7;10898:6;10887:9;10883:22;10862:53;:::i;:::-;10852:63;;10807:118;10964:2;10990:53;11035:7;11026:6;11015:9;11011:22;10990:53;:::i;:::-;10980:63;;10935:118;10441:619;;;;;:::o;11066:329::-;11125:6;11174:2;11162:9;11153:7;11149:23;11145:32;11142:119;;;11180:79;;:::i;:::-;11142:119;11300:1;11325:53;11370:7;11361:6;11350:9;11346:22;11325:53;:::i;:::-;11315:63;;11271:117;11066:329;;;;:::o;11401:765::-;11487:6;11495;11503;11511;11560:3;11548:9;11539:7;11535:23;11531:33;11528:120;;;11567:79;;:::i;:::-;11528:120;11687:1;11712:53;11757:7;11748:6;11737:9;11733:22;11712:53;:::i;:::-;11702:63;;11658:117;11814:2;11840:53;11885:7;11876:6;11865:9;11861:22;11840:53;:::i;:::-;11830:63;;11785:118;11942:2;11968:53;12013:7;12004:6;11993:9;11989:22;11968:53;:::i;:::-;11958:63;;11913:118;12070:2;12096:53;12141:7;12132:6;12121:9;12117:22;12096:53;:::i;:::-;12086:63;;12041:118;11401:765;;;;;;;:::o;12172:117::-;12281:1;12278;12271:12;12312:568;12385:8;12395:6;12445:3;12438:4;12430:6;12426:17;12422:27;12412:122;;12453:79;;:::i;:::-;12412:122;12566:6;12553:20;12543:30;;12596:18;12588:6;12585:30;12582:117;;;12618:79;;:::i;:::-;12582:117;12732:4;12724:6;12720:17;12708:29;;12786:3;12778:4;12770:6;12766:17;12756:8;12752:32;12749:41;12746:128;;;12793:79;;:::i;:::-;12746:128;12312:568;;;;;:::o;12886:698::-;12978:6;12986;12994;13043:2;13031:9;13022:7;13018:23;13014:32;13011:119;;;13049:79;;:::i;:::-;13011:119;13197:1;13186:9;13182:17;13169:31;13227:18;13219:6;13216:30;13213:117;;;13249:79;;:::i;:::-;13213:117;13362:80;13434:7;13425:6;13414:9;13410:22;13362:80;:::i;:::-;13344:98;;;;13140:312;13491:2;13517:50;13559:7;13550:6;13539:9;13535:22;13517:50;:::i;:::-;13507:60;;13462:115;12886:698;;;;;:::o;13590:474::-;13658:6;13666;13715:2;13703:9;13694:7;13690:23;13686:32;13683:119;;;13721:79;;:::i;:::-;13683:119;13841:1;13866:53;13911:7;13902:6;13891:9;13887:22;13866:53;:::i;:::-;13856:63;;13812:117;13968:2;13994:53;14039:7;14030:6;14019:9;14015:22;13994:53;:::i;:::-;13984:63;;13939:118;13590:474;;;;;:::o;14070:182::-;14210:34;14206:1;14198:6;14194:14;14187:58;14070:182;:::o;14258:366::-;14400:3;14421:67;14485:2;14480:3;14421:67;:::i;:::-;14414:74;;14497:93;14586:3;14497:93;:::i;:::-;14615:2;14610:3;14606:12;14599:19;;14258:366;;;:::o;14630:419::-;14796:4;14834:2;14823:9;14819:18;14811:26;;14883:9;14877:4;14873:20;14869:1;14858:9;14854:17;14847:47;14911:131;15037:4;14911:131;:::i;:::-;14903:139;;14630:419;;;:::o;15055:180::-;15103:77;15100:1;15093:88;15200:4;15197:1;15190:15;15224:4;15221:1;15214:15;15241:180;15289:77;15286:1;15279:88;15386:4;15383:1;15376:15;15410:4;15407:1;15400:15;15427:233;15466:3;15489:24;15507:5;15489:24;:::i;:::-;15480:33;;15535:66;15528:5;15525:77;15522:103;;15605:18;;:::i;:::-;15522:103;15652:1;15645:5;15641:13;15634:20;;15427:233;;;:::o;15666:102::-;15708:8;15755:5;15752:1;15748:13;15727:34;;15666:102;;;:::o;15774:848::-;15835:5;15842:4;15866:6;15857:15;;15890:5;15881:14;;15904:712;15925:1;15915:8;15912:15;15904:712;;;16020:4;16015:3;16011:14;16005:4;16002:24;15999:50;;;16029:18;;:::i;:::-;15999:50;16079:1;16069:8;16065:16;16062:451;;;16494:4;16487:5;16483:16;16474:25;;16062:451;16544:4;16538;16534:15;16526:23;;16574:32;16597:8;16574:32;:::i;:::-;16562:44;;15904:712;;;15774:848;;;;;;;:::o;16628:1073::-;16682:5;16873:8;16863:40;;16894:1;16885:10;;16896:5;;16863:40;16922:4;16912:36;;16939:1;16930:10;;16941:5;;16912:36;17008:4;17056:1;17051:27;;;;17092:1;17087:191;;;;17001:277;;17051:27;17069:1;17060:10;;17071:5;;;17087:191;17132:3;17122:8;17119:17;17116:43;;;17139:18;;:::i;:::-;17116:43;17188:8;17185:1;17181:16;17172:25;;17223:3;17216:5;17213:14;17210:40;;;17230:18;;:::i;:::-;17210:40;17263:5;;;17001:277;;17387:2;17377:8;17374:16;17368:3;17362:4;17359:13;17355:36;17337:2;17327:8;17324:16;17319:2;17313:4;17310:12;17306:35;17290:111;17287:246;;;17443:8;17437:4;17433:19;17424:28;;17478:3;17471:5;17468:14;17465:40;;;17485:18;;:::i;:::-;17465:40;17518:5;;17287:246;17558:42;17596:3;17586:8;17580:4;17577:1;17558:42;:::i;:::-;17543:57;;;;17632:4;17627:3;17623:14;17616:5;17613:25;17610:51;;;17641:18;;:::i;:::-;17610:51;17690:4;17683:5;17679:16;17670:25;;16628:1073;;;;;;:::o;17707:281::-;17765:5;17789:23;17807:4;17789:23;:::i;:::-;17781:31;;17833:25;17849:8;17833:25;:::i;:::-;17821:37;;17877:104;17914:66;17904:8;17898:4;17877:104;:::i;:::-;17868:113;;17707:281;;;;:::o;17994:348::-;18034:7;18057:20;18075:1;18057:20;:::i;:::-;18052:25;;18091:20;18109:1;18091:20;:::i;:::-;18086:25;;18279:1;18211:66;18207:74;18204:1;18201:81;18196:1;18189:9;18182:17;18178:105;18175:131;;;18286:18;;:::i;:::-;18175:131;18334:1;18331;18327:9;18316:20;;17994:348;;;;:::o;18348:225::-;18488:34;18484:1;18476:6;18472:14;18465:58;18557:8;18552:2;18544:6;18540:15;18533:33;18348:225;:::o;18579:366::-;18721:3;18742:67;18806:2;18801:3;18742:67;:::i;:::-;18735:74;;18818:93;18907:3;18818:93;:::i;:::-;18936:2;18931:3;18927:12;18920:19;;18579:366;;;:::o;18951:419::-;19117:4;19155:2;19144:9;19140:18;19132:26;;19204:9;19198:4;19194:20;19190:1;19179:9;19175:17;19168:47;19232:131;19358:4;19232:131;:::i;:::-;19224:139;;18951:419;;;:::o;19376:223::-;19516:34;19512:1;19504:6;19500:14;19493:58;19585:6;19580:2;19572:6;19568:15;19561:31;19376:223;:::o;19605:366::-;19747:3;19768:67;19832:2;19827:3;19768:67;:::i;:::-;19761:74;;19844:93;19933:3;19844:93;:::i;:::-;19962:2;19957:3;19953:12;19946:19;;19605:366;;;:::o;19977:419::-;20143:4;20181:2;20170:9;20166:18;20158:26;;20230:9;20224:4;20220:20;20216:1;20205:9;20201:17;20194:47;20258:131;20384:4;20258:131;:::i;:::-;20250:139;;19977:419;;;:::o;20402:221::-;20542:34;20538:1;20530:6;20526:14;20519:58;20611:4;20606:2;20598:6;20594:15;20587:29;20402:221;:::o;20629:366::-;20771:3;20792:67;20856:2;20851:3;20792:67;:::i;:::-;20785:74;;20868:93;20957:3;20868:93;:::i;:::-;20986:2;20981:3;20977:12;20970:19;;20629:366;;;:::o;21001:419::-;21167:4;21205:2;21194:9;21190:18;21182:26;;21254:9;21248:4;21244:20;21240:1;21229:9;21225:17;21218:47;21282:131;21408:4;21282:131;:::i;:::-;21274:139;;21001:419;;;:::o;21426:224::-;21566:34;21562:1;21554:6;21550:14;21543:58;21635:7;21630:2;21622:6;21618:15;21611:32;21426:224;:::o;21656:366::-;21798:3;21819:67;21883:2;21878:3;21819:67;:::i;:::-;21812:74;;21895:93;21984:3;21895:93;:::i;:::-;22013:2;22008:3;22004:12;21997:19;;21656:366;;;:::o;22028:419::-;22194:4;22232:2;22221:9;22217:18;22209:26;;22281:9;22275:4;22271:20;22267:1;22256:9;22252:17;22245:47;22309:131;22435:4;22309:131;:::i;:::-;22301:139;;22028:419;;;:::o;22453:222::-;22593:34;22589:1;22581:6;22577:14;22570:58;22662:5;22657:2;22649:6;22645:15;22638:30;22453:222;:::o;22681:366::-;22823:3;22844:67;22908:2;22903:3;22844:67;:::i;:::-;22837:74;;22920:93;23009:3;22920:93;:::i;:::-;23038:2;23033:3;23029:12;23022:19;;22681:366;;;:::o;23053:419::-;23219:4;23257:2;23246:9;23242:18;23234:26;;23306:9;23300:4;23296:20;23292:1;23281:9;23277:17;23270:47;23334:131;23460:4;23334:131;:::i;:::-;23326:139;;23053:419;;;:::o;23478:228::-;23618:34;23614:1;23606:6;23602:14;23595:58;23687:11;23682:2;23674:6;23670:15;23663:36;23478:228;:::o;23712:366::-;23854:3;23875:67;23939:2;23934:3;23875:67;:::i;:::-;23868:74;;23951:93;24040:3;23951:93;:::i;:::-;24069:2;24064:3;24060:12;24053:19;;23712:366;;;:::o;24084:419::-;24250:4;24288:2;24277:9;24273:18;24265:26;;24337:9;24331:4;24327:20;24323:1;24312:9;24308:17;24301:47;24365:131;24491:4;24365:131;:::i;:::-;24357:139;;24084:419;;;:::o;24509:250::-;24649:34;24645:1;24637:6;24633:14;24626:58;24718:33;24713:2;24705:6;24701:15;24694:58;24509:250;:::o;24765:366::-;24907:3;24928:67;24992:2;24987:3;24928:67;:::i;:::-;24921:74;;25004:93;25093:3;25004:93;:::i;:::-;25122:2;25117:3;25113:12;25106:19;;24765:366;;;:::o;25137:419::-;25303:4;25341:2;25330:9;25326:18;25318:26;;25390:9;25384:4;25380:20;25376:1;25365:9;25361:17;25354:47;25418:131;25544:4;25418:131;:::i;:::-;25410:139;;25137:419;;;:::o;25562:178::-;25702:30;25698:1;25690:6;25686:14;25679:54;25562:178;:::o;25746:366::-;25888:3;25909:67;25973:2;25968:3;25909:67;:::i;:::-;25902:74;;25985:93;26074:3;25985:93;:::i;:::-;26103:2;26098:3;26094:12;26087:19;;25746:366;;;:::o;26118:419::-;26284:4;26322:2;26311:9;26307:18;26299:26;;26371:9;26365:4;26361:20;26357:1;26346:9;26342:17;26335:47;26399:131;26525:4;26399:131;:::i;:::-;26391:139;;26118:419;;;:::o;26543:222::-;26683:34;26679:1;26671:6;26667:14;26660:58;26752:5;26747:2;26739:6;26735:15;26728:30;26543:222;:::o;26771:366::-;26913:3;26934:67;26998:2;26993:3;26934:67;:::i;:::-;26927:74;;27010:93;27099:3;27010:93;:::i;:::-;27128:2;27123:3;27119:12;27112:19;;26771:366;;;:::o;27143:419::-;27309:4;27347:2;27336:9;27332:18;27324:26;;27396:9;27390:4;27386:20;27382:1;27371:9;27367:17;27360:47;27424:131;27550:4;27424:131;:::i;:::-;27416:139;;27143:419;;;:::o;27568:305::-;27608:3;27627:20;27645:1;27627:20;:::i;:::-;27622:25;;27661:20;27679:1;27661:20;:::i;:::-;27656:25;;27815:1;27747:66;27743:74;27740:1;27737:81;27734:107;;;27821:18;;:::i;:::-;27734:107;27865:1;27862;27858:9;27851:16;;27568:305;;;;:::o;27879:222::-;28019:34;28015:1;28007:6;28003:14;27996:58;28088:5;28083:2;28075:6;28071:15;28064:30;27879:222;:::o;28107:366::-;28249:3;28270:67;28334:2;28329:3;28270:67;:::i;:::-;28263:74;;28346:93;28435:3;28346:93;:::i;:::-;28464:2;28459:3;28455:12;28448:19;;28107:366;;;:::o;28479:419::-;28645:4;28683:2;28672:9;28668:18;28660:26;;28732:9;28726:4;28722:20;28718:1;28707:9;28703:17;28696:47;28760:131;28886:4;28760:131;:::i;:::-;28752:139;;28479:419;;;:::o;28904:191::-;28944:4;28964:20;28982:1;28964:20;:::i;:::-;28959:25;;28998:20;29016:1;28998:20;:::i;:::-;28993:25;;29037:1;29034;29031:8;29028:34;;;29042:18;;:::i;:::-;29028:34;29087:1;29084;29080:9;29072:17;;28904:191;;;;:::o;29101:229::-;29241:34;29237:1;29229:6;29225:14;29218:58;29310:12;29305:2;29297:6;29293:15;29286:37;29101:229;:::o;29336:366::-;29478:3;29499:67;29563:2;29558:3;29499:67;:::i;:::-;29492:74;;29575:93;29664:3;29575:93;:::i;:::-;29693:2;29688:3;29684:12;29677:19;;29336:366;;;:::o;29708:419::-;29874:4;29912:2;29901:9;29897:18;29889:26;;29961:9;29955:4;29951:20;29947:1;29936:9;29932:17;29925:47;29989:131;30115:4;29989:131;:::i;:::-;29981:139;;29708:419;;;:::o;30133:143::-;30190:5;30221:6;30215:13;30206:22;;30237:33;30264:5;30237:33;:::i;:::-;30133:143;;;;:::o;30282:351::-;30352:6;30401:2;30389:9;30380:7;30376:23;30372:32;30369:119;;;30407:79;;:::i;:::-;30369:119;30527:1;30552:64;30608:7;30599:6;30588:9;30584:22;30552:64;:::i;:::-;30542:74;;30498:128;30282:351;;;;:::o;30639:85::-;30684:7;30713:5;30702:16;;30639:85;;;:::o;30730:158::-;30788:9;30821:61;30839:42;30848:32;30874:5;30848:32;:::i;:::-;30839:42;:::i;:::-;30821:61;:::i;:::-;30808:74;;30730:158;;;:::o;30894:147::-;30989:45;31028:5;30989:45;:::i;:::-;30984:3;30977:58;30894:147;;:::o;31047:114::-;31114:6;31148:5;31142:12;31132:22;;31047:114;;;:::o;31167:184::-;31266:11;31300:6;31295:3;31288:19;31340:4;31335:3;31331:14;31316:29;;31167:184;;;;:::o;31357:132::-;31424:4;31447:3;31439:11;;31477:4;31472:3;31468:14;31460:22;;31357:132;;;:::o;31495:108::-;31572:24;31590:5;31572:24;:::i;:::-;31567:3;31560:37;31495:108;;:::o;31609:179::-;31678:10;31699:46;31741:3;31733:6;31699:46;:::i;:::-;31777:4;31772:3;31768:14;31754:28;;31609:179;;;;:::o;31794:113::-;31864:4;31896;31891:3;31887:14;31879:22;;31794:113;;;:::o;31943:732::-;32062:3;32091:54;32139:5;32091:54;:::i;:::-;32161:86;32240:6;32235:3;32161:86;:::i;:::-;32154:93;;32271:56;32321:5;32271:56;:::i;:::-;32350:7;32381:1;32366:284;32391:6;32388:1;32385:13;32366:284;;;32467:6;32461:13;32494:63;32553:3;32538:13;32494:63;:::i;:::-;32487:70;;32580:60;32633:6;32580:60;:::i;:::-;32570:70;;32426:224;32413:1;32410;32406:9;32401:14;;32366:284;;;32370:14;32666:3;32659:10;;32067:608;;;31943:732;;;;:::o;32681:831::-;32944:4;32982:3;32971:9;32967:19;32959:27;;32996:71;33064:1;33053:9;33049:17;33040:6;32996:71;:::i;:::-;33077:80;33153:2;33142:9;33138:18;33129:6;33077:80;:::i;:::-;33204:9;33198:4;33194:20;33189:2;33178:9;33174:18;33167:48;33232:108;33335:4;33326:6;33232:108;:::i;:::-;33224:116;;33350:72;33418:2;33407:9;33403:18;33394:6;33350:72;:::i;:::-;33432:73;33500:3;33489:9;33485:19;33476:6;33432:73;:::i;:::-;32681:831;;;;;;;;:::o;33518:180::-;33566:77;33563:1;33556:88;33663:4;33660:1;33653:15;33687:4;33684:1;33677:15;33704:185;33744:1;33761:20;33779:1;33761:20;:::i;:::-;33756:25;;33795:20;33813:1;33795:20;:::i;:::-;33790:25;;33834:1;33824:35;;33839:18;;:::i;:::-;33824:35;33881:1;33878;33874:9;33869:14;;33704:185;;;;:::o;33895:220::-;34035:34;34031:1;34023:6;34019:14;34012:58;34104:3;34099:2;34091:6;34087:15;34080:28;33895:220;:::o;34121:366::-;34263:3;34284:67;34348:2;34343:3;34284:67;:::i;:::-;34277:74;;34360:93;34449:3;34360:93;:::i;:::-;34478:2;34473:3;34469:12;34462:19;;34121:366;;;:::o;34493:419::-;34659:4;34697:2;34686:9;34682:18;34674:26;;34746:9;34740:4;34736:20;34732:1;34721:9;34717:17;34710:47;34774:131;34900:4;34774:131;:::i;:::-;34766:139;;34493:419;;;:::o;34918:177::-;35058:29;35054:1;35046:6;35042:14;35035:53;34918:177;:::o;35101:366::-;35243:3;35264:67;35328:2;35323:3;35264:67;:::i;:::-;35257:74;;35340:93;35429:3;35340:93;:::i;:::-;35458:2;35453:3;35449:12;35442:19;;35101:366;;;:::o;35473:419::-;35639:4;35677:2;35666:9;35662:18;35654:26;;35726:9;35720:4;35716:20;35712:1;35701:9;35697:17;35690:47;35754:131;35880:4;35754:131;:::i;:::-;35746:139;;35473:419;;;:::o

Swarm Source

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