ETH Price: $3,673.81 (+2.71%)

Token

ERC-20: WadzCoin Token (WCO)
 

Overview

Max Total Supply

999,999,999.07479000370613179 WCO

Holders

5,423

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
cryplito.eth
Balance
26,786.760450673364618649 WCO

Value
$0.00
0x111d63ce5bee2c16c21c1987cafc49ad568b5616
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:
WadzCoinToken

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
 
pragma solidity 0.8.0;
 
/**
* @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) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}
 
/**
* @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.
*/
abstract contract Ownable {
    address private _owner;
 
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    /**
     * @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() == msg.sender, "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 {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
 
 
/**
* @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 WadzCoinToken is Context, IERC20, IERC20Metadata, Ownable {
   
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
 
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;
 
 
    mapping(address => bool) public blackList;
    mapping(address => uint256) private lastTxTimestamp;
    bool private antibotPaused = true;
 
    struct WhitelistRound {
        uint256 duration;
        uint256 amountMax;
        mapping(address => bool) addresses;
        mapping(address => uint256) purchased;
    }
 
    WhitelistRound[] public _tgeWhitelistRounds;
 
    uint256 public _tgeTimestamp;
    address public _tgePairAddress;
 
    uint256 private maxTxPercent = 100;
    uint256 private transferDelay = 0;
 
    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut 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() {
        _name = "WadzCoin Token";
        _symbol = "WCO";
        _mint(msg.sender, 1000000000 * (10**uint256(decimals())));
    }
 
    /**
     * @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"
        );
        _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"
        );
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);
 
        return true;
    }
 
    function mint(address account, uint256 amount) public onlyOwner {
        _mint(account, amount * (10**uint256(decimals())));
    }
 
    function destroy(address account, uint256 amount) public onlyOwner {
        _burn(account, amount * (10**uint256(decimals())));
    }
 
    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is 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 {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if (!antibotPaused) {
            if (sender != owner() && recipient != owner()) {
                require(
                    amount <= (totalSupply() * maxTxPercent) / 100,
                    "Overflow max transfer amount"
                );
            }
            require(!blackList[sender], "Blacklisted seller");
            _applyTGEWhitelist(sender, recipient, amount);
            lastTxTimestamp[recipient] = block.timestamp;
        }
 
        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;
 
        emit Transfer(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:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
 
        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }
 
    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
 
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;
 
        emit Transfer(account, address(0), amount);
    }
 
    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
 
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    /// @notice
    /// Anti bot
 
    /// @notice Add bot address to blacklist
    function addBlackList(address _bot) external onlyOwner {
        blackList[_bot] = true;
        emit AddedBlackList(_bot);
    }
 
    /// @notice Remove the address from blacklist
    function removeBlackList(address _addr) external onlyOwner {
        blackList[_addr] = false;
        emit RemovedBlackList(_addr);
    }
 
    /// @notice destroy the funds of blacklist
    function destroyBlackFunds(address _blackListedUser) external onlyOwner {
        require(blackList[_blackListedUser], "This user is not a member of blacklist");
        uint dirtyFunds = balanceOf(_blackListedUser);
        _balances[_blackListedUser] = 0;
        _totalSupply -= dirtyFunds;
        emit DestroyedBlackFunds(_blackListedUser, dirtyFunds);
    }
 
    event DestroyedBlackFunds(address _blackListedUser, uint _balance);
 
    event AddedBlackList(address _user);
 
    event RemovedBlackList(address _user);
 
 
    /*
     * createTGEWhitelist - Call this after initial Token Generation Event (TGE)
     *
     * pairAddress - address generated from createPair() event on DEX
     * durations - array of durations (seconds) for each whitelist rounds
     * amountsMax - array of max amounts (TOKEN decimals) for each whitelist round
     *
     */
 
    function createTGEWhitelist(address pairAddress, uint256[] calldata durations, uint256[] calldata amountsMax) external onlyOwner {
        require(durations.length == amountsMax.length, "Invalid whitelist(s)");
 
        _tgePairAddress = pairAddress;
 
        if(durations.length > 0) {
 
            delete _tgeWhitelistRounds;
           
            for (uint256 i = 0; i < durations.length; i++) {
                _tgeWhitelistRounds.push();
                WhitelistRound storage wlRound = _tgeWhitelistRounds[i];
                wlRound.duration = durations[i];
                wlRound.amountMax = amountsMax[i];
            }
 
        }
    }
 
    /*
     * modifyTGEWhitelistAddresses - Define what addresses are included/excluded from a whitelist round
     *
     * index - 0-based index of round to modify whitelist
     * duration - period in seconds from TGE event or previous whitelist round
     * amountMax - max amount (TOKEN decimals) for each whitelist round
     *
     */
 
    function modifyTGEWhitelist(uint256 index, uint256 duration, uint256 amountMax, address[] calldata addresses, bool enabled) external onlyOwner {
        require(index < _tgeWhitelistRounds.length, "Invalid index");
        require(amountMax > 0, "Invalid amountMax");
 
        if(duration != _tgeWhitelistRounds[index].duration)
            _tgeWhitelistRounds[index].duration = duration;
 
        if(amountMax != _tgeWhitelistRounds[index].amountMax)
            _tgeWhitelistRounds[index].amountMax = amountMax;
 
        for (uint256 i = 0; i < addresses.length; i++) {
            _tgeWhitelistRounds[index].addresses[addresses[i]] = enabled;
        }
    }
 
    /*
     *  getTGEWhitelistRound
     *
     *  returns:
     *
     *  1. whitelist round number ( 0 = no active round now )
     *  2. duration, in seconds, current whitelist round is active for
     *  3. timestamp current whitelist round closes at
     *  4. maximum amount a whitelister can purchase in this round
     *  5. is caller whitelisted
     *  6. how much caller has purchased in current whitelist round
     *
     */
 
    function getTGEWhitelistRound() public view returns (uint256, uint256, uint256, uint256, bool, uint256) {
 
        if(_tgeTimestamp > 0) {
 
            uint256 wlCloseTimestampLast = _tgeTimestamp;
 
            for (uint256 i = 0; i < _tgeWhitelistRounds.length; i++) {
 
                WhitelistRound storage wlRound = _tgeWhitelistRounds[i];
 
                wlCloseTimestampLast = wlCloseTimestampLast + wlRound.duration;
                if(block.timestamp <= wlCloseTimestampLast)
                    return (i+1, wlRound.duration, wlCloseTimestampLast, wlRound.amountMax, wlRound.addresses[_msgSender()], wlRound.purchased[_msgSender()]);
            }
 
        }
 
        return (0, 0, 0, 0, false, 0);
    }
 
    /*
     * _applyTGEWhitelist - internal function to be called initially before any transfers
     *
     */
 
    function _applyTGEWhitelist(address sender, address recipient, uint256 amount) internal {
 
        if(_tgePairAddress == address(0) || _tgeWhitelistRounds.length == 0)
            return;
 
        if(_tgeTimestamp == 0 && sender != _tgePairAddress && recipient == _tgePairAddress && amount > 0)
            _tgeTimestamp = block.timestamp;
 
        if(sender == _tgePairAddress && recipient != _tgePairAddress) {
            //buying
 
            (uint256 wlRoundNumber,,,,,) = getTGEWhitelistRound();
 
            if(wlRoundNumber > 0) {
 
                WhitelistRound storage wlRound = _tgeWhitelistRounds[wlRoundNumber-1];
 
                require(wlRound.addresses[recipient], "TGE - Buyer is not whitelisted");
 
                uint256 amountRemaining = 0;
 
                if(wlRound.purchased[recipient] < wlRound.amountMax)
                    amountRemaining = wlRound.amountMax - wlRound.purchased[recipient];
 
                require(amount <= amountRemaining, "TGE - Amount exceeds whitelist maximum");
                wlRound.purchased[recipient] = wlRound.purchased[recipient] + amount;
 
            }
 
        }
 
    }
 
 
    /// @notice Set max transaction percent
    function setMaxTxPercent(uint256 _maxTxPercent) external onlyOwner {
        maxTxPercent = _maxTxPercent;
    }
 
    /// @notice Set transaction time delay
    function setTransferDelay(uint256 _transferDelay) external onlyOwner {
        transferDelay = _transferDelay;
    }
 
    /// @notice Set antibot status
    function setAntibotPaused(bool _antibotPaused) external onlyOwner {
        antibotPaused = _antibotPaused;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"}],"name":"AddedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_blackListedUser","type":"address"},{"indexed":false,"internalType":"uint256","name":"_balance","type":"uint256"}],"name":"DestroyedBlackFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"}],"name":"RemovedBlackList","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":[],"name":"_tgePairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tgeTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_tgeWhitelistRounds","outputs":[{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"amountMax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_bot","type":"address"}],"name":"addBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pairAddress","type":"address"},{"internalType":"uint256[]","name":"durations","type":"uint256[]"},{"internalType":"uint256[]","name":"amountsMax","type":"uint256[]"}],"name":"createTGEWhitelist","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"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"destroy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_blackListedUser","type":"address"}],"name":"destroyBlackFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTGEWhitelistRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"amountMax","type":"uint256"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"modifyTGEWhitelist","outputs":[],"stateMutability":"nonpayable","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":"_addr","type":"address"}],"name":"removeBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_antibotPaused","type":"bool"}],"name":"setAntibotPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferDelay","type":"uint256"}],"name":"setTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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"}]

