ETH Price: $3,259.63 (+3.34%)
Gas: 4 Gwei

Token

Daleks Token (Daleks)
 

Overview

Max Total Supply

1,000,000,000 Daleks

Holders

23

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.248854474245264953 Daleks

Value
$0.00
0xfda784d84f7be38438f3dbcadc8d6fd2f9f22d4d
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:
Daleks

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*
    Don't be a loser, join $Daleks!
	
	https://t.me/DaleksTokenPortal

    https://dalekstoken.com
*/

// SPDX-License-Identifier: MIT


pragma solidity ^0.8.17;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
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);
}

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
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);
}

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

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

}



contract AntiSniper is Ownable 
{
    bool public isSniferFled = false;
    mapping(address => bool) private _whiteList;
    modifier filterSnifer(address from, address to) 
    {
        require(isSniferFled || _whiteList[from] || _whiteList[to], "Anti Sniper prevented, This is a protection measure.");
        _;
    }

    constructor() 
    {
        _whiteList[msg.sender] = true;
        _whiteList[address(this)] = true;
    }

    function sniferFled() external onlyOwner {
        isSniferFled = true;
    }

    function includeToWhiteList(address[] memory _users) external onlyOwner {
        for(uint8 i = 0; i < _users.length; i++) {
            _whiteList[_users[i]] = true;
        }
    }
}


/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata, AntiSniper  {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * 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;
    }

    /**
     * @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 value {ERC20} uses, unless this function is
     * 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 18;
    }

    /**
     * @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:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), 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}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - 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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * 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:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual filterSnifer(sender, recipient) 
    {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, 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 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 {}

    /**
     * @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 {}
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */




interface IUniswapV2Pair 
{
    function factory() external view returns (address);
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {

}




contract Daleks is ERC20 {

    
    
    uint256 private  _maxSupply;
    uint256 private denominator = 100;

             //BNB threshold in wei
    uint256 public swapThreshold = 10000000000; // The contract will only swap to ETH, once the fee tokens reach the specified threshold
    
    uint256 private TaxAddressTaxSell;
    address private TaxAddressWallet;
    uint256 private TaxAddressTokens;
    uint256 public maxWallet;
     
    mapping (address => bool) private excludeList;  
    mapping (string => uint256) private sellTaxes;
    mapping (string => address) private taxWallets;
    
    bool public taxStatus = true;
    
    IUniswapV2Router02 private uniswapV2Router02;
    IUniswapV2Factory private uniswapV2Factory;
    IUniswapV2Pair private uniswapV2Pair;
    
    constructor() ERC20("Daleks Token", "Daleks") 
    {
        _maxSupply = 1000000000 * (10**18); //Max Supply
        _setOwner(msg.sender);
        maxWallet = _maxSupply * 3 / 100; // 3% Of total supply
        uniswapV2Router02 = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapV2Factory = IUniswapV2Factory(uniswapV2Router02.factory());
        uniswapV2Pair = IUniswapV2Pair(uniswapV2Factory.createPair(address(this), uniswapV2Router02.WETH()));
        
                  
        setSellTax(4); // set initial tax value here
        setTaxWallet(address(0x39C1Bc7Bd3e14103b6762e265ECfb7Eb3F1F84b4)); //set your wallet here

                       //Wallet exluded from fees //
        exclude(msg.sender);
        exclude(address(this));
        exclude(taxWallets["TaxAddress"]);
        _mint(msg.sender, _maxSupply);
    }
    
    
    
    
    /**
     * @dev Calculates the tax, transfer it to the contract. If the user is selling, and the swap threshold is met, it executes the tax.
     */
    function handleTax(address from, address to, uint256 amount) private returns (uint256) {
        address[] memory sellPath = new address[](2);
        sellPath[0] = address(this);
        sellPath[1] = uniswapV2Router02.WETH();
        
        if(!isExcluded(from) && !isExcluded(to)) {
            uint256 tax;
            uint256 baseUnit = amount / denominator;

             if(to == address(uniswapV2Pair)) {
                tax += baseUnit * sellTaxes["TaxAddress"];
              
                
                if(tax > 0) {
                    _transfer(from, address(this), tax);   
                }
                
               TaxAddressTokens += baseUnit * sellTaxes["TaxAddress"];
               
                
                uint256 taxSum = TaxAddressTokens;
                
                if(taxSum == 0) return amount;
                
                uint256 bnbValue = uniswapV2Router02.getAmountsOut(TaxAddressTokens, sellPath)[1];
                
                if(bnbValue >= swapThreshold) {
                    uint256 startBalance = address(this).balance;

                    uint256 toSell = TaxAddressTokens;
                    
                    _approve(address(this), address(uniswapV2Router02), toSell);
            
                    uniswapV2Router02.swapExactTokensForETH(
                        toSell,
                        0,
                        sellPath,
                        address(this),
                        block.timestamp
                    );
                    
                    uint256 bnbGained = address(this).balance - startBalance;
                    
                 ( bool os,) = taxWallets["TaxAddress"].call{value: bnbGained}("");
                 require (os, "transfer to TaxAddressWallet failed");
                   
                    
                    TaxAddressTokens = 0;
                    
                }
                
            }
            
            amount -= tax;
             if (to != address(uniswapV2Pair)){
                require(balanceOf(to) + amount <= maxWallet, "maxWallet limit exceeded");
            }
        }
        
        return amount;
    }
    
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override virtual {
        
        if(taxStatus) {
            amount = handleTax(sender, recipient, amount);   
        }
        
        super._transfer(sender, recipient, amount);
    }
    
    
    /**
     * @dev set BNB threshold for token conversion
     */
    
    
    function setBNBthreshold (uint256 amount) external onlyOwner {
        swapThreshold = amount;
    }
    
    
    /**
    *@dev Claim stucked BNB
    */
    function claimBNB() external onlyOwner{
       ( bool og,) = taxWallets["TaxAddress"].call{value: address(this).balance}("");
                 require (og, "transfer to TaxAddressWallet failed");
    }

    /**
     * @dev set max wallet limit per address.
     */

    function setMaxWallet (uint256 amount) public onlyOwner {
        require (amount >= totalSupply() * 3 / 100, "NO rug pull");
        maxWallet = amount;
    }
    
    /**
    *@dev Claim stucked TOKENS
    */

    function claimStuckedTOkens (IERC20 _bep20token) external onlyOwner {
        IERC20 token = IERC20 (_bep20token);
        uint256 balance = token.balanceOf(address(this));
        token.transfer(owner(), balance);
    }
    
    /**
     * @dev Excludes the specified account from tax.
     */
    function exclude(address account) public onlyOwner {
        require(!isExcluded(account), "TEST: Account is already excluded");
        excludeList[account] = true;
    }
    
    /**
     * @dev Re-enables tax on the specified account.
     */
    function removeExclude(address account) public onlyOwner {
        require(isExcluded(account), "TEST: Account is not excluded");
        excludeList[account] = false;
    }
    

    
    /**
     * @dev Sets tax for sells.
     */
    function setSellTax(uint256 _newSellTax) public onlyOwner {
        require (_newSellTax <= 4, "Max Sell Tax Limit is 4%");
        sellTaxes["TaxAddress"] = _newSellTax;
       
    }
    
    /**
     * @dev Sets wallets for taxes.
     */
    function setTaxWallet(address _newWallet) public onlyOwner {
        require (_newWallet != address(0), "TaxAddressWallet can't be a zero address");
        taxWallets["TaxAddress"] = _newWallet;
       
    }

    /**
     * @dev Returns sell tax.
     */
    function checkSellTax() public view returns (uint256 Taxes) {
        Taxes = sellTaxes["TaxAddress"];
    }

    
    /**
     * @dev Returns wallet getting taxes.
     */

    function checkTaxAddressWallet() public view returns (address wallet) {
        wallet = taxWallets["TaxAddress"];
    }
    
    
    /**
     * @dev Returns true if the account is excluded, and false otherwise.
     */
    function isExcluded(address account) public view returns (bool) {
        return excludeList[account];
    }
    
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkSellTax","outputs":[{"internalType":"uint256","name":"Taxes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkTaxAddressWallet","outputs":[{"internalType":"address","name":"wallet","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_bep20token","type":"address"}],"name":"claimStuckedTOkens","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"account","type":"address"}],"name":"exclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_users","type":"address[]"}],"name":"includeToWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSniferFled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"removeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBNBthreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newSellTax","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sniferFled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","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":"taxStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260008060146101000a81548160ff02191690831515021790555060646008556402540be4006009556001601160006101000a81548160ff0219169083151502179055503480156200005457600080fd5b506040518060400160405280600c81526020017f44616c656b7320546f6b656e00000000000000000000000000000000000000008152506040518060400160405280600681526020017f44616c656b73000000000000000000000000000000000000000000000000000081525060018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550816005908162000180919062000e24565b50806006908162000192919062000e24565b5050506b033b2e3c9fd0803ce8000000600781905550620001b9336200054160201b60201c565b60646003600754620001cc919062000f3a565b620001d8919062000fb4565b600d81905550737a250d5630b4cf539739df2c5dacb4c659f2488d601160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c7919062001056565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003da919062001056565b6040518363ffffffff1660e01b8152600401620003f992919062001099565b6020604051808303816000875af115801562000419573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043f919062001056565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200049160046200060560201b60201c565b620004b67339c1bc7bd3e14103b6762e265ecfb7eb3f1f84b46200070160201b60201c565b620004c7336200086260201b60201c565b620004d8306200086260201b60201c565b620005276010604051620004ec9062001121565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200086260201b60201c565b6200053b33600754620009a060201b60201c565b62001438565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200061562000b1960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200063b62000b2160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000694576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200068b9062001199565b60405180910390fd5b6004811115620006db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006d2906200120b565b60405180910390fd5b80600f604051620006ec9062001121565b90815260200160405180910390208190555050565b6200071162000b1960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200073762000b2160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000790576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007879062001199565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000802576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f990620012a3565b60405180910390fd5b806010604051620008139062001121565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6200087262000b1960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200089862000b2160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620008f1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008e89062001199565b60405180910390fd5b620009028162000b4a60201b60201c565b1562000945576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200093c906200133b565b60405180910390fd5b6001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a0990620013ad565b60405180910390fd5b62000a266000838362000ba060201b60201c565b806004600082825462000a3a9190620013cf565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a929190620013cf565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000af991906200141b565b60405180910390a362000b156000838362000ba560201b60201c565b5050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c2c57607f821691505b60208210810362000c425762000c4162000be4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000cac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c6d565b62000cb8868362000c6d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000d0562000cff62000cf98462000cd0565b62000cda565b62000cd0565b9050919050565b6000819050919050565b62000d218362000ce4565b62000d3962000d308262000d0c565b84845462000c7a565b825550505050565b600090565b62000d5062000d41565b62000d5d81848462000d16565b505050565b5b8181101562000d855762000d7960008262000d46565b60018101905062000d63565b5050565b601f82111562000dd45762000d9e8162000c48565b62000da98462000c5d565b8101602085101562000db9578190505b62000dd162000dc88562000c5d565b83018262000d62565b50505b505050565b600082821c905092915050565b600062000df96000198460080262000dd9565b1980831691505092915050565b600062000e14838362000de6565b9150826002028217905092915050565b62000e2f8262000baa565b67ffffffffffffffff81111562000e4b5762000e4a62000bb5565b5b62000e57825462000c13565b62000e6482828562000d89565b600060209050601f83116001811462000e9c576000841562000e87578287015190505b62000e93858262000e06565b86555062000f03565b601f19841662000eac8662000c48565b60005b8281101562000ed65784890151825560018201915060208501945060208101905062000eaf565b8683101562000ef6578489015162000ef2601f89168262000de6565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000f478262000cd0565b915062000f548362000cd0565b925082820262000f648162000cd0565b9150828204841483151762000f7e5762000f7d62000f0b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000fc18262000cd0565b915062000fce8362000cd0565b92508262000fe15762000fe062000f85565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200101e8262000ff1565b9050919050565b620010308162001011565b81146200103c57600080fd5b50565b600081519050620010508162001025565b92915050565b6000602082840312156200106f576200106e62000fec565b5b60006200107f848285016200103f565b91505092915050565b620010938162001011565b82525050565b6000604082019050620010b0600083018562001088565b620010bf602083018462001088565b9392505050565b600081905092915050565b7f5461784164647265737300000000000000000000000000000000000000000000600082015250565b600062001109600a83620010c6565b91506200111682620010d1565b600a82019050919050565b60006200112e82620010fa565b9150819050919050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200118160208362001138565b91506200118e8262001149565b602082019050919050565b60006020820190508181036000830152620011b48162001172565b9050919050565b7f4d61782053656c6c20546178204c696d69742069732034250000000000000000600082015250565b6000620011f360188362001138565b91506200120082620011bb565b602082019050919050565b600060208201905081810360008301526200122681620011e4565b9050919050565b7f5461784164647265737357616c6c65742063616e27742062652061207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b60006200128b60288362001138565b915062001298826200122d565b604082019050919050565b60006020820190508181036000830152620012be816200127c565b9050919050565b7f544553543a204163636f756e7420697320616c7265616479206578636c75646560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006200132360218362001138565b91506200133082620012c5565b604082019050919050565b60006020820190508181036000830152620013568162001314565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001395601f8362001138565b9150620013a2826200135d565b602082019050919050565b60006020820190508181036000830152620013c88162001386565b9050919050565b6000620013dc8262000cd0565b9150620013e98362000cd0565b925082820190508082111562001404576200140362000f0b565b5b92915050565b620014158162000cd0565b82525050565b60006020820190506200143260008301846200140a565b92915050565b613a7380620014486000396000f3fe6080604052600436106101dc5760003560e01c8063715018a611610102578063abe4f11d11610095578063ea414b2811610064578063ea414b28146106cb578063eecb2575146106f4578063f2fde38b1461070b578063f8b45b0514610734576101e3565b8063abe4f11d146105fd578063cba0e99614610626578063dd62ed3e14610663578063e516f30e146106a0576101e3565b80639241e2fc116100d15780639241e2fc1461052f57806395d89b4114610558578063a457c2d714610583578063a9059cbb146105c0576101e3565b8063715018a61461049b57806380299c07146104b25780638cd09d50146104db5780638da5cb5b14610504576101e3565b806323b872dd1161017a5780634febf53d116101495780634febf53d146103e15780635d0044ca1461040a5780635ffed34c1461043357806370a082311461045e576101e3565b806323b872dd14610311578063313ce5671461034e57806339509351146103795780634c282550146103b6576101e3565b80630b6bb6f5116101b65780630b6bb6f51461027b57806312ca3f1d146102a457806318160ddd146102bb57806323a38a38146102e6576101e3565b80630445b667146101e857806306fdde0314610213578063095ea7b31461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd61075f565b60405161020a91906125dc565b60405180910390f35b34801561021f57600080fd5b50610228610765565b6040516102359190612687565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612747565b6107f7565b60405161027291906127a2565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d9190612905565b610815565b005b3480156102b057600080fd5b506102b961092b565b005b3480156102c757600080fd5b506102d06109c4565b6040516102dd91906125dc565b60405180910390f35b3480156102f257600080fd5b506102fb6109ce565b60405161030891906127a2565b60405180910390f35b34801561031d57600080fd5b506103386004803603810190610333919061294e565b6109e1565b60405161034591906127a2565b60405180910390f35b34801561035a57600080fd5b50610363610ad9565b60405161037091906129bd565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b9190612747565b610ae2565b6040516103ad91906127a2565b60405180910390f35b3480156103c257600080fd5b506103cb610b8e565b6040516103d891906129e7565b60405180910390f35b3480156103ed57600080fd5b5061040860048036038101906104039190612a02565b610bd2565b005b34801561041657600080fd5b50610431600480360381019061042c9190612a2f565b610cf2565b005b34801561043f57600080fd5b50610448610dda565b60405161045591906127a2565b60405180910390f35b34801561046a57600080fd5b5061048560048036038101906104809190612a02565b610ded565b60405161049291906125dc565b60405180910390f35b3480156104a757600080fd5b506104b0610e36565b005b3480156104be57600080fd5b506104d960048036038101906104d49190612a2f565b610ebe565b005b3480156104e757600080fd5b5061050260048036038101906104fd9190612a2f565b610f44565b005b34801561051057600080fd5b50610519611028565b60405161052691906129e7565b60405180910390f35b34801561053b57600080fd5b5061055660048036038101906105519190612a9a565b611051565b005b34801561056457600080fd5b5061056d6111db565b60405161057a9190612687565b60405180910390f35b34801561058f57600080fd5b506105aa60048036038101906105a59190612747565b61126d565b6040516105b791906127a2565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e29190612747565b611358565b6040516105f491906127a2565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190612a02565b611376565b005b34801561063257600080fd5b5061064d60048036038101906106489190612a02565b611495565b60405161065a91906127a2565b60405180910390f35b34801561066f57600080fd5b5061068a60048036038101906106859190612ac7565b6114eb565b60405161069791906125dc565b60405180910390f35b3480156106ac57600080fd5b506106b5611572565b6040516106c291906125dc565b60405180910390f35b3480156106d757600080fd5b506106f260048036038101906106ed9190612a02565b611596565b005b34801561070057600080fd5b506107096116df565b005b34801561071757600080fd5b50610732600480360381019061072d9190612a02565b611846565b005b34801561074057600080fd5b5061074961193d565b60405161075691906125dc565b60405180910390f35b60095481565b60606005805461077490612b36565b80601f01602080910402602001604051908101604052809291908181526020018280546107a090612b36565b80156107ed5780601f106107c2576101008083540402835291602001916107ed565b820191906000526020600020905b8154815290600101906020018083116107d057829003601f168201915b5050505050905090565b600061080b610804611943565b848461194b565b6001905092915050565b61081d611943565b73ffffffffffffffffffffffffffffffffffffffff1661083b611028565b73ffffffffffffffffffffffffffffffffffffffff1614610891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088890612bb3565b60405180910390fd5b60005b81518160ff161015610927576001806000848460ff16815181106108bb576108ba612bd3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061091f90612c31565b915050610894565b5050565b610933611943565b73ffffffffffffffffffffffffffffffffffffffff16610951611028565b73ffffffffffffffffffffffffffffffffffffffff16146109a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099e90612bb3565b60405180910390fd5b6001600060146101000a81548160ff021916908315150217905550565b6000600454905090565b601160009054906101000a900460ff1681565b60006109ee848484611b14565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a39611943565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab090612ccc565b60405180910390fd5b610acd85610ac5611943565b85840361194b565b60019150509392505050565b60006012905090565b6000610b84610aef611943565b848460036000610afd611943565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b7f9190612cec565b61194b565b6001905092915050565b60006010604051610b9e90612d77565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bda611943565b73ffffffffffffffffffffffffffffffffffffffff16610bf8611028565b73ffffffffffffffffffffffffffffffffffffffff1614610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4590612bb3565b60405180910390fd5b610c5781611495565b15610c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8e90612dfe565b60405180910390fd5b6001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610cfa611943565b73ffffffffffffffffffffffffffffffffffffffff16610d18611028565b73ffffffffffffffffffffffffffffffffffffffff1614610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6590612bb3565b60405180910390fd5b60646003610d7a6109c4565b610d849190612e1e565b610d8e9190612e8f565b811015610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790612f0c565b60405180910390fd5b80600d8190555050565b600060149054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e3e611943565b73ffffffffffffffffffffffffffffffffffffffff16610e5c611028565b73ffffffffffffffffffffffffffffffffffffffff1614610eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea990612bb3565b60405180910390fd5b610ebc6000611b47565b565b610ec6611943565b73ffffffffffffffffffffffffffffffffffffffff16610ee4611028565b73ffffffffffffffffffffffffffffffffffffffff1614610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3190612bb3565b60405180910390fd5b8060098190555050565b610f4c611943565b73ffffffffffffffffffffffffffffffffffffffff16610f6a611028565b73ffffffffffffffffffffffffffffffffffffffff1614610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790612bb3565b60405180910390fd5b6004811115611004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffb90612f78565b60405180910390fd5b80600f60405161101390612d77565b90815260200160405180910390208190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611059611943565b73ffffffffffffffffffffffffffffffffffffffff16611077611028565b73ffffffffffffffffffffffffffffffffffffffff16146110cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c490612bb3565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161110d91906129e7565b602060405180830381865afa15801561112a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114e9190612fad565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611174611028565b836040518363ffffffff1660e01b8152600401611192929190612fda565b6020604051808303816000875af11580156111b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d5919061302f565b50505050565b6060600680546111ea90612b36565b80601f016020809104026020016040519081016040528092919081815260200182805461121690612b36565b80156112635780601f1061123857610100808354040283529160200191611263565b820191906000526020600020905b81548152906001019060200180831161124657829003601f168201915b5050505050905090565b6000806003600061127c611943565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611339576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611330906130ce565b60405180910390fd5b61134d611344611943565b8585840361194b565b600191505092915050565b600061136c611365611943565b8484611b14565b6001905092915050565b61137e611943565b73ffffffffffffffffffffffffffffffffffffffff1661139c611028565b73ffffffffffffffffffffffffffffffffffffffff16146113f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e990612bb3565b60405180910390fd5b6113fb81611495565b61143a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114319061313a565b60405180910390fd5b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600f60405161158290612d77565b908152602001604051809103902054905090565b61159e611943565b73ffffffffffffffffffffffffffffffffffffffff166115bc611028565b73ffffffffffffffffffffffffffffffffffffffff1614611612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160990612bb3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611678906131cc565b60405180910390fd5b80601060405161169090612d77565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116e7611943565b73ffffffffffffffffffffffffffffffffffffffff16611705611028565b73ffffffffffffffffffffffffffffffffffffffff161461175b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175290612bb3565b60405180910390fd5b6000601060405161176b90612d77565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516117bd9061321d565b60006040518083038185875af1925050503d80600081146117fa576040519150601f19603f3d011682016040523d82523d6000602084013e6117ff565b606091505b5050905080611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183a906132a4565b60405180910390fd5b50565b61184e611943565b73ffffffffffffffffffffffffffffffffffffffff1661186c611028565b73ffffffffffffffffffffffffffffffffffffffff16146118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b990612bb3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192890613336565b60405180910390fd5b61193a81611b47565b50565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b1906133c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a209061345a565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b0791906125dc565b60405180910390a3505050565b601160009054906101000a900460ff1615611b3757611b34838383611c0b565b90505b611b4283838361223c565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080600267ffffffffffffffff811115611c2957611c286127c2565b5b604051908082528060200260200182016040528015611c575781602001602082028036833780820191505090505b5090503081600081518110611c6f57611c6e612bd3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3a919061348f565b81600181518110611d4e57611d4d612bd3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d9185611495565b158015611da45750611da284611495565b155b156122305760008060085485611dba9190612e8f565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361217157600f604051611e1f90612d77565b90815260200160405180910390205481611e399190612e1e565b82611e449190612cec565b91506000821115611e5b57611e5a873084611b14565b5b600f604051611e6990612d77565b90815260200160405180910390205481611e839190612e1e565b600c6000828254611e949190612cec565b925050819055506000600c54905060008103611eb65785945050505050612235565b6000601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f600c54876040518363ffffffff1660e01b8152600401611f1792919061357a565b600060405180830381865afa158015611f34573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611f5d919061366d565b600181518110611f7057611f6f612bd3565b5b60200260200101519050600954811061216e5760004790506000600c549050611fbc30601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361194b565b601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe58260008a30426040518663ffffffff1660e01b81526004016120209594939291906136fb565b6000604051808303816000875af115801561203f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190612068919061366d565b50600082476120779190613755565b90506000601060405161208990612d77565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516120db9061321d565b60006040518083038185875af1925050503d8060008114612118576040519150601f19603f3d011682016040523d82523d6000602084013e61211d565b606091505b5050905080612161576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612158906132a4565b60405180910390fd5b6000600c81905550505050505b50505b818561217d9190613755565b9450601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461222d57600d54856121e188610ded565b6121eb9190612cec565b111561222c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612223906137d5565b60405180910390fd5b5b50505b829150505b9392505050565b8282600060149054906101000a900460ff16806122a25750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122f65750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c90613867565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036123a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239b906138f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240a9061398b565b60405180910390fd5b61241e8585856125b9565b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156124a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249c90613a1d565b60405180910390fd5b838103600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461253a9190612cec565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161259e91906125dc565b60405180910390a36125b18686866125be565b505050505050565b505050565b505050565b6000819050919050565b6125d6816125c3565b82525050565b60006020820190506125f160008301846125cd565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612631578082015181840152602081019050612616565b60008484015250505050565b6000601f19601f8301169050919050565b6000612659826125f7565b6126638185612602565b9350612673818560208601612613565b61267c8161263d565b840191505092915050565b600060208201905081810360008301526126a1818461264e565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126e8826126bd565b9050919050565b6126f8816126dd565b811461270357600080fd5b50565b600081359050612715816126ef565b92915050565b612724816125c3565b811461272f57600080fd5b50565b6000813590506127418161271b565b92915050565b6000806040838503121561275e5761275d6126b3565b5b600061276c85828601612706565b925050602061277d85828601612732565b9150509250929050565b60008115159050919050565b61279c81612787565b82525050565b60006020820190506127b76000830184612793565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127fa8261263d565b810181811067ffffffffffffffff82111715612819576128186127c2565b5b80604052505050565b600061282c6126a9565b905061283882826127f1565b919050565b600067ffffffffffffffff821115612858576128576127c2565b5b602082029050602081019050919050565b600080fd5b600061288161287c8461283d565b612822565b905080838252602082019050602084028301858111156128a4576128a3612869565b5b835b818110156128cd57806128b98882612706565b8452602084019350506020810190506128a6565b5050509392505050565b600082601f8301126128ec576128eb6127bd565b5b81356128fc84826020860161286e565b91505092915050565b60006020828403121561291b5761291a6126b3565b5b600082013567ffffffffffffffff811115612939576129386126b8565b5b612945848285016128d7565b91505092915050565b600080600060608486031215612967576129666126b3565b5b600061297586828701612706565b935050602061298686828701612706565b925050604061299786828701612732565b9150509250925092565b600060ff82169050919050565b6129b7816129a1565b82525050565b60006020820190506129d260008301846129ae565b92915050565b6129e1816126dd565b82525050565b60006020820190506129fc60008301846129d8565b92915050565b600060208284031215612a1857612a176126b3565b5b6000612a2684828501612706565b91505092915050565b600060208284031215612a4557612a446126b3565b5b6000612a5384828501612732565b91505092915050565b6000612a67826126dd565b9050919050565b612a7781612a5c565b8114612a8257600080fd5b50565b600081359050612a9481612a6e565b92915050565b600060208284031215612ab057612aaf6126b3565b5b6000612abe84828501612a85565b91505092915050565b60008060408385031215612ade57612add6126b3565b5b6000612aec85828601612706565b9250506020612afd85828601612706565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b4e57607f821691505b602082108103612b6157612b60612b07565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b9d602083612602565b9150612ba882612b67565b602082019050919050565b60006020820190508181036000830152612bcc81612b90565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c3c826129a1565b915060ff8203612c4f57612c4e612c02565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612cb6602883612602565b9150612cc182612c5a565b604082019050919050565b60006020820190508181036000830152612ce581612ca9565b9050919050565b6000612cf7826125c3565b9150612d02836125c3565b9250828201905080821115612d1a57612d19612c02565b5b92915050565b600081905092915050565b7f5461784164647265737300000000000000000000000000000000000000000000600082015250565b6000612d61600a83612d20565b9150612d6c82612d2b565b600a82019050919050565b6000612d8282612d54565b9150819050919050565b7f544553543a204163636f756e7420697320616c7265616479206578636c75646560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000612de8602183612602565b9150612df382612d8c565b604082019050919050565b60006020820190508181036000830152612e1781612ddb565b9050919050565b6000612e29826125c3565b9150612e34836125c3565b9250828202612e42816125c3565b91508282048414831517612e5957612e58612c02565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e9a826125c3565b9150612ea5836125c3565b925082612eb557612eb4612e60565b5b828204905092915050565b7f4e4f207275672070756c6c000000000000000000000000000000000000000000600082015250565b6000612ef6600b83612602565b9150612f0182612ec0565b602082019050919050565b60006020820190508181036000830152612f2581612ee9565b9050919050565b7f4d61782053656c6c20546178204c696d69742069732034250000000000000000600082015250565b6000612f62601883612602565b9150612f6d82612f2c565b602082019050919050565b60006020820190508181036000830152612f9181612f55565b9050919050565b600081519050612fa78161271b565b92915050565b600060208284031215612fc357612fc26126b3565b5b6000612fd184828501612f98565b91505092915050565b6000604082019050612fef60008301856129d8565b612ffc60208301846125cd565b9392505050565b61300c81612787565b811461301757600080fd5b50565b60008151905061302981613003565b92915050565b600060208284031215613045576130446126b3565b5b60006130538482850161301a565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006130b8602583612602565b91506130c38261305c565b604082019050919050565b600060208201905081810360008301526130e7816130ab565b9050919050565b7f544553543a204163636f756e74206973206e6f74206578636c75646564000000600082015250565b6000613124601d83612602565b915061312f826130ee565b602082019050919050565b6000602082019050818103600083015261315381613117565b9050919050565b7f5461784164647265737357616c6c65742063616e27742062652061207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b60006131b6602883612602565b91506131c18261315a565b604082019050919050565b600060208201905081810360008301526131e5816131a9565b9050919050565b600081905092915050565b50565b60006132076000836131ec565b9150613212826131f7565b600082019050919050565b6000613228826131fa565b9150819050919050565b7f7472616e7366657220746f205461784164647265737357616c6c65742066616960008201527f6c65640000000000000000000000000000000000000000000000000000000000602082015250565b600061328e602383612602565b915061329982613232565b604082019050919050565b600060208201905081810360008301526132bd81613281565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613320602683612602565b915061332b826132c4565b604082019050919050565b6000602082019050818103600083015261334f81613313565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133b2602483612602565b91506133bd82613356565b604082019050919050565b600060208201905081810360008301526133e1816133a5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613444602283612602565b915061344f826133e8565b604082019050919050565b6000602082019050818103600083015261347381613437565b9050919050565b600081519050613489816126ef565b92915050565b6000602082840312156134a5576134a46126b3565b5b60006134b38482850161347a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134f1816126dd565b82525050565b600061350383836134e8565b60208301905092915050565b6000602082019050919050565b6000613527826134bc565b61353181856134c7565b935061353c836134d8565b8060005b8381101561356d57815161355488826134f7565b975061355f8361350f565b925050600181019050613540565b5085935050505092915050565b600060408201905061358f60008301856125cd565b81810360208301526135a1818461351c565b90509392505050565b600067ffffffffffffffff8211156135c5576135c46127c2565b5b602082029050602081019050919050565b60006135e96135e4846135aa565b612822565b9050808382526020820190506020840283018581111561360c5761360b612869565b5b835b8181101561363557806136218882612f98565b84526020840193505060208101905061360e565b5050509392505050565b600082601f830112613654576136536127bd565b5b81516136648482602086016135d6565b91505092915050565b600060208284031215613683576136826126b3565b5b600082015167ffffffffffffffff8111156136a1576136a06126b8565b5b6136ad8482850161363f565b91505092915050565b6000819050919050565b6000819050919050565b60006136e56136e06136db846136b6565b6136c0565b6125c3565b9050919050565b6136f5816136ca565b82525050565b600060a08201905061371060008301886125cd565b61371d60208301876136ec565b818103604083015261372f818661351c565b905061373e60608301856129d8565b61374b60808301846125cd565b9695505050505050565b6000613760826125c3565b915061376b836125c3565b925082820390508181111561378357613782612c02565b5b92915050565b7f6d617857616c6c6574206c696d69742065786365656465640000000000000000600082015250565b60006137bf601883612602565b91506137ca82613789565b602082019050919050565b600060208201905081810360008301526137ee816137b2565b9050919050565b7f416e746920536e697065722070726576656e7465642c2054686973206973206160008201527f2070726f74656374696f6e206d6561737572652e000000000000000000000000602082015250565b6000613851603483612602565b915061385c826137f5565b604082019050919050565b6000602082019050818103600083015261388081613844565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006138e3602583612602565b91506138ee82613887565b604082019050919050565b60006020820190508181036000830152613912816138d6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613975602383612602565b915061398082613919565b604082019050919050565b600060208201905081810360008301526139a481613968565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613a07602683612602565b9150613a12826139ab565b604082019050919050565b60006020820190508181036000830152613a36816139fa565b905091905056fea2646970667358221220a1559b5ac35254fb8565b4507c1f98a1a90945a0afe8d80ac4e88a24e59434ef64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c8063715018a611610102578063abe4f11d11610095578063ea414b2811610064578063ea414b28146106cb578063eecb2575146106f4578063f2fde38b1461070b578063f8b45b0514610734576101e3565b8063abe4f11d146105fd578063cba0e99614610626578063dd62ed3e14610663578063e516f30e146106a0576101e3565b80639241e2fc116100d15780639241e2fc1461052f57806395d89b4114610558578063a457c2d714610583578063a9059cbb146105c0576101e3565b8063715018a61461049b57806380299c07146104b25780638cd09d50146104db5780638da5cb5b14610504576101e3565b806323b872dd1161017a5780634febf53d116101495780634febf53d146103e15780635d0044ca1461040a5780635ffed34c1461043357806370a082311461045e576101e3565b806323b872dd14610311578063313ce5671461034e57806339509351146103795780634c282550146103b6576101e3565b80630b6bb6f5116101b65780630b6bb6f51461027b57806312ca3f1d146102a457806318160ddd146102bb57806323a38a38146102e6576101e3565b80630445b667146101e857806306fdde0314610213578063095ea7b31461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd61075f565b60405161020a91906125dc565b60405180910390f35b34801561021f57600080fd5b50610228610765565b6040516102359190612687565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612747565b6107f7565b60405161027291906127a2565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d9190612905565b610815565b005b3480156102b057600080fd5b506102b961092b565b005b3480156102c757600080fd5b506102d06109c4565b6040516102dd91906125dc565b60405180910390f35b3480156102f257600080fd5b506102fb6109ce565b60405161030891906127a2565b60405180910390f35b34801561031d57600080fd5b506103386004803603810190610333919061294e565b6109e1565b60405161034591906127a2565b60405180910390f35b34801561035a57600080fd5b50610363610ad9565b60405161037091906129bd565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b9190612747565b610ae2565b6040516103ad91906127a2565b60405180910390f35b3480156103c257600080fd5b506103cb610b8e565b6040516103d891906129e7565b60405180910390f35b3480156103ed57600080fd5b5061040860048036038101906104039190612a02565b610bd2565b005b34801561041657600080fd5b50610431600480360381019061042c9190612a2f565b610cf2565b005b34801561043f57600080fd5b50610448610dda565b60405161045591906127a2565b60405180910390f35b34801561046a57600080fd5b5061048560048036038101906104809190612a02565b610ded565b60405161049291906125dc565b60405180910390f35b3480156104a757600080fd5b506104b0610e36565b005b3480156104be57600080fd5b506104d960048036038101906104d49190612a2f565b610ebe565b005b3480156104e757600080fd5b5061050260048036038101906104fd9190612a2f565b610f44565b005b34801561051057600080fd5b50610519611028565b60405161052691906129e7565b60405180910390f35b34801561053b57600080fd5b5061055660048036038101906105519190612a9a565b611051565b005b34801561056457600080fd5b5061056d6111db565b60405161057a9190612687565b60405180910390f35b34801561058f57600080fd5b506105aa60048036038101906105a59190612747565b61126d565b6040516105b791906127a2565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e29190612747565b611358565b6040516105f491906127a2565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190612a02565b611376565b005b34801561063257600080fd5b5061064d60048036038101906106489190612a02565b611495565b60405161065a91906127a2565b60405180910390f35b34801561066f57600080fd5b5061068a60048036038101906106859190612ac7565b6114eb565b60405161069791906125dc565b60405180910390f35b3480156106ac57600080fd5b506106b5611572565b6040516106c291906125dc565b60405180910390f35b3480156106d757600080fd5b506106f260048036038101906106ed9190612a02565b611596565b005b34801561070057600080fd5b506107096116df565b005b34801561071757600080fd5b50610732600480360381019061072d9190612a02565b611846565b005b34801561074057600080fd5b5061074961193d565b60405161075691906125dc565b60405180910390f35b60095481565b60606005805461077490612b36565b80601f01602080910402602001604051908101604052809291908181526020018280546107a090612b36565b80156107ed5780601f106107c2576101008083540402835291602001916107ed565b820191906000526020600020905b8154815290600101906020018083116107d057829003601f168201915b5050505050905090565b600061080b610804611943565b848461194b565b6001905092915050565b61081d611943565b73ffffffffffffffffffffffffffffffffffffffff1661083b611028565b73ffffffffffffffffffffffffffffffffffffffff1614610891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088890612bb3565b60405180910390fd5b60005b81518160ff161015610927576001806000848460ff16815181106108bb576108ba612bd3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061091f90612c31565b915050610894565b5050565b610933611943565b73ffffffffffffffffffffffffffffffffffffffff16610951611028565b73ffffffffffffffffffffffffffffffffffffffff16146109a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099e90612bb3565b60405180910390fd5b6001600060146101000a81548160ff021916908315150217905550565b6000600454905090565b601160009054906101000a900460ff1681565b60006109ee848484611b14565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a39611943565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab090612ccc565b60405180910390fd5b610acd85610ac5611943565b85840361194b565b60019150509392505050565b60006012905090565b6000610b84610aef611943565b848460036000610afd611943565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b7f9190612cec565b61194b565b6001905092915050565b60006010604051610b9e90612d77565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bda611943565b73ffffffffffffffffffffffffffffffffffffffff16610bf8611028565b73ffffffffffffffffffffffffffffffffffffffff1614610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4590612bb3565b60405180910390fd5b610c5781611495565b15610c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8e90612dfe565b60405180910390fd5b6001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610cfa611943565b73ffffffffffffffffffffffffffffffffffffffff16610d18611028565b73ffffffffffffffffffffffffffffffffffffffff1614610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6590612bb3565b60405180910390fd5b60646003610d7a6109c4565b610d849190612e1e565b610d8e9190612e8f565b811015610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790612f0c565b60405180910390fd5b80600d8190555050565b600060149054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e3e611943565b73ffffffffffffffffffffffffffffffffffffffff16610e5c611028565b73ffffffffffffffffffffffffffffffffffffffff1614610eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea990612bb3565b60405180910390fd5b610ebc6000611b47565b565b610ec6611943565b73ffffffffffffffffffffffffffffffffffffffff16610ee4611028565b73ffffffffffffffffffffffffffffffffffffffff1614610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3190612bb3565b60405180910390fd5b8060098190555050565b610f4c611943565b73ffffffffffffffffffffffffffffffffffffffff16610f6a611028565b73ffffffffffffffffffffffffffffffffffffffff1614610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790612bb3565b60405180910390fd5b6004811115611004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffb90612f78565b60405180910390fd5b80600f60405161101390612d77565b90815260200160405180910390208190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611059611943565b73ffffffffffffffffffffffffffffffffffffffff16611077611028565b73ffffffffffffffffffffffffffffffffffffffff16146110cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c490612bb3565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161110d91906129e7565b602060405180830381865afa15801561112a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114e9190612fad565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611174611028565b836040518363ffffffff1660e01b8152600401611192929190612fda565b6020604051808303816000875af11580156111b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d5919061302f565b50505050565b6060600680546111ea90612b36565b80601f016020809104026020016040519081016040528092919081815260200182805461121690612b36565b80156112635780601f1061123857610100808354040283529160200191611263565b820191906000526020600020905b81548152906001019060200180831161124657829003601f168201915b5050505050905090565b6000806003600061127c611943565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611339576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611330906130ce565b60405180910390fd5b61134d611344611943565b8585840361194b565b600191505092915050565b600061136c611365611943565b8484611b14565b6001905092915050565b61137e611943565b73ffffffffffffffffffffffffffffffffffffffff1661139c611028565b73ffffffffffffffffffffffffffffffffffffffff16146113f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e990612bb3565b60405180910390fd5b6113fb81611495565b61143a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114319061313a565b60405180910390fd5b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600f60405161158290612d77565b908152602001604051809103902054905090565b61159e611943565b73ffffffffffffffffffffffffffffffffffffffff166115bc611028565b73ffffffffffffffffffffffffffffffffffffffff1614611612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160990612bb3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611678906131cc565b60405180910390fd5b80601060405161169090612d77565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116e7611943565b73ffffffffffffffffffffffffffffffffffffffff16611705611028565b73ffffffffffffffffffffffffffffffffffffffff161461175b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175290612bb3565b60405180910390fd5b6000601060405161176b90612d77565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516117bd9061321d565b60006040518083038185875af1925050503d80600081146117fa576040519150601f19603f3d011682016040523d82523d6000602084013e6117ff565b606091505b5050905080611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183a906132a4565b60405180910390fd5b50565b61184e611943565b73ffffffffffffffffffffffffffffffffffffffff1661186c611028565b73ffffffffffffffffffffffffffffffffffffffff16146118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b990612bb3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192890613336565b60405180910390fd5b61193a81611b47565b50565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b1906133c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a209061345a565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b0791906125dc565b60405180910390a3505050565b601160009054906101000a900460ff1615611b3757611b34838383611c0b565b90505b611b4283838361223c565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080600267ffffffffffffffff811115611c2957611c286127c2565b5b604051908082528060200260200182016040528015611c575781602001602082028036833780820191505090505b5090503081600081518110611c6f57611c6e612bd3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3a919061348f565b81600181518110611d4e57611d4d612bd3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d9185611495565b158015611da45750611da284611495565b155b156122305760008060085485611dba9190612e8f565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361217157600f604051611e1f90612d77565b90815260200160405180910390205481611e399190612e1e565b82611e449190612cec565b91506000821115611e5b57611e5a873084611b14565b5b600f604051611e6990612d77565b90815260200160405180910390205481611e839190612e1e565b600c6000828254611e949190612cec565b925050819055506000600c54905060008103611eb65785945050505050612235565b6000601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f600c54876040518363ffffffff1660e01b8152600401611f1792919061357a565b600060405180830381865afa158015611f34573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611f5d919061366d565b600181518110611f7057611f6f612bd3565b5b60200260200101519050600954811061216e5760004790506000600c549050611fbc30601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361194b565b601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe58260008a30426040518663ffffffff1660e01b81526004016120209594939291906136fb565b6000604051808303816000875af115801561203f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190612068919061366d565b50600082476120779190613755565b90506000601060405161208990612d77565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516120db9061321d565b60006040518083038185875af1925050503d8060008114612118576040519150601f19603f3d011682016040523d82523d6000602084013e61211d565b606091505b5050905080612161576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612158906132a4565b60405180910390fd5b6000600c81905550505050505b50505b818561217d9190613755565b9450601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461222d57600d54856121e188610ded565b6121eb9190612cec565b111561222c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612223906137d5565b60405180910390fd5b5b50505b829150505b9392505050565b8282600060149054906101000a900460ff16806122a25750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122f65750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c90613867565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036123a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239b906138f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240a9061398b565b60405180910390fd5b61241e8585856125b9565b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156124a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249c90613a1d565b60405180910390fd5b838103600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461253a9190612cec565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161259e91906125dc565b60405180910390a36125b18686866125be565b505050505050565b505050565b505050565b6000819050919050565b6125d6816125c3565b82525050565b60006020820190506125f160008301846125cd565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612631578082015181840152602081019050612616565b60008484015250505050565b6000601f19601f8301169050919050565b6000612659826125f7565b6126638185612602565b9350612673818560208601612613565b61267c8161263d565b840191505092915050565b600060208201905081810360008301526126a1818461264e565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126e8826126bd565b9050919050565b6126f8816126dd565b811461270357600080fd5b50565b600081359050612715816126ef565b92915050565b612724816125c3565b811461272f57600080fd5b50565b6000813590506127418161271b565b92915050565b6000806040838503121561275e5761275d6126b3565b5b600061276c85828601612706565b925050602061277d85828601612732565b9150509250929050565b60008115159050919050565b61279c81612787565b82525050565b60006020820190506127b76000830184612793565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127fa8261263d565b810181811067ffffffffffffffff82111715612819576128186127c2565b5b80604052505050565b600061282c6126a9565b905061283882826127f1565b919050565b600067ffffffffffffffff821115612858576128576127c2565b5b602082029050602081019050919050565b600080fd5b600061288161287c8461283d565b612822565b905080838252602082019050602084028301858111156128a4576128a3612869565b5b835b818110156128cd57806128b98882612706565b8452602084019350506020810190506128a6565b5050509392505050565b600082601f8301126128ec576128eb6127bd565b5b81356128fc84826020860161286e565b91505092915050565b60006020828403121561291b5761291a6126b3565b5b600082013567ffffffffffffffff811115612939576129386126b8565b5b612945848285016128d7565b91505092915050565b600080600060608486031215612967576129666126b3565b5b600061297586828701612706565b935050602061298686828701612706565b925050604061299786828701612732565b9150509250925092565b600060ff82169050919050565b6129b7816129a1565b82525050565b60006020820190506129d260008301846129ae565b92915050565b6129e1816126dd565b82525050565b60006020820190506129fc60008301846129d8565b92915050565b600060208284031215612a1857612a176126b3565b5b6000612a2684828501612706565b91505092915050565b600060208284031215612a4557612a446126b3565b5b6000612a5384828501612732565b91505092915050565b6000612a67826126dd565b9050919050565b612a7781612a5c565b8114612a8257600080fd5b50565b600081359050612a9481612a6e565b92915050565b600060208284031215612ab057612aaf6126b3565b5b6000612abe84828501612a85565b91505092915050565b60008060408385031215612ade57612add6126b3565b5b6000612aec85828601612706565b9250506020612afd85828601612706565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b4e57607f821691505b602082108103612b6157612b60612b07565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b9d602083612602565b9150612ba882612b67565b602082019050919050565b60006020820190508181036000830152612bcc81612b90565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c3c826129a1565b915060ff8203612c4f57612c4e612c02565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612cb6602883612602565b9150612cc182612c5a565b604082019050919050565b60006020820190508181036000830152612ce581612ca9565b9050919050565b6000612cf7826125c3565b9150612d02836125c3565b9250828201905080821115612d1a57612d19612c02565b5b92915050565b600081905092915050565b7f5461784164647265737300000000000000000000000000000000000000000000600082015250565b6000612d61600a83612d20565b9150612d6c82612d2b565b600a82019050919050565b6000612d8282612d54565b9150819050919050565b7f544553543a204163636f756e7420697320616c7265616479206578636c75646560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000612de8602183612602565b9150612df382612d8c565b604082019050919050565b60006020820190508181036000830152612e1781612ddb565b9050919050565b6000612e29826125c3565b9150612e34836125c3565b9250828202612e42816125c3565b91508282048414831517612e5957612e58612c02565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e9a826125c3565b9150612ea5836125c3565b925082612eb557612eb4612e60565b5b828204905092915050565b7f4e4f207275672070756c6c000000000000000000000000000000000000000000600082015250565b6000612ef6600b83612602565b9150612f0182612ec0565b602082019050919050565b60006020820190508181036000830152612f2581612ee9565b9050919050565b7f4d61782053656c6c20546178204c696d69742069732034250000000000000000600082015250565b6000612f62601883612602565b9150612f6d82612f2c565b602082019050919050565b60006020820190508181036000830152612f9181612f55565b9050919050565b600081519050612fa78161271b565b92915050565b600060208284031215612fc357612fc26126b3565b5b6000612fd184828501612f98565b91505092915050565b6000604082019050612fef60008301856129d8565b612ffc60208301846125cd565b9392505050565b61300c81612787565b811461301757600080fd5b50565b60008151905061302981613003565b92915050565b600060208284031215613045576130446126b3565b5b60006130538482850161301a565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006130b8602583612602565b91506130c38261305c565b604082019050919050565b600060208201905081810360008301526130e7816130ab565b9050919050565b7f544553543a204163636f756e74206973206e6f74206578636c75646564000000600082015250565b6000613124601d83612602565b915061312f826130ee565b602082019050919050565b6000602082019050818103600083015261315381613117565b9050919050565b7f5461784164647265737357616c6c65742063616e27742062652061207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b60006131b6602883612602565b91506131c18261315a565b604082019050919050565b600060208201905081810360008301526131e5816131a9565b9050919050565b600081905092915050565b50565b60006132076000836131ec565b9150613212826131f7565b600082019050919050565b6000613228826131fa565b9150819050919050565b7f7472616e7366657220746f205461784164647265737357616c6c65742066616960008201527f6c65640000000000000000000000000000000000000000000000000000000000602082015250565b600061328e602383612602565b915061329982613232565b604082019050919050565b600060208201905081810360008301526132bd81613281565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613320602683612602565b915061332b826132c4565b604082019050919050565b6000602082019050818103600083015261334f81613313565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133b2602483612602565b91506133bd82613356565b604082019050919050565b600060208201905081810360008301526133e1816133a5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613444602283612602565b915061344f826133e8565b604082019050919050565b6000602082019050818103600083015261347381613437565b9050919050565b600081519050613489816126ef565b92915050565b6000602082840312156134a5576134a46126b3565b5b60006134b38482850161347a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134f1816126dd565b82525050565b600061350383836134e8565b60208301905092915050565b6000602082019050919050565b6000613527826134bc565b61353181856134c7565b935061353c836134d8565b8060005b8381101561356d57815161355488826134f7565b975061355f8361350f565b925050600181019050613540565b5085935050505092915050565b600060408201905061358f60008301856125cd565b81810360208301526135a1818461351c565b90509392505050565b600067ffffffffffffffff8211156135c5576135c46127c2565b5b602082029050602081019050919050565b60006135e96135e4846135aa565b612822565b9050808382526020820190506020840283018581111561360c5761360b612869565b5b835b8181101561363557806136218882612f98565b84526020840193505060208101905061360e565b5050509392505050565b600082601f830112613654576136536127bd565b5b81516136648482602086016135d6565b91505092915050565b600060208284031215613683576136826126b3565b5b600082015167ffffffffffffffff8111156136a1576136a06126b8565b5b6136ad8482850161363f565b91505092915050565b6000819050919050565b6000819050919050565b60006136e56136e06136db846136b6565b6136c0565b6125c3565b9050919050565b6136f5816136ca565b82525050565b600060a08201905061371060008301886125cd565b61371d60208301876136ec565b818103604083015261372f818661351c565b905061373e60608301856129d8565b61374b60808301846125cd565b9695505050505050565b6000613760826125c3565b915061376b836125c3565b925082820390508181111561378357613782612c02565b5b92915050565b7f6d617857616c6c6574206c696d69742065786365656465640000000000000000600082015250565b60006137bf601883612602565b91506137ca82613789565b602082019050919050565b600060208201905081810360008301526137ee816137b2565b9050919050565b7f416e746920536e697065722070726576656e7465642c2054686973206973206160008201527f2070726f74656374696f6e206d6561737572652e000000000000000000000000602082015250565b6000613851603483612602565b915061385c826137f5565b604082019050919050565b6000602082019050818103600083015261388081613844565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006138e3602583612602565b91506138ee82613887565b604082019050919050565b60006020820190508181036000830152613912816138d6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613975602383612602565b915061398082613919565b604082019050919050565b600060208201905081810360008301526139a481613968565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613a07602683612602565b9150613a12826139ab565b604082019050919050565b60006020820190508181036000830152613a36816139fa565b905091905056fea2646970667358221220a1559b5ac35254fb8565b4507c1f98a1a90945a0afe8d80ac4e88a24e59434ef64736f6c63430008110033

