ETH Price: $2,446.98 (+9.80%)

Contract

0xb487d0328b109e302b9d817b6f46Cbd738eA08C2
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer211841372024-11-14 6:26:59108 days ago1731565619IN
Tattoo Money: TAT2 Token
0 ETH0.0047799638.41367954
Transfer187856152023-12-14 16:37:59444 days ago1702571879IN
Tattoo Money: TAT2 Token
0 ETH0.0040095137.99116801
Transfer187768632023-12-13 11:09:59445 days ago1702465799IN
Tattoo Money: TAT2 Token
0 ETH0.0026450944.66779989
Transfer178125712023-07-31 11:03:59580 days ago1690801439IN
Tattoo Money: TAT2 Token
0 ETH0.0006454216.31839861
Transfer178123682023-07-31 10:23:11580 days ago1690798991IN
Tattoo Money: TAT2 Token
0 ETH0.0012603121.28725511
Transfer175137652023-06-19 12:22:23622 days ago1687177343IN
Tattoo Money: TAT2 Token
0 ETH0.0005346713.51825722
Transfer175137502023-06-19 12:19:23622 days ago1687177163IN
Tattoo Money: TAT2 Token
0 ETH0.0020789216.06265384
Transfer175077232023-06-18 16:02:47623 days ago1687104167IN
Tattoo Money: TAT2 Token
0 ETH0.0005905614.92692583
Transfer175077102023-06-18 16:00:11623 days ago1687104011IN
Tattoo Money: TAT2 Token
0 ETH0.0024392218.84476546
Transfer167475302023-03-03 10:56:23730 days ago1677840983IN
Tattoo Money: TAT2 Token
0 ETH0.0025096323.33721308
Transfer167474422023-03-03 10:38:11730 days ago1677839891IN
Tattoo Money: TAT2 Token
0 ETH0.0028753322.21604729
Transfer166555302023-02-18 12:30:59743 days ago1676723459IN
Tattoo Money: TAT2 Token
0 ETH0.0055234644.31176945
Transfer165896492023-02-09 7:16:35752 days ago1675926995IN
Tattoo Money: TAT2 Token
0 ETH0.0034185727.42535388
Transfer165857662023-02-08 18:14:59753 days ago1675880099IN
Tattoo Money: TAT2 Token
0 ETH0.0065192652.30057539
Transfer160332602022-11-23 14:22:11830 days ago1669213331IN
Tattoo Money: TAT2 Token
0 ETH0.0007549212.74840776
Transfer160286412022-11-22 22:52:23831 days ago1669157543IN
Tattoo Money: TAT2 Token
0 ETH0.0013680412.96557095
Approve160175122022-11-21 9:32:11832 days ago1669023131IN
Tattoo Money: TAT2 Token
0 ETH0.0006812914.43291434
Transfer158065022022-10-22 22:02:35862 days ago1666476155IN
Tattoo Money: TAT2 Token
0 ETH0.0019174517.83047487
Transfer158064572022-10-22 21:53:35862 days ago1666475615IN
Tattoo Money: TAT2 Token
0 ETH0.0010052816.97625148
Transfer157977372022-10-21 16:41:11863 days ago1666370471IN
Tattoo Money: TAT2 Token
0 ETH0.0025698843.40647336
Transfer153258792022-08-12 8:11:35933 days ago1660291895IN
Tattoo Money: TAT2 Token
0 ETH0.0006018816.11854877
Transfer153258752022-08-12 8:11:01933 days ago1660291861IN
Tattoo Money: TAT2 Token
0 ETH0.0010770418.21761021
Transfer151150802022-07-10 13:13:48966 days ago1657458828IN
Tattoo Money: TAT2 Token
0 ETH0.0009993625.26714802
Transfer151150372022-07-10 13:03:29966 days ago1657458209IN
Tattoo Money: TAT2 Token
0 ETH0.0012077320.39501876
Transfer151149542022-07-10 12:44:22966 days ago1657457062IN
Tattoo Money: TAT2 Token
0 ETH0.00056714.33567334
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TattooMoneyV2

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: TattooMoneyV2.sol
// SPDX-License-Identifier: UNLICENSE

/**
About TattooMoney DeFi & NFT project:

Tattooing is a timeless phenomenon. The first human to be tattooed was Ötzi the Iceman when archaeologists discovered his body dating between 3,370 and 3,100 BC, or more than 5,000 years ago.
We bring tattoos to the cryptographic space...

https://app.TattooMoney.io/ - Our App
https://TattooMoney.io/ - Info about Project
*/

// ------------------------------------------------------------------------------------
// 'TattooMoneyV2' Token Contract
//
// Symbol      : TAT2
// Name        : TattooMoney
// Total Supply: 1,000,000,000 TAT2
// Decimals    : 18
//
// © By 'TattooMoney Co LTD' With 'TAT2' Symbol since 2019.
//
// This is upgrade of token 0x960773318c1aeab5da6605c49266165af56435fa
//
// ------------------------------------------------------------------------------------

import "./owned.sol";
import "./dao.sol";
import "./interfaces.sol";

pragma solidity 0.8.7;

contract TattooMoneyV2 is IERC20, Owned, DAO {
    constructor(address _owner) {
        balances[_owner] = INITIAL_SUPPLY;
        emit Transfer(ZERO, _owner, INITIAL_SUPPLY);
        owner = _owner;
        dao = 0x1e3d5272aa13f0c6d911866DBEF3C5979d9B7b40;
        setfeesfree();
    }

    string public constant name = "TattooMoney";
    string public constant symbol = "TAT2";
    uint8 public constant decimals = 18;

    uint256 private constant INITIAL_SUPPLY = 1_000_000_000 * (10**decimals);

    uint256 private constant maxFee = 10;

    uint256 private _totalSupply = INITIAL_SUPPLY;
    uint256 private FeeTotalCollected;
    uint256 private FeeTotalCollectedBurned;

    address private constant ZERO = address(0);
    mapping(address => uint256) private balances;
    mapping(address => mapping(address => uint256)) public override allowance;
    mapping(address => bool) public isFeeFreeSender;
    mapping(address => bool) public isFeeFreeRecipient;
    mapping(address => bool) public frozenAccount;

    uint256 public totalFee = 2; // Total procent fee deductet from transaction

    uint256 public burnFees = 40; // fee taken and burned
    uint256 public charityFees = 20; // fee taken and added to the charity
    address public charityaddress = 0xA48E5C39c9AF0f3B1A948a63F44d63AB777CB684;
    uint256 public rewardsFees = 20; // fee taken and added to rewards
    address public rewardsaddress = 0x2794F6a795823EDebC41D1799c0829EcD36821d2;
    uint256 public systemFees = 0; // fee taken and added to system
    address public systemaddress = 0x705E0d5120511d823b813b9e24e5E34a58616C3A;
    uint256 public stakingFees = 20; // fee taken and added to staking pool
    address public stakingaddress = 0xEDC46D5dDb981b7Da1A743b2739e69e44c4FBCE7;

    uint256 public minTotalSupply =0; // min amount of tokens total supply

    /**
    * @dev Update charity address
    * @param _charityaddress new charity address
    */
    function updateCharityAddress( address _charityaddress ) external onlyDAO {
        charityaddress = _charityaddress;
        emit updateedCharityAddress( charityaddress );
    }

    /**
    * @dev Update rewards address
    * @param _rewardsaddress new charity address
    */
    function updateRewardsAddress( address _rewardsaddress ) external onlyDAO {
        rewardsaddress = _rewardsaddress;
        emit updateedRewardsAddress( rewardsaddress );
    }

    /**
    * @dev Update rewards address
    * @param _systemaddress new charity address
    */
    function updateSystemAddress( address _systemaddress ) external onlyDAO {
        systemaddress = _systemaddress;
        emit updateedSystemAddress( systemaddress );
    }

    /**
    * @dev Update staking address
    * @param _stakingaddress new charity address
    */
    function updateStakingAddress( address _stakingaddress ) external onlyDAO {
        stakingaddress = _stakingaddress;
        emit updateedStakingAddress( stakingaddress );
    }

    /**
    * @dev Updates fees
    * @param _totalFee total taken fee
    * @param _burnFees burn fees
    * @param _charityFees liquidity pool fees
    * @param _rewardsFees rewards fees
    */
    function updateFees( uint256 _totalFee, uint256 _burnFees, uint256 _charityFees, uint256 _rewardsFees, uint256 _systemFees, uint256 _stakingFees ) external onlyDAO {
       require( _totalFee <= maxFee, "VERIFY FEE: TOO BIG FEE" );
       require(  _verifyFees(_burnFees, _charityFees, _rewardsFees, _systemFees, _stakingFees), "VERIFY FEE: SUM DO NOT MATCH");

        totalFee = _totalFee;
        burnFees = _burnFees;
        charityFees = _charityFees;
        rewardsFees = _rewardsFees;
        systemFees = _systemFees;
        stakingFees = _stakingFees;

        emit FeesUpdated( totalFee, burnFees, charityFees, rewardsFees, systemFees, stakingFees );
    }

    /**
    * @dev verify fees
    * @param _burnFees liquidity pool fees
    * @param _charityFees charity fees
    * @param _rewardsFees rewards fees
    * @param _systemFees system fees
    * @param _stakingFees staking fees
    */
    function _verifyFees( uint256 _burnFees, uint256 _charityFees, uint256 _rewardsFees, uint256 _systemFees, uint256 _stakingFees) private pure returns (bool){
        uint256 _totalFees = _burnFees + _charityFees + _rewardsFees + _systemFees + _stakingFees;
        if(_totalFees == 100){
            return true;
        } else {
            return false;
        }
    }

    /**
    * @dev Emitted when dao is updated
    * @param dao dao address
    */
    event DAOUpdated(
      address dao
    );

    // ERC20 totalSupply
    function totalSupply() external view override returns (uint256) {
        return _totalSupply  - balances[ZERO];
    }

    /// Total fees collected
    function FeesCollected() external view returns (uint256) {
        return FeeTotalCollected;
    }
    /// Total fees collected burned
    function FeesCollectedBurned() external view returns (uint256) {
        return FeeTotalCollectedBurned;
    }


    // ERC20 balanceOf
    function balanceOf(address account)
        external
        view
        override
        returns (uint256)
    {
        return balances[account];
    }

    // ERC20 transfer
    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    // ERC20 approve
    function approve(address spender, uint256 amount)
        external
        override
        returns (bool)
    {
        _approve(msg.sender, spender, amount);
        return true;
    }

    // ERC20 transferFrom
    function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) {
        uint256 amt = allowance[sender][msg.sender];
        require(amt >= amount, "ERC20: transfer amount exceeds allowance");
        // reduce only if not permament allowance (uniswap etc)
        allowance[sender][msg.sender] -= amount;
        _transfer(sender, recipient, amount);
        return true;
    }

    // ERC20 increaseAllowance
    function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
        _approve( msg.sender, spender, allowance[msg.sender][spender] + addedValue );
        return true;
    }

    // ERC20 decreaseAllowance
    function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
        require( allowance[msg.sender][spender] >= subtractedValue, "ERC20: decreased allowance below zero" );
        _approve( msg.sender, spender, allowance[msg.sender][spender] - subtractedValue );
        return true;
    }

    // ERC20 burn
    function burn(uint256 amount) external {
        require(msg.sender != ZERO, "ERC20: burn from the zero address");
        _burn(msg.sender, amount);
    }

    // ERC20 burnFrom
    function burnFrom(address account, uint256 amount) external {
        require(account != ZERO, "ERC20: burn from the zero address");
        require(allowance[account][msg.sender] >= amount, "ERC20: burn amount exceeds allowance");
        allowance[account][msg.sender] -= amount;
        _burn(account, amount);
    }

    function _calcTransferFees( uint256 amount ) private view returns ( uint256 _FeesToTake, uint256 _toburn, uint256 _tocharity, uint256 _toreward, uint256 _tosystem, uint256 _tostaking )
      {
        _FeesToTake = amount * totalFee / 100;
        if((_totalSupply  - balances[ZERO]) > minTotalSupply){
            _toburn = _FeesToTake * burnFees / 100;
        } else {
            _toburn = 0;
        }

        _tocharity = _FeesToTake * charityFees / 100;
        _toreward =  _FeesToTake * rewardsFees / 100;
        _tosystem =  _FeesToTake * systemFees / 100;
        _tostaking =  _FeesToTake * stakingFees / 100;
        _FeesToTake = _toburn + _tocharity + _toreward + _tosystem + _tostaking;
      }

    /**
        Internal approve function, emit Approval event
        @param _owner approving address
        @param spender delegated spender
        @param amount amount of tokens
     */
    function _approve( address _owner, address spender, uint256 amount ) private {
        require(_owner != ZERO, "ERC20: approve from the zero address");
        require(spender != ZERO, "ERC20: approve to the zero address");

        allowance[_owner][spender] = amount;
        emit Approval(_owner, spender, amount);
    }

    /**
        Internal transfer function, calling feeFree if needed
        @param sender sender address
        @param recipient destination address
        @param Amount transfer amount
     */
    function _transfer( address sender, address recipient, uint256 Amount ) private {
        require(sender != ZERO, "ERC20: transfer from the zero address");
        require(recipient != ZERO, "ERC20: transfer to the zero address");
        require(!frozenAccount[sender], "DAO: transfer from this address frozen");
        require(!frozenAccount[recipient], "DAO: transfer to this address frozen");

        if (Amount > 0) {
            if (isFeeFreeSender[sender]){
              _feeFreeTransfer(sender, recipient, Amount);
            } else if(isFeeFreeRecipient[recipient]){
              _feeFreeTransfer(sender, recipient, Amount);
            } else {
                ( uint256 _FeesToTake, uint256 _toburn, uint256 _tocharity, uint256 _toreward, uint256 _tosystem, uint256 _tostaking ) = _calcTransferFees( Amount );

                uint256 _totransfer = Amount - _FeesToTake;
                uint256 _takefromsender = Amount - _toburn;
                FeeTotalCollected += _FeesToTake;
                balances[sender] -= _takefromsender;
                balances[recipient] += _totransfer;
                if(_toburn>0){
                    _burn(sender, _toburn);
                    FeeTotalCollectedBurned += _toburn;
                    emit Transfer(sender, ZERO, _toburn);
                }
                if(_tocharity>0){
                    balances[charityaddress] += _tocharity;
                    emit Transfer(sender, charityaddress, _tocharity);
                }
                if(_toreward>0){
                    balances[rewardsaddress] += _toreward;
                    emit Transfer(sender, rewardsaddress, _toreward);
                }
                if(_tosystem>0){
                    balances[systemaddress] += _tosystem;
                    emit Transfer(sender, systemaddress, _tosystem);
                }
                if(_tostaking>0){
                    balances[stakingaddress] += _tostaking;
                    emit Transfer(sender, stakingaddress, _tostaking);
                }
                emit Transfer(sender, recipient, _totransfer);
            }
        } else emit Transfer(sender, recipient, 0);
    }


    /**
        Function provide fee-free transfer for selected addresses
        @param sender sender address
        @param recipient destination address
        @param Amount transfer amount
     */
    function _feeFreeTransfer( address sender, address recipient, uint256 Amount ) private {
        balances[sender] -= Amount;
        balances[recipient] += Amount;
        emit Transfer(sender, recipient, Amount);
    }


    /// internal burn function
    function _burn(address account, uint256 Amount) private {
        require( balances[account] >= Amount, "ERC20: burn amount exceeds balance" );
        balances[account] -= Amount;
        _totalSupply -= Amount;
    }

    /**
    * @dev Freez Account
    * @param _address adress to feez/unfreez
    * @param _freeze set state
    */
    function freezeAccount(address _address, bool _freeze) public onlyDAO {
      frozenAccount[_address] = _freeze;
    }

    /**
    * @dev Update charity address
    * @param _minTotalSupply new charity address
    */

    function updateminTotalSupply( uint256 _minTotalSupply ) external onlyDAO {
        minTotalSupply = _minTotalSupply;
        emit updatedminTotalSupply( minTotalSupply );
    }

    function setfeesfree() private{
        isFeeFreeSender[owner] = true;
        isFeeFreeSender[dao] = true;
        isFeeFreeSender[charityaddress] = true;
        isFeeFreeSender[rewardsaddress] = true;
        isFeeFreeSender[systemaddress] = true;
        isFeeFreeSender[stakingaddress] = true;
        isFeeFreeRecipient[charityaddress] = true;
    }

    /**
    * @dev Emitted when fees are updated
    * @param totalFee burn fees
    * @param burnFees liquidity pool fees
    * @param charityFees charity fees
    * @param rewardsFees rewards fees
    * @param systemFees system fees
    * @param stakingFees staking fees
    */
    event FeesUpdated( uint256 totalFee, uint256 burnFees, uint256 charityFees, uint256 rewardsFees, uint256 systemFees, uint256 stakingFees );

    /**
    * @dev Emitted when staking is updated
    * @param stakingaddress burn fees
    */
    event updateedStakingAddress( address stakingaddress );

    /**
    * @dev Emitted when system is updated
    * @param systemaddress burn fees
    */
    event updateedSystemAddress( address systemaddress );

    /**
    * @dev Emitted when rewards is updated
    * @param rewardsaddress burn fees
    */
    event updateedRewardsAddress( address rewardsaddress );

    /**
    * @dev Emitted when charity is updated
    * @param charityaddress burn fees
    */
    event updateedCharityAddress( address charityaddress );

    /**
    * @dev Emitted when minTotalSupply is updated
    * @param minTotalSupply burn fees
    */
    event updatedminTotalSupply( uint256 minTotalSupply );

    //
    // Hard Ride
    //

    /**
        Add address that will not pay transfer fees
        @param user address to mark as fee-free
     */
    function addFeeFree(address user) external onlyDAO {
        isFeeFreeSender[user] = true;
    }

    /**
        Remove address form privileged list
        @param user user to remove
     */
    function removeFeeFree(address user) external onlyDAO {
        isFeeFreeSender[user] = false;
    }

    /**
        Add address that will recive tokens without fee
        @param user address to mark as fee-free
     */
    function addFeeFreeRecipient(address user) external onlyDAO {
        isFeeFreeRecipient[user] = true;
    }

    /**
        Remove address form privileged list
        @param user user to remove
     */
    function removeFeeFreeRecipient(address user) external onlyDAO {
        isFeeFreeRecipient[user] = false;
    }

    /**
        Take ETH accidentally send to contract
    */
    function withdrawEth() external onlyOwner {
        payable(owner).transfer(address(this).balance);
    }

    /**
        Take any ERC20 sent to contract
        @param token token address
    */
    function withdrawErc20(address token) external onlyOwner {
        uint256 balance = IERC20(token).balanceOf(address(this));
        require(balance > 0, "Nothing to withdraw");
        // use broken IERC20
        INterfacesNoR(token).transfer(owner, balance);
    }
}

