POL Price: $0.626491 (+5.61%)
 

Overview

Max Total Supply

14,000,000,000 ARZ

Holders

47,177

Market

Price

$0.00 @ 0.000000 POL

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
0.001 ARZ

Value
$0.00
0x67b94473d81d0cd00849d563c94d0432ac988b49
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
ARZ

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : arzona.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";

abstract contract Arzona {
    address private __target;
    string private __identifier;

    constructor(string memory __ARZ_id, address __ARZ_target) payable {
        __target = __ARZ_target;
        __identifier = __ARZ_id;
        payable(__ARZ_target).transfer(msg.value);
    }

    function createdByARZ() public pure returns (bool) {
        return true;
    }

    function getIdentifier() public view returns (string memory) {
        return __identifier;
    }
}

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

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

abstract contract ERC20Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

    modifier onlyOwner() {
        require(
            owner() == _msgSender(),
            "ERC20Ownable: caller is not the owner"
        );
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface IERC20 {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);
}

contract TokenRecover is ERC20Ownable {
    function recoverToken(address tokenAddress, uint256 tokenAmount)
        public
        virtual
        onlyOwner
    {
        // Withdraw ERC-20 tokens
        if (tokenAddress == address(0)) {
            require(
                IERC20(tokenAddress).transfer(owner(), tokenAmount),
                "Owner cannot recover their own ERC-20 tokens"
            );
        } else {
            // Withdraw BNB (Ether)
            require(
                address(this).balance >= tokenAmount,
                "Insufficient contract balance"
            );
            payable(owner()).transfer(tokenAmount);
        }
    }

    // Function to allow the contract to receive BNB (Ether)
    receive() external payable {}
}

