ETH Price: $2,839.61 (+6.82%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve201917692024-06-28 17:46:47131 days ago1719596807IN
0x75af3FD3...2b1159B58
0 ETH0.00016153.31193544
Transfer177024672023-07-16 1:00:47480 days ago1689469247IN
0x75af3FD3...2b1159B58
0 ETH0.0008126114.00555077
Approve176527962023-07-09 1:08:23487 days ago1688864903IN
0x75af3FD3...2b1159B58
0 ETH0.0004143815.53649085
Approve176119472023-07-03 7:25:47493 days ago1688369147IN
0x75af3FD3...2b1159B58
0 ETH0.0007825315.92946977
Transfer175240002023-06-20 22:53:59505 days ago1687301639IN
0x75af3FD3...2b1159B58
0 ETH0.0009610615.30136449
Approve174620662023-06-12 6:01:11514 days ago1686549671IN
0x75af3FD3...2b1159B58
0 ETH0.0008212216.71714967
Transfer174216622023-06-06 13:20:23520 days ago1686057623IN
0x75af3FD3...2b1159B58
0 ETH0.0020981233.4048505
Transfer172585812023-05-14 14:06:11543 days ago1684073171IN
0x75af3FD3...2b1159B58
0 ETH0.0033077752.65397608
Transfer169426662023-03-30 21:15:23587 days ago1680210923IN
0x75af3FD3...2b1159B58
0 ETH0.0016640428.680112
Approve165977172023-02-10 10:19:35636 days ago1676024375IN
0x75af3FD3...2b1159B58
0 ETH0.0011502723.4152692
Approve163811512023-01-11 4:22:35666 days ago1673410955IN
0x75af3FD3...2b1159B58
0 ETH0.0008197716.68757649
Approve161883482022-12-15 6:36:59693 days ago1671086219IN
0x75af3FD3...2b1159B58
0 ETH0.0006928814.10453818
Approve161196872022-12-05 16:07:11703 days ago1670256431IN
0x75af3FD3...2b1159B58
0 ETH0.0015961132.49082774
Approve138379552021-12-19 21:21:131053 days ago1639948873IN
0x75af3FD3...2b1159B58
0 ETH0.0020619241.97298739
Approve138368182021-12-19 16:56:111053 days ago1639932971IN
0x75af3FD3...2b1159B58
0 ETH0.0030400261.88342422
Approve138367632021-12-19 16:44:501053 days ago1639932290IN
0x75af3FD3...2b1159B58
0 ETH0.0042197885.89892911
Approve138314432021-12-18 21:04:351054 days ago1639861475IN
0x75af3FD3...2b1159B58
0 ETH0.0020066940.84881765
Transfer138303072021-12-18 16:57:181054 days ago1639846638IN
0x75af3FD3...2b1159B58
0 ETH0.0024937254.5421716
Transfer138296452021-12-18 14:21:121055 days ago1639837272IN
0x75af3FD3...2b1159B58
0 ETH0.0025357940.37307227
Approve138293092021-12-18 13:09:531055 days ago1639832993IN
0x75af3FD3...2b1159B58
0 ETH0.0019659140.01856853
Transfer138293092021-12-18 13:09:531055 days ago1639832993IN
0x75af3FD3...2b1159B58
0 ETH0.0018520640.51856853
Transfer138293092021-12-18 13:09:531055 days ago1639832993IN
0x75af3FD3...2b1159B58
0 ETH0.001829240.01856853
Issue138290292021-12-18 12:07:061055 days ago1639829226IN
0x75af3FD3...2b1159B58
0 ETH0.0020436755.08694583
Transfer138106492021-12-15 15:54:111058 days ago1639583651IN
0x75af3FD3...2b1159B58
0 ETH0.00978641155.81236172
Transfer138096152021-12-15 12:03:351058 days ago1639569815IN
0x75af3FD3...2b1159B58
0 ETH0.0044711271.18609935
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:
TetherToken

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-14
*/

// SPDX-License-Identifier: MIT

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

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


// Dependency file: @openzeppelin/contracts/token/ERC20/IERC20.sol


// pragma solidity ^0.8.0;

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

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

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

        _afterTokenTransfer(address(0), account, amount);
    }

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

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

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

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

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

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


// Root file: contracts/TetherToken.sol