60806040526001600860006101000a81548160ff0219169083151502179055506064600c556000600d553480156200003657600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600e81526020017f5761647a436f696e20546f6b656e000000000000000000000000000000000000815250600490805190602001906200012592919062000318565b506040518060400160405280600381526020017f57434f0000000000000000000000000000000000000000000000000000000000815250600590805190602001906200017392919062000318565b50620001b73362000189620001bd60201b60201c565b60ff16600a6200019a919062000523565b633b9aca00620001ab919062000660565b620001c660201b60201c565b6200076c565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000230906200041b565b60405180910390fd5b80600360008282546200024d91906200046b565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002a591906200046b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200030c91906200043d565b60405180910390a35050565b8280546200032690620006cb565b90600052602060002090601f0160209004810192826200034a576000855562000396565b82601f106200036557805160ff191683800117855562000396565b8280016001018555821562000396579182015b828111156200039557825182559160200191906001019062000378565b5b509050620003a59190620003a9565b5090565b5b80821115620003c4576000816000905550600101620003aa565b5090565b6000620003d7601f836200045a565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6200041581620006c1565b82525050565b600060208201905081810360008301526200043681620003c8565b9050919050565b60006020820190506200045460008301846200040a565b92915050565b600082825260208201905092915050565b60006200047882620006c1565b91506200048583620006c1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004bd57620004bc62000701565b5b828201905092915050565b6000808291508390505b60018511156200051a57808604811115620004f257620004f162000701565b5b6001851615620005025780820291505b808102905062000512856200075f565b9450620004d2565b94509492505050565b60006200053082620006c1565b91506200053d83620006c1565b92506200056c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000574565b905092915050565b60008262000586576001905062000659565b8162000596576000905062000659565b8160018114620005af5760028114620005ba57620005f0565b600191505062000659565b60ff841115620005cf57620005ce62000701565b5b8360020a915084821115620005e957620005e862000701565b5b5062000659565b5060208310610133831016604e8410600b84101617156200062a5782820a90508381111562000624576200062362000701565b5b62000659565b620006398484846001620004c8565b9250905081840481111562000653576200065262000701565b5b81810290505b9392505050565b60006200066d82620006c1565b91506200067a83620006c1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006b657620006b562000701565b5b828202905092915050565b6000819050919050565b60006002820490506001821680620006e457607f821691505b60208210811415620006fb57620006fa62000730565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b613cb4806200077c6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806370a0823111610104578063a9059cbb116100a2578063e4997dc511610071578063e4997dc514610548578063f2fde38b14610564578063f3bdc22814610580578063fe72423f1461059c576101cf565b8063a9059cbb146104b0578063d543dbeb146104e0578063dd62ed3e146104fc578063deb769651461052c576101cf565b806395d89b41116100de57806395d89b41146104235780639ae407e814610441578063a24835d114610464578063a457c2d714610480576101cf565b806370a08231146103cb578063715018a6146103fb5780638da5cb5b14610405576101cf565b8063325eaac1116101715780633ecea6b21161014b5780633ecea6b21461033057806340c10f191461034e5780634838d1651461036a578063617d7ec21461039a576101cf565b8063325eaac1146102c657806336e8c9b3146102e45780633950935114610300576101cf565b806318160ddd116101ad57806318160ddd1461023e57806323b872dd1461025c5780632c0c74aa1461028c578063313ce567146102a8576101cf565b806306fdde03146101d4578063095ea7b3146101f25780630ecb93c014610222575b600080fd5b6101dc6105b8565b6040516101e99190613487565b60405180910390f35b61020c60048036038101906102079190612bcb565b61064a565b604051610219919061346c565b60405180910390f35b61023c60048036038101906102379190612a8e565b610668565b005b61024661076f565b6040516102539190613729565b60405180910390f35b61027660048036038101906102719190612af3565b610779565b604051610283919061346c565b60405180910390f35b6102a660048036038101906102a19190612b42565b61087a565b005b6102b0610ab7565b6040516102bd91906137ce565b60405180910390f35b6102ce610ac0565b6040516102db9190613729565b60405180910390f35b6102fe60048036038101906102f99190612c30565b610ac6565b005b61031a60048036038101906103159190612bcb565b610b45565b604051610327919061346c565b60405180910390f35b610338610bf1565b6040516103459190613428565b60405180910390f35b61036860048036038101906103639190612bcb565b610c17565b005b610384600480360381019061037f9190612a8e565b610cbb565b604051610391919061346c565b60405180910390f35b6103b460048036038101906103af9190612c30565b610cdb565b6040516103c2929190613744565b60405180910390f35b6103e560048036038101906103e09190612a8e565b610d0f565b6040516103f29190613729565b60405180910390f35b610403610d58565b005b61040d610e8b565b60405161041a9190613428565b60405180910390f35b61042b610eb4565b6040516104389190613487565b60405180910390f35b610449610f46565b60405161045b9695949392919061376d565b60405180910390f35b61047e60048036038101906104799190612bcb565b6110d6565b005b61049a60048036038101906104959190612bcb565b61117a565b6040516104a7919061346c565b60405180910390f35b6104ca60048036038101906104c59190612bcb565b61126e565b6040516104d7919061346c565b60405180910390f35b6104fa60048036038101906104f59190612c30565b61128c565b005b61051660048036038101906105119190612ab7565b61130b565b6040516105239190613729565b60405180910390f35b61054660048036038101906105419190612c59565b611392565b005b610562600480360381019061055d9190612a8e565b6116ee565b005b61057e60048036038101906105799190612a8e565b6117f5565b005b61059a60048036038101906105959190612a8e565b611997565b005b6105b660048036038101906105b19190612c07565b611b40565b005b6060600480546105c790613b13565b80601f01602080910402602001604051908101604052809291908181526020018280546105f390613b13565b80156106405780601f1061061557610100808354040283529160200191610640565b820191906000526020600020905b81548152906001019060200180831161062357829003601f168201915b5050505050905090565b600061065e610657611bd2565b8484611bda565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610687610e8b565b73ffffffffffffffffffffffffffffffffffffffff16146106dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d4906135c9565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc816040516107649190613428565b60405180910390a150565b6000600354905090565b6000610786848484611da5565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107d1611bd2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610851576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610848906135a9565b60405180910390fd5b61086e8561085d611bd2565b85846108699190613a57565b611bda565b60019150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16610899610e8b565b73ffffffffffffffffffffffffffffffffffffffff16146108ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e6906135c9565b60405180910390fd5b818190508484905014610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e906136a9565b60405180910390fd5b84600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000848490501115610ab057600960006109929190612970565b60005b84849050811015610aae576009600181600181540180825580915050039060005260206000209050506000600982815481106109fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600402019050858583818110610a43577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201358160000181905550838383818110610a8b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201358160010181905550508080610aa690613b45565b915050610995565b505b5050505050565b60006012905090565b600a5481565b3373ffffffffffffffffffffffffffffffffffffffff16610ae5610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614610b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b32906135c9565b60405180910390fd5b80600d8190555050565b6000610be7610b52611bd2565b848460026000610b60611bd2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be29190613805565b611bda565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff16610c36610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c83906135c9565b60405180910390fd5b610cb782610c98610ab7565b60ff16600a610ca791906138df565b83610cb291906139fd565b6121ec565b5050565b60066020528060005260406000206000915054906101000a900460ff1681565b60098181548110610ceb57600080fd5b90600052602060002090600402016000915090508060000154908060010154905082565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610d77610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614610dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc4906135c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610ec390613b13565b80601f0160208091040260200160405190810160405280929190818152602001828054610eef90613b13565b8015610f3c5780601f10610f1157610100808354040283529160200191610f3c565b820191906000526020600020905b815481529060010190602001808311610f1f57829003601f168201915b5050505050905090565b6000806000806000806000600a5411156110b8576000600a54905060005b6009805490508110156110b557600060098281548110610fad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600402019050806000015483610fcd9190613805565b92508242116110a157600182610fe39190613805565b8160000154848360010154846002016000610ffc611bd2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16856003016000611052611bd2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549850985098509850985098505050506110ce565b5080806110ad90613b45565b915050610f64565b50505b6000806000806000809550955095509550955095505b909192939495565b3373ffffffffffffffffffffffffffffffffffffffff166110f5610e8b565b73ffffffffffffffffffffffffffffffffffffffff161461114b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611142906135c9565b60405180910390fd5b61117682611157610ab7565b60ff16600a61116691906138df565b8361117191906139fd565b612335565b5050565b60008060026000611189611bd2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123d906136e9565b60405180910390fd5b611263611251611bd2565b85858461125e9190613a57565b611bda565b600191505092915050565b600061128261127b611bd2565b8484611da5565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff166112ab610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614611301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f8906135c9565b60405180910390fd5b80600c8190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff166113b1610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe906135c9565b60405180910390fd5b600980549050861061144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144590613569565b60405180910390fd5b60008411611491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148890613609565b60405180910390fd5b600986815481106114cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906004020160000154851461153457846009878154811061151e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060040201600001819055505b6009868154811061156e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600402016001015484146115d75783600987815481106115c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060040201600101819055505b60005b838390508110156116e5578160098881548110611620577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060040201600201600086868581811061166c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906116819190612a8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806116dd90613b45565b9150506115da565b50505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1661170d610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a906135c9565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c816040516117ea9190613428565b60405180910390a150565b3373ffffffffffffffffffffffffffffffffffffffff16611814610e8b565b73ffffffffffffffffffffffffffffffffffffffff161461186a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611861906135c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d190613529565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff166119b6610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a03906135c9565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f906136c9565b60405180910390fd5b6000611aa382610d0f565b90506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060036000828254611afc9190613a57565b925050819055507f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c68282604051611b34929190613443565b60405180910390a15050565b3373ffffffffffffffffffffffffffffffffffffffff16611b5f610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614611bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bac906135c9565b60405180910390fd5b80600860006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4190613689565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb190613549565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d989190613729565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c90613669565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7c906134c9565b60405180910390fd5b600860009054906101000a900460ff1661205557611ea1610e8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f0f5750611edf610e8b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f78576064600c54611f2161076f565b611f2b91906139fd565b611f35919061385b565b811115611f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6e906135e9565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffc90613629565b60405180910390fd5b6120108383836124ff565b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156120dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d390613589565b60405180910390fd5b81816120e89190613a57565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461217a9190613805565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121de9190613729565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561225c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225390613709565b60405180910390fd5b806003600082825461226e9190613805565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122c49190613805565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123299190613729565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156123a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239c90613649565b60405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561242c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242390613509565b60405180910390fd5b81816124389190613a57565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461248d9190613a57565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124f29190613729565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061256157506000600980549050145b1561256b5761296b565b6000600a541480156125cb5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156126245750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80156126305750600081115b1561263d5742600a819055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126e85750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561296a5760006126f7610f46565b50505050509050600081111561296857600060096001836127189190613a57565b8154811061274f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906004020190508060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166127ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e4906134a9565b60405180910390fd5b600081600101548260030160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612890578160030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826001015461288d9190613a57565b90505b808411156128d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ca906134e9565b60405180910390fd5b838260030160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129209190613805565b8260030160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b505b5b505050565b50805460008255600402906000526020600020908101906129919190612994565b50565b5b808211156129b757600080820160009055600182016000905550600401612995565b5090565b6000813590506129ca81613c39565b92915050565b60008083601f8401126129e257600080fd5b8235905067ffffffffffffffff8111156129fb57600080fd5b602083019150836020820283011115612a1357600080fd5b9250929050565b60008083601f840112612a2c57600080fd5b8235905067ffffffffffffffff811115612a4557600080fd5b602083019150836020820283011115612a5d57600080fd5b9250929050565b600081359050612a7381613c50565b92915050565b600081359050612a8881613c67565b92915050565b600060208284031215612aa057600080fd5b6000612aae848285016129bb565b91505092915050565b60008060408385031215612aca57600080fd5b6000612ad8858286016129bb565b9250506020612ae9858286016129bb565b9150509250929050565b600080600060608486031215612b0857600080fd5b6000612b16868287016129bb565b9350506020612b27868287016129bb565b9250506040612b3886828701612a79565b9150509250925092565b600080600080600060608688031215612b5a57600080fd5b6000612b68888289016129bb565b955050602086013567ffffffffffffffff811115612b8557600080fd5b612b9188828901612a1a565b9450945050604086013567ffffffffffffffff811115612bb057600080fd5b612bbc88828901612a1a565b92509250509295509295909350565b60008060408385031215612bde57600080fd5b6000612bec858286016129bb565b9250506020612bfd85828601612a79565b9150509250929050565b600060208284031215612c1957600080fd5b6000612c2784828501612a64565b91505092915050565b600060208284031215612c4257600080fd5b6000612c5084828501612a79565b91505092915050565b60008060008060008060a08789031215612c7257600080fd5b6000612c8089828a01612a79565b9650506020612c9189828a01612a79565b9550506040612ca289828a01612a79565b945050606087013567ffffffffffffffff811115612cbf57600080fd5b612ccb89828a016129d0565b93509350506080612cde89828a01612a64565b9150509295509295509295565b612cf481613a8b565b82525050565b612d0381613a9d565b82525050565b6000612d14826137e9565b612d1e81856137f4565b9350612d2e818560208601613ae0565b612d3781613c1b565b840191505092915050565b6000612d4f601e836137f4565b91507f544745202d204275796572206973206e6f742077686974656c697374656400006000830152602082019050919050565b6000612d8f6023836137f4565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612df56026836137f4565b91507f544745202d20416d6f756e7420657863656564732077686974656c697374206d60008301527f6178696d756d00000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612e5b6022836137f4565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ec16026836137f4565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612f276022836137f4565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612f8d600d836137f4565b91507f496e76616c696420696e646578000000000000000000000000000000000000006000830152602082019050919050565b6000612fcd6026836137f4565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006130336028836137f4565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006130996020836137f4565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006130d9601c836137f4565b91507f4f766572666c6f77206d6178207472616e7366657220616d6f756e74000000006000830152602082019050919050565b60006131196011836137f4565b91507f496e76616c696420616d6f756e744d61780000000000000000000000000000006000830152602082019050919050565b60006131596012836137f4565b91507f426c61636b6c69737465642073656c6c657200000000000000000000000000006000830152602082019050919050565b60006131996021836137f4565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006131ff6025836137f4565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006132656024836137f4565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006132cb6014836137f4565b91507f496e76616c69642077686974656c6973742873290000000000000000000000006000830152602082019050919050565b600061330b6026836137f4565b91507f546869732075736572206973206e6f742061206d656d626572206f6620626c6160008301527f636b6c69737400000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006133716025836137f4565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006133d7601f836137f4565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b61341381613ac9565b82525050565b61342281613ad3565b82525050565b600060208201905061343d6000830184612ceb565b92915050565b60006040820190506134586000830185612ceb565b613465602083018461340a565b9392505050565b60006020820190506134816000830184612cfa565b92915050565b600060208201905081810360008301526134a18184612d09565b905092915050565b600060208201905081810360008301526134c281612d42565b9050919050565b600060208201905081810360008301526134e281612d82565b9050919050565b6000602082019050818103600083015261350281612de8565b9050919050565b6000602082019050818103600083015261352281612e4e565b9050919050565b6000602082019050818103600083015261354281612eb4565b9050919050565b6000602082019050818103600083015261356281612f1a565b9050919050565b6000602082019050818103600083015261358281612f80565b9050919050565b600060208201905081810360008301526135a281612fc0565b9050919050565b600060208201905081810360008301526135c281613026565b9050919050565b600060208201905081810360008301526135e28161308c565b9050919050565b60006020820190508181036000830152613602816130cc565b9050919050565b600060208201905081810360008301526136228161310c565b9050919050565b600060208201905081810360008301526136428161314c565b9050919050565b600060208201905081810360008301526136628161318c565b9050919050565b60006020820190508181036000830152613682816131f2565b9050919050565b600060208201905081810360008301526136a281613258565b9050919050565b600060208201905081810360008301526136c2816132be565b9050919050565b600060208201905081810360008301526136e2816132fe565b9050919050565b6000602082019050818103600083015261370281613364565b9050919050565b60006020820190508181036000830152613722816133ca565b9050919050565b600060208201905061373e600083018461340a565b92915050565b6000604082019050613759600083018561340a565b613766602083018461340a565b9392505050565b600060c082019050613782600083018961340a565b61378f602083018861340a565b61379c604083018761340a565b6137a9606083018661340a565b6137b66080830185612cfa565b6137c360a083018461340a565b979650505050505050565b60006020820190506137e36000830184613419565b92915050565b600081519050919050565b600082825260208201905092915050565b600061381082613ac9565b915061381b83613ac9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138505761384f613b8e565b5b828201905092915050565b600061386682613ac9565b915061387183613ac9565b92508261388157613880613bbd565b5b828204905092915050565b6000808291508390505b60018511156138d6578086048111156138b2576138b1613b8e565b5b60018516156138c15780820291505b80810290506138cf85613c2c565b9450613896565b94509492505050565b60006138ea82613ac9565b91506138f583613ac9565b92506139227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461392a565b905092915050565b60008261393a57600190506139f6565b8161394857600090506139f6565b816001811461395e576002811461396857613997565b60019150506139f6565b60ff84111561397a57613979613b8e565b5b8360020a91508482111561399157613990613b8e565b5b506139f6565b5060208310610133831016604e8410600b84101617156139cc5782820a9050838111156139c7576139c6613b8e565b5b6139f6565b6139d9848484600161388c565b925090508184048111156139f0576139ef613b8e565b5b81810290505b9392505050565b6000613a0882613ac9565b9150613a1383613ac9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a4c57613a4b613b8e565b5b828202905092915050565b6000613a6282613ac9565b9150613a6d83613ac9565b925082821015613a8057613a7f613b8e565b5b828203905092915050565b6000613a9682613aa9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015613afe578082015181840152602081019050613ae3565b83811115613b0d576000848401525b50505050565b60006002820490506001821680613b2b57607f821691505b60208210811415613b3f57613b3e613bec565b5b50919050565b6000613b5082613ac9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613b8357613b82613b8e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b613c4281613a8b565b8114613c4d57600080fd5b50565b613c5981613a9d565b8114613c6457600080fd5b50565b613c7081613ac9565b8114613c7b57600080fd5b5056fea264697066735822122058283975be89be9ca8641ca072fc85eba5cf4da9d877683ce4ba5906bca989e464736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c806370a0823111610104578063a9059cbb116100a2578063e4997dc511610071578063e4997dc514610548578063f2fde38b14610564578063f3bdc22814610580578063fe72423f1461059c576101cf565b8063a9059cbb146104b0578063d543dbeb146104e0578063dd62ed3e146104fc578063deb769651461052c576101cf565b806395d89b41116100de57806395d89b41146104235780639ae407e814610441578063a24835d114610464578063a457c2d714610480576101cf565b806370a08231146103cb578063715018a6146103fb5780638da5cb5b14610405576101cf565b8063325eaac1116101715780633ecea6b21161014b5780633ecea6b21461033057806340c10f191461034e5780634838d1651461036a578063617d7ec21461039a576101cf565b8063325eaac1146102c657806336e8c9b3146102e45780633950935114610300576101cf565b806318160ddd116101ad57806318160ddd1461023e57806323b872dd1461025c5780632c0c74aa1461028c578063313ce567146102a8576101cf565b806306fdde03146101d4578063095ea7b3146101f25780630ecb93c014610222575b600080fd5b6101dc6105b8565b6040516101e99190613487565b60405180910390f35b61020c60048036038101906102079190612bcb565b61064a565b604051610219919061346c565b60405180910390f35b61023c60048036038101906102379190612a8e565b610668565b005b61024661076f565b6040516102539190613729565b60405180910390f35b61027660048036038101906102719190612af3565b610779565b604051610283919061346c565b60405180910390f35b6102a660048036038101906102a19190612b42565b61087a565b005b6102b0610ab7565b6040516102bd91906137ce565b60405180910390f35b6102ce610ac0565b6040516102db9190613729565b60405180910390f35b6102fe60048036038101906102f99190612c30565b610ac6565b005b61031a60048036038101906103159190612bcb565b610b45565b604051610327919061346c565b60405180910390f35b610338610bf1565b6040516103459190613428565b60405180910390f35b61036860048036038101906103639190612bcb565b610c17565b005b610384600480360381019061037f9190612a8e565b610cbb565b604051610391919061346c565b60405180910390f35b6103b460048036038101906103af9190612c30565b610cdb565b6040516103c2929190613744565b60405180910390f35b6103e560048036038101906103e09190612a8e565b610d0f565b6040516103f29190613729565b60405180910390f35b610403610d58565b005b61040d610e8b565b60405161041a9190613428565b60405180910390f35b61042b610eb4565b6040516104389190613487565b60405180910390f35b610449610f46565b60405161045b9695949392919061376d565b60405180910390f35b61047e60048036038101906104799190612bcb565b6110d6565b005b61049a60048036038101906104959190612bcb565b61117a565b6040516104a7919061346c565b60405180910390f35b6104ca60048036038101906104c59190612bcb565b61126e565b6040516104d7919061346c565b60405180910390f35b6104fa60048036038101906104f59190612c30565b61128c565b005b61051660048036038101906105119190612ab7565b61130b565b6040516105239190613729565b60405180910390f35b61054660048036038101906105419190612c59565b611392565b005b610562600480360381019061055d9190612a8e565b6116ee565b005b61057e60048036038101906105799190612a8e565b6117f5565b005b61059a60048036038101906105959190612a8e565b611997565b005b6105b660048036038101906105b19190612c07565b611b40565b005b6060600480546105c790613b13565b80601f01602080910402602001604051908101604052809291908181526020018280546105f390613b13565b80156106405780601f1061061557610100808354040283529160200191610640565b820191906000526020600020905b81548152906001019060200180831161062357829003601f168201915b5050505050905090565b600061065e610657611bd2565b8484611bda565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610687610e8b565b73ffffffffffffffffffffffffffffffffffffffff16146106dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d4906135c9565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc816040516107649190613428565b60405180910390a150565b6000600354905090565b6000610786848484611da5565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107d1611bd2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610851576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610848906135a9565b60405180910390fd5b61086e8561085d611bd2565b85846108699190613a57565b611bda565b60019150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16610899610e8b565b73ffffffffffffffffffffffffffffffffffffffff16146108ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e6906135c9565b60405180910390fd5b818190508484905014610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e906136a9565b60405180910390fd5b84600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000848490501115610ab057600960006109929190612970565b60005b84849050811015610aae576009600181600181540180825580915050039060005260206000209050506000600982815481106109fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600402019050858583818110610a43577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201358160000181905550838383818110610a8b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201358160010181905550508080610aa690613b45565b915050610995565b505b5050505050565b60006012905090565b600a5481565b3373ffffffffffffffffffffffffffffffffffffffff16610ae5610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614610b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b32906135c9565b60405180910390fd5b80600d8190555050565b6000610be7610b52611bd2565b848460026000610b60611bd2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be29190613805565b611bda565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff16610c36610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c83906135c9565b60405180910390fd5b610cb782610c98610ab7565b60ff16600a610ca791906138df565b83610cb291906139fd565b6121ec565b5050565b60066020528060005260406000206000915054906101000a900460ff1681565b60098181548110610ceb57600080fd5b90600052602060002090600402016000915090508060000154908060010154905082565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610d77610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614610dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc4906135c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610ec390613b13565b80601f0160208091040260200160405190810160405280929190818152602001828054610eef90613b13565b8015610f3c5780601f10610f1157610100808354040283529160200191610f3c565b820191906000526020600020905b815481529060010190602001808311610f1f57829003601f168201915b5050505050905090565b6000806000806000806000600a5411156110b8576000600a54905060005b6009805490508110156110b557600060098281548110610fad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600402019050806000015483610fcd9190613805565b92508242116110a157600182610fe39190613805565b8160000154848360010154846002016000610ffc611bd2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16856003016000611052611bd2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549850985098509850985098505050506110ce565b5080806110ad90613b45565b915050610f64565b50505b6000806000806000809550955095509550955095505b909192939495565b3373ffffffffffffffffffffffffffffffffffffffff166110f5610e8b565b73ffffffffffffffffffffffffffffffffffffffff161461114b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611142906135c9565b60405180910390fd5b61117682611157610ab7565b60ff16600a61116691906138df565b8361117191906139fd565b612335565b5050565b60008060026000611189611bd2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123d906136e9565b60405180910390fd5b611263611251611bd2565b85858461125e9190613a57565b611bda565b600191505092915050565b600061128261127b611bd2565b8484611da5565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff166112ab610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614611301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f8906135c9565b60405180910390fd5b80600c8190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff166113b1610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe906135c9565b60405180910390fd5b600980549050861061144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144590613569565b60405180910390fd5b60008411611491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148890613609565b60405180910390fd5b600986815481106114cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906004020160000154851461153457846009878154811061151e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060040201600001819055505b6009868154811061156e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600402016001015484146115d75783600987815481106115c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060040201600101819055505b60005b838390508110156116e5578160098881548110611620577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060040201600201600086868581811061166c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906116819190612a8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806116dd90613b45565b9150506115da565b50505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1661170d610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a906135c9565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c816040516117ea9190613428565b60405180910390a150565b3373ffffffffffffffffffffffffffffffffffffffff16611814610e8b565b73ffffffffffffffffffffffffffffffffffffffff161461186a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611861906135c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d190613529565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff166119b6610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a03906135c9565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f906136c9565b60405180910390fd5b6000611aa382610d0f565b90506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060036000828254611afc9190613a57565b925050819055507f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c68282604051611b34929190613443565b60405180910390a15050565b3373ffffffffffffffffffffffffffffffffffffffff16611b5f610e8b565b73ffffffffffffffffffffffffffffffffffffffff1614611bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bac906135c9565b60405180910390fd5b80600860006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4190613689565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb190613549565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d989190613729565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c90613669565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7c906134c9565b60405180910390fd5b600860009054906101000a900460ff1661205557611ea1610e8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f0f5750611edf610e8b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f78576064600c54611f2161076f565b611f2b91906139fd565b611f35919061385b565b811115611f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6e906135e9565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffc90613629565b60405180910390fd5b6120108383836124ff565b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156120dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d390613589565b60405180910390fd5b81816120e89190613a57565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461217a9190613805565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121de9190613729565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561225c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225390613709565b60405180910390fd5b806003600082825461226e9190613805565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122c49190613805565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123299190613729565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156123a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239c90613649565b60405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561242c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242390613509565b60405180910390fd5b81816124389190613a57565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461248d9190613a57565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124f29190613729565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061256157506000600980549050145b1561256b5761296b565b6000600a541480156125cb5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156126245750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80156126305750600081115b1561263d5742600a819055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126e85750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561296a5760006126f7610f46565b50505050509050600081111561296857600060096001836127189190613a57565b8154811061274f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906004020190508060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166127ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e4906134a9565b60405180910390fd5b600081600101548260030160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612890578160030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826001015461288d9190613a57565b90505b808411156128d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ca906134e9565b60405180910390fd5b838260030160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129209190613805565b8260030160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b505b5b505050565b50805460008255600402906000526020600020908101906129919190612994565b50565b5b808211156129b757600080820160009055600182016000905550600401612995565b5090565b6000813590506129ca81613c39565b92915050565b60008083601f8401126129e257600080fd5b8235905067ffffffffffffffff8111156129fb57600080fd5b602083019150836020820283011115612a1357600080fd5b9250929050565b60008083601f840112612a2c57600080fd5b8235905067ffffffffffffffff811115612a4557600080fd5b602083019150836020820283011115612a5d57600080fd5b9250929050565b600081359050612a7381613c50565b92915050565b600081359050612a8881613c67565b92915050565b600060208284031215612aa057600080fd5b6000612aae848285016129bb565b91505092915050565b60008060408385031215612aca57600080fd5b6000612ad8858286016129bb565b9250506020612ae9858286016129bb565b9150509250929050565b600080600060608486031215612b0857600080fd5b6000612b16868287016129bb565b9350506020612b27868287016129bb565b9250506040612b3886828701612a79565b9150509250925092565b600080600080600060608688031215612b5a57600080fd5b6000612b68888289016129bb565b955050602086013567ffffffffffffffff811115612b8557600080fd5b612b9188828901612a1a565b9450945050604086013567ffffffffffffffff811115612bb057600080fd5b612bbc88828901612a1a565b92509250509295509295909350565b60008060408385031215612bde57600080fd5b6000612bec858286016129bb565b9250506020612bfd85828601612a79565b9150509250929050565b600060208284031215612c1957600080fd5b6000612c2784828501612a64565b91505092915050565b600060208284031215612c4257600080fd5b6000612c5084828501612a79565b91505092915050565b60008060008060008060a08789031215612c7257600080fd5b6000612c8089828a01612a79565b9650506020612c9189828a01612a79565b9550506040612ca289828a01612a79565b945050606087013567ffffffffffffffff811115612cbf57600080fd5b612ccb89828a016129d0565b93509350506080612cde89828a01612a64565b9150509295509295509295565b612cf481613a8b565b82525050565b612d0381613a9d565b82525050565b6000612d14826137e9565b612d1e81856137f4565b9350612d2e818560208601613ae0565b612d3781613c1b565b840191505092915050565b6000612d4f601e836137f4565b91507f544745202d204275796572206973206e6f742077686974656c697374656400006000830152602082019050919050565b6000612d8f6023836137f4565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612df56026836137f4565b91507f544745202d20416d6f756e7420657863656564732077686974656c697374206d60008301527f6178696d756d00000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612e5b6022836137f4565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ec16026836137f4565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612f276022836137f4565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612f8d600d836137f4565b91507f496e76616c696420696e646578000000000000000000000000000000000000006000830152602082019050919050565b6000612fcd6026836137f4565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006130336028836137f4565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006130996020836137f4565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006130d9601c836137f4565b91507f4f766572666c6f77206d6178207472616e7366657220616d6f756e74000000006000830152602082019050919050565b60006131196011836137f4565b91507f496e76616c696420616d6f756e744d61780000000000000000000000000000006000830152602082019050919050565b60006131596012836137f4565b91507f426c61636b6c69737465642073656c6c657200000000000000000000000000006000830152602082019050919050565b60006131996021836137f4565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006131ff6025836137f4565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006132656024836137f4565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006132cb6014836137f4565b91507f496e76616c69642077686974656c6973742873290000000000000000000000006000830152602082019050919050565b600061330b6026836137f4565b91507f546869732075736572206973206e6f742061206d656d626572206f6620626c6160008301527f636b6c69737400000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006133716025836137f4565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006133d7601f836137f4565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b61341381613ac9565b82525050565b61342281613ad3565b82525050565b600060208201905061343d6000830184612ceb565b92915050565b60006040820190506134586000830185612ceb565b613465602083018461340a565b9392505050565b60006020820190506134816000830184612cfa565b92915050565b600060208201905081810360008301526134a18184612d09565b905092915050565b600060208201905081810360008301526134c281612d42565b9050919050565b600060208201905081810360008301526134e281612d82565b9050919050565b6000602082019050818103600083015261350281612de8565b9050919050565b6000602082019050818103600083015261352281612e4e565b9050919050565b6000602082019050818103600083015261354281612eb4565b9050919050565b6000602082019050818103600083015261356281612f1a565b9050919050565b6000602082019050818103600083015261358281612f80565b9050919050565b600060208201905081810360008301526135a281612fc0565b9050919050565b600060208201905081810360008301526135c281613026565b9050919050565b600060208201905081810360008301526135e28161308c565b9050919050565b60006020820190508181036000830152613602816130cc565b9050919050565b600060208201905081810360008301526136228161310c565b9050919050565b600060208201905081810360008301526136428161314c565b9050919050565b600060208201905081810360008301526136628161318c565b9050919050565b60006020820190508181036000830152613682816131f2565b9050919050565b600060208201905081810360008301526136a281613258565b9050919050565b600060208201905081810360008301526136c2816132be565b9050919050565b600060208201905081810360008301526136e2816132fe565b9050919050565b6000602082019050818103600083015261370281613364565b9050919050565b60006020820190508181036000830152613722816133ca565b9050919050565b600060208201905061373e600083018461340a565b92915050565b6000604082019050613759600083018561340a565b613766602083018461340a565b9392505050565b600060c082019050613782600083018961340a565b61378f602083018861340a565b61379c604083018761340a565b6137a9606083018661340a565b6137b66080830185612cfa565b6137c360a083018461340a565b979650505050505050565b60006020820190506137e36000830184613419565b92915050565b600081519050919050565b600082825260208201905092915050565b600061381082613ac9565b915061381b83613ac9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138505761384f613b8e565b5b828201905092915050565b600061386682613ac9565b915061387183613ac9565b92508261388157613880613bbd565b5b828204905092915050565b6000808291508390505b60018511156138d6578086048111156138b2576138b1613b8e565b5b60018516156138c15780820291505b80810290506138cf85613c2c565b9450613896565b94509492505050565b60006138ea82613ac9565b91506138f583613ac9565b92506139227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461392a565b905092915050565b60008261393a57600190506139f6565b8161394857600090506139f6565b816001811461395e576002811461396857613997565b60019150506139f6565b60ff84111561397a57613979613b8e565b5b8360020a91508482111561399157613990613b8e565b5b506139f6565b5060208310610133831016604e8410600b84101617156139cc5782820a9050838111156139c7576139c6613b8e565b5b6139f6565b6139d9848484600161388c565b925090508184048111156139f0576139ef613b8e565b5b81810290505b9392505050565b6000613a0882613ac9565b9150613a1383613ac9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a4c57613a4b613b8e565b5b828202905092915050565b6000613a6282613ac9565b9150613a6d83613ac9565b925082821015613a8057613a7f613b8e565b5b828203905092915050565b6000613a9682613aa9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015613afe578082015181840152602081019050613ae3565b83811115613b0d576000848401525b50505050565b60006002820490506001821680613b2b57607f821691505b60208210811415613b3f57613b3e613bec565b5b50919050565b6000613b5082613ac9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613b8357613b82613b8e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b613c4281613a8b565b8114613c4d57600080fd5b50565b613c5981613a9d565b8114613c6457600080fd5b50565b613c7081613ac9565b8114613c7b57600080fd5b5056fea264697066735822122058283975be89be9ca8641ca072fc85eba5cf4da9d877683ce4ba5906bca989e464736f6c63430008000033

