ETH Price: $2,295.02 (+0.31%)

Token

BONEKILLER ($BONER)
 

Overview

Max Total Supply

1,000,000,000,000 $BONER

Holders

33

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.719357421 $BONER

Value
$0.00
0x718c9b0537b1c4b9fbf38a1db89f6393174ef492
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:
BONEKILLER

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-25
*/

//Telegram: https://t.me/Bone_Killer
//Twitter: https://twitter.com/bone_killer1
//Website: https://bonekiller.club/


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

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

// Dex Factory contract interface
interface IDexFactory {
    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);
}

// Dex Router contract interface
interface IDexRouter {
    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);

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

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

    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 = payable(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;
    }
}

contract BONEKILLER is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isExcludedFromMaxTxn;
    mapping(address => bool) public isExcludedFromMaxHolding;

    string private _name = "BONEKILLER";
    string private _symbol = "$BONER";
    uint8 private _decimals = 9;
    uint256 private _totalSupply = 1_000_000_000_000 * 1e9;

    address private constant DEAD = address(0xdead);
    address private constant ZERO = address(0);
    IDexRouter public dexRouter;
    address public dexPair;
    address public marketingWallet;

    uint256 public minTokenToSwap = _totalSupply.div(1e5); // this amount will trigger swap and distribute
    uint256 public maxHoldLimit = _totalSupply.mul(3).div(100); // this is the max wallet holding limit
    uint256 public botFee = 990;
    uint256 public percentDivider = 1000;
    uint256 public snipingTime = 60 seconds;
    uint256 public launchedAt;

    bool public autoSwapStatus; // should be true to auto swap
    bool public feesStatus; // enable by default
    bool public trading; // once enable can't be disable afterwards

    uint256 public marketingFeeOnBuying = 200; // 3% will be added to the marketing address

    uint256 public marketingFeeOnSelling = 500; // 3% will be added to the marketing address

    constructor() {
        _balances[owner()] = _totalSupply;
        marketingWallet = address(0xa3F21a62533D5099E3803Ec3f42c4F98a506Bd61);

        IDexRouter _dexRouter = IDexRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        // Create a dex pair for this new ERC20
        address _dexPair = IDexFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );
        dexPair = _dexPair;

        // set the rest of the contract variables
        dexRouter = _dexRouter;

        //exclude owner and this contract from fee
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        //exclude owner and this contract from max Txn
        isExcludedFromMaxTxn[owner()] = true;
        isExcludedFromMaxTxn[address(this)] = true;
        isExcludedFromMaxTxn[address(dexRouter)] = true;

        //exclude owner and this contract from max hold limit
        isExcludedFromMaxHolding[owner()] = true;
        isExcludedFromMaxHolding[address(this)] = true;
        isExcludedFromMaxHolding[address(dexRouter)] = true;
        isExcludedFromMaxHolding[dexPair] = true;
        isExcludedFromMaxHolding[marketingWallet] = true;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    //to receive ETH from dexRouter when swapping
    receive() external payable {}

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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,
                "$BONEKILLER: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "$BONEKILLER: decreased allowance or below zero"
            )
        );
        return true;
    }

    function includeOrExcludeFromFee(
        address account,
        bool value
    ) external onlyOwner {
        isExcludedFromFee[account] = value;
    }

    function includeOrExcludeFromMaxTxn(
        address account,
        bool value
    ) external onlyOwner {
        isExcludedFromMaxTxn[account] = value;
    }

    function includeOrExcludeFromMaxHolding(
        address account,
        bool value
    ) external onlyOwner {
        isExcludedFromMaxHolding[account] = value;
    }

    function setMinTokenToSwap(uint256 _amount) external onlyOwner {
        require(_amount > 0, "$BONEKILLER: can't be 0");
        minTokenToSwap = _amount;
    }

    function setMaxHoldLimit(uint256 _amount) external onlyOwner {
        require(
            _amount >= _totalSupply.div(percentDivider),
            "$BONEKILLER: should be greater than 0.1%"
        );
        maxHoldLimit = _amount;
    }

    function setBuyFeePercent(uint256 _marketingFee) external onlyOwner {
        marketingFeeOnBuying = _marketingFee;
        require(
            _marketingFee <= percentDivider.mul(15).div(100),
            "$BONEKILLER: can't be more than 15%"
        );
    }

    function setSellFeePercent(uint256 _marketingFee) external onlyOwner {
        marketingFeeOnSelling = _marketingFee;
        require(
            _marketingFee <= percentDivider.mul(15).div(100),
            "$BONEKILLER: can't be more than 15%"
        );
    }

    function setDistributionStatus(bool _value) public onlyOwner {
        autoSwapStatus = _value;
    }

    function enableOrDisableFees(bool _value) external onlyOwner {
        feesStatus = _value;
    }

    function updateAddresses(address _marketingWallet) external onlyOwner {
        marketingWallet = _marketingWallet;
    }

    function enableTrading() external onlyOwner {
        require(!trading, "$BONEKILLER: already enabled");
        trading = true;
        feesStatus = true;
        autoSwapStatus = true;
        launchedAt = block.timestamp;
    }

    function removeStuckEth(address _receiver) public onlyOwner {
        payable(_receiver).transfer(address(this).balance);
    }

    function totalBuyFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = amount.mul(marketingFeeOnBuying).div(percentDivider);
        return fee;
    }

    function totalSellFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = amount.mul(marketingFeeOnSelling).div(percentDivider);
        return fee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "$BONEKILLER: approve from the zero address");
        require(spender != address(0), "$BONEKILLER: 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), "$BONEKILLER: transfer from the zero address");
        require(to != address(0), "$BONEKILLER: transfer to the zero address");
        require(amount > 0, "$BONEKILLER: Amount must be greater than zero");

        if (!isExcludedFromMaxTxn[from] && !isExcludedFromMaxTxn[to]) {
            // trading disable till launch
            if (!trading) {
                require(
                    dexPair != from && dexPair != to,
                    "$BONEKILLER: trading is disable"
                );
            }
        }

        if (!isExcludedFromMaxHolding[to]) {
            require(
                balanceOf(to).add(amount) <= maxHoldLimit,
                "$BONEKILLER: max hold limit exceeds"
            );
        }

        // swap and liquify
        distributeAndLiquify(from, to);

        //indicates if fee should be deducted from transfer
        bool takeFee = true;

        //if any account belongs to isExcludedFromFee account then remove the fee
        if (isExcludedFromFee[from] || isExcludedFromFee[to] || !feesStatus) {
            takeFee = false;
        }

        //transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from, to, amount, takeFee);
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (dexPair == sender && takeFee) {
            uint256 allFee;
            uint256 tTransferAmount;
            // antibot
            if (
                block.timestamp < launchedAt + snipingTime &&
                sender != address(dexRouter)
            ) {
                allFee = amount.mul(botFee).div(percentDivider);
                tTransferAmount = amount.sub(allFee);
            } else {
                allFee = totalBuyFeePerTx(amount);
                tTransferAmount = amount.sub(allFee);
            }

            _balances[sender] = _balances[sender].sub(
                amount,
                "$BONEKILLER: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(tTransferAmount);
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
        } else if (dexPair == recipient && takeFee) {
            uint256 allFee = totalSellFeePerTx(amount);
            uint256 tTransferAmount = amount.sub(allFee);
            _balances[sender] = _balances[sender].sub(
                amount,
                "$BONEKILLER: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(tTransferAmount);
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
        } else {
            _balances[sender] = _balances[sender].sub(
                amount,
                "$BONEKILLER: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        }
    }

    function takeTokenFee(address sender, uint256 amount) private {
        _balances[address(this)] = _balances[address(this)].add(amount);

        emit Transfer(sender, address(this), amount);
    }

    function distributeAndLiquify(address from, address to) private {
        // is the token balance of this contract address over the min number of
        // tokens that we need to initiate a swap + liquidity lock?
        // also, don't get caught in a circular liquidity event.
        // also, don't swap & liquify if sender is Dex pair.
        uint256 contractTokenBalance = balanceOf(address(this));

        bool shouldSell = contractTokenBalance >= minTokenToSwap;

        if (
            shouldSell &&
            from != dexPair &&
            autoSwapStatus &&
            !(from == address(this) && to == dexPair) // swap 1 time
        ) {
            // approve contract
            _approve(address(this), address(dexRouter), minTokenToSwap);

            // now is to lock into liquidty pool
            Utils.swapTokensForEth(address(dexRouter), minTokenToSwap);

            uint256 ethForMarketing = address(this).balance;

            // sending Eth to Marketing wallet
            if (ethForMarketing > 0)
                payable(marketingWallet).transfer(ethForMarketing);
        }
    }
}

// Library for doing a swap on Dex
library Utils {
    using SafeMath for uint256;

    function swapTokensForEth(
        address routerAddress,
        uint256 tokenAmount
    ) internal {
        IDexRouter dexRouter = IDexRouter(routerAddress);

        // generate the Dex pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp + 300
        );
    }
}

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) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"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":[],"name":"autoSwapStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"enableOrDisableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxHolding","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"removeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setDistributionStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxHoldLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMinTokenToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalBuyFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalSellFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"_marketingWallet","type":"address"}],"name":"updateAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600a81526020017f424f4e454b494c4c455200000000000000000000000000000000000000000000815250600690805190602001906200005192919062000b56565b506040518060400160405280600681526020017f24424f4e45520000000000000000000000000000000000000000000000000000815250600790805190602001906200009f92919062000b56565b506009600860006101000a81548160ff021916908360ff160217905550683635c9adc5dea00000600955620000e8620186a0600954620009e760201b62001f531790919060201c565b600d556200012260646200010e600360095462000a3960201b62001f9d1790919060201c565b620009e760201b62001f531790919060201c565b600e556103de600f556103e8601055603c60115560c86014556101f46015553480156200014e57600080fd5b506200015f62000abd60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600954600160006200023062000ac560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555073a3f21a62533d5099e3803ec3f42c4f98a506bd61600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000350919062000c70565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003de919062000c70565b6040518363ffffffff1660e01b8152600401620003fd92919062000cb3565b6020604051808303816000875af11580156200041d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000443919062000c70565b905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620004dd62000ac560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460006200061662000ac560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560006200074f62000ac560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200097662000ac560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620009d7919062000cfb565b60405180910390a3505062000fd4565b600062000a3183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000aee60201b60201c565b905092915050565b60008083141562000a4e576000905062000ab7565b6000828462000a5e919062000d47565b905082848262000a6f919062000dd7565b1462000ab2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aa99062000e96565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000b38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b2f919062000f4b565b60405180910390fd5b506000838562000b49919062000dd7565b9050809150509392505050565b82805462000b649062000f9e565b90600052602060002090601f01602090048101928262000b88576000855562000bd4565b82601f1062000ba357805160ff191683800117855562000bd4565b8280016001018555821562000bd4579182015b8281111562000bd357825182559160200191906001019062000bb6565b5b50905062000be3919062000be7565b5090565b5b8082111562000c0257600081600090555060010162000be8565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c388262000c0b565b9050919050565b62000c4a8162000c2b565b811462000c5657600080fd5b50565b60008151905062000c6a8162000c3f565b92915050565b60006020828403121562000c895762000c8862000c06565b5b600062000c998482850162000c59565b91505092915050565b62000cad8162000c2b565b82525050565b600060408201905062000cca600083018562000ca2565b62000cd9602083018462000ca2565b9392505050565b6000819050919050565b62000cf58162000ce0565b82525050565b600060208201905062000d12600083018462000cea565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d548262000ce0565b915062000d618362000ce0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d9d5762000d9c62000d18565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000de48262000ce0565b915062000df18362000ce0565b92508262000e045762000e0362000da8565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000e7e60218362000e0f565b915062000e8b8262000e20565b604082019050919050565b6000602082019050818103600083015262000eb18162000e6f565b9050919050565b600081519050919050565b60005b8381101562000ee357808201518184015260208101905062000ec6565b8381111562000ef3576000848401525b50505050565b6000601f19601f8301169050919050565b600062000f178262000eb8565b62000f23818562000e0f565b935062000f3581856020860162000ec3565b62000f408162000ef9565b840191505092915050565b6000602082019050818103600083015262000f67818462000f0a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000fb757607f821691505b6020821081141562000fce5762000fcd62000f6f565b5b50919050565b61441e8062000fe46000396000f3fe6080604052600436106102765760003560e01c80638a8c523c1161014f578063b0bc2a2d116100c1578063ed4214291161007a578063ed42142914610987578063f097ea1a146109c4578063f242ab41146109ed578063f2fde38b14610a18578063f4b3dbc314610a41578063fe6f1b0514610a7e5761027d565b8063b0bc2a2d14610877578063bf56b371146108a0578063bf862391146108cb578063dd62ed3e146108f6578063ea5b9e8514610933578063ec44acf21461095c5761027d565b80639a36dfa1116101135780639a36dfa114610757578063a2b8a94714610782578063a457c2d7146107ab578063a643c1a0146107e8578063a7c29b4014610811578063a9059cbb1461083a5761027d565b80638a8c523c146106845780638da5cb5b1461069b578063950eb5d5146106c657806395d89b41146106ef57806399b102b51461071a5761027d565b80635342acb4116101e85780637c6a9a9c116101ac5780637c6a9a9c146105725780637d99c66d1461059d578063844af78e146105c857806384ea21bc146105f35780638756aabd14610630578063879dd3c5146106595761027d565b80635342acb41461048d578063679a3c59146104ca57806370a08231146104f3578063715018a61461053057806375f0a874146105475761027d565b80631884f1e61161023a5780631884f1e61461036957806323b872dd14610394578063267fb987146103d15780632d129390146103fc578063313ce5671461042557806339509351146104505761027d565b806306fdde03146102825780630758d924146102ad578063095ea7b3146102d85780630a2d140c1461031557806318160ddd1461033e5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610aa9565b6040516102a49190613418565b60405180910390f35b3480156102b957600080fd5b506102c2610b3b565b6040516102cf91906134b9565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa919061354d565b610b61565b60405161030c91906135a8565b60405180910390f35b34801561032157600080fd5b5061033c600480360381019061033791906135ef565b610b7f565b005b34801561034a57600080fd5b50610353610c31565b604051610360919061362b565b60405180910390f35b34801561037557600080fd5b5061037e610c3b565b60405161038b919061362b565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b69190613646565b610c41565b6040516103c891906135a8565b60405180910390f35b3480156103dd57600080fd5b506103e6610d1a565b6040516103f391906135a8565b60405180910390f35b34801561040857600080fd5b50610423600480360381019061041e9190613699565b610d2d565b005b34801561043157600080fd5b5061043a610e1d565b60405161044791906136f5565b60405180910390f35b34801561045c57600080fd5b506104776004803603810190610472919061354d565b610e34565b60405161048491906135a8565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190613710565b610ee7565b6040516104c191906135a8565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec9190613710565b610f07565b005b3480156104ff57600080fd5b5061051a60048036038101906105159190613710565b610fe6565b604051610527919061362b565b60405180910390f35b34801561053c57600080fd5b5061054561102f565b005b34801561055357600080fd5b5061055c611182565b604051610569919061374c565b60405180910390f35b34801561057e57600080fd5b506105876111a8565b604051610594919061362b565b60405180910390f35b3480156105a957600080fd5b506105b26111ae565b6040516105bf919061362b565b60405180910390f35b3480156105d457600080fd5b506105dd6111b4565b6040516105ea919061362b565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190613710565b6111ba565b60405161062791906135a8565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190613767565b6111da565b005b34801561066557600080fd5b5061066e6112d2565b60405161067b91906135a8565b60405180910390f35b34801561069057600080fd5b506106996112e5565b005b3480156106a757600080fd5b506106b0611424565b6040516106bd919061374c565b60405180910390f35b3480156106d257600080fd5b506106ed60048036038101906106e89190613767565b61144d565b005b3480156106fb57600080fd5b50610704611557565b6040516107119190613418565b60405180910390f35b34801561072657600080fd5b50610741600480360381019061073c9190613710565b6115e9565b60405161074e91906135a8565b60405180910390f35b34801561076357600080fd5b5061076c611609565b604051610779919061362b565b60405180910390f35b34801561078e57600080fd5b506107a960048036038101906107a49190613767565b61160f565b005b3480156107b757600080fd5b506107d260048036038101906107cd919061354d565b611719565b6040516107df91906135a8565b60405180910390f35b3480156107f457600080fd5b5061080f600480360381019061080a9190613710565b6117e6565b005b34801561081d57600080fd5b5061083860048036038101906108339190613699565b6118bf565b005b34801561084657600080fd5b50610861600480360381019061085c919061354d565b6119af565b60405161086e91906135a8565b60405180910390f35b34801561088357600080fd5b5061089e600480360381019061089991906135ef565b6119cd565b005b3480156108ac57600080fd5b506108b5611a7f565b6040516108c2919061362b565b60405180910390f35b3480156108d757600080fd5b506108e0611a85565b6040516108ed919061362b565b60405180910390f35b34801561090257600080fd5b5061091d60048036038101906109189190613794565b611a8b565b60405161092a919061362b565b60405180910390f35b34801561093f57600080fd5b5061095a60048036038101906109559190613699565b611b12565b005b34801561096857600080fd5b50610971611c02565b60405161097e91906135a8565b60405180910390f35b34801561099357600080fd5b506109ae60048036038101906109a99190613767565b611c15565b6040516109bb919061362b565b60405180910390f35b3480156109d057600080fd5b506109eb60048036038101906109e69190613767565b611c4c565b005b3480156109f957600080fd5b50610a02611d2e565b604051610a0f919061374c565b60405180910390f35b348015610a2457600080fd5b50610a3f6004803603810190610a3a9190613710565b611d54565b005b348015610a4d57600080fd5b50610a686004803603810190610a639190613767565b611f16565b604051610a75919061362b565b60405180910390f35b348015610a8a57600080fd5b50610a93611f4d565b604051610aa0919061362b565b60405180910390f35b606060068054610ab890613803565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae490613803565b8015610b315780601f10610b0657610100808354040283529160200191610b31565b820191906000526020600020905b815481529060010190602001808311610b1457829003601f168201915b5050505050905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b75610b6e612018565b8484612020565b6001905092915050565b610b87612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0b90613881565b60405180910390fd5b80601360006101000a81548160ff02191690831515021790555050565b6000600954905090565b600d5481565b6000610c4e8484846121eb565b610d0f84610c5a612018565b610d0a856040518060600160405280602e815260200161439a602e9139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cc0612018565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b612020565b600190509392505050565b601360009054906101000a900460ff1681565b610d35612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990613881565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600860009054906101000a900460ff16905090565b6000610edd610e41612018565b84610ed88560026000610e52612018565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b612020565b6001905092915050565b60036020528060005260406000206000915054906101000a900460ff1681565b610f0f612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9390613881565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610fe2573d6000803e3d6000fd5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611037612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bb90613881565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b60115481565b60155481565b60056020528060005260406000206000915054906101000a900460ff1681565b6111e2612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126690613881565b60405180910390fd5b611286601054600954611f5390919063ffffffff16565b8110156112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90613913565b60405180910390fd5b80600e8190555050565b601360019054906101000a900460ff1681565b6112ed612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137190613881565b60405180910390fd5b601360029054906101000a900460ff16156113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c19061397f565b60405180910390fd5b6001601360026101000a81548160ff0219169083151502179055506001601360016101000a81548160ff0219169083151502179055506001601360006101000a81548160ff02191690831515021790555042601281905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611455612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d990613881565b60405180910390fd5b806014819055506115126064611504600f601054611f9d90919063ffffffff16565b611f5390919063ffffffff16565b811115611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b90613a11565b60405180910390fd5b50565b60606007805461156690613803565b80601f016020809104026020016040519081016040528092919081815260200182805461159290613803565b80156115df5780601f106115b4576101008083540402835291602001916115df565b820191906000526020600020905b8154815290600101906020018083116115c257829003601f168201915b5050505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600e5481565b611617612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90613881565b60405180910390fd5b806015819055506116d460646116c6600f601054611f9d90919063ffffffff16565b611f5390919063ffffffff16565b811115611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d90613a11565b60405180910390fd5b50565b60006117dc611726612018565b846117d7856040518060600160405280602e815260200161436c602e913960026000611750612018565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b612020565b6001905092915050565b6117ee612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187290613881565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118c7612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194b90613881565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006119c36119bc612018565b84846121eb565b6001905092915050565b6119d5612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5990613881565b60405180910390fd5b80601360016101000a81548160ff02191690831515021790555050565b60125481565b600f5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b1a612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9e90613881565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601360029054906101000a900460ff1681565b600080611c41601054611c3360145486611f9d90919063ffffffff16565b611f5390919063ffffffff16565b905080915050919050565b611c54612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd890613881565b60405180910390fd5b60008111611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b90613a7d565b60405180910390fd5b80600d8190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d5c612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de090613881565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5090613b0f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080611f42601054611f3460155486611f9d90919063ffffffff16565b611f5390919063ffffffff16565b905080915050919050565b60105481565b6000611f9583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612710565b905092915050565b600080831415611fb05760009050612012565b60008284611fbe9190613b5e565b9050828482611fcd9190613be7565b1461200d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200490613c8a565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208790613d1c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f790613dae565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121de919061362b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561225b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225290613e40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c290613ed2565b60405180910390fd5b6000811161230e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230590613f64565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123b25750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124b857601360029054906101000a900460ff166124b7578273ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561247757508173ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ad90613fd0565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661256957600e546125278261251985610fe6565b6126b290919063ffffffff16565b1115612568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255f90614062565b60405180910390fd5b5b6125738383612773565b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061261a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126325750601360019054906101000a900460ff16155b1561263c57600090505b61264884848484612970565b50505050565b6000838311158290612696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268d9190613418565b60405180910390fd5b50600083856126a59190614082565b9050809150509392505050565b60008082846126c191906140b6565b905083811015612706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fd90614158565b60405180910390fd5b8091505092915050565b60008083118290612757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274e9190613418565b60405180910390fd5b50600083856127669190613be7565b9050809150509392505050565b600061277e30610fe6565b90506000600d5482101590508080156127e55750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156127fd5750601360009054906101000a900460ff165b801561288e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561288c5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b1561296a576128c230600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d54612020565b6128f0600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d54613051565b6000479050600081111561296857600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612966573d6000803e3d6000fd5b505b505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156129ca5750805b15612c63576000806011546012546129e291906140b6565b42108015612a3e5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15612a8857612a6c601054612a5e600f5487611f9d90919063ffffffff16565b611f5390919063ffffffff16565b9150612a81828561323790919063ffffffff16565b9050612aa9565b612a9184611c15565b9150612aa6828561323790919063ffffffff16565b90505b612b15846040518060600160405280602181526020016143c860219139600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612baa81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c4a919061362b565b60405180910390a3612c5c8683613281565b505061304b565b8273ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612cbd5750805b15612ea0576000612ccd83611f16565b90506000612ce4828561323790919063ffffffff16565b9050612d52846040518060600160405280602181526020016143c860219139600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612de781600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e87919061362b565b60405180910390a3612e998683613281565b505061304a565b612f0c826040518060600160405280602181526020016143c860219139600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fa182600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613041919061362b565b60405180910390a35b5b50505050565b60008290506000600267ffffffffffffffff81111561307357613072614178565b5b6040519080825280602002602001820160405280156130a15781602001602082028036833780820191505090505b50905030816000815181106130b9576130b86141a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561313e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316291906141eb565b81600181518110613176576131756141a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c426131df91906140b6565b6040518663ffffffff1660e01b81526004016131ff959493929190614311565b600060405180830381600087803b15801561321957600080fd5b505af115801561322d573d6000803e3d6000fd5b5050505050505050565b600061327983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061264e565b905092915050565b6132d381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613373919061362b565b60405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133b957808201518184015260208101905061339e565b838111156133c8576000848401525b50505050565b6000601f19601f8301169050919050565b60006133ea8261337f565b6133f4818561338a565b935061340481856020860161339b565b61340d816133ce565b840191505092915050565b6000602082019050818103600083015261343281846133df565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061347f61347a6134758461343a565b61345a565b61343a565b9050919050565b600061349182613464565b9050919050565b60006134a382613486565b9050919050565b6134b381613498565b82525050565b60006020820190506134ce60008301846134aa565b92915050565b600080fd5b60006134e48261343a565b9050919050565b6134f4816134d9565b81146134ff57600080fd5b50565b600081359050613511816134eb565b92915050565b6000819050919050565b61352a81613517565b811461353557600080fd5b50565b60008135905061354781613521565b92915050565b60008060408385031215613564576135636134d4565b5b600061357285828601613502565b925050602061358385828601613538565b9150509250929050565b60008115159050919050565b6135a28161358d565b82525050565b60006020820190506135bd6000830184613599565b92915050565b6135cc8161358d565b81146135d757600080fd5b50565b6000813590506135e9816135c3565b92915050565b600060208284031215613605576136046134d4565b5b6000613613848285016135da565b91505092915050565b61362581613517565b82525050565b6000602082019050613640600083018461361c565b92915050565b60008060006060848603121561365f5761365e6134d4565b5b600061366d86828701613502565b935050602061367e86828701613502565b925050604061368f86828701613538565b9150509250925092565b600080604083850312156136b0576136af6134d4565b5b60006136be85828601613502565b92505060206136cf858286016135da565b9150509250929050565b600060ff82169050919050565b6136ef816136d9565b82525050565b600060208201905061370a60008301846136e6565b92915050565b600060208284031215613726576137256134d4565b5b600061373484828501613502565b91505092915050565b613746816134d9565b82525050565b6000602082019050613761600083018461373d565b92915050565b60006020828403121561377d5761377c6134d4565b5b600061378b84828501613538565b91505092915050565b600080604083850312156137ab576137aa6134d4565b5b60006137b985828601613502565b92505060206137ca85828601613502565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061381b57607f821691505b6020821081141561382f5761382e6137d4565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061386b60208361338a565b915061387682613835565b602082019050919050565b6000602082019050818103600083015261389a8161385e565b9050919050565b7f24424f4e454b494c4c45523a2073686f756c642062652067726561746572207460008201527f68616e20302e3125000000000000000000000000000000000000000000000000602082015250565b60006138fd60288361338a565b9150613908826138a1565b604082019050919050565b6000602082019050818103600083015261392c816138f0565b9050919050565b7f24424f4e454b494c4c45523a20616c726561647920656e61626c656400000000600082015250565b6000613969601c8361338a565b915061397482613933565b602082019050919050565b600060208201905081810360008301526139988161395c565b9050919050565b7f24424f4e454b494c4c45523a2063616e2774206265206d6f7265207468616e2060008201527f3135250000000000000000000000000000000000000000000000000000000000602082015250565b60006139fb60238361338a565b9150613a068261399f565b604082019050919050565b60006020820190508181036000830152613a2a816139ee565b9050919050565b7f24424f4e454b494c4c45523a2063616e27742062652030000000000000000000600082015250565b6000613a6760178361338a565b9150613a7282613a31565b602082019050919050565b60006020820190508181036000830152613a9681613a5a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613af960268361338a565b9150613b0482613a9d565b604082019050919050565b60006020820190508181036000830152613b2881613aec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b6982613517565b9150613b7483613517565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bad57613bac613b2f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bf282613517565b9150613bfd83613517565b925082613c0d57613c0c613bb8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c7460218361338a565b9150613c7f82613c18565b604082019050919050565b60006020820190508181036000830152613ca381613c67565b9050919050565b7f24424f4e454b494c4c45523a20617070726f76652066726f6d20746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613d06602a8361338a565b9150613d1182613caa565b604082019050919050565b60006020820190508181036000830152613d3581613cf9565b9050919050565b7f24424f4e454b494c4c45523a20617070726f766520746f20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000613d9860288361338a565b9150613da382613d3c565b604082019050919050565b60006020820190508181036000830152613dc781613d8b565b9050919050565b7f24424f4e454b494c4c45523a207472616e736665722066726f6d20746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000613e2a602b8361338a565b9150613e3582613dce565b604082019050919050565b60006020820190508181036000830152613e5981613e1d565b9050919050565b7f24424f4e454b494c4c45523a207472616e7366657220746f20746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b6000613ebc60298361338a565b9150613ec782613e60565b604082019050919050565b60006020820190508181036000830152613eeb81613eaf565b9050919050565b7f24424f4e454b494c4c45523a20416d6f756e74206d757374206265206772656160008201527f746572207468616e207a65726f00000000000000000000000000000000000000602082015250565b6000613f4e602d8361338a565b9150613f5982613ef2565b604082019050919050565b60006020820190508181036000830152613f7d81613f41565b9050919050565b7f24424f4e454b494c4c45523a2074726164696e672069732064697361626c6500600082015250565b6000613fba601f8361338a565b9150613fc582613f84565b602082019050919050565b60006020820190508181036000830152613fe981613fad565b9050919050565b7f24424f4e454b494c4c45523a206d617820686f6c64206c696d6974206578636560008201527f6564730000000000000000000000000000000000000000000000000000000000602082015250565b600061404c60238361338a565b915061405782613ff0565b604082019050919050565b6000602082019050818103600083015261407b8161403f565b9050919050565b600061408d82613517565b915061409883613517565b9250828210156140ab576140aa613b2f565b5b828203905092915050565b60006140c182613517565b91506140cc83613517565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561410157614100613b2f565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614142601b8361338a565b915061414d8261410c565b602082019050919050565b6000602082019050818103600083015261417181614135565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506141e5816134eb565b92915050565b600060208284031215614201576142006134d4565b5b600061420f848285016141d6565b91505092915050565b6000819050919050565b600061423d61423861423384614218565b61345a565b613517565b9050919050565b61424d81614222565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614288816134d9565b82525050565b600061429a838361427f565b60208301905092915050565b6000602082019050919050565b60006142be82614253565b6142c8818561425e565b93506142d38361426f565b8060005b838110156143045781516142eb888261428e565b97506142f6836142a6565b9250506001810190506142d7565b5085935050505092915050565b600060a082019050614326600083018861361c565b6143336020830187614244565b818103604083015261434581866142b3565b9050614354606083018561373d565b614361608083018461361c565b969550505050505056fe24424f4e454b494c4c45523a2064656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726f24424f4e454b494c4c45523a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636524424f4e454b494c4c45523a20696e73756666696369656e742062616c616e6365a264697066735822122047a4ec6413b7f215ac92849fbce3319e6a2ad5f33b4c81b4895bcc9db3022a9164736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106102765760003560e01c80638a8c523c1161014f578063b0bc2a2d116100c1578063ed4214291161007a578063ed42142914610987578063f097ea1a146109c4578063f242ab41146109ed578063f2fde38b14610a18578063f4b3dbc314610a41578063fe6f1b0514610a7e5761027d565b8063b0bc2a2d14610877578063bf56b371146108a0578063bf862391146108cb578063dd62ed3e146108f6578063ea5b9e8514610933578063ec44acf21461095c5761027d565b80639a36dfa1116101135780639a36dfa114610757578063a2b8a94714610782578063a457c2d7146107ab578063a643c1a0146107e8578063a7c29b4014610811578063a9059cbb1461083a5761027d565b80638a8c523c146106845780638da5cb5b1461069b578063950eb5d5146106c657806395d89b41146106ef57806399b102b51461071a5761027d565b80635342acb4116101e85780637c6a9a9c116101ac5780637c6a9a9c146105725780637d99c66d1461059d578063844af78e146105c857806384ea21bc146105f35780638756aabd14610630578063879dd3c5146106595761027d565b80635342acb41461048d578063679a3c59146104ca57806370a08231146104f3578063715018a61461053057806375f0a874146105475761027d565b80631884f1e61161023a5780631884f1e61461036957806323b872dd14610394578063267fb987146103d15780632d129390146103fc578063313ce5671461042557806339509351146104505761027d565b806306fdde03146102825780630758d924146102ad578063095ea7b3146102d85780630a2d140c1461031557806318160ddd1461033e5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610aa9565b6040516102a49190613418565b60405180910390f35b3480156102b957600080fd5b506102c2610b3b565b6040516102cf91906134b9565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa919061354d565b610b61565b60405161030c91906135a8565b60405180910390f35b34801561032157600080fd5b5061033c600480360381019061033791906135ef565b610b7f565b005b34801561034a57600080fd5b50610353610c31565b604051610360919061362b565b60405180910390f35b34801561037557600080fd5b5061037e610c3b565b60405161038b919061362b565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b69190613646565b610c41565b6040516103c891906135a8565b60405180910390f35b3480156103dd57600080fd5b506103e6610d1a565b6040516103f391906135a8565b60405180910390f35b34801561040857600080fd5b50610423600480360381019061041e9190613699565b610d2d565b005b34801561043157600080fd5b5061043a610e1d565b60405161044791906136f5565b60405180910390f35b34801561045c57600080fd5b506104776004803603810190610472919061354d565b610e34565b60405161048491906135a8565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190613710565b610ee7565b6040516104c191906135a8565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec9190613710565b610f07565b005b3480156104ff57600080fd5b5061051a60048036038101906105159190613710565b610fe6565b604051610527919061362b565b60405180910390f35b34801561053c57600080fd5b5061054561102f565b005b34801561055357600080fd5b5061055c611182565b604051610569919061374c565b60405180910390f35b34801561057e57600080fd5b506105876111a8565b604051610594919061362b565b60405180910390f35b3480156105a957600080fd5b506105b26111ae565b6040516105bf919061362b565b60405180910390f35b3480156105d457600080fd5b506105dd6111b4565b6040516105ea919061362b565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190613710565b6111ba565b60405161062791906135a8565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190613767565b6111da565b005b34801561066557600080fd5b5061066e6112d2565b60405161067b91906135a8565b60405180910390f35b34801561069057600080fd5b506106996112e5565b005b3480156106a757600080fd5b506106b0611424565b6040516106bd919061374c565b60405180910390f35b3480156106d257600080fd5b506106ed60048036038101906106e89190613767565b61144d565b005b3480156106fb57600080fd5b50610704611557565b6040516107119190613418565b60405180910390f35b34801561072657600080fd5b50610741600480360381019061073c9190613710565b6115e9565b60405161074e91906135a8565b60405180910390f35b34801561076357600080fd5b5061076c611609565b604051610779919061362b565b60405180910390f35b34801561078e57600080fd5b506107a960048036038101906107a49190613767565b61160f565b005b3480156107b757600080fd5b506107d260048036038101906107cd919061354d565b611719565b6040516107df91906135a8565b60405180910390f35b3480156107f457600080fd5b5061080f600480360381019061080a9190613710565b6117e6565b005b34801561081d57600080fd5b5061083860048036038101906108339190613699565b6118bf565b005b34801561084657600080fd5b50610861600480360381019061085c919061354d565b6119af565b60405161086e91906135a8565b60405180910390f35b34801561088357600080fd5b5061089e600480360381019061089991906135ef565b6119cd565b005b3480156108ac57600080fd5b506108b5611a7f565b6040516108c2919061362b565b60405180910390f35b3480156108d757600080fd5b506108e0611a85565b6040516108ed919061362b565b60405180910390f35b34801561090257600080fd5b5061091d60048036038101906109189190613794565b611a8b565b60405161092a919061362b565b60405180910390f35b34801561093f57600080fd5b5061095a60048036038101906109559190613699565b611b12565b005b34801561096857600080fd5b50610971611c02565b60405161097e91906135a8565b60405180910390f35b34801561099357600080fd5b506109ae60048036038101906109a99190613767565b611c15565b6040516109bb919061362b565b60405180910390f35b3480156109d057600080fd5b506109eb60048036038101906109e69190613767565b611c4c565b005b3480156109f957600080fd5b50610a02611d2e565b604051610a0f919061374c565b60405180910390f35b348015610a2457600080fd5b50610a3f6004803603810190610a3a9190613710565b611d54565b005b348015610a4d57600080fd5b50610a686004803603810190610a639190613767565b611f16565b604051610a75919061362b565b60405180910390f35b348015610a8a57600080fd5b50610a93611f4d565b604051610aa0919061362b565b60405180910390f35b606060068054610ab890613803565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae490613803565b8015610b315780601f10610b0657610100808354040283529160200191610b31565b820191906000526020600020905b815481529060010190602001808311610b1457829003601f168201915b5050505050905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b75610b6e612018565b8484612020565b6001905092915050565b610b87612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0b90613881565b60405180910390fd5b80601360006101000a81548160ff02191690831515021790555050565b6000600954905090565b600d5481565b6000610c4e8484846121eb565b610d0f84610c5a612018565b610d0a856040518060600160405280602e815260200161439a602e9139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cc0612018565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b612020565b600190509392505050565b601360009054906101000a900460ff1681565b610d35612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990613881565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600860009054906101000a900460ff16905090565b6000610edd610e41612018565b84610ed88560026000610e52612018565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b612020565b6001905092915050565b60036020528060005260406000206000915054906101000a900460ff1681565b610f0f612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9390613881565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610fe2573d6000803e3d6000fd5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611037612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bb90613881565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b60115481565b60155481565b60056020528060005260406000206000915054906101000a900460ff1681565b6111e2612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126690613881565b60405180910390fd5b611286601054600954611f5390919063ffffffff16565b8110156112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90613913565b60405180910390fd5b80600e8190555050565b601360019054906101000a900460ff1681565b6112ed612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137190613881565b60405180910390fd5b601360029054906101000a900460ff16156113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c19061397f565b60405180910390fd5b6001601360026101000a81548160ff0219169083151502179055506001601360016101000a81548160ff0219169083151502179055506001601360006101000a81548160ff02191690831515021790555042601281905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611455612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d990613881565b60405180910390fd5b806014819055506115126064611504600f601054611f9d90919063ffffffff16565b611f5390919063ffffffff16565b811115611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b90613a11565b60405180910390fd5b50565b60606007805461156690613803565b80601f016020809104026020016040519081016040528092919081815260200182805461159290613803565b80156115df5780601f106115b4576101008083540402835291602001916115df565b820191906000526020600020905b8154815290600101906020018083116115c257829003601f168201915b5050505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600e5481565b611617612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90613881565b60405180910390fd5b806015819055506116d460646116c6600f601054611f9d90919063ffffffff16565b611f5390919063ffffffff16565b811115611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d90613a11565b60405180910390fd5b50565b60006117dc611726612018565b846117d7856040518060600160405280602e815260200161436c602e913960026000611750612018565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b612020565b6001905092915050565b6117ee612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187290613881565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118c7612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194b90613881565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006119c36119bc612018565b84846121eb565b6001905092915050565b6119d5612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5990613881565b60405180910390fd5b80601360016101000a81548160ff02191690831515021790555050565b60125481565b600f5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b1a612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9e90613881565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601360029054906101000a900460ff1681565b600080611c41601054611c3360145486611f9d90919063ffffffff16565b611f5390919063ffffffff16565b905080915050919050565b611c54612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd890613881565b60405180910390fd5b60008111611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b90613a7d565b60405180910390fd5b80600d8190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d5c612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de090613881565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5090613b0f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080611f42601054611f3460155486611f9d90919063ffffffff16565b611f5390919063ffffffff16565b905080915050919050565b60105481565b6000611f9583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612710565b905092915050565b600080831415611fb05760009050612012565b60008284611fbe9190613b5e565b9050828482611fcd9190613be7565b1461200d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200490613c8a565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208790613d1c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f790613dae565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121de919061362b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561225b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225290613e40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c290613ed2565b60405180910390fd5b6000811161230e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230590613f64565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123b25750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124b857601360029054906101000a900460ff166124b7578273ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561247757508173ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ad90613fd0565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661256957600e546125278261251985610fe6565b6126b290919063ffffffff16565b1115612568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255f90614062565b60405180910390fd5b5b6125738383612773565b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061261a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126325750601360019054906101000a900460ff16155b1561263c57600090505b61264884848484612970565b50505050565b6000838311158290612696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268d9190613418565b60405180910390fd5b50600083856126a59190614082565b9050809150509392505050565b60008082846126c191906140b6565b905083811015612706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fd90614158565b60405180910390fd5b8091505092915050565b60008083118290612757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274e9190613418565b60405180910390fd5b50600083856127669190613be7565b9050809150509392505050565b600061277e30610fe6565b90506000600d5482101590508080156127e55750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156127fd5750601360009054906101000a900460ff165b801561288e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561288c5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b1561296a576128c230600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d54612020565b6128f0600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d54613051565b6000479050600081111561296857600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612966573d6000803e3d6000fd5b505b505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156129ca5750805b15612c63576000806011546012546129e291906140b6565b42108015612a3e5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15612a8857612a6c601054612a5e600f5487611f9d90919063ffffffff16565b611f5390919063ffffffff16565b9150612a81828561323790919063ffffffff16565b9050612aa9565b612a9184611c15565b9150612aa6828561323790919063ffffffff16565b90505b612b15846040518060600160405280602181526020016143c860219139600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612baa81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c4a919061362b565b60405180910390a3612c5c8683613281565b505061304b565b8273ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612cbd5750805b15612ea0576000612ccd83611f16565b90506000612ce4828561323790919063ffffffff16565b9050612d52846040518060600160405280602181526020016143c860219139600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612de781600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e87919061362b565b60405180910390a3612e998683613281565b505061304a565b612f0c826040518060600160405280602181526020016143c860219139600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fa182600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613041919061362b565b60405180910390a35b5b50505050565b60008290506000600267ffffffffffffffff81111561307357613072614178565b5b6040519080825280602002602001820160405280156130a15781602001602082028036833780820191505090505b50905030816000815181106130b9576130b86141a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561313e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316291906141eb565b81600181518110613176576131756141a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c426131df91906140b6565b6040518663ffffffff1660e01b81526004016131ff959493929190614311565b600060405180830381600087803b15801561321957600080fd5b505af115801561322d573d6000803e3d6000fd5b5050505050505050565b600061327983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061264e565b905092915050565b6132d381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613373919061362b565b60405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133b957808201518184015260208101905061339e565b838111156133c8576000848401525b50505050565b6000601f19601f8301169050919050565b60006133ea8261337f565b6133f4818561338a565b935061340481856020860161339b565b61340d816133ce565b840191505092915050565b6000602082019050818103600083015261343281846133df565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061347f61347a6134758461343a565b61345a565b61343a565b9050919050565b600061349182613464565b9050919050565b60006134a382613486565b9050919050565b6134b381613498565b82525050565b60006020820190506134ce60008301846134aa565b92915050565b600080fd5b60006134e48261343a565b9050919050565b6134f4816134d9565b81146134ff57600080fd5b50565b600081359050613511816134eb565b92915050565b6000819050919050565b61352a81613517565b811461353557600080fd5b50565b60008135905061354781613521565b92915050565b60008060408385031215613564576135636134d4565b5b600061357285828601613502565b925050602061358385828601613538565b9150509250929050565b60008115159050919050565b6135a28161358d565b82525050565b60006020820190506135bd6000830184613599565b92915050565b6135cc8161358d565b81146135d757600080fd5b50565b6000813590506135e9816135c3565b92915050565b600060208284031215613605576136046134d4565b5b6000613613848285016135da565b91505092915050565b61362581613517565b82525050565b6000602082019050613640600083018461361c565b92915050565b60008060006060848603121561365f5761365e6134d4565b5b600061366d86828701613502565b935050602061367e86828701613502565b925050604061368f86828701613538565b9150509250925092565b600080604083850312156136b0576136af6134d4565b5b60006136be85828601613502565b92505060206136cf858286016135da565b9150509250929050565b600060ff82169050919050565b6136ef816136d9565b82525050565b600060208201905061370a60008301846136e6565b92915050565b600060208284031215613726576137256134d4565b5b600061373484828501613502565b91505092915050565b613746816134d9565b82525050565b6000602082019050613761600083018461373d565b92915050565b60006020828403121561377d5761377c6134d4565b5b600061378b84828501613538565b91505092915050565b600080604083850312156137ab576137aa6134d4565b5b60006137b985828601613502565b92505060206137ca85828601613502565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061381b57607f821691505b6020821081141561382f5761382e6137d4565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061386b60208361338a565b915061387682613835565b602082019050919050565b6000602082019050818103600083015261389a8161385e565b9050919050565b7f24424f4e454b494c4c45523a2073686f756c642062652067726561746572207460008201527f68616e20302e3125000000000000000000000000000000000000000000000000602082015250565b60006138fd60288361338a565b9150613908826138a1565b604082019050919050565b6000602082019050818103600083015261392c816138f0565b9050919050565b7f24424f4e454b494c4c45523a20616c726561647920656e61626c656400000000600082015250565b6000613969601c8361338a565b915061397482613933565b602082019050919050565b600060208201905081810360008301526139988161395c565b9050919050565b7f24424f4e454b494c4c45523a2063616e2774206265206d6f7265207468616e2060008201527f3135250000000000000000000000000000000000000000000000000000000000602082015250565b60006139fb60238361338a565b9150613a068261399f565b604082019050919050565b60006020820190508181036000830152613a2a816139ee565b9050919050565b7f24424f4e454b494c4c45523a2063616e27742062652030000000000000000000600082015250565b6000613a6760178361338a565b9150613a7282613a31565b602082019050919050565b60006020820190508181036000830152613a9681613a5a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613af960268361338a565b9150613b0482613a9d565b604082019050919050565b60006020820190508181036000830152613b2881613aec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b6982613517565b9150613b7483613517565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bad57613bac613b2f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bf282613517565b9150613bfd83613517565b925082613c0d57613c0c613bb8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c7460218361338a565b9150613c7f82613c18565b604082019050919050565b60006020820190508181036000830152613ca381613c67565b9050919050565b7f24424f4e454b494c4c45523a20617070726f76652066726f6d20746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613d06602a8361338a565b9150613d1182613caa565b604082019050919050565b60006020820190508181036000830152613d3581613cf9565b9050919050565b7f24424f4e454b494c4c45523a20617070726f766520746f20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000613d9860288361338a565b9150613da382613d3c565b604082019050919050565b60006020820190508181036000830152613dc781613d8b565b9050919050565b7f24424f4e454b494c4c45523a207472616e736665722066726f6d20746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000613e2a602b8361338a565b9150613e3582613dce565b604082019050919050565b60006020820190508181036000830152613e5981613e1d565b9050919050565b7f24424f4e454b494c4c45523a207472616e7366657220746f20746865207a657260008201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b6000613ebc60298361338a565b9150613ec782613e60565b604082019050919050565b60006020820190508181036000830152613eeb81613eaf565b9050919050565b7f24424f4e454b494c4c45523a20416d6f756e74206d757374206265206772656160008201527f746572207468616e207a65726f00000000000000000000000000000000000000602082015250565b6000613f4e602d8361338a565b9150613f5982613ef2565b604082019050919050565b60006020820190508181036000830152613f7d81613f41565b9050919050565b7f24424f4e454b494c4c45523a2074726164696e672069732064697361626c6500600082015250565b6000613fba601f8361338a565b9150613fc582613f84565b602082019050919050565b60006020820190508181036000830152613fe981613fad565b9050919050565b7f24424f4e454b494c4c45523a206d617820686f6c64206c696d6974206578636560008201527f6564730000000000000000000000000000000000000000000000000000000000602082015250565b600061404c60238361338a565b915061405782613ff0565b604082019050919050565b6000602082019050818103600083015261407b8161403f565b9050919050565b600061408d82613517565b915061409883613517565b9250828210156140ab576140aa613b2f565b5b828203905092915050565b60006140c182613517565b91506140cc83613517565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561410157614100613b2f565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614142601b8361338a565b915061414d8261410c565b602082019050919050565b6000602082019050818103600083015261417181614135565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506141e5816134eb565b92915050565b600060208284031215614201576142006134d4565b5b600061420f848285016141d6565b91505092915050565b6000819050919050565b600061423d61423861423384614218565b61345a565b613517565b9050919050565b61424d81614222565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614288816134d9565b82525050565b600061429a838361427f565b60208301905092915050565b6000602082019050919050565b60006142be82614253565b6142c8818561425e565b93506142d38361426f565b8060005b838110156143045781516142eb888261428e565b97506142f6836142a6565b9250506001810190506142d7565b5085935050505092915050565b600060a082019050614326600083018861361c565b6143336020830187614244565b818103604083015261434581866142b3565b9050614354606083018561373d565b614361608083018461361c565b969550505050505056fe24424f4e454b494c4c45523a2064656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726f24424f4e454b494c4c45523a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636524424f4e454b494c4c45523a20696e73756666696369656e742062616c616e6365a264697066735822122047a4ec6413b7f215ac92849fbce3319e6a2ad5f33b4c81b4895bcc9db3022a9164736f6c634300080a0033

Deployed Bytecode Sourcemap

3262:12872:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6281:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3942:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7169:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10033:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6558:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4044:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7363:452;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4414:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8874:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6467:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7823:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3480:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10626:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6666:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2809:157;;;;;;;;;;;;;:::i;:::-;;4005:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4599:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4334:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4694:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3595:56;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9227:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4478:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10382:236;;;;;;;;;;;;;:::i;:::-;;2595:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9481:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6372:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3536:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4152:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9756:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8124:402;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10251:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8701:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6793:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10144:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4380:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4257:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6993:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8534:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4528:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10763:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9055:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3976:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2974:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10949:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4291:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6281:83;6318:13;6351:5;6344:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6281:83;:::o;3942:27::-;;;;;;;;;;;;;:::o;7169:186::-;7269:4;7286:39;7295:12;:10;:12::i;:::-;7309:7;7318:6;7286:8;:39::i;:::-;7343:4;7336:11;;7169:186;;;;:::o;10033:103::-;2732:12;:10;:12::i;:::-;2722:22;;:6;;;;;;;;;;:22;;;2714:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10122:6:::1;10105:14;;:23;;;;;;;;;;;;;;;;;;10033:103:::0;:::o;6558:100::-;6611:7;6638:12;;6631:19;;6558:100;:::o;4044:53::-;;;;:::o;7363:452::-;7495:4;7512:36;7522:6;7530:9;7541:6;7512:9;:36::i;:::-;7559:226;7582:6;7603:12;:10;:12::i;:::-;7630:144;7686:6;7630:144;;;;;;;;;;;;;;;;;:11;:19;7642:6;7630:19;;;;;;;;;;;;;;;:33;7650:12;:10;:12::i;:::-;7630:33;;;;;;;;;;;;;;;;:37;;:144;;;;;:::i;:::-;7559:8;:226::i;:::-;7803:4;7796:11;;7363:452;;;;;:::o;4414:26::-;;;;;;;;;;;;;:::o;8874:173::-;2732:12;:10;:12::i;:::-;2722:22;;:6;;;;;;;;;;:22;;;2714:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9034:5:::1;8998:24;:33;9023:7;8998:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;8874:173:::0;;:::o;6467:83::-;6508:5;6533:9;;;;;;;;;;;6526:16;;6467:83;:::o;7823:293::-;7936:4;7953:133;7976:12;:10;:12::i;:::-;8003:7;8025:50;8064:10;8025:11;:25;8037:12;:10;:12::i;:::-;8025:25;;;;;;;;;;;;;;;:34;8051:7;8025:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;7953:8;:133::i;:::-;8104:4;8097:11;;7823:293;;;;:::o;3480:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;10626:129::-;2732:12;:10;:12::i;:::-;2722:22;;:6;;;;;;;;;;:22;;;2714:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10705:9:::1;10697:27;;:50;10725:21;10697:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10626:129:::0;:::o;6666:119::-;6732:7;6759:9;:18;6769:7;6759:18;;;;;;;;;;;;;;;;6752:25;;6666:119;;;:::o;2809:157::-;2732:12;:10;:12::i;:::-;2722:22;;:6;;;;;;;;;;:22;;;2714:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2916:1:::1;2879:40;;2900:6;::::0;::::1;;;;;;;;2879:40;;;;;;;;;;;;2955:1;2930:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;2809:157::o:0;4005:30::-;;;;;;;;;;;;;:::o;4599:41::-;;;;:::o;4334:39::-;;;;:::o;4694:42::-;;;;:::o;3595:56::-;;;;;;;;;;;;;;;;;;;;;;:::o;9227:246::-;2732:12;:10;:12::i;:::-;2722:22;;:6;;;;;;;;;;:22;;;2714:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9332:32:::1;9349:14;;9332:12;;:16;;:32;;;;:::i;:::-;9321:7;:43;;9299:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;9458:7;9443:12;:22;;;;9227:246:::0;:::o;4478:22::-;;;;;;;;;;;;;:::o;10382:236::-;2732:12;:10;:12::i;:::-;2722:22;;:6;;;;;;;;;;:22;;;2714:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10446:7:::1;;;;;;;;;;;10445:8;10437:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10507:4;10497:7;;:14;;;;;;;;;;;;;;;;;;10535:4;10522:10;;:17;;;;;;;;;;;;;;;;;;10567:4;10550:14;;:21;;;;;;;;;;;;;;;;;;10595:15;10582:10;:28;;;;10382:236::o:0;2595:79::-;2633:7;2660:6;;;;;;;;;;;2653:13;;2595:79;:::o;9481:267::-;2732:12;:10;:12::i;:::-;2722:22;;:6;;;;;;;;;;:22;;;2714:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9583:13:::1;9560:20;:36;;;;9646:31;9673:3;9646:22;9665:2;9646:14;;:18;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;9629:13;:48;;9607:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;9481:267:::0;:::o;6372:87::-;6411:13;6444:7;6437:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6372:87;:::o;3536:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;4152:58::-;;;;:::o;9756:269::-;2732:12;:10;:12::i;:::-;2722:22;;:6;;;;;;;;;;:22;;;2714:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9860:13:::1;9836:21;:37;;;;9923:31;9950:3;9923:22;9942:2;9923:14;;:18;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;9906:13;:48;;9884:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;9756:269:::0;:::o;8124:402::-;8242:4;8259:237;8282:12;:10;:12::i;:::-;8309:7;8331:154;8388:15;8331:154;;;;;;;;;;;;;;;;;:11;:25;8343:12;:10;:12::i;:::-;8331:25;;;;;;;;;;;;;;;:34;8357:7;8331:34;;;;;;;;;;;;;;;;:38;;:154;;;;;:::i;:::-;8259:8;:237::i;:::-;8514:4;8507:11;;8124:402;;;;:::o;10251:123::-;2732:12;:10;:12::i;:::-;2722:22;;:6;;;;;;;;;;:22;;;2714:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10350:16:::1;10332:15;;:34;;;;;;;;;;;;;;;;;;10251:123:::0;:::o;8701:165::-;2732:12;:10;:12::i;:::-;2722:22;;:6;;;;;;;;;;:22;;;2714:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8853:5:::1;8821:20;:29;8842:7;8821:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;8701:165:::0;;:::o;6793:192::-;6896:4;6913:42;6923:12;:10;:12::i;:::-;6937:9;6948:6;6913:9;:42::i;:::-;6973:4;6966:11;;6793:192;;;;:::o;10144:99::-;2732:12;:10;:12::i;:::-;2722:22;;:6;;;;;;;;;;:22;;;2714:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10229:6:::1;10216:10;;:19;;;;;;;;;;;;;;;;;;10144:99:::0;:::o;4380:25::-;;;;:::o;4257:27::-;;;;:::o;6993:168::-;7099:7;7126:11;:18;7138:5;7126:18;;;;;;;;;;;;;;;:27;7145:7;7126:27;;;;;;;;;;;;;;;;7119:34;;6993:168;;;;:::o;8534:159::-;2732:12;:10;:12::i;:::-;2722:22;;:6;;;;;;;;;;:22;;;2714:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8680:5:::1;8651:17;:26;8669:7;8651:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8534:159:::0;;:::o;4528:19::-;;;;;;;;;;;;;:::o;10763:178::-;10826:7;10846:11;10860:52;10897:14;;10860:32;10871:20;;10860:6;:10;;:32;;;;:::i;:::-;:36;;:52;;;;:::i;:::-;10846:66;;10930:3;10923:10;;;10763:178;;;:::o;9055:164::-;2732:12;:10;:12::i;:::-;2722:22;;:6;;;;;;;;;;:22;;;2714:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9147:1:::1;9137:7;:11;9129:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9204:7;9187:14;:24;;;;9055:164:::0;:::o;3976:22::-;;;;;;;;;;;;;:::o;2974:281::-;2732:12;:10;:12::i;:::-;2722:22;;:6;;;;;;;;;;:22;;;2714:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3097:1:::1;3077:22;;:8;:22;;;;3055:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;3210:8;3181:38;;3202:6;::::0;::::1;;;;;;;;3181:38;;;;;;;;;;;;3239:8;3230:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2974:281:::0;:::o;10949:180::-;11013:7;11033:11;11047:53;11085:14;;11047:33;11058:21;;11047:6;:10;;:33;;;;:::i;:::-;:37;;:53;;;;:::i;:::-;11033:67;;11118:3;11111:10;;;10949:180;;;:::o;4291:36::-;;;;:::o;17921:132::-;17979:7;18006:39;18010:1;18013;18006:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;17999:46;;17921:132;;;;:::o;17442:471::-;17500:7;17750:1;17745;:6;17741:47;;;17775:1;17768:8;;;;17741:47;17800:9;17816:1;17812;:5;;;;:::i;:::-;17800:17;;17845:1;17840;17836;:5;;;;:::i;:::-;:10;17828:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;17904:1;17897:8;;;17442:471;;;;;:::o;1931:115::-;1984:15;2027:10;2012:26;;1931:115;:::o;11137:349::-;11247:1;11230:19;;:5;:19;;;;11222:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11334:1;11315:21;;:7;:21;;;;11307:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11424:6;11394:11;:18;11406:5;11394:18;;;;;;;;;;;;;;;:27;11413:7;11394:27;;;;;;;;;;;;;;;:36;;;;11462:7;11446:32;;11455:5;11446:32;;;11471:6;11446:32;;;;;;:::i;:::-;;;;;;;;11137:349;;;:::o;11494:1355::-;11598:1;11582:18;;:4;:18;;;;11574:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11681:1;11667:16;;:2;:16;;;;11659:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11757:1;11748:6;:10;11740:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11826:20;:26;11847:4;11826:26;;;;;;;;;;;;;;;;;;;;;;;;;11825:27;:56;;;;;11857:20;:24;11878:2;11857:24;;;;;;;;;;;;;;;;;;;;;;;;;11856:25;11825:56;11821:318;;;11947:7;;;;;;;;;;;11942:186;;12016:4;12005:15;;:7;;;;;;;;;;;:15;;;;:32;;;;;12035:2;12024:13;;:7;;;;;;;;;;;:13;;;;12005:32;11975:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;11942:186;11821:318;12156:24;:28;12181:2;12156:28;;;;;;;;;;;;;;;;;;;;;;;;;12151:200;;12256:12;;12227:25;12245:6;12227:13;12237:2;12227:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:41;;12201:138;;;;;;;;;;;;:::i;:::-;;;;;;;;;12151:200;12392:30;12413:4;12419:2;12392:20;:30::i;:::-;12496:12;12511:4;12496:19;;12615:17;:23;12633:4;12615:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;12642:17;:21;12660:2;12642:21;;;;;;;;;;;;;;;;;;;;;;;;;12615:48;:63;;;;12668:10;;;;;;;;;;;12667:11;12615:63;12611:111;;;12705:5;12695:15;;12611:111;12800:41;12815:4;12821:2;12825:6;12833:7;12800:14;:41::i;:::-;11563:1286;11494:1355;;;:::o;17208:226::-;17328:7;17361:1;17356;:6;;17364:12;17348:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;17388:9;17404:1;17400;:5;;;;:::i;:::-;17388:17;;17425:1;17418:8;;;17208:226;;;;;:::o;16875:181::-;16933:7;16953:9;16969:1;16965;:5;;;;:::i;:::-;16953:17;;16994:1;16989;:6;;16981:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;17047:1;17040:8;;;16875:181;;;;:::o;18061:312::-;18181:7;18213:1;18209;:5;18216:12;18201:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;18240:9;18256:1;18252;:5;;;;:::i;:::-;18240:17;;18364:1;18357:8;;;18061:312;;;;;:::o;14993:1138::-;15346:28;15377:24;15395:4;15377:9;:24::i;:::-;15346:55;;15414:15;15456:14;;15432:20;:38;;15414:56;;15501:10;:42;;;;;15536:7;;;;;;;;;;;15528:15;;:4;:15;;;;15501:42;:73;;;;;15560:14;;;;;;;;;;;15501:73;:131;;;;;15609:4;15593:21;;:4;:21;;;:38;;;;;15624:7;;;;;;;;;;;15618:13;;:2;:13;;;15593:38;15591:41;15501:131;15483:641;;;15707:59;15724:4;15739:9;;;;;;;;;;;15751:14;;15707:8;:59::i;:::-;15833:58;15864:9;;;;;;;;;;;15876:14;;15833:22;:58::i;:::-;15908:23;15934:21;15908:47;;16042:1;16024:15;:19;16020:92;;;16070:15;;;;;;;;;;;16062:33;;:50;16096:15;16062:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16020:92;15659:465;15483:641;15057:1074;;14993:1138;;:::o;12930:1846::-;13096:6;13085:17;;:7;;;;;;;;;;;:17;;;:28;;;;;13106:7;13085:28;13081:1688;;;13130:14;13159:23;13274:11;;13261:10;;:24;;;;:::i;:::-;13243:15;:42;:91;;;;;13324:9;;;;;;;;;;;13306:28;;:6;:28;;;;13243:91;13221:395;;;13378:38;13401:14;;13378:18;13389:6;;13378;:10;;:18;;;;:::i;:::-;:22;;:38;;;;:::i;:::-;13369:47;;13453:18;13464:6;13453;:10;;:18;;;;:::i;:::-;13435:36;;13221:395;;;13521:24;13538:6;13521:16;:24::i;:::-;13512:33;;13582:18;13593:6;13582;:10;;:18;;;;:::i;:::-;13564:36;;13221:395;13652:115;13692:6;13652:115;;;;;;;;;;;;;;;;;:9;:17;13662:6;13652:17;;;;;;;;;;;;;;;;:21;;:115;;;;;:::i;:::-;13632:9;:17;13642:6;13632:17;;;;;;;;;;;;;;;:135;;;;13805:41;13830:15;13805:9;:20;13815:9;13805:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;13782:9;:20;13792:9;13782:20;;;;;;;;;;;;;;;:64;;;;13883:9;13866:44;;13875:6;13866:44;;;13894:15;13866:44;;;;;;:::i;:::-;;;;;;;;13927:28;13940:6;13948;13927:12;:28::i;:::-;13115:852;;13081:1688;;;13988:9;13977:20;;:7;;;;;;;;;;;:20;;;:31;;;;;14001:7;13977:31;13973:796;;;14025:14;14042:25;14060:6;14042:17;:25::i;:::-;14025:42;;14082:23;14108:18;14119:6;14108;:10;;:18;;;;:::i;:::-;14082:44;;14161:115;14201:6;14161:115;;;;;;;;;;;;;;;;;:9;:17;14171:6;14161:17;;;;;;;;;;;;;;;;:21;;:115;;;;;:::i;:::-;14141:9;:17;14151:6;14141:17;;;;;;;;;;;;;;;:135;;;;14314:41;14339:15;14314:9;:20;14324:9;14314:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;14291:9;:20;14301:9;14291:20;;;;;;;;;;;;;;;:64;;;;14392:9;14375:44;;14384:6;14375:44;;;14403:15;14375:44;;;;;;:::i;:::-;;;;;;;;14436:28;14449:6;14457;14436:12;:28::i;:::-;14010:466;;13973:796;;;14517:115;14557:6;14517:115;;;;;;;;;;;;;;;;;:9;:17;14527:6;14517:17;;;;;;;;;;;;;;;;:21;;:115;;;;;:::i;:::-;14497:9;:17;14507:6;14497:17;;;;;;;;;;;;;;;:135;;;;14670:32;14695:6;14670:9;:20;14680:9;14670:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14647:9;:20;14657:9;14647:20;;;;;;;;;;;;;;;:55;;;;14739:9;14722:35;;14731:6;14722:35;;;14750:6;14722:35;;;;;;:::i;:::-;;;;;;;;13973:796;13081:1688;12930:1846;;;;:::o;16230:614::-;16345:20;16379:13;16345:48;;16462:21;16500:1;16486:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16462:40;;16531:4;16513;16518:1;16513:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16557:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16547:4;16552:1;16547:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;16612:9;:60;;;16687:11;16713:1;16757:4;16784;16822:3;16804:15;:21;;;;:::i;:::-;16612:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16334:510;;16230:614;;:::o;17064:136::-;17122:7;17149:43;17153:1;17156;17149:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;17142:50;;17064:136;;;;:::o;14784:201::-;14884:36;14913:6;14884:9;:24;14902:4;14884:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;14857:9;:24;14875:4;14857:24;;;;;;;;;;;;;;;:63;;;;14963:4;14938:39;;14947:6;14938:39;;;14970:6;14938:39;;;;;;:::i;:::-;;;;;;;;14784:201;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:126::-;1434:7;1474:42;1467:5;1463:54;1452:65;;1397:126;;;:::o;1529:60::-;1557:3;1578:5;1571:12;;1529:60;;;:::o;1595:142::-;1645:9;1678:53;1696:34;1705:24;1723:5;1705:24;:::i;:::-;1696:34;:::i;:::-;1678:53;:::i;:::-;1665:66;;1595:142;;;:::o;1743:126::-;1793:9;1826:37;1857:5;1826:37;:::i;:::-;1813:50;;1743:126;;;:::o;1875:144::-;1943:9;1976:37;2007:5;1976:37;:::i;:::-;1963:50;;1875:144;;;:::o;2025:167::-;2130:55;2179:5;2130:55;:::i;:::-;2125:3;2118:68;2025:167;;:::o;2198:258::-;2309:4;2347:2;2336:9;2332:18;2324:26;;2360:89;2446:1;2435:9;2431:17;2422:6;2360:89;:::i;:::-;2198:258;;;;:::o;2543:117::-;2652:1;2649;2642:12;2789:96;2826:7;2855:24;2873:5;2855:24;:::i;:::-;2844:35;;2789:96;;;:::o;2891:122::-;2964:24;2982:5;2964:24;:::i;:::-;2957:5;2954:35;2944:63;;3003:1;3000;2993:12;2944:63;2891:122;:::o;3019:139::-;3065:5;3103:6;3090:20;3081:29;;3119:33;3146:5;3119:33;:::i;:::-;3019:139;;;;:::o;3164:77::-;3201:7;3230:5;3219:16;;3164:77;;;:::o;3247:122::-;3320:24;3338:5;3320:24;:::i;:::-;3313:5;3310:35;3300:63;;3359:1;3356;3349:12;3300:63;3247:122;:::o;3375:139::-;3421:5;3459:6;3446:20;3437:29;;3475:33;3502:5;3475:33;:::i;:::-;3375:139;;;;:::o;3520:474::-;3588:6;3596;3645:2;3633:9;3624:7;3620:23;3616:32;3613:119;;;3651:79;;:::i;:::-;3613:119;3771:1;3796:53;3841:7;3832:6;3821:9;3817:22;3796:53;:::i;:::-;3786:63;;3742:117;3898:2;3924:53;3969:7;3960:6;3949:9;3945:22;3924:53;:::i;:::-;3914:63;;3869:118;3520:474;;;;;:::o;4000:90::-;4034:7;4077:5;4070:13;4063:21;4052:32;;4000:90;;;:::o;4096:109::-;4177:21;4192:5;4177:21;:::i;:::-;4172:3;4165:34;4096:109;;:::o;4211:210::-;4298:4;4336:2;4325:9;4321:18;4313:26;;4349:65;4411:1;4400:9;4396:17;4387:6;4349:65;:::i;:::-;4211:210;;;;:::o;4427:116::-;4497:21;4512:5;4497:21;:::i;:::-;4490:5;4487:32;4477:60;;4533:1;4530;4523:12;4477:60;4427:116;:::o;4549:133::-;4592:5;4630:6;4617:20;4608:29;;4646:30;4670:5;4646:30;:::i;:::-;4549:133;;;;:::o;4688:323::-;4744:6;4793:2;4781:9;4772:7;4768:23;4764:32;4761:119;;;4799:79;;:::i;:::-;4761:119;4919:1;4944:50;4986:7;4977:6;4966:9;4962:22;4944:50;:::i;:::-;4934:60;;4890:114;4688:323;;;;:::o;5017:118::-;5104:24;5122:5;5104:24;:::i;:::-;5099:3;5092:37;5017:118;;:::o;5141:222::-;5234:4;5272:2;5261:9;5257:18;5249:26;;5285:71;5353:1;5342:9;5338:17;5329:6;5285:71;:::i;:::-;5141:222;;;;:::o;5369:619::-;5446:6;5454;5462;5511:2;5499:9;5490:7;5486:23;5482:32;5479:119;;;5517:79;;:::i;:::-;5479:119;5637:1;5662:53;5707:7;5698:6;5687:9;5683:22;5662:53;:::i;:::-;5652:63;;5608:117;5764:2;5790:53;5835:7;5826:6;5815:9;5811:22;5790:53;:::i;:::-;5780:63;;5735:118;5892:2;5918:53;5963:7;5954:6;5943:9;5939:22;5918:53;:::i;:::-;5908:63;;5863:118;5369:619;;;;;:::o;5994:468::-;6059:6;6067;6116:2;6104:9;6095:7;6091:23;6087:32;6084:119;;;6122:79;;:::i;:::-;6084:119;6242:1;6267:53;6312:7;6303:6;6292:9;6288:22;6267:53;:::i;:::-;6257:63;;6213:117;6369:2;6395:50;6437:7;6428:6;6417:9;6413:22;6395:50;:::i;:::-;6385:60;;6340:115;5994:468;;;;;:::o;6468:86::-;6503:7;6543:4;6536:5;6532:16;6521:27;;6468:86;;;:::o;6560:112::-;6643:22;6659:5;6643:22;:::i;:::-;6638:3;6631:35;6560:112;;:::o;6678:214::-;6767:4;6805:2;6794:9;6790:18;6782:26;;6818:67;6882:1;6871:9;6867:17;6858:6;6818:67;:::i;:::-;6678:214;;;;:::o;6898:329::-;6957:6;7006:2;6994:9;6985:7;6981:23;6977:32;6974:119;;;7012:79;;:::i;:::-;6974:119;7132:1;7157:53;7202:7;7193:6;7182:9;7178:22;7157:53;:::i;:::-;7147:63;;7103:117;6898:329;;;;:::o;7233:118::-;7320:24;7338:5;7320:24;:::i;:::-;7315:3;7308:37;7233:118;;:::o;7357:222::-;7450:4;7488:2;7477:9;7473:18;7465:26;;7501:71;7569:1;7558:9;7554:17;7545:6;7501:71;:::i;:::-;7357:222;;;;:::o;7585:329::-;7644:6;7693:2;7681:9;7672:7;7668:23;7664:32;7661:119;;;7699:79;;:::i;:::-;7661:119;7819:1;7844:53;7889:7;7880:6;7869:9;7865:22;7844:53;:::i;:::-;7834:63;;7790:117;7585:329;;;;:::o;7920:474::-;7988:6;7996;8045:2;8033:9;8024:7;8020:23;8016:32;8013:119;;;8051:79;;:::i;:::-;8013:119;8171:1;8196:53;8241:7;8232:6;8221:9;8217:22;8196:53;:::i;:::-;8186:63;;8142:117;8298:2;8324:53;8369:7;8360:6;8349:9;8345:22;8324:53;:::i;:::-;8314:63;;8269:118;7920:474;;;;;:::o;8400:180::-;8448:77;8445:1;8438:88;8545:4;8542:1;8535:15;8569:4;8566:1;8559:15;8586:320;8630:6;8667:1;8661:4;8657:12;8647:22;;8714:1;8708:4;8704:12;8735:18;8725:81;;8791:4;8783:6;8779:17;8769:27;;8725:81;8853:2;8845:6;8842:14;8822:18;8819:38;8816:84;;;8872:18;;:::i;:::-;8816:84;8637:269;8586:320;;;:::o;8912:182::-;9052:34;9048:1;9040:6;9036:14;9029:58;8912:182;:::o;9100:366::-;9242:3;9263:67;9327:2;9322:3;9263:67;:::i;:::-;9256:74;;9339:93;9428:3;9339:93;:::i;:::-;9457:2;9452:3;9448:12;9441:19;;9100:366;;;:::o;9472:419::-;9638:4;9676:2;9665:9;9661:18;9653:26;;9725:9;9719:4;9715:20;9711:1;9700:9;9696:17;9689:47;9753:131;9879:4;9753:131;:::i;:::-;9745:139;;9472:419;;;:::o;9897:227::-;10037:34;10033:1;10025:6;10021:14;10014:58;10106:10;10101:2;10093:6;10089:15;10082:35;9897:227;:::o;10130:366::-;10272:3;10293:67;10357:2;10352:3;10293:67;:::i;:::-;10286:74;;10369:93;10458:3;10369:93;:::i;:::-;10487:2;10482:3;10478:12;10471:19;;10130:366;;;:::o;10502:419::-;10668:4;10706:2;10695:9;10691:18;10683:26;;10755:9;10749:4;10745:20;10741:1;10730:9;10726:17;10719:47;10783:131;10909:4;10783:131;:::i;:::-;10775:139;;10502:419;;;:::o;10927:178::-;11067:30;11063:1;11055:6;11051:14;11044:54;10927:178;:::o;11111:366::-;11253:3;11274:67;11338:2;11333:3;11274:67;:::i;:::-;11267:74;;11350:93;11439:3;11350:93;:::i;:::-;11468:2;11463:3;11459:12;11452:19;;11111:366;;;:::o;11483:419::-;11649:4;11687:2;11676:9;11672:18;11664:26;;11736:9;11730:4;11726:20;11722:1;11711:9;11707:17;11700:47;11764:131;11890:4;11764:131;:::i;:::-;11756:139;;11483:419;;;:::o;11908:222::-;12048:34;12044:1;12036:6;12032:14;12025:58;12117:5;12112:2;12104:6;12100:15;12093:30;11908:222;:::o;12136:366::-;12278:3;12299:67;12363:2;12358:3;12299:67;:::i;:::-;12292:74;;12375:93;12464:3;12375:93;:::i;:::-;12493:2;12488:3;12484:12;12477:19;;12136:366;;;:::o;12508:419::-;12674:4;12712:2;12701:9;12697:18;12689:26;;12761:9;12755:4;12751:20;12747:1;12736:9;12732:17;12725:47;12789:131;12915:4;12789:131;:::i;:::-;12781:139;;12508:419;;;:::o;12933:173::-;13073:25;13069:1;13061:6;13057:14;13050:49;12933:173;:::o;13112:366::-;13254:3;13275:67;13339:2;13334:3;13275:67;:::i;:::-;13268:74;;13351:93;13440:3;13351:93;:::i;:::-;13469:2;13464:3;13460:12;13453:19;;13112:366;;;:::o;13484:419::-;13650:4;13688:2;13677:9;13673:18;13665:26;;13737:9;13731:4;13727:20;13723:1;13712:9;13708:17;13701:47;13765:131;13891:4;13765:131;:::i;:::-;13757:139;;13484:419;;;:::o;13909:225::-;14049:34;14045:1;14037:6;14033:14;14026:58;14118:8;14113:2;14105:6;14101:15;14094:33;13909:225;:::o;14140:366::-;14282:3;14303:67;14367:2;14362:3;14303:67;:::i;:::-;14296:74;;14379:93;14468:3;14379:93;:::i;:::-;14497:2;14492:3;14488:12;14481:19;;14140:366;;;:::o;14512:419::-;14678:4;14716:2;14705:9;14701:18;14693:26;;14765:9;14759:4;14755:20;14751:1;14740:9;14736:17;14729:47;14793:131;14919:4;14793:131;:::i;:::-;14785:139;;14512:419;;;:::o;14937:180::-;14985:77;14982:1;14975:88;15082:4;15079:1;15072:15;15106:4;15103:1;15096:15;15123:348;15163:7;15186:20;15204:1;15186:20;:::i;:::-;15181:25;;15220:20;15238:1;15220:20;:::i;:::-;15215:25;;15408:1;15340:66;15336:74;15333:1;15330:81;15325:1;15318:9;15311:17;15307:105;15304:131;;;15415:18;;:::i;:::-;15304:131;15463:1;15460;15456:9;15445:20;;15123:348;;;;:::o;15477:180::-;15525:77;15522:1;15515:88;15622:4;15619:1;15612:15;15646:4;15643:1;15636:15;15663:185;15703:1;15720:20;15738:1;15720:20;:::i;:::-;15715:25;;15754:20;15772:1;15754:20;:::i;:::-;15749:25;;15793:1;15783:35;;15798:18;;:::i;:::-;15783:35;15840:1;15837;15833:9;15828:14;;15663:185;;;;:::o;15854:220::-;15994:34;15990:1;15982:6;15978:14;15971:58;16063:3;16058:2;16050:6;16046:15;16039:28;15854:220;:::o;16080:366::-;16222:3;16243:67;16307:2;16302:3;16243:67;:::i;:::-;16236:74;;16319:93;16408:3;16319:93;:::i;:::-;16437:2;16432:3;16428:12;16421:19;;16080:366;;;:::o;16452:419::-;16618:4;16656:2;16645:9;16641:18;16633:26;;16705:9;16699:4;16695:20;16691:1;16680:9;16676:17;16669:47;16733:131;16859:4;16733:131;:::i;:::-;16725:139;;16452:419;;;:::o;16877:229::-;17017:34;17013:1;17005:6;17001:14;16994:58;17086:12;17081:2;17073:6;17069:15;17062:37;16877:229;:::o;17112:366::-;17254:3;17275:67;17339:2;17334:3;17275:67;:::i;:::-;17268:74;;17351:93;17440:3;17351:93;:::i;:::-;17469:2;17464:3;17460:12;17453:19;;17112:366;;;:::o;17484:419::-;17650:4;17688:2;17677:9;17673:18;17665:26;;17737:9;17731:4;17727:20;17723:1;17712:9;17708:17;17701:47;17765:131;17891:4;17765:131;:::i;:::-;17757:139;;17484:419;;;:::o;17909:227::-;18049:34;18045:1;18037:6;18033:14;18026:58;18118:10;18113:2;18105:6;18101:15;18094:35;17909:227;:::o;18142:366::-;18284:3;18305:67;18369:2;18364:3;18305:67;:::i;:::-;18298:74;;18381:93;18470:3;18381:93;:::i;:::-;18499:2;18494:3;18490:12;18483:19;;18142:366;;;:::o;18514:419::-;18680:4;18718:2;18707:9;18703:18;18695:26;;18767:9;18761:4;18757:20;18753:1;18742:9;18738:17;18731:47;18795:131;18921:4;18795:131;:::i;:::-;18787:139;;18514:419;;;:::o;18939:230::-;19079:34;19075:1;19067:6;19063:14;19056:58;19148:13;19143:2;19135:6;19131:15;19124:38;18939:230;:::o;19175:366::-;19317:3;19338:67;19402:2;19397:3;19338:67;:::i;:::-;19331:74;;19414:93;19503:3;19414:93;:::i;:::-;19532:2;19527:3;19523:12;19516:19;;19175:366;;;:::o;19547:419::-;19713:4;19751:2;19740:9;19736:18;19728:26;;19800:9;19794:4;19790:20;19786:1;19775:9;19771:17;19764:47;19828:131;19954:4;19828:131;:::i;:::-;19820:139;;19547:419;;;:::o;19972:228::-;20112:34;20108:1;20100:6;20096:14;20089:58;20181:11;20176:2;20168:6;20164:15;20157:36;19972:228;:::o;20206:366::-;20348:3;20369:67;20433:2;20428:3;20369:67;:::i;:::-;20362:74;;20445:93;20534:3;20445:93;:::i;:::-;20563:2;20558:3;20554:12;20547:19;;20206:366;;;:::o;20578:419::-;20744:4;20782:2;20771:9;20767:18;20759:26;;20831:9;20825:4;20821:20;20817:1;20806:9;20802:17;20795:47;20859:131;20985:4;20859:131;:::i;:::-;20851:139;;20578:419;;;:::o;21003:232::-;21143:34;21139:1;21131:6;21127:14;21120:58;21212:15;21207:2;21199:6;21195:15;21188:40;21003:232;:::o;21241:366::-;21383:3;21404:67;21468:2;21463:3;21404:67;:::i;:::-;21397:74;;21480:93;21569:3;21480:93;:::i;:::-;21598:2;21593:3;21589:12;21582:19;;21241:366;;;:::o;21613:419::-;21779:4;21817:2;21806:9;21802:18;21794:26;;21866:9;21860:4;21856:20;21852:1;21841:9;21837:17;21830:47;21894:131;22020:4;21894:131;:::i;:::-;21886:139;;21613:419;;;:::o;22038:181::-;22178:33;22174:1;22166:6;22162:14;22155:57;22038:181;:::o;22225:366::-;22367:3;22388:67;22452:2;22447:3;22388:67;:::i;:::-;22381:74;;22464:93;22553:3;22464:93;:::i;:::-;22582:2;22577:3;22573:12;22566:19;;22225:366;;;:::o;22597:419::-;22763:4;22801:2;22790:9;22786:18;22778:26;;22850:9;22844:4;22840:20;22836:1;22825:9;22821:17;22814:47;22878:131;23004:4;22878:131;:::i;:::-;22870:139;;22597:419;;;:::o;23022:222::-;23162:34;23158:1;23150:6;23146:14;23139:58;23231:5;23226:2;23218:6;23214:15;23207:30;23022:222;:::o;23250:366::-;23392:3;23413:67;23477:2;23472:3;23413:67;:::i;:::-;23406:74;;23489:93;23578:3;23489:93;:::i;:::-;23607:2;23602:3;23598:12;23591:19;;23250:366;;;:::o;23622:419::-;23788:4;23826:2;23815:9;23811:18;23803:26;;23875:9;23869:4;23865:20;23861:1;23850:9;23846:17;23839:47;23903:131;24029:4;23903:131;:::i;:::-;23895:139;;23622:419;;;:::o;24047:191::-;24087:4;24107:20;24125:1;24107:20;:::i;:::-;24102:25;;24141:20;24159:1;24141:20;:::i;:::-;24136:25;;24180:1;24177;24174:8;24171:34;;;24185:18;;:::i;:::-;24171:34;24230:1;24227;24223:9;24215:17;;24047:191;;;;:::o;24244:305::-;24284:3;24303:20;24321:1;24303:20;:::i;:::-;24298:25;;24337:20;24355:1;24337:20;:::i;:::-;24332:25;;24491:1;24423:66;24419:74;24416:1;24413:81;24410:107;;;24497:18;;:::i;:::-;24410:107;24541:1;24538;24534:9;24527:16;;24244:305;;;;:::o;24555:177::-;24695:29;24691:1;24683:6;24679:14;24672:53;24555:177;:::o;24738:366::-;24880:3;24901:67;24965:2;24960:3;24901:67;:::i;:::-;24894:74;;24977:93;25066:3;24977:93;:::i;:::-;25095:2;25090:3;25086:12;25079:19;;24738:366;;;:::o;25110:419::-;25276:4;25314:2;25303:9;25299:18;25291:26;;25363:9;25357:4;25353:20;25349:1;25338:9;25334:17;25327:47;25391:131;25517:4;25391:131;:::i;:::-;25383:139;;25110:419;;;:::o;25535:180::-;25583:77;25580:1;25573:88;25680:4;25677:1;25670:15;25704:4;25701:1;25694:15;25721:180;25769:77;25766:1;25759:88;25866:4;25863:1;25856:15;25890:4;25887:1;25880:15;25907:143;25964:5;25995:6;25989:13;25980:22;;26011:33;26038:5;26011:33;:::i;:::-;25907:143;;;;:::o;26056:351::-;26126:6;26175:2;26163:9;26154:7;26150:23;26146:32;26143:119;;;26181:79;;:::i;:::-;26143:119;26301:1;26326:64;26382:7;26373:6;26362:9;26358:22;26326:64;:::i;:::-;26316:74;;26272:128;26056:351;;;;:::o;26413:85::-;26458:7;26487:5;26476:16;;26413:85;;;:::o;26504:158::-;26562:9;26595:61;26613:42;26622:32;26648:5;26622:32;:::i;:::-;26613:42;:::i;:::-;26595:61;:::i;:::-;26582:74;;26504:158;;;:::o;26668:147::-;26763:45;26802:5;26763:45;:::i;:::-;26758:3;26751:58;26668:147;;:::o;26821:114::-;26888:6;26922:5;26916:12;26906:22;;26821:114;;;:::o;26941:184::-;27040:11;27074:6;27069:3;27062:19;27114:4;27109:3;27105:14;27090:29;;26941:184;;;;:::o;27131:132::-;27198:4;27221:3;27213:11;;27251:4;27246:3;27242:14;27234:22;;27131:132;;;:::o;27269:108::-;27346:24;27364:5;27346:24;:::i;:::-;27341:3;27334:37;27269:108;;:::o;27383:179::-;27452:10;27473:46;27515:3;27507:6;27473:46;:::i;:::-;27551:4;27546:3;27542:14;27528:28;;27383:179;;;;:::o;27568:113::-;27638:4;27670;27665:3;27661:14;27653:22;;27568:113;;;:::o;27717:732::-;27836:3;27865:54;27913:5;27865:54;:::i;:::-;27935:86;28014:6;28009:3;27935:86;:::i;:::-;27928:93;;28045:56;28095:5;28045:56;:::i;:::-;28124:7;28155:1;28140:284;28165:6;28162:1;28159:13;28140:284;;;28241:6;28235:13;28268:63;28327:3;28312:13;28268:63;:::i;:::-;28261:70;;28354:60;28407:6;28354:60;:::i;:::-;28344:70;;28200:224;28187:1;28184;28180:9;28175:14;;28140:284;;;28144:14;28440:3;28433:10;;27841:608;;;27717:732;;;;:::o;28455:831::-;28718:4;28756:3;28745:9;28741:19;28733:27;;28770:71;28838:1;28827:9;28823:17;28814:6;28770:71;:::i;:::-;28851:80;28927:2;28916:9;28912:18;28903:6;28851:80;:::i;:::-;28978:9;28972:4;28968:20;28963:2;28952:9;28948:18;28941:48;29006:108;29109:4;29100:6;29006:108;:::i;:::-;28998:116;;29124:72;29192:2;29181:9;29177:18;29168:6;29124:72;:::i;:::-;29206:73;29274:3;29263:9;29259:19;29250:6;29206:73;:::i;:::-;28455:831;;;;;;;;:::o

Swarm Source

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