ETH Price: $3,032.17 (+4.01%)

Token

Hackatron (HACKA)
 

Overview

Max Total Supply

100,000,000 HACKA

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: HACKA
Balance
0.000000000004370391 HACKA

Value
$0.00
0x962a356c581bcf96f88ee30eafd9fb16d7d01a91
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:
HACKA

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-27
*/

// SPDX-License-Identifier:MIT
/* Telegram: https://t.me/HackatronERC Twitter: https://twitter.com/hackatronERC Website: http://hackatron.vip 
*/
pragma solidity ^0.8.8;
 
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 HACKA is Context, IERC20, Ownable {
    string private _name = "Hackatron";
    string private _symbol = "HACKA";
    uint8 private _decimals = 18;
    uint256 private _totalSupply = 100000000 * 1e18;
 
    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;
 
    uint256 public minTokenToSwap = (_totalSupply * 5) / (10000); // this amount will trigger swap and distribute
    uint256 public maxHoldLimit = 2000000* 1e18; // this is the max wallet holding limit
    uint256 public maxTxnLimit = 2000000* 1e18; // this is the max transaction limit
    uint256 public percentDivider = 100;
    uint256 public launchedAt;
 
    bool public distributeAndLiquifyStatus; // should be true to turn on to liquidate the pool
    bool public feesStatus; // enable by default
    bool public trading; // once enable can't be disable afterwards
 
    IDexRouter public dexRouter; // router declaration
 
    address public dexPair; // pair address declaration
    address public marketingWallet; // marketing address declaration
    address private constant DEAD = address(0xdead);
    address private constant ZERO = address(0);
 
    uint256 public marketingFeeOnBuying = 25;
 
    uint256 public marketingFeeOnSelling = 25;
 
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
 
    constructor() {
        _balances[owner()] = _totalSupply;
        marketingWallet = address(0x9E2758952e5d876F6FAc1A77cEbA4F82DE290F48);
 
        dexRouter = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        isExcludedFromFee[address(dexRouter)] = true;
        isExcludedFromMaxTxn[address(dexRouter)] = true;
        isExcludedFromMaxHolding[address(dexRouter)] = true;
 
        dexPair = IDexFactory(dexRouter.factory()).createPair(
            address(this),
            dexRouter.WETH()
        );
        isExcludedFromMaxHolding[dexPair] = true;
 
 
        //exclude owner and this contract from fee
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
 
        //exclude owner and this contract from max Txn
        isExcludedFromMaxTxn[owner()] = true;
        isExcludedFromMaxTxn[address(this)] = true;
 
        //exclude owner and this contract from max hold limit
        isExcludedFromMaxHolding[owner()] = true;
        isExcludedFromMaxHolding[address(this)] = 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()] - amount
        );
        return true;
    }
 
    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + (addedValue)
        );
        return true;
    }
 
    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] - subtractedValue
        );
        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 {
        minTokenToSwap = _amount * 1e18;
    }
 
    function setMaxHoldLimit(uint256 _amount) external onlyOwner {
        maxHoldLimit = _amount * 1e18;
    }
 
    function setMaxTxnLimit(uint256 _amount) external onlyOwner {
        maxTxnLimit = _amount * 1e18;
    }
 
    function setBuyFeePercent(uint256 _marketingFee) external onlyOwner {
        marketingFeeOnBuying = _marketingFee;
    }
 
    function setSellFeePercent(uint256 _marketingFee) external onlyOwner {
        marketingFeeOnSelling = _marketingFee;
    }
 
    function setDistributionStatus(bool _value) public onlyOwner {
        distributeAndLiquifyStatus = _value;
    }
 
    function enableOrDisableFees(bool _value) external onlyOwner {
        feesStatus = _value;
    }
 
    function updateAddresses(address _marketingWallet) external onlyOwner {
        marketingWallet = _marketingWallet;
    }
 
    function enableTrading() external onlyOwner {
        require(!trading, ": already enabled");
 
        trading = true;
        feesStatus = true;
        distributeAndLiquifyStatus = 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 * marketingFeeOnBuying) / (percentDivider);
        return fee;
    }
 
    function totalSellFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = (amount * marketingFeeOnSelling) / (percentDivider);
        return fee;
    }
 
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), " approve from the zero address");
        require(spender != address(0), "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), "transfer from the zero address");
        require(to != address(0), "transfer to the zero address");
        require(amount > 0, "Amount must be greater than zero");
        if (!isExcludedFromMaxTxn[from] && !isExcludedFromMaxTxn[to]) {
            require(amount <= maxTxnLimit, " max txn limit exceeds");
 
            // trading disable till launch
            if (!trading) {
                require(
                    dexPair != from && dexPair != to,
                    ": trading is disable"
                );
            }
        }
 
        if (!isExcludedFromMaxHolding[to]) {
            require(
                (balanceOf(to) + amount) <= maxHoldLimit,
                ": 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 fees, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (dexPair == sender && takeFee) {
            uint256 allFee;
            uint256 tTransferAmount;
            allFee = totalBuyFeePerTx(amount);
            tTransferAmount = amount - allFee;
 
            _balances[sender] = _balances[sender] - amount;
            _balances[recipient] = _balances[recipient] + tTransferAmount;
            emit Transfer(sender, recipient, tTransferAmount);
 
            takeTokenFee(sender, allFee);
        } else if (dexPair == recipient && takeFee) {
            uint256 allFee = totalSellFeePerTx(amount);
            uint256 tTransferAmount = amount - allFee;
            _balances[sender] = _balances[sender] - amount;
            _balances[recipient] = _balances[recipient] + tTransferAmount;
            emit Transfer(sender, recipient, tTransferAmount);
 
            takeTokenFee(sender, allFee);
        } else {
            _balances[sender] = _balances[sender] - amount;
            _balances[recipient] = _balances[recipient] + (amount);
            emit Transfer(sender, recipient, amount);
        }
    }
 
    function takeTokenFee(address sender, uint256 amount) private {
        _balances[address(this)] = _balances[address(this)] + (amount);
 
        emit Transfer(sender, address(this), amount);
    }
 
    // to withdarw ETH from contract
    function withdrawETH(uint256 _amount) external onlyOwner {
        require(address(this).balance >= _amount, "Invalid Amount");
        payable(msg.sender).transfer(_amount);
    }
 
    // to withdraw ERC20 tokens from contract
    function withdrawToken(IERC20 _token, uint256 _amount) external onlyOwner {
        require(_token.balanceOf(address(this)) >= _amount, "Invalid Amount");
        _token.transfer(msg.sender, _amount);
    }
 
    function distributeAndLiquify(address from, address to) private {
        uint256 contractTokenBalance = balanceOf(address(this));
 
        bool shouldSell = contractTokenBalance >= minTokenToSwap;
 
        if (
            shouldSell &&
            from != dexPair &&
            distributeAndLiquifyStatus &&
            !(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 swapping on Dex
library Utils {
    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
        );
    }
 
    function addLiquidity(
        address routerAddress,
        address owner,
        uint256 tokenAmount,
        uint256 ethAmount
    ) internal {
        IDexRouter dexRouter = IDexRouter(routerAddress);
 
        // add the liquidity
        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner,
            block.timestamp + 300
        );
    }
}

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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","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":[],"name":"distributeAndLiquifyStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"maxTxnLimit","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":"setMaxTxnLimit","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":"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"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600981526020017f4861636b6174726f6e0000000000000000000000000000000000000000000000815250600190805190602001906200005192919062000a5a565b506040518060400160405280600581526020017f4841434b41000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000a5a565b506012600360006101000a81548160ff021916908360ff1602179055506a52b7d2dcc80cd2e40000006004556127106005600454620000df919062000b43565b620000eb919062000bd3565b600a556a01a784379d99db42000000600b556a01a784379d99db42000000600c556064600d55601960125560196013553480156200012857600080fd5b506200013962000a2960201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600454600560006200020a62000a3160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550739e2758952e5d876f6fac1a77ceba4f82de290f48601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600f60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620004c957600080fd5b505afa158015620004de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000504919062000c75565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200058957600080fd5b505afa1580156200059e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005c4919062000c75565b6040518363ffffffff1660e01b8152600401620005e392919062000cb8565b602060405180830381600087803b158015620005fe57600080fd5b505af115801562000613573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000639919062000c75565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760006200070962000a3160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000620007c862000a3160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960006200088762000a3160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620009ba62000a3160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405162000a1b919062000cf6565b60405180910390a362000d78565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b82805462000a689062000d42565b90600052602060002090601f01602090048101928262000a8c576000855562000ad8565b82601f1062000aa757805160ff191683800117855562000ad8565b8280016001018555821562000ad8579182015b8281111562000ad757825182559160200191906001019062000aba565b5b50905062000ae7919062000aeb565b5090565b5b8082111562000b0657600081600090555060010162000aec565b5090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b508262000b0a565b915062000b5d8362000b0a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b995762000b9862000b14565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000be08262000b0a565b915062000bed8362000b0a565b92508262000c005762000bff62000ba4565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c3d8262000c10565b9050919050565b62000c4f8162000c30565b811462000c5b57600080fd5b50565b60008151905062000c6f8162000c44565b92915050565b60006020828403121562000c8e5762000c8d62000c0b565b5b600062000c9e8482850162000c5e565b91505092915050565b62000cb28162000c30565b82525050565b600060408201905062000ccf600083018562000ca7565b62000cde602083018462000ca7565b9392505050565b62000cf08162000b0a565b82525050565b600060208201905062000d0d600083018462000ce5565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d5b57607f821691505b6020821081141562000d725762000d7162000d13565b5b50919050565b61417c8062000d886000396000f3fe60806040526004361061028c5760003560e01c80638da5cb5b1161015a578063b0bc2a2d116100c1578063f097ea1a1161007a578063f097ea1a14610a01578063f14210a614610a2a578063f242ab4114610a53578063f2fde38b14610a7e578063f4b3dbc314610aa7578063fe6f1b0514610ae457610293565b8063b0bc2a2d146108df578063bf56b37114610908578063dd62ed3e14610933578063ea5b9e8514610970578063ec44acf214610999578063ed421429146109c457610293565b80639e281a98116101135780639e281a98146107c1578063a2b8a947146107ea578063a457c2d714610813578063a643c1a014610850578063a7c29b4014610879578063a9059cbb146108a257610293565b80638da5cb5b146106b1578063950eb5d5146106dc57806395d89b411461070557806399b102b5146107305780639a36dfa11461076d5780639b6a27501461079857610293565b8063679a3c59116101fe5780637c6a9a9c116101b75780637c6a9a9c146105b3578063844af78e146105de57806384ea21bc146106095780638756aabd14610646578063879dd3c51461066f5780638a8c523c1461069a57610293565b8063679a3c59146104b5578063681aa362146104de57806370a0823114610509578063715018a61461054657806375f0a8741461055d57806379777b4e1461058857610293565b80631884f1e6116102505780631884f1e61461037f57806323b872dd146103aa5780632d129390146103e7578063313ce56714610410578063395093511461043b5780635342acb41461047857610293565b806306fdde03146102985780630758d924146102c3578063095ea7b3146102ee5780630a2d140c1461032b57806318160ddd1461035457610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610b0f565b6040516102ba9190613362565b60405180910390f35b3480156102cf57600080fd5b506102d8610ba1565b6040516102e59190613403565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190613497565b610bc7565b60405161032291906134f2565b60405180910390f35b34801561033757600080fd5b50610352600480360381019061034d9190613539565b610be5565b005b34801561036057600080fd5b50610369610c97565b6040516103769190613575565b60405180910390f35b34801561038b57600080fd5b50610394610ca1565b6040516103a19190613575565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc9190613590565b610ca7565b6040516103de91906134f2565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906135e3565b610d5f565b005b34801561041c57600080fd5b50610425610e4f565b604051610432919061363f565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d9190613497565b610e66565b60405161046f91906134f2565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a919061365a565b610f12565b6040516104ac91906134f2565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d7919061365a565b610f32565b005b3480156104ea57600080fd5b506104f3611011565b6040516105009190613575565b60405180910390f35b34801561051557600080fd5b50610530600480360381019061052b919061365a565b611017565b60405161053d9190613575565b60405180910390f35b34801561055257600080fd5b5061055b611060565b005b34801561056957600080fd5b506105726111b3565b60405161057f9190613696565b60405180910390f35b34801561059457600080fd5b5061059d6111d9565b6040516105aa91906134f2565b60405180910390f35b3480156105bf57600080fd5b506105c86111ec565b6040516105d59190613575565b60405180910390f35b3480156105ea57600080fd5b506105f36111f2565b6040516106009190613575565b60405180910390f35b34801561061557600080fd5b50610630600480360381019061062b919061365a565b6111f8565b60405161063d91906134f2565b60405180910390f35b34801561065257600080fd5b5061066d600480360381019061066891906136b1565b611218565b005b34801561067b57600080fd5b506106846112ca565b60405161069191906134f2565b60405180910390f35b3480156106a657600080fd5b506106af6112dd565b005b3480156106bd57600080fd5b506106c661141c565b6040516106d39190613696565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe91906136b1565b611445565b005b34801561071157600080fd5b5061071a6114e4565b6040516107279190613362565b60405180910390f35b34801561073c57600080fd5b506107576004803603810190610752919061365a565b611576565b60405161076491906134f2565b60405180910390f35b34801561077957600080fd5b50610782611596565b60405161078f9190613575565b60405180910390f35b3480156107a457600080fd5b506107bf60048036038101906107ba91906136b1565b61159c565b005b3480156107cd57600080fd5b506107e860048036038101906107e3919061371c565b61164e565b005b3480156107f657600080fd5b50610811600480360381019061080c91906136b1565b611840565b005b34801561081f57600080fd5b5061083a60048036038101906108359190613497565b6118df565b60405161084791906134f2565b60405180910390f35b34801561085c57600080fd5b506108776004803603810190610872919061365a565b61198b565b005b34801561088557600080fd5b506108a0600480360381019061089b91906135e3565b611a64565b005b3480156108ae57600080fd5b506108c960048036038101906108c49190613497565b611b54565b6040516108d691906134f2565b60405180910390f35b3480156108eb57600080fd5b5061090660048036038101906109019190613539565b611b72565b005b34801561091457600080fd5b5061091d611c24565b60405161092a9190613575565b60405180910390f35b34801561093f57600080fd5b5061095a6004803603810190610955919061375c565b611c2a565b6040516109679190613575565b60405180910390f35b34801561097c57600080fd5b50610997600480360381019061099291906135e3565b611cb1565b005b3480156109a557600080fd5b506109ae611da1565b6040516109bb91906134f2565b60405180910390f35b3480156109d057600080fd5b506109eb60048036038101906109e691906136b1565b611db4565b6040516109f89190613575565b60405180910390f35b348015610a0d57600080fd5b50610a286004803603810190610a2391906136b1565b611ddd565b005b348015610a3657600080fd5b50610a516004803603810190610a4c91906136b1565b611e8f565b005b348015610a5f57600080fd5b50610a68611fb1565b604051610a759190613696565b60405180910390f35b348015610a8a57600080fd5b50610aa56004803603810190610aa0919061365a565b611fd7565b005b348015610ab357600080fd5b50610ace6004803603810190610ac991906136b1565b612199565b604051610adb9190613575565b60405180910390f35b348015610af057600080fd5b50610af96121c2565b604051610b069190613575565b60405180910390f35b606060018054610b1e906137cb565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4a906137cb565b8015610b975780601f10610b6c57610100808354040283529160200191610b97565b820191906000526020600020905b815481529060010190602001808311610b7a57829003601f168201915b5050505050905090565b600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bdb610bd46121c8565b84846121d0565b6001905092915050565b610bed6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7190613849565b60405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b6000600454905090565b600a5481565b6000610cb484848461239b565b610d5484610cc06121c8565b84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d0a6121c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d4f9190613898565b6121d0565b600190509392505050565b610d676121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90613849565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600360009054906101000a900460ff16905090565b6000610f08610e736121c8565b848460066000610e816121c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f0391906138cc565b6121d0565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b610f3a6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbe90613849565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561100d573d6000803e3d6000fd5b5050565b600c5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110686121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec90613849565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900460ff1681565b60125481565b60135481565b60096020528060005260406000206000915054906101000a900460ff1681565b6112206121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490613849565b60405180910390fd5b670de0b6b3a7640000816112c19190613922565b600b8190555050565b600f60019054906101000a900460ff1681565b6112e56121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990613849565b60405180910390fd5b600f60029054906101000a900460ff16156113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b9906139c8565b60405180910390fd5b6001600f60026101000a81548160ff0219169083151502179055506001600f60016101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff02191690831515021790555042600e81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61144d6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190613849565b60405180910390fd5b8060128190555050565b6060600280546114f3906137cb565b80601f016020809104026020016040519081016040528092919081815260200182805461151f906137cb565b801561156c5780601f106115415761010080835404028352916020019161156c565b820191906000526020600020905b81548152906001019060200180831161154f57829003601f168201915b5050505050905090565b60086020528060005260406000206000915054906101000a900460ff1681565b600b5481565b6115a46121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890613849565b60405180910390fd5b670de0b6b3a7640000816116459190613922565b600c8190555050565b6116566121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da90613849565b60405180910390fd5b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161171d9190613696565b60206040518083038186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176d91906139fd565b10156117ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a590613a76565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016117e9929190613a96565b602060405180830381600087803b15801561180357600080fd5b505af1158015611817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183b9190613ad4565b505050565b6118486121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90613849565b60405180910390fd5b8060138190555050565b60006119816118ec6121c8565b8484600660006118fa6121c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461197c9190613898565b6121d0565b6001905092915050565b6119936121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1790613849565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a6c6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af090613849565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611b68611b616121c8565b848461239b565b6001905092915050565b611b7a6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfe90613849565b60405180910390fd5b80600f60016101000a81548160ff02191690831515021790555050565b600e5481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cb96121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3d90613849565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f60029054906101000a900460ff1681565b600080600d5460125484611dc89190613922565b611dd29190613b30565b905080915050919050565b611de56121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6990613849565b60405180910390fd5b670de0b6b3a764000081611e869190613922565b600a8190555050565b611e976121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1b90613849565b60405180910390fd5b80471015611f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5e90613a76565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fad573d6000803e3d6000fd5b5050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fdf6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461206c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206390613849565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d390613bd3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600d54601354846121ad9190613922565b6121b79190613b30565b905080915050919050565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790613c3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a790613cab565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161238e9190613575565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561240b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240290613d17565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561247b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247290613d83565b60405180910390fd5b600081116124be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b590613def565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125625750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126ad57600c548111156125ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a390613e5b565b60405180910390fd5b600f60029054906101000a900460ff166126ac578273ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561266c57508173ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6126ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a290613ec7565b60405180910390fd5b5b5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661275757600b548161270b84611017565b61271591906138cc565b1115612756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274d90613f33565b60405180910390fd5b5b612761838361283c565b600060019050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128085750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806128205750600f60019054906101000a900460ff16155b1561282a57600090505b61283684848484612a39565b50505050565b600061284730611017565b90506000600a5482101590508080156128ae5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128c65750600f60009054906101000a900460ff165b801561295757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156129555750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b15612a335761298b30600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a546121d0565b6129b9600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54612fdd565b60004790506000811115612a3157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a2f573d6000803e3d6000fd5b505b505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612a935750805b15612c4657600080612aa484611db4565b91508184612ab29190613898565b905083600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff9190613898565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8d91906138cc565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c2d9190613575565b60405180910390a3612c3f86836131d2565b5050612fd7565b8273ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612ca05750805b15612e54576000612cb083612199565b905060008184612cc09190613898565b905083600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d9190613898565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9b91906138cc565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e3b9190613575565b60405180910390a3612e4d86836131d2565b5050612fd6565b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e9f9190613898565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f2d91906138cc565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612fcd9190613575565b60405180910390a35b5b50505050565b60008290506000600267ffffffffffffffff811115612fff57612ffe613f53565b5b60405190808252806020026020018201604052801561302d5781602001602082028036833780820191505090505b509050308160008151811061304557613044613f82565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156130c557600080fd5b505afa1580156130d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fd9190613fc6565b8160018151811061311157613110613f82565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c4261317a91906138cc565b6040518663ffffffff1660e01b815260040161319a9594939291906140ec565b600060405180830381600087803b1580156131b457600080fd5b505af11580156131c8573d6000803e3d6000fd5b5050505050505050565b80600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321d91906138cc565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132bd9190613575565b60405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133035780820151818401526020810190506132e8565b83811115613312576000848401525b50505050565b6000601f19601f8301169050919050565b6000613334826132c9565b61333e81856132d4565b935061334e8185602086016132e5565b61335781613318565b840191505092915050565b6000602082019050818103600083015261337c8184613329565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006133c96133c46133bf84613384565b6133a4565b613384565b9050919050565b60006133db826133ae565b9050919050565b60006133ed826133d0565b9050919050565b6133fd816133e2565b82525050565b600060208201905061341860008301846133f4565b92915050565b600080fd5b600061342e82613384565b9050919050565b61343e81613423565b811461344957600080fd5b50565b60008135905061345b81613435565b92915050565b6000819050919050565b61347481613461565b811461347f57600080fd5b50565b6000813590506134918161346b565b92915050565b600080604083850312156134ae576134ad61341e565b5b60006134bc8582860161344c565b92505060206134cd85828601613482565b9150509250929050565b60008115159050919050565b6134ec816134d7565b82525050565b600060208201905061350760008301846134e3565b92915050565b613516816134d7565b811461352157600080fd5b50565b6000813590506135338161350d565b92915050565b60006020828403121561354f5761354e61341e565b5b600061355d84828501613524565b91505092915050565b61356f81613461565b82525050565b600060208201905061358a6000830184613566565b92915050565b6000806000606084860312156135a9576135a861341e565b5b60006135b78682870161344c565b93505060206135c88682870161344c565b92505060406135d986828701613482565b9150509250925092565b600080604083850312156135fa576135f961341e565b5b60006136088582860161344c565b925050602061361985828601613524565b9150509250929050565b600060ff82169050919050565b61363981613623565b82525050565b60006020820190506136546000830184613630565b92915050565b6000602082840312156136705761366f61341e565b5b600061367e8482850161344c565b91505092915050565b61369081613423565b82525050565b60006020820190506136ab6000830184613687565b92915050565b6000602082840312156136c7576136c661341e565b5b60006136d584828501613482565b91505092915050565b60006136e982613423565b9050919050565b6136f9816136de565b811461370457600080fd5b50565b600081359050613716816136f0565b92915050565b600080604083850312156137335761373261341e565b5b600061374185828601613707565b925050602061375285828601613482565b9150509250929050565b600080604083850312156137735761377261341e565b5b60006137818582860161344c565b92505060206137928582860161344c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137e357607f821691505b602082108114156137f7576137f661379c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138336020836132d4565b915061383e826137fd565b602082019050919050565b6000602082019050818103600083015261386281613826565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138a382613461565b91506138ae83613461565b9250828210156138c1576138c0613869565b5b828203905092915050565b60006138d782613461565b91506138e283613461565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561391757613916613869565b5b828201905092915050565b600061392d82613461565b915061393883613461565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561397157613970613869565b5b828202905092915050565b7f3a20616c726561647920656e61626c6564000000000000000000000000000000600082015250565b60006139b26011836132d4565b91506139bd8261397c565b602082019050919050565b600060208201905081810360008301526139e1816139a5565b9050919050565b6000815190506139f78161346b565b92915050565b600060208284031215613a1357613a1261341e565b5b6000613a21848285016139e8565b91505092915050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b6000613a60600e836132d4565b9150613a6b82613a2a565b602082019050919050565b60006020820190508181036000830152613a8f81613a53565b9050919050565b6000604082019050613aab6000830185613687565b613ab86020830184613566565b9392505050565b600081519050613ace8161350d565b92915050565b600060208284031215613aea57613ae961341e565b5b6000613af884828501613abf565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b3b82613461565b9150613b4683613461565b925082613b5657613b55613b01565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613bbd6026836132d4565b9150613bc882613b61565b604082019050919050565b60006020820190508181036000830152613bec81613bb0565b9050919050565b7f20617070726f76652066726f6d20746865207a65726f20616464726573730000600082015250565b6000613c29601e836132d4565b9150613c3482613bf3565b602082019050919050565b60006020820190508181036000830152613c5881613c1c565b9050919050565b7f617070726f766520746f20746865207a65726f20616464726573730000000000600082015250565b6000613c95601b836132d4565b9150613ca082613c5f565b602082019050919050565b60006020820190508181036000830152613cc481613c88565b9050919050565b7f7472616e736665722066726f6d20746865207a65726f20616464726573730000600082015250565b6000613d01601e836132d4565b9150613d0c82613ccb565b602082019050919050565b60006020820190508181036000830152613d3081613cf4565b9050919050565b7f7472616e7366657220746f20746865207a65726f206164647265737300000000600082015250565b6000613d6d601c836132d4565b9150613d7882613d37565b602082019050919050565b60006020820190508181036000830152613d9c81613d60565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b6000613dd96020836132d4565b9150613de482613da3565b602082019050919050565b60006020820190508181036000830152613e0881613dcc565b9050919050565b7f206d61782074786e206c696d6974206578636565647300000000000000000000600082015250565b6000613e456016836132d4565b9150613e5082613e0f565b602082019050919050565b60006020820190508181036000830152613e7481613e38565b9050919050565b7f3a2074726164696e672069732064697361626c65000000000000000000000000600082015250565b6000613eb16014836132d4565b9150613ebc82613e7b565b602082019050919050565b60006020820190508181036000830152613ee081613ea4565b9050919050565b7f3a206d617820686f6c64206c696d697420657863656564730000000000000000600082015250565b6000613f1d6018836132d4565b9150613f2882613ee7565b602082019050919050565b60006020820190508181036000830152613f4c81613f10565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613fc081613435565b92915050565b600060208284031215613fdc57613fdb61341e565b5b6000613fea84828501613fb1565b91505092915050565b6000819050919050565b600061401861401361400e84613ff3565b6133a4565b613461565b9050919050565b61402881613ffd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61406381613423565b82525050565b6000614075838361405a565b60208301905092915050565b6000602082019050919050565b60006140998261402e565b6140a38185614039565b93506140ae8361404a565b8060005b838110156140df5781516140c68882614069565b97506140d183614081565b9250506001810190506140b2565b5085935050505092915050565b600060a0820190506141016000830188613566565b61410e602083018761401f565b8181036040830152614120818661408e565b905061412f6060830185613687565b61413c6080830184613566565b969550505050505056fea2646970667358221220929d893609cdfa5336ae1b52a63ad940cd70d363d1a419c1e63a4538683c121664736f6c63430008080033

Deployed Bytecode

0x60806040526004361061028c5760003560e01c80638da5cb5b1161015a578063b0bc2a2d116100c1578063f097ea1a1161007a578063f097ea1a14610a01578063f14210a614610a2a578063f242ab4114610a53578063f2fde38b14610a7e578063f4b3dbc314610aa7578063fe6f1b0514610ae457610293565b8063b0bc2a2d146108df578063bf56b37114610908578063dd62ed3e14610933578063ea5b9e8514610970578063ec44acf214610999578063ed421429146109c457610293565b80639e281a98116101135780639e281a98146107c1578063a2b8a947146107ea578063a457c2d714610813578063a643c1a014610850578063a7c29b4014610879578063a9059cbb146108a257610293565b80638da5cb5b146106b1578063950eb5d5146106dc57806395d89b411461070557806399b102b5146107305780639a36dfa11461076d5780639b6a27501461079857610293565b8063679a3c59116101fe5780637c6a9a9c116101b75780637c6a9a9c146105b3578063844af78e146105de57806384ea21bc146106095780638756aabd14610646578063879dd3c51461066f5780638a8c523c1461069a57610293565b8063679a3c59146104b5578063681aa362146104de57806370a0823114610509578063715018a61461054657806375f0a8741461055d57806379777b4e1461058857610293565b80631884f1e6116102505780631884f1e61461037f57806323b872dd146103aa5780632d129390146103e7578063313ce56714610410578063395093511461043b5780635342acb41461047857610293565b806306fdde03146102985780630758d924146102c3578063095ea7b3146102ee5780630a2d140c1461032b57806318160ddd1461035457610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610b0f565b6040516102ba9190613362565b60405180910390f35b3480156102cf57600080fd5b506102d8610ba1565b6040516102e59190613403565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190613497565b610bc7565b60405161032291906134f2565b60405180910390f35b34801561033757600080fd5b50610352600480360381019061034d9190613539565b610be5565b005b34801561036057600080fd5b50610369610c97565b6040516103769190613575565b60405180910390f35b34801561038b57600080fd5b50610394610ca1565b6040516103a19190613575565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc9190613590565b610ca7565b6040516103de91906134f2565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906135e3565b610d5f565b005b34801561041c57600080fd5b50610425610e4f565b604051610432919061363f565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d9190613497565b610e66565b60405161046f91906134f2565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a919061365a565b610f12565b6040516104ac91906134f2565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d7919061365a565b610f32565b005b3480156104ea57600080fd5b506104f3611011565b6040516105009190613575565b60405180910390f35b34801561051557600080fd5b50610530600480360381019061052b919061365a565b611017565b60405161053d9190613575565b60405180910390f35b34801561055257600080fd5b5061055b611060565b005b34801561056957600080fd5b506105726111b3565b60405161057f9190613696565b60405180910390f35b34801561059457600080fd5b5061059d6111d9565b6040516105aa91906134f2565b60405180910390f35b3480156105bf57600080fd5b506105c86111ec565b6040516105d59190613575565b60405180910390f35b3480156105ea57600080fd5b506105f36111f2565b6040516106009190613575565b60405180910390f35b34801561061557600080fd5b50610630600480360381019061062b919061365a565b6111f8565b60405161063d91906134f2565b60405180910390f35b34801561065257600080fd5b5061066d600480360381019061066891906136b1565b611218565b005b34801561067b57600080fd5b506106846112ca565b60405161069191906134f2565b60405180910390f35b3480156106a657600080fd5b506106af6112dd565b005b3480156106bd57600080fd5b506106c661141c565b6040516106d39190613696565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe91906136b1565b611445565b005b34801561071157600080fd5b5061071a6114e4565b6040516107279190613362565b60405180910390f35b34801561073c57600080fd5b506107576004803603810190610752919061365a565b611576565b60405161076491906134f2565b60405180910390f35b34801561077957600080fd5b50610782611596565b60405161078f9190613575565b60405180910390f35b3480156107a457600080fd5b506107bf60048036038101906107ba91906136b1565b61159c565b005b3480156107cd57600080fd5b506107e860048036038101906107e3919061371c565b61164e565b005b3480156107f657600080fd5b50610811600480360381019061080c91906136b1565b611840565b005b34801561081f57600080fd5b5061083a60048036038101906108359190613497565b6118df565b60405161084791906134f2565b60405180910390f35b34801561085c57600080fd5b506108776004803603810190610872919061365a565b61198b565b005b34801561088557600080fd5b506108a0600480360381019061089b91906135e3565b611a64565b005b3480156108ae57600080fd5b506108c960048036038101906108c49190613497565b611b54565b6040516108d691906134f2565b60405180910390f35b3480156108eb57600080fd5b5061090660048036038101906109019190613539565b611b72565b005b34801561091457600080fd5b5061091d611c24565b60405161092a9190613575565b60405180910390f35b34801561093f57600080fd5b5061095a6004803603810190610955919061375c565b611c2a565b6040516109679190613575565b60405180910390f35b34801561097c57600080fd5b50610997600480360381019061099291906135e3565b611cb1565b005b3480156109a557600080fd5b506109ae611da1565b6040516109bb91906134f2565b60405180910390f35b3480156109d057600080fd5b506109eb60048036038101906109e691906136b1565b611db4565b6040516109f89190613575565b60405180910390f35b348015610a0d57600080fd5b50610a286004803603810190610a2391906136b1565b611ddd565b005b348015610a3657600080fd5b50610a516004803603810190610a4c91906136b1565b611e8f565b005b348015610a5f57600080fd5b50610a68611fb1565b604051610a759190613696565b60405180910390f35b348015610a8a57600080fd5b50610aa56004803603810190610aa0919061365a565b611fd7565b005b348015610ab357600080fd5b50610ace6004803603810190610ac991906136b1565b612199565b604051610adb9190613575565b60405180910390f35b348015610af057600080fd5b50610af96121c2565b604051610b069190613575565b60405180910390f35b606060018054610b1e906137cb565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4a906137cb565b8015610b975780601f10610b6c57610100808354040283529160200191610b97565b820191906000526020600020905b815481529060010190602001808311610b7a57829003601f168201915b5050505050905090565b600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bdb610bd46121c8565b84846121d0565b6001905092915050565b610bed6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7190613849565b60405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b6000600454905090565b600a5481565b6000610cb484848461239b565b610d5484610cc06121c8565b84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d0a6121c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d4f9190613898565b6121d0565b600190509392505050565b610d676121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90613849565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600360009054906101000a900460ff16905090565b6000610f08610e736121c8565b848460066000610e816121c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f0391906138cc565b6121d0565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b610f3a6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbe90613849565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561100d573d6000803e3d6000fd5b5050565b600c5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110686121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec90613849565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900460ff1681565b60125481565b60135481565b60096020528060005260406000206000915054906101000a900460ff1681565b6112206121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490613849565b60405180910390fd5b670de0b6b3a7640000816112c19190613922565b600b8190555050565b600f60019054906101000a900460ff1681565b6112e56121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990613849565b60405180910390fd5b600f60029054906101000a900460ff16156113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b9906139c8565b60405180910390fd5b6001600f60026101000a81548160ff0219169083151502179055506001600f60016101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff02191690831515021790555042600e81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61144d6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190613849565b60405180910390fd5b8060128190555050565b6060600280546114f3906137cb565b80601f016020809104026020016040519081016040528092919081815260200182805461151f906137cb565b801561156c5780601f106115415761010080835404028352916020019161156c565b820191906000526020600020905b81548152906001019060200180831161154f57829003601f168201915b5050505050905090565b60086020528060005260406000206000915054906101000a900460ff1681565b600b5481565b6115a46121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890613849565b60405180910390fd5b670de0b6b3a7640000816116459190613922565b600c8190555050565b6116566121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da90613849565b60405180910390fd5b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161171d9190613696565b60206040518083038186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176d91906139fd565b10156117ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a590613a76565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016117e9929190613a96565b602060405180830381600087803b15801561180357600080fd5b505af1158015611817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183b9190613ad4565b505050565b6118486121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90613849565b60405180910390fd5b8060138190555050565b60006119816118ec6121c8565b8484600660006118fa6121c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461197c9190613898565b6121d0565b6001905092915050565b6119936121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1790613849565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a6c6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af090613849565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611b68611b616121c8565b848461239b565b6001905092915050565b611b7a6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfe90613849565b60405180910390fd5b80600f60016101000a81548160ff02191690831515021790555050565b600e5481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cb96121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3d90613849565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f60029054906101000a900460ff1681565b600080600d5460125484611dc89190613922565b611dd29190613b30565b905080915050919050565b611de56121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6990613849565b60405180910390fd5b670de0b6b3a764000081611e869190613922565b600a8190555050565b611e976121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1b90613849565b60405180910390fd5b80471015611f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5e90613a76565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fad573d6000803e3d6000fd5b5050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fdf6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461206c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206390613849565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d390613bd3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600d54601354846121ad9190613922565b6121b79190613b30565b905080915050919050565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790613c3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a790613cab565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161238e9190613575565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561240b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240290613d17565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561247b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247290613d83565b60405180910390fd5b600081116124be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b590613def565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125625750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126ad57600c548111156125ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a390613e5b565b60405180910390fd5b600f60029054906101000a900460ff166126ac578273ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561266c57508173ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6126ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a290613ec7565b60405180910390fd5b5b5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661275757600b548161270b84611017565b61271591906138cc565b1115612756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274d90613f33565b60405180910390fd5b5b612761838361283c565b600060019050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128085750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806128205750600f60019054906101000a900460ff16155b1561282a57600090505b61283684848484612a39565b50505050565b600061284730611017565b90506000600a5482101590508080156128ae5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128c65750600f60009054906101000a900460ff165b801561295757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156129555750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b15612a335761298b30600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a546121d0565b6129b9600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54612fdd565b60004790506000811115612a3157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a2f573d6000803e3d6000fd5b505b505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612a935750805b15612c4657600080612aa484611db4565b91508184612ab29190613898565b905083600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff9190613898565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8d91906138cc565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c2d9190613575565b60405180910390a3612c3f86836131d2565b5050612fd7565b8273ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612ca05750805b15612e54576000612cb083612199565b905060008184612cc09190613898565b905083600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d9190613898565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9b91906138cc565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e3b9190613575565b60405180910390a3612e4d86836131d2565b5050612fd6565b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e9f9190613898565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f2d91906138cc565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612fcd9190613575565b60405180910390a35b5b50505050565b60008290506000600267ffffffffffffffff811115612fff57612ffe613f53565b5b60405190808252806020026020018201604052801561302d5781602001602082028036833780820191505090505b509050308160008151811061304557613044613f82565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156130c557600080fd5b505afa1580156130d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fd9190613fc6565b8160018151811061311157613110613f82565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c4261317a91906138cc565b6040518663ffffffff1660e01b815260040161319a9594939291906140ec565b600060405180830381600087803b1580156131b457600080fd5b505af11580156131c8573d6000803e3d6000fd5b5050505050505050565b80600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321d91906138cc565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132bd9190613575565b60405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133035780820151818401526020810190506132e8565b83811115613312576000848401525b50505050565b6000601f19601f8301169050919050565b6000613334826132c9565b61333e81856132d4565b935061334e8185602086016132e5565b61335781613318565b840191505092915050565b6000602082019050818103600083015261337c8184613329565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006133c96133c46133bf84613384565b6133a4565b613384565b9050919050565b60006133db826133ae565b9050919050565b60006133ed826133d0565b9050919050565b6133fd816133e2565b82525050565b600060208201905061341860008301846133f4565b92915050565b600080fd5b600061342e82613384565b9050919050565b61343e81613423565b811461344957600080fd5b50565b60008135905061345b81613435565b92915050565b6000819050919050565b61347481613461565b811461347f57600080fd5b50565b6000813590506134918161346b565b92915050565b600080604083850312156134ae576134ad61341e565b5b60006134bc8582860161344c565b92505060206134cd85828601613482565b9150509250929050565b60008115159050919050565b6134ec816134d7565b82525050565b600060208201905061350760008301846134e3565b92915050565b613516816134d7565b811461352157600080fd5b50565b6000813590506135338161350d565b92915050565b60006020828403121561354f5761354e61341e565b5b600061355d84828501613524565b91505092915050565b61356f81613461565b82525050565b600060208201905061358a6000830184613566565b92915050565b6000806000606084860312156135a9576135a861341e565b5b60006135b78682870161344c565b93505060206135c88682870161344c565b92505060406135d986828701613482565b9150509250925092565b600080604083850312156135fa576135f961341e565b5b60006136088582860161344c565b925050602061361985828601613524565b9150509250929050565b600060ff82169050919050565b61363981613623565b82525050565b60006020820190506136546000830184613630565b92915050565b6000602082840312156136705761366f61341e565b5b600061367e8482850161344c565b91505092915050565b61369081613423565b82525050565b60006020820190506136ab6000830184613687565b92915050565b6000602082840312156136c7576136c661341e565b5b60006136d584828501613482565b91505092915050565b60006136e982613423565b9050919050565b6136f9816136de565b811461370457600080fd5b50565b600081359050613716816136f0565b92915050565b600080604083850312156137335761373261341e565b5b600061374185828601613707565b925050602061375285828601613482565b9150509250929050565b600080604083850312156137735761377261341e565b5b60006137818582860161344c565b92505060206137928582860161344c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137e357607f821691505b602082108114156137f7576137f661379c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138336020836132d4565b915061383e826137fd565b602082019050919050565b6000602082019050818103600083015261386281613826565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138a382613461565b91506138ae83613461565b9250828210156138c1576138c0613869565b5b828203905092915050565b60006138d782613461565b91506138e283613461565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561391757613916613869565b5b828201905092915050565b600061392d82613461565b915061393883613461565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561397157613970613869565b5b828202905092915050565b7f3a20616c726561647920656e61626c6564000000000000000000000000000000600082015250565b60006139b26011836132d4565b91506139bd8261397c565b602082019050919050565b600060208201905081810360008301526139e1816139a5565b9050919050565b6000815190506139f78161346b565b92915050565b600060208284031215613a1357613a1261341e565b5b6000613a21848285016139e8565b91505092915050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b6000613a60600e836132d4565b9150613a6b82613a2a565b602082019050919050565b60006020820190508181036000830152613a8f81613a53565b9050919050565b6000604082019050613aab6000830185613687565b613ab86020830184613566565b9392505050565b600081519050613ace8161350d565b92915050565b600060208284031215613aea57613ae961341e565b5b6000613af884828501613abf565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b3b82613461565b9150613b4683613461565b925082613b5657613b55613b01565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613bbd6026836132d4565b9150613bc882613b61565b604082019050919050565b60006020820190508181036000830152613bec81613bb0565b9050919050565b7f20617070726f76652066726f6d20746865207a65726f20616464726573730000600082015250565b6000613c29601e836132d4565b9150613c3482613bf3565b602082019050919050565b60006020820190508181036000830152613c5881613c1c565b9050919050565b7f617070726f766520746f20746865207a65726f20616464726573730000000000600082015250565b6000613c95601b836132d4565b9150613ca082613c5f565b602082019050919050565b60006020820190508181036000830152613cc481613c88565b9050919050565b7f7472616e736665722066726f6d20746865207a65726f20616464726573730000600082015250565b6000613d01601e836132d4565b9150613d0c82613ccb565b602082019050919050565b60006020820190508181036000830152613d3081613cf4565b9050919050565b7f7472616e7366657220746f20746865207a65726f206164647265737300000000600082015250565b6000613d6d601c836132d4565b9150613d7882613d37565b602082019050919050565b60006020820190508181036000830152613d9c81613d60565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b6000613dd96020836132d4565b9150613de482613da3565b602082019050919050565b60006020820190508181036000830152613e0881613dcc565b9050919050565b7f206d61782074786e206c696d6974206578636565647300000000000000000000600082015250565b6000613e456016836132d4565b9150613e5082613e0f565b602082019050919050565b60006020820190508181036000830152613e7481613e38565b9050919050565b7f3a2074726164696e672069732064697361626c65000000000000000000000000600082015250565b6000613eb16014836132d4565b9150613ebc82613e7b565b602082019050919050565b60006020820190508181036000830152613ee081613ea4565b9050919050565b7f3a206d617820686f6c64206c696d697420657863656564730000000000000000600082015250565b6000613f1d6018836132d4565b9150613f2882613ee7565b602082019050919050565b60006020820190508181036000830152613f4c81613f10565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613fc081613435565b92915050565b600060208284031215613fdc57613fdb61341e565b5b6000613fea84828501613fb1565b91505092915050565b6000819050919050565b600061401861401361400e84613ff3565b6133a4565b613461565b9050919050565b61402881613ffd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61406381613423565b82525050565b6000614075838361405a565b60208301905092915050565b6000602082019050919050565b60006140998261402e565b6140a38185614039565b93506140ae8361404a565b8060005b838110156140df5781516140c68882614069565b97506140d183614081565b9250506001810190506140b2565b5085935050505092915050565b600060a0820190506141016000830188613566565b61410e602083018761401f565b8181036040830152614120818661408e565b905061412f6060830185613687565b61413c6080830184613566565b969550505050505056fea2646970667358221220929d893609cdfa5336ae1b52a63ad940cd70d363d1a419c1e63a4538683c121664736f6c63430008080033

Deployed Bytecode Sourcemap

3277:11881:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6217:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4395:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7112:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9422:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6497:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3809:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7307:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8618:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6405:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7666:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3628:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10035:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4014:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6606:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2822:157;;;;;;;;;;;;;:::i;:::-;;4511:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4177:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4687:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4737:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3743:56;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8922:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4273:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9786:240;;;;;;;;;;;;;:::i;:::-;;2606:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9156:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6309:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3684:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3924:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9040:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14063:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9288:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7967:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9654:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8444:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6734:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9546:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4142:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6935:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8276:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4323:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10173:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8800:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13824:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4454:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2988:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10358:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4100:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6217:83;6254:13;6287:5;6280:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6217:83;:::o;4395:27::-;;;;;;;;;;;;;:::o;7112:186::-;7212:4;7229:39;7238:12;:10;:12::i;:::-;7252:7;7261:6;7229:8;:39::i;:::-;7286:4;7279:11;;7112:186;;;;:::o;9422:115::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9523:6:::1;9494:26;;:35;;;;;;;;;;;;;;;;;;9422:115:::0;:::o;6497:100::-;6550:7;6577:12;;6570:19;;6497:100;:::o;3809:60::-;;;;:::o;7307:350::-;7439:4;7456:36;7466:6;7474:9;7485:6;7456:9;:36::i;:::-;7503:124;7526:6;7547:12;:10;:12::i;:::-;7610:6;7574:11;:19;7586:6;7574:19;;;;;;;;;;;;;;;:33;7594:12;:10;:12::i;:::-;7574:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;7503:8;:124::i;:::-;7645:4;7638:11;;7307:350;;;;;:::o;8618:173::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8778:5:::1;8742:24;:33;8767:7;8742:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;8618:173:::0;;:::o;6405:83::-;6446:5;6471:9;;;;;;;;;;;6464:16;;6405:83;:::o;7666:292::-;7779:4;7796:132;7819:12;:10;:12::i;:::-;7846:7;7906:10;7868:11;:25;7880:12;:10;:12::i;:::-;7868:25;;;;;;;;;;;;;;;:34;7894:7;7868:34;;;;;;;;;;;;;;;;:49;;;;:::i;:::-;7796:8;:132::i;:::-;7946:4;7939:11;;7666:292;;;;:::o;3628:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;10035:129::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10114:9:::1;10106:27;;:50;10134:21;10106:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10035:129:::0;:::o;4014:42::-;;;;:::o;6606:119::-;6672:7;6699:9;:18;6709:7;6699:18;;;;;;;;;;;;;;;;6692:25;;6606:119;;;:::o;2822:157::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2929:1:::1;2892:40;;2913:6;::::0;::::1;;;;;;;;2892:40;;;;;;;;;;;;2968:1;2943:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;2822:157::o:0;4511:30::-;;;;;;;;;;;;;:::o;4177:38::-;;;;;;;;;;;;;:::o;4687:40::-;;;;:::o;4737:41::-;;;;:::o;3743:56::-;;;;;;;;;;;;;;;;;;;;;;:::o;8922:109::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9019:4:::1;9009:7;:14;;;;:::i;:::-;8994:12;:29;;;;8922:109:::0;:::o;4273:22::-;;;;;;;;;;;;;:::o;9786:240::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9850:7:::1;;;;;;;;;;;9849:8;9841:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9903:4;9893:7;;:14;;;;;;;;;;;;;;;;;;9931:4;9918:10;;:17;;;;;;;;;;;;;;;;;;9975:4;9946:26;;:33;;;;;;;;;;;;;;;;;;10003:15;9990:10;:28;;;;9786:240::o:0;2606:79::-;2644:7;2671:6;;;;;;;;;;;2664:13;;2606:79;:::o;9156:123::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9258:13:::1;9235:20;:36;;;;9156:123:::0;:::o;6309:87::-;6348:13;6381:7;6374:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6309:87;:::o;3684:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;3924:43::-;;;;:::o;9040:107::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9135:4:::1;9125:7;:14;;;;:::i;:::-;9111:11;:28;;;;9040:107:::0;:::o;14063:209::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14191:7:::1;14156:6;:16;;;14181:4;14156:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;;14148:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14228:6;:15;;;14244:10;14256:7;14228:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14063:209:::0;;:::o;9288:125::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9392:13:::1;9368:21;:37;;;;9288:125:::0;:::o;7967:300::-;8085:4;8102:135;8125:12;:10;:12::i;:::-;8152:7;8211:15;8174:11;:25;8186:12;:10;:12::i;:::-;8174:25;;;;;;;;;;;;;;;:34;8200:7;8174:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;8102:8;:135::i;:::-;8255:4;8248:11;;7967:300;;;;:::o;9654:123::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9753:16:::1;9735:15;;:34;;;;;;;;;;;;;;;;;;9654:123:::0;:::o;8444:165::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8596:5:::1;8564:20;:29;8585:7;8564:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;8444:165:::0;;:::o;6734:192::-;6837:4;6854:42;6864:12;:10;:12::i;:::-;6878:9;6889:6;6854:9;:42::i;:::-;6914:4;6907:11;;6734:192;;;;:::o;9546:99::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9631:6:::1;9618:10;;:19;;;;;;;;;;;;;;;;;;9546:99:::0;:::o;4142:25::-;;;;:::o;6935:168::-;7041:7;7068:11;:18;7080:5;7068:18;;;;;;;;;;;;;;;:27;7087:7;7068:27;;;;;;;;;;;;;;;;7061:34;;6935:168;;;;:::o;8276:159::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8422:5:::1;8393:17;:26;8411:7;8393:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8276:159:::0;;:::o;4323:19::-;;;;;;;;;;;;;:::o;10173:176::-;10236:7;10256:11;10305:14;;10280:20;;10271:6;:29;;;;:::i;:::-;10270:50;;;;:::i;:::-;10256:64;;10338:3;10331:10;;;10173:176;;;:::o;8800:113::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8901:4:::1;8891:7;:14;;;;:::i;:::-;8874;:31;;;;8800:113:::0;:::o;13824:183::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13925:7:::1;13900:21;:32;;13892:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;13970:10;13962:28;;:37;13991:7;13962:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13824:183:::0;:::o;4454:22::-;;;;;;;;;;;;;:::o;2988:281::-;2744:12;:10;:12::i;:::-;2734:22;;:6;;;;;;;;;;:22;;;2726:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3111:1:::1;3091:22;;:8;:22;;;;3069:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;3224:8;3195:38;;3216:6;::::0;::::1;;;;;;;;3195:38;;;;;;;;;;;;3253:8;3244:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2988:281:::0;:::o;10358:178::-;10422:7;10442:11;10492:14;;10466:21;;10457:6;:30;;;;:::i;:::-;10456:51;;;;:::i;:::-;10442:65;;10525:3;10518:10;;;10358:178;;;:::o;4100:35::-;;;;:::o;1937:115::-;1990:15;2033:10;2018:26;;1937:115;:::o;10545:325::-;10655:1;10638:19;;:5;:19;;;;10630:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10730:1;10711:21;;:7;:21;;;;10703:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;10808:6;10778:11;:18;10790:5;10778:18;;;;;;;;;;;;;;;:27;10797:7;10778:27;;;;;;;;;;;;;;;:36;;;;10846:7;10830:32;;10839:5;10830:32;;;10855:6;10830:32;;;;;;:::i;:::-;;;;;;;;10545:325;;;:::o;10879:1370::-;10983:1;10967:18;;:4;:18;;;;10959:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;11053:1;11039:16;;:2;:16;;;;11031:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;11116:1;11107:6;:10;11099:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;11170:20;:26;11191:4;11170:26;;;;;;;;;;;;;;;;;;;;;;;;;11169:27;:56;;;;;11201:20;:24;11222:2;11201:24;;;;;;;;;;;;;;;;;;;;;;;;;11200:25;11169:56;11165:381;;;11260:11;;11250:6;:21;;11242:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11365:7;;;;;;;;;;;11360:175;;11434:4;11423:15;;:7;;;;;;;;;;;:15;;;;:32;;;;;11453:2;11442:13;;:7;;;;;;;;;;;:13;;;;11423:32;11393:126;;;;;;;;;;;;:::i;:::-;;;;;;;;;11360:175;11165:381;11564:24;:28;11589:2;11564:28;;;;;;;;;;;;;;;;;;;;;;;;;11559:188;;11663:12;;11652:6;11636:13;11646:2;11636:9;:13::i;:::-;:22;;;;:::i;:::-;11635:40;;11609:126;;;;;;;;;;;;:::i;:::-;;;;;;;;;11559:188;11789:30;11810:4;11816:2;11789:20;:30::i;:::-;11894:12;11909:4;11894:19;;12014:17;:23;12032:4;12014:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;12041:17;:21;12059:2;12041:21;;;;;;;;;;;;;;;;;;;;;;;;;12014:48;:63;;;;12067:10;;;;;;;;;;;12066:11;12014:63;12010:111;;;12104:5;12094:15;;12010:111;12200:41;12215:4;12221:2;12225:6;12233:7;12200:14;:41::i;:::-;10948:1301;10879:1370;;;:::o;14281:874::-;14356:28;14387:24;14405:4;14387:9;:24::i;:::-;14356:55;;14425:15;14467:14;;14443:20;:38;;14425:56;;14513:10;:42;;;;;14548:7;;;;;;;;;;;14540:15;;:4;:15;;;;14513:42;:85;;;;;14572:26;;;;;;;;;;;14513:85;:143;;;;;14633:4;14617:21;;:4;:21;;;:38;;;;;14648:7;;;;;;;;;;;14642:13;;:2;:13;;;14617:38;14615:41;14513:143;14495:653;;;14731:59;14748:4;14763:9;;;;;;;;;;;14775:14;;14731:8;:59::i;:::-;14858:58;14889:9;;;;;;;;;;;14901:14;;14858:22;:58::i;:::-;14931:23;14957:21;14931:47;;15066:1;15048:15;:19;15044:92;;;15094:15;;;;;;;;;;;15086:33;;:50;15120:15;15086:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15044:92;14683:465;14495:653;14345:810;;14281:874;;:::o;12332:1235::-;12498:6;12487:17;;:7;;;;;;;;;;;:17;;;:28;;;;;12508:7;12487:28;12483:1077;;;12532:14;12561:23;12608:24;12625:6;12608:16;:24::i;:::-;12599:33;;12674:6;12665;:15;;;;:::i;:::-;12647:33;;12738:6;12718:9;:17;12728:6;12718:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;12698:9;:17;12708:6;12698:17;;;;;;;;;;;;;;;:46;;;;12805:15;12782:9;:20;12792:9;12782:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;12759:9;:20;12769:9;12759:20;;;;;;;;;;;;;;;:61;;;;12857:9;12840:44;;12849:6;12840:44;;;12868:15;12840:44;;;;;;:::i;:::-;;;;;;;;12902:28;12915:6;12923;12902:12;:28::i;:::-;12517:425;;12483:1077;;;12963:9;12952:20;;:7;;;;;;;;;;;:20;;;:31;;;;;12976:7;12952:31;12948:612;;;13000:14;13017:25;13035:6;13017:17;:25::i;:::-;13000:42;;13057:23;13092:6;13083;:15;;;;:::i;:::-;13057:41;;13153:6;13133:9;:17;13143:6;13133:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;13113:9;:17;13123:6;13113:17;;;;;;;;;;;;;;;:46;;;;13220:15;13197:9;:20;13207:9;13197:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;13174:9;:20;13184:9;13174:20;;;;;;;;;;;;;;;:61;;;;13272:9;13255:44;;13264:6;13255:44;;;13283:15;13255:44;;;;;;:::i;:::-;;;;;;;;13317:28;13330:6;13338;13317:12;:28::i;:::-;12985:372;;12948:612;;;13418:6;13398:9;:17;13408:6;13398:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;13378:9;:17;13388:6;13378:17;;;;;;;;;;;;;;;:46;;;;13486:6;13462:9;:20;13472:9;13462:20;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;13439:9;:20;13449:9;13439:20;;;;;;;;;;;;;;;:54;;;;13530:9;13513:35;;13522:6;13513:35;;;13541:6;13513:35;;;;;;:::i;:::-;;;;;;;;12948:612;12483:1077;12332:1235;;;;:::o;15216:616::-;15331:20;15365:13;15331:48;;15449:21;15487:1;15473:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15449:40;;15518:4;15500;15505:1;15500:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15544:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15534:4;15539:1;15534:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;15600:9;:60;;;15675:11;15701:1;15745:4;15772;15810:3;15792:15;:21;;;;:::i;:::-;15600:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15320:512;;15216:616;;:::o;13576:201::-;13704:6;13676:9;:24;13694:4;13676:24;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;13649:9;:24;13667:4;13649:24;;;;;;;;;;;;;;;:62;;;;13755:4;13730:39;;13739:6;13730:39;;;13762:6;13730:39;;;;;;:::i;:::-;;;;;;;;13576: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:109::-;7970:7;7999:24;8017:5;7999:24;:::i;:::-;7988:35;;7920:109;;;:::o;8035:148::-;8121:37;8152:5;8121:37;:::i;:::-;8114:5;8111:48;8101:76;;8173:1;8170;8163:12;8101:76;8035:148;:::o;8189:165::-;8248:5;8286:6;8273:20;8264:29;;8302:46;8342:5;8302:46;:::i;:::-;8189:165;;;;:::o;8360:500::-;8441:6;8449;8498:2;8486:9;8477:7;8473:23;8469:32;8466:119;;;8504:79;;:::i;:::-;8466:119;8624:1;8649:66;8707:7;8698:6;8687:9;8683:22;8649:66;:::i;:::-;8639:76;;8595:130;8764:2;8790:53;8835:7;8826:6;8815:9;8811:22;8790:53;:::i;:::-;8780:63;;8735:118;8360:500;;;;;:::o;8866:474::-;8934:6;8942;8991:2;8979:9;8970:7;8966:23;8962:32;8959:119;;;8997:79;;:::i;:::-;8959:119;9117:1;9142:53;9187:7;9178:6;9167:9;9163:22;9142:53;:::i;:::-;9132:63;;9088:117;9244:2;9270:53;9315:7;9306:6;9295:9;9291:22;9270:53;:::i;:::-;9260:63;;9215:118;8866:474;;;;;:::o;9346:180::-;9394:77;9391:1;9384:88;9491:4;9488:1;9481:15;9515:4;9512:1;9505:15;9532:320;9576:6;9613:1;9607:4;9603:12;9593:22;;9660:1;9654:4;9650:12;9681:18;9671:81;;9737:4;9729:6;9725:17;9715:27;;9671:81;9799:2;9791:6;9788:14;9768:18;9765:38;9762:84;;;9818:18;;:::i;:::-;9762:84;9583:269;9532:320;;;:::o;9858:182::-;9998:34;9994:1;9986:6;9982:14;9975:58;9858:182;:::o;10046:366::-;10188:3;10209:67;10273:2;10268:3;10209:67;:::i;:::-;10202:74;;10285:93;10374:3;10285:93;:::i;:::-;10403:2;10398:3;10394:12;10387:19;;10046:366;;;:::o;10418:419::-;10584:4;10622:2;10611:9;10607:18;10599:26;;10671:9;10665:4;10661:20;10657:1;10646:9;10642:17;10635:47;10699:131;10825:4;10699:131;:::i;:::-;10691:139;;10418:419;;;:::o;10843:180::-;10891:77;10888:1;10881:88;10988:4;10985:1;10978:15;11012:4;11009:1;11002:15;11029:191;11069:4;11089:20;11107:1;11089:20;:::i;:::-;11084:25;;11123:20;11141:1;11123:20;:::i;:::-;11118:25;;11162:1;11159;11156:8;11153:34;;;11167:18;;:::i;:::-;11153:34;11212:1;11209;11205:9;11197:17;;11029:191;;;;:::o;11226:305::-;11266:3;11285:20;11303:1;11285:20;:::i;:::-;11280:25;;11319:20;11337:1;11319:20;:::i;:::-;11314:25;;11473:1;11405:66;11401:74;11398:1;11395:81;11392:107;;;11479:18;;:::i;:::-;11392:107;11523:1;11520;11516:9;11509:16;;11226:305;;;;:::o;11537:348::-;11577:7;11600:20;11618:1;11600:20;:::i;:::-;11595:25;;11634:20;11652:1;11634:20;:::i;:::-;11629:25;;11822:1;11754:66;11750:74;11747:1;11744:81;11739:1;11732:9;11725:17;11721:105;11718:131;;;11829:18;;:::i;:::-;11718:131;11877:1;11874;11870:9;11859:20;;11537:348;;;;:::o;11891:167::-;12031:19;12027:1;12019:6;12015:14;12008:43;11891:167;:::o;12064:366::-;12206:3;12227:67;12291:2;12286:3;12227:67;:::i;:::-;12220:74;;12303:93;12392:3;12303:93;:::i;:::-;12421:2;12416:3;12412:12;12405:19;;12064:366;;;:::o;12436:419::-;12602:4;12640:2;12629:9;12625:18;12617:26;;12689:9;12683:4;12679:20;12675:1;12664:9;12660:17;12653:47;12717:131;12843:4;12717:131;:::i;:::-;12709:139;;12436:419;;;:::o;12861:143::-;12918:5;12949:6;12943:13;12934:22;;12965:33;12992:5;12965:33;:::i;:::-;12861:143;;;;:::o;13010:351::-;13080:6;13129:2;13117:9;13108:7;13104:23;13100:32;13097:119;;;13135:79;;:::i;:::-;13097:119;13255:1;13280:64;13336:7;13327:6;13316:9;13312:22;13280:64;:::i;:::-;13270:74;;13226:128;13010:351;;;;:::o;13367:164::-;13507:16;13503:1;13495:6;13491:14;13484:40;13367:164;:::o;13537:366::-;13679:3;13700:67;13764:2;13759:3;13700:67;:::i;:::-;13693:74;;13776:93;13865:3;13776:93;:::i;:::-;13894:2;13889:3;13885:12;13878:19;;13537:366;;;:::o;13909:419::-;14075:4;14113:2;14102:9;14098:18;14090:26;;14162:9;14156:4;14152:20;14148:1;14137:9;14133:17;14126:47;14190:131;14316:4;14190:131;:::i;:::-;14182:139;;13909:419;;;:::o;14334:332::-;14455:4;14493:2;14482:9;14478:18;14470:26;;14506:71;14574:1;14563:9;14559:17;14550:6;14506:71;:::i;:::-;14587:72;14655:2;14644:9;14640:18;14631:6;14587:72;:::i;:::-;14334:332;;;;;:::o;14672:137::-;14726:5;14757:6;14751:13;14742:22;;14773:30;14797:5;14773:30;:::i;:::-;14672:137;;;;:::o;14815:345::-;14882:6;14931:2;14919:9;14910:7;14906:23;14902:32;14899:119;;;14937:79;;:::i;:::-;14899:119;15057:1;15082:61;15135:7;15126:6;15115:9;15111:22;15082:61;:::i;:::-;15072:71;;15028:125;14815:345;;;;:::o;15166:180::-;15214:77;15211:1;15204:88;15311:4;15308:1;15301:15;15335:4;15332:1;15325:15;15352:185;15392:1;15409:20;15427:1;15409:20;:::i;:::-;15404:25;;15443:20;15461:1;15443:20;:::i;:::-;15438:25;;15482:1;15472:35;;15487:18;;:::i;:::-;15472:35;15529:1;15526;15522:9;15517:14;;15352:185;;;;:::o;15543:225::-;15683:34;15679:1;15671:6;15667:14;15660:58;15752:8;15747:2;15739:6;15735:15;15728:33;15543:225;:::o;15774:366::-;15916:3;15937:67;16001:2;15996:3;15937:67;:::i;:::-;15930:74;;16013:93;16102:3;16013:93;:::i;:::-;16131:2;16126:3;16122:12;16115:19;;15774:366;;;:::o;16146:419::-;16312:4;16350:2;16339:9;16335:18;16327:26;;16399:9;16393:4;16389:20;16385:1;16374:9;16370:17;16363:47;16427:131;16553:4;16427:131;:::i;:::-;16419:139;;16146:419;;;:::o;16571:180::-;16711:32;16707:1;16699:6;16695:14;16688:56;16571:180;:::o;16757:366::-;16899:3;16920:67;16984:2;16979:3;16920:67;:::i;:::-;16913:74;;16996:93;17085:3;16996:93;:::i;:::-;17114:2;17109:3;17105:12;17098:19;;16757:366;;;:::o;17129:419::-;17295:4;17333:2;17322:9;17318:18;17310:26;;17382:9;17376:4;17372:20;17368:1;17357:9;17353:17;17346:47;17410:131;17536:4;17410:131;:::i;:::-;17402:139;;17129:419;;;:::o;17554:177::-;17694:29;17690:1;17682:6;17678:14;17671:53;17554:177;:::o;17737:366::-;17879:3;17900:67;17964:2;17959:3;17900:67;:::i;:::-;17893:74;;17976:93;18065:3;17976:93;:::i;:::-;18094:2;18089:3;18085:12;18078:19;;17737:366;;;:::o;18109:419::-;18275:4;18313:2;18302:9;18298:18;18290:26;;18362:9;18356:4;18352:20;18348:1;18337:9;18333:17;18326:47;18390:131;18516:4;18390:131;:::i;:::-;18382:139;;18109:419;;;:::o;18534:180::-;18674:32;18670:1;18662:6;18658:14;18651:56;18534:180;:::o;18720:366::-;18862:3;18883:67;18947:2;18942:3;18883:67;:::i;:::-;18876:74;;18959:93;19048:3;18959:93;:::i;:::-;19077:2;19072:3;19068:12;19061:19;;18720:366;;;:::o;19092:419::-;19258:4;19296:2;19285:9;19281:18;19273:26;;19345:9;19339:4;19335:20;19331:1;19320:9;19316:17;19309:47;19373:131;19499:4;19373:131;:::i;:::-;19365:139;;19092:419;;;:::o;19517:178::-;19657:30;19653:1;19645:6;19641:14;19634:54;19517:178;:::o;19701:366::-;19843:3;19864:67;19928:2;19923:3;19864:67;:::i;:::-;19857:74;;19940:93;20029:3;19940:93;:::i;:::-;20058:2;20053:3;20049:12;20042:19;;19701:366;;;:::o;20073:419::-;20239:4;20277:2;20266:9;20262:18;20254:26;;20326:9;20320:4;20316:20;20312:1;20301:9;20297:17;20290:47;20354:131;20480:4;20354:131;:::i;:::-;20346:139;;20073:419;;;:::o;20498:182::-;20638:34;20634:1;20626:6;20622:14;20615:58;20498:182;:::o;20686:366::-;20828:3;20849:67;20913:2;20908:3;20849:67;:::i;:::-;20842:74;;20925:93;21014:3;20925:93;:::i;:::-;21043:2;21038:3;21034:12;21027:19;;20686:366;;;:::o;21058:419::-;21224:4;21262:2;21251:9;21247:18;21239:26;;21311:9;21305:4;21301:20;21297:1;21286:9;21282:17;21275:47;21339:131;21465:4;21339:131;:::i;:::-;21331:139;;21058:419;;;:::o;21483:172::-;21623:24;21619:1;21611:6;21607:14;21600:48;21483:172;:::o;21661:366::-;21803:3;21824:67;21888:2;21883:3;21824:67;:::i;:::-;21817:74;;21900:93;21989:3;21900:93;:::i;:::-;22018:2;22013:3;22009:12;22002:19;;21661:366;;;:::o;22033:419::-;22199:4;22237:2;22226:9;22222:18;22214:26;;22286:9;22280:4;22276:20;22272:1;22261:9;22257:17;22250:47;22314:131;22440:4;22314:131;:::i;:::-;22306:139;;22033:419;;;:::o;22458:170::-;22598:22;22594:1;22586:6;22582:14;22575:46;22458:170;:::o;22634:366::-;22776:3;22797:67;22861:2;22856:3;22797:67;:::i;:::-;22790:74;;22873:93;22962:3;22873:93;:::i;:::-;22991:2;22986:3;22982:12;22975:19;;22634:366;;;:::o;23006:419::-;23172:4;23210:2;23199:9;23195:18;23187:26;;23259:9;23253:4;23249:20;23245:1;23234:9;23230:17;23223:47;23287:131;23413:4;23287:131;:::i;:::-;23279:139;;23006:419;;;:::o;23431:174::-;23571:26;23567:1;23559:6;23555:14;23548:50;23431:174;:::o;23611:366::-;23753:3;23774:67;23838:2;23833:3;23774:67;:::i;:::-;23767:74;;23850:93;23939:3;23850:93;:::i;:::-;23968:2;23963:3;23959:12;23952:19;;23611:366;;;:::o;23983:419::-;24149:4;24187:2;24176:9;24172:18;24164:26;;24236:9;24230:4;24226:20;24222:1;24211:9;24207:17;24200:47;24264:131;24390:4;24264:131;:::i;:::-;24256:139;;23983:419;;;:::o;24408:180::-;24456:77;24453:1;24446:88;24553:4;24550:1;24543:15;24577:4;24574:1;24567:15;24594:180;24642:77;24639:1;24632:88;24739:4;24736:1;24729:15;24763:4;24760:1;24753:15;24780:143;24837:5;24868:6;24862:13;24853:22;;24884:33;24911:5;24884:33;:::i;:::-;24780:143;;;;:::o;24929:351::-;24999:6;25048:2;25036:9;25027:7;25023:23;25019:32;25016:119;;;25054:79;;:::i;:::-;25016:119;25174:1;25199:64;25255:7;25246:6;25235:9;25231:22;25199:64;:::i;:::-;25189:74;;25145:128;24929:351;;;;:::o;25286:85::-;25331:7;25360:5;25349:16;;25286:85;;;:::o;25377:158::-;25435:9;25468:61;25486:42;25495:32;25521:5;25495:32;:::i;:::-;25486:42;:::i;:::-;25468:61;:::i;:::-;25455:74;;25377:158;;;:::o;25541:147::-;25636:45;25675:5;25636:45;:::i;:::-;25631:3;25624:58;25541:147;;:::o;25694:114::-;25761:6;25795:5;25789:12;25779:22;;25694:114;;;:::o;25814:184::-;25913:11;25947:6;25942:3;25935:19;25987:4;25982:3;25978:14;25963:29;;25814:184;;;;:::o;26004:132::-;26071:4;26094:3;26086:11;;26124:4;26119:3;26115:14;26107:22;;26004:132;;;:::o;26142:108::-;26219:24;26237:5;26219:24;:::i;:::-;26214:3;26207:37;26142:108;;:::o;26256:179::-;26325:10;26346:46;26388:3;26380:6;26346:46;:::i;:::-;26424:4;26419:3;26415:14;26401:28;;26256:179;;;;:::o;26441:113::-;26511:4;26543;26538:3;26534:14;26526:22;;26441:113;;;:::o;26590:732::-;26709:3;26738:54;26786:5;26738:54;:::i;:::-;26808:86;26887:6;26882:3;26808:86;:::i;:::-;26801:93;;26918:56;26968:5;26918:56;:::i;:::-;26997:7;27028:1;27013:284;27038:6;27035:1;27032:13;27013:284;;;27114:6;27108:13;27141:63;27200:3;27185:13;27141:63;:::i;:::-;27134:70;;27227:60;27280:6;27227:60;:::i;:::-;27217:70;;27073:224;27060:1;27057;27053:9;27048:14;;27013:284;;;27017:14;27313:3;27306:10;;26714:608;;;26590:732;;;;:::o;27328:831::-;27591:4;27629:3;27618:9;27614:19;27606:27;;27643:71;27711:1;27700:9;27696:17;27687:6;27643:71;:::i;:::-;27724:80;27800:2;27789:9;27785:18;27776:6;27724:80;:::i;:::-;27851:9;27845:4;27841:20;27836:2;27825:9;27821:18;27814:48;27879:108;27982:4;27973:6;27879:108;:::i;:::-;27871:116;;27997:72;28065:2;28054:9;28050:18;28041:6;27997:72;:::i;:::-;28079:73;28147:3;28136:9;28132:19;28123:6;28079:73;:::i;:::-;27328:831;;;;;;;;:::o

Swarm Source

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