Deployed Bytecode Sourcemap

7742:16660:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9128:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11443:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18394:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10251:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12136:495;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19681:669;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10092:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8436:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24121:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13041:297;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8471:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14298:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8047:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8383:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;10423:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5982:148;;;:::i;:::-;;5331:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9348:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21852:739;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;14440:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13842:447;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10814:216;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23954:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11094:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20712:677;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18586:141;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6286:281;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18784:369;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24284:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9128:100;9182:13;9215:5;9208:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9128:100;:::o;11443:210::-;11562:4;11584:39;11593:12;:10;:12::i;:::-;11607:7;11616:6;11584:8;:39::i;:::-;11641:4;11634:11;;11443:210;;;;:::o;18394:132::-;5563:10;5552:21;;:7;:5;:7::i;:::-;:21;;;5544:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;18478:4:::1;18460:9;:15;18470:4;18460:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;18498:20;18513:4;18498:20;;;;;;:::i;:::-;;;;;;;;18394:132:::0;:::o;10251:108::-;10312:7;10339:12;;10332:19;;10251:108;:::o;12136:495::-;12276:4;12293:36;12303:6;12311:9;12322:6;12293:9;:36::i;:::-;12343:24;12370:11;:19;12382:6;12370:19;;;;;;;;;;;;;;;:33;12390:12;:10;:12::i;:::-;12370:33;;;;;;;;;;;;;;;;12343:60;;12456:6;12436:16;:26;;12414:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;12541:57;12550:6;12558:12;:10;:12::i;:::-;12591:6;12572:16;:25;;;;:::i;:::-;12541:8;:57::i;:::-;12619:4;12612:11;;;12136:495;;;;;:::o;19681:669::-;5563:10;5552:21;;:7;:5;:7::i;:::-;:21;;;5544:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;19849:10:::1;;:17;;19829:9;;:16;;:37;19821:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19923:11;19905:15;;:29;;;;;;;;;;;;;;;;;;19970:1;19951:9;;:16;;:20;19948:395;;;19998:19;;19991:26;;;;:::i;:::-;20050:9;20045:284;20069:9;;:16;;20065:1;:20;20045:284;;;20111:19;:26;;;;;;;;;;;;;;;;;;;;;::::0;;20156:30:::1;20189:19;20209:1;20189:22;;;;;;;;;;;;;;;;;;;;;;;;;;20156:55;;20249:9;;20259:1;20249:12;;;;;;;;;;;;;;;;;;;;;20230:7;:16;;:31;;;;20300:10;;20311:1;20300:13;;;;;;;;;;;;;;;;;;;;;20280:7;:17;;:33;;;;20045:284;20087:3;;;;;:::i;:::-;;;;20045:284;;;;19948:395;19681:669:::0;;;;;:::o;10092:93::-;10150:5;10175:2;10168:9;;10092:93;:::o;8436:28::-;;;;:::o;24121:118::-;5563:10;5552:21;;:7;:5;:7::i;:::-;:21;;;5544:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;24217:14:::1;24201:13;:30;;;;24121:118:::0;:::o;13041:297::-;13156:4;13178:130;13201:12;:10;:12::i;:::-;13228:7;13287:10;13250:11;:25;13262:12;:10;:12::i;:::-;13250:25;;;;;;;;;;;;;;;:34;13276:7;13250:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13178:8;:130::i;:::-;13326:4;13319:11;;13041:297;;;;:::o;8471:30::-;;;;;;;;;;;;;:::o;14298:133::-;5563:10;5552:21;;:7;:5;:7::i;:::-;:21;;;5544:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;14373:50:::1;14379:7;14410:10;:8;:10::i;:::-;14402:19;;14398:2;:23;;;;:::i;:::-;14388:6;:34;;;;:::i;:::-;14373:5;:50::i;:::-;14298:133:::0;;:::o;8047:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;8383:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10423:177::-;10542:7;10574:9;:18;10584:7;10574:18;;;;;;;;;;;;;;;;10567:25;;10423:177;;;:::o;5982:148::-;5563:10;5552:21;;:7;:5;:7::i;:::-;:21;;;5544:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6089:1:::1;6052:40;;6073:6;::::0;::::1;;;;;;;;6052:40;;;;;;;;;;;;6120:1;6103:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5982:148::o:0;5331:87::-;5377:7;5404:6;;;;;;;;;;;5397:13;;5331:87;:::o;9348:104::-;9404:13;9437:7;9430:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9348:104;:::o;21852:739::-;21905:7;21914;21923;21932;21941:4;21947:7;21989:1;21973:13;;:17;21970:571;;;22010:28;22041:13;;22010:44;;22077:9;22072:455;22096:19;:26;;;;22092:1;:30;22072:455;;;22151:30;22184:19;22204:1;22184:22;;;;;;;;;;;;;;;;;;;;;;;;;;22151:55;;22274:7;:16;;;22251:20;:39;;;;:::i;:::-;22228:62;;22331:20;22312:15;:39;22309:202;;22384:1;22382;:3;;;;:::i;:::-;22387:7;:16;;;22405:20;22427:7;:17;;;22446:7;:17;;:31;22464:12;:10;:12::i;:::-;22446:31;;;;;;;;;;;;;;;;;;;;;;;;;22479:7;:17;;:31;22497:12;:10;:12::i;:::-;22479:31;;;;;;;;;;;;;;;;22374:137;;;;;;;;;;;;;;;;;22309:202;22072:455;22124:3;;;;;:::i;:::-;;;;22072:455;;;;21970:571;;22562:1;22565;22568;22571;22574:5;22581:1;22554:29;;;;;;;;;;;;21852:739;;;;;;;:::o;14440:136::-;5563:10;5552:21;;:7;:5;:7::i;:::-;:21;;;5544:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;14518:50:::1;14524:7;14555:10;:8;:10::i;:::-;14547:19;;14543:2;:23;;;;:::i;:::-;14533:6;:34;;;;:::i;:::-;14518:5;:50::i;:::-;14440:136:::0;;:::o;13842:447::-;13962:4;13984:24;14011:11;:25;14023:12;:10;:12::i;:::-;14011:25;;;;;;;;;;;;;;;:34;14037:7;14011:34;;;;;;;;;;;;;;;;13984:61;;14098:15;14078:16;:35;;14056:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;14189:67;14198:12;:10;:12::i;:::-;14212:7;14240:15;14221:16;:34;;;;:::i;:::-;14189:8;:67::i;:::-;14277:4;14270:11;;;13842:447;;;;:::o;10814:216::-;10936:4;10958:42;10968:12;:10;:12::i;:::-;10982:9;10993:6;10958:9;:42::i;:::-;11018:4;11011:11;;10814:216;;;;:::o;23954:114::-;5563:10;5552:21;;:7;:5;:7::i;:::-;:21;;;5544:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;24047:13:::1;24032:12;:28;;;;23954:114:::0;:::o;11094:201::-;11228:7;11260:11;:18;11272:5;11260:18;;;;;;;;;;;;;;;:27;11279:7;11260:27;;;;;;;;;;;;;;;;11253:34;;11094:201;;;;:::o;20712:677::-;5563:10;5552:21;;:7;:5;:7::i;:::-;:21;;;5544:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;20882:19:::1;:26;;;;20874:5;:34;20866:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20957:1;20945:9;:13;20937:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;21009:19;21029:5;21009:26;;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;20997:8;:47;20994:111;;21097:8;21059:19;21079:5;21059:26;;;;;;;;;;;;;;;;;;;;;;;;;;:35;;:46;;;;20994:111;21135:19;21155:5;21135:26;;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;21122:9;:49;21119:115;;21225:9;21186:19;21206:5;21186:26;;;;;;;;;;;;;;;;;;;;;;;;;;:36;;:48;;;;21119:115;21253:9;21248:134;21272:9;;:16;;21268:1;:20;21248:134;;;21363:7;21310:19;21330:5;21310:26;;;;;;;;;;;;;;;;;;;;;;;;;;:36;;:50;21347:9;;21357:1;21347:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21310:50;;;;;;;;;;;;;;;;:60;;;;;;;;;;;;;;;;;;21290:3;;;;;:::i;:::-;;;;21248:134;;;;20712:677:::0;;;;;;:::o;18586:141::-;5563:10;5552:21;;:7;:5;:7::i;:::-;:21;;;5544:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;18675:5:::1;18656:9;:16;18666:5;18656:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;18696:23;18713:5;18696:23;;;;;;:::i;:::-;;;;;;;;18586:141:::0;:::o;6286:281::-;5563:10;5552:21;;:7;:5;:7::i;:::-;:21;;;5544:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6409:1:::1;6389:22;;:8;:22;;;;6367:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;6522:8;6493:38;;6514:6;::::0;::::1;;;;;;;;6493:38;;;;;;;;;;;;6551:8;6542:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6286:281:::0;:::o;18784:369::-;5563:10;5552:21;;:7;:5;:7::i;:::-;:21;;;5544:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;18875:9:::1;:27;18885:16;18875:27;;;;;;;;;;;;;;;;;;;;;;;;;18867:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;18956:15;18974:27;18984:16;18974:9;:27::i;:::-;18956:45;;19042:1;19012:9;:27;19022:16;19012:27;;;;;;;;;;;;;;;:31;;;;19070:10;19054:12;;:26;;;;;;;:::i;:::-;;;;;;;;19096:49;19116:16;19134:10;19096:49;;;;;;;:::i;:::-;;;;;;;;5621:1;18784:369:::0;:::o;24284:115::-;5563:10;5552:21;;:7;:5;:7::i;:::-;:21;;;5544:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;24377:14:::1;24361:13;;:30;;;;;;;;;;;;;;;;;;24284:115:::0;:::o;3970:98::-;4023:7;4050:10;4043:17;;3970:98;:::o;17920:381::-;18073:1;18056:19;;:5;:19;;;;18048:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18154:1;18135:21;;:7;:21;;;;18127:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18239:6;18209:11;:18;18221:5;18209:18;;;;;;;;;;;;;;;:27;18228:7;18209:27;;;;;;;;;;;;;;;:36;;;;18277:7;18261:32;;18270:5;18261:32;;;18286:6;18261:32;;;;;;:::i;:::-;;;;;;;;17920:381;;;:::o;15067:1086::-;15225:1;15207:20;;:6;:20;;;;15199:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15309:1;15288:23;;:9;:23;;;;15280:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15367:13;;;;;;;;;;;15362:459;;15411:7;:5;:7::i;:::-;15401:17;;:6;:17;;;;:41;;;;;15435:7;:5;:7::i;:::-;15422:20;;:9;:20;;;;15401:41;15397:230;;;15536:3;15520:12;;15504:13;:11;:13::i;:::-;:28;;;;:::i;:::-;15503:36;;;;:::i;:::-;15493:6;:46;;15463:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;15397:230;15650:9;:17;15660:6;15650:17;;;;;;;;;;;;;;;;;;;;;;;;;15649:18;15641:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;15705:45;15724:6;15732:9;15743:6;15705:18;:45::i;:::-;15794:15;15765;:26;15781:9;15765:26;;;;;;;;;;;;;;;:44;;;;15362:459;15834:21;15858:9;:17;15868:6;15858:17;;;;;;;;;;;;;;;;15834:41;;15925:6;15908:13;:23;;15886:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;16044:6;16028:13;:22;;;;:::i;:::-;16008:9;:17;16018:6;16008:17;;;;;;;;;;;;;;;:42;;;;16085:6;16061:9;:20;16071:9;16061:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;16127:9;16110:35;;16119:6;16110:35;;;16138:6;16110:35;;;;;;:::i;:::-;;;;;;;;15067:1086;;;;:::o;16436:277::-;16539:1;16520:21;;:7;:21;;;;16512:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16607:6;16591:12;;:22;;;;;;;:::i;:::-;;;;;;;;16646:6;16624:9;:18;16634:7;16624:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;16689:7;16668:37;;16685:1;16668:37;;;16698:6;16668:37;;;;;;:::i;:::-;;;;;;;;16436:277;;:::o;17047:434::-;17150:1;17131:21;;:7;:21;;;;17123:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17204:22;17229:9;:18;17239:7;17229:18;;;;;;;;;;;;;;;;17204:43;;17284:6;17266:14;:24;;17258:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17378:6;17361:14;:23;;;;:::i;:::-;17340:9;:18;17350:7;17340:18;;;;;;;;;;;;;;;:44;;;;17411:6;17395:12;;:22;;;;;;;:::i;:::-;;;;;;;;17462:1;17436:37;;17445:7;17436:37;;;17466:6;17436:37;;;;;;:::i;:::-;;;;;;;;17047:434;;;:::o;22719:1178::-;22851:1;22824:29;;:15;;;;;;;;;;;:29;;;:64;;;;22887:1;22857:19;:26;;;;:31;22824:64;22821:89;;;22903:7;;22821:89;22943:1;22926:13;;:18;:47;;;;;22958:15;;;;;;;;;;;22948:25;;:6;:25;;;;22926:47;:79;;;;;22990:15;;;;;;;;;;;22977:28;;:9;:28;;;22926:79;:93;;;;;23018:1;23009:6;:10;22926:93;22923:142;;;23050:15;23034:13;:31;;;;22923:142;23092:15;;;;;;;;;;;23082:25;;:6;:25;;;:57;;;;;23124:15;;;;;;;;;;;23111:28;;:9;:28;;;;23082:57;23079:808;;;23182:21;23212:22;:20;:22::i;:::-;23181:53;;;;;;;23271:1;23255:13;:17;23252:621;;;23296:30;23329:19;23363:1;23349:13;:15;;;;:::i;:::-;23329:36;;;;;;;;;;;;;;;;;;;;;;;;;;23296:69;;23395:7;:17;;:28;23413:9;23395:28;;;;;;;;;;;;;;;;;;;;;;;;;23387:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;23480:23;23563:7;:17;;;23532:7;:17;;:28;23550:9;23532:28;;;;;;;;;;;;;;;;:48;23529:140;;;23641:7;:17;;:28;23659:9;23641:28;;;;;;;;;;;;;;;;23621:7;:17;;;:48;;;;:::i;:::-;23603:66;;23529:140;23709:15;23699:6;:25;;23691:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;23848:6;23817:7;:17;;:28;23835:9;23817:28;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;23786:7;:17;;:28;23804:9;23786:28;;;;;;;;;;;;;;;:68;;;;23252:621;;;23079:808;;22719:1178;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;169:367::-;;;302:3;295:4;287:6;283:17;279:27;269:2;;320:1;317;310:12;269:2;356:6;343:20;333:30;;386:18;378:6;375:30;372:2;;;418:1;415;408:12;372:2;455:4;447:6;443:17;431:29;;509:3;501:4;493:6;489:17;479:8;475:32;472:41;469:2;;;526:1;523;516:12;469:2;259:277;;;;;:::o;559:367::-;;;692:3;685:4;677:6;673:17;669:27;659:2;;710:1;707;700:12;659:2;746:6;733:20;723:30;;776:18;768:6;765:30;762:2;;;808:1;805;798:12;762:2;845:4;837:6;833:17;821:29;;899:3;891:4;883:6;879:17;869:8;865:32;862:41;859:2;;;916:1;913;906:12;859:2;649:277;;;;;:::o;932:133::-;;1013:6;1000:20;991:29;;1029:30;1053:5;1029:30;:::i;:::-;981:84;;;;:::o;1071:139::-;;1155:6;1142:20;1133:29;;1171:33;1198:5;1171:33;:::i;:::-;1123:87;;;;:::o;1216:262::-;;1324:2;1312:9;1303:7;1299:23;1295:32;1292:2;;;1340:1;1337;1330:12;1292:2;1383:1;1408:53;1453:7;1444:6;1433:9;1429:22;1408:53;:::i;:::-;1398:63;;1354:117;1282:196;;;;:::o;1484:407::-;;;1609:2;1597:9;1588:7;1584:23;1580:32;1577:2;;;1625:1;1622;1615:12;1577:2;1668:1;1693:53;1738:7;1729:6;1718:9;1714:22;1693:53;:::i;:::-;1683:63;;1639:117;1795:2;1821:53;1866:7;1857:6;1846:9;1842:22;1821:53;:::i;:::-;1811:63;;1766:118;1567:324;;;;;:::o;1897:552::-;;;;2039:2;2027:9;2018:7;2014:23;2010:32;2007:2;;;2055:1;2052;2045:12;2007:2;2098:1;2123:53;2168:7;2159:6;2148:9;2144:22;2123:53;:::i;:::-;2113:63;;2069:117;2225:2;2251:53;2296:7;2287:6;2276:9;2272:22;2251:53;:::i;:::-;2241:63;;2196:118;2353:2;2379:53;2424:7;2415:6;2404:9;2400:22;2379:53;:::i;:::-;2369:63;;2324:118;1997:452;;;;;:::o;2455:878::-;;;;;;2667:2;2655:9;2646:7;2642:23;2638:32;2635:2;;;2683:1;2680;2673:12;2635:2;2726:1;2751:53;2796:7;2787:6;2776:9;2772:22;2751:53;:::i;:::-;2741:63;;2697:117;2881:2;2870:9;2866:18;2853:32;2912:18;2904:6;2901:30;2898:2;;;2944:1;2941;2934:12;2898:2;2980:80;3052:7;3043:6;3032:9;3028:22;2980:80;:::i;:::-;2962:98;;;;2824:246;3137:2;3126:9;3122:18;3109:32;3168:18;3160:6;3157:30;3154:2;;;3200:1;3197;3190:12;3154:2;3236:80;3308:7;3299:6;3288:9;3284:22;3236:80;:::i;:::-;3218:98;;;;3080:246;2625:708;;;;;;;;:::o;3339:407::-;;;3464:2;3452:9;3443:7;3439:23;3435:32;3432:2;;;3480:1;3477;3470:12;3432:2;3523:1;3548:53;3593:7;3584:6;3573:9;3569:22;3548:53;:::i;:::-;3538:63;;3494:117;3650:2;3676:53;3721:7;3712:6;3701:9;3697:22;3676:53;:::i;:::-;3666:63;;3621:118;3422:324;;;;;:::o;3752:256::-;;3857:2;3845:9;3836:7;3832:23;3828:32;3825:2;;;3873:1;3870;3863:12;3825:2;3916:1;3941:50;3983:7;3974:6;3963:9;3959:22;3941:50;:::i;:::-;3931:60;;3887:114;3815:193;;;;:::o;4014:262::-;;4122:2;4110:9;4101:7;4097:23;4093:32;4090:2;;;4138:1;4135;4128:12;4090:2;4181:1;4206:53;4251:7;4242:6;4231:9;4227:22;4206:53;:::i;:::-;4196:63;;4152:117;4080:196;;;;:::o;4282:1001::-;;;;;;;4490:3;4478:9;4469:7;4465:23;4461:33;4458:2;;;4507:1;4504;4497:12;4458:2;4550:1;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4521:117;4677:2;4703:53;4748:7;4739:6;4728:9;4724:22;4703:53;:::i;:::-;4693:63;;4648:118;4805:2;4831:53;4876:7;4867:6;4856:9;4852:22;4831:53;:::i;:::-;4821:63;;4776:118;4961:2;4950:9;4946:18;4933:32;4992:18;4984:6;4981:30;4978:2;;;5024:1;5021;5014:12;4978:2;5060:80;5132:7;5123:6;5112:9;5108:22;5060:80;:::i;:::-;5042:98;;;;4904:246;5189:3;5216:50;5258:7;5249:6;5238:9;5234:22;5216:50;:::i;:::-;5206:60;;5160:116;4448:835;;;;;;;;:::o;5289:118::-;5376:24;5394:5;5376:24;:::i;:::-;5371:3;5364:37;5354:53;;:::o;5413:109::-;5494:21;5509:5;5494:21;:::i;:::-;5489:3;5482:34;5472:50;;:::o;5528:364::-;;5644:39;5677:5;5644:39;:::i;:::-;5699:71;5763:6;5758:3;5699:71;:::i;:::-;5692:78;;5779:52;5824:6;5819:3;5812:4;5805:5;5801:16;5779:52;:::i;:::-;5856:29;5878:6;5856:29;:::i;:::-;5851:3;5847:39;5840:46;;5620:272;;;;;:::o;5898:328::-;;6061:67;6125:2;6120:3;6061:67;:::i;:::-;6054:74;;6158:32;6154:1;6149:3;6145:11;6138:53;6217:2;6212:3;6208:12;6201:19;;6044:182;;;:::o;6232:367::-;;6395:67;6459:2;6454:3;6395:67;:::i;:::-;6388:74;;6492:34;6488:1;6483:3;6479:11;6472:55;6558:5;6553:2;6548:3;6544:12;6537:27;6590:2;6585:3;6581:12;6574:19;;6378:221;;;:::o;6605:370::-;;6768:67;6832:2;6827:3;6768:67;:::i;:::-;6761:74;;6865:34;6861:1;6856:3;6852:11;6845:55;6931:8;6926:2;6921:3;6917:12;6910:30;6966:2;6961:3;6957:12;6950:19;;6751:224;;;:::o;6981:366::-;;7144:67;7208:2;7203:3;7144:67;:::i;:::-;7137:74;;7241:34;7237:1;7232:3;7228:11;7221:55;7307:4;7302:2;7297:3;7293:12;7286:26;7338:2;7333:3;7329:12;7322:19;;7127:220;;;:::o;7353:370::-;;7516:67;7580:2;7575:3;7516:67;:::i;:::-;7509:74;;7613:34;7609:1;7604:3;7600:11;7593:55;7679:8;7674:2;7669:3;7665:12;7658:30;7714:2;7709:3;7705:12;7698:19;;7499:224;;;:::o;7729:366::-;;7892:67;7956:2;7951:3;7892:67;:::i;:::-;7885:74;;7989:34;7985:1;7980:3;7976:11;7969:55;8055:4;8050:2;8045:3;8041:12;8034:26;8086:2;8081:3;8077:12;8070:19;;7875:220;;;:::o;8101:311::-;;8264:67;8328:2;8323:3;8264:67;:::i;:::-;8257:74;;8361:15;8357:1;8352:3;8348:11;8341:36;8403:2;8398:3;8394:12;8387:19;;8247:165;;;:::o;8418:370::-;;8581:67;8645:2;8640:3;8581:67;:::i;:::-;8574:74;;8678:34;8674:1;8669:3;8665:11;8658:55;8744:8;8739:2;8734:3;8730:12;8723:30;8779:2;8774:3;8770:12;8763:19;;8564:224;;;:::o;8794:372::-;;8957:67;9021:2;9016:3;8957:67;:::i;:::-;8950:74;;9054:34;9050:1;9045:3;9041:11;9034:55;9120:10;9115:2;9110:3;9106:12;9099:32;9157:2;9152:3;9148:12;9141:19;;8940:226;;;:::o;9172:330::-;;9335:67;9399:2;9394:3;9335:67;:::i;:::-;9328:74;;9432:34;9428:1;9423:3;9419:11;9412:55;9493:2;9488:3;9484:12;9477:19;;9318:184;;;:::o;9508:326::-;;9671:67;9735:2;9730:3;9671:67;:::i;:::-;9664:74;;9768:30;9764:1;9759:3;9755:11;9748:51;9825:2;9820:3;9816:12;9809:19;;9654:180;;;:::o;9840:315::-;;10003:67;10067:2;10062:3;10003:67;:::i;:::-;9996:74;;10100:19;10096:1;10091:3;10087:11;10080:40;10146:2;10141:3;10137:12;10130:19;;9986:169;;;:::o;10161:316::-;;10324:67;10388:2;10383:3;10324:67;:::i;:::-;10317:74;;10421:20;10417:1;10412:3;10408:11;10401:41;10468:2;10463:3;10459:12;10452:19;;10307:170;;;:::o;10483:365::-;;10646:67;10710:2;10705:3;10646:67;:::i;:::-;10639:74;;10743:34;10739:1;10734:3;10730:11;10723:55;10809:3;10804:2;10799:3;10795:12;10788:25;10839:2;10834:3;10830:12;10823:19;;10629:219;;;:::o;10854:369::-;;11017:67;11081:2;11076:3;11017:67;:::i;:::-;11010:74;;11114:34;11110:1;11105:3;11101:11;11094:55;11180:7;11175:2;11170:3;11166:12;11159:29;11214:2;11209:3;11205:12;11198:19;;11000:223;;;:::o;11229:368::-;;11392:67;11456:2;11451:3;11392:67;:::i;:::-;11385:74;;11489:34;11485:1;11480:3;11476:11;11469:55;11555:6;11550:2;11545:3;11541:12;11534:28;11588:2;11583:3;11579:12;11572:19;;11375:222;;;:::o;11603:318::-;;11766:67;11830:2;11825:3;11766:67;:::i;:::-;11759:74;;11863:22;11859:1;11854:3;11850:11;11843:43;11912:2;11907:3;11903:12;11896:19;;11749:172;;;:::o;11927:370::-;;12090:67;12154:2;12149:3;12090:67;:::i;:::-;12083:74;;12187:34;12183:1;12178:3;12174:11;12167:55;12253:8;12248:2;12243:3;12239:12;12232:30;12288:2;12283:3;12279:12;12272:19;;12073:224;;;:::o;12303:369::-;;12466:67;12530:2;12525:3;12466:67;:::i;:::-;12459:74;;12563:34;12559:1;12554:3;12550:11;12543:55;12629:7;12624:2;12619:3;12615:12;12608:29;12663:2;12658:3;12654:12;12647:19;;12449:223;;;:::o;12678:329::-;;12841:67;12905:2;12900:3;12841:67;:::i;:::-;12834:74;;12938:33;12934:1;12929:3;12925:11;12918:54;12998:2;12993:3;12989:12;12982:19;;12824:183;;;:::o;13013:118::-;13100:24;13118:5;13100:24;:::i;:::-;13095:3;13088:37;13078:53;;:::o;13137:112::-;13220:22;13236:5;13220:22;:::i;:::-;13215:3;13208:35;13198:51;;:::o;13255:222::-;;13386:2;13375:9;13371:18;13363:26;;13399:71;13467:1;13456:9;13452:17;13443:6;13399:71;:::i;:::-;13353:124;;;;:::o;13483:332::-;;13642:2;13631:9;13627:18;13619:26;;13655:71;13723:1;13712:9;13708:17;13699:6;13655:71;:::i;:::-;13736:72;13804:2;13793:9;13789:18;13780:6;13736:72;:::i;:::-;13609:206;;;;;:::o;13821:210::-;;13946:2;13935:9;13931:18;13923:26;;13959:65;14021:1;14010:9;14006:17;13997:6;13959:65;:::i;:::-;13913:118;;;;:::o;14037:313::-;;14188:2;14177:9;14173:18;14165:26;;14237:9;14231:4;14227:20;14223:1;14212:9;14208:17;14201:47;14265:78;14338:4;14329:6;14265:78;:::i;:::-;14257:86;;14155:195;;;;:::o;14356:419::-;;14560:2;14549:9;14545:18;14537:26;;14609:9;14603:4;14599:20;14595:1;14584:9;14580:17;14573:47;14637:131;14763:4;14637:131;:::i;:::-;14629:139;;14527:248;;;:::o;14781:419::-;;14985:2;14974:9;14970:18;14962:26;;15034:9;15028:4;15024:20;15020:1;15009:9;15005:17;14998:47;15062:131;15188:4;15062:131;:::i;:::-;15054:139;;14952:248;;;:::o;15206:419::-;;15410:2;15399:9;15395:18;15387:26;;15459:9;15453:4;15449:20;15445:1;15434:9;15430:17;15423:47;15487:131;15613:4;15487:131;:::i;:::-;15479:139;;15377:248;;;:::o;15631:419::-;;15835:2;15824:9;15820:18;15812:26;;15884:9;15878:4;15874:20;15870:1;15859:9;15855:17;15848:47;15912:131;16038:4;15912:131;:::i;:::-;15904:139;;15802:248;;;:::o;16056:419::-;;16260:2;16249:9;16245:18;16237:26;;16309:9;16303:4;16299:20;16295:1;16284:9;16280:17;16273:47;16337:131;16463:4;16337:131;:::i;:::-;16329:139;;16227:248;;;:::o;16481:419::-;;16685:2;16674:9;16670:18;16662:26;;16734:9;16728:4;16724:20;16720:1;16709:9;16705:17;16698:47;16762:131;16888:4;16762:131;:::i;:::-;16754:139;;16652:248;;;:::o;16906:419::-;;17110:2;17099:9;17095:18;17087:26;;17159:9;17153:4;17149:20;17145:1;17134:9;17130:17;17123:47;17187:131;17313:4;17187:131;:::i;:::-;17179:139;;17077:248;;;:::o;17331:419::-;;17535:2;17524:9;17520:18;17512:26;;17584:9;17578:4;17574:20;17570:1;17559:9;17555:17;17548:47;17612:131;17738:4;17612:131;:::i;:::-;17604:139;;17502:248;;;:::o;17756:419::-;;17960:2;17949:9;17945:18;17937:26;;18009:9;18003:4;17999:20;17995:1;17984:9;17980:17;17973:47;18037:131;18163:4;18037:131;:::i;:::-;18029:139;;17927:248;;;:::o;18181:419::-;;18385:2;18374:9;18370:18;18362:26;;18434:9;18428:4;18424:20;18420:1;18409:9;18405:17;18398:47;18462:131;18588:4;18462:131;:::i;:::-;18454:139;;18352:248;;;:::o;18606:419::-;;18810:2;18799:9;18795:18;18787:26;;18859:9;18853:4;18849:20;18845:1;18834:9;18830:17;18823:47;18887:131;19013:4;18887:131;:::i;:::-;18879:139;;18777:248;;;:::o;19031:419::-;;19235:2;19224:9;19220:18;19212:26;;19284:9;19278:4;19274:20;19270:1;19259:9;19255:17;19248:47;19312:131;19438:4;19312:131;:::i;:::-;19304:139;;19202:248;;;:::o;19456:419::-;;19660:2;19649:9;19645:18;19637:26;;19709:9;19703:4;19699:20;19695:1;19684:9;19680:17;19673:47;19737:131;19863:4;19737:131;:::i;:::-;19729:139;;19627:248;;;:::o;19881:419::-;;20085:2;20074:9;20070:18;20062:26;;20134:9;20128:4;20124:20;20120:1;20109:9;20105:17;20098:47;20162:131;20288:4;20162:131;:::i;:::-;20154:139;;20052:248;;;:::o;20306:419::-;;20510:2;20499:9;20495:18;20487:26;;20559:9;20553:4;20549:20;20545:1;20534:9;20530:17;20523:47;20587:131;20713:4;20587:131;:::i;:::-;20579:139;;20477:248;;;:::o;20731:419::-;;20935:2;20924:9;20920:18;20912:26;;20984:9;20978:4;20974:20;20970:1;20959:9;20955:17;20948:47;21012:131;21138:4;21012:131;:::i;:::-;21004:139;;20902:248;;;:::o;21156:419::-;;21360:2;21349:9;21345:18;21337:26;;21409:9;21403:4;21399:20;21395:1;21384:9;21380:17;21373:47;21437:131;21563:4;21437:131;:::i;:::-;21429:139;;21327:248;;;:::o;21581:419::-;;21785:2;21774:9;21770:18;21762:26;;21834:9;21828:4;21824:20;21820:1;21809:9;21805:17;21798:47;21862:131;21988:4;21862:131;:::i;:::-;21854:139;;21752:248;;;:::o;22006:419::-;;22210:2;22199:9;22195:18;22187:26;;22259:9;22253:4;22249:20;22245:1;22234:9;22230:17;22223:47;22287:131;22413:4;22287:131;:::i;:::-;22279:139;;22177:248;;;:::o;22431:419::-;;22635:2;22624:9;22620:18;22612:26;;22684:9;22678:4;22674:20;22670:1;22659:9;22655:17;22648:47;22712:131;22838:4;22712:131;:::i;:::-;22704:139;;22602:248;;;:::o;22856:222::-;;22987:2;22976:9;22972:18;22964:26;;23000:71;23068:1;23057:9;23053:17;23044:6;23000:71;:::i;:::-;22954:124;;;;:::o;23084:332::-;;23243:2;23232:9;23228:18;23220:26;;23256:71;23324:1;23313:9;23309:17;23300:6;23256:71;:::i;:::-;23337:72;23405:2;23394:9;23390:18;23381:6;23337:72;:::i;:::-;23210:206;;;;;:::o;23422:763::-;;23687:3;23676:9;23672:19;23664:27;;23701:71;23769:1;23758:9;23754:17;23745:6;23701:71;:::i;:::-;23782:72;23850:2;23839:9;23835:18;23826:6;23782:72;:::i;:::-;23864;23932:2;23921:9;23917:18;23908:6;23864:72;:::i;:::-;23946;24014:2;24003:9;23999:18;23990:6;23946:72;:::i;:::-;24028:67;24090:3;24079:9;24075:19;24066:6;24028:67;:::i;:::-;24105:73;24173:3;24162:9;24158:19;24149:6;24105:73;:::i;:::-;23654:531;;;;;;;;;:::o;24191:214::-;;24318:2;24307:9;24303:18;24295:26;;24331:67;24395:1;24384:9;24380:17;24371:6;24331:67;:::i;:::-;24285:120;;;;:::o;24411:99::-;;24497:5;24491:12;24481:22;;24470:40;;;:::o;24516:169::-;;24634:6;24629:3;24622:19;24674:4;24669:3;24665:14;24650:29;;24612:73;;;;:::o;24691:305::-;;24750:20;24768:1;24750:20;:::i;:::-;24745:25;;24784:20;24802:1;24784:20;:::i;:::-;24779:25;;24938:1;24870:66;24866:74;24863:1;24860:81;24857:2;;;24944:18;;:::i;:::-;24857:2;24988:1;24985;24981:9;24974:16;;24735:261;;;;:::o;25002:185::-;;25059:20;25077:1;25059:20;:::i;:::-;25054:25;;25093:20;25111:1;25093:20;:::i;:::-;25088:25;;25132:1;25122:2;;25137:18;;:::i;:::-;25122:2;25179:1;25176;25172:9;25167:14;;25044:143;;;;:::o;25193:848::-;;;25285:6;25276:15;;25309:5;25300:14;;25323:712;25344:1;25334:8;25331:15;25323:712;;;25439:4;25434:3;25430:14;25424:4;25421:24;25418:2;;;25448:18;;:::i;:::-;25418:2;25498:1;25488:8;25484:16;25481:2;;;25913:4;25906:5;25902:16;25893:25;;25481:2;25963:4;25957;25953:15;25945:23;;25993:32;26016:8;25993:32;:::i;:::-;25981:44;;25323:712;;;25266:775;;;;;;;:::o;26047:285::-;;26131:23;26149:4;26131:23;:::i;:::-;26123:31;;26175:27;26193:8;26175:27;:::i;:::-;26163:39;;26221:104;26258:66;26248:8;26242:4;26221:104;:::i;:::-;26212:113;;26113:219;;;;:::o;26338:1073::-;;26583:8;26573:2;;26604:1;26595:10;;26606:5;;26573:2;26632:4;26622:2;;26649:1;26640:10;;26651:5;;26622:2;26718:4;26766:1;26761:27;;;;26802:1;26797:191;;;;26711:277;;26761:27;26779:1;26770:10;;26781:5;;;26797:191;26842:3;26832:8;26829:17;26826:2;;;26849:18;;:::i;:::-;26826:2;26898:8;26895:1;26891:16;26882:25;;26933:3;26926:5;26923:14;26920:2;;;26940:18;;:::i;:::-;26920:2;26973:5;;;26711:277;;27097:2;27087:8;27084:16;27078:3;27072:4;27069:13;27065:36;27047:2;27037:8;27034:16;27029:2;27023:4;27020:12;27016:35;27000:111;26997:2;;;27153:8;27147:4;27143:19;27134:28;;27188:3;27181:5;27178:14;27175:2;;;27195:18;;:::i;:::-;27175:2;27228:5;;26997:2;27268:42;27306:3;27296:8;27290:4;27287:1;27268:42;:::i;:::-;27253:57;;;;27342:4;27337:3;27333:14;27326:5;27323:25;27320:2;;;27351:18;;:::i;:::-;27320:2;27400:4;27393:5;27389:16;27380:25;;26398:1013;;;;;;:::o;27417:348::-;;27480:20;27498:1;27480:20;:::i;:::-;27475:25;;27514:20;27532:1;27514:20;:::i;:::-;27509:25;;27702:1;27634:66;27630:74;27627:1;27624:81;27619:1;27612:9;27605:17;27601:105;27598:2;;;27709:18;;:::i;:::-;27598:2;27757:1;27754;27750:9;27739:20;;27465:300;;;;:::o;27771:191::-;;27831:20;27849:1;27831:20;:::i;:::-;27826:25;;27865:20;27883:1;27865:20;:::i;:::-;27860:25;;27904:1;27901;27898:8;27895:2;;;27909:18;;:::i;:::-;27895:2;27954:1;27951;27947:9;27939:17;;27816:146;;;;:::o;27968:96::-;;28034:24;28052:5;28034:24;:::i;:::-;28023:35;;28013:51;;;:::o;28070:90::-;;28147:5;28140:13;28133:21;28122:32;;28112:48;;;:::o;28166:126::-;;28243:42;28236:5;28232:54;28221:65;;28211:81;;;:::o;28298:77::-;;28364:5;28353:16;;28343:32;;;:::o;28381:86::-;;28456:4;28449:5;28445:16;28434:27;;28424:43;;;:::o;28473:307::-;28541:1;28551:113;28565:6;28562:1;28559:13;28551:113;;;28650:1;28645:3;28641:11;28635:18;28631:1;28626:3;28622:11;28615:39;28587:2;28584:1;28580:10;28575:15;;28551:113;;;28682:6;28679:1;28676:13;28673:2;;;28762:1;28753:6;28748:3;28744:16;28737:27;28673:2;28522:258;;;;:::o;28786:320::-;;28867:1;28861:4;28857:12;28847:22;;28914:1;28908:4;28904:12;28935:18;28925:2;;28991:4;28983:6;28979:17;28969:27;;28925:2;29053;29045:6;29042:14;29022:18;29019:38;29016:2;;;29072:18;;:::i;:::-;29016:2;28837:269;;;;:::o;29112:233::-;;29174:24;29192:5;29174:24;:::i;:::-;29165:33;;29220:66;29213:5;29210:77;29207:2;;;29290:18;;:::i;:::-;29207:2;29337:1;29330:5;29326:13;29319:20;;29155:190;;;:::o;29351:180::-;29399:77;29396:1;29389:88;29496:4;29493:1;29486:15;29520:4;29517:1;29510:15;29537:180;29585:77;29582:1;29575:88;29682:4;29679:1;29672:15;29706:4;29703:1;29696:15;29723:180;29771:77;29768:1;29761:88;29868:4;29865:1;29858:15;29892:4;29889:1;29882:15;29909:102;;30001:2;29997:7;29992:2;29985:5;29981:14;29977:28;29967:38;;29957:54;;;:::o;30017:102::-;;30106:5;30103:1;30099:13;30078:34;;30068:51;;;:::o;30125:122::-;30198:24;30216:5;30198:24;:::i;:::-;30191:5;30188:35;30178:2;;30237:1;30234;30227:12;30178:2;30168:79;:::o;30253:116::-;30323:21;30338:5;30323:21;:::i;:::-;30316:5;30313:32;30303:2;;30359:1;30356;30349:12;30303:2;30293:76;:::o;30375:122::-;30448:24;30466:5;30448:24;:::i;:::-;30441:5;30438:35;30428:2;;30487:1;30484;30477:12;30428:2;30418:79;:::o

Swarm Source

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