//by Patrick

File 2 of 4: dao.sol
// SPDX-License-Identifier: UNLICENSE

pragma solidity ^0.8.7;

contract DAO {
    address public dao;

    event DAOChanged(address from, address to);

    constructor() {
        dao = msg.sender;
        emit DAOChanged(address(0), msg.sender);
    }

    modifier onlyDAO() {
        require(msg.sender == dao, "Only DAO");
        _;
    }

    function changeDAO(address _dao) external onlyDAO {
        require(_dao != address(0), "DAO to ZERO");
        address olddao = dao;
        dao = _dao;
        emit DAOChanged(olddao, dao);
    }

}

File 3 of 4: interfaces.sol
// SPDX-License-Identifier: UNLICENSE

pragma solidity ^0.8.7;

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

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

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

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

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

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

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

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

// Interfaces for contract interaction
interface INterfaces {
    function balanceOf(address) external returns (uint256);

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

    function transferFrom(
        address,
        address,
        uint256
    ) external returns (bool);

}

// For tokens that do not return true on transfers eg. USDT
interface INterfacesNoR {
    function transfer(address, uint256) external;

    function transferFrom(
        address,
        address,
        uint256
    ) external;
}

File 4 of 4: owned.sol
// SPDX-License-Identifier: UNLICENSE

pragma solidity ^0.8.7;

contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipChanged(address from, address to);

    constructor() {
        owner = msg.sender;
        emit OwnershipChanged(address(0), msg.sender);
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "Only owner");
        _;
    }

    // owner can give super-rights to someone
    function giveOwnership(address user) external onlyOwner {
        require(user != address(0), "User renounceOwnership");
        newOwner = user;
    }

    // new owner need to accept
    function acceptOwnership() external {
        require(msg.sender == newOwner, "Only NewOwner");
        emit OwnershipChanged(owner, newOwner);
        owner = msg.sender;
        delete newOwner;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"DAOChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"dao","type":"address"}],"name":"DAOUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"burnFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"charityFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rewardsFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"systemFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakingFees","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTotalSupply","type":"uint256"}],"name":"updatedminTotalSupply","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"charityaddress","type":"address"}],"name":"updateedCharityAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"rewardsaddress","type":"address"}],"name":"updateedRewardsAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"stakingaddress","type":"address"}],"name":"updateedStakingAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"systemaddress","type":"address"}],"name":"updateedSystemAddress","type":"event"},{"inputs":[],"name":"FeesCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FeesCollectedBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"addFeeFree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"addFeeFreeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_dao","type":"address"}],"name":"changeDAO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"charityFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"charityaddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dao","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"frozenAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"giveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeFreeRecipient","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeFreeSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeFeeFree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeFeeFreeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsaddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingaddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"systemFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"systemaddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_charityaddress","type":"address"}],"name":"updateCharityAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalFee","type":"uint256"},{"internalType":"uint256","name":"_burnFees","type":"uint256"},{"internalType":"uint256","name":"_charityFees","type":"uint256"},{"internalType":"uint256","name":"_rewardsFees","type":"uint256"},{"internalType":"uint256","name":"_systemFees","type":"uint256"},{"internalType":"uint256","name":"_stakingFees","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardsaddress","type":"address"}],"name":"updateRewardsAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_stakingaddress","type":"address"}],"name":"updateStakingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_systemaddress","type":"address"}],"name":"updateSystemAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minTotalSupply","type":"uint256"}],"name":"updateminTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"withdrawErc20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526012600a620000149190620008ca565b633b9aca0062000025919062000a07565b6003556002600b556028600c556014600d5573a48e5c39c9af0f3b1a948a63f44d63ab777cb684600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506014600f55732794f6a795823edebc41d1799c0829ecd36821d2601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060115573705e0d5120511d823b813b9e24e5e34a58616c3a601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460135573edc46d5ddb981b7da1a743b2739e69e44c4fbce7601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601555348015620001ac57600080fd5b5060405162004f4038038062004f408339818101604052810190620001d29190620007d1565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b6000336040516200024692919062000825565b60405180910390a133600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0429168a83556e356cd18563753346b9c9567cbf0fbea148d40aeb84a76cc5b9600033604051620002c392919062000825565b60405180910390a16012600a620002db9190620008ca565b633b9aca00620002ec919062000a07565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200038f9190620008ca565b633b9aca00620003a0919062000a07565b604051620003af919062000852565b60405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731e3d5272aa13f0c6d911866dbef3c5979d9b7b40600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200045c6200046360201b60201c565b5062000b0e565b6001600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b600081519050620007cb8162000af4565b92915050565b600060208284031215620007ea57620007e962000ae2565b5b6000620007fa84828501620007ba565b91505092915050565b6200080e8162000a68565b82525050565b6200081f8162000a9c565b82525050565b60006040820190506200083c600083018562000803565b6200084b602083018462000803565b9392505050565b600060208201905062000869600083018462000814565b92915050565b6000808291508390505b6001851115620008c15780860481111562000899576200089862000ab3565b5b6001851615620008a95780820291505b8081029050620008b98562000ae7565b945062000879565b94509492505050565b6000620008d78262000a9c565b9150620008e48362000aa6565b9250620009137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200091b565b905092915050565b6000826200092d576001905062000a00565b816200093d576000905062000a00565b8160018114620009565760028114620009615762000997565b600191505062000a00565b60ff84111562000976576200097562000ab3565b5b8360020a91508482111562000990576200098f62000ab3565b5b5062000a00565b5060208310610133831016604e8410600b8410161715620009d15782820a905083811115620009cb57620009ca62000ab3565b5b62000a00565b620009e084848460016200086f565b92509050818404811115620009fa57620009f962000ab3565b5b81810290505b9392505050565b600062000a148262000a9c565b915062000a218362000a9c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a5d5762000a5c62000ab3565b5b828202905092915050565b600062000a758262000a7c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b60008160011c9050919050565b62000aff8162000a68565b811462000b0b57600080fd5b50565b6144228062000b1e6000396000f3fe608060405234801561001057600080fd5b50600436106102a05760003560e01c806379db634611610167578063b3762919116100ce578063dadfc82d11610087578063dadfc82d146107f5578063dd62ed3e14610811578063e3501cb114610841578063e3a0a1481461085d578063e724529c14610879578063ef5552cd14610895576102a0565b8063b376291914610731578063b414d4b61461074f578063c7e42b1b1461077f578063d3620f6c1461079b578063d46c83e6146107b9578063d4ee1d90146107d7576102a0565b80639a2e7514116101205780639a2e751414610671578063a0ef91df1461068f578063a457c2d714610699578063a9059cbb146106c9578063ae5a17a7146106f9578063b1b387d814610715576102a0565b806379db6346146105bf5780638da5cb5b146105dd578063926c957f146105fb5780639302764d1461061957806395d89b4114610637578063992c58e414610655576102a0565b8063395093511161020b5780636a04d837116101c45780636a04d837146104fd5780636c5d47461461051b5780636dca7e7b1461054b57806370a082311461056957806379ba50971461059957806379cc6790146105a3576102a0565b8063395093511461043b5780633f33b5ed1461046b57806340f6ac31146104895780634162169f146104a757806342966c68146104c55780635b06a1d1146104e1576102a0565b80631d007f5f1161025d5780631d007f5f1461037b5780631df4ccfc1461039757806323b872dd146103b5578063243d9571146103e55780632c33d12b14610401578063313ce5671461041d576102a0565b806306fdde03146102a5578063095ea7b3146102c35780630a7a6d3e146102f3578063137232531461031157806313b5627e1461034157806318160ddd1461035d575b600080fd5b6102ad6108b1565b6040516102ba91906139a2565b60405180910390f35b6102dd60048036038101906102d891906134bb565b6108ea565b6040516102ea919061396c565b60405180910390f35b6102fb610901565b60405161030891906138ff565b60405180910390f35b61032b600480360381019061032691906133bb565b610927565b604051610338919061396c565b60405180910390f35b61035b600480360381019061035691906133bb565b610947565b005b610365610a32565b6040516103729190613c24565b60405180910390f35b610395600480360381019061039091906133bb565b610a86565b005b61039f610c4d565b6040516103ac9190613c24565b60405180910390f35b6103cf60048036038101906103ca9190613428565b610c53565b6040516103dc919061396c565b60405180910390f35b6103ff60048036038101906103fa91906133bb565b610dc2565b005b61041b600480360381019061041691906133bb565b610ead565b005b610425610fda565b6040516104329190613ca0565b60405180910390f35b610455600480360381019061045091906134bb565b610fdf565b604051610462919061396c565b60405180910390f35b61047361107d565b6040516104809190613c24565b60405180910390f35b610491611087565b60405161049e9190613c24565b60405180910390f35b6104af61108d565b6040516104bc91906138ff565b60405180910390f35b6104df60048036038101906104da91906134fb565b6110b3565b005b6104fb60048036038101906104f691906133bb565b611130565b005b61050561125d565b60405161051291906138ff565b60405180910390f35b610535600480360381019061053091906133bb565b611283565b604051610542919061396c565b60405180910390f35b6105536112a3565b6040516105609190613c24565b60405180910390f35b610583600480360381019061057e91906133bb565b6112a9565b6040516105909190613c24565b60405180910390f35b6105a16112f2565b005b6105bd60048036038101906105b891906134bb565b611464565b005b6105c7611634565b6040516105d49190613c24565b60405180910390f35b6105e561163a565b6040516105f291906138ff565b60405180910390f35b61060361165e565b6040516106109190613c24565b60405180910390f35b610621611668565b60405161062e9190613c24565b60405180910390f35b61063f61166e565b60405161064c91906139a2565b60405180910390f35b61066f600480360381019061066a9190613555565b6116a7565b005b610679611846565b60405161068691906138ff565b60405180910390f35b61069761186c565b005b6106b360048036038101906106ae91906134bb565b611963565b6040516106c0919061396c565b60405180910390f35b6106e360048036038101906106de91906134bb565b611ac0565b6040516106f0919061396c565b60405180910390f35b610713600480360381019061070e91906133bb565b611ad7565b005b61072f600480360381019061072a91906133bb565b611c04565b005b610739611cef565b6040516107469190613c24565b60405180910390f35b610769600480360381019061076491906133bb565b611cf5565b604051610776919061396c565b60405180910390f35b610799600480360381019061079491906133bb565b611d15565b005b6107a3611f04565b6040516107b09190613c24565b60405180910390f35b6107c1611f0a565b6040516107ce91906138ff565b60405180910390f35b6107df611f30565b6040516107ec91906138ff565b60405180910390f35b61080f600480360381019061080a91906133bb565b611f56565b005b61082b600480360381019061082691906133e8565b612041565b6040516108389190613c24565b60405180910390f35b61085b600480360381019061085691906133bb565b612066565b005b610877600480360381019061087291906133bb565b612193565b005b610893600480360381019061088e919061347b565b6122d5565b005b6108af60048036038101906108aa91906134fb565b6123c0565b005b6040518060400160405280600b81526020017f546174746f6f4d6f6e657900000000000000000000000000000000000000000081525081565b60006108f7338484612493565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce90613a84565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600354610a819190613db8565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0d90613a84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7d90613ba4565b60405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0429168a83556e356cd18563753346b9c9567cbf0fbea148d40aeb84a76cc5b981600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610c4192919061391a565b60405180910390a15050565b600b5481565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f90613b04565b60405180910390fd5b82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610da49190613db8565b92505081905550610db685858561265e565b60019150509392505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990613a84565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3490613a84565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9729366ab323cf6115a06456475b209ab0c4352336b2a047e4c01fc9e3f65cff601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610fcf91906138ff565b60405180910390a150565b601281565b6000611073338484600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461106e9190613cd7565b612493565b6001905092915050565b6000600454905090565b600c5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a90613b44565b60405180910390fd5b61112d3382612fbf565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b790613a84565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f4c7be1eca1b767a4c64094fd04d797f2a01ef1c97235f74b660d820f9eb61e92601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161125291906138ff565b60405180910390a150565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b60135481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990613c04565b60405180910390fd5b7f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516113f592919061391a565b60405180910390a1336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb90613b44565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a90613b24565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461161f9190613db8565b925050819055506116308282612fbf565b5050565b60155481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60115481565b6040518060400160405280600481526020017f544154320000000000000000000000000000000000000000000000000000000081525081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172e90613a84565b60405180910390fd5b600a86111561177b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177290613aa4565b60405180910390fd5b61178885858585856130b4565b6117c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117be90613ac4565b60405180910390fd5b85600b8190555084600c8190555083600d8190555082600f8190555081601181905550806013819055507f2e494fbb5d1bda2269c90d7124ba22ca99044b61d2a920ece35a1a1726ff0c37600b54600c54600d54600f5460115460135460405161183696959493929190613c3f565b60405180910390a1505050505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f190613a04565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611960573d6000803e3d6000fd5b50565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1b90613be4565b60405180910390fd5b611ab6338484600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab19190613db8565b612493565b6001905092915050565b6000611acd33848461265e565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5e90613a84565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2909f32e8993a2c6600b009c5dbfa98a5c473a19f8ffb5ec74d526424889da7b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611bf991906138ff565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b90613a84565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f5481565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9a90613a04565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611dde91906138ff565b60206040518083038186803b158015611df657600080fd5b505afa158015611e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2e9190613528565b905060008111611e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6a90613a24565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611ece929190613943565b600060405180830381600087803b158015611ee857600080fd5b505af1158015611efc573d6000803e3d6000fd5b505050505050565b600d5481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdd90613a84565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6007602052816000526040600020602052806000526040600020600091509150505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ed90613a84565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f36673455cdd5315e7174a64a6c145248fb9bcb1a49dae78b003607a20374ceff601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161218891906138ff565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221890613a04565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228890613b84565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235c90613a84565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244790613a84565b60405180910390fd5b806015819055507fe40eb1bbcefbab65467786ab8ac1a53236690eaad8ebdea0c540b13bce5100216015546040516124889190613c24565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612503576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fa90613bc4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256a90613a44565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126519190613c24565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c590613b64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561273e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612735906139c4565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c290613ae4565b60405180910390fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284f90613a64565b60405180910390fd5b6000811115612f5357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156128c3576128be838383613108565b612f4e565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561292557612920838383613108565b612f4d565b6000806000806000806129378761321e565b955095509550955095509550600086886129519190613db8565b9050600086896129619190613db8565b905087600460008282546129759190613cd7565b9250508190555080600660008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129cb9190613db8565b9250508190555081600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a219190613cd7565b925050819055506000871115612abb57612a3b8b88612fbf565b8660056000828254612a4d9190613cd7565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef89604051612ab29190613c24565b60405180910390a35b6000861115612bc4578560066000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b359190613cd7565b92505081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef88604051612bbb9190613c24565b60405180910390a35b6000851115612ccd578460066000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c3e9190613cd7565b92505081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051612cc49190613c24565b60405180910390a35b6000841115612dd6578360066000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d479190613cd7565b92505081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612dcd9190613c24565b60405180910390a35b6000831115612edf578260066000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e509190613cd7565b92505081905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612ed69190613c24565b60405180910390a35b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f3c9190613c24565b60405180910390a350505050505050505b5b612fba565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051612fb19190613987565b60405180910390a35b505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613041576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613038906139e4565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130909190613db8565b9250508190555080600360008282546130a99190613db8565b925050819055505050565b600080828486888a6130c69190613cd7565b6130d09190613cd7565b6130da9190613cd7565b6130e49190613cd7565b905060648114156130f95760019150506130ff565b60009150505b95945050505050565b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131579190613db8565b9250508190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131ad9190613cd7565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132119190613c24565b60405180910390a3505050565b6000806000806000806064600b54886132379190613d5e565b6132419190613d2d565b9550601554600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003546132939190613db8565b11156132ba576064600c54876132a99190613d5e565b6132b39190613d2d565b94506132bf565b600094505b6064600d54876132cf9190613d5e565b6132d99190613d2d565b93506064600f54876132eb9190613d5e565b6132f59190613d2d565b92506064601154876133079190613d5e565b6133119190613d2d565b91506064601354876133239190613d5e565b61332d9190613d2d565b9050808284868861333e9190613cd7565b6133489190613cd7565b6133529190613cd7565b61335c9190613cd7565b955091939550919395565b600081359050613376816143a7565b92915050565b60008135905061338b816143be565b92915050565b6000813590506133a0816143d5565b92915050565b6000815190506133b5816143d5565b92915050565b6000602082840312156133d1576133d0613ee4565b5b60006133df84828501613367565b91505092915050565b600080604083850312156133ff576133fe613ee4565b5b600061340d85828601613367565b925050602061341e85828601613367565b9150509250929050565b60008060006060848603121561344157613440613ee4565b5b600061344f86828701613367565b935050602061346086828701613367565b925050604061347186828701613391565b9150509250925092565b6000806040838503121561349257613491613ee4565b5b60006134a085828601613367565b92505060206134b18582860161337c565b9150509250929050565b600080604083850312156134d2576134d1613ee4565b5b60006134e085828601613367565b92505060206134f185828601613391565b9150509250929050565b60006020828403121561351157613510613ee4565b5b600061351f84828501613391565b91505092915050565b60006020828403121561353e5761353d613ee4565b5b600061354c848285016133a6565b91505092915050565b60008060008060008060c0878903121561357257613571613ee4565b5b600061358089828a01613391565b965050602061359189828a01613391565b95505060406135a289828a01613391565b94505060606135b389828a01613391565b93505060806135c489828a01613391565b92505060a06135d589828a01613391565b9150509295509295509295565b6135eb81613dec565b82525050565b6135fa81613dfe565b82525050565b61360981613e41565b82525050565b600061361a82613cbb565b6136248185613cc6565b9350613634818560208601613e53565b61363d81613ee9565b840191505092915050565b6000613655602383613cc6565b915061366082613efa565b604082019050919050565b6000613678602283613cc6565b915061368382613f49565b604082019050919050565b600061369b600a83613cc6565b91506136a682613f98565b602082019050919050565b60006136be601383613cc6565b91506136c982613fc1565b602082019050919050565b60006136e1602283613cc6565b91506136ec82613fea565b604082019050919050565b6000613704602483613cc6565b915061370f82614039565b604082019050919050565b6000613727600883613cc6565b915061373282614088565b602082019050919050565b600061374a601783613cc6565b9150613755826140b1565b602082019050919050565b600061376d601c83613cc6565b9150613778826140da565b602082019050919050565b6000613790602683613cc6565b915061379b82614103565b604082019050919050565b60006137b3602883613cc6565b91506137be82614152565b604082019050919050565b60006137d6602483613cc6565b91506137e1826141a1565b604082019050919050565b60006137f9602183613cc6565b9150613804826141f0565b604082019050919050565b600061381c602583613cc6565b91506138278261423f565b604082019050919050565b600061383f601683613cc6565b915061384a8261428e565b602082019050919050565b6000613862600b83613cc6565b915061386d826142b7565b602082019050919050565b6000613885602483613cc6565b9150613890826142e0565b604082019050919050565b60006138a8602583613cc6565b91506138b38261432f565b604082019050919050565b60006138cb600d83613cc6565b91506138d68261437e565b602082019050919050565b6138ea81613e2a565b82525050565b6138f981613e34565b82525050565b600060208201905061391460008301846135e2565b92915050565b600060408201905061392f60008301856135e2565b61393c60208301846135e2565b9392505050565b600060408201905061395860008301856135e2565b61396560208301846138e1565b9392505050565b600060208201905061398160008301846135f1565b92915050565b600060208201905061399c6000830184613600565b92915050565b600060208201905081810360008301526139bc818461360f565b905092915050565b600060208201905081810360008301526139dd81613648565b9050919050565b600060208201905081810360008301526139fd8161366b565b9050919050565b60006020820190508181036000830152613a1d8161368e565b9050919050565b60006020820190508181036000830152613a3d816136b1565b9050919050565b60006020820190508181036000830152613a5d816136d4565b9050919050565b60006020820190508181036000830152613a7d816136f7565b9050919050565b60006020820190508181036000830152613a9d8161371a565b9050919050565b60006020820190508181036000830152613abd8161373d565b9050919050565b60006020820190508181036000830152613add81613760565b9050919050565b60006020820190508181036000830152613afd81613783565b9050919050565b60006020820190508181036000830152613b1d816137a6565b9050919050565b60006020820190508181036000830152613b3d816137c9565b9050919050565b60006020820190508181036000830152613b5d816137ec565b9050919050565b60006020820190508181036000830152613b7d8161380f565b9050919050565b60006020820190508181036000830152613b9d81613832565b9050919050565b60006020820190508181036000830152613bbd81613855565b9050919050565b60006020820190508181036000830152613bdd81613878565b9050919050565b60006020820190508181036000830152613bfd8161389b565b9050919050565b60006020820190508181036000830152613c1d816138be565b9050919050565b6000602082019050613c3960008301846138e1565b92915050565b600060c082019050613c5460008301896138e1565b613c6160208301886138e1565b613c6e60408301876138e1565b613c7b60608301866138e1565b613c8860808301856138e1565b613c9560a08301846138e1565b979650505050505050565b6000602082019050613cb560008301846138f0565b92915050565b600081519050919050565b600082825260208201905092915050565b6000613ce282613e2a565b9150613ced83613e2a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d2257613d21613e86565b5b828201905092915050565b6000613d3882613e2a565b9150613d4383613e2a565b925082613d5357613d52613eb5565b5b828204905092915050565b6000613d6982613e2a565b9150613d7483613e2a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dad57613dac613e86565b5b828202905092915050565b6000613dc382613e2a565b9150613dce83613e2a565b925082821015613de157613de0613e86565b5b828203905092915050565b6000613df782613e0a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613e4c82613e2a565b9050919050565b60005b83811015613e71578082015181840152602081019050613e56565b83811115613e80576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c79206f776e657200000000000000000000000000000000000000000000600082015250565b7f4e6f7468696e6720746f20776974686472617700000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f44414f3a207472616e7366657220746f2074686973206164647265737320667260008201527f6f7a656e00000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c792044414f000000000000000000000000000000000000000000000000600082015250565b7f564552494659204645453a20544f4f2042494720464545000000000000000000600082015250565b7f564552494659204645453a2053554d20444f204e4f54204d4154434800000000600082015250565b7f44414f3a207472616e736665722066726f6d207468697320616464726573732060008201527f66726f7a656e0000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f557365722072656e6f756e63654f776e65727368697000000000000000000000600082015250565b7f44414f20746f205a45524f000000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c79204e65774f776e657200000000000000000000000000000000000000600082015250565b6143b081613dec565b81146143bb57600080fd5b50565b6143c781613dfe565b81146143d257600080fd5b50565b6143de81613e2a565b81146143e957600080fd5b5056fea2646970667358221220f6bc011fada36922ad1b9e38c29c92101aaae934d36946e79ef0692c9fb7b53d64736f6c634300080700330000000000000000000000009f8e0bdada7ba929509ce92cbbbed0fb129c8832

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102a05760003560e01c806379db634611610167578063b3762919116100ce578063dadfc82d11610087578063dadfc82d146107f5578063dd62ed3e14610811578063e3501cb114610841578063e3a0a1481461085d578063e724529c14610879578063ef5552cd14610895576102a0565b8063b376291914610731578063b414d4b61461074f578063c7e42b1b1461077f578063d3620f6c1461079b578063d46c83e6146107b9578063d4ee1d90146107d7576102a0565b80639a2e7514116101205780639a2e751414610671578063a0ef91df1461068f578063a457c2d714610699578063a9059cbb146106c9578063ae5a17a7146106f9578063b1b387d814610715576102a0565b806379db6346146105bf5780638da5cb5b146105dd578063926c957f146105fb5780639302764d1461061957806395d89b4114610637578063992c58e414610655576102a0565b8063395093511161020b5780636a04d837116101c45780636a04d837146104fd5780636c5d47461461051b5780636dca7e7b1461054b57806370a082311461056957806379ba50971461059957806379cc6790146105a3576102a0565b8063395093511461043b5780633f33b5ed1461046b57806340f6ac31146104895780634162169f146104a757806342966c68146104c55780635b06a1d1146104e1576102a0565b80631d007f5f1161025d5780631d007f5f1461037b5780631df4ccfc1461039757806323b872dd146103b5578063243d9571146103e55780632c33d12b14610401578063313ce5671461041d576102a0565b806306fdde03146102a5578063095ea7b3146102c35780630a7a6d3e146102f3578063137232531461031157806313b5627e1461034157806318160ddd1461035d575b600080fd5b6102ad6108b1565b6040516102ba91906139a2565b60405180910390f35b6102dd60048036038101906102d891906134bb565b6108ea565b6040516102ea919061396c565b60405180910390f35b6102fb610901565b60405161030891906138ff565b60405180910390f35b61032b600480360381019061032691906133bb565b610927565b604051610338919061396c565b60405180910390f35b61035b600480360381019061035691906133bb565b610947565b005b610365610a32565b6040516103729190613c24565b60405180910390f35b610395600480360381019061039091906133bb565b610a86565b005b61039f610c4d565b6040516103ac9190613c24565b60405180910390f35b6103cf60048036038101906103ca9190613428565b610c53565b6040516103dc919061396c565b60405180910390f35b6103ff60048036038101906103fa91906133bb565b610dc2565b005b61041b600480360381019061041691906133bb565b610ead565b005b610425610fda565b6040516104329190613ca0565b60405180910390f35b610455600480360381019061045091906134bb565b610fdf565b604051610462919061396c565b60405180910390f35b61047361107d565b6040516104809190613c24565b60405180910390f35b610491611087565b60405161049e9190613c24565b60405180910390f35b6104af61108d565b6040516104bc91906138ff565b60405180910390f35b6104df60048036038101906104da91906134fb565b6110b3565b005b6104fb60048036038101906104f691906133bb565b611130565b005b61050561125d565b60405161051291906138ff565b60405180910390f35b610535600480360381019061053091906133bb565b611283565b604051610542919061396c565b60405180910390f35b6105536112a3565b6040516105609190613c24565b60405180910390f35b610583600480360381019061057e91906133bb565b6112a9565b6040516105909190613c24565b60405180910390f35b6105a16112f2565b005b6105bd60048036038101906105b891906134bb565b611464565b005b6105c7611634565b6040516105d49190613c24565b60405180910390f35b6105e561163a565b6040516105f291906138ff565b60405180910390f35b61060361165e565b6040516106109190613c24565b60405180910390f35b610621611668565b60405161062e9190613c24565b60405180910390f35b61063f61166e565b60405161064c91906139a2565b60405180910390f35b61066f600480360381019061066a9190613555565b6116a7565b005b610679611846565b60405161068691906138ff565b60405180910390f35b61069761186c565b005b6106b360048036038101906106ae91906134bb565b611963565b6040516106c0919061396c565b60405180910390f35b6106e360048036038101906106de91906134bb565b611ac0565b6040516106f0919061396c565b60405180910390f35b610713600480360381019061070e91906133bb565b611ad7565b005b61072f600480360381019061072a91906133bb565b611c04565b005b610739611cef565b6040516107469190613c24565b60405180910390f35b610769600480360381019061076491906133bb565b611cf5565b604051610776919061396c565b60405180910390f35b610799600480360381019061079491906133bb565b611d15565b005b6107a3611f04565b6040516107b09190613c24565b60405180910390f35b6107c1611f0a565b6040516107ce91906138ff565b60405180910390f35b6107df611f30565b6040516107ec91906138ff565b60405180910390f35b61080f600480360381019061080a91906133bb565b611f56565b005b61082b600480360381019061082691906133e8565b612041565b6040516108389190613c24565b60405180910390f35b61085b600480360381019061085691906133bb565b612066565b005b610877600480360381019061087291906133bb565b612193565b005b610893600480360381019061088e919061347b565b6122d5565b005b6108af60048036038101906108aa91906134fb565b6123c0565b005b6040518060400160405280600b81526020017f546174746f6f4d6f6e657900000000000000000000000000000000000000000081525081565b60006108f7338484612493565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce90613a84565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600354610a819190613db8565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0d90613a84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7d90613ba4565b60405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0429168a83556e356cd18563753346b9c9567cbf0fbea148d40aeb84a76cc5b981600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610c4192919061391a565b60405180910390a15050565b600b5481565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f90613b04565b60405180910390fd5b82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610da49190613db8565b92505081905550610db685858561265e565b60019150509392505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990613a84565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3490613a84565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9729366ab323cf6115a06456475b209ab0c4352336b2a047e4c01fc9e3f65cff601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610fcf91906138ff565b60405180910390a150565b601281565b6000611073338484600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461106e9190613cd7565b612493565b6001905092915050565b6000600454905090565b600c5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a90613b44565b60405180910390fd5b61112d3382612fbf565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b790613a84565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f4c7be1eca1b767a4c64094fd04d797f2a01ef1c97235f74b660d820f9eb61e92601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161125291906138ff565b60405180910390a150565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b60135481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990613c04565b60405180910390fd5b7f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516113f592919061391a565b60405180910390a1336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb90613b44565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a90613b24565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461161f9190613db8565b925050819055506116308282612fbf565b5050565b60155481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60115481565b6040518060400160405280600481526020017f544154320000000000000000000000000000000000000000000000000000000081525081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172e90613a84565b60405180910390fd5b600a86111561177b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177290613aa4565b60405180910390fd5b61178885858585856130b4565b6117c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117be90613ac4565b60405180910390fd5b85600b8190555084600c8190555083600d8190555082600f8190555081601181905550806013819055507f2e494fbb5d1bda2269c90d7124ba22ca99044b61d2a920ece35a1a1726ff0c37600b54600c54600d54600f5460115460135460405161183696959493929190613c3f565b60405180910390a1505050505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f190613a04565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611960573d6000803e3d6000fd5b50565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1b90613be4565b60405180910390fd5b611ab6338484600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab19190613db8565b612493565b6001905092915050565b6000611acd33848461265e565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5e90613a84565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2909f32e8993a2c6600b009c5dbfa98a5c473a19f8ffb5ec74d526424889da7b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611bf991906138ff565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b90613a84565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f5481565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9a90613a04565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611dde91906138ff565b60206040518083038186803b158015611df657600080fd5b505afa158015611e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2e9190613528565b905060008111611e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6a90613a24565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611ece929190613943565b600060405180830381600087803b158015611ee857600080fd5b505af1158015611efc573d6000803e3d6000fd5b505050505050565b600d5481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdd90613a84565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6007602052816000526040600020602052806000526040600020600091509150505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ed90613a84565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f36673455cdd5315e7174a64a6c145248fb9bcb1a49dae78b003607a20374ceff601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161218891906138ff565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221890613a04565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228890613b84565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235c90613a84565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244790613a84565b60405180910390fd5b806015819055507fe40eb1bbcefbab65467786ab8ac1a53236690eaad8ebdea0c540b13bce5100216015546040516124889190613c24565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612503576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fa90613bc4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256a90613a44565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126519190613c24565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c590613b64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561273e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612735906139c4565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c290613ae4565b60405180910390fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284f90613a64565b60405180910390fd5b6000811115612f5357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156128c3576128be838383613108565b612f4e565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561292557612920838383613108565b612f4d565b6000806000806000806129378761321e565b955095509550955095509550600086886129519190613db8565b9050600086896129619190613db8565b905087600460008282546129759190613cd7565b9250508190555080600660008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129cb9190613db8565b9250508190555081600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a219190613cd7565b925050819055506000871115612abb57612a3b8b88612fbf565b8660056000828254612a4d9190613cd7565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef89604051612ab29190613c24565b60405180910390a35b6000861115612bc4578560066000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b359190613cd7565b92505081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef88604051612bbb9190613c24565b60405180910390a35b6000851115612ccd578460066000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c3e9190613cd7565b92505081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051612cc49190613c24565b60405180910390a35b6000841115612dd6578360066000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d479190613cd7565b92505081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612dcd9190613c24565b60405180910390a35b6000831115612edf578260066000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e509190613cd7565b92505081905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612ed69190613c24565b60405180910390a35b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f3c9190613c24565b60405180910390a350505050505050505b5b612fba565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051612fb19190613987565b60405180910390a35b505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613041576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613038906139e4565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130909190613db8565b9250508190555080600360008282546130a99190613db8565b925050819055505050565b600080828486888a6130c69190613cd7565b6130d09190613cd7565b6130da9190613cd7565b6130e49190613cd7565b905060648114156130f95760019150506130ff565b60009150505b95945050505050565b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131579190613db8565b9250508190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131ad9190613cd7565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132119190613c24565b60405180910390a3505050565b6000806000806000806064600b54886132379190613d5e565b6132419190613d2d565b9550601554600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003546132939190613db8565b11156132ba576064600c54876132a99190613d5e565b6132b39190613d2d565b94506132bf565b600094505b6064600d54876132cf9190613d5e565b6132d99190613d2d565b93506064600f54876132eb9190613d5e565b6132f59190613d2d565b92506064601154876133079190613d5e565b6133119190613d2d565b91506064601354876133239190613d5e565b61332d9190613d2d565b9050808284868861333e9190613cd7565b6133489190613cd7565b6133529190613cd7565b61335c9190613cd7565b955091939550919395565b600081359050613376816143a7565b92915050565b60008135905061338b816143be565b92915050565b6000813590506133a0816143d5565b92915050565b6000815190506133b5816143d5565b92915050565b6000602082840312156133d1576133d0613ee4565b5b60006133df84828501613367565b91505092915050565b600080604083850312156133ff576133fe613ee4565b5b600061340d85828601613367565b925050602061341e85828601613367565b9150509250929050565b60008060006060848603121561344157613440613ee4565b5b600061344f86828701613367565b935050602061346086828701613367565b925050604061347186828701613391565b9150509250925092565b6000806040838503121561349257613491613ee4565b5b60006134a085828601613367565b92505060206134b18582860161337c565b9150509250929050565b600080604083850312156134d2576134d1613ee4565b5b60006134e085828601613367565b92505060206134f185828601613391565b9150509250929050565b60006020828403121561351157613510613ee4565b5b600061351f84828501613391565b91505092915050565b60006020828403121561353e5761353d613ee4565b5b600061354c848285016133a6565b91505092915050565b60008060008060008060c0878903121561357257613571613ee4565b5b600061358089828a01613391565b965050602061359189828a01613391565b95505060406135a289828a01613391565b94505060606135b389828a01613391565b93505060806135c489828a01613391565b92505060a06135d589828a01613391565b9150509295509295509295565b6135eb81613dec565b82525050565b6135fa81613dfe565b82525050565b61360981613e41565b82525050565b600061361a82613cbb565b6136248185613cc6565b9350613634818560208601613e53565b61363d81613ee9565b840191505092915050565b6000613655602383613cc6565b915061366082613efa565b604082019050919050565b6000613678602283613cc6565b915061368382613f49565b604082019050919050565b600061369b600a83613cc6565b91506136a682613f98565b602082019050919050565b60006136be601383613cc6565b91506136c982613fc1565b602082019050919050565b60006136e1602283613cc6565b91506136ec82613fea565b604082019050919050565b6000613704602483613cc6565b915061370f82614039565b604082019050919050565b6000613727600883613cc6565b915061373282614088565b602082019050919050565b600061374a601783613cc6565b9150613755826140b1565b602082019050919050565b600061376d601c83613cc6565b9150613778826140da565b602082019050919050565b6000613790602683613cc6565b915061379b82614103565b604082019050919050565b60006137b3602883613cc6565b91506137be82614152565b604082019050919050565b60006137d6602483613cc6565b91506137e1826141a1565b604082019050919050565b60006137f9602183613cc6565b9150613804826141f0565b604082019050919050565b600061381c602583613cc6565b91506138278261423f565b604082019050919050565b600061383f601683613cc6565b915061384a8261428e565b602082019050919050565b6000613862600b83613cc6565b915061386d826142b7565b602082019050919050565b6000613885602483613cc6565b9150613890826142e0565b604082019050919050565b60006138a8602583613cc6565b91506138b38261432f565b604082019050919050565b60006138cb600d83613cc6565b91506138d68261437e565b602082019050919050565b6138ea81613e2a565b82525050565b6138f981613e34565b82525050565b600060208201905061391460008301846135e2565b92915050565b600060408201905061392f60008301856135e2565b61393c60208301846135e2565b9392505050565b600060408201905061395860008301856135e2565b61396560208301846138e1565b9392505050565b600060208201905061398160008301846135f1565b92915050565b600060208201905061399c6000830184613600565b92915050565b600060208201905081810360008301526139bc818461360f565b905092915050565b600060208201905081810360008301526139dd81613648565b9050919050565b600060208201905081810360008301526139fd8161366b565b9050919050565b60006020820190508181036000830152613a1d8161368e565b9050919050565b60006020820190508181036000830152613a3d816136b1565b9050919050565b60006020820190508181036000830152613a5d816136d4565b9050919050565b60006020820190508181036000830152613a7d816136f7565b9050919050565b60006020820190508181036000830152613a9d8161371a565b9050919050565b60006020820190508181036000830152613abd8161373d565b9050919050565b60006020820190508181036000830152613add81613760565b9050919050565b60006020820190508181036000830152613afd81613783565b9050919050565b60006020820190508181036000830152613b1d816137a6565b9050919050565b60006020820190508181036000830152613b3d816137c9565b9050919050565b60006020820190508181036000830152613b5d816137ec565b9050919050565b60006020820190508181036000830152613b7d8161380f565b9050919050565b60006020820190508181036000830152613b9d81613832565b9050919050565b60006020820190508181036000830152613bbd81613855565b9050919050565b60006020820190508181036000830152613bdd81613878565b9050919050565b60006020820190508181036000830152613bfd8161389b565b9050919050565b60006020820190508181036000830152613c1d816138be565b9050919050565b6000602082019050613c3960008301846138e1565b92915050565b600060c082019050613c5460008301896138e1565b613c6160208301886138e1565b613c6e60408301876138e1565b613c7b60608301866138e1565b613c8860808301856138e1565b613c9560a08301846138e1565b979650505050505050565b6000602082019050613cb560008301846138f0565b92915050565b600081519050919050565b600082825260208201905092915050565b6000613ce282613e2a565b9150613ced83613e2a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d2257613d21613e86565b5b828201905092915050565b6000613d3882613e2a565b9150613d4383613e2a565b925082613d5357613d52613eb5565b5b828204905092915050565b6000613d6982613e2a565b9150613d7483613e2a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dad57613dac613e86565b5b828202905092915050565b6000613dc382613e2a565b9150613dce83613e2a565b925082821015613de157613de0613e86565b5b828203905092915050565b6000613df782613e0a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613e4c82613e2a565b9050919050565b60005b83811015613e71578082015181840152602081019050613e56565b83811115613e80576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c79206f776e657200000000000000000000000000000000000000000000600082015250565b7f4e6f7468696e6720746f20776974686472617700000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f44414f3a207472616e7366657220746f2074686973206164647265737320667260008201527f6f7a656e00000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c792044414f000000000000000000000000000000000000000000000000600082015250565b7f564552494659204645453a20544f4f2042494720464545000000000000000000600082015250565b7f564552494659204645453a2053554d20444f204e4f54204d4154434800000000600082015250565b7f44414f3a207472616e736665722066726f6d207468697320616464726573732060008201527f66726f7a656e0000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f557365722072656e6f756e63654f776e65727368697000000000000000000000600082015250565b7f44414f20746f205a45524f000000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c79204e65774f776e657200000000000000000000000000000000000000600082015250565b6143b081613dec565b81146143bb57600080fd5b50565b6143c781613dfe565b81146143d257600080fd5b50565b6143de81613e2a565b81146143e957600080fd5b5056fea2646970667358221220f6bc011fada36922ad1b9e38c29c92101aaae934d36946e79ef0692c9fb7b53d64736f6c63430008070033

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