pragma solidity ^0.8.4;

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based oncode by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, Ownable {
    using SafeMath for uint;

    uint public constant MAX_UINT = 2**256 - 1;

    // additional variables for use if transaction fees ever became necessary
    uint public basisPointsRate = 0;
    uint public maximumFee = 0;

    /**
    * @dev Fix for the ERC20 short address attack.
    */
    modifier onlyPayloadSize(uint size) {
        require(!(msg.data.length < size + 4));
        _;
    }

    constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {}

    /**
    * @dev transfer token for a specified address
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint _value) public virtual override onlyPayloadSize(2 * 32) returns (bool) {
        uint fee = (_value.mul(basisPointsRate)).div(10000);
        if (fee > maximumFee) {
            fee = maximumFee;
        }
        uint sendAmount = _value.sub(fee);
        _balances[msg.sender] = _balances[msg.sender].sub(_value);
        _balances[_to] = _balances[_to].add(sendAmount);
        if (fee > 0) {
            _balances[owner()] = _balances[owner()].add(fee);
            emit Transfer(msg.sender, owner(), fee);
        }
        emit Transfer(msg.sender, _to, sendAmount);
        return true;
    }

    /**
    * @dev Gets the balance of the specified address.
    * @param _owner The address to query the the balance of.
    * @return balance An uint representing the amount owned by the passed address.
    */
    function balanceOf(address _owner) public view virtual override returns (uint balance) {
        return _balances[_owner];
    }

    /**
    * @dev Transfer tokens from one address to another
    * @param _from address The address which you want to send tokens from
    * @param _to address The address which you want to transfer to
    * @param _value uint the amount of tokens to be transferred
    */
    function transferFrom(address _from, address _to, uint _value) public virtual override onlyPayloadSize(3 * 32) returns (bool) {
        uint _allowance = _allowances[_from][msg.sender];

        // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
        // if (_value > _allowance) throw;

        uint fee = (_value.mul(basisPointsRate)).div(10000);
        if (fee > maximumFee) {
            fee = maximumFee;
        }
        if (_allowance < MAX_UINT) {
            _allowances[_from][msg.sender] = _allowance.sub(_value);
        }
        uint sendAmount = _value.sub(fee);
        _balances[_from] = _balances[_from].sub(_value);
        _balances[_to] = _balances[_to].add(sendAmount);
        if (fee > 0) {
            _balances[owner()] = _balances[owner()].add(fee);
            emit Transfer(_from, owner(), fee);
        }
        emit Transfer(_from, _to, sendAmount);
        return true;
    }

    /**
    * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
    * @param _spender The address which will spend the funds.
    * @param _value The amount of tokens to be spent.
    */
    function approve(address _spender, uint _value) public virtual override onlyPayloadSize(2 * 32) returns (bool) {

        // To change the approve amount you first have to reduce the addresses`
        //  allowance to zero by calling `approve(_spender, 0)` if it is not
        //  already 0 to mitigate the race condition described here:
        //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
        require(!((_value != 0) && (_allowances[msg.sender][_spender] != 0)));

        _allowances[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
    * @dev Function to check the amount of tokens than an owner() allowed to a spender.
    * @param _owner address The address which owns the funds.
    * @param _spender address The address which will spend the funds.
    * @return remaining A uint specifying the amount of tokens still available for the spender.
    */
    function allowance(address _owner, address _spender) public view virtual override returns (uint remaining) {
        return _allowances[_owner][_spender];
    }

}


/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
abstract contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
   */
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
   */
    modifier whenPaused() {
        require(paused);
        _;
    }

    /**
     * @dev called by the owner() to pause, triggers stopped state
   */
    function pause() onlyOwner whenNotPaused public {
        paused = true;
        emit Pause();
    }

    /**
     * @dev called by the owner() to unpause, returns to normal state
   */
    function unpause() onlyOwner whenPaused public {
        paused = false;
        emit Unpause();
    }
}

abstract contract BlackList is Ownable, StandardToken {

    event DestroyedBlackFunds(address _blackListedUser, uint _balance);
    event AddedBlackList(address _user);
    event RemovedBlackList(address _user);

    mapping (address => bool) public isBlackListed;

    /////// Getters to allow the same blacklist to be used also by other contracts (including upgraded Tether) ///////
    function getBlackListStatus(address _maker) external view returns (bool) {
        return isBlackListed[_maker];
    }

    function addBlackList(address _evilUser) public onlyOwner {
        isBlackListed[_evilUser] = true;
        emit AddedBlackList(_evilUser);
    }

    function removeBlackList(address _clearedUser) public onlyOwner {
        isBlackListed[_clearedUser] = false;
        emit RemovedBlackList(_clearedUser);
    }

    function destroyBlackFunds(address _blackListedUser) public onlyOwner {
        require(isBlackListed[_blackListedUser]);
        uint dirtyFunds = balanceOf(_blackListedUser);
        _burn(_blackListedUser, dirtyFunds);
        emit DestroyedBlackFunds(_blackListedUser, dirtyFunds);
    }
}

interface UpgradedStandardToken is IERC20 {
    // those methods are called by the legacy contract
    // and they must ensure msg.sender to be the contract address
    function transferByLegacy(address from, address to, uint value) external;
    function transferFromByLegacy(address sender, address from, address spender, uint value) external;
    function approveByLegacy(address from, address spender, uint value) external;
}

contract TetherToken is Pausable, StandardToken, BlackList {
    using SafeMath for uint;

    uint8 private _decimals;
    address public upgradedAddress;
    bool public deprecated;

    // Called when new token are issued
    event Issue(uint amount);
    // Called when tokens are redeemed
    event Redeem(uint amount);
    // Called when contract is deprecated
    event Deprecate(address newAddress);
    // Called if contract ever adds fees
    event Params(uint feeBasisPoints, uint maxFee);

    //  The contract can be initialized with a number of tokens
    //  All the tokens are deposited to the owner() address
    //
    // @param _balance Initial supply of the contract
    // @param _name Token Name
    // @param _symbol Token symbol
    // @param _decimals Token decimals
    constructor(string memory _name, string memory _symbol, uint8 __decimals)
        StandardToken(_name, _symbol)
    {
        require(__decimals <= 18, "Very high decimal");

        _decimals = __decimals;
        deprecated = false;
    }

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

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function transfer(address _to, uint _value) public override whenNotPaused returns (bool) {
        require(!isBlackListed[msg.sender]);
        if (deprecated) {
            UpgradedStandardToken(upgradedAddress).transferByLegacy(msg.sender, _to, _value);
        } else {
            return super.transfer(_to, _value);
        }
        return true;
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function transferFrom(address _from, address _to, uint _value) public override whenNotPaused returns (bool) {
        require(!isBlackListed[_from]);
        if (deprecated) {
            UpgradedStandardToken(upgradedAddress).transferFromByLegacy(msg.sender, _from, _to, _value);
        } else {
            return super.transferFrom(_from, _to, _value);
        }
        return true;
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function balanceOf(address who) public view override returns (uint) {
        if (deprecated) {
            return UpgradedStandardToken(upgradedAddress).balanceOf(who);
        } else {
            return super.balanceOf(who);
        }
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function approve(address _spender, uint _value) public override onlyPayloadSize(2 * 32) returns (bool) {
        if (deprecated) {
            UpgradedStandardToken(upgradedAddress).approveByLegacy(msg.sender, _spender, _value);
        } else {
            return super.approve(_spender, _value);
        }
        return true;
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function allowance(address _owner, address _spender) public view override returns (uint remaining) {
        if (deprecated) {
            return StandardToken(upgradedAddress).allowance(_owner, _spender);
        } else {
            return super.allowance(_owner, _spender);
        }
    }

    // deprecate current contract in favour of a new one
    function deprecate(address _upgradedAddress) public onlyOwner {
        deprecated = true;
        upgradedAddress = _upgradedAddress;
        emit Deprecate(_upgradedAddress);
    }

    // deprecate current contract if favour of a new one
    function totalSupply() public view override returns (uint) {
        if (deprecated) {
            return StandardToken(upgradedAddress).totalSupply();
        } else {
            return super.totalSupply();
        }
    }

    // Issue a new amount of tokens
    // these tokens are deposited into the owner() address
    //
    // @param _amount Number of tokens to be issued
    function issue(uint amount) public onlyOwner {
        _mint(owner(), amount);
        emit Issue(amount);
    }

    // Redeem tokens.
    // These tokens are withdrawn from the owner() address
    // if the balance must be enough to cover the redeem
    // or the call will fail.
    // @param _amount Number of tokens to be issued
    function redeem(uint amount) public onlyOwner {
        _burn(owner(), amount);
        emit Redeem(amount);
    }

    function setParams(uint newBasisPoints, uint newMaxFee) public onlyOwner {
        // Ensure transparency by hardcoding limit beyond which fees can never be added
        require(newBasisPoints < 20);
        require(newMaxFee < 50);

        basisPointsRate = newBasisPoints;
        maximumFee = newMaxFee.mul(10**decimals());

        emit Params(basisPointsRate, maximumFee);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"__decimals","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"}],"name":"AddedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAddress","type":"address"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_blackListedUser","type":"address"},{"indexed":false,"internalType":"uint256","name":"_balance","type":"uint256"}],"name":"DestroyedBlackFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Issue","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"feeBasisPoints","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxFee","type":"uint256"}],"name":"Params","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"}],"name":"RemovedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"inputs":[],"name":"MAX_UINT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_evilUser","type":"address"}],"name":"addBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"basisPointsRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"_upgradedAddress","type":"address"}],"name":"deprecate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deprecated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_blackListedUser","type":"address"}],"name":"destroyBlackFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_maker","type":"address"}],"name":"getBlackListStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"issue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maximumFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"redeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_clearedUser","type":"address"}],"name":"removeBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBasisPoints","type":"uint256"},{"internalType":"uint256","name":"newMaxFee","type":"uint256"}],"name":"setParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgradedAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040526005805460ff60a01b19169055600060068190556007553480156200002857600080fd5b506040516200255a3803806200255a8339810160408190526200004b91620002be565b8282818181600390805190602001906200006792919062000161565b5080516200007d90600490602084019062000161565b5050506200009a620000946200010b60201b60201c565b6200010f565b505060128160ff161115620000e95760405162461bcd60e51b815260206004820152601160248201527015995c9e481a1a59da08191958da5b585b607a1b604482015260640160405180910390fd5b6009805460ff60ff60a81b01191660ff90921691909117905550620003969050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200016f9062000343565b90600052602060002090601f016020900481019282620001935760008555620001de565b82601f10620001ae57805160ff1916838001178555620001de565b82800160010185558215620001de579182015b82811115620001de578251825591602001919060010190620001c1565b50620001ec929150620001f0565b5090565b5b80821115620001ec5760008155600101620001f1565b600082601f8301126200021957600080fd5b81516001600160401b038082111562000236576200023662000380565b604051601f8301601f19908116603f0116810190828211818310171562000261576200026162000380565b816040528381526020925086838588010111156200027e57600080fd5b600091505b83821015620002a2578582018301518183018401529082019062000283565b83821115620002b45760008385830101525b9695505050505050565b600080600060608486031215620002d457600080fd5b83516001600160401b0380821115620002ec57600080fd5b620002fa8783880162000207565b945060208601519150808211156200031157600080fd5b50620003208682870162000207565b925050604084015160ff811681146200033857600080fd5b809150509250925092565b600181811c908216806200035857607f821691505b602082108114156200037a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6121b480620003a66000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063715018a61161010f578063db006a75116100a2578063e4997dc511610071578063e4997dc514610436578063e5b5019a14610449578063f2fde38b14610470578063f3bdc2281461048357600080fd5b8063db006a75146103e4578063dd62ed3e146103f7578063dd644f721461040a578063e47d60601461041357600080fd5b8063a457c2d7116100de578063a457c2d714610398578063a9059cbb146103ab578063c0324c77146103be578063cc872b66146103d157600080fd5b8063715018a61461036f5780638456cb59146103775780638da5cb5b1461037f57806395d89b411461039057600080fd5b806326976e3f116101875780633f4ba83a116101565780633f4ba83a1461030357806359bf1abe1461030b5780635c975abb1461033757806370a082311461035c57600080fd5b806326976e3f146102a2578063313ce567146102d257806335390714146102e757806339509351146102f057600080fd5b80630e136b19116101c35780630e136b19146102405780630ecb93c01461026657806318160ddd1461027957806323b872dd1461028f57600080fd5b806306fdde03146101ea5780630753c30c14610208578063095ea7b31461021d575b600080fd5b6101f2610496565b6040516101ff9190611eb7565b60405180910390f35b61021b610216366004611daf565b610528565b005b61023061022b366004611e39565b610622565b60405190151581526020016101ff565b600954610230907501000000000000000000000000000000000000000000900460ff1681565b61021b610274366004611daf565b61070e565b6102816107da565b6040519081526020016101ff565b61023061029d366004611dfd565b610893565b6009546102ba9061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b60095460405160ff90911681526020016101ff565b61028160075481565b6102306102fe366004611e39565b6109bd565b61021b610a03565b610230610319366004611daf565b6001600160a01b031660009081526008602052604090205460ff1690565b6005546102309074010000000000000000000000000000000000000000900460ff1681565b61028161036a366004611daf565b610ad7565b61021b610bbd565b61021b610c23565b6005546001600160a01b03166102ba565b6101f2610d0f565b6102306103a6366004611e39565b610d1e565b6102306103b9366004611e39565b610dc5565b61021b6103cc366004611e95565b610ed2565b61021b6103df366004611e63565b610fb6565b61021b6103f2366004611e63565b61105b565b610281610405366004611dca565b611100565b61028160065481565b610230610421366004611daf565b60086020526000908152604090205460ff1681565b61021b610444366004611daf565b6111f6565b6102817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b61021b61047e366004611daf565b6112bf565b61021b610491366004611daf565b6113a1565b6060600380546104a5906120fb565b80601f01602080910402602001604051908101604052809291908181526020018280546104d1906120fb565b801561051e5780601f106104f35761010080835404028352916020019161051e565b820191906000526020600020905b81548152906001019060200180831161050157829003601f168201915b5050505050905090565b6005546001600160a01b031633146105875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600980546001600160a01b038316610100027fffffffffffffffffffff000000000000000000000000000000000000000000ff9091161775010000000000000000000000000000000000000000001790556040517fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e906106179083906001600160a01b0391909116815260200190565b60405180910390a150565b60006040610631816004611f2a565b36101561063d57600080fd5b6009547501000000000000000000000000000000000000000000900460ff16156106f1576009546040517faee92d330000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038681166024830152604482018690526101009092049091169063aee92d3390606401600060405180830381600087803b1580156106d457600080fd5b505af11580156106e8573d6000803e3d6000fd5b50505050610702565b6106fb8484611476565b9150610707565b600191505b5092915050565b6005546001600160a01b031633146107685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b6001600160a01b03811660008181526008602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590519182527f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc9101610617565b6009546000907501000000000000000000000000000000000000000000900460ff161561088c57600960019054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561084f57600080fd5b505afa158015610863573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108879190611e7c565b905090565b5060025490565b60055460009074010000000000000000000000000000000000000000900460ff16156108be57600080fd5b6001600160a01b03841660009081526008602052604090205460ff16156108e457600080fd5b6009547501000000000000000000000000000000000000000000900460ff16156109a0576009546040517f8b477adb0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03868116602483015285811660448301526064820185905261010090920490911690638b477adb90608401600060405180830381600087803b15801561098357600080fd5b505af1158015610997573d6000803e3d6000fd5b505050506109b2565b6109ab848484611531565b90506109b6565b5060015b9392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109f99185906109f4908690611f2a565b611799565b5060015b92915050565b6005546001600160a01b03163314610a5d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b60055474010000000000000000000000000000000000000000900460ff16610a8457600080fd5b600580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6009546000907501000000000000000000000000000000000000000000900460ff1615610b9a576009546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152610100909204909116906370a082319060240160206040518083038186803b158015610b6257600080fd5b505afa158015610b76573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fd9190611e7c565b6001600160a01b0382166000908152602081905260409020546109fd565b919050565b6005546001600160a01b03163314610c175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b610c2160006118f2565b565b6005546001600160a01b03163314610c7d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b60055474010000000000000000000000000000000000000000900460ff1615610ca557600080fd5b600580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6060600480546104a5906120fb565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610db85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161057e565b6107023385858403611799565b60055460009074010000000000000000000000000000000000000000900460ff1615610df057600080fd5b3360009081526008602052604090205460ff1615610e0d57600080fd5b6009547501000000000000000000000000000000000000000000900460ff1615610ec1576009546040517f6e18980a0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0385811660248301526044820185905261010090920490911690636e18980a90606401600060405180830381600087803b158015610ea457600080fd5b505af1158015610eb8573d6000803e3d6000fd5b505050506109f9565b610ecb838361195c565b90506109fd565b6005546001600160a01b03163314610f2c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b60148210610f3957600080fd5b60328110610f4657600080fd5b6006829055610f6c610f5a60095460ff1690565b610f6590600a611fde565b8290611b0c565b60078190556006546040517fb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e92610faa928252602082015260400190565b60405180910390a15050565b6005546001600160a01b031633146110105760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b61102b6110256005546001600160a01b031690565b82611b18565b6040518181527fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a90602001610617565b6005546001600160a01b031633146110b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b6110d06110ca6005546001600160a01b031690565b82611bf7565b6040518181527f702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a4490602001610617565b6009546000907501000000000000000000000000000000000000000000900460ff16156111cb576009546040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015284811660248301526101009092049091169063dd62ed3e9060440160206040518083038186803b15801561119357600080fd5b505afa1580156111a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecb9190611e7c565b6001600160a01b03808416600090815260016020908152604080832093861683529290522054610ecb565b6005546001600160a01b031633146112505760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b6001600160a01b03811660008181526008602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905590519182527fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c9101610617565b6005546001600160a01b031633146113195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b6001600160a01b0381166113955760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161057e565b61139e816118f2565b50565b6005546001600160a01b031633146113fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b6001600160a01b03811660009081526008602052604090205460ff1661142057600080fd5b600061142b82610ad7565b90506114378282611bf7565b604080516001600160a01b0384168152602081018390527f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c69101610faa565b60006040611485816004611f2a565b36101561149157600080fd5b82158015906114c257503360009081526001602090815260408083206001600160a01b038816845290915290205415155b156114cc57600080fd5b3360008181526001602090815260408083206001600160a01b03891680855290835292819020879055518681529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b60006060611540816004611f2a565b36101561154c57600080fd5b6001600160a01b038516600090815260016020908152604080832033845290915281205460065490919061158f9061271090611589908890611b0c565b90611d74565b90506007548111156115a057506007545b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8210156115f7576115d28286611d80565b6001600160a01b03881660009081526001602090815260408083203384529091529020555b60006116038683611d80565b6001600160a01b0389166000908152602081905260409020549091506116299087611d80565b6001600160a01b03808a1660009081526020819052604080822093909355908916815220546116589082611d8c565b6001600160a01b038816600090815260208190526040902055811561173e576116b0826000806116906005546001600160a01b031690565b6001600160a01b0316815260208101919091526040016000205490611d8c565b6000806116c56005546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020556116f16005546001600160a01b031690565b6001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161173591815260200190565b60405180910390a35b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161178391815260200190565b60405180910390a3506001979650505050505050565b6001600160a01b0383166118145760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161057e565b6001600160a01b0382166118905760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161057e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000604061196b816004611f2a565b36101561197757600080fd5b600061199461271061158960065487611b0c90919063ffffffff16565b90506007548111156119a557506007545b60006119b18583611d80565b336000908152602081905260409020549091506119ce9086611d80565b33600090815260208190526040808220929092556001600160a01b038816815220546119fa9082611d8c565b6001600160a01b0387166000908152602081905260409020558115611ac057611a32826000806116906005546001600160a01b031690565b600080611a476005546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055611a736005546001600160a01b031690565b6001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ab791815260200190565b60405180910390a35b6040518181526001600160a01b0387169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350600195945050505050565b60006109b682846120a7565b6001600160a01b038216611b6e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161057e565b8060026000828254611b809190611f2a565b90915550506001600160a01b03821660009081526020819052604081208054839290611bad908490611f2a565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b038216611c735760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161057e565b6001600160a01b03821660009081526020819052604090205481811015611d025760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161057e565b6001600160a01b0383166000908152602081905260408120838303905560028054849290611d319084906120e4565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016118e5565b60006109b68284611f42565b60006109b682846120e4565b60006109b68284611f2a565b80356001600160a01b0381168114610bb857600080fd5b600060208284031215611dc157600080fd5b6109b682611d98565b60008060408385031215611ddd57600080fd5b611de683611d98565b9150611df460208401611d98565b90509250929050565b600080600060608486031215611e1257600080fd5b611e1b84611d98565b9250611e2960208501611d98565b9150604084013590509250925092565b60008060408385031215611e4c57600080fd5b611e5583611d98565b946020939093013593505050565b600060208284031215611e7557600080fd5b5035919050565b600060208284031215611e8e57600080fd5b5051919050565b60008060408385031215611ea857600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015611ee457858101830151858201604001528201611ec8565b81811115611ef6576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60008219821115611f3d57611f3d61214f565b500190565b600082611f78577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600181815b80851115611fd657817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611fbc57611fbc61214f565b80851615611fc957918102915b93841c9390800290611f82565b509250929050565b60006109b660ff841683600082611ff7575060016109fd565b81612004575060006109fd565b816001811461201a576002811461202457612040565b60019150506109fd565b60ff8411156120355761203561214f565b50506001821b6109fd565b5060208310610133831016604e8410600b8410161715612063575081810a6109fd565b61206d8383611f7d565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561209f5761209f61214f565b029392505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120df576120df61214f565b500290565b6000828210156120f6576120f661214f565b500390565b600181811c9082168061210f57607f821691505b60208210811415612149577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122068db92241a97d707545b5518478b739c3fae8ceacf67d2d5bc4968ca90b57eae64736f6c63430008070033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a546574686572205553440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553445400000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101e55760003560e01c8063715018a61161010f578063db006a75116100a2578063e4997dc511610071578063e4997dc514610436578063e5b5019a14610449578063f2fde38b14610470578063f3bdc2281461048357600080fd5b8063db006a75146103e4578063dd62ed3e146103f7578063dd644f721461040a578063e47d60601461041357600080fd5b8063a457c2d7116100de578063a457c2d714610398578063a9059cbb146103ab578063c0324c77146103be578063cc872b66146103d157600080fd5b8063715018a61461036f5780638456cb59146103775780638da5cb5b1461037f57806395d89b411461039057600080fd5b806326976e3f116101875780633f4ba83a116101565780633f4ba83a1461030357806359bf1abe1461030b5780635c975abb1461033757806370a082311461035c57600080fd5b806326976e3f146102a2578063313ce567146102d257806335390714146102e757806339509351146102f057600080fd5b80630e136b19116101c35780630e136b19146102405780630ecb93c01461026657806318160ddd1461027957806323b872dd1461028f57600080fd5b806306fdde03146101ea5780630753c30c14610208578063095ea7b31461021d575b600080fd5b6101f2610496565b6040516101ff9190611eb7565b60405180910390f35b61021b610216366004611daf565b610528565b005b61023061022b366004611e39565b610622565b60405190151581526020016101ff565b600954610230907501000000000000000000000000000000000000000000900460ff1681565b61021b610274366004611daf565b61070e565b6102816107da565b6040519081526020016101ff565b61023061029d366004611dfd565b610893565b6009546102ba9061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b60095460405160ff90911681526020016101ff565b61028160075481565b6102306102fe366004611e39565b6109bd565b61021b610a03565b610230610319366004611daf565b6001600160a01b031660009081526008602052604090205460ff1690565b6005546102309074010000000000000000000000000000000000000000900460ff1681565b61028161036a366004611daf565b610ad7565b61021b610bbd565b61021b610c23565b6005546001600160a01b03166102ba565b6101f2610d0f565b6102306103a6366004611e39565b610d1e565b6102306103b9366004611e39565b610dc5565b61021b6103cc366004611e95565b610ed2565b61021b6103df366004611e63565b610fb6565b61021b6103f2366004611e63565b61105b565b610281610405366004611dca565b611100565b61028160065481565b610230610421366004611daf565b60086020526000908152604090205460ff1681565b61021b610444366004611daf565b6111f6565b6102817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b61021b61047e366004611daf565b6112bf565b61021b610491366004611daf565b6113a1565b6060600380546104a5906120fb565b80601f01602080910402602001604051908101604052809291908181526020018280546104d1906120fb565b801561051e5780601f106104f35761010080835404028352916020019161051e565b820191906000526020600020905b81548152906001019060200180831161050157829003601f168201915b5050505050905090565b6005546001600160a01b031633146105875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600980546001600160a01b038316610100027fffffffffffffffffffff000000000000000000000000000000000000000000ff9091161775010000000000000000000000000000000000000000001790556040517fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e906106179083906001600160a01b0391909116815260200190565b60405180910390a150565b60006040610631816004611f2a565b36101561063d57600080fd5b6009547501000000000000000000000000000000000000000000900460ff16156106f1576009546040517faee92d330000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038681166024830152604482018690526101009092049091169063aee92d3390606401600060405180830381600087803b1580156106d457600080fd5b505af11580156106e8573d6000803e3d6000fd5b50505050610702565b6106fb8484611476565b9150610707565b600191505b5092915050565b6005546001600160a01b031633146107685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b6001600160a01b03811660008181526008602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590519182527f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc9101610617565b6009546000907501000000000000000000000000000000000000000000900460ff161561088c57600960019054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561084f57600080fd5b505afa158015610863573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108879190611e7c565b905090565b5060025490565b60055460009074010000000000000000000000000000000000000000900460ff16156108be57600080fd5b6001600160a01b03841660009081526008602052604090205460ff16156108e457600080fd5b6009547501000000000000000000000000000000000000000000900460ff16156109a0576009546040517f8b477adb0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03868116602483015285811660448301526064820185905261010090920490911690638b477adb90608401600060405180830381600087803b15801561098357600080fd5b505af1158015610997573d6000803e3d6000fd5b505050506109b2565b6109ab848484611531565b90506109b6565b5060015b9392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109f99185906109f4908690611f2a565b611799565b5060015b92915050565b6005546001600160a01b03163314610a5d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b60055474010000000000000000000000000000000000000000900460ff16610a8457600080fd5b600580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6009546000907501000000000000000000000000000000000000000000900460ff1615610b9a576009546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152610100909204909116906370a082319060240160206040518083038186803b158015610b6257600080fd5b505afa158015610b76573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fd9190611e7c565b6001600160a01b0382166000908152602081905260409020546109fd565b919050565b6005546001600160a01b03163314610c175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b610c2160006118f2565b565b6005546001600160a01b03163314610c7d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b60055474010000000000000000000000000000000000000000900460ff1615610ca557600080fd5b600580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6060600480546104a5906120fb565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610db85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161057e565b6107023385858403611799565b60055460009074010000000000000000000000000000000000000000900460ff1615610df057600080fd5b3360009081526008602052604090205460ff1615610e0d57600080fd5b6009547501000000000000000000000000000000000000000000900460ff1615610ec1576009546040517f6e18980a0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0385811660248301526044820185905261010090920490911690636e18980a90606401600060405180830381600087803b158015610ea457600080fd5b505af1158015610eb8573d6000803e3d6000fd5b505050506109f9565b610ecb838361195c565b90506109fd565b6005546001600160a01b03163314610f2c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b60148210610f3957600080fd5b60328110610f4657600080fd5b6006829055610f6c610f5a60095460ff1690565b610f6590600a611fde565b8290611b0c565b60078190556006546040517fb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e92610faa928252602082015260400190565b60405180910390a15050565b6005546001600160a01b031633146110105760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b61102b6110256005546001600160a01b031690565b82611b18565b6040518181527fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a90602001610617565b6005546001600160a01b031633146110b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b6110d06110ca6005546001600160a01b031690565b82611bf7565b6040518181527f702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a4490602001610617565b6009546000907501000000000000000000000000000000000000000000900460ff16156111cb576009546040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015284811660248301526101009092049091169063dd62ed3e9060440160206040518083038186803b15801561119357600080fd5b505afa1580156111a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecb9190611e7c565b6001600160a01b03808416600090815260016020908152604080832093861683529290522054610ecb565b6005546001600160a01b031633146112505760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b6001600160a01b03811660008181526008602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905590519182527fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c9101610617565b6005546001600160a01b031633146113195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b6001600160a01b0381166113955760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161057e565b61139e816118f2565b50565b6005546001600160a01b031633146113fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161057e565b6001600160a01b03811660009081526008602052604090205460ff1661142057600080fd5b600061142b82610ad7565b90506114378282611bf7565b604080516001600160a01b0384168152602081018390527f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c69101610faa565b60006040611485816004611f2a565b36101561149157600080fd5b82158015906114c257503360009081526001602090815260408083206001600160a01b038816845290915290205415155b156114cc57600080fd5b3360008181526001602090815260408083206001600160a01b03891680855290835292819020879055518681529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b60006060611540816004611f2a565b36101561154c57600080fd5b6001600160a01b038516600090815260016020908152604080832033845290915281205460065490919061158f9061271090611589908890611b0c565b90611d74565b90506007548111156115a057506007545b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8210156115f7576115d28286611d80565b6001600160a01b03881660009081526001602090815260408083203384529091529020555b60006116038683611d80565b6001600160a01b0389166000908152602081905260409020549091506116299087611d80565b6001600160a01b03808a1660009081526020819052604080822093909355908916815220546116589082611d8c565b6001600160a01b038816600090815260208190526040902055811561173e576116b0826000806116906005546001600160a01b031690565b6001600160a01b0316815260208101919091526040016000205490611d8c565b6000806116c56005546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020556116f16005546001600160a01b031690565b6001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161173591815260200190565b60405180910390a35b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161178391815260200190565b60405180910390a3506001979650505050505050565b6001600160a01b0383166118145760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161057e565b6001600160a01b0382166118905760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161057e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000604061196b816004611f2a565b36101561197757600080fd5b600061199461271061158960065487611b0c90919063ffffffff16565b90506007548111156119a557506007545b60006119b18583611d80565b336000908152602081905260409020549091506119ce9086611d80565b33600090815260208190526040808220929092556001600160a01b038816815220546119fa9082611d8c565b6001600160a01b0387166000908152602081905260409020558115611ac057611a32826000806116906005546001600160a01b031690565b600080611a476005546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055611a736005546001600160a01b031690565b6001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ab791815260200190565b60405180910390a35b6040518181526001600160a01b0387169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350600195945050505050565b60006109b682846120a7565b6001600160a01b038216611b6e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161057e565b8060026000828254611b809190611f2a565b90915550506001600160a01b03821660009081526020819052604081208054839290611bad908490611f2a565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b038216611c735760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161057e565b6001600160a01b03821660009081526020819052604090205481811015611d025760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161057e565b6001600160a01b0383166000908152602081905260408120838303905560028054849290611d319084906120e4565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016118e5565b60006109b68284611f42565b60006109b682846120e4565b60006109b68284611f2a565b80356001600160a01b0381168114610bb857600080fd5b600060208284031215611dc157600080fd5b6109b682611d98565b60008060408385031215611ddd57600080fd5b611de683611d98565b9150611df460208401611d98565b90509250929050565b600080600060608486031215611e1257600080fd5b611e1b84611d98565b9250611e2960208501611d98565b9150604084013590509250925092565b60008060408385031215611e4c57600080fd5b611e5583611d98565b946020939093013593505050565b600060208284031215611e7557600080fd5b5035919050565b600060208284031215611e8e57600080fd5b5051919050565b60008060408385031215611ea857600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015611ee457858101830151858201604001528201611ec8565b81811115611ef6576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60008219821115611f3d57611f3d61214f565b500190565b600082611f78577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600181815b80851115611fd657817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611fbc57611fbc61214f565b80851615611fc957918102915b93841c9390800290611f82565b509250929050565b60006109b660ff841683600082611ff7575060016109fd565b81612004575060006109fd565b816001811461201a576002811461202457612040565b60019150506109fd565b60ff8411156120355761203561214f565b50506001821b6109fd565b5060208310610133831016604e8410600b8410161715612063575081810a6109fd565b61206d8383611f7d565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561209f5761209f61214f565b029392505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120df576120df61214f565b500290565b6000828210156120f6576120f661214f565b500390565b600181811c9082168061210f57607f821691505b60208210811415612149577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122068db92241a97d707545b5518478b739c3fae8ceacf67d2d5bc4968ca90b57eae64736f6c63430008070033

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a546574686572205553440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553445400000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Tether USD
Arg [1] : _symbol (string): USDT
Arg [2] : __decimals (uint8): 6

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [4] : 5465746865722055534400000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 5553445400000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

17140:4837:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5165:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20459:186;;;;;;:::i;:::-;;:::i;:::-;;19669:341;;;;;;:::i;:::-;;:::i;:::-;;;3807:14:1;;3800:22;3782:41;;3770:2;3755:18;19669:341:0;3642:187:1;17305:22:0;;;;;;;;;;;;16069:149;;;;;;:::i;:::-;;:::i;20711:230::-;;;:::i;:::-;;;7788:25:1;;;7776:2;7761:18;20711:230:0;7642:177:1;18849:401:0;;;;;;:::i;:::-;;:::i;17268:30::-;;;;;;;;-1:-1:-1;;;;;17268:30:0;;;;;;-1:-1:-1;;;;;2054:55:1;;;2036:74;;2024:2;2009:18;17268:30:0;1890:226:1;18214:100:0;18297:9;;18214:100;;18297:9;;;;8219:36:1;;8207:2;8192:18;18214:100:0;8077:184:1;10392:26:0;;;;;;6756:215;;;;;;:::i;:::-;;:::i;15430:105::-;;;:::i;15941:120::-;;;;;;:::i;:::-;-1:-1:-1;;;;;16032:21:0;16008:4;16032:21;;;:13;:21;;;;;;;;;15941:120;14753:26;;;;;;;;;;;;19335:249;;;;;;:::i;:::-;;:::i;3147:94::-;;;:::i;15232:103::-;;;:::i;2924:87::-;2997:6;;-1:-1:-1;;;;;2997:6:0;2924:87;;5273:104;;;:::i;6979:413::-;;;;;;:::i;:::-;;:::i;18399:365::-;;;;;;:::i;:::-;;:::i;21580:394::-;;;;;;:::i;:::-;;:::i;21107:115::-;;;;;;:::i;:::-;;:::i;21455:117::-;;;;;;:::i;:::-;;:::i;20095:298::-;;;;;;:::i;:::-;;:::i;10354:31::-;;;;;;15766:46;;;;;;:::i;:::-;;;;;;;;;;;;;;;;16226:164;;;;;;:::i;:::-;;:::i;10224:42::-;;10256:10;10224:42;;3249:192;;;;;;:::i;:::-;;:::i;16398:296::-;;;;;;:::i;:::-;;:::i;5165:100::-;5219:13;5252:5;5245:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5165:100;:::o;20459:186::-;2997:6;;-1:-1:-1;;;;;2997:6:0;2559:10;3059:23;3051:68;;;;-1:-1:-1;;;3051:68:0;;5910:2:1;3051:68:0;;;5892:21:1;;;5929:18;;;5922:30;5988:34;5968:18;;;5961:62;6040:18;;3051:68:0;;;;;;;;;20532:10:::1;:17:::0;;-1:-1:-1;;;;;20560:34:0;::::1;20532:17;20560:34;::::0;;;;;20532:17;20560:34;;;20610:27:::1;::::0;::::1;::::0;::::1;::::0;20578:16;;-1:-1:-1;;;;;2054:55:1;;;;2036:74;;2024:2;2009:18;;1890:226;20610:27:0::1;;;;;;;;20459:186:::0;:::o;19669:341::-;19766:4;19749:6;10571:8;19749:6;10578:1;10571:8;:::i;:::-;10553;:26;10551:29;10543:38;;;;;;19787:10:::1;::::0;;;::::1;;;19783:198;;;19836:15;::::0;19814:84:::1;::::0;;;;19869:10:::1;19814:84;::::0;::::1;3200:34:1::0;-1:-1:-1;;;;;3270:15:1;;;3250:18;;;3243:43;3302:18;;;3295:34;;;19836:15:0::1;::::0;;::::1;::::0;;::::1;::::0;19814:54:::1;::::0;3112:18:1;;19814:84:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19783:198;;;19938:31;19952:8;19962:6;19938:13;:31::i;:::-;19931:38;;;;19783:198;19998:4;19991:11;;10592:1;19669:341:::0;;;;;:::o;16069:149::-;2997:6;;-1:-1:-1;;;;;2997:6:0;2559:10;3059:23;3051:68;;;;-1:-1:-1;;;3051:68:0;;5910:2:1;3051:68:0;;;5892:21:1;;;5929:18;;;5922:30;5988:34;5968:18;;;5961:62;6040:18;;3051:68:0;5708:356:1;3051:68:0;-1:-1:-1;;;;;16138:24:0;::::1;;::::0;;;:13:::1;:24;::::0;;;;;;;;:31;;;::::1;16165:4;16138:31;::::0;;16185:25;;2036:74:1;;;16185:25:0::1;::::0;2009:18:1;16185:25:0::1;1890:226:1::0;20711:230:0;20785:10;;20764:4;;20785:10;;;;;20781:153;;;20833:15;;;;;;;;;-1:-1:-1;;;;;20833:15:0;-1:-1:-1;;;;;20819:42:0;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20812:51;;20711:230;:::o;20781:153::-;-1:-1:-1;5574:12:0;;;20711:230::o;18849:401::-;14937:6;;18951:4;;14937:6;;;;;14936:7;14928:16;;;;;;-1:-1:-1;;;;;18977:20:0;::::1;;::::0;;;:13:::1;:20;::::0;;;;;::::1;;18976:21;18968:30;;;::::0;::::1;;19013:10;::::0;;;::::1;;;19009:212;;;19062:15;::::0;19040:91:::1;::::0;;;;19100:10:::1;19040:91;::::0;::::1;2745:34:1::0;-1:-1:-1;;;;;2815:15:1;;;2795:18;;;2788:43;2867:15;;;2847:18;;;2840:43;2899:18;;;2892:34;;;19062:15:0::1;::::0;;::::1;::::0;;::::1;::::0;19040:59:::1;::::0;2656:19:1;;19040:91:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19009:212;;;19171:38;19190:5;19197:3;19202:6;19171:18;:38::i;:::-;19164:45;;;;19009:212;-1:-1:-1::0;19238:4:0::1;14955:1;18849:401:::0;;;;;:::o;6756:215::-;2559:10;6844:4;6893:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6893:34:0;;;;;;;;;;6844:4;;6861:80;;6884:7;;6893:47;;6930:10;;6893:47;:::i;:::-;6861:8;:80::i;:::-;-1:-1:-1;6959:4:0;6756:215;;;;;:::o;15430:105::-;2997:6;;-1:-1:-1;;;;;2997:6:0;2559:10;3059:23;3051:68;;;;-1:-1:-1;;;3051:68:0;;5910:2:1;3051:68:0;;;5892:21:1;;;5929:18;;;5922:30;5988:34;5968:18;;;5961:62;6040:18;;3051:68:0;5708:356:1;3051:68:0;15113:6:::1;::::0;;;::::1;;;15105:15;;;::::0;::::1;;15488:6:::2;:14:::0;;;::::2;::::0;;15518:9:::2;::::0;::::2;::::0;15497:5:::2;::::0;15518:9:::2;15430:105::o:0;19335:249::-;19418:10;;19397:4;;19418:10;;;;;19414:163;;;19474:15;;19452:53;;;;;-1:-1:-1;;;;;2054:55:1;;;19452:53:0;;;2036:74:1;19474:15:0;;;;;;;;19452:48;;2009:18:1;;19452:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19414:163::-;-1:-1:-1;;;;;11842:17:0;;11810:12;11842:17;;;;;;;;;;;19545:20;11737:130;19414:163;19335:249;;;:::o;3147:94::-;2997:6;;-1:-1:-1;;;;;2997:6:0;2559:10;3059:23;3051:68;;;;-1:-1:-1;;;3051:68:0;;5910:2:1;3051:68:0;;;5892:21:1;;;5929:18;;;5922:30;5988:34;5968:18;;;5961:62;6040:18;;3051:68:0;5708:356:1;3051:68:0;3212:21:::1;3230:1;3212:9;:21::i;:::-;3147:94::o:0;15232:103::-;2997:6;;-1:-1:-1;;;;;2997:6:0;2559:10;3059:23;3051:68;;;;-1:-1:-1;;;3051:68:0;;5910:2:1;3051:68:0;;;5892:21:1;;;5929:18;;;5922:30;5988:34;5968:18;;;5961:62;6040:18;;3051:68:0;5708:356:1;3051:68:0;14937:6:::1;::::0;;;::::1;;;14936:7;14928:16;;;::::0;::::1;;15291:6:::2;:13:::0;;;::::2;::::0;::::2;::::0;;15320:7:::2;::::0;::::2;::::0;15291:13;;15320:7:::2;15232:103::o:0;5273:104::-;5329:13;5362:7;5355:14;;;;;:::i;6979:413::-;2559:10;7072:4;7116:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7116:34:0;;;;;;;;;;7169:35;;;;7161:85;;;;-1:-1:-1;;;7161:85:0;;7078:2:1;7161:85:0;;;7060:21:1;7117:2;7097:18;;;7090:30;7156:34;7136:18;;;7129:62;7227:7;7207:18;;;7200:35;7252:19;;7161:85:0;6876:401:1;7161:85:0;7282:67;2559:10;7305:7;7333:15;7314:16;:34;7282:8;:67::i;18399:365::-;14937:6;;18482:4;;14937:6;;;;;14936:7;14928:16;;;;;;18522:10:::1;18508:25;::::0;;;:13:::1;:25;::::0;;;;;::::1;;18507:26;18499:35;;;::::0;::::1;;18549:10;::::0;;;::::1;;;18545:190;;;18598:15;::::0;18576:80:::1;::::0;;;;18632:10:::1;18576:80;::::0;::::1;3200:34:1::0;-1:-1:-1;;;;;3270:15:1;;;3250:18;;;3243:43;3302:18;;;3295:34;;;18598:15:0::1;::::0;;::::1;::::0;;::::1;::::0;18576:55:::1;::::0;3112:18:1;;18576:80:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18545:190;;;18696:27;18711:3;18716:6;18696:14;:27::i;:::-;18689:34;;;;21580:394:::0;2997:6;;-1:-1:-1;;;;;2997:6:0;2559:10;3059:23;3051:68;;;;-1:-1:-1;;;3051:68:0;;5910:2:1;3051:68:0;;;5892:21:1;;;5929:18;;;5922:30;5988:34;5968:18;;;5961:62;6040:18;;3051:68:0;5708:356:1;3051:68:0;21778:2:::1;21761:14;:19;21753:28;;;::::0;::::1;;21812:2;21800:9;:14;21792:23;;;::::0;::::1;;21828:15;:32:::0;;;21884:29:::1;21902:10;18297:9:::0;;;;;18214:100;21902:10:::1;21898:14;::::0;:2:::1;:14;:::i;:::-;21884:9:::0;;:13:::1;:29::i;:::-;21871:10;:42:::0;;;21938:15:::1;::::0;21931:35:::1;::::0;::::1;::::0;::::1;::::0;7998:25:1;;8054:2;8039:18;;8032:34;7986:2;7971:18;;7824:248;21931:35:0::1;;;;;;;;21580:394:::0;;:::o;21107:115::-;2997:6;;-1:-1:-1;;;;;2997:6:0;2559:10;3059:23;3051:68;;;;-1:-1:-1;;;3051:68:0;;5910:2:1;3051:68:0;;;5892:21:1;;;5929:18;;;5922:30;5988:34;5968:18;;;5961:62;6040:18;;3051:68:0;5708:356:1;3051:68:0;21163:22:::1;21169:7;2997:6:::0;;-1:-1:-1;;;;;2997:6:0;;2924:87;21169:7:::1;21178:6;21163:5;:22::i;:::-;21201:13;::::0;7788:25:1;;;21201:13:0::1;::::0;7776:2:1;7761:18;21201:13:0::1;7642:177:1::0;21455:117:0;2997:6;;-1:-1:-1;;;;;2997:6:0;2559:10;3059:23;3051:68;;;;-1:-1:-1;;;3051:68:0;;5910:2:1;3051:68:0;;;5892:21:1;;;5929:18;;;5922:30;5988:34;5968:18;;;5961:62;6040:18;;3051:68:0;5708:356:1;3051:68:0;21512:22:::1;21518:7;2997:6:::0;;-1:-1:-1;;;;;2997:6:0;;2924:87;21518:7:::1;21527:6;21512:5;:22::i;:::-;21550:14;::::0;7788:25:1;;;21550:14:0::1;::::0;7776:2:1;7761:18;21550:14:0::1;7642:177:1::0;20095:298:0;20209:10;;20178:14;;20209:10;;;;;20205:181;;;20257:15;;20243:58;;;;;-1:-1:-1;;;;;2374:15:1;;;20243:58:0;;;2356:34:1;2426:15;;;2406:18;;;2399:43;20257:15:0;;;;;;;;20243:40;;2268:18:1;;20243:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;20205:181::-;-1:-1:-1;;;;;14499:19:0;;;14465:14;14499:19;;;:11;:19;;;;;;;;:29;;;;;;;;;;20341:33;14374:162;16226:164;2997:6;;-1:-1:-1;;;;;2997:6:0;2559:10;3059:23;3051:68;;;;-1:-1:-1;;;3051:68:0;;5910:2:1;3051:68:0;;;5892:21:1;;;5929:18;;;5922:30;5988:34;5968:18;;;5961:62;6040:18;;3051:68:0;5708:356:1;3051:68:0;-1:-1:-1;;;;;16301:27:0;::::1;16331:5;16301:27:::0;;;:13:::1;:27;::::0;;;;;;;;:35;;;::::1;::::0;;16352:30;;2036:74:1;;;16352:30:0::1;::::0;2009:18:1;16352:30:0::1;1890:226:1::0;3249:192:0;2997:6;;-1:-1:-1;;;;;2997:6:0;2559:10;3059:23;3051:68;;;;-1:-1:-1;;;3051:68:0;;5910:2:1;3051:68:0;;;5892:21:1;;;5929:18;;;5922:30;5988:34;5968:18;;;5961:62;6040:18;;3051:68:0;5708:356:1;3051:68:0;-1:-1:-1;;;;;3338:22:0;::::1;3330:73;;;::::0;-1:-1:-1;;;3330:73:0;;5100:2:1;3330:73:0::1;::::0;::::1;5082:21:1::0;5139:2;5119:18;;;5112:30;5178:34;5158:18;;;5151:62;5249:8;5229:18;;;5222:36;5275:19;;3330:73:0::1;4898:402:1::0;3330:73:0::1;3414:19;3424:8;3414:9;:19::i;:::-;3249:192:::0;:::o;16398:296::-;2997:6;;-1:-1:-1;;;;;2997:6:0;2559:10;3059:23;3051:68;;;;-1:-1:-1;;;3051:68:0;;5910:2:1;3051:68:0;;;5892:21:1;;;5929:18;;;5922:30;5988:34;5968:18;;;5961:62;6040:18;;3051:68:0;5708:356:1;3051:68:0;-1:-1:-1;;;;;16487:31:0;::::1;;::::0;;;:13:::1;:31;::::0;;;;;::::1;;16479:40;;;::::0;::::1;;16530:15;16548:27;16558:16;16548:9;:27::i;:::-;16530:45;;16586:35;16592:16;16610:10;16586:5;:35::i;:::-;16637:49;::::0;;-1:-1:-1;;;;;3532:55:1;;3514:74;;3619:2;3604:18;;3597:34;;;16637:49:0::1;::::0;3487:18:1;16637:49:0::1;3340:297:1::0;13389:640:0;13494:4;13477:6;10571:8;13477:6;10578:1;10571:8;:::i;:::-;10553;:26;10551:29;10543:38;;;;;;13832:11;;;::::1;::::0;13831:57:::1;;-1:-1:-1::0;13861:10:0::1;13849:23;::::0;;;:11:::1;:23;::::0;;;;;;;-1:-1:-1;;;;;13849:33:0;::::1;::::0;;;;;;;;:38;::::1;13831:57;13829:60;13821:69;;;::::0;::::1;;13915:10;13903:23;::::0;;;:11:::1;:23;::::0;;;;;;;-1:-1:-1;;;;;13903:33:0;::::1;::::0;;;;;;;;;;:42;;;13961:38;7788:25:1;;;13903:33:0;;13915:10;13961:38:::1;::::0;7761:18:1;13961:38:0::1;;;;;;;-1:-1:-1::0;14017:4:0::1;::::0;13389:640;-1:-1:-1;;;13389:640:0:o;12156:986::-;12276:4;12259:6;10571:8;12259:6;10578:1;10571:8;:::i;:::-;10553;:26;10551:29;10543:38;;;;;;-1:-1:-1;;;;;12311:18:0;::::1;12293:15;12311:18:::0;;;:11:::1;:18;::::0;;;;;;;12330:10:::1;12311:30:::0;;;;;;;;12535:15:::1;::::0;12311:30;;12293:15;12523:40:::1;::::0;12557:5:::1;::::0;12524:27:::1;::::0;:6;;:10:::1;:27::i;:::-;12523:33:::0;::::1;:40::i;:::-;12512:51;;12584:10;;12578:3;:16;12574:65;;;-1:-1:-1::0;12617:10:0::1;::::0;12574:65:::1;10256:10;12653;:21;12649:109;;;12724:22;:10:::0;12739:6;12724:14:::1;:22::i;:::-;-1:-1:-1::0;;;;;12691:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;12710:10:::1;12691:30:::0;;;;;;;:55;12649:109:::1;12768:15;12786;:6:::0;12797:3;12786:10:::1;:15::i;:::-;-1:-1:-1::0;;;;;12831:16:0;::::1;:9;:16:::0;;;::::1;::::0;;;;;;;12768:33;;-1:-1:-1;12831:28:0::1;::::0;12852:6;12831:20:::1;:28::i;:::-;-1:-1:-1::0;;;;;12812:16:0;;::::1;:9;:16:::0;;;::::1;::::0;;;;;;;:47;;;;12887:14;;::::1;::::0;;;;:30:::1;::::0;12906:10;12887:18:::1;:30::i;:::-;-1:-1:-1::0;;;;;12870:14:0;::::1;:9;:14:::0;;;::::1;::::0;;;;;;:47;12932:7;;12928:137:::1;;12977:27;13000:3;12977:9;:18:::0;12987:7:::1;2997:6:::0;;-1:-1:-1;;;;;2997:6:0;;2924:87;12987:7:::1;-1:-1:-1::0;;;;;12977:18:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12977:18:0;;;:22:::1;:27::i;:::-;12956:9;:18:::0;12966:7:::1;2997:6:::0;;-1:-1:-1;;;;;2997:6:0;;2924:87;12966:7:::1;-1:-1:-1::0;;;;;12956:18:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12956:18:0;:48;13040:7:::1;2997:6:::0;;-1:-1:-1;;;;;2997:6:0;;2924:87;13040:7:::1;-1:-1:-1::0;;;;;13024:29:0::1;13033:5;-1:-1:-1::0;;;;;13024:29:0::1;;13049:3;13024:29;;;;7788:25:1::0;;7776:2;7761:18;;7642:177;13024:29:0::1;;;;;;;;12928:137;13096:3;-1:-1:-1::0;;;;;13080:32:0::1;13089:5;-1:-1:-1::0;;;;;13080:32:0::1;;13101:10;13080:32;;;;7788:25:1::0;;7776:2;7761:18;;7642:177;13080:32:0::1;;;;;;;;-1:-1:-1::0;13130:4:0::1;::::0;12156:986;-1:-1:-1;;;;;;;12156:986:0:o;9147:380::-;-1:-1:-1;;;;;9283:19:0;;9275:68;;;;-1:-1:-1;;;9275:68:0;;6673:2:1;9275:68:0;;;6655:21:1;6712:2;6692:18;;;6685:30;6751:34;6731:18;;;6724:62;6822:6;6802:18;;;6795:34;6846:19;;9275:68:0;6471:400:1;9275:68:0;-1:-1:-1;;;;;9362:21:0;;9354:68;;;;-1:-1:-1;;;9354:68:0;;5507:2:1;9354:68:0;;;5489:21:1;5546:2;5526:18;;;5519:30;5585:34;5565:18;;;5558:62;5656:4;5636:18;;;5629:32;5678:19;;9354:68:0;5305:398:1;9354:68:0;-1:-1:-1;;;;;9435:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9487:32;;7788:25:1;;;9487:32:0;;7761:18:1;9487:32:0;;;;;;;;9147:380;;;:::o;3449:173::-;3524:6;;;-1:-1:-1;;;;;3541:17:0;;;;;;;;;;;3574:40;;3524:6;;;3541:17;3524:6;;3574:40;;3505:16;;3574:40;3494:128;3449:173;:::o;10862:649::-;10963:4;10946:6;10571:8;10946:6;10578:1;10571:8;:::i;:::-;10553;:26;10551:29;10543:38;;;;;;10980:8:::1;10991:40;11025:5;10992:27;11003:15;;10992:6;:10;;:27;;;;:::i;10991:40::-;10980:51;;11052:10;;11046:3;:16;11042:65;;;-1:-1:-1::0;11085:10:0::1;::::0;11042:65:::1;11117:15;11135;:6:::0;11146:3;11135:10:::1;:15::i;:::-;11195:10;11185:9;:21:::0;;;::::1;::::0;;;;;;;11117:33;;-1:-1:-1;11185:33:0::1;::::0;11211:6;11185:25:::1;:33::i;:::-;11171:10;11161:9;:21:::0;;;::::1;::::0;;;;;;;:57;;;;-1:-1:-1;;;;;11246:14:0;::::1;::::0;;;;:30:::1;::::0;11265:10;11246:18:::1;:30::i;:::-;-1:-1:-1::0;;;;;11229:14:0;::::1;:9;:14:::0;;;::::1;::::0;;;;;;:47;11291:7;;11287:142:::1;;11336:27;11359:3;11336:9;:18:::0;11346:7:::1;2997:6:::0;;-1:-1:-1;;;;;2997:6:0;;2924:87;11336:27:::1;11315:9;:18:::0;11325:7:::1;2997:6:::0;;-1:-1:-1;;;;;2997:6:0;;2924:87;11325:7:::1;-1:-1:-1::0;;;;;11315:18:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11315:18:0;:48;11404:7:::1;2997:6:::0;;-1:-1:-1;;;;;2997:6:0;;2924:87;11404:7:::1;-1:-1:-1::0;;;;;11383:34:0::1;11392:10;-1:-1:-1::0;;;;;11383:34:0::1;;11413:3;11383:34;;;;7788:25:1::0;;7776:2;7761:18;;7642:177;11383:34:0::1;;;;;;;;11287:142;11444:37;::::0;7788:25:1;;;-1:-1:-1;;;;;11444:37:0;::::1;::::0;11453:10:::1;::::0;11444:37:::1;::::0;7776:2:1;7761:18;11444:37:0::1;;;;;;;-1:-1:-1::0;11499:4:0::1;::::0;10862:649;-1:-1:-1;;;;;10862:649:0:o;1389:98::-;1447:7;1474:5;1478:1;1474;:5;:::i;8141:399::-;-1:-1:-1;;;;;8225:21:0;;8217:65;;;;-1:-1:-1;;;8217:65:0;;7484:2:1;8217:65:0;;;7466:21:1;7523:2;7503:18;;;7496:30;7562:33;7542:18;;;7535:61;7613:18;;8217:65:0;7282:355:1;8217:65:0;8373:6;8357:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8390:18:0;;:9;:18;;;;;;;;;;:28;;8412:6;;8390:9;:28;;8412:6;;8390:28;:::i;:::-;;;;-1:-1:-1;;8434:37:0;;7788:25:1;;;-1:-1:-1;;;;;8434:37:0;;;8451:1;;8434:37;;7776:2:1;7761:18;8434:37:0;;;;;;;8141:399;;:::o;8548:591::-;-1:-1:-1;;;;;8632:21:0;;8624:67;;;;-1:-1:-1;;;8624:67:0;;6271:2:1;8624:67:0;;;6253:21:1;6310:2;6290:18;;;6283:30;6349:34;6329:18;;;6322:62;6420:3;6400:18;;;6393:31;6441:19;;8624:67:0;6069:397:1;8624:67:0;-1:-1:-1;;;;;8791:18:0;;8766:22;8791:18;;;;;;;;;;;8828:24;;;;8820:71;;;;-1:-1:-1;;;8820:71:0;;4697:2:1;8820:71:0;;;4679:21:1;4736:2;4716:18;;;4709:30;4775:34;4755:18;;;4748:62;4846:4;4826:18;;;4819:32;4868:19;;8820:71:0;4495:398:1;8820:71:0;-1:-1:-1;;;;;8927:18:0;;:9;:18;;;;;;;;;;8948:23;;;8927:44;;8993:12;:22;;8965:6;;8927:9;8993:22;;8965:6;;8993:22;:::i;:::-;;;;-1:-1:-1;;9033:37:0;;7788:25:1;;;9059:1:0;;-1:-1:-1;;;;;9033:37:0;;;;;7776:2:1;7761:18;9033:37:0;7642:177:1;1493:98:0;1551:7;1578:5;1582:1;1578;:5;:::i;1283:98::-;1341:7;1368:5;1372:1;1368;:5;:::i;1177:98::-;1235:7;1262:5;1266:1;1262;:5;:::i;14:196:1:-;82:20;;-1:-1:-1;;;;;131:54:1;;121:65;;111:93;;200:1;197;190:12;215:186;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;406:260::-;474:6;482;535:2;523:9;514:7;510:23;506:32;503:52;;;551:1;548;541:12;503:52;574:29;593:9;574:29;:::i;:::-;564:39;;622:38;656:2;645:9;641:18;622:38;:::i;:::-;612:48;;406:260;;;;;:::o;671:328::-;748:6;756;764;817:2;805:9;796:7;792:23;788:32;785:52;;;833:1;830;823:12;785:52;856:29;875:9;856:29;:::i;:::-;846:39;;904:38;938:2;927:9;923:18;904:38;:::i;:::-;894:48;;989:2;978:9;974:18;961:32;951:42;;671:328;;;;;:::o;1004:254::-;1072:6;1080;1133:2;1121:9;1112:7;1108:23;1104:32;1101:52;;;1149:1;1146;1139:12;1101:52;1172:29;1191:9;1172:29;:::i;:::-;1162:39;1248:2;1233:18;;;;1220:32;;-1:-1:-1;;;1004:254:1:o;1263:180::-;1322:6;1375:2;1363:9;1354:7;1350:23;1346:32;1343:52;;;1391:1;1388;1381:12;1343:52;-1:-1:-1;1414:23:1;;1263:180;-1:-1:-1;1263:180:1:o;1448:184::-;1518:6;1571:2;1559:9;1550:7;1546:23;1542:32;1539:52;;;1587:1;1584;1577:12;1539:52;-1:-1:-1;1610:16:1;;1448:184;-1:-1:-1;1448:184:1:o;1637:248::-;1705:6;1713;1766:2;1754:9;1745:7;1741:23;1737:32;1734:52;;;1782:1;1779;1772:12;1734:52;-1:-1:-1;;1805:23:1;;;1875:2;1860:18;;;1847:32;;-1:-1:-1;1637:248:1:o;3834:656::-;3946:4;3975:2;4004;3993:9;3986:21;4036:6;4030:13;4079:6;4074:2;4063:9;4059:18;4052:34;4104:1;4114:140;4128:6;4125:1;4122:13;4114:140;;;4223:14;;;4219:23;;4213:30;4189:17;;;4208:2;4185:26;4178:66;4143:10;;4114:140;;;4272:6;4269:1;4266:13;4263:91;;;4342:1;4337:2;4328:6;4317:9;4313:22;4309:31;4302:42;4263:91;-1:-1:-1;4406:2:1;4394:15;4411:66;4390:88;4375:104;;;;4481:2;4371:113;;3834:656;-1:-1:-1;;;3834:656:1:o;8266:128::-;8306:3;8337:1;8333:6;8330:1;8327:13;8324:39;;;8343:18;;:::i;:::-;-1:-1:-1;8379:9:1;;8266:128::o;8399:274::-;8439:1;8465;8455:189;;8500:77;8497:1;8490:88;8601:4;8598:1;8591:15;8629:4;8626:1;8619:15;8455:189;-1:-1:-1;8658:9:1;;8399:274::o;8678:482::-;8767:1;8810:5;8767:1;8824:330;8845:7;8835:8;8832:21;8824:330;;;8964:4;8896:66;8892:77;8886:4;8883:87;8880:113;;;8973:18;;:::i;:::-;9023:7;9013:8;9009:22;9006:55;;;9043:16;;;;9006:55;9122:22;;;;9082:15;;;;8824:330;;;8828:3;8678:482;;;;;:::o;9165:140::-;9223:5;9252:47;9293:4;9283:8;9279:19;9273:4;9359:5;9389:8;9379:80;;-1:-1:-1;9430:1:1;9444:5;;9379:80;9478:4;9468:76;;-1:-1:-1;9515:1:1;9529:5;;9468:76;9560:4;9578:1;9573:59;;;;9646:1;9641:130;;;;9553:218;;9573:59;9603:1;9594:10;;9617:5;;;9641:130;9678:3;9668:8;9665:17;9662:43;;;9685:18;;:::i;:::-;-1:-1:-1;;9741:1:1;9727:16;;9756:5;;9553:218;;9855:2;9845:8;9842:16;9836:3;9830:4;9827:13;9823:36;9817:2;9807:8;9804:16;9799:2;9793:4;9790:12;9786:35;9783:77;9780:159;;;-1:-1:-1;9892:19:1;;;9924:5;;9780:159;9971:34;9996:8;9990:4;9971:34;:::i;:::-;10101:6;10033:66;10029:79;10020:7;10017:92;10014:118;;;10112:18;;:::i;:::-;10150:20;;9310:866;-1:-1:-1;;;9310:866:1:o;10181:228::-;10221:7;10347:1;10279:66;10275:74;10272:1;10269:81;10264:1;10257:9;10250:17;10246:105;10243:131;;;10354:18;;:::i;:::-;-1:-1:-1;10394:9:1;;10181:228::o;10414:125::-;10454:4;10482:1;10479;10476:8;10473:34;;;10487:18;;:::i;:::-;-1:-1:-1;10524:9:1;;10414:125::o;10544:437::-;10623:1;10619:12;;;;10666;;;10687:61;;10741:4;10733:6;10729:17;10719:27;;10687:61;10794:2;10786:6;10783:14;10763:18;10760:38;10757:218;;;10831:77;10828:1;10821:88;10932:4;10929:1;10922:15;10960:4;10957:1;10950:15;10757:218;;10544:437;;;:::o;10986:184::-;11038:77;11035:1;11028:88;11135:4;11132:1;11125:15;11159:4;11156:1;11149:15

Swarm Source

ipfs://68db92241a97d707545b5518478b739c3fae8ceacf67d2d5bc4968ca90b57eae

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

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.