Deployed Bytecode Sourcemap

19078:7136:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19237:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8601:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10768:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6426:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6339:79;;;;;;;;;;;;;:::i;:::-;;9721:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19702:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11419:490;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9563:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12318:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25827:122;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24610:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24077:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5923:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9892:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5247:94;;;;;;;;;;;;;:::i;:::-;;23632:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25115:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4596:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24302:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8820:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13036:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10232:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24868:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26060:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10470:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25640:110;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25370:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23798:204;;;;;;;;;;;;;:::i;:::-;;5496:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19499:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19237:42;;;;:::o;8601:100::-;8655:13;8688:5;8681:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8601:100;:::o;10768:169::-;10851:4;10868:39;10877:12;:10;:12::i;:::-;10891:7;10900:6;10868:8;:39::i;:::-;10925:4;10918:11;;10768:169;;;;:::o;6426:186::-;4827:12;:10;:12::i;:::-;4816:23;;:7;:5;:7::i;:::-;:23;;;4808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6513:7:::1;6509:96;6530:6;:13;6526:1;:17;;;6509:96;;;6589:4;6565:10:::0;:21:::1;6576:6;6583:1;6576:9;;;;;;;;;;:::i;:::-;;;;;;;;6565:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;6545:3;;;;;:::i;:::-;;;;6509:96;;;;6426:186:::0;:::o;6339:79::-;4827:12;:10;:12::i;:::-;4816:23;;:7;:5;:7::i;:::-;:23;;;4808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6406:4:::1;6391:12;;:19;;;;;;;;;;;;;;;;;;6339:79::o:0;9721:108::-;9782:7;9809:12;;9802:19;;9721:108;:::o;19702:28::-;;;;;;;;;;;;;:::o;11419:490::-;11559:4;11576:36;11586:6;11594:9;11605:6;11576:9;:36::i;:::-;11623:24;11650:11;:19;11662:6;11650:19;;;;;;;;;;;;;;;:33;11670:12;:10;:12::i;:::-;11650:33;;;;;;;;;;;;;;;;11623:60;;11722:6;11702:16;:26;;11694:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11809:57;11818:6;11826:12;:10;:12::i;:::-;11859:6;11840:16;:25;11809:8;:57::i;:::-;11897:4;11890:11;;;11419:490;;;;;:::o;9563:93::-;9621:5;9646:2;9639:9;;9563:93;:::o;12318:215::-;12406:4;12423:80;12432:12;:10;:12::i;:::-;12446:7;12492:10;12455:11;:25;12467:12;:10;:12::i;:::-;12455:25;;;;;;;;;;;;;;;:34;12481:7;12455:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;12423:8;:80::i;:::-;12521:4;12514:11;;12318:215;;;;:::o;25827:122::-;25881:14;25917:10;:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;25908:33;;25827:122;:::o;24610:174::-;4827:12;:10;:12::i;:::-;4816:23;;:7;:5;:7::i;:::-;:23;;;4808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24681:19:::1;24692:7;24681:10;:19::i;:::-;24680:20;24672:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;24772:4;24749:11;:20;24761:7;24749:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;24610:174:::0;:::o;24077:162::-;4827:12;:10;:12::i;:::-;4816:23;;:7;:5;:7::i;:::-;:23;;;4808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24183:3:::1;24179:1;24163:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:23;;;;:::i;:::-;24153:6;:33;;24144:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;24225:6;24213:9;:18;;;;24077:162:::0;:::o;5923:32::-;;;;;;;;;;;;;:::o;9892:127::-;9966:7;9993:9;:18;10003:7;9993:18;;;;;;;;;;;;;;;;9986:25;;9892:127;;;:::o;5247:94::-;4827:12;:10;:12::i;:::-;4816:23;;:7;:5;:7::i;:::-;:23;;;4808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5312:21:::1;5330:1;5312:9;:21::i;:::-;5247:94::o:0;23632:102::-;4827:12;:10;:12::i;:::-;4816:23;;:7;:5;:7::i;:::-;:23;;;4808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23720:6:::1;23704:13;:22;;;;23632:102:::0;:::o;25115:188::-;4827:12;:10;:12::i;:::-;4816:23;;:7;:5;:7::i;:::-;:23;;;4808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25208:1:::1;25193:11;:16;;25184:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;25275:11;25249:9;:23;;;;;:::i;:::-;;;;;;;;;;;;;:37;;;;25115:188:::0;:::o;4596:87::-;4642:7;4669:6;;;;;;;;;;;4662:13;;4596:87;:::o;24302:224::-;4827:12;:10;:12::i;:::-;4816:23;;:7;:5;:7::i;:::-;:23;;;4808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24381:12:::1;24404:11;24381:35;;24427:15;24445:5;:15;;;24469:4;24445:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24427:48;;24486:5;:14;;;24501:7;:5;:7::i;:::-;24510;24486:32;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24370:156;;24302:224:::0;:::o;8820:104::-;8876:13;8909:7;8902:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8820:104;:::o;13036:413::-;13129:4;13146:24;13173:11;:25;13185:12;:10;:12::i;:::-;13173:25;;;;;;;;;;;;;;;:34;13199:7;13173:34;;;;;;;;;;;;;;;;13146:61;;13246:15;13226:16;:35;;13218:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13339:67;13348:12;:10;:12::i;:::-;13362:7;13390:15;13371:16;:34;13339:8;:67::i;:::-;13437:4;13430:11;;;13036:413;;;;:::o;10232:175::-;10318:4;10335:42;10345:12;:10;:12::i;:::-;10359:9;10370:6;10335:9;:42::i;:::-;10395:4;10388:11;;10232:175;;;;:::o;24868:176::-;4827:12;:10;:12::i;:::-;4816:23;;:7;:5;:7::i;:::-;:23;;;4808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24944:19:::1;24955:7;24944:10;:19::i;:::-;24936:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;25031:5;25008:11;:20;25020:7;25008:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;24868:176:::0;:::o;26060:110::-;26118:4;26142:11;:20;26154:7;26142:20;;;;;;;;;;;;;;;;;;;;;;;;;26135:27;;26060:110;;;:::o;10470:151::-;10559:7;10586:11;:18;10598:5;10586:18;;;;;;;;;;;;;;;:27;10605:7;10586:27;;;;;;;;;;;;;;;;10579:34;;10470:151;;;;:::o;25640:110::-;25685:13;25719:9;:23;;;;;:::i;:::-;;;;;;;;;;;;;;25711:31;;25640:110;:::o;25370:213::-;4827:12;:10;:12::i;:::-;4816:23;;:7;:5;:7::i;:::-;:23;;;4808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25471:1:::1;25449:24;;:10;:24;;::::0;25440:78:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;25556:10;25529;:24;;;;;:::i;:::-;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;25370:213:::0;:::o;23798:204::-;4827:12;:10;:12::i;:::-;4816:23;;:7;:5;:7::i;:::-;:23;;;4808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23848:7:::1;23860:10;:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:29;;23897:21;23860:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23846:77;;;23952:2;23943:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;23836:166;23798:204::o:0;5496:192::-;4827:12;:10;:12::i;:::-;4816:23;;:7;:5;:7::i;:::-;:23;;;4808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5605:1:::1;5585:22;;:8;:22;;::::0;5577:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5661:19;5671:8;5661:9;:19::i;:::-;5496:192:::0;:::o;19499:24::-;;;;:::o;4011:98::-;4064:7;4091:10;4084:17;;4011:98;:::o;15804:380::-;15957:1;15940:19;;:5;:19;;;15932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16038:1;16019:21;;:7;:21;;;16011:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16122:6;16092:11;:18;16104:5;16092:18;;;;;;;;;;;;;;;:27;16111:7;16092:27;;;;;;;;;;;;;;;:36;;;;16160:7;16144:32;;16153:5;16144:32;;;16169:6;16144:32;;;;;;:::i;:::-;;;;;;;;15804:380;;;:::o;23222:310::-;23376:9;;;;;;;;;;;23373:89;;;23411:36;23421:6;23429:9;23440:6;23411:9;:36::i;:::-;23402:45;;23373:89;23482:42;23498:6;23506:9;23517:6;23482:15;:42::i;:::-;23222:310;;;:::o;5696:174::-;5753:16;5772:6;;;;;;;;;;;5753:25;;5798:8;5789:6;;:17;;;;;;;;;;;;;;;;;;5853:8;5822:40;;5843:8;5822:40;;;;;;;;;;;;5742:128;5696:174;:::o;20960:2250::-;21038:7;21058:25;21100:1;21086:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21058:44;;21135:4;21113:8;21122:1;21113:11;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;;;21165:17;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21151:8;21160:1;21151:11;;;;;;;;:::i;:::-;;;;;;;:38;;;;;;;;;;;21214:16;21225:4;21214:10;:16::i;:::-;21213:17;:36;;;;;21235:14;21246:2;21235:10;:14::i;:::-;21234:15;21213:36;21210:1959;;;21266:11;21292:16;21320:11;;21311:6;:20;;;;:::i;:::-;21292:39;;21366:13;;;;;;;;;;;21352:28;;:2;:28;;;21349:1612;;21419:9;:23;;;;;:::i;:::-;;;;;;;;;;;;;;21408:8;:34;;;;:::i;:::-;21401:41;;;;;:::i;:::-;;;21504:1;21498:3;:7;21495:93;;;21530:35;21540:4;21554;21561:3;21530:9;:35::i;:::-;21495:93;21654:9;:23;;;;;:::i;:::-;;;;;;;;;;;;;;21643:8;:34;;;;:::i;:::-;21623:16;;:54;;;;;;;:::i;:::-;;;;;;;;21731:14;21748:16;;21731:33;;21814:1;21804:6;:11;21801:29;;21824:6;21817:13;;;;;;;;21801:29;21867:16;21886:17;;;;;;;;;;;:31;;;21918:16;;21936:8;21886:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21946:1;21886:62;;;;;;;;:::i;:::-;;;;;;;;21867:81;;22000:13;;21988:8;:25;21985:943;;22038:20;22061:21;22038:44;;22107:14;22124:16;;22107:33;;22185:59;22202:4;22217:17;;;;;;;;;;;22237:6;22185:8;:59::i;:::-;22281:17;;;;;;;;;;;:39;;;22347:6;22380:1;22408:8;22451:4;22483:15;22281:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22566:17;22610:12;22586:21;:36;;;;:::i;:::-;22566:56;;22666:7;22678:10;:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:29;;22715:9;22678:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22664:65;;;22758:2;22749:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;22885:1;22866:16;:20;;;;22015:913;;;;21985:943;21382:1579;;21349:1612;22999:3;22989:13;;;;;:::i;:::-;;;23036;;;;;;;;;;;23022:28;;:2;:28;;;23018:140;;23104:9;;23094:6;23078:13;23088:2;23078:9;:13::i;:::-;:22;;;;:::i;:::-;:35;;23070:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;23018:140;21251:1918;;21210:1959;23196:6;23189:13;;;20960:2250;;;;;;:::o;13939:737::-;14039:6;14047:9;6085:12;;;;;;;;;;;:32;;;;6101:10;:16;6112:4;6101:16;;;;;;;;;;;;;;;;;;;;;;;;;6085:32;:50;;;;6121:10;:14;6132:2;6121:14;;;;;;;;;;;;;;;;;;;;;;;;;6085:50;6077:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;14101:1:::1;14083:20;;:6;:20;;::::0;14075:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14185:1;14164:23;;:9;:23;;::::0;14156:71:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14240:47;14261:6;14269:9;14280:6;14240:20;:47::i;:::-;14300:21;14324:9;:17;14334:6;14324:17;;;;;;;;;;;;;;;;14300:41;;14377:6;14360:13;:23;;14352:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14498:6;14482:13;:22;14462:9;:17;14472:6;14462:17;;;;;;;;;;;;;;;:42;;;;14550:6;14526:9;:20;14536:9;14526:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;14591:9;14574:35;;14583:6;14574:35;;;14602:6;14574:35;;;;;;:::i;:::-;;;;;;;;14622:46;14642:6;14650:9;14661:6;14622:19;:46::i;:::-;14064:612;13939:737:::0;;;;;:::o;16784:125::-;;;;:::o;17513:124::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:75::-;1817:6;1850:2;1844:9;1834:19;;1784:75;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:117::-;3907:1;3904;3897:12;3921:180;3969:77;3966:1;3959:88;4066:4;4063:1;4056:15;4090:4;4087:1;4080:15;4107:281;4190:27;4212:4;4190:27;:::i;:::-;4182:6;4178:40;4320:6;4308:10;4305:22;4284:18;4272:10;4269:34;4266:62;4263:88;;;4331:18;;:::i;:::-;4263:88;4371:10;4367:2;4360:22;4150:238;4107:281;;:::o;4394:129::-;4428:6;4455:20;;:::i;:::-;4445:30;;4484:33;4512:4;4504:6;4484:33;:::i;:::-;4394:129;;;:::o;4529:311::-;4606:4;4696:18;4688:6;4685:30;4682:56;;;4718:18;;:::i;:::-;4682:56;4768:4;4760:6;4756:17;4748:25;;4828:4;4822;4818:15;4810:23;;4529:311;;;:::o;4846:117::-;4955:1;4952;4945:12;4986:710;5082:5;5107:81;5123:64;5180:6;5123:64;:::i;:::-;5107:81;:::i;:::-;5098:90;;5208:5;5237:6;5230:5;5223:21;5271:4;5264:5;5260:16;5253:23;;5324:4;5316:6;5312:17;5304:6;5300:30;5353:3;5345:6;5342:15;5339:122;;;5372:79;;:::i;:::-;5339:122;5487:6;5470:220;5504:6;5499:3;5496:15;5470:220;;;5579:3;5608:37;5641:3;5629:10;5608:37;:::i;:::-;5603:3;5596:50;5675:4;5670:3;5666:14;5659:21;;5546:144;5530:4;5525:3;5521:14;5514:21;;5470:220;;;5474:21;5088:608;;4986:710;;;;;:::o;5719:370::-;5790:5;5839:3;5832:4;5824:6;5820:17;5816:27;5806:122;;5847:79;;:::i;:::-;5806:122;5964:6;5951:20;5989:94;6079:3;6071:6;6064:4;6056:6;6052:17;5989:94;:::i;:::-;5980:103;;5796:293;5719:370;;;;:::o;6095:539::-;6179:6;6228:2;6216:9;6207:7;6203:23;6199:32;6196:119;;;6234:79;;:::i;:::-;6196:119;6382:1;6371:9;6367:17;6354:31;6412:18;6404:6;6401:30;6398:117;;;6434:79;;:::i;:::-;6398:117;6539:78;6609:7;6600:6;6589:9;6585:22;6539:78;:::i;:::-;6529:88;;6325:302;6095:539;;;;:::o;6640:619::-;6717:6;6725;6733;6782:2;6770:9;6761:7;6757:23;6753:32;6750:119;;;6788:79;;:::i;:::-;6750:119;6908:1;6933:53;6978:7;6969:6;6958:9;6954:22;6933:53;:::i;:::-;6923:63;;6879:117;7035:2;7061:53;7106:7;7097:6;7086:9;7082:22;7061:53;:::i;:::-;7051:63;;7006:118;7163:2;7189:53;7234:7;7225:6;7214:9;7210:22;7189:53;:::i;:::-;7179:63;;7134:118;6640:619;;;;;:::o;7265:86::-;7300:7;7340:4;7333:5;7329:16;7318:27;;7265:86;;;:::o;7357:112::-;7440:22;7456:5;7440:22;:::i;:::-;7435:3;7428:35;7357:112;;:::o;7475:214::-;7564:4;7602:2;7591:9;7587:18;7579:26;;7615:67;7679:1;7668:9;7664:17;7655:6;7615:67;:::i;:::-;7475:214;;;;:::o;7695:118::-;7782:24;7800:5;7782:24;:::i;:::-;7777:3;7770:37;7695:118;;:::o;7819:222::-;7912:4;7950:2;7939:9;7935:18;7927:26;;7963:71;8031:1;8020:9;8016:17;8007:6;7963:71;:::i;:::-;7819:222;;;;:::o;8047:329::-;8106:6;8155:2;8143:9;8134:7;8130:23;8126:32;8123:119;;;8161:79;;:::i;:::-;8123:119;8281:1;8306:53;8351:7;8342:6;8331:9;8327:22;8306:53;:::i;:::-;8296:63;;8252:117;8047:329;;;;:::o;8382:::-;8441:6;8490:2;8478:9;8469:7;8465:23;8461:32;8458:119;;;8496:79;;:::i;:::-;8458:119;8616:1;8641:53;8686:7;8677:6;8666:9;8662:22;8641:53;:::i;:::-;8631:63;;8587:117;8382:329;;;;:::o;8717:109::-;8767:7;8796:24;8814:5;8796:24;:::i;:::-;8785:35;;8717:109;;;:::o;8832:148::-;8918:37;8949:5;8918:37;:::i;:::-;8911:5;8908:48;8898:76;;8970:1;8967;8960:12;8898:76;8832:148;:::o;8986:165::-;9045:5;9083:6;9070:20;9061:29;;9099:46;9139:5;9099:46;:::i;:::-;8986:165;;;;:::o;9157:355::-;9229:6;9278:2;9266:9;9257:7;9253:23;9249:32;9246:119;;;9284:79;;:::i;:::-;9246:119;9404:1;9429:66;9487:7;9478:6;9467:9;9463:22;9429:66;:::i;:::-;9419:76;;9375:130;9157:355;;;;:::o;9518:474::-;9586:6;9594;9643:2;9631:9;9622:7;9618:23;9614:32;9611:119;;;9649:79;;:::i;:::-;9611:119;9769:1;9794:53;9839:7;9830:6;9819:9;9815:22;9794:53;:::i;:::-;9784:63;;9740:117;9896:2;9922:53;9967:7;9958:6;9947:9;9943:22;9922:53;:::i;:::-;9912:63;;9867:118;9518:474;;;;;:::o;9998:180::-;10046:77;10043:1;10036:88;10143:4;10140:1;10133:15;10167:4;10164:1;10157:15;10184:320;10228:6;10265:1;10259:4;10255:12;10245:22;;10312:1;10306:4;10302:12;10333:18;10323:81;;10389:4;10381:6;10377:17;10367:27;;10323:81;10451:2;10443:6;10440:14;10420:18;10417:38;10414:84;;10470:18;;:::i;:::-;10414:84;10235:269;10184:320;;;:::o;10510:182::-;10650:34;10646:1;10638:6;10634:14;10627:58;10510:182;:::o;10698:366::-;10840:3;10861:67;10925:2;10920:3;10861:67;:::i;:::-;10854:74;;10937:93;11026:3;10937:93;:::i;:::-;11055:2;11050:3;11046:12;11039:19;;10698:366;;;:::o;11070:419::-;11236:4;11274:2;11263:9;11259:18;11251:26;;11323:9;11317:4;11313:20;11309:1;11298:9;11294:17;11287:47;11351:131;11477:4;11351:131;:::i;:::-;11343:139;;11070:419;;;:::o;11495:180::-;11543:77;11540:1;11533:88;11640:4;11637:1;11630:15;11664:4;11661:1;11654:15;11681:180;11729:77;11726:1;11719:88;11826:4;11823:1;11816:15;11850:4;11847:1;11840:15;11867:167;11904:3;11927:22;11943:5;11927:22;:::i;:::-;11918:31;;11971:4;11964:5;11961:15;11958:41;;11979:18;;:::i;:::-;11958:41;12026:1;12019:5;12015:13;12008:20;;11867:167;;;:::o;12040:227::-;12180:34;12176:1;12168:6;12164:14;12157:58;12249:10;12244:2;12236:6;12232:15;12225:35;12040:227;:::o;12273:366::-;12415:3;12436:67;12500:2;12495:3;12436:67;:::i;:::-;12429:74;;12512:93;12601:3;12512:93;:::i;:::-;12630:2;12625:3;12621:12;12614:19;;12273:366;;;:::o;12645:419::-;12811:4;12849:2;12838:9;12834:18;12826:26;;12898:9;12892:4;12888:20;12884:1;12873:9;12869:17;12862:47;12926:131;13052:4;12926:131;:::i;:::-;12918:139;;12645:419;;;:::o;13070:191::-;13110:3;13129:20;13147:1;13129:20;:::i;:::-;13124:25;;13163:20;13181:1;13163:20;:::i;:::-;13158:25;;13206:1;13203;13199:9;13192:16;;13227:3;13224:1;13221:10;13218:36;;;13234:18;;:::i;:::-;13218:36;13070:191;;;;:::o;13267:148::-;13369:11;13406:3;13391:18;;13267:148;;;;:::o;13421:160::-;13561:12;13557:1;13549:6;13545:14;13538:36;13421:160;:::o;13587:402::-;13747:3;13768:85;13850:2;13845:3;13768:85;:::i;:::-;13761:92;;13862:93;13951:3;13862:93;:::i;:::-;13980:2;13975:3;13971:12;13964:19;;13587:402;;;:::o;13995:381::-;14180:3;14202:148;14346:3;14202:148;:::i;:::-;14195:155;;14367:3;14360:10;;13995:381;;;:::o;14382:220::-;14522:34;14518:1;14510:6;14506:14;14499:58;14591:3;14586:2;14578:6;14574:15;14567:28;14382:220;:::o;14608:366::-;14750:3;14771:67;14835:2;14830:3;14771:67;:::i;:::-;14764:74;;14847:93;14936:3;14847:93;:::i;:::-;14965:2;14960:3;14956:12;14949:19;;14608:366;;;:::o;14980:419::-;15146:4;15184:2;15173:9;15169:18;15161:26;;15233:9;15227:4;15223:20;15219:1;15208:9;15204:17;15197:47;15261:131;15387:4;15261:131;:::i;:::-;15253:139;;14980:419;;;:::o;15405:410::-;15445:7;15468:20;15486:1;15468:20;:::i;:::-;15463:25;;15502:20;15520:1;15502:20;:::i;:::-;15497:25;;15557:1;15554;15550:9;15579:30;15597:11;15579:30;:::i;:::-;15568:41;;15758:1;15749:7;15745:15;15742:1;15739:22;15719:1;15712:9;15692:83;15669:139;;15788:18;;:::i;:::-;15669:139;15453:362;15405:410;;;;:::o;15821:180::-;15869:77;15866:1;15859:88;15966:4;15963:1;15956:15;15990:4;15987:1;15980:15;16007:185;16047:1;16064:20;16082:1;16064:20;:::i;:::-;16059:25;;16098:20;16116:1;16098:20;:::i;:::-;16093:25;;16137:1;16127:35;;16142:18;;:::i;:::-;16127:35;16184:1;16181;16177:9;16172:14;;16007:185;;;;:::o;16198:161::-;16338:13;16334:1;16326:6;16322:14;16315:37;16198:161;:::o;16365:366::-;16507:3;16528:67;16592:2;16587:3;16528:67;:::i;:::-;16521:74;;16604:93;16693:3;16604:93;:::i;:::-;16722:2;16717:3;16713:12;16706:19;;16365:366;;;:::o;16737:419::-;16903:4;16941:2;16930:9;16926:18;16918:26;;16990:9;16984:4;16980:20;16976:1;16965:9;16961:17;16954:47;17018:131;17144:4;17018:131;:::i;:::-;17010:139;;16737:419;;;:::o;17162:174::-;17302:26;17298:1;17290:6;17286:14;17279:50;17162:174;:::o;17342:366::-;17484:3;17505:67;17569:2;17564:3;17505:67;:::i;:::-;17498:74;;17581:93;17670:3;17581:93;:::i;:::-;17699:2;17694:3;17690:12;17683:19;;17342:366;;;:::o;17714:419::-;17880:4;17918:2;17907:9;17903:18;17895:26;;17967:9;17961:4;17957:20;17953:1;17942:9;17938:17;17931:47;17995:131;18121:4;17995:131;:::i;:::-;17987:139;;17714:419;;;:::o;18139:143::-;18196:5;18227:6;18221:13;18212:22;;18243:33;18270:5;18243:33;:::i;:::-;18139:143;;;;:::o;18288:351::-;18358:6;18407:2;18395:9;18386:7;18382:23;18378:32;18375:119;;;18413:79;;:::i;:::-;18375:119;18533:1;18558:64;18614:7;18605:6;18594:9;18590:22;18558:64;:::i;:::-;18548:74;;18504:128;18288:351;;;;:::o;18645:332::-;18766:4;18804:2;18793:9;18789:18;18781:26;;18817:71;18885:1;18874:9;18870:17;18861:6;18817:71;:::i;:::-;18898:72;18966:2;18955:9;18951:18;18942:6;18898:72;:::i;:::-;18645:332;;;;;:::o;18983:116::-;19053:21;19068:5;19053:21;:::i;:::-;19046:5;19043:32;19033:60;;19089:1;19086;19079:12;19033:60;18983:116;:::o;19105:137::-;19159:5;19190:6;19184:13;19175:22;;19206:30;19230:5;19206:30;:::i;:::-;19105:137;;;;:::o;19248:345::-;19315:6;19364:2;19352:9;19343:7;19339:23;19335:32;19332:119;;;19370:79;;:::i;:::-;19332:119;19490:1;19515:61;19568:7;19559:6;19548:9;19544:22;19515:61;:::i;:::-;19505:71;;19461:125;19248:345;;;;:::o;19599:224::-;19739:34;19735:1;19727:6;19723:14;19716:58;19808:7;19803:2;19795:6;19791:15;19784:32;19599:224;:::o;19829:366::-;19971:3;19992:67;20056:2;20051:3;19992:67;:::i;:::-;19985:74;;20068:93;20157:3;20068:93;:::i;:::-;20186:2;20181:3;20177:12;20170:19;;19829:366;;;:::o;20201:419::-;20367:4;20405:2;20394:9;20390:18;20382:26;;20454:9;20448:4;20444:20;20440:1;20429:9;20425:17;20418:47;20482:131;20608:4;20482:131;:::i;:::-;20474:139;;20201:419;;;:::o;20626:179::-;20766:31;20762:1;20754:6;20750:14;20743:55;20626:179;:::o;20811:366::-;20953:3;20974:67;21038:2;21033:3;20974:67;:::i;:::-;20967:74;;21050:93;21139:3;21050:93;:::i;:::-;21168:2;21163:3;21159:12;21152:19;;20811:366;;;:::o;21183:419::-;21349:4;21387:2;21376:9;21372:18;21364:26;;21436:9;21430:4;21426:20;21422:1;21411:9;21407:17;21400:47;21464:131;21590:4;21464:131;:::i;:::-;21456:139;;21183:419;;;:::o;21608:227::-;21748:34;21744:1;21736:6;21732:14;21725:58;21817:10;21812:2;21804:6;21800:15;21793:35;21608:227;:::o;21841:366::-;21983:3;22004:67;22068:2;22063:3;22004:67;:::i;:::-;21997:74;;22080:93;22169:3;22080:93;:::i;:::-;22198:2;22193:3;22189:12;22182:19;;21841:366;;;:::o;22213:419::-;22379:4;22417:2;22406:9;22402:18;22394:26;;22466:9;22460:4;22456:20;22452:1;22441:9;22437:17;22430:47;22494:131;22620:4;22494:131;:::i;:::-;22486:139;;22213:419;;;:::o;22638:147::-;22739:11;22776:3;22761:18;;22638:147;;;;:::o;22791:114::-;;:::o;22911:398::-;23070:3;23091:83;23172:1;23167:3;23091:83;:::i;:::-;23084:90;;23183:93;23272:3;23183:93;:::i;:::-;23301:1;23296:3;23292:11;23285:18;;22911:398;;;:::o;23315:379::-;23499:3;23521:147;23664:3;23521:147;:::i;:::-;23514:154;;23685:3;23678:10;;23315:379;;;:::o;23700:222::-;23840:34;23836:1;23828:6;23824:14;23817:58;23909:5;23904:2;23896:6;23892:15;23885:30;23700:222;:::o;23928:366::-;24070:3;24091:67;24155:2;24150:3;24091:67;:::i;:::-;24084:74;;24167:93;24256:3;24167:93;:::i;:::-;24285:2;24280:3;24276:12;24269:19;;23928:366;;;:::o;24300:419::-;24466:4;24504:2;24493:9;24489:18;24481:26;;24553:9;24547:4;24543:20;24539:1;24528:9;24524:17;24517:47;24581:131;24707:4;24581:131;:::i;:::-;24573:139;;24300:419;;;:::o;24725:225::-;24865:34;24861:1;24853:6;24849:14;24842:58;24934:8;24929:2;24921:6;24917:15;24910:33;24725:225;:::o;24956:366::-;25098:3;25119:67;25183:2;25178:3;25119:67;:::i;:::-;25112:74;;25195:93;25284:3;25195:93;:::i;:::-;25313:2;25308:3;25304:12;25297:19;;24956:366;;;:::o;25328:419::-;25494:4;25532:2;25521:9;25517:18;25509:26;;25581:9;25575:4;25571:20;25567:1;25556:9;25552:17;25545:47;25609:131;25735:4;25609:131;:::i;:::-;25601:139;;25328:419;;;:::o;25753:223::-;25893:34;25889:1;25881:6;25877:14;25870:58;25962:6;25957:2;25949:6;25945:15;25938:31;25753:223;:::o;25982:366::-;26124:3;26145:67;26209:2;26204:3;26145:67;:::i;:::-;26138:74;;26221:93;26310:3;26221:93;:::i;:::-;26339:2;26334:3;26330:12;26323:19;;25982:366;;;:::o;26354:419::-;26520:4;26558:2;26547:9;26543:18;26535:26;;26607:9;26601:4;26597:20;26593:1;26582:9;26578:17;26571:47;26635:131;26761:4;26635:131;:::i;:::-;26627:139;;26354:419;;;:::o;26779:221::-;26919:34;26915:1;26907:6;26903:14;26896:58;26988:4;26983:2;26975:6;26971:15;26964:29;26779:221;:::o;27006:366::-;27148:3;27169:67;27233:2;27228:3;27169:67;:::i;:::-;27162:74;;27245:93;27334:3;27245:93;:::i;:::-;27363:2;27358:3;27354:12;27347:19;;27006:366;;;:::o;27378:419::-;27544:4;27582:2;27571:9;27567:18;27559:26;;27631:9;27625:4;27621:20;27617:1;27606:9;27602:17;27595:47;27659:131;27785:4;27659:131;:::i;:::-;27651:139;;27378:419;;;:::o;27803:143::-;27860:5;27891:6;27885:13;27876:22;;27907:33;27934:5;27907:33;:::i;:::-;27803:143;;;;:::o;27952:351::-;28022:6;28071:2;28059:9;28050:7;28046:23;28042:32;28039:119;;;28077:79;;:::i;:::-;28039:119;28197:1;28222:64;28278:7;28269:6;28258:9;28254:22;28222:64;:::i;:::-;28212:74;;28168:128;27952:351;;;;:::o;28309:114::-;28376:6;28410:5;28404:12;28394:22;;28309:114;;;:::o;28429:184::-;28528:11;28562:6;28557:3;28550:19;28602:4;28597:3;28593:14;28578:29;;28429:184;;;;:::o;28619:132::-;28686:4;28709:3;28701:11;;28739:4;28734:3;28730:14;28722:22;;28619:132;;;:::o;28757:108::-;28834:24;28852:5;28834:24;:::i;:::-;28829:3;28822:37;28757:108;;:::o;28871:179::-;28940:10;28961:46;29003:3;28995:6;28961:46;:::i;:::-;29039:4;29034:3;29030:14;29016:28;;28871:179;;;;:::o;29056:113::-;29126:4;29158;29153:3;29149:14;29141:22;;29056:113;;;:::o;29205:732::-;29324:3;29353:54;29401:5;29353:54;:::i;:::-;29423:86;29502:6;29497:3;29423:86;:::i;:::-;29416:93;;29533:56;29583:5;29533:56;:::i;:::-;29612:7;29643:1;29628:284;29653:6;29650:1;29647:13;29628:284;;;29729:6;29723:13;29756:63;29815:3;29800:13;29756:63;:::i;:::-;29749:70;;29842:60;29895:6;29842:60;:::i;:::-;29832:70;;29688:224;29675:1;29672;29668:9;29663:14;;29628:284;;;29632:14;29928:3;29921:10;;29329:608;;;29205:732;;;;:::o;29943:483::-;30114:4;30152:2;30141:9;30137:18;30129:26;;30165:71;30233:1;30222:9;30218:17;30209:6;30165:71;:::i;:::-;30283:9;30277:4;30273:20;30268:2;30257:9;30253:18;30246:48;30311:108;30414:4;30405:6;30311:108;:::i;:::-;30303:116;;29943:483;;;;;:::o;30432:311::-;30509:4;30599:18;30591:6;30588:30;30585:56;;;30621:18;;:::i;:::-;30585:56;30671:4;30663:6;30659:17;30651:25;;30731:4;30725;30721:15;30713:23;;30432:311;;;:::o;30766:732::-;30873:5;30898:81;30914:64;30971:6;30914:64;:::i;:::-;30898:81;:::i;:::-;30889:90;;30999:5;31028:6;31021:5;31014:21;31062:4;31055:5;31051:16;31044:23;;31115:4;31107:6;31103:17;31095:6;31091:30;31144:3;31136:6;31133:15;31130:122;;;31163:79;;:::i;:::-;31130:122;31278:6;31261:231;31295:6;31290:3;31287:15;31261:231;;;31370:3;31399:48;31443:3;31431:10;31399:48;:::i;:::-;31394:3;31387:61;31477:4;31472:3;31468:14;31461:21;;31337:155;31321:4;31316:3;31312:14;31305:21;;31261:231;;;31265:21;30879:619;;30766:732;;;;;:::o;31521:385::-;31603:5;31652:3;31645:4;31637:6;31633:17;31629:27;31619:122;;31660:79;;:::i;:::-;31619:122;31770:6;31764:13;31795:105;31896:3;31888:6;31881:4;31873:6;31869:17;31795:105;:::i;:::-;31786:114;;31609:297;31521:385;;;;:::o;31912:554::-;32007:6;32056:2;32044:9;32035:7;32031:23;32027:32;32024:119;;;32062:79;;:::i;:::-;32024:119;32203:1;32192:9;32188:17;32182:24;32233:18;32225:6;32222:30;32219:117;;;32255:79;;:::i;:::-;32219:117;32360:89;32441:7;32432:6;32421:9;32417:22;32360:89;:::i;:::-;32350:99;;32153:306;31912:554;;;;:::o;32472:85::-;32517:7;32546:5;32535:16;;32472:85;;;:::o;32563:60::-;32591:3;32612:5;32605:12;;32563:60;;;:::o;32629:158::-;32687:9;32720:61;32738:42;32747:32;32773:5;32747:32;:::i;:::-;32738:42;:::i;:::-;32720:61;:::i;:::-;32707:74;;32629:158;;;:::o;32793:147::-;32888:45;32927:5;32888:45;:::i;:::-;32883:3;32876:58;32793:147;;:::o;32946:831::-;33209:4;33247:3;33236:9;33232:19;33224:27;;33261:71;33329:1;33318:9;33314:17;33305:6;33261:71;:::i;:::-;33342:80;33418:2;33407:9;33403:18;33394:6;33342:80;:::i;:::-;33469:9;33463:4;33459:20;33454:2;33443:9;33439:18;33432:48;33497:108;33600:4;33591:6;33497:108;:::i;:::-;33489:116;;33615:72;33683:2;33672:9;33668:18;33659:6;33615:72;:::i;:::-;33697:73;33765:3;33754:9;33750:19;33741:6;33697:73;:::i;:::-;32946:831;;;;;;;;:::o;33783:194::-;33823:4;33843:20;33861:1;33843:20;:::i;:::-;33838:25;;33877:20;33895:1;33877:20;:::i;:::-;33872:25;;33921:1;33918;33914:9;33906:17;;33945:1;33939:4;33936:11;33933:37;;;33950:18;;:::i;:::-;33933:37;33783:194;;;;:::o;33983:174::-;34123:26;34119:1;34111:6;34107:14;34100:50;33983:174;:::o;34163:366::-;34305:3;34326:67;34390:2;34385:3;34326:67;:::i;:::-;34319:74;;34402:93;34491:3;34402:93;:::i;:::-;34520:2;34515:3;34511:12;34504:19;;34163:366;;;:::o;34535:419::-;34701:4;34739:2;34728:9;34724:18;34716:26;;34788:9;34782:4;34778:20;34774:1;34763:9;34759:17;34752:47;34816:131;34942:4;34816:131;:::i;:::-;34808:139;;34535:419;;;:::o;34960:239::-;35100:34;35096:1;35088:6;35084:14;35077:58;35169:22;35164:2;35156:6;35152:15;35145:47;34960:239;:::o;35205:366::-;35347:3;35368:67;35432:2;35427:3;35368:67;:::i;:::-;35361:74;;35444:93;35533:3;35444:93;:::i;:::-;35562:2;35557:3;35553:12;35546:19;;35205:366;;;:::o;35577:419::-;35743:4;35781:2;35770:9;35766:18;35758:26;;35830:9;35824:4;35820:20;35816:1;35805:9;35801:17;35794:47;35858:131;35984:4;35858:131;:::i;:::-;35850:139;;35577:419;;;:::o;36002:224::-;36142:34;36138:1;36130:6;36126:14;36119:58;36211:7;36206:2;36198:6;36194:15;36187:32;36002:224;:::o;36232:366::-;36374:3;36395:67;36459:2;36454:3;36395:67;:::i;:::-;36388:74;;36471:93;36560:3;36471:93;:::i;:::-;36589:2;36584:3;36580:12;36573:19;;36232:366;;;:::o;36604:419::-;36770:4;36808:2;36797:9;36793:18;36785:26;;36857:9;36851:4;36847:20;36843:1;36832:9;36828:17;36821:47;36885:131;37011:4;36885:131;:::i;:::-;36877:139;;36604:419;;;:::o;37029:222::-;37169:34;37165:1;37157:6;37153:14;37146:58;37238:5;37233:2;37225:6;37221:15;37214:30;37029:222;:::o;37257:366::-;37399:3;37420:67;37484:2;37479:3;37420:67;:::i;:::-;37413:74;;37496:93;37585:3;37496:93;:::i;:::-;37614:2;37609:3;37605:12;37598:19;;37257:366;;;:::o;37629:419::-;37795:4;37833:2;37822:9;37818:18;37810:26;;37882:9;37876:4;37872:20;37868:1;37857:9;37853:17;37846:47;37910:131;38036:4;37910:131;:::i;:::-;37902:139;;37629:419;;;:::o;38054:225::-;38194:34;38190:1;38182:6;38178:14;38171:58;38263:8;38258:2;38250:6;38246:15;38239:33;38054:225;:::o;38285:366::-;38427:3;38448:67;38512:2;38507:3;38448:67;:::i;:::-;38441:74;;38524:93;38613:3;38524:93;:::i;:::-;38642:2;38637:3;38633:12;38626:19;;38285:366;;;:::o;38657:419::-;38823:4;38861:2;38850:9;38846:18;38838:26;;38910:9;38904:4;38900:20;38896:1;38885:9;38881:17;38874:47;38938:131;39064:4;38938:131;:::i;:::-;38930:139;;38657:419;;;:::o

Swarm Source

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