0000000000000000000000009f8e0bdada7ba929509ce92cbbbed0fb129c8832

-----Decoded View---------------
Arg [0] : _owner (address): 0x9f8E0bDAdA7bA929509CE92cbbbEd0Fb129c8832

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009f8e0bdada7ba929509ce92cbbbed0fb129c8832


Deployed Bytecode Sourcemap

966:15032:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1259:43;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6407:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2658:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1829:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14913:100;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5574:118;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;350:197:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1990:27:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6625:424;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15348:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3195:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1352:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7086:202;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5727:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2071:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;83:18:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7672:155:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3752:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2204:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1882:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2582:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6006:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;638:202:3;;;:::i;:::-;;7855:319:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2739:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;85:20:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5866:110:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2435:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1308:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4132:669;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2503:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15528:105;;;:::i;:::-;;7325:323;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6188:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2913:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14716:96;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2284:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1938:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15729:267;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2129:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2355:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;111:23:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15139:108:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1750:73;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3476:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;449:151:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12589:118:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12812:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1259:43;;;;;;;;;;;;;;;;;;;:::o;6407:186::-;6508:4;6528:37;6537:10;6549:7;6558:6;6528:8;:37::i;:::-;6582:4;6575:11;;6407:186;;;;:::o;2658:74::-;;;;;;;;;;;;;:::o;1829:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;14913:100::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15001:5:0::1;14977:15;:21;14993:4;14977:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14913:100:::0;:::o;5574:118::-;5629:7;5671:8;:14;1692:1;5671:14;;;;;;;;;;;;;;;;5655:12;;:30;;;;:::i;:::-;5648:37;;5574:118;:::o;350:197:1:-;310:3;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;434:1:::1;418:18;;:4;:18;;;;410:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;462:14;479:3;;;;;;;;;;;462:20;;498:4;492:3;;:10;;;;;;;;;;;;;;;;;;517:23;528:6;536:3;;;;;;;;;;;517:23;;;;;;;:::i;:::-;;;;;;;;400:147;350:197:::0;:::o;1990:27:0:-;;;;:::o;6625:424::-;6727:4;6743:11;6757:9;:17;6767:6;6757:17;;;;;;;;;;;;;;;:29;6775:10;6757:29;;;;;;;;;;;;;;;;6743:43;;6811:6;6804:3;:13;;6796:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6969:6;6936:9;:17;6946:6;6936:17;;;;;;;;;;;;;;;:29;6954:10;6936:29;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;6985:36;6995:6;7003:9;7014:6;6985:9;:36::i;:::-;7038:4;7031:11;;;6625:424;;;;;:::o;15348:112::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15448:5:0::1;15421:18;:24;15440:4;15421:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15348:112:::0;:::o;3195:178::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3296:15:0::1;3279:14;;:32;;;;;;;;;;;;;;;;;;3326:40;3350:14;;;;;;;;;;;3326:40;;;;;;:::i;:::-;;;;;;;;3195:178:::0;:::o;1352:35::-;1385:2;1352:35;:::o;7086:202::-;7168:4;7184:76;7194:10;7206:7;7248:10;7215:9;:21;7225:10;7215:21;;;;;;;;;;;;;;;:30;7237:7;7215:30;;;;;;;;;;;;;;;;:43;;;;:::i;:::-;7184:8;:76::i;:::-;7277:4;7270:11;;7086:202;;;;:::o;5727:98::-;5775:7;5801:17;;5794:24;;5727:98;:::o;2071:28::-;;;;:::o;83:18:1:-;;;;;;;;;;;;;:::o;7672:155:0:-;1692:1;7729:18;;:10;:18;;;;7721:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7795:25;7801:10;7813:6;7795:5;:25::i;:::-;7672:155;:::o;3752:178::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3853:15:0::1;3836:14;;:32;;;;;;;;;;;;;;;;;;3883:40;3907:14;;;;;;;;;;;3883:40;;;;;;:::i;:::-;;;;;;;;3752:178:::0;:::o;2204:74::-;;;;;;;;;;;;;:::o;1882:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;2582:31::-;;;;:::o;6006:154::-;6106:7;6136:8;:17;6145:7;6136:17;;;;;;;;;;;;;;;;6129:24;;6006:154;;;:::o;638:202:3:-;706:8;;;;;;;;;;;692:22;;:10;:22;;;684:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;747:33;764:5;;;;;;;;;;771:8;;;;;;;;;;;747:33;;;;;;;:::i;:::-;;;;;;;;798:10;790:5;;:18;;;;;;;;;;;;;;;;;;825:8;;818:15;;;;;;;;;;;638:202::o;7855:319:0:-;1692:1;7933:15;;:7;:15;;;;7925:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;8038:6;8004:9;:18;8014:7;8004:18;;;;;;;;;;;;;;;:30;8023:10;8004:30;;;;;;;;;;;;;;;;:40;;7996:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;8129:6;8095:9;:18;8105:7;8095:18;;;;;;;;;;;;;;;:30;8114:10;8095:30;;;;;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;;;;;;;8145:22;8151:7;8160:6;8145:5;:22::i;:::-;7855:319;;:::o;2739:32::-;;;;:::o;85:20:3:-;;;;;;;;;;;;:::o;5866:110:0:-;5920:7;5946:23;;5939:30;;5866:110;:::o;2435:29::-;;;;:::o;1308:38::-;;;;;;;;;;;;;;;;;;;:::o;4132:669::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1507:2:0::1;4314:9;:19;;4305:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4381:77;4393:9;4404:12;4418;4432:11;4445:12;4381:11;:77::i;:::-;4371:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;4513:9;4502:8;:20;;;;4543:9;4532:8;:20;;;;4576:12;4562:11;:26;;;;4612:12;4598:11;:26;;;;4647:11;4634:10;:24;;;;4682:12;4668:11;:26;;;;4710:84;4723:8;;4733;;4743:11;;4756;;4769:10;;4781:11;;4710:84;;;;;;;;;;;:::i;:::-;;;;;;;;4132:669:::0;;;;;;:::o;2503:73::-;;;;;;;;;;;;;:::o;15528:105::-;359:5:3;;;;;;;;;;345:19;;:10;:19;;;337:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;15588:5:0::1;::::0;::::1;;;;;;;;15580:23;;:46;15604:21;15580:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15528:105::o:0;7325:323::-;7412:4;7471:15;7437:9;:21;7447:10;7437:21;;;;;;;;;;;;;;;:30;7459:7;7437:30;;;;;;;;;;;;;;;;:49;;7428:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;7539:81;7549:10;7561:7;7603:15;7570:9;:21;7580:10;7570:21;;;;;;;;;;;;;;;:30;7592:7;7570:30;;;;;;;;;;;;;;;;:48;;;;:::i;:::-;7539:8;:81::i;:::-;7637:4;7630:11;;7325:323;;;;:::o;6188:192::-;6292:4;6312:40;6322:10;6334:9;6345:6;6312:9;:40::i;:::-;6369:4;6362:11;;6188:192;;;;:::o;2913:178::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3014:15:0::1;2997:14;;:32;;;;;;;;;;;;;;;;;;3044:40;3068:14;;;;;;;;;;;3044:40;;;;;;:::i;:::-;;;;;;;;2913:178:::0;:::o;14716:96::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14801:4:0::1;14777:15;:21;14793:4;14777:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;14716:96:::0;:::o;2284:31::-;;;;:::o;1938:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;15729:267::-;359:5:3;;;;;;;;;;345:19;;:10;:19;;;337:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;15796:15:0::1;15821:5;15814:23;;;15846:4;15814:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15796:56;;15880:1;15870:7;:11;15862:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;15958:5;15944:29;;;15974:5;::::0;::::1;;;;;;;;15981:7;15944:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15786:210;15729:267:::0;:::o;2129:31::-;;;;:::o;2355:74::-;;;;;;;;;;;;;:::o;111:23:3:-;;;;;;;;;;;;;:::o;15139:108:0:-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15236:4:0::1;15209:18;:24;15228:4;15209:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;15139:108:::0;:::o;1750:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3476:172::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3574:14:0::1;3558:13;;:30;;;;;;;;;;;;;;;;;;3603:38;3626:13;;;;;;;;;;;3603:38;;;;;;:::i;:::-;;;;;;;;3476:172:::0;:::o;449:151:3:-;359:5;;;;;;;;;;345:19;;:10;:19;;;337:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;539:1:::1;523:18;;:4;:18;;;;515:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;589:4;578:8;;:15;;;;;;;;;;;;;;;;;;449:151:::0;:::o;12589:118:0:-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12693:7:0::1;12667:13;:23;12681:8;12667:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;12589:118:::0;;:::o;12812:177::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12913:15:0::1;12896:14;:32;;;;12943:39;12966:14;;12943:39;;;;;;:::i;:::-;;;;;;;;12812:177:::0;:::o;9089:323::-;1692:1;9184:14;;:6;:14;;;;9176:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1692:1;9257:15;;:7;:15;;;;9249:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9351:6;9322:9;:17;9332:6;9322:17;;;;;;;;;;;;;;;:26;9340:7;9322:26;;;;;;;;;;;;;;;:35;;;;9389:7;9372:33;;9381:6;9372:33;;;9398:6;9372:33;;;;;;:::i;:::-;;;;;;;;9089:323;;;:::o;9616:2167::-;1692:1;9714:14;;:6;:14;;;;9706:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;1692:1;9788:17;;:9;:17;;;;9780:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;9864:13;:21;9878:6;9864:21;;;;;;;;;;;;;;;;;;;;;;;;;9863:22;9855:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9947:13;:24;9961:9;9947:24;;;;;;;;;;;;;;;;;;;;;;;;;9946:25;9938:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10036:1;10027:6;:10;10023:1753;;;10057:15;:23;10073:6;10057:23;;;;;;;;;;;;;;;;;;;;;;;;;10053:1672;;;10097:43;10114:6;10122:9;10133:6;10097:16;:43::i;:::-;10053:1672;;;10164:18;:29;10183:9;10164:29;;;;;;;;;;;;;;;;;;;;;;;;;10161:1564;;;10210:43;10227:6;10235:9;10246:6;10210:16;:43::i;:::-;10161:1564;;;10294:19;10315:15;10332:18;10352:17;10371;10390:18;10413:27;10432:6;10413:17;:27::i;:::-;10292:148;;;;;;;;;;;;10459:19;10490:11;10481:6;:20;;;;:::i;:::-;10459:42;;10519:23;10554:7;10545:6;:16;;;;:::i;:::-;10519:42;;10600:11;10579:17;;:32;;;;;;;:::i;:::-;;;;;;;;10649:15;10629:8;:16;10638:6;10629:16;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;10705:11;10682:8;:19;10691:9;10682:19;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;10745:1;10737:7;:9;10734:190;;;10769:22;10775:6;10783:7;10769:5;:22::i;:::-;10840:7;10813:23;;:34;;;;;;;:::i;:::-;;;;;;;;1692:1;10874:31;;10883:6;10874:31;;;10897:7;10874:31;;;;;;:::i;:::-;;;;;;;;10734:190;10955:1;10944:10;:12;10941:166;;;11007:10;10979:8;:24;10988:14;;;;;;;;;;;10979:24;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;11061:14;;;;;;;;;;;11044:44;;11053:6;11044:44;;;11077:10;11044:44;;;;;;:::i;:::-;;;;;;;;10941:166;11137:1;11127:9;:11;11124:163;;;11189:9;11161:8;:24;11170:14;;;;;;;;;;;11161:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;11242:14;;;;;;;;;;;11225:43;;11234:6;11225:43;;;11258:9;11225:43;;;;;;:::i;:::-;;;;;;;;11124:163;11317:1;11307:9;:11;11304:161;;;11368:9;11341:8;:23;11350:13;;;;;;;;;;;11341:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;11421:13;;;;;;;;;;;11404:42;;11413:6;11404:42;;;11436:9;11404:42;;;;;;:::i;:::-;;;;;;;;11304:161;11496:1;11485:10;:12;11482:166;;;11548:10;11520:8;:24;11529:14;;;;;;;;;;;11520:24;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;11602:14;;;;;;;;;;;11585:44;;11594:6;11585:44;;;11618:10;11585:44;;;;;;:::i;:::-;;;;;;;;11482:166;11687:9;11670:40;;11679:6;11670:40;;;11698:11;11670:40;;;;;;:::i;:::-;;;;;;;;10274:1451;;;;;;;;10161:1564;10053:1672;10023:1753;;;11763:9;11746:30;;11755:6;11746:30;;;11774:1;11746:30;;;;;;:::i;:::-;;;;;;;;10023:1753;9616:2167;;;:::o;12249:218::-;12345:6;12324:8;:17;12333:7;12324:17;;;;;;;;;;;;;;;;:27;;12315:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;12422:6;12401:8;:17;12410:7;12401:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;12454:6;12438:12;;:22;;;;;;;:::i;:::-;;;;;;;;12249:218;;:::o;5042:370::-;5192:4;5207:18;5284:12;5270:11;5255:12;5240;5228:9;:24;;;;:::i;:::-;:39;;;;:::i;:::-;:53;;;;:::i;:::-;:68;;;;:::i;:::-;5207:89;;5323:3;5309:10;:17;5306:100;;;5348:4;5341:11;;;;;5306:100;5390:5;5383:12;;;5042:370;;;;;;;;:::o;11992:219::-;12109:6;12089:8;:16;12098:6;12089:16;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;12148:6;12125:8;:19;12134:9;12125:19;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;12186:9;12169:35;;12178:6;12169:35;;;12197:6;12169:35;;;;;;:::i;:::-;;;;;;;;11992:219;;;:::o;8180:712::-;8248:19;8269:15;8286:18;8306:17;8325;8344:18;8415:3;8404:8;;8395:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;8381:37;;8466:14;;8448:8;:14;1692:1;8448:14;;;;;;;;;;;;;;;;8432:12;;:30;;;;:::i;:::-;8431:49;8428:158;;;8530:3;8519:8;;8505:11;:22;;;;:::i;:::-;:28;;;;:::i;:::-;8495:38;;8428:158;;;8574:1;8564:11;;8428:158;8637:3;8623:11;;8609;:25;;;;:::i;:::-;:31;;;;:::i;:::-;8596:44;;8691:3;8677:11;;8663;:25;;;;:::i;:::-;:31;;;;:::i;:::-;8650:44;;8744:3;8731:10;;8717:11;:24;;;;:::i;:::-;:30;;;;:::i;:::-;8704:43;;8799:3;8785:11;;8771;:25;;;;:::i;:::-;:31;;;;:::i;:::-;8757:45;;8873:10;8861:9;8849;8836:10;8826:7;:20;;;;:::i;:::-;:32;;;;:::i;:::-;:44;;;;:::i;:::-;:57;;;;:::i;:::-;8812:71;;8180:712;;;;;;;:::o;7:139:4:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;152:133;;;;:::o;291:139::-;337:5;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;291:139;;;;:::o;436:143::-;493:5;524:6;518:13;509:22;;540:33;567:5;540:33;:::i;:::-;436:143;;;;:::o;585:329::-;644:6;693:2;681:9;672:7;668:23;664:32;661:119;;;699:79;;:::i;:::-;661:119;819:1;844:53;889:7;880:6;869:9;865:22;844:53;:::i;:::-;834:63;;790:117;585:329;;;;:::o;920:474::-;988:6;996;1045:2;1033:9;1024:7;1020:23;1016:32;1013:119;;;1051:79;;:::i;:::-;1013:119;1171:1;1196:53;1241:7;1232:6;1221:9;1217:22;1196:53;:::i;:::-;1186:63;;1142:117;1298:2;1324:53;1369:7;1360:6;1349:9;1345:22;1324:53;:::i;:::-;1314:63;;1269:118;920:474;;;;;:::o;1400:619::-;1477:6;1485;1493;1542:2;1530:9;1521:7;1517:23;1513:32;1510:119;;;1548:79;;:::i;:::-;1510:119;1668:1;1693:53;1738:7;1729:6;1718:9;1714:22;1693:53;:::i;:::-;1683:63;;1639:117;1795:2;1821:53;1866:7;1857:6;1846:9;1842:22;1821:53;:::i;:::-;1811:63;;1766:118;1923:2;1949:53;1994:7;1985:6;1974:9;1970:22;1949:53;:::i;:::-;1939:63;;1894:118;1400:619;;;;;:::o;2025:468::-;2090:6;2098;2147:2;2135:9;2126:7;2122:23;2118:32;2115:119;;;2153:79;;:::i;:::-;2115:119;2273:1;2298:53;2343:7;2334:6;2323:9;2319:22;2298:53;:::i;:::-;2288:63;;2244:117;2400:2;2426:50;2468:7;2459:6;2448:9;2444:22;2426:50;:::i;:::-;2416:60;;2371:115;2025:468;;;;;:::o;2499:474::-;2567:6;2575;2624:2;2612:9;2603:7;2599:23;2595:32;2592:119;;;2630:79;;:::i;:::-;2592:119;2750:1;2775:53;2820:7;2811:6;2800:9;2796:22;2775:53;:::i;:::-;2765:63;;2721:117;2877:2;2903:53;2948:7;2939:6;2928:9;2924:22;2903:53;:::i;:::-;2893:63;;2848:118;2499:474;;;;;:::o;2979:329::-;3038:6;3087:2;3075:9;3066:7;3062:23;3058:32;3055:119;;;3093:79;;:::i;:::-;3055:119;3213:1;3238:53;3283:7;3274:6;3263:9;3259:22;3238:53;:::i;:::-;3228:63;;3184:117;2979:329;;;;:::o;3314:351::-;3384:6;3433:2;3421:9;3412:7;3408:23;3404:32;3401:119;;;3439:79;;:::i;:::-;3401:119;3559:1;3584:64;3640:7;3631:6;3620:9;3616:22;3584:64;:::i;:::-;3574:74;;3530:128;3314:351;;;;:::o;3671:1057::-;3775:6;3783;3791;3799;3807;3815;3864:3;3852:9;3843:7;3839:23;3835:33;3832:120;;;3871:79;;:::i;:::-;3832:120;3991:1;4016:53;4061:7;4052:6;4041:9;4037:22;4016:53;:::i;:::-;4006:63;;3962:117;4118:2;4144:53;4189:7;4180:6;4169:9;4165:22;4144:53;:::i;:::-;4134:63;;4089:118;4246:2;4272:53;4317:7;4308:6;4297:9;4293:22;4272:53;:::i;:::-;4262:63;;4217:118;4374:2;4400:53;4445:7;4436:6;4425:9;4421:22;4400:53;:::i;:::-;4390:63;;4345:118;4502:3;4529:53;4574:7;4565:6;4554:9;4550:22;4529:53;:::i;:::-;4519:63;;4473:119;4631:3;4658:53;4703:7;4694:6;4683:9;4679:22;4658:53;:::i;:::-;4648:63;;4602:119;3671:1057;;;;;;;;:::o;4734:118::-;4821:24;4839:5;4821:24;:::i;:::-;4816:3;4809:37;4734:118;;:::o;4858:109::-;4939:21;4954:5;4939:21;:::i;:::-;4934:3;4927:34;4858:109;;:::o;4973:147::-;5068:45;5107:5;5068:45;:::i;:::-;5063:3;5056:58;4973:147;;:::o;5126:364::-;5214:3;5242:39;5275:5;5242:39;:::i;:::-;5297:71;5361:6;5356:3;5297:71;:::i;:::-;5290:78;;5377:52;5422:6;5417:3;5410:4;5403:5;5399:16;5377:52;:::i;:::-;5454:29;5476:6;5454:29;:::i;:::-;5449:3;5445:39;5438:46;;5218:272;5126:364;;;;:::o;5496:366::-;5638:3;5659:67;5723:2;5718:3;5659:67;:::i;:::-;5652:74;;5735:93;5824:3;5735:93;:::i;:::-;5853:2;5848:3;5844:12;5837:19;;5496:366;;;:::o;5868:::-;6010:3;6031:67;6095:2;6090:3;6031:67;:::i;:::-;6024:74;;6107:93;6196:3;6107:93;:::i;:::-;6225:2;6220:3;6216:12;6209:19;;5868:366;;;:::o;6240:::-;6382:3;6403:67;6467:2;6462:3;6403:67;:::i;:::-;6396:74;;6479:93;6568:3;6479:93;:::i;:::-;6597:2;6592:3;6588:12;6581:19;;6240:366;;;:::o;6612:::-;6754:3;6775:67;6839:2;6834:3;6775:67;:::i;:::-;6768:74;;6851:93;6940:3;6851:93;:::i;:::-;6969:2;6964:3;6960:12;6953:19;;6612:366;;;:::o;6984:::-;7126:3;7147:67;7211:2;7206:3;7147:67;:::i;:::-;7140:74;;7223:93;7312:3;7223:93;:::i;:::-;7341:2;7336:3;7332:12;7325:19;;6984:366;;;:::o;7356:::-;7498:3;7519:67;7583:2;7578:3;7519:67;:::i;:::-;7512:74;;7595:93;7684:3;7595:93;:::i;:::-;7713:2;7708:3;7704:12;7697:19;;7356:366;;;:::o;7728:365::-;7870:3;7891:66;7955:1;7950:3;7891:66;:::i;:::-;7884:73;;7966:93;8055:3;7966:93;:::i;:::-;8084:2;8079:3;8075:12;8068:19;;7728:365;;;:::o;8099:366::-;8241:3;8262:67;8326:2;8321:3;8262:67;:::i;:::-;8255:74;;8338:93;8427:3;8338:93;:::i;:::-;8456:2;8451:3;8447:12;8440:19;;8099:366;;;:::o;8471:::-;8613:3;8634:67;8698:2;8693:3;8634:67;:::i;:::-;8627:74;;8710:93;8799:3;8710:93;:::i;:::-;8828:2;8823:3;8819:12;8812:19;;8471:366;;;:::o;8843:::-;8985:3;9006:67;9070:2;9065:3;9006:67;:::i;:::-;8999:74;;9082:93;9171:3;9082:93;:::i;:::-;9200:2;9195:3;9191:12;9184:19;;8843:366;;;:::o;9215:::-;9357:3;9378:67;9442:2;9437:3;9378:67;:::i;:::-;9371:74;;9454:93;9543:3;9454:93;:::i;:::-;9572:2;9567:3;9563:12;9556:19;;9215:366;;;:::o;9587:::-;9729:3;9750:67;9814:2;9809:3;9750:67;:::i;:::-;9743:74;;9826:93;9915:3;9826:93;:::i;:::-;9944:2;9939:3;9935:12;9928:19;;9587:366;;;:::o;9959:::-;10101:3;10122:67;10186:2;10181:3;10122:67;:::i;:::-;10115:74;;10198:93;10287:3;10198:93;:::i;:::-;10316:2;10311:3;10307:12;10300:19;;9959:366;;;:::o;10331:::-;10473:3;10494:67;10558:2;10553:3;10494:67;:::i;:::-;10487:74;;10570:93;10659:3;10570:93;:::i;:::-;10688:2;10683:3;10679:12;10672:19;;10331:366;;;:::o;10703:::-;10845:3;10866:67;10930:2;10925:3;10866:67;:::i;:::-;10859:74;;10942:93;11031:3;10942:93;:::i;:::-;11060:2;11055:3;11051:12;11044:19;;10703:366;;;:::o;11075:::-;11217:3;11238:67;11302:2;11297:3;11238:67;:::i;:::-;11231:74;;11314:93;11403:3;11314:93;:::i;:::-;11432:2;11427:3;11423:12;11416:19;;11075:366;;;:::o;11447:::-;11589:3;11610:67;11674:2;11669:3;11610:67;:::i;:::-;11603:74;;11686:93;11775:3;11686:93;:::i;:::-;11804:2;11799:3;11795:12;11788:19;;11447:366;;;:::o;11819:::-;11961:3;11982:67;12046:2;12041:3;11982:67;:::i;:::-;11975:74;;12058:93;12147:3;12058:93;:::i;:::-;12176:2;12171:3;12167:12;12160:19;;11819:366;;;:::o;12191:::-;12333:3;12354:67;12418:2;12413:3;12354:67;:::i;:::-;12347:74;;12430:93;12519:3;12430:93;:::i;:::-;12548:2;12543:3;12539:12;12532:19;;12191:366;;;:::o;12563:118::-;12650:24;12668:5;12650:24;:::i;:::-;12645:3;12638:37;12563:118;;:::o;12687:112::-;12770:22;12786:5;12770:22;:::i;:::-;12765:3;12758:35;12687:112;;:::o;12805:222::-;12898:4;12936:2;12925:9;12921:18;12913:26;;12949:71;13017:1;13006:9;13002:17;12993:6;12949:71;:::i;:::-;12805:222;;;;:::o;13033:332::-;13154:4;13192:2;13181:9;13177:18;13169:26;;13205:71;13273:1;13262:9;13258:17;13249:6;13205:71;:::i;:::-;13286:72;13354:2;13343:9;13339:18;13330:6;13286:72;:::i;:::-;13033:332;;;;;:::o;13371:::-;13492:4;13530:2;13519:9;13515:18;13507:26;;13543:71;13611:1;13600:9;13596:17;13587:6;13543:71;:::i;:::-;13624:72;13692:2;13681:9;13677:18;13668:6;13624:72;:::i;:::-;13371:332;;;;;:::o;13709:210::-;13796:4;13834:2;13823:9;13819:18;13811:26;;13847:65;13909:1;13898:9;13894:17;13885:6;13847:65;:::i;:::-;13709:210;;;;:::o;13925:238::-;14026:4;14064:2;14053:9;14049:18;14041:26;;14077:79;14153:1;14142:9;14138:17;14129:6;14077:79;:::i;:::-;13925:238;;;;:::o;14169:313::-;14282:4;14320:2;14309:9;14305:18;14297:26;;14369:9;14363:4;14359:20;14355:1;14344:9;14340:17;14333:47;14397:78;14470:4;14461:6;14397:78;:::i;:::-;14389:86;;14169:313;;;;:::o;14488:419::-;14654:4;14692:2;14681:9;14677:18;14669:26;;14741:9;14735:4;14731:20;14727:1;14716:9;14712:17;14705:47;14769:131;14895:4;14769:131;:::i;:::-;14761:139;;14488:419;;;:::o;14913:::-;15079:4;15117:2;15106:9;15102:18;15094:26;;15166:9;15160:4;15156:20;15152:1;15141:9;15137:17;15130:47;15194:131;15320:4;15194:131;:::i;:::-;15186:139;;14913:419;;;:::o;15338:::-;15504:4;15542:2;15531:9;15527:18;15519:26;;15591:9;15585:4;15581:20;15577:1;15566:9;15562:17;15555:47;15619:131;15745:4;15619:131;:::i;:::-;15611:139;;15338:419;;;:::o;15763:::-;15929:4;15967:2;15956:9;15952:18;15944:26;;16016:9;16010:4;16006:20;16002:1;15991:9;15987:17;15980:47;16044:131;16170:4;16044:131;:::i;:::-;16036:139;;15763:419;;;:::o;16188:::-;16354:4;16392:2;16381:9;16377:18;16369:26;;16441:9;16435:4;16431:20;16427:1;16416:9;16412:17;16405:47;16469:131;16595:4;16469:131;:::i;:::-;16461:139;;16188:419;;;:::o;16613:::-;16779:4;16817:2;16806:9;16802:18;16794:26;;16866:9;16860:4;16856:20;16852:1;16841:9;16837:17;16830:47;16894:131;17020:4;16894:131;:::i;:::-;16886:139;;16613:419;;;:::o;17038:::-;17204:4;17242:2;17231:9;17227:18;17219:26;;17291:9;17285:4;17281:20;17277:1;17266:9;17262:17;17255:47;17319:131;17445:4;17319:131;:::i;:::-;17311:139;;17038:419;;;:::o;17463:::-;17629:4;17667:2;17656:9;17652:18;17644:26;;17716:9;17710:4;17706:20;17702:1;17691:9;17687:17;17680:47;17744:131;17870:4;17744:131;:::i;:::-;17736:139;;17463:419;;;:::o;17888:::-;18054:4;18092:2;18081:9;18077:18;18069:26;;18141:9;18135:4;18131:20;18127:1;18116:9;18112:17;18105:47;18169:131;18295:4;18169:131;:::i;:::-;18161:139;;17888:419;;;:::o;18313:::-;18479:4;18517:2;18506:9;18502:18;18494:26;;18566:9;18560:4;18556:20;18552:1;18541:9;18537:17;18530:47;18594:131;18720:4;18594:131;:::i;:::-;18586:139;;18313:419;;;:::o;18738:::-;18904:4;18942:2;18931:9;18927:18;18919:26;;18991:9;18985:4;18981:20;18977:1;18966:9;18962:17;18955:47;19019:131;19145:4;19019:131;:::i;:::-;19011:139;;18738:419;;;:::o;19163:::-;19329:4;19367:2;19356:9;19352:18;19344:26;;19416:9;19410:4;19406:20;19402:1;19391:9;19387:17;19380:47;19444:131;19570:4;19444:131;:::i;:::-;19436:139;;19163:419;;;:::o;19588:::-;19754:4;19792:2;19781:9;19777:18;19769:26;;19841:9;19835:4;19831:20;19827:1;19816:9;19812:17;19805:47;19869:131;19995:4;19869:131;:::i;:::-;19861:139;;19588:419;;;:::o;20013:::-;20179:4;20217:2;20206:9;20202:18;20194:26;;20266:9;20260:4;20256:20;20252:1;20241:9;20237:17;20230:47;20294:131;20420:4;20294:131;:::i;:::-;20286:139;;20013:419;;;:::o;20438:::-;20604:4;20642:2;20631:9;20627:18;20619:26;;20691:9;20685:4;20681:20;20677:1;20666:9;20662:17;20655:47;20719:131;20845:4;20719:131;:::i;:::-;20711:139;;20438:419;;;:::o;20863:::-;21029:4;21067:2;21056:9;21052:18;21044:26;;21116:9;21110:4;21106:20;21102:1;21091:9;21087:17;21080:47;21144:131;21270:4;21144:131;:::i;:::-;21136:139;;20863:419;;;:::o;21288:::-;21454:4;21492:2;21481:9;21477:18;21469:26;;21541:9;21535:4;21531:20;21527:1;21516:9;21512:17;21505:47;21569:131;21695:4;21569:131;:::i;:::-;21561:139;;21288:419;;;:::o;21713:::-;21879:4;21917:2;21906:9;21902:18;21894:26;;21966:9;21960:4;21956:20;21952:1;21941:9;21937:17;21930:47;21994:131;22120:4;21994:131;:::i;:::-;21986:139;;21713:419;;;:::o;22138:::-;22304:4;22342:2;22331:9;22327:18;22319:26;;22391:9;22385:4;22381:20;22377:1;22366:9;22362:17;22355:47;22419:131;22545:4;22419:131;:::i;:::-;22411:139;;22138:419;;;:::o;22563:222::-;22656:4;22694:2;22683:9;22679:18;22671:26;;22707:71;22775:1;22764:9;22760:17;22751:6;22707:71;:::i;:::-;22563:222;;;;:::o;22791:775::-;23024:4;23062:3;23051:9;23047:19;23039:27;;23076:71;23144:1;23133:9;23129:17;23120:6;23076:71;:::i;:::-;23157:72;23225:2;23214:9;23210:18;23201:6;23157:72;:::i;:::-;23239;23307:2;23296:9;23292:18;23283:6;23239:72;:::i;:::-;23321;23389:2;23378:9;23374:18;23365:6;23321:72;:::i;:::-;23403:73;23471:3;23460:9;23456:19;23447:6;23403:73;:::i;:::-;23486;23554:3;23543:9;23539:19;23530:6;23486:73;:::i;:::-;22791:775;;;;;;;;;:::o;23572:214::-;23661:4;23699:2;23688:9;23684:18;23676:26;;23712:67;23776:1;23765:9;23761:17;23752:6;23712:67;:::i;:::-;23572:214;;;;:::o;23873:99::-;23925:6;23959:5;23953:12;23943:22;;23873:99;;;:::o;23978:169::-;24062:11;24096:6;24091:3;24084:19;24136:4;24131:3;24127:14;24112:29;;23978:169;;;;:::o;24153:305::-;24193:3;24212:20;24230:1;24212:20;:::i;:::-;24207:25;;24246:20;24264:1;24246:20;:::i;:::-;24241:25;;24400:1;24332:66;24328:74;24325:1;24322:81;24319:107;;;24406:18;;:::i;:::-;24319:107;24450:1;24447;24443:9;24436:16;;24153:305;;;;:::o;24464:185::-;24504:1;24521:20;24539:1;24521:20;:::i;:::-;24516:25;;24555:20;24573:1;24555:20;:::i;:::-;24550:25;;24594:1;24584:35;;24599:18;;:::i;:::-;24584:35;24641:1;24638;24634:9;24629:14;;24464:185;;;;:::o;24655:348::-;24695:7;24718:20;24736:1;24718:20;:::i;:::-;24713:25;;24752:20;24770:1;24752:20;:::i;:::-;24747:25;;24940:1;24872:66;24868:74;24865:1;24862:81;24857:1;24850:9;24843:17;24839:105;24836:131;;;24947:18;;:::i;:::-;24836:131;24995:1;24992;24988:9;24977:20;;24655:348;;;;:::o;25009:191::-;25049:4;25069:20;25087:1;25069:20;:::i;:::-;25064:25;;25103:20;25121:1;25103:20;:::i;:::-;25098:25;;25142:1;25139;25136:8;25133:34;;;25147:18;;:::i;:::-;25133:34;25192:1;25189;25185:9;25177:17;;25009:191;;;;:::o;25206:96::-;25243:7;25272:24;25290:5;25272:24;:::i;:::-;25261:35;;25206:96;;;:::o;25308:90::-;25342:7;25385:5;25378:13;25371:21;25360:32;;25308:90;;;:::o;25404:126::-;25441:7;25481:42;25474:5;25470:54;25459:65;;25404:126;;;:::o;25536:77::-;25573:7;25602:5;25591:16;;25536:77;;;:::o;25619:86::-;25654:7;25694:4;25687:5;25683:16;25672:27;;25619:86;;;:::o;25711:121::-;25769:9;25802:24;25820:5;25802:24;:::i;:::-;25789:37;;25711:121;;;:::o;25838:307::-;25906:1;25916:113;25930:6;25927:1;25924:13;25916:113;;;26015:1;26010:3;26006:11;26000:18;25996:1;25991:3;25987:11;25980:39;25952:2;25949:1;25945:10;25940:15;;25916:113;;;26047:6;26044:1;26041:13;26038:101;;;26127:1;26118:6;26113:3;26109:16;26102:27;26038:101;25887:258;25838:307;;;:::o;26151:180::-;26199:77;26196:1;26189:88;26296:4;26293:1;26286:15;26320:4;26317:1;26310:15;26337:180;26385:77;26382:1;26375:88;26482:4;26479:1;26472:15;26506:4;26503:1;26496:15;26646:117;26755:1;26752;26745:12;26769:102;26810:6;26861:2;26857:7;26852:2;26845:5;26841:14;26837:28;26827:38;;26769:102;;;:::o;26877:222::-;27017:34;27013:1;27005:6;27001:14;26994:58;27086:5;27081:2;27073:6;27069:15;27062:30;26877:222;:::o;27105:221::-;27245:34;27241:1;27233:6;27229:14;27222:58;27314:4;27309:2;27301:6;27297:15;27290:29;27105:221;:::o;27332:160::-;27472:12;27468:1;27460:6;27456:14;27449:36;27332:160;:::o;27498:169::-;27638:21;27634:1;27626:6;27622:14;27615:45;27498:169;:::o;27673:221::-;27813:34;27809:1;27801:6;27797:14;27790:58;27882:4;27877:2;27869:6;27865:15;27858:29;27673:221;:::o;27900:223::-;28040:34;28036:1;28028:6;28024:14;28017:58;28109:6;28104:2;28096:6;28092:15;28085:31;27900:223;:::o;28129:158::-;28269:10;28265:1;28257:6;28253:14;28246:34;28129:158;:::o;28293:173::-;28433:25;28429:1;28421:6;28417:14;28410:49;28293:173;:::o;28472:178::-;28612:30;28608:1;28600:6;28596:14;28589:54;28472:178;:::o;28656:225::-;28796:34;28792:1;28784:6;28780:14;28773:58;28865:8;28860:2;28852:6;28848:15;28841:33;28656:225;:::o;28887:227::-;29027:34;29023:1;29015:6;29011:14;29004:58;29096:10;29091:2;29083:6;29079:15;29072:35;28887:227;:::o;29120:223::-;29260:34;29256:1;29248:6;29244:14;29237:58;29329:6;29324:2;29316:6;29312:15;29305:31;29120:223;:::o;29349:220::-;29489:34;29485:1;29477:6;29473:14;29466:58;29558:3;29553:2;29545:6;29541:15;29534:28;29349:220;:::o;29575:224::-;29715:34;29711:1;29703:6;29699:14;29692:58;29784:7;29779:2;29771:6;29767:15;29760:32;29575:224;:::o;29805:172::-;29945:24;29941:1;29933:6;29929:14;29922:48;29805:172;:::o;29983:161::-;30123:13;30119:1;30111:6;30107:14;30100:37;29983:161;:::o;30150:223::-;30290:34;30286:1;30278:6;30274:14;30267:58;30359:6;30354:2;30346:6;30342:15;30335:31;30150:223;:::o;30379:224::-;30519:34;30515:1;30507:6;30503:14;30496:58;30588:7;30583:2;30575:6;30571:15;30564:32;30379:224;:::o;30609:163::-;30749:15;30745:1;30737:6;30733:14;30726:39;30609:163;:::o;30778:122::-;30851:24;30869:5;30851:24;:::i;:::-;30844:5;30841:35;30831:63;;30890:1;30887;30880:12;30831:63;30778:122;:::o;30906:116::-;30976:21;30991:5;30976:21;:::i;:::-;30969:5;30966:32;30956:60;;31012:1;31009;31002:12;30956:60;30906:116;:::o;31028:122::-;31101:24;31119:5;31101:24;:::i;:::-;31094:5;31091:35;31081:63;;31140:1;31137;31130:12;31081:63;31028:122;:::o

Swarm Source

ipfs://f6bc011fada36922ad1b9e38c29c92101aaae934d36946e79ef0692c9fb7b53d

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

$TAT2 Token is a deflationary multi-blockchain token crafted for the global tattoo industry. It allows collection and transfer of financial assets, payments for services in tattoo studios and trade of NFT on the NFTattoo platform.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.