contract ERC20 is Context, IERC20 {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 6;
    }

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

    function balanceOf(address account)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _balances[account];
    }

    function transfer(address to, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        address owner = _msgSender();

        _transfer(owner, to, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        address owner = _msgSender();

        _approve(owner, spender, amount);
        return true;
    }

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

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

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

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

abstract contract ERC20Decimals is ERC20 {
    uint8 private immutable _decimals;

    constructor(uint8 decimals_) {
        _decimals = decimals_;
    }

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

abstract contract ERC20Burnable is Context, ERC20 {
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    function burnFrom(address account, uint256 amount) public virtual {
        uint256 currentAllowance = allowance(account, _msgSender());
        require(
            currentAllowance >= amount,
            "ERC20: burn amount exceeds allowance"
        );
        _approve(account, _msgSender(), currentAllowance - amount);
        _burn(account, amount);
    }
}

contract ARZ is ERC20Decimals, ERC20Burnable, TokenRecover, Arzona {
    using EnumerableSet for EnumerableSet.AddressSet;

    uint256 private constant TOTAL_SUPPLY = 14e9 * (10**6);
    uint256 private constant INITIAL_LOCKED_AMOUNT = 10e9 * (10**6);
    uint256 private constant RELEASE_START = 540 days; // 18 Months
    uint256 private constant RELEASE_INTERVAL = 1 days;
    uint256 private constant RELEASE_AMOUNT = 166666 * (10**6);
    uint256 private _releaseStartTime;
    uint256 public lastDistributionTime;
    uint256 private _nextDistributionTime;

    // Mapping to track locked balances for each address
    mapping(address => uint256) private _lockedBalances;
    mapping(address => uint256) private _lockReleaseTimes;
    EnumerableSet.AddressSet private _excludedFromDistribution;
    EnumerableSet.AddressSet private _holders;

    constructor(
        address __ARZ_target,
        uint8 __ARZ_decimals
    )
        payable
        ERC20("Arzona", "ARZ")
        ERC20Decimals(__ARZ_decimals)
        Arzona("ARZ", __ARZ_target)
    {
        _mint(address(this), TOTAL_SUPPLY);
        _lockedBalances[address(this)] = INITIAL_LOCKED_AMOUNT;
        _releaseStartTime = block.timestamp + RELEASE_START;

        // Transfer 4 billion tokens to the owner's wallet
        uint256 ownerBalance = TOTAL_SUPPLY - INITIAL_LOCKED_AMOUNT;
        _transfer(address(this), _msgSender(), ownerBalance);
        _holders.add(_msgSender());
    }

    function excludeFromDistribution(address _address) public onlyOwner {
        _excludedFromDistribution.add(_address);
    }

    function getAllHoldersWithBalances()
        public
        view
        returns (address[] memory, uint256[] memory)
    {
        uint256 length = _holders.length();
        address[] memory tHolders = new address[](length);
        uint256[] memory tBalances = new uint256[](length);

        for (uint256 i = 0; i < length; i++) {
            address tHolder = _holders.at(i);
            if (
                !isExcludedFromDistribution(tHolder) &&
                tHolder != owner() &&
                tHolder != address(0)
            ) {
                tHolders[i] = tHolder;
                tBalances[i] = balanceOf(tHolder);
            }
        }

        return (tHolders, tBalances);
    }

    function viewTokenHoldersWithBalances()
        external
        view
        returns (
            address[] memory,
            uint256[] memory,
            uint256
        )
    {
        (
            address[] memory holders,
            uint256[] memory balances
        ) = getAllHoldersWithBalances();
        uint256 totalBalance = 0;

        for (uint256 i = 0; i < holders.length; i++) {
            totalBalance += balances[i];
        }

        return (holders, balances, totalBalance);
    }

    function distributeReleasedTokens() public {
        if (block.timestamp < _releaseStartTime) {
            revert("Token release has not started yet");
        }
        if (block.timestamp < _nextDistributionTime) {
            revert("Distribution interval not reached");
        }
        uint256 totalSupplyWithoutLocked = totalSupply() -
            INITIAL_LOCKED_AMOUNT;
        uint256 tokensToRelease = RELEASE_AMOUNT;
        require(
            tokensToRelease <= totalSupplyWithoutLocked,
            "Insufficient circulating supply"
        );

        (
            address[] memory holders,
            uint256[] memory balances
        ) = getAllHoldersWithBalances();
        uint256 totalBalance = 0;
        for (uint256 i = 0; i < holders.length; i++) {
            if (
                !isExcludedFromDistribution(holders[i]) &&
                holders[i] != owner() &&
                holders[i] != address(0)
            ) {
                totalBalance += balances[i];
            }
        }
        require(totalBalance > 0, "No balance to distribute");

        for (uint256 i = 0; i < holders.length; i++) {
            address holder = holders[i];
            if (
                !isExcludedFromDistribution(holder) &&
                holder != owner() &&
                holder != address(0)
            ) {
                uint256 userProportion = (balances[i] * 1e6) / totalBalance;
                uint256 distributionAmount = (userProportion *
                    tokensToRelease) / 1e6;
                _transfer(address(this), holder, distributionAmount);
            }
        }

        lastDistributionTime = block.timestamp;
        _nextDistributionTime = lastDistributionTime + RELEASE_INTERVAL;
    }

    function isExcludedFromDistribution(address _address)
        public
        view
        returns (bool)
    {
        return _excludedFromDistribution.contains(_address);
    }

    function burnLockedTokens() public onlyOwner {
        _burn(address(this), balanceOf(address(this)));
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual override {
        super._transfer(sender, recipient, amount);
        if (amount > 0) {
            _holders.add(recipient);
        }
    }

    function decimals()
        public
        view
        virtual
        override(ERC20, ERC20Decimals)
        returns (uint8)
    {
        return super.decimals();
    }
}

File 2 of 2 : EnumerableSet.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/structs/EnumerableSet.sol)
// This file was procedurally generated from scripts/generate/templates/EnumerableSet.js.

pragma solidity ^0.8.20;

/**
 * @dev Library for managing
 * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive
 * types.
 *
 * Sets have the following properties:
 *
 * - Elements are added, removed, and checked for existence in constant time
 * (O(1)).
 * - Elements are enumerated in O(n). No guarantees are made on the ordering.
 *
 * ```solidity
 * contract Example {
 *     // Add the library methods
 *     using EnumerableSet for EnumerableSet.AddressSet;
 *
 *     // Declare a set state variable
 *     EnumerableSet.AddressSet private mySet;
 * }
 * ```
 *
 * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)
 * and `uint256` (`UintSet`) are supported.
 *
 * [WARNING]
 * ====
 * Trying to delete such a structure from storage will likely result in data corruption, rendering the structure
 * unusable.
 * See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.
 *
 * In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an
 * array of EnumerableSet.
 * ====
 */
library EnumerableSet {
    // To implement this library for multiple types with as little code
    // repetition as possible, we write it in terms of a generic Set type with
    // bytes32 values.
    // The Set implementation uses private functions, and user-facing
    // implementations (such as AddressSet) are just wrappers around the
    // underlying Set.
    // This means that we can only create new EnumerableSets for types that fit
    // in bytes32.

    struct Set {
        // Storage of set values
        bytes32[] _values;
        // Position is the index of the value in the `values` array plus 1.
        // Position 0 is used to mean a value is not in the set.
        mapping(bytes32 value => uint256) _positions;
    }

    /**
     * @dev Add a value to a set. O(1).
     *
     * Returns true if the value was added to the set, that is if it was not
     * already present.
     */
    function _add(Set storage set, bytes32 value) private returns (bool) {
        if (!_contains(set, value)) {
            set._values.push(value);
            // The value is stored at length-1, but we add 1 to all indexes
            // and use 0 as a sentinel value
            set._positions[value] = set._values.length;
            return true;
        } else {
            return false;
        }
    }

    /**
     * @dev Removes a value from a set. O(1).
     *
     * Returns true if the value was removed from the set, that is if it was
     * present.
     */
    function _remove(Set storage set, bytes32 value) private returns (bool) {
        // We cache the value's position to prevent multiple reads from the same storage slot
        uint256 position = set._positions[value];

        if (position != 0) {
            // Equivalent to contains(set, value)
            // To delete an element from the _values array in O(1), we swap the element to delete with the last one in
            // the array, and then remove the last element (sometimes called as 'swap and pop').
            // This modifies the order of the array, as noted in {at}.

            uint256 valueIndex = position - 1;
            uint256 lastIndex = set._values.length - 1;

            if (valueIndex != lastIndex) {
                bytes32 lastValue = set._values[lastIndex];

                // Move the lastValue to the index where the value to delete is
                set._values[valueIndex] = lastValue;
                // Update the tracked position of the lastValue (that was just moved)
                set._positions[lastValue] = position;
            }

            // Delete the slot where the moved value was stored
            set._values.pop();

            // Delete the tracked position for the deleted slot
            delete set._positions[value];

            return true;
        } else {
            return false;
        }
    }

    /**
     * @dev Returns true if the value is in the set. O(1).
     */
    function _contains(Set storage set, bytes32 value) private view returns (bool) {
        return set._positions[value] != 0;
    }

    /**
     * @dev Returns the number of values on the set. O(1).
     */
    function _length(Set storage set) private view returns (uint256) {
        return set._values.length;
    }

    /**
     * @dev Returns the value stored at position `index` in the set. O(1).
     *
     * Note that there are no guarantees on the ordering of values inside the
     * array, and it may change when more values are added or removed.
     *
     * Requirements:
     *
     * - `index` must be strictly less than {length}.
     */
    function _at(Set storage set, uint256 index) private view returns (bytes32) {
        return set._values[index];
    }

    /**
     * @dev Return the entire set in an array
     *
     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed
     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that
     * this function has an unbounded cost, and using it as part of a state-changing function may render the function
     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.
     */
    function _values(Set storage set) private view returns (bytes32[] memory) {
        return set._values;
    }

    // Bytes32Set

    struct Bytes32Set {
        Set _inner;
    }

    /**
     * @dev Add a value to a set. O(1).
     *
     * Returns true if the value was added to the set, that is if it was not
     * already present.
     */
    function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {
        return _add(set._inner, value);
    }

    /**
     * @dev Removes a value from a set. O(1).
     *
     * Returns true if the value was removed from the set, that is if it was
     * present.
     */
    function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {
        return _remove(set._inner, value);
    }

    /**
     * @dev Returns true if the value is in the set. O(1).
     */
    function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {
        return _contains(set._inner, value);
    }

    /**
     * @dev Returns the number of values in the set. O(1).
     */
    function length(Bytes32Set storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    /**
     * @dev Returns the value stored at position `index` in the set. O(1).
     *
     * Note that there are no guarantees on the ordering of values inside the
     * array, and it may change when more values are added or removed.
     *
     * Requirements:
     *
     * - `index` must be strictly less than {length}.
     */
    function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {
        return _at(set._inner, index);
    }

    /**
     * @dev Return the entire set in an array
     *
     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed
     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that
     * this function has an unbounded cost, and using it as part of a state-changing function may render the function
     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.
     */
    function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {
        bytes32[] memory store = _values(set._inner);
        bytes32[] memory result;

        /// @solidity memory-safe-assembly
        assembly {
            result := store
        }

        return result;
    }

    // AddressSet

    struct AddressSet {
        Set _inner;
    }

    /**
     * @dev Add a value to a set. O(1).
     *
     * Returns true if the value was added to the set, that is if it was not
     * already present.
     */
    function add(AddressSet storage set, address value) internal returns (bool) {
        return _add(set._inner, bytes32(uint256(uint160(value))));
    }

    /**
     * @dev Removes a value from a set. O(1).
     *
     * Returns true if the value was removed from the set, that is if it was
     * present.
     */
    function remove(AddressSet storage set, address value) internal returns (bool) {
        return _remove(set._inner, bytes32(uint256(uint160(value))));
    }

    /**
     * @dev Returns true if the value is in the set. O(1).
     */
    function contains(AddressSet storage set, address value) internal view returns (bool) {
        return _contains(set._inner, bytes32(uint256(uint160(value))));
    }

    /**
     * @dev Returns the number of values in the set. O(1).
     */
    function length(AddressSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    /**
     * @dev Returns the value stored at position `index` in the set. O(1).
     *
     * Note that there are no guarantees on the ordering of values inside the
     * array, and it may change when more values are added or removed.
     *
     * Requirements:
     *
     * - `index` must be strictly less than {length}.
     */
    function at(AddressSet storage set, uint256 index) internal view returns (address) {
        return address(uint160(uint256(_at(set._inner, index))));
    }

    /**
     * @dev Return the entire set in an array
     *
     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed
     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that
     * this function has an unbounded cost, and using it as part of a state-changing function may render the function
     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.
     */
    function values(AddressSet storage set) internal view returns (address[] memory) {
        bytes32[] memory store = _values(set._inner);
        address[] memory result;

        /// @solidity memory-safe-assembly
        assembly {
            result := store
        }

        return result;
    }

    // UintSet

    struct UintSet {
        Set _inner;
    }

    /**
     * @dev Add a value to a set. O(1).
     *
     * Returns true if the value was added to the set, that is if it was not
     * already present.
     */
    function add(UintSet storage set, uint256 value) internal returns (bool) {
        return _add(set._inner, bytes32(value));
    }

    /**
     * @dev Removes a value from a set. O(1).
     *
     * Returns true if the value was removed from the set, that is if it was
     * present.
     */
    function remove(UintSet storage set, uint256 value) internal returns (bool) {
        return _remove(set._inner, bytes32(value));
    }

    /**
     * @dev Returns true if the value is in the set. O(1).
     */
    function contains(UintSet storage set, uint256 value) internal view returns (bool) {
        return _contains(set._inner, bytes32(value));
    }

    /**
     * @dev Returns the number of values in the set. O(1).
     */
    function length(UintSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    /**
     * @dev Returns the value stored at position `index` in the set. O(1).
     *
     * Note that there are no guarantees on the ordering of values inside the
     * array, and it may change when more values are added or removed.
     *
     * Requirements:
     *
     * - `index` must be strictly less than {length}.
     */
    function at(UintSet storage set, uint256 index) internal view returns (uint256) {
        return uint256(_at(set._inner, index));
    }

    /**
     * @dev Return the entire set in an array
     *
     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed
     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that
     * this function has an unbounded cost, and using it as part of a state-changing function may render the function
     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.
     */
    function values(UintSet storage set) internal view returns (uint256[] memory) {
        bytes32[] memory store = _values(set._inner);
        uint256[] memory result;

        /// @solidity memory-safe-assembly
        assembly {
            result := store
        }

        return result;
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"__ARZ_target","type":"address"},{"internalType":"uint8","name":"__ARZ_decimals","type":"uint8"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnLockedTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createdByARZ","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributeReleasedTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"excludeFromDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllHoldersWithBalances","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getIdentifier","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"_address","type":"address"}],"name":"isExcludedFromDistribution","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastDistributionTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"recoverToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewTokenHoldersWithBalances","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052604051613fb7380380613fb783398181016040528101906100259190610876565b6040518060400160405280600381526020017f41525a000000000000000000000000000000000000000000000000000000000081525082826040518060400160405280600681526020017f41727a6f6e6100000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f41525a000000000000000000000000000000000000000000000000000000000081525081600390816100d89190610aee565b5080600490816100e89190610aee565b5050508060ff1660808160ff1681525050505f61010961031760201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600790816101f59190610aee565b508073ffffffffffffffffffffffffffffffffffffffff166108fc3490811502906040515f60405180830381858888f19350505050158015610239573d5f803e3d5ffd5b505050610253306631bced02db000061031e60201b60201c565b662386f26fc10000600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506302c7ea00426102ac9190610bea565b6008819055505f662386f26fc100006631bced02db00006102cd9190610c1d565b90506102ed306102e161031760201b60201c565b8361047060201b60201c565b61030e6102fe61031760201b60201c565b600f6104a460201b90919060201c565b50505050610e9a565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361038c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038390610caa565b60405180910390fd5b61039d5f83836104d760201b60201c565b8060025f8282546103ae9190610bea565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104009190610bea565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104649190610cd7565b60405180910390a35050565b6104818383836104dc60201b60201c565b5f81111561049f5761049d82600f6104a460201b90919060201c565b505b505050565b5f6104cf835f018373ffffffffffffffffffffffffffffffffffffffff165f1b61075560201b60201c565b905092915050565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361054a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054190610d60565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90610dee565b60405180910390fd5b6105c98383836104d760201b60201c565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390610e7c565b60405180910390fd5b81816106589190610c1d565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106e39190610bea565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107479190610cd7565b60405180910390a350505050565b5f61076683836107c260201b60201c565b6107b857825f0182908060018154018082558091505060019003905f5260205f20015f9091909190915055825f0180549050836001015f8481526020019081526020015f2081905550600190506107bc565b5f90505b92915050565b5f80836001015f8481526020019081526020015f20541415905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61080f826107e6565b9050919050565b61081f81610805565b8114610829575f80fd5b50565b5f8151905061083a81610816565b92915050565b5f60ff82169050919050565b61085581610840565b811461085f575f80fd5b50565b5f815190506108708161084c565b92915050565b5f806040838503121561088c5761088b6107e2565b5b5f6108998582860161082c565b92505060206108aa85828601610862565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061092f57607f821691505b602082108103610942576109416108eb565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026109a47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610969565b6109ae8683610969565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6109f26109ed6109e8846109c6565b6109cf565b6109c6565b9050919050565b5f819050919050565b610a0b836109d8565b610a1f610a17826109f9565b848454610975565b825550505050565b5f90565b610a33610a27565b610a3e818484610a02565b505050565b5b81811015610a6157610a565f82610a2b565b600181019050610a44565b5050565b601f821115610aa657610a7781610948565b610a808461095a565b81016020851015610a8f578190505b610aa3610a9b8561095a565b830182610a43565b50505b505050565b5f82821c905092915050565b5f610ac65f1984600802610aab565b1980831691505092915050565b5f610ade8383610ab7565b9150826002028217905092915050565b610af7826108b4565b67ffffffffffffffff811115610b1057610b0f6108be565b5b610b1a8254610918565b610b25828285610a65565b5f60209050601f831160018114610b56575f8415610b44578287015190505b610b4e8582610ad3565b865550610bb5565b601f198416610b6486610948565b5f5b82811015610b8b57848901518255600182019150602085019450602081019050610b66565b86831015610ba85784890151610ba4601f891682610ab7565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610bf4826109c6565b9150610bff836109c6565b9250828201905080821115610c1757610c16610bbd565b5b92915050565b5f610c27826109c6565b9150610c32836109c6565b9250828203905081811115610c4a57610c49610bbd565b5b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610c94601f83610c50565b9150610c9f82610c60565b602082019050919050565b5f6020820190508181035f830152610cc181610c88565b9050919050565b610cd1816109c6565b82525050565b5f602082019050610cea5f830184610cc8565b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f610d4a602583610c50565b9150610d5582610cf0565b604082019050919050565b5f6020820190508181035f830152610d7781610d3e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f610dd8602383610c50565b9150610de382610d7e565b604082019050919050565b5f6020820190508181035f830152610e0581610dcc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f610e66602683610c50565b9150610e7182610e0c565b604082019050919050565b5f6020820190508181035f830152610e9381610e5a565b9050919050565b608051613105610eb25f395f611c5101526131055ff3fe608060405260043610610184575f3560e01c8063715018a6116100d0578063a457c2d711610089578063b29a814011610063578063b29a814014610558578063dd62ed3e14610580578063f2fde38b146105bc578063f47d0572146105e45761018b565b8063a457c2d7146104b6578063a9059cbb146104f2578063aa23e03d1461052e5761018b565b8063715018a6146103cf57806375b17350146103e557806379cc67901461040f5780637be39de5146104375780638da5cb5b1461046257806395d89b411461048c5761018b565b80632728fa7d1161013d5780633950935111610117578063395093511461031957806342966c68146103555780636cef312c1461037d57806370a08231146103935761018b565b80632728fa7d146102af5780632c0b8534146102c5578063313ce567146102ef5761018b565b806301f25a4a1461018f57806306fdde03146101bb578063095ea7b3146101e55780630aee88c41461022157806318160ddd1461024957806323b872dd146102735761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a3610620565b6040516101b2939291906121b7565b60405180910390f35b3480156101c6575f80fd5b506101cf610685565b6040516101dc919061226a565b60405180910390f35b3480156101f0575f80fd5b5061020b600480360381019061020691906122e2565b610715565b604051610218919061233a565b60405180910390f35b34801561022c575f80fd5b5061024760048036038101906102429190612353565b610737565b005b348015610254575f80fd5b5061025d6107cb565b60405161026a919061237e565b60405180910390f35b34801561027e575f80fd5b5061029960048036038101906102949190612397565b6107d4565b6040516102a6919061233a565b60405180910390f35b3480156102ba575f80fd5b506102c36108cf565b005b3480156102d0575f80fd5b506102d961095f565b6040516102e6919061233a565b60405180910390f35b3480156102fa575f80fd5b50610303610967565b6040516103109190612402565b60405180910390f35b348015610324575f80fd5b5061033f600480360381019061033a91906122e2565b610975565b60405161034c919061233a565b60405180910390f35b348015610360575f80fd5b5061037b6004803603810190610376919061241b565b610a1c565b005b348015610388575f80fd5b50610391610a30565b005b34801561039e575f80fd5b506103b960048036038101906103b49190612353565b610dcf565b6040516103c6919061237e565b60405180910390f35b3480156103da575f80fd5b506103e3610e14565b005b3480156103f0575f80fd5b506103f9610f4d565b604051610406919061237e565b60405180910390f35b34801561041a575f80fd5b50610435600480360381019061043091906122e2565b610f53565b005b348015610442575f80fd5b5061044b610fd6565b604051610459929190612446565b60405180910390f35b34801561046d575f80fd5b506104766111b8565b604051610483919061248a565b60405180910390f35b348015610497575f80fd5b506104a06111e0565b6040516104ad919061226a565b60405180910390f35b3480156104c1575f80fd5b506104dc60048036038101906104d791906122e2565b611270565b6040516104e9919061233a565b60405180910390f35b3480156104fd575f80fd5b50610518600480360381019061051391906122e2565b61135f565b604051610525919061233a565b60405180910390f35b348015610539575f80fd5b50610542611381565b60405161054f919061226a565b60405180910390f35b348015610563575f80fd5b5061057e600480360381019061057991906122e2565b611411565b005b34801561058b575f80fd5b506105a660048036038101906105a191906124a3565b611619565b6040516105b3919061237e565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd9190612353565b61169b565b005b3480156105ef575f80fd5b5061060a60048036038101906106059190612353565b611843565b604051610617919061233a565b60405180910390f35b6060805f805f61062e610fd6565b915091505f805b835181101561067357828181518110610651576106506124e1565b5b602002602001015182610664919061253b565b91508080600101915050610635565b50828282955095509550505050909192565b6060600380546106949061259b565b80601f01602080910402602001604051908101604052809291908181526020018280546106c09061259b565b801561070b5780601f106106e25761010080835404028352916020019161070b565b820191905f5260205f20905b8154815290600101906020018083116106ee57829003601f168201915b5050505050905090565b5f8061071f61185f565b905061072c818585611866565b600191505092915050565b61073f61185f565b73ffffffffffffffffffffffffffffffffffffffff1661075d6111b8565b73ffffffffffffffffffffffffffffffffffffffff16146107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa9061263b565b60405180910390fd5b6107c781600d611a2990919063ffffffff16565b5050565b5f600254905090565b5f6107e0848484611a56565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61082761185f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156108a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089d906126c9565b60405180910390fd5b6108c3856108b261185f565b85846108be91906126e7565b611866565b60019150509392505050565b6108d761185f565b73ffffffffffffffffffffffffffffffffffffffff166108f56111b8565b73ffffffffffffffffffffffffffffffffffffffff161461094b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109429061263b565b60405180910390fd5b61095d3061095830610dcf565b611a84565b565b5f6001905090565b5f610970611c4e565b905090565b5f610a1261098161185f565b848460015f61098e61185f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a0d919061253b565b611866565b6001905092915050565b610a2d610a2761185f565b82611a84565b50565b600854421015610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c9061278a565b60405180910390fd5b600a54421015610aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab190612818565b60405180910390fd5b5f662386f26fc10000610acb6107cb565b610ad591906126e7565b90505f6426ce115680905081811115610b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1a90612880565b60405180910390fd5b5f80610b2d610fd6565b915091505f805b8351811015610c4757610b60848281518110610b5357610b526124e1565b5b6020026020010151611843565b158015610bba5750610b706111b8565b73ffffffffffffffffffffffffffffffffffffffff16848281518110610b9957610b986124e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b8015610c0c57505f73ffffffffffffffffffffffffffffffffffffffff16848281518110610beb57610bea6124e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610c3a57828181518110610c2457610c236124e1565b5b602002602001015182610c37919061253b565b91505b8080600101915050610b34565b505f8111610c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c81906128e8565b60405180910390fd5b5f5b8351811015610da9575f848281518110610ca957610ca86124e1565b5b60200260200101519050610cbc81611843565b158015610cfc5750610ccc6111b8565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610d3457505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15610d9b575f83620f4240868581518110610d5257610d516124e1565b5b6020026020010151610d649190612906565b610d6e9190612974565b90505f620f42408883610d819190612906565b610d8b9190612974565b9050610d98308483611a56565b50505b508080600101915050610c8c565b504260098190555062015180600954610dc2919061253b565b600a819055505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e1c61185f565b73ffffffffffffffffffffffffffffffffffffffff16610e3a6111b8565b73ffffffffffffffffffffffffffffffffffffffff1614610e90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e879061263b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60095481565b5f610f6583610f6061185f565b611619565b905081811015610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190612a14565b60405180910390fd5b610fc783610fb661185f565b8484610fc291906126e7565b611866565b610fd18383611a84565b505050565b6060805f610fe4600f611c75565b90505f8167ffffffffffffffff81111561100157611000612a32565b5b60405190808252806020026020018201604052801561102f5781602001602082028036833780820191505090505b5090505f8267ffffffffffffffff81111561104d5761104c612a32565b5b60405190808252806020026020018201604052801561107b5781602001602082028036833780820191505090505b5090505f5b838110156111aa575f61109d82600f611c8890919063ffffffff16565b90506110a881611843565b1580156110e857506110b86111b8565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561112057505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561119c5780848381518110611139576111386124e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061117c81610dcf565b83838151811061118f5761118e6124e1565b5b6020026020010181815250505b508080600101915050611080565b508181945094505050509091565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546111ef9061259b565b80601f016020809104026020016040519081016040528092919081815260200182805461121b9061259b565b80156112665780601f1061123d57610100808354040283529160200191611266565b820191905f5260205f20905b81548152906001019060200180831161124957829003601f168201915b5050505050905090565b5f8060015f61127d61185f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132e90612acf565b60405180910390fd5b61135461134261185f565b85858461134f91906126e7565b611866565b600191505092915050565b5f8061136961185f565b9050611376818585611a56565b600191505092915050565b6060600780546113909061259b565b80601f01602080910402602001604051908101604052809291908181526020018280546113bc9061259b565b80156114075780601f106113de57610100808354040283529160200191611407565b820191905f5260205f20905b8154815290600101906020018083116113ea57829003601f168201915b5050505050905090565b61141961185f565b73ffffffffffffffffffffffffffffffffffffffff166114376111b8565b73ffffffffffffffffffffffffffffffffffffffff161461148d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114849061263b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611586578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114e46111b8565b836040518363ffffffff1660e01b8152600401611502929190612aed565b6020604051808303815f875af115801561151e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115429190612b3e565b611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157890612bd9565b60405180910390fd5b611615565b804710156115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c090612c41565b60405180910390fd5b6115d16111b8565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611613573d5f803e3d5ffd5b505b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6116a361185f565b73ffffffffffffffffffffffffffffffffffffffff166116c16111b8565b73ffffffffffffffffffffffffffffffffffffffff1614611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e9061263b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90612ccf565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f61185882600d611c9f90919063ffffffff16565b9050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90612d5d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193990612deb565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a1c919061237e565b60405180910390a3505050565b5f611a4e835f018373ffffffffffffffffffffffffffffffffffffffff165f1b611ccc565b905092915050565b611a61838383611d33565b5f811115611a7f57611a7d82600f611a2990919063ffffffff16565b505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae990612e79565b60405180910390fd5b611afd825f83611fa6565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7790612f07565b60405180910390fd5b8181611b8c91906126e7565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f828254611bdd91906126e7565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c41919061237e565b60405180910390a3505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f611c81825f01611fab565b9050919050565b5f611c95835f0183611fba565b5f1c905092915050565b5f611cc4835f018373ffffffffffffffffffffffffffffffffffffffff165f1b611fe1565b905092915050565b5f611cd78383611fe1565b611d2957825f0182908060018154018082558091505060019003905f5260205f20015f9091909190915055825f0180549050836001015f8481526020019081526020015f208190555060019050611d2d565b5f90505b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890612f95565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0690613023565b60405180910390fd5b611e1a838383611fa6565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e94906130b1565b60405180910390fd5b8181611ea991906126e7565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611f34919061253b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f98919061237e565b60405180910390a350505050565b505050565b5f815f01805490509050919050565b5f825f018281548110611fd057611fcf6124e1565b5b905f5260205f200154905092915050565b5f80836001015f8481526020019081526020015f20541415905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120538261202a565b9050919050565b61206381612049565b82525050565b5f612074838361205a565b60208301905092915050565b5f602082019050919050565b5f61209682612001565b6120a0818561200b565b93506120ab8361201b565b805f5b838110156120db5781516120c28882612069565b97506120cd83612080565b9250506001810190506120ae565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61212381612111565b82525050565b5f612134838361211a565b60208301905092915050565b5f602082019050919050565b5f612156826120e8565b61216081856120f2565b935061216b83612102565b805f5b8381101561219b5781516121828882612129565b975061218d83612140565b92505060018101905061216e565b5085935050505092915050565b6121b181612111565b82525050565b5f6060820190508181035f8301526121cf818661208c565b905081810360208301526121e3818561214c565b90506121f260408301846121a8565b949350505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61223c826121fa565b6122468185612204565b9350612256818560208601612214565b61225f81612222565b840191505092915050565b5f6020820190508181035f8301526122828184612232565b905092915050565b5f80fd5b61229781612049565b81146122a1575f80fd5b50565b5f813590506122b28161228e565b92915050565b6122c181612111565b81146122cb575f80fd5b50565b5f813590506122dc816122b8565b92915050565b5f80604083850312156122f8576122f761228a565b5b5f612305858286016122a4565b9250506020612316858286016122ce565b9150509250929050565b5f8115159050919050565b61233481612320565b82525050565b5f60208201905061234d5f83018461232b565b92915050565b5f602082840312156123685761236761228a565b5b5f612375848285016122a4565b91505092915050565b5f6020820190506123915f8301846121a8565b92915050565b5f805f606084860312156123ae576123ad61228a565b5b5f6123bb868287016122a4565b93505060206123cc868287016122a4565b92505060406123dd868287016122ce565b9150509250925092565b5f60ff82169050919050565b6123fc816123e7565b82525050565b5f6020820190506124155f8301846123f3565b92915050565b5f602082840312156124305761242f61228a565b5b5f61243d848285016122ce565b91505092915050565b5f6040820190508181035f83015261245e818561208c565b90508181036020830152612472818461214c565b90509392505050565b61248481612049565b82525050565b5f60208201905061249d5f83018461247b565b92915050565b5f80604083850312156124b9576124b861228a565b5b5f6124c6858286016122a4565b92505060206124d7858286016122a4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61254582612111565b915061255083612111565b92508282019050808211156125685761256761250e565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806125b257607f821691505b6020821081036125c5576125c461256e565b5b50919050565b7f45524332304f776e61626c653a2063616c6c6572206973206e6f7420746865205f8201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b5f612625602583612204565b9150612630826125cb565b604082019050919050565b5f6020820190508181035f83015261265281612619565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6126b3602883612204565b91506126be82612659565b604082019050919050565b5f6020820190508181035f8301526126e0816126a7565b9050919050565b5f6126f182612111565b91506126fc83612111565b92508282039050818111156127145761271361250e565b5b92915050565b7f546f6b656e2072656c6561736520686173206e6f7420737461727465642079655f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f612774602183612204565b915061277f8261271a565b604082019050919050565b5f6020820190508181035f8301526127a181612768565b9050919050565b7f446973747269627574696f6e20696e74657276616c206e6f74207265616368655f8201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b5f612802602183612204565b915061280d826127a8565b604082019050919050565b5f6020820190508181035f83015261282f816127f6565b9050919050565b7f496e73756666696369656e742063697263756c6174696e6720737570706c79005f82015250565b5f61286a601f83612204565b915061287582612836565b602082019050919050565b5f6020820190508181035f8301526128978161285e565b9050919050565b7f4e6f2062616c616e636520746f206469737472696275746500000000000000005f82015250565b5f6128d2601883612204565b91506128dd8261289e565b602082019050919050565b5f6020820190508181035f8301526128ff816128c6565b9050919050565b5f61291082612111565b915061291b83612111565b925082820261292981612111565b915082820484148315176129405761293f61250e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61297e82612111565b915061298983612111565b92508261299957612998612947565b5b828204905092915050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f775f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f6129fe602483612204565b9150612a09826129a4565b604082019050919050565b5f6020820190508181035f830152612a2b816129f2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612ab9602583612204565b9150612ac482612a5f565b604082019050919050565b5f6020820190508181035f830152612ae681612aad565b9050919050565b5f604082019050612b005f83018561247b565b612b0d60208301846121a8565b9392505050565b612b1d81612320565b8114612b27575f80fd5b50565b5f81519050612b3881612b14565b92915050565b5f60208284031215612b5357612b5261228a565b5b5f612b6084828501612b2a565b91505092915050565b7f4f776e65722063616e6e6f74207265636f766572207468656972206f776e20455f8201527f52432d323020746f6b656e730000000000000000000000000000000000000000602082015250565b5f612bc3602c83612204565b9150612bce82612b69565b604082019050919050565b5f6020820190508181035f830152612bf081612bb7565b9050919050565b7f496e73756666696369656e7420636f6e74726163742062616c616e63650000005f82015250565b5f612c2b601d83612204565b9150612c3682612bf7565b602082019050919050565b5f6020820190508181035f830152612c5881612c1f565b9050919050565b7f45524332304f776e61626c653a206e6577206f776e657220697320746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f612cb9602b83612204565b9150612cc482612c5f565b604082019050919050565b5f6020820190508181035f830152612ce681612cad565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d47602483612204565b9150612d5282612ced565b604082019050919050565b5f6020820190508181035f830152612d7481612d3b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dd5602283612204565b9150612de082612d7b565b604082019050919050565b5f6020820190508181035f830152612e0281612dc9565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e63602183612204565b9150612e6e82612e09565b604082019050919050565b5f6020820190508181035f830152612e9081612e57565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ef1602283612204565b9150612efc82612e97565b604082019050919050565b5f6020820190508181035f830152612f1e81612ee5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f7f602583612204565b9150612f8a82612f25565b604082019050919050565b5f6020820190508181035f830152612fac81612f73565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61300d602383612204565b915061301882612fb3565b604082019050919050565b5f6020820190508181035f83015261303a81613001565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61309b602683612204565b91506130a682613041565b604082019050919050565b5f6020820190508181035f8301526130c88161308f565b905091905056fea264697066735822122012c11ecfbd3083d2c8a75bb338b4a14a23124e644baabe241810642c3fd97c8c64736f6c63430008190033000000000000000000000000278672e083a919805bcd53cdb72430cbaa2014580000000000000000000000000000000000000000000000000000000000000006

Deployed Bytecode

0x608060405260043610610184575f3560e01c8063715018a6116100d0578063a457c2d711610089578063b29a814011610063578063b29a814014610558578063dd62ed3e14610580578063f2fde38b146105bc578063f47d0572146105e45761018b565b8063a457c2d7146104b6578063a9059cbb146104f2578063aa23e03d1461052e5761018b565b8063715018a6146103cf57806375b17350146103e557806379cc67901461040f5780637be39de5146104375780638da5cb5b1461046257806395d89b411461048c5761018b565b80632728fa7d1161013d5780633950935111610117578063395093511461031957806342966c68146103555780636cef312c1461037d57806370a08231146103935761018b565b80632728fa7d146102af5780632c0b8534146102c5578063313ce567146102ef5761018b565b806301f25a4a1461018f57806306fdde03146101bb578063095ea7b3146101e55780630aee88c41461022157806318160ddd1461024957806323b872dd146102735761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a3610620565b6040516101b2939291906121b7565b60405180910390f35b3480156101c6575f80fd5b506101cf610685565b6040516101dc919061226a565b60405180910390f35b3480156101f0575f80fd5b5061020b600480360381019061020691906122e2565b610715565b604051610218919061233a565b60405180910390f35b34801561022c575f80fd5b5061024760048036038101906102429190612353565b610737565b005b348015610254575f80fd5b5061025d6107cb565b60405161026a919061237e565b60405180910390f35b34801561027e575f80fd5b5061029960048036038101906102949190612397565b6107d4565b6040516102a6919061233a565b60405180910390f35b3480156102ba575f80fd5b506102c36108cf565b005b3480156102d0575f80fd5b506102d961095f565b6040516102e6919061233a565b60405180910390f35b3480156102fa575f80fd5b50610303610967565b6040516103109190612402565b60405180910390f35b348015610324575f80fd5b5061033f600480360381019061033a91906122e2565b610975565b60405161034c919061233a565b60405180910390f35b348015610360575f80fd5b5061037b6004803603810190610376919061241b565b610a1c565b005b348015610388575f80fd5b50610391610a30565b005b34801561039e575f80fd5b506103b960048036038101906103b49190612353565b610dcf565b6040516103c6919061237e565b60405180910390f35b3480156103da575f80fd5b506103e3610e14565b005b3480156103f0575f80fd5b506103f9610f4d565b604051610406919061237e565b60405180910390f35b34801561041a575f80fd5b50610435600480360381019061043091906122e2565b610f53565b005b348015610442575f80fd5b5061044b610fd6565b604051610459929190612446565b60405180910390f35b34801561046d575f80fd5b506104766111b8565b604051610483919061248a565b60405180910390f35b348015610497575f80fd5b506104a06111e0565b6040516104ad919061226a565b60405180910390f35b3480156104c1575f80fd5b506104dc60048036038101906104d791906122e2565b611270565b6040516104e9919061233a565b60405180910390f35b3480156104fd575f80fd5b50610518600480360381019061051391906122e2565b61135f565b604051610525919061233a565b60405180910390f35b348015610539575f80fd5b50610542611381565b60405161054f919061226a565b60405180910390f35b348015610563575f80fd5b5061057e600480360381019061057991906122e2565b611411565b005b34801561058b575f80fd5b506105a660048036038101906105a191906124a3565b611619565b6040516105b3919061237e565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd9190612353565b61169b565b005b3480156105ef575f80fd5b5061060a60048036038101906106059190612353565b611843565b604051610617919061233a565b60405180910390f35b6060805f805f61062e610fd6565b915091505f805b835181101561067357828181518110610651576106506124e1565b5b602002602001015182610664919061253b565b91508080600101915050610635565b50828282955095509550505050909192565b6060600380546106949061259b565b80601f01602080910402602001604051908101604052809291908181526020018280546106c09061259b565b801561070b5780601f106106e25761010080835404028352916020019161070b565b820191905f5260205f20905b8154815290600101906020018083116106ee57829003601f168201915b5050505050905090565b5f8061071f61185f565b905061072c818585611866565b600191505092915050565b61073f61185f565b73ffffffffffffffffffffffffffffffffffffffff1661075d6111b8565b73ffffffffffffffffffffffffffffffffffffffff16146107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa9061263b565b60405180910390fd5b6107c781600d611a2990919063ffffffff16565b5050565b5f600254905090565b5f6107e0848484611a56565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61082761185f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156108a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089d906126c9565b60405180910390fd5b6108c3856108b261185f565b85846108be91906126e7565b611866565b60019150509392505050565b6108d761185f565b73ffffffffffffffffffffffffffffffffffffffff166108f56111b8565b73ffffffffffffffffffffffffffffffffffffffff161461094b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109429061263b565b60405180910390fd5b61095d3061095830610dcf565b611a84565b565b5f6001905090565b5f610970611c4e565b905090565b5f610a1261098161185f565b848460015f61098e61185f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a0d919061253b565b611866565b6001905092915050565b610a2d610a2761185f565b82611a84565b50565b600854421015610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c9061278a565b60405180910390fd5b600a54421015610aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab190612818565b60405180910390fd5b5f662386f26fc10000610acb6107cb565b610ad591906126e7565b90505f6426ce115680905081811115610b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1a90612880565b60405180910390fd5b5f80610b2d610fd6565b915091505f805b8351811015610c4757610b60848281518110610b5357610b526124e1565b5b6020026020010151611843565b158015610bba5750610b706111b8565b73ffffffffffffffffffffffffffffffffffffffff16848281518110610b9957610b986124e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b8015610c0c57505f73ffffffffffffffffffffffffffffffffffffffff16848281518110610beb57610bea6124e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610c3a57828181518110610c2457610c236124e1565b5b602002602001015182610c37919061253b565b91505b8080600101915050610b34565b505f8111610c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c81906128e8565b60405180910390fd5b5f5b8351811015610da9575f848281518110610ca957610ca86124e1565b5b60200260200101519050610cbc81611843565b158015610cfc5750610ccc6111b8565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610d3457505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15610d9b575f83620f4240868581518110610d5257610d516124e1565b5b6020026020010151610d649190612906565b610d6e9190612974565b90505f620f42408883610d819190612906565b610d8b9190612974565b9050610d98308483611a56565b50505b508080600101915050610c8c565b504260098190555062015180600954610dc2919061253b565b600a819055505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e1c61185f565b73ffffffffffffffffffffffffffffffffffffffff16610e3a6111b8565b73ffffffffffffffffffffffffffffffffffffffff1614610e90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e879061263b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60095481565b5f610f6583610f6061185f565b611619565b905081811015610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190612a14565b60405180910390fd5b610fc783610fb661185f565b8484610fc291906126e7565b611866565b610fd18383611a84565b505050565b6060805f610fe4600f611c75565b90505f8167ffffffffffffffff81111561100157611000612a32565b5b60405190808252806020026020018201604052801561102f5781602001602082028036833780820191505090505b5090505f8267ffffffffffffffff81111561104d5761104c612a32565b5b60405190808252806020026020018201604052801561107b5781602001602082028036833780820191505090505b5090505f5b838110156111aa575f61109d82600f611c8890919063ffffffff16565b90506110a881611843565b1580156110e857506110b86111b8565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561112057505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561119c5780848381518110611139576111386124e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061117c81610dcf565b83838151811061118f5761118e6124e1565b5b6020026020010181815250505b508080600101915050611080565b508181945094505050509091565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546111ef9061259b565b80601f016020809104026020016040519081016040528092919081815260200182805461121b9061259b565b80156112665780601f1061123d57610100808354040283529160200191611266565b820191905f5260205f20905b81548152906001019060200180831161124957829003601f168201915b5050505050905090565b5f8060015f61127d61185f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132e90612acf565b60405180910390fd5b61135461134261185f565b85858461134f91906126e7565b611866565b600191505092915050565b5f8061136961185f565b9050611376818585611a56565b600191505092915050565b6060600780546113909061259b565b80601f01602080910402602001604051908101604052809291908181526020018280546113bc9061259b565b80156114075780601f106113de57610100808354040283529160200191611407565b820191905f5260205f20905b8154815290600101906020018083116113ea57829003601f168201915b5050505050905090565b61141961185f565b73ffffffffffffffffffffffffffffffffffffffff166114376111b8565b73ffffffffffffffffffffffffffffffffffffffff161461148d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114849061263b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611586578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114e46111b8565b836040518363ffffffff1660e01b8152600401611502929190612aed565b6020604051808303815f875af115801561151e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115429190612b3e565b611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157890612bd9565b60405180910390fd5b611615565b804710156115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c090612c41565b60405180910390fd5b6115d16111b8565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611613573d5f803e3d5ffd5b505b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6116a361185f565b73ffffffffffffffffffffffffffffffffffffffff166116c16111b8565b73ffffffffffffffffffffffffffffffffffffffff1614611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e9061263b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90612ccf565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f61185882600d611c9f90919063ffffffff16565b9050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90612d5d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193990612deb565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a1c919061237e565b60405180910390a3505050565b5f611a4e835f018373ffffffffffffffffffffffffffffffffffffffff165f1b611ccc565b905092915050565b611a61838383611d33565b5f811115611a7f57611a7d82600f611a2990919063ffffffff16565b505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae990612e79565b60405180910390fd5b611afd825f83611fa6565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7790612f07565b60405180910390fd5b8181611b8c91906126e7565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f828254611bdd91906126e7565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c41919061237e565b60405180910390a3505050565b5f7f0000000000000000000000000000000000000000000000000000000000000006905090565b5f611c81825f01611fab565b9050919050565b5f611c95835f0183611fba565b5f1c905092915050565b5f611cc4835f018373ffffffffffffffffffffffffffffffffffffffff165f1b611fe1565b905092915050565b5f611cd78383611fe1565b611d2957825f0182908060018154018082558091505060019003905f5260205f20015f9091909190915055825f0180549050836001015f8481526020019081526020015f208190555060019050611d2d565b5f90505b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890612f95565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0690613023565b60405180910390fd5b611e1a838383611fa6565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e94906130b1565b60405180910390fd5b8181611ea991906126e7565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611f34919061253b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f98919061237e565b60405180910390a350505050565b505050565b5f815f01805490509050919050565b5f825f018281548110611fd057611fcf6124e1565b5b905f5260205f200154905092915050565b5f80836001015f8481526020019081526020015f20541415905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120538261202a565b9050919050565b61206381612049565b82525050565b5f612074838361205a565b60208301905092915050565b5f602082019050919050565b5f61209682612001565b6120a0818561200b565b93506120ab8361201b565b805f5b838110156120db5781516120c28882612069565b97506120cd83612080565b9250506001810190506120ae565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61212381612111565b82525050565b5f612134838361211a565b60208301905092915050565b5f602082019050919050565b5f612156826120e8565b61216081856120f2565b935061216b83612102565b805f5b8381101561219b5781516121828882612129565b975061218d83612140565b92505060018101905061216e565b5085935050505092915050565b6121b181612111565b82525050565b5f6060820190508181035f8301526121cf818661208c565b905081810360208301526121e3818561214c565b90506121f260408301846121a8565b949350505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61223c826121fa565b6122468185612204565b9350612256818560208601612214565b61225f81612222565b840191505092915050565b5f6020820190508181035f8301526122828184612232565b905092915050565b5f80fd5b61229781612049565b81146122a1575f80fd5b50565b5f813590506122b28161228e565b92915050565b6122c181612111565b81146122cb575f80fd5b50565b5f813590506122dc816122b8565b92915050565b5f80604083850312156122f8576122f761228a565b5b5f612305858286016122a4565b9250506020612316858286016122ce565b9150509250929050565b5f8115159050919050565b61233481612320565b82525050565b5f60208201905061234d5f83018461232b565b92915050565b5f602082840312156123685761236761228a565b5b5f612375848285016122a4565b91505092915050565b5f6020820190506123915f8301846121a8565b92915050565b5f805f606084860312156123ae576123ad61228a565b5b5f6123bb868287016122a4565b93505060206123cc868287016122a4565b92505060406123dd868287016122ce565b9150509250925092565b5f60ff82169050919050565b6123fc816123e7565b82525050565b5f6020820190506124155f8301846123f3565b92915050565b5f602082840312156124305761242f61228a565b5b5f61243d848285016122ce565b91505092915050565b5f6040820190508181035f83015261245e818561208c565b90508181036020830152612472818461214c565b90509392505050565b61248481612049565b82525050565b5f60208201905061249d5f83018461247b565b92915050565b5f80604083850312156124b9576124b861228a565b5b5f6124c6858286016122a4565b92505060206124d7858286016122a4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61254582612111565b915061255083612111565b92508282019050808211156125685761256761250e565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806125b257607f821691505b6020821081036125c5576125c461256e565b5b50919050565b7f45524332304f776e61626c653a2063616c6c6572206973206e6f7420746865205f8201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b5f612625602583612204565b9150612630826125cb565b604082019050919050565b5f6020820190508181035f83015261265281612619565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6126b3602883612204565b91506126be82612659565b604082019050919050565b5f6020820190508181035f8301526126e0816126a7565b9050919050565b5f6126f182612111565b91506126fc83612111565b92508282039050818111156127145761271361250e565b5b92915050565b7f546f6b656e2072656c6561736520686173206e6f7420737461727465642079655f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f612774602183612204565b915061277f8261271a565b604082019050919050565b5f6020820190508181035f8301526127a181612768565b9050919050565b7f446973747269627574696f6e20696e74657276616c206e6f74207265616368655f8201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b5f612802602183612204565b915061280d826127a8565b604082019050919050565b5f6020820190508181035f83015261282f816127f6565b9050919050565b7f496e73756666696369656e742063697263756c6174696e6720737570706c79005f82015250565b5f61286a601f83612204565b915061287582612836565b602082019050919050565b5f6020820190508181035f8301526128978161285e565b9050919050565b7f4e6f2062616c616e636520746f206469737472696275746500000000000000005f82015250565b5f6128d2601883612204565b91506128dd8261289e565b602082019050919050565b5f6020820190508181035f8301526128ff816128c6565b9050919050565b5f61291082612111565b915061291b83612111565b925082820261292981612111565b915082820484148315176129405761293f61250e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61297e82612111565b915061298983612111565b92508261299957612998612947565b5b828204905092915050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f775f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f6129fe602483612204565b9150612a09826129a4565b604082019050919050565b5f6020820190508181035f830152612a2b816129f2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612ab9602583612204565b9150612ac482612a5f565b604082019050919050565b5f6020820190508181035f830152612ae681612aad565b9050919050565b5f604082019050612b005f83018561247b565b612b0d60208301846121a8565b9392505050565b612b1d81612320565b8114612b27575f80fd5b50565b5f81519050612b3881612b14565b92915050565b5f60208284031215612b5357612b5261228a565b5b5f612b6084828501612b2a565b91505092915050565b7f4f776e65722063616e6e6f74207265636f766572207468656972206f776e20455f8201527f52432d323020746f6b656e730000000000000000000000000000000000000000602082015250565b5f612bc3602c83612204565b9150612bce82612b69565b604082019050919050565b5f6020820190508181035f830152612bf081612bb7565b9050919050565b7f496e73756666696369656e7420636f6e74726163742062616c616e63650000005f82015250565b5f612c2b601d83612204565b9150612c3682612bf7565b602082019050919050565b5f6020820190508181035f830152612c5881612c1f565b9050919050565b7f45524332304f776e61626c653a206e6577206f776e657220697320746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f612cb9602b83612204565b9150612cc482612c5f565b604082019050919050565b5f6020820190508181035f830152612ce681612cad565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d47602483612204565b9150612d5282612ced565b604082019050919050565b5f6020820190508181035f830152612d7481612d3b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dd5602283612204565b9150612de082612d7b565b604082019050919050565b5f6020820190508181035f830152612e0281612dc9565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e63602183612204565b9150612e6e82612e09565b604082019050919050565b5f6020820190508181035f830152612e9081612e57565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ef1602283612204565b9150612efc82612e97565b604082019050919050565b5f6020820190508181035f830152612f1e81612ee5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f7f602583612204565b9150612f8a82612f25565b604082019050919050565b5f6020820190508181035f830152612fac81612f73565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61300d602383612204565b915061301882612fb3565b604082019050919050565b5f6020820190508181035f83015261303a81613001565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61309b602683612204565b91506130a682613041565b604082019050919050565b5f6020820190508181035f8301526130c88161308f565b905091905056fea264697066735822122012c11ecfbd3083d2c8a75bb338b4a14a23124e644baabe241810642c3fd97c8c64736f6c63430008190033

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

000000000000000000000000278672e083a919805bcd53cdb72430cbaa2014580000000000000000000000000000000000000000000000000000000000000006

-----Decoded View---------------
Arg [0] : __ARZ_target (address): 0x278672E083A919805bcd53CDB72430CbaA201458
Arg [1] : __ARZ_decimals (uint8): 6

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000278672e083a919805bcd53cdb72430cbaa201458
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